"use strict";
(self["webpackChunk_core_volunteer_app"] = self["webpackChunk_core_volunteer_app"] || []).push([["main-src_shared_views_main_i"],{
/***/ "./src/shared/views/main/interested_team/form.tsx":
/*!********************************************************!*\
!*** ./src/shared/views/main/interested_team/form.tsx ***!
\********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_11__);
/* harmony import */ var antd_es_row__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! antd/es/row */ "../../../node_modules/antd/lib/row/index.js");
/* harmony import */ var antd_es_select__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! antd/es/select */ "../../../node_modules/antd/lib/select/index.js");
/* harmony import */ var antd_es_col__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! antd/es/col */ "../../../node_modules/antd/lib/col/index.js");
/* harmony import */ var antd_es_input__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! antd/es/input */ "../../../node_modules/antd/lib/input/index.js");
/* harmony import */ var antd_es_message__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! antd/es/message */ "../../../node_modules/antd/lib/message/index.js");
/* harmony import */ var antd_es_form__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! antd/es/form */ "../../../node_modules/antd/lib/form/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs");
/* harmony import */ var _services_interested_team_core_actions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../services/interested_team/core/actions */ "./src/services/interested_team/core/actions.ts");
/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js");
/* harmony import */ var antd_es_input_TextArea__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! antd/es/input/TextArea */ "../../../node_modules/antd/lib/input/TextArea.js");
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _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(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
var NewEditInterestedTeamPage = function NewEditInterestedTeamPage() {
var dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_2__.useDispatch)();
var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_3__.useNavigate)();
var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_2__.useSelector)(function (state) {
return state.interestedTeam;
}),
interestedTeams = _useSelector.interestedTeams,
interestedTeam = _useSelector.interestedTeam,
registerErrorMessage = _useSelector.registerErrorMessage,
interestedTeamUpdatePending = _useSelector.interestedTeamUpdatePending;
var _Form$useForm = antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].useForm(),
_Form$useForm2 = _slicedToArray(_Form$useForm, 1),
form = _Form$useForm2[0];
var searchParams = new URLSearchParams(location.search);
var id = searchParams.get('id');
var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false),
_useState2 = _slicedToArray(_useState, 2),
isClick = _useState2[0],
setIsClick = _useState2[1];
// π Fetch data when editing or reset form when adding
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
if (id) {
dispatch((0,_services_interested_team_core_actions__WEBPACK_IMPORTED_MODULE_1__.interestedTeamDetailAction)(Number(id)));
} else {
form.resetFields(); // Reset form fields when adding a new item
}
}, [dispatch, id, form]);
// π Populate form with fetched data
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
if (id && interestedTeam) {
form.setFieldsValue({
name: interestedTeam.name || '',
description: interestedTeam.description || '',
parent_id: interestedTeam.parent_id || null
});
}
}, [interestedTeam, form, id]);
// π Show success or error alerts
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
if (!interestedTeamUpdatePending && isClick) {
if (registerErrorMessage) {
antd_es_message__WEBPACK_IMPORTED_MODULE_5__["default"].error(registerErrorMessage);
} else {
antd_es_message__WEBPACK_IMPORTED_MODULE_5__["default"].success(id ? 'Updated successfully!' : 'Created successfully!');
navigate('/interested-teams');
}
}
}, [interestedTeamUpdatePending, registerErrorMessage, id, isClick, navigate]);
// π Handle form submit
var onFinish = function onFinish(values) {
if (id) {
dispatch((0,_services_interested_team_core_actions__WEBPACK_IMPORTED_MODULE_1__.updateInterestedTeamAction)({
id: Number(id),
data: values
}));
form.resetFields();
} else {
dispatch((0,_services_interested_team_core_actions__WEBPACK_IMPORTED_MODULE_1__.createInterestedTeamAction)({
data: values
}));
form.resetFields(); // Reset form after successful creation
}
setIsClick(true);
};
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("h2", null, id ? 'αααααααααα»αα
αΆααα’αΆαααααα' : 'ααααααααααΈαααα»αα
αΆααα’αΆαααααα'), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"], {
form: form,
layout: "vertical",
onFinish: onFinish,
style: {
maxWidth: '100%',
margin: '0 auto'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_6__["default"], {
gutter: [12, 12]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], {
span: 12
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, {
label: "\u1788\u17D2\u1798\u17C4\u17C7",
name: "name",
rules: [{
required: true,
message: 'Please enter a name'
}]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_8__["default"], null))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], {
span: 12
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, {
label: "Parent Team",
name: "parent_id"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_select__WEBPACK_IMPORTED_MODULE_9__["default"], {
allowClear: true,
placeholder: "Select Parent Team"
}, Array.isArray(interestedTeams) && interestedTeams.map(function (team) {
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Option, {
key: team.id,
value: team.id
}, team.name);
})))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], {
span: 12
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, {
label: "\u1794\u179A\u17B7\u1799\u17B6\u1799 (Optional)",
name: "description"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_input_TextArea__WEBPACK_IMPORTED_MODULE_10__["default"], {
rows: 3
})))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_6__["default"], {
gutter: [12, 12]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], {
span: 3
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_11___default()), {
type: "primary",
block: true,
htmlType: "submit",
loading: interestedTeamUpdatePending
}, "Submit"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], {
span: 3
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_11___default()), {
htmlType: "button",
onClick: function onClick() {
return navigate('/interested-teams');
}
}, "Cancel"))))));
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (NewEditInterestedTeamPage);
/***/ }),
/***/ "./src/shared/views/main/interested_team/index.tsx":
/*!*********************************************************!*\
!*** ./src/shared/views/main/interested_team/index.tsx ***!
\*********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var antd_es_table__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! antd/es/table */ "../../../node_modules/antd/lib/table/index.js");
/* harmony import */ var antd_es_input__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! antd/es/input */ "../../../node_modules/antd/lib/input/index.js");
/* harmony import */ var antd_es_space__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! antd/es/space */ "../../../node_modules/antd/lib/space/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_7__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs");
/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js");
/* harmony import */ var _container_dialogs_loading_dialog__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../container/dialogs/loading-dialog */ "./src/shared/container/dialogs/loading-dialog.tsx");
/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/EditOutlined.js");
/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/DeleteOutlined.js");
/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/PlusOutlined.js");
/* harmony import */ var _services_interested_team_core_actions__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../services/interested_team/core/actions */ "./src/services/interested_team/core/actions.ts");
/* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! sweetalert2 */ "../../../node_modules/sweetalert2/dist/sweetalert2.all.js");
/* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(sweetalert2__WEBPACK_IMPORTED_MODULE_3__);
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _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(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
var InterestedTeamList = function InterestedTeamList() {
var dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_4__.useDispatch)();
var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_5__.useNavigate)();
var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]),
_useState2 = _slicedToArray(_useState, 2),
selectedRows = _useState2[0],
setSelectedRows = _useState2[1];
var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(''),
_useState4 = _slicedToArray(_useState3, 2),
searchText = _useState4[0],
setSearchText = _useState4[1];
var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_4__.useSelector)(function (state) {
return state.interestedTeam;
}),
interestedTeams = _useSelector.interestedTeams,
interestedTeamsPending = _useSelector.interestedTeamsPending;
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
dispatch((0,_services_interested_team_core_actions__WEBPACK_IMPORTED_MODULE_2__.fetchInterestedTeams)());
}, [dispatch]);
var handleEdit = function handleEdit(id) {
dispatch((0,_services_interested_team_core_actions__WEBPACK_IMPORTED_MODULE_2__.interestedTeamDetailAction)(id));
navigate("/interested-teams/form?id=".concat(id));
};
var handleDelete = function handleDelete(id) {
sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().fire({
title: 'Are you sure?',
text: 'You won\'t be able to revert this!',
icon: 'warning',
showConfirmButton: false,
showCancelButton: false,
html: "\n
\n \n \n
\n ",
didOpen: function didOpen() {
var _Swal$getPopup, _Swal$getPopup2;
var confirmButton = (_Swal$getPopup = sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().getPopup()) === null || _Swal$getPopup === void 0 ? void 0 : _Swal$getPopup.querySelector('#confirm-delete');
var cancelButton = (_Swal$getPopup2 = sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().getPopup()) === null || _Swal$getPopup2 === void 0 ? void 0 : _Swal$getPopup2.querySelector('#cancel-delete');
confirmButton === null || confirmButton === void 0 || confirmButton.addEventListener('click', function () {
dispatch((0,_services_interested_team_core_actions__WEBPACK_IMPORTED_MODULE_2__.deleteInterestedTeamAction)(id)).then(function () {
sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().fire('Deleted!', 'The item has been deleted.', 'success');
dispatch((0,_services_interested_team_core_actions__WEBPACK_IMPORTED_MODULE_2__.fetchInterestedTeams)());
});
sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().close();
});
cancelButton === null || cancelButton === void 0 || cancelButton.addEventListener('click', function () {
sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().close();
});
}
});
};
var handleSearch = function handleSearch() {
// Triggers search by setting state
setSearchText(searchText.trim());
};
var handleReset = function handleReset() {
// Clears input and shows all data
setSearchText('');
};
var columns = [{
title: 'αααααα',
dataIndex: 'index',
key: 'index',
responsive: ['sm']
}, {
title: 'ααααα',
dataIndex: 'name',
key: 'name',
responsive: ['sm']
}, {
title: 'ααα·ααΆα',
dataIndex: 'description',
key: 'description',
responsive: ['sm']
}, {
title: 'Action',
key: 'action',
responsive: ['xs', 'sm', 'md', 'lg'],
render: function render(_, record) {
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_6__["default"], {
size: "middle"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_8__["default"], null),
type: "primary",
onClick: function onClick() {
return handleEdit(record.id);
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_9__["default"], null),
danger: true,
onClick: function onClick() {
return handleDelete(record.id);
}
}));
}
}];
var filteredData = (interestedTeams || []).filter(function (it) {
var _it$name;
return (_it$name = it.name) === null || _it$name === void 0 ? void 0 : _it$name.toLowerCase().includes(searchText.toLowerCase());
});
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
style: {
overflowX: 'auto'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("h2", null, "\u1794\u1789\u17D2\u1787\u17B8\u1780\u17D2\u179A\u17BB\u1798\u1785\u17B6\u1794\u17CB\u17A2\u17B6\u179A\u1798\u17D2\u1798\u178E\u17CD"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
style: {
display: 'flex',
justifyContent: 'space-between',
padding: '10px',
background: '#f5f5f5',
marginBottom: '10px',
flexWrap: 'wrap'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_6__["default"], {
wrap: true
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", null, "\u179F\u179A\u17BB\u1794: ", (filteredData === null || filteredData === void 0 ? void 0 : filteredData.length) || 0), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_10__["default"], {
placeholder: "\u179F\u17D2\u179C\u17C2\u1784\u179A\u1780...",
style: {
width: 200
},
value: searchText,
onChange: function onChange(e) {
return setSearchText(e.target.value);
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), {
onClick: handleSearch,
type: "primary"
}, "\u1785\u1798\u17D2\u179A\u17C4\u17C7"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), {
onClick: handleReset
}, "\u1780\u17C6\u178E\u178F\u17CB\u17A1\u17BE\u1784\u179C\u17B7\u1789")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_6__["default"], {
wrap: true
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_11__["default"], null),
type: "primary",
onClick: function onClick() {
return navigate("/interested-teams/form");
}
}, "\u1794\u1793\u17D2\u1790\u17C2\u1798\u1790\u17D2\u1798\u17B8"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_table__WEBPACK_IMPORTED_MODULE_12__["default"], {
rowSelection: {
type: 'checkbox',
onChange: function onChange(_, selectedRows) {
return setSelectedRows(selectedRows);
}
},
columns: columns,
dataSource: filteredData.map(function (it, index) {
return _objectSpread({
key: it.id,
index: index + 1,
name: it.name
}, it);
}),
pagination: {
pageSize: 10,
showSizeChanger: true
},
scroll: {
x: 'max-content'
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_container_dialogs_loading_dialog__WEBPACK_IMPORTED_MODULE_1__["default"], {
visible: interestedTeamsPending
}));
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (InterestedTeamList);
/***/ }),
/***/ "./src/shared/views/main/language/form.tsx":
/*!*************************************************!*\
!*** ./src/shared/views/main/language/form.tsx ***!
\*************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_10__);
/* harmony import */ var antd_es_row__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! antd/es/row */ "../../../node_modules/antd/lib/row/index.js");
/* harmony import */ var antd_es_col__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! antd/es/col */ "../../../node_modules/antd/lib/col/index.js");
/* harmony import */ var antd_es_input__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! antd/es/input */ "../../../node_modules/antd/lib/input/index.js");
/* harmony import */ var antd_es_message__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! antd/es/message */ "../../../node_modules/antd/lib/message/index.js");
/* harmony import */ var antd_es_form__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! antd/es/form */ "../../../node_modules/antd/lib/form/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs");
/* harmony import */ var _services_language_core_actions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../services/language/core/actions */ "./src/services/language/core/actions.ts");
/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js");
/* harmony import */ var antd_es_input_TextArea__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! antd/es/input/TextArea */ "../../../node_modules/antd/lib/input/TextArea.js");
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _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(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
var NewEditLanguagePage = function NewEditLanguagePage() {
var dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_2__.useDispatch)();
var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_3__.useNavigate)();
var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_2__.useSelector)(function (state) {
return state.language;
}),
language = _useSelector.language,
registerErrorMessage = _useSelector.registerErrorMessage,
languageUpdatePending = _useSelector.languageUpdatePending;
var _Form$useForm = antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].useForm(),
_Form$useForm2 = _slicedToArray(_Form$useForm, 1),
form = _Form$useForm2[0];
var searchParams = new URLSearchParams(location.search);
var id = searchParams.get('id');
var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false),
_useState2 = _slicedToArray(_useState, 2),
isClick = _useState2[0],
setIsClick = _useState2[1];
// π Fetch data when editing or reset form when adding
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
if (id) {
dispatch((0,_services_language_core_actions__WEBPACK_IMPORTED_MODULE_1__.languageDetailAction)(Number(id)));
} else {
form.resetFields(); // Reset form fields when adding a new item
}
}, [dispatch, id, form]);
// π Populate form with fetched data
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
if (id && language) {
form.setFieldsValue({
name: language.name || '',
description: language.description || ''
});
}
}, [language, form, id]);
// π Show success or error alerts
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
if (!languageUpdatePending && isClick) {
if (registerErrorMessage) {
antd_es_message__WEBPACK_IMPORTED_MODULE_5__["default"].error(registerErrorMessage);
} else {
antd_es_message__WEBPACK_IMPORTED_MODULE_5__["default"].success(id ? 'Updated successfully!' : 'Created successfully!');
navigate('/languages');
}
}
}, [languageUpdatePending, registerErrorMessage, id, isClick, navigate]);
// π Handle form submit
var onFinish = function onFinish(values) {
if (id) {
dispatch((0,_services_language_core_actions__WEBPACK_IMPORTED_MODULE_1__.updateLanguageAction)({
id: Number(id),
data: values
}));
form.resetFields();
} else {
dispatch((0,_services_language_core_actions__WEBPACK_IMPORTED_MODULE_1__.createLanguageAction)({
data: values
}));
form.resetFields(); // Reset form after successful creation
}
setIsClick(true);
};
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("h2", null, id ? 'ααααααααΆααΆ' : 'ααααααααααΈααΆααΆ'), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"], {
form: form,
layout: "vertical",
onFinish: onFinish,
style: {
maxWidth: '100%',
margin: '0 auto'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_6__["default"], {
gutter: [12, 12]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], {
span: 12
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, {
label: "\u1788\u17D2\u1798\u17C4\u17C7",
name: "name",
rules: [{
required: true,
message: 'Please enter a name'
}]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_8__["default"], null))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], {
span: 12
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, {
label: "\u1794\u179A\u17B7\u1799\u17B6\u1799",
name: "description"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_input_TextArea__WEBPACK_IMPORTED_MODULE_9__["default"], {
rows: 3
})))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_6__["default"], {
gutter: [12, 12]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], {
span: 3
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_10___default()), {
type: "primary",
block: true,
htmlType: "submit",
loading: languageUpdatePending
}, "Submit"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], {
span: 3
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_10___default()), {
htmlType: "button",
onClick: function onClick() {
return navigate('/languages');
}
}, "Cancel"))))));
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (NewEditLanguagePage);
/***/ }),
/***/ "./src/shared/views/main/language/index.tsx":
/*!**************************************************!*\
!*** ./src/shared/views/main/language/index.tsx ***!
\**************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var antd_es_table__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! antd/es/table */ "../../../node_modules/antd/lib/table/index.js");
/* harmony import */ var antd_es_input__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! antd/es/input */ "../../../node_modules/antd/lib/input/index.js");
/* harmony import */ var antd_es_space__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! antd/es/space */ "../../../node_modules/antd/lib/space/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_7__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs");
/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js");
/* harmony import */ var _container_dialogs_loading_dialog__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../container/dialogs/loading-dialog */ "./src/shared/container/dialogs/loading-dialog.tsx");
/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/EditOutlined.js");
/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/DeleteOutlined.js");
/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/PlusOutlined.js");
/* harmony import */ var _services_language_core_actions__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../services/language/core/actions */ "./src/services/language/core/actions.ts");
/* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! sweetalert2 */ "../../../node_modules/sweetalert2/dist/sweetalert2.all.js");
/* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(sweetalert2__WEBPACK_IMPORTED_MODULE_3__);
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _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(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
var LanguageList = function LanguageList() {
var dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_4__.useDispatch)();
var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_5__.useNavigate)();
var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]),
_useState2 = _slicedToArray(_useState, 2),
selectedRows = _useState2[0],
setSelectedRows = _useState2[1];
var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(''),
_useState4 = _slicedToArray(_useState3, 2),
searchText = _useState4[0],
setSearchText = _useState4[1];
var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_4__.useSelector)(function (state) {
return state.language;
}),
languages = _useSelector.languages,
languagesPending = _useSelector.languagesPending;
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
dispatch((0,_services_language_core_actions__WEBPACK_IMPORTED_MODULE_2__.fetchLanguages)());
}, [dispatch]);
var handleEdit = function handleEdit(id) {
dispatch((0,_services_language_core_actions__WEBPACK_IMPORTED_MODULE_2__.languageDetailAction)(id));
navigate("/languages/form?id=".concat(id));
};
var handleDelete = function handleDelete(id) {
sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().fire({
title: 'Are you sure?',
text: 'You won\'t be able to revert this!',
icon: 'warning',
showConfirmButton: false,
showCancelButton: false,
html: "\n \n \n \n
\n ",
didOpen: function didOpen() {
var _Swal$getPopup, _Swal$getPopup2;
var confirmButton = (_Swal$getPopup = sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().getPopup()) === null || _Swal$getPopup === void 0 ? void 0 : _Swal$getPopup.querySelector('#confirm-delete');
var cancelButton = (_Swal$getPopup2 = sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().getPopup()) === null || _Swal$getPopup2 === void 0 ? void 0 : _Swal$getPopup2.querySelector('#cancel-delete');
confirmButton === null || confirmButton === void 0 || confirmButton.addEventListener('click', function () {
dispatch((0,_services_language_core_actions__WEBPACK_IMPORTED_MODULE_2__.deleteLanguageAction)(id)).then(function () {
sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().fire('Deleted!', 'The item has been deleted.', 'success');
dispatch((0,_services_language_core_actions__WEBPACK_IMPORTED_MODULE_2__.fetchLanguages)());
});
sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().close();
});
cancelButton === null || cancelButton === void 0 || cancelButton.addEventListener('click', function () {
sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().close();
});
}
});
};
var handleSearch = function handleSearch() {
// Triggers search by setting state
setSearchText(searchText.trim());
};
var handleReset = function handleReset() {
// Clears input and shows all data
setSearchText('');
};
var columns = [{
title: 'αααααα',
dataIndex: 'index',
key: 'index',
responsive: ['sm']
}, {
title: 'ααααα',
dataIndex: 'name',
key: 'name',
responsive: ['sm']
}, {
title: 'ααα·ααΆα',
dataIndex: 'description',
key: 'description',
responsive: ['sm']
}, {
title: 'Action',
key: 'action',
responsive: ['xs', 'sm', 'md', 'lg'],
render: function render(_, record) {
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_6__["default"], {
size: "middle"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_8__["default"], null),
type: "primary",
onClick: function onClick() {
return handleEdit(record.id);
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_9__["default"], null),
danger: true,
onClick: function onClick() {
return handleDelete(record.id);
}
}));
}
}];
var filteredData = (languages || []).filter(function (it) {
var _it$name;
return (_it$name = it.name) === null || _it$name === void 0 ? void 0 : _it$name.toLowerCase().includes(searchText.toLowerCase());
});
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
style: {
overflowX: 'auto'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("h2", null, "\u1794\u1789\u17D2\u1787\u17B8\u1797\u17B6\u179F\u17B6"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
style: {
display: 'flex',
justifyContent: 'space-between',
padding: '10px',
background: '#f5f5f5',
marginBottom: '10px',
flexWrap: 'wrap'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_6__["default"], {
wrap: true
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", null, "\u179F\u179A\u17BB\u1794: ", (filteredData === null || filteredData === void 0 ? void 0 : filteredData.length) || 0), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_10__["default"], {
placeholder: "\u179F\u17D2\u179C\u17C2\u1784\u179A\u1780...",
style: {
width: 200
},
value: searchText,
onChange: function onChange(e) {
return setSearchText(e.target.value);
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), {
onClick: handleSearch,
type: "primary"
}, "\u1785\u1798\u17D2\u179A\u17C4\u17C7"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), {
onClick: handleReset
}, "\u1780\u17C6\u178E\u178F\u17CB\u17A1\u17BE\u1784\u179C\u17B7\u1789")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_6__["default"], {
wrap: true
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_11__["default"], null),
type: "primary",
onClick: function onClick() {
return navigate("/languages/form");
}
}, "\u1794\u1793\u17D2\u1790\u17C2\u1798\u1790\u17D2\u1798\u17B8"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_table__WEBPACK_IMPORTED_MODULE_12__["default"], {
rowSelection: {
type: 'checkbox',
onChange: function onChange(_, selectedRows) {
return setSelectedRows(selectedRows);
}
},
columns: columns,
dataSource: filteredData.map(function (it, index) {
return _objectSpread({
key: it.id,
index: index + 1,
name: it.name
}, it);
}),
pagination: {
pageSize: 10,
showSizeChanger: true
},
scroll: {
x: 'max-content'
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_container_dialogs_loading_dialog__WEBPACK_IMPORTED_MODULE_1__["default"], {
visible: languagesPending
}));
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (LanguageList);
/***/ }),
/***/ "./src/shared/views/main/notification/core/notification_service.ts":
/*!*************************************************************************!*\
!*** ./src/shared/views/main/notification/core/notification_service.ts ***!
\*************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ notifyUserByStatus: () => (/* binding */ notifyUserByStatus),
/* harmony export */ notifyUserTelegramService: () => (/* binding */ notifyUserTelegramService)
/* harmony export */ });
/* harmony import */ var _core_base_services__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../core/base/services */ "./src/shared/core/base/services.ts");
/* harmony import */ var _configs_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../configs/constants */ "./src/shared/configs/constants.ts");
function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { if (r) i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n;else { var o = function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); }; o("next", 0), o("throw", 1), o("return", 2); } }, _regeneratorDefine2(e, r, n, t); }
function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
var notifyUserTelegramService = /*#__PURE__*/function () {
var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(user_id, message) {
return _regenerator().w(function (_context) {
while (1) switch (_context.n) {
case 0:
_context.n = 1;
return (0,_core_base_services__WEBPACK_IMPORTED_MODULE_0__.getWithConfig)("".concat(_configs_constants__WEBPACK_IMPORTED_MODULE_1__.URL.NOTIFY, "?user_id=").concat(user_id, "&message=").concat(message));
case 1:
return _context.a(2, _context.v);
}
}, _callee);
}));
return function notifyUserTelegramService(_x, _x2) {
return _ref.apply(this, arguments);
};
}();
var notifyUserByStatus = /*#__PURE__*/function () {
var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(status, message) {
return _regenerator().w(function (_context2) {
while (1) switch (_context2.n) {
case 0:
_context2.n = 1;
return (0,_core_base_services__WEBPACK_IMPORTED_MODULE_0__.getWithConfig)("".concat(_configs_constants__WEBPACK_IMPORTED_MODULE_1__.URL.NOTIFY_STATUS, "?status=").concat(status, "&message=").concat(message));
case 1:
return _context2.a(2, _context2.v);
}
}, _callee2);
}));
return function notifyUserByStatus(_x3, _x4) {
return _ref2.apply(this, arguments);
};
}();
/***/ }),
/***/ "./src/shared/views/main/notification/index.tsx":
/*!******************************************************!*\
!*** ./src/shared/views/main/notification/index.tsx ***!
\******************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var antd_es_modal__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! antd/es/modal */ "../../../node_modules/antd/lib/modal/index.js");
/* harmony import */ var antd_es_row__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! antd/es/row */ "../../../node_modules/antd/lib/row/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_8__);
/* harmony import */ var antd_es_input__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! antd/es/input */ "../../../node_modules/antd/lib/input/index.js");
/* harmony import */ var antd_es_col__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! antd/es/col */ "../../../node_modules/antd/lib/col/index.js");
/* harmony import */ var antd_es_message__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! antd/es/message */ "../../../node_modules/antd/lib/message/index.js");
/* harmony import */ var antd_es_select__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! antd/es/select */ "../../../node_modules/antd/lib/select/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs");
/* harmony import */ var _core_notification_service__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./core/notification_service */ "./src/shared/views/main/notification/core/notification_service.ts");
function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { if (r) i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n;else { var o = function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); }; o("next", 0), o("throw", 1), o("return", 2); } }, _regeneratorDefine2(e, r, n, t); }
function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _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(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
var Option = antd_es_select__WEBPACK_IMPORTED_MODULE_2__["default"].Option;
var Invitation_to_Volunteer_Briefing_Meeting = "\n\uD83D\uDCE2 **\u1780\u17B6\u179A\u17A2\u1789\u17D2\u1787\u17BE\u1789\u1785\u17BC\u179B\u179A\u17BD\u1798\u1780\u17B7\u1785\u17D2\u1785\u1794\u17D2\u179A\u1787\u17BB\u17C6\u1795\u17D2\u179F\u1796\u17D2\u179C\u1795\u17D2\u179F\u17B6\u1799\u17A2\u17C6\u1796\u17B8\u178F\u17BD\u1793\u17B6\u1791\u17B8\u1797\u17B6\u179A\u1780\u17B7\u1785\u17D2\u1785**\n\n\n\uD83D\uDCDD **\u179F\u17BC\u1798\u17A2\u1789\u17D2\u1787\u17BE\u1789\u179B\u17C4\u1780\u17A2\u17D2\u1793\u1780** \u1785\u17BC\u179B\u179A\u17BD\u1798\u1780\u17B7\u1785\u17D2\u1785\u1794\u17D2\u179A\u1787\u17BB\u17C6\u1795\u17D2\u179F\u1796\u17D2\u179C\u1795\u17D2\u179F\u17B6\u1799\u17A2\u17C6\u1796\u17B8 **\u178F\u17BD\u1793\u17B6\u1791\u17B8\u1797\u17B6\u179A\u1780\u17B7\u1785\u17D2\u1785\u1780\u17D2\u179A\u17BB\u1798\u1780\u17B6\u179A\u1784\u17B6\u179A**\n\u178A\u17BE\u1798\u17D2\u1794\u17B8\u179A\u17C0\u1794\u1785\u17C6\u1781\u17D2\u179B\u17BD\u1793\u1787\u17B6\u179F\u17D2\u1798\u17D0\u1782\u17D2\u179A\u1785\u17B7\u178F\u17D2\u178F\u1780\u17D2\u1793\u17BB\u1784 **\u1796\u17D2\u179A\u17B9\u178F\u17D2\u178F\u17B7\u1780\u17B6\u179A\u178E\u17CD\u17A2\u1784\u17D2\u1782\u179A\u179F\u1784\u17D2\u1780\u17D2\u179A\u17B6\u1793\u17D2\u178F \u17E2\u17E0\u17E2\u17E5**\u3002\n\n\n\uD83D\uDCC5 \u1780\u17B6\u179B\u1794\u179A\u17B7\u1785\u17D2\u1786\u17C1\u1791\u17D6 \u1790\u17D2\u1784\u17C3\u179F\u17C5\u179A\u17CD \u1791\u17B8 \u17E2\u17E9 \u1781\u17C2\u1798\u17B8\u1793\u17B6 \u17E2\u17E0\u17E2\u17E5\n\u23F0 \u1796\u17C1\u179B\u179C\u17C1\u179B\u17B6\u17D6 \u17E9:\u17E0\u17E0 \u1796\u17D2\u179A\u17B9\u1780\n\uD83D\uDCCD \u1791\u17B8\u178F\u17B6\u17C6\u1784\u17D6 \u1791\u17B8\u179B\u17B6\u1793\u1795\u17D2\u178F\u17B6\u1785\u17CB\u1796\u17D2\u179A\u17D0\u178F\u17D2\u179A\u179F\u17A0\u1796\u17D0\u1793\u17D2\u1792\u1780\u17B8\u17A1\u17B6\u1794\u17CA\u17BC\u179B \u1793\u17B7\u1784\u1794\u17C9\u17C1\u178F\u1784\u17CB\u1780\u1798\u17D2\u1796\u17BB\u1787\u17B6 (\u1796\u17A0\u17BB\u1780\u17B8\u17A1\u178A\u17D2\u178B\u17B6\u1793\u1787\u17B6\u178F\u17B7)\n\uD83D\uDC55 \u179F\u1798\u17D2\u179B\u17C0\u1780\u1794\u17C6\u1796\u17B6\u1780\u17CB\u17D6 \u179F\u1798\u179A\u1798\u17D2\u1799\n\n\uD83D\uDCDE \u1796\u17D0\u178F\u17CC\u1798\u17B6\u1793\u179B\u1798\u17D2\u17A2\u17B7\u178F\u179F\u17BC\u1798\u1791\u17C6\u1793\u17B6\u1780\u17CB\u1791\u17C6\u1793\u1784\u17D6 098 89 87 67\n";
var NotificationPage = function NotificationPage() {
var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)("PARTICIPANTS"),
_useState2 = _slicedToArray(_useState, 2),
selectedStatus = _useState2[0],
setSelectedStatus = _useState2[1];
var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(Invitation_to_Volunteer_Briefing_Meeting),
_useState4 = _slicedToArray(_useState3, 2),
messageText = _useState4[0],
setMessageText = _useState4[1];
var _useState5 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false),
_useState6 = _slicedToArray(_useState5, 2),
loading = _useState6[0],
setLoading = _useState6[1];
var _useState7 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false),
_useState8 = _slicedToArray(_useState7, 2),
confirmVisible = _useState8[0],
setConfirmVisible = _useState8[1];
var _useState9 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false),
_useState0 = _slicedToArray(_useState9, 2),
finalConfirmVisible = _useState0[0],
setFinalConfirmVisible = _useState0[1];
var _useState1 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(""),
_useState10 = _slicedToArray(_useState1, 2),
sendType = _useState10[0],
setSendType = _useState10[1];
var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_3__.useSelector)(function (state) {
return state;
}),
auth = _useSelector.auth;
var users = auth.users;
var userStatuses = ["PARTICIPANTS", "SHORTLIST", "INTERVIEW", "RESERVE", "FAILED", "RESIGNATION", "DISQUALIFICATION", "REGISTER"];
var showConfirmDialog = function showConfirmDialog(type) {
if (!messageText) {
return antd_es_message__WEBPACK_IMPORTED_MODULE_4__["default"].warning("Please enter a message before sending.");
}
setSendType(type);
setConfirmVisible(true);
};
var handleFirstConfirm = function handleFirstConfirm() {
setConfirmVisible(false);
setFinalConfirmVisible(true);
};
var handleConfirmSend = /*#__PURE__*/function () {
var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() {
var _t;
return _regenerator().w(function (_context) {
while (1) switch (_context.n) {
case 0:
setLoading(true);
setFinalConfirmVisible(false);
_context.p = 1;
if (!(sendType === "user")) {
_context.n = 3;
break;
}
_context.n = 2;
return (0,_core_notification_service__WEBPACK_IMPORTED_MODULE_1__.notifyUserTelegramService)(users.id, messageText);
case 2:
_context.n = 4;
break;
case 3:
_context.n = 4;
return (0,_core_notification_service__WEBPACK_IMPORTED_MODULE_1__.notifyUserByStatus)(selectedStatus, messageText);
case 4:
antd_es_message__WEBPACK_IMPORTED_MODULE_4__["default"].success("Message(s) sent successfully!");
setMessageText(Invitation_to_Volunteer_Briefing_Meeting);
_context.n = 6;
break;
case 5:
_context.p = 5;
_t = _context.v;
antd_es_message__WEBPACK_IMPORTED_MODULE_4__["default"].error("Failed to send message(s)!");
case 6:
setLoading(false);
case 7:
return _context.a(2);
}
}, _callee, null, [[1, 5]]);
}));
return function handleConfirmSend() {
return _ref.apply(this, arguments);
};
}();
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
style: {
padding: 20
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("h2", null, "Send Notifications"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
style: {
marginBottom: 20
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_5__["default"], {
gutter: [16, 16]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_6__["default"], {
span: 16,
lg: 24
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_select__WEBPACK_IMPORTED_MODULE_2__["default"], {
placeholder: "Select User Status",
value: selectedStatus,
onChange: setSelectedStatus,
style: {
width: 200
}
}, userStatuses.map(function (status) {
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Option, {
key: status,
value: status
}, status);
}))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_6__["default"], {
span: 16,
lg: 24
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_7__["default"].TextArea, {
placeholder: "Enter Message",
value: messageText,
onChange: function onChange(e) {
return setMessageText(e.target.value);
},
rows: 20
})), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_6__["default"], {
span: 16,
lg: 24
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_8___default()), {
type: "primary",
onClick: function onClick() {
return showConfirmDialog("status");
},
loading: loading
}, "Send by Status")))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_modal__WEBPACK_IMPORTED_MODULE_9__["default"], {
title: "Confirm Sending Message",
visible: confirmVisible,
onOk: handleFirstConfirm,
onCancel: function onCancel() {
return setConfirmVisible(false);
},
okText: "Proceed",
cancelText: "Cancel"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_6__["default"], null, "Are you sure you want to send this message?"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("p", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("strong", null, "Message:"), " ", messageText), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("p", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("strong", null, "User Status:"), " ", selectedStatus)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_modal__WEBPACK_IMPORTED_MODULE_9__["default"], {
title: "Final Confirmation",
visible: finalConfirmVisible,
onOk: handleConfirmSend,
onCancel: function onCancel() {
return setFinalConfirmVisible(false);
},
okText: "Yes, Send",
cancelText: "Cancel"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("p", null, "This is your final confirmation. Do you want to proceed with sending the message?")));
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (NotificationPage);
/***/ }),
/***/ "./src/shared/views/main/occupation/form.tsx":
/*!***************************************************!*\
!*** ./src/shared/views/main/occupation/form.tsx ***!
\***************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_10__);
/* harmony import */ var antd_es_row__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! antd/es/row */ "../../../node_modules/antd/lib/row/index.js");
/* harmony import */ var antd_es_col__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! antd/es/col */ "../../../node_modules/antd/lib/col/index.js");
/* harmony import */ var antd_es_input__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! antd/es/input */ "../../../node_modules/antd/lib/input/index.js");
/* harmony import */ var antd_es_message__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! antd/es/message */ "../../../node_modules/antd/lib/message/index.js");
/* harmony import */ var antd_es_form__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! antd/es/form */ "../../../node_modules/antd/lib/form/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs");
/* harmony import */ var _services_occupation_core_actions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../services/occupation/core/actions */ "./src/services/occupation/core/actions.ts");
/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js");
/* harmony import */ var antd_es_input_TextArea__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! antd/es/input/TextArea */ "../../../node_modules/antd/lib/input/TextArea.js");
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _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(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
var NewEditOccupationPage = function NewEditOccupationPage() {
var dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_2__.useDispatch)();
var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_3__.useNavigate)();
var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_2__.useSelector)(function (state) {
return state.occupation;
}),
occupation = _useSelector.occupation,
registerErrorMessage = _useSelector.registerErrorMessage,
occupationUpdatePending = _useSelector.occupationUpdatePending;
var _Form$useForm = antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].useForm(),
_Form$useForm2 = _slicedToArray(_Form$useForm, 1),
form = _Form$useForm2[0];
var searchParams = new URLSearchParams(location.search);
var id = searchParams.get('id');
var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false),
_useState2 = _slicedToArray(_useState, 2),
isClick = _useState2[0],
setIsClick = _useState2[1];
// π Fetch data when editing or reset form when adding
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
if (id) {
dispatch((0,_services_occupation_core_actions__WEBPACK_IMPORTED_MODULE_1__.occupationDetailAction)(Number(id)));
} else {
form.resetFields(); // Reset form fields when adding a new item
}
}, [dispatch, id, form]);
// π Populate form with fetched data
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
if (id && occupation) {
form.setFieldsValue({
name: occupation.name || '',
description: occupation.description || ''
});
}
}, [occupation, form, id]);
// π Show success or error alerts
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
if (!occupationUpdatePending && isClick) {
if (registerErrorMessage) {
antd_es_message__WEBPACK_IMPORTED_MODULE_5__["default"].error(registerErrorMessage);
} else {
antd_es_message__WEBPACK_IMPORTED_MODULE_5__["default"].success(id ? 'Updated successfully!' : 'Created successfully!');
navigate('/occupations');
}
}
}, [occupationUpdatePending, registerErrorMessage, id, isClick, navigate]);
// π Handle form submit
var onFinish = function onFinish(values) {
if (id) {
dispatch((0,_services_occupation_core_actions__WEBPACK_IMPORTED_MODULE_1__.updateOccupationAction)({
id: Number(id),
data: values
}));
form.resetFields();
} else {
dispatch((0,_services_occupation_core_actions__WEBPACK_IMPORTED_MODULE_1__.createOccupationAction)({
data: values
}));
form.resetFields(); // Reset form after successful creation
}
setIsClick(true);
};
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("h2", null, id ? 'αααααααα»αααα' : 'ααααααααααΈαα»αααα'), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"], {
form: form,
layout: "vertical",
onFinish: onFinish,
style: {
maxWidth: '100%',
margin: '0 auto'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_6__["default"], {
gutter: [12, 12]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], {
span: 12
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, {
label: "\u1788\u17D2\u1798\u17C4\u17C7",
name: "name",
rules: [{
required: true,
message: 'Please enter a name'
}]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_8__["default"], null))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], {
span: 12
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, {
label: "\u1794\u179A\u17B7\u1799\u17B6\u1799",
name: "description"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_input_TextArea__WEBPACK_IMPORTED_MODULE_9__["default"], {
rows: 3
})))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_6__["default"], {
gutter: [12, 12]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], {
span: 3
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_10___default()), {
type: "primary",
block: true,
htmlType: "submit",
loading: occupationUpdatePending
}, "Submit"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], {
span: 3
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_10___default()), {
htmlType: "button",
onClick: function onClick() {
return navigate('/occupations');
}
}, "Cancel"))))));
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (NewEditOccupationPage);
/***/ }),
/***/ "./src/shared/views/main/occupation/index.tsx":
/*!****************************************************!*\
!*** ./src/shared/views/main/occupation/index.tsx ***!
\****************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var antd_es_table__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! antd/es/table */ "../../../node_modules/antd/lib/table/index.js");
/* harmony import */ var antd_es_input__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! antd/es/input */ "../../../node_modules/antd/lib/input/index.js");
/* harmony import */ var antd_es_space__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! antd/es/space */ "../../../node_modules/antd/lib/space/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_7__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs");
/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js");
/* harmony import */ var _container_dialogs_loading_dialog__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../container/dialogs/loading-dialog */ "./src/shared/container/dialogs/loading-dialog.tsx");
/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/EditOutlined.js");
/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/DeleteOutlined.js");
/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/PlusOutlined.js");
/* harmony import */ var _services_occupation_core_actions__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../services/occupation/core/actions */ "./src/services/occupation/core/actions.ts");
/* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! sweetalert2 */ "../../../node_modules/sweetalert2/dist/sweetalert2.all.js");
/* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(sweetalert2__WEBPACK_IMPORTED_MODULE_3__);
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _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(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
var OccupationList = function OccupationList() {
var dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_4__.useDispatch)();
var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_5__.useNavigate)();
var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]),
_useState2 = _slicedToArray(_useState, 2),
selectedRows = _useState2[0],
setSelectedRows = _useState2[1];
var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(''),
_useState4 = _slicedToArray(_useState3, 2),
searchText = _useState4[0],
setSearchText = _useState4[1];
var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_4__.useSelector)(function (state) {
return state.occupation;
}),
occupations = _useSelector.occupations,
occupationsPending = _useSelector.occupationsPending;
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
dispatch((0,_services_occupation_core_actions__WEBPACK_IMPORTED_MODULE_2__.fetchOccupations)());
}, [dispatch]);
var handleEdit = function handleEdit(id) {
dispatch((0,_services_occupation_core_actions__WEBPACK_IMPORTED_MODULE_2__.occupationDetailAction)(id));
navigate("/occupations/form?id=".concat(id));
};
var handleDelete = function handleDelete(id) {
sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().fire({
title: 'Are you sure?',
text: 'You won\'t be able to revert this!',
icon: 'warning',
showConfirmButton: false,
showCancelButton: false,
html: "\n \n \n \n
\n ",
didOpen: function didOpen() {
var _Swal$getPopup, _Swal$getPopup2;
var confirmButton = (_Swal$getPopup = sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().getPopup()) === null || _Swal$getPopup === void 0 ? void 0 : _Swal$getPopup.querySelector('#confirm-delete');
var cancelButton = (_Swal$getPopup2 = sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().getPopup()) === null || _Swal$getPopup2 === void 0 ? void 0 : _Swal$getPopup2.querySelector('#cancel-delete');
confirmButton === null || confirmButton === void 0 || confirmButton.addEventListener('click', function () {
dispatch((0,_services_occupation_core_actions__WEBPACK_IMPORTED_MODULE_2__.deleteOccupationAction)(id)).then(function () {
sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().fire('Deleted!', 'The item has been deleted.', 'success');
dispatch((0,_services_occupation_core_actions__WEBPACK_IMPORTED_MODULE_2__.fetchOccupations)());
});
sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().close();
});
cancelButton === null || cancelButton === void 0 || cancelButton.addEventListener('click', function () {
sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().close();
});
}
});
};
var handleSearch = function handleSearch() {
// Triggers search by setting state
setSearchText(searchText.trim());
};
var handleReset = function handleReset() {
// Clears input and shows all data
setSearchText('');
};
var columns = [{
title: 'αααααα',
dataIndex: 'index',
key: 'index',
responsive: ['sm']
}, {
title: 'ααααα',
dataIndex: 'name',
key: 'name',
responsive: ['sm']
}, {
title: 'ααα·ααΆα',
dataIndex: 'description',
key: 'description',
responsive: ['sm']
}, {
title: 'Action',
key: 'action',
responsive: ['xs', 'sm', 'md', 'lg'],
render: function render(_, record) {
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_6__["default"], {
size: "middle"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_8__["default"], null),
type: "primary",
onClick: function onClick() {
return handleEdit(record.id);
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_9__["default"], null),
danger: true,
onClick: function onClick() {
return handleDelete(record.id);
}
}));
}
}];
var filteredData = (occupations || []).filter(function (it) {
var _it$name;
return (_it$name = it.name) === null || _it$name === void 0 ? void 0 : _it$name.toLowerCase().includes(searchText.toLowerCase());
});
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
style: {
overflowX: 'auto'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("h2", null, "\u1794\u1789\u17D2\u1787\u17B8\u1798\u17BB\u1781\u179A\u1794\u179A"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
style: {
display: 'flex',
justifyContent: 'space-between',
padding: '10px',
background: '#f5f5f5',
marginBottom: '10px',
flexWrap: 'wrap'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_6__["default"], {
wrap: true
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", null, "\u179F\u179A\u17BB\u1794: ", (filteredData === null || filteredData === void 0 ? void 0 : filteredData.length) || 0), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_10__["default"], {
placeholder: "\u179F\u17D2\u179C\u17C2\u1784\u179A\u1780...",
style: {
width: 200
},
value: searchText,
onChange: function onChange(e) {
return setSearchText(e.target.value);
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), {
onClick: handleSearch,
type: "primary"
}, "\u1785\u1798\u17D2\u179A\u17C4\u17C7"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), {
onClick: handleReset
}, "\u1780\u17C6\u178E\u178F\u17CB\u17A1\u17BE\u1784\u179C\u17B7\u1789")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_6__["default"], {
wrap: true
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_11__["default"], null),
type: "primary",
onClick: function onClick() {
return navigate("/occupations/form");
}
}, "\u1794\u1793\u17D2\u1790\u17C2\u1798\u1790\u17D2\u1798\u17B8"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_table__WEBPACK_IMPORTED_MODULE_12__["default"], {
rowSelection: {
type: 'checkbox',
onChange: function onChange(_, selectedRows) {
return setSelectedRows(selectedRows);
}
},
columns: columns,
dataSource: filteredData.map(function (it, index) {
return _objectSpread({
key: it.id,
index: index + 1,
name: it.name
}, it);
}),
pagination: {
pageSize: 10,
showSizeChanger: true
},
scroll: {
x: 'max-content'
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_container_dialogs_loading_dialog__WEBPACK_IMPORTED_MODULE_1__["default"], {
visible: occupationsPending
}));
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (OccupationList);
/***/ }),
/***/ "./src/shared/views/main/offer_program/form.tsx":
/*!******************************************************!*\
!*** ./src/shared/views/main/offer_program/form.tsx ***!
\******************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_10__);
/* harmony import */ var antd_es_row__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! antd/es/row */ "../../../node_modules/antd/lib/row/index.js");
/* harmony import */ var antd_es_col__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! antd/es/col */ "../../../node_modules/antd/lib/col/index.js");
/* harmony import */ var antd_es_input__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! antd/es/input */ "../../../node_modules/antd/lib/input/index.js");
/* harmony import */ var antd_es_message__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! antd/es/message */ "../../../node_modules/antd/lib/message/index.js");
/* harmony import */ var antd_es_form__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! antd/es/form */ "../../../node_modules/antd/lib/form/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs");
/* harmony import */ var _services_offer_program_core_actions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../services/offer_program/core/actions */ "./src/services/offer_program/core/actions.ts");
/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js");
/* harmony import */ var antd_es_input_TextArea__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! antd/es/input/TextArea */ "../../../node_modules/antd/lib/input/TextArea.js");
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _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(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
var NewEditOfferProgramPage = function NewEditOfferProgramPage() {
var dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_2__.useDispatch)();
var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_3__.useNavigate)();
var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_2__.useSelector)(function (state) {
return state.offerProgram;
}),
offerProgram = _useSelector.offerProgram,
registerErrorMessage = _useSelector.registerErrorMessage,
offerProgramUpdatePending = _useSelector.offerProgramUpdatePending;
var _Form$useForm = antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].useForm(),
_Form$useForm2 = _slicedToArray(_Form$useForm, 1),
form = _Form$useForm2[0];
var searchParams = new URLSearchParams(location.search);
var id = searchParams.get('id');
var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false),
_useState2 = _slicedToArray(_useState, 2),
isClick = _useState2[0],
setIsClick = _useState2[1];
// π Fetch data when editing or reset form when adding
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
if (id) {
dispatch((0,_services_offer_program_core_actions__WEBPACK_IMPORTED_MODULE_1__.offerProgramDetailAction)(Number(id)));
} else {
form.resetFields(); // Reset form fields when adding a new item
}
}, [dispatch, id, form]);
// π Populate form with fetched data
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
if (id && offerProgram) {
form.setFieldsValue({
name: offerProgram.name || '',
description: offerProgram.description || ''
});
}
}, [offerProgram, form, id]);
// π Show success or error alerts
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
if (!offerProgramUpdatePending && isClick) {
if (registerErrorMessage) {
antd_es_message__WEBPACK_IMPORTED_MODULE_5__["default"].error(registerErrorMessage);
} else {
antd_es_message__WEBPACK_IMPORTED_MODULE_5__["default"].success(id ? 'Updated successfully!' : 'Created successfully!');
navigate('/offer-programs');
}
}
}, [offerProgramUpdatePending, registerErrorMessage, id, isClick, navigate]);
// π Handle form submit
var onFinish = function onFinish(values) {
if (id) {
dispatch((0,_services_offer_program_core_actions__WEBPACK_IMPORTED_MODULE_1__.updateOfferProgramAction)({
id: Number(id),
data: values
}));
form.resetFields();
} else {
dispatch((0,_services_offer_program_core_actions__WEBPACK_IMPORTED_MODULE_1__.createOfferProgramAction)({
data: values
}));
form.resetFields(); // Reset form after successful creation
}
setIsClick(true);
};
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("h2", null, id ? 'ααααααααααααΈααΈαααααααΌαβ' : 'ααααααααααΈααααααΈααΈαααααααΌαβ'), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"], {
form: form,
layout: "vertical",
onFinish: onFinish,
style: {
maxWidth: '100%',
margin: '0 auto'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_6__["default"], {
gutter: [12, 12]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], {
span: 12
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, {
label: "\u1788\u17D2\u1798\u17C4\u17C7",
name: "name",
rules: [{
required: true,
message: 'Please enter a name'
}]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_8__["default"], null))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], {
span: 12
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, {
label: "\u1794\u179A\u17B7\u1799\u17B6\u1799",
name: "description"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_input_TextArea__WEBPACK_IMPORTED_MODULE_9__["default"], {
rows: 3
})))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_6__["default"], {
gutter: [12, 12]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], {
span: 3
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_10___default()), {
type: "primary",
block: true,
htmlType: "submit",
loading: offerProgramUpdatePending
}, "Submit"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], {
span: 3
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_10___default()), {
htmlType: "button",
onClick: function onClick() {
return navigate('/offer-programs');
}
}, "Cancel"))))));
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (NewEditOfferProgramPage);
/***/ }),
/***/ "./src/shared/views/main/offer_program/index.tsx":
/*!*******************************************************!*\
!*** ./src/shared/views/main/offer_program/index.tsx ***!
\*******************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var antd_es_table__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! antd/es/table */ "../../../node_modules/antd/lib/table/index.js");
/* harmony import */ var antd_es_input__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! antd/es/input */ "../../../node_modules/antd/lib/input/index.js");
/* harmony import */ var antd_es_space__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! antd/es/space */ "../../../node_modules/antd/lib/space/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_7__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs");
/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js");
/* harmony import */ var _container_dialogs_loading_dialog__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../container/dialogs/loading-dialog */ "./src/shared/container/dialogs/loading-dialog.tsx");
/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/EditOutlined.js");
/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/DeleteOutlined.js");
/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/PlusOutlined.js");
/* harmony import */ var _services_offer_program_core_actions__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../services/offer_program/core/actions */ "./src/services/offer_program/core/actions.ts");
/* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! sweetalert2 */ "../../../node_modules/sweetalert2/dist/sweetalert2.all.js");
/* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(sweetalert2__WEBPACK_IMPORTED_MODULE_3__);
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _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(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
var OfferProgramList = function OfferProgramList() {
var dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_4__.useDispatch)();
var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_5__.useNavigate)();
var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]),
_useState2 = _slicedToArray(_useState, 2),
selectedRows = _useState2[0],
setSelectedRows = _useState2[1];
var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(''),
_useState4 = _slicedToArray(_useState3, 2),
searchText = _useState4[0],
setSearchText = _useState4[1];
var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_4__.useSelector)(function (state) {
return state.offerProgram;
}),
offerPrograms = _useSelector.offerPrograms,
offerProgramsPending = _useSelector.offerProgramsPending;
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
dispatch((0,_services_offer_program_core_actions__WEBPACK_IMPORTED_MODULE_2__.fetchOfferPrograms)());
}, [dispatch]);
var handleEdit = function handleEdit(id) {
dispatch((0,_services_offer_program_core_actions__WEBPACK_IMPORTED_MODULE_2__.offerProgramDetailAction)(id));
navigate("/offer-programs/form?id=".concat(id));
};
var handleDelete = function handleDelete(id) {
sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().fire({
title: 'Are you sure?',
text: 'You won\'t be able to revert this!',
icon: 'warning',
showConfirmButton: false,
showCancelButton: false,
html: "\n \n \n \n
\n ",
didOpen: function didOpen() {
var _Swal$getPopup, _Swal$getPopup2;
var confirmButton = (_Swal$getPopup = sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().getPopup()) === null || _Swal$getPopup === void 0 ? void 0 : _Swal$getPopup.querySelector('#confirm-delete');
var cancelButton = (_Swal$getPopup2 = sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().getPopup()) === null || _Swal$getPopup2 === void 0 ? void 0 : _Swal$getPopup2.querySelector('#cancel-delete');
confirmButton === null || confirmButton === void 0 || confirmButton.addEventListener('click', function () {
dispatch((0,_services_offer_program_core_actions__WEBPACK_IMPORTED_MODULE_2__.deleteOfferProgramAction)(id)).then(function () {
sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().fire('Deleted!', 'The item has been deleted.', 'success');
dispatch((0,_services_offer_program_core_actions__WEBPACK_IMPORTED_MODULE_2__.fetchOfferPrograms)());
});
sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().close();
});
cancelButton === null || cancelButton === void 0 || cancelButton.addEventListener('click', function () {
sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().close();
});
}
});
};
var handleSearch = function handleSearch() {
// Triggers search by setting state
setSearchText(searchText.trim());
};
var handleReset = function handleReset() {
// Clears input and shows all data
setSearchText('');
};
var columns = [{
title: 'αααααα',
dataIndex: 'index',
key: 'index',
responsive: ['sm']
}, {
title: 'ααααα',
dataIndex: 'name',
key: 'name',
responsive: ['sm']
}, {
title: 'ααα·ααΆα',
dataIndex: 'description',
key: 'description',
responsive: ['sm']
}, {
title: 'Action',
key: 'action',
responsive: ['xs', 'sm', 'md', 'lg'],
render: function render(_, record) {
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_6__["default"], {
size: "middle"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_8__["default"], null),
type: "primary",
onClick: function onClick() {
return handleEdit(record.id);
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_9__["default"], null),
danger: true,
onClick: function onClick() {
return handleDelete(record.id);
}
}));
}
}];
var filteredData = (offerPrograms || []).filter(function (it) {
var _it$name;
return (_it$name = it.name) === null || _it$name === void 0 ? void 0 : _it$name.toLowerCase().includes(searchText.toLowerCase());
});
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
style: {
overflowX: 'auto'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("h2", null, "\u1794\u1789\u17D2\u1787\u17B8\u1780\u1798\u17D2\u1798\u179C\u17B8\u1792\u17B8\u1795\u17D2\u178A\u179B\u17CB\u1787\u17BC\u1793\u200B"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
style: {
display: 'flex',
justifyContent: 'space-between',
padding: '10px',
background: '#f5f5f5',
marginBottom: '10px',
flexWrap: 'wrap'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_6__["default"], {
wrap: true
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", null, "\u179F\u179A\u17BB\u1794: ", (filteredData === null || filteredData === void 0 ? void 0 : filteredData.length) || 0), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_10__["default"], {
placeholder: "\u179F\u17D2\u179C\u17C2\u1784\u179A\u1780...",
style: {
width: 200
},
value: searchText,
onChange: function onChange(e) {
return setSearchText(e.target.value);
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), {
onClick: handleSearch,
type: "primary"
}, "\u1785\u1798\u17D2\u179A\u17C4\u17C7"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), {
onClick: handleReset
}, "\u1780\u17C6\u178E\u178F\u17CB\u17A1\u17BE\u1784\u179C\u17B7\u1789")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_6__["default"], {
wrap: true
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_11__["default"], null),
type: "primary",
onClick: function onClick() {
return navigate("/offer-programs/form");
}
}, "\u1794\u1793\u17D2\u1790\u17C2\u1798\u1790\u17D2\u1798\u17B8"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_table__WEBPACK_IMPORTED_MODULE_12__["default"], {
rowSelection: {
type: 'checkbox',
onChange: function onChange(_, selectedRows) {
return setSelectedRows(selectedRows);
}
},
columns: columns,
dataSource: filteredData.map(function (it, index) {
return _objectSpread({
key: it.id,
index: index + 1,
name: it.name
}, it);
}),
pagination: {
pageSize: 10,
showSizeChanger: true
},
scroll: {
x: 'max-content'
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_container_dialogs_loading_dialog__WEBPACK_IMPORTED_MODULE_1__["default"], {
visible: offerProgramsPending
}));
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (OfferProgramList);
/***/ }),
/***/ "./src/shared/views/main/opportunity_source/form.tsx":
/*!***********************************************************!*\
!*** ./src/shared/views/main/opportunity_source/form.tsx ***!
\***********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_10__);
/* harmony import */ var antd_es_row__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! antd/es/row */ "../../../node_modules/antd/lib/row/index.js");
/* harmony import */ var antd_es_col__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! antd/es/col */ "../../../node_modules/antd/lib/col/index.js");
/* harmony import */ var antd_es_input__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! antd/es/input */ "../../../node_modules/antd/lib/input/index.js");
/* harmony import */ var antd_es_message__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! antd/es/message */ "../../../node_modules/antd/lib/message/index.js");
/* harmony import */ var antd_es_form__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! antd/es/form */ "../../../node_modules/antd/lib/form/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs");
/* harmony import */ var _services_opportunity_source_core_actions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../services/opportunity_source/core/actions */ "./src/services/opportunity_source/core/actions.ts");
/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js");
/* harmony import */ var antd_es_input_TextArea__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! antd/es/input/TextArea */ "../../../node_modules/antd/lib/input/TextArea.js");
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _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(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
var NewEditOpportunitySourcePage = function NewEditOpportunitySourcePage() {
var dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_2__.useDispatch)();
var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_3__.useNavigate)();
var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_2__.useSelector)(function (state) {
return state.opportunitySource;
}),
opportunitySource = _useSelector.opportunitySource,
registerErrorMessage = _useSelector.registerErrorMessage,
opportunitySourceUpdatePending = _useSelector.opportunitySourceUpdatePending;
var _Form$useForm = antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].useForm(),
_Form$useForm2 = _slicedToArray(_Form$useForm, 1),
form = _Form$useForm2[0];
var searchParams = new URLSearchParams(location.search);
var id = searchParams.get('id');
var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false),
_useState2 = _slicedToArray(_useState, 2),
isClick = _useState2[0],
setIsClick = _useState2[1];
// π Fetch data when editing or reset form when adding
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
if (id) {
dispatch((0,_services_opportunity_source_core_actions__WEBPACK_IMPORTED_MODULE_1__.opportunitySourceDetailAction)(Number(id)));
} else {
form.resetFields(); // Reset form fields when adding a new item
}
}, [dispatch, id, form]);
// π Populate form with fetched data
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
if (id && opportunitySource) {
form.setFieldsValue({
name: opportunitySource.name || '',
description: opportunitySource.description || ''
});
}
}, [opportunitySource, form, id]);
// π Show success or error alerts
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
if (!opportunitySourceUpdatePending && isClick) {
if (registerErrorMessage) {
antd_es_message__WEBPACK_IMPORTED_MODULE_5__["default"].error(registerErrorMessage);
} else {
antd_es_message__WEBPACK_IMPORTED_MODULE_5__["default"].success(id ? 'Updated successfully!' : 'Created successfully!');
navigate('/opportunity-sources');
}
}
}, [opportunitySourceUpdatePending, registerErrorMessage, id, isClick, navigate]);
// π Handle form submit
var onFinish = function onFinish(values) {
if (id) {
dispatch((0,_services_opportunity_source_core_actions__WEBPACK_IMPORTED_MODULE_1__.updateOpportunitySourceAction)({
id: Number(id),
data: values
}));
form.resetFields();
} else {
dispatch((0,_services_opportunity_source_core_actions__WEBPACK_IMPORTED_MODULE_1__.createOpportunitySourceAction)({
data: values
}));
form.resetFields(); // Reset form after successful creation
}
setIsClick(true);
};
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("h2", null, id ? 'αααααααααααα±ααΆα' : 'ααααααααααΈαααααα±ααΆα'), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"], {
form: form,
layout: "vertical",
onFinish: onFinish,
style: {
maxWidth: '100%',
margin: '0 auto'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_6__["default"], {
gutter: [12, 12]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], {
span: 12
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, {
label: "\u1788\u17D2\u1798\u17C4\u17C7",
name: "name",
rules: [{
required: true,
message: 'Please enter a name'
}]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_8__["default"], null))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], {
span: 12
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, {
label: "\u1794\u179A\u17B7\u1799\u17B6\u1799",
name: "description"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_input_TextArea__WEBPACK_IMPORTED_MODULE_9__["default"], {
rows: 3
})))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_6__["default"], {
gutter: [12, 12]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], {
span: 3
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_10___default()), {
type: "primary",
block: true,
htmlType: "submit",
loading: opportunitySourceUpdatePending
}, "Submit"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], {
span: 3
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_10___default()), {
htmlType: "button",
onClick: function onClick() {
return navigate('/opportunity-sources');
}
}, "Cancel"))))));
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (NewEditOpportunitySourcePage);
/***/ }),
/***/ "./src/shared/views/main/opportunity_source/index.tsx":
/*!************************************************************!*\
!*** ./src/shared/views/main/opportunity_source/index.tsx ***!
\************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var antd_es_table__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! antd/es/table */ "../../../node_modules/antd/lib/table/index.js");
/* harmony import */ var antd_es_input__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! antd/es/input */ "../../../node_modules/antd/lib/input/index.js");
/* harmony import */ var antd_es_space__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! antd/es/space */ "../../../node_modules/antd/lib/space/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_7__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs");
/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js");
/* harmony import */ var _container_dialogs_loading_dialog__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../container/dialogs/loading-dialog */ "./src/shared/container/dialogs/loading-dialog.tsx");
/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/EditOutlined.js");
/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/DeleteOutlined.js");
/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/PlusOutlined.js");
/* harmony import */ var _services_opportunity_source_core_actions__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../services/opportunity_source/core/actions */ "./src/services/opportunity_source/core/actions.ts");
/* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! sweetalert2 */ "../../../node_modules/sweetalert2/dist/sweetalert2.all.js");
/* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(sweetalert2__WEBPACK_IMPORTED_MODULE_3__);
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _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(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
var OpportunitySourceList = function OpportunitySourceList() {
var dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_4__.useDispatch)();
var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_5__.useNavigate)();
var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]),
_useState2 = _slicedToArray(_useState, 2),
selectedRows = _useState2[0],
setSelectedRows = _useState2[1];
var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(''),
_useState4 = _slicedToArray(_useState3, 2),
searchText = _useState4[0],
setSearchText = _useState4[1];
var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_4__.useSelector)(function (state) {
return state.opportunitySource;
}),
opportunitySources = _useSelector.opportunitySources,
opportunitySourcesPending = _useSelector.opportunitySourcesPending;
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
dispatch((0,_services_opportunity_source_core_actions__WEBPACK_IMPORTED_MODULE_2__.fetchOpportunitySources)());
}, [dispatch]);
var handleEdit = function handleEdit(id) {
dispatch((0,_services_opportunity_source_core_actions__WEBPACK_IMPORTED_MODULE_2__.opportunitySourceDetailAction)(id));
navigate("/opportunity-sources/form?id=".concat(id));
};
var handleDelete = function handleDelete(id) {
sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().fire({
title: 'Are you sure?',
text: 'You won\'t be able to revert this!',
icon: 'warning',
showConfirmButton: false,
showCancelButton: false,
html: "\n \n \n \n
\n ",
didOpen: function didOpen() {
var _Swal$getPopup, _Swal$getPopup2;
var confirmButton = (_Swal$getPopup = sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().getPopup()) === null || _Swal$getPopup === void 0 ? void 0 : _Swal$getPopup.querySelector('#confirm-delete');
var cancelButton = (_Swal$getPopup2 = sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().getPopup()) === null || _Swal$getPopup2 === void 0 ? void 0 : _Swal$getPopup2.querySelector('#cancel-delete');
confirmButton === null || confirmButton === void 0 || confirmButton.addEventListener('click', function () {
dispatch((0,_services_opportunity_source_core_actions__WEBPACK_IMPORTED_MODULE_2__.deleteOpportunitySourceAction)(id)).then(function () {
sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().fire('Deleted!', 'The item has been deleted.', 'success');
dispatch((0,_services_opportunity_source_core_actions__WEBPACK_IMPORTED_MODULE_2__.fetchOpportunitySources)());
});
sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().close();
});
cancelButton === null || cancelButton === void 0 || cancelButton.addEventListener('click', function () {
sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().close();
});
}
});
};
var handleSearch = function handleSearch() {
// Triggers search by setting state
setSearchText(searchText.trim());
};
var handleReset = function handleReset() {
// Clears input and shows all data
setSearchText('');
};
var columns = [{
title: 'αααααα',
dataIndex: 'index',
key: 'index',
responsive: ['sm']
}, {
title: 'ααααα',
dataIndex: 'name',
key: 'name',
responsive: ['sm']
}, {
title: 'ααα·ααΆα',
dataIndex: 'description',
key: 'description',
responsive: ['sm']
}, {
title: 'Action',
key: 'action',
responsive: ['xs', 'sm', 'md', 'lg'],
render: function render(_, record) {
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_6__["default"], {
size: "middle"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_8__["default"], null),
type: "primary",
onClick: function onClick() {
return handleEdit(record.id);
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_9__["default"], null),
danger: true,
onClick: function onClick() {
return handleDelete(record.id);
}
}));
}
}];
var filteredData = (opportunitySources || []).filter(function (it) {
var _it$name;
return (_it$name = it.name) === null || _it$name === void 0 ? void 0 : _it$name.toLowerCase().includes(searchText.toLowerCase());
});
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
style: {
overflowX: 'auto'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("h2", null, "\u1794\u1789\u17D2\u1787\u17B8\u1794\u17D2\u179A\u1797\u1796\u17B1\u1780\u17B6\u179F"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
style: {
display: 'flex',
justifyContent: 'space-between',
padding: '10px',
background: '#f5f5f5',
marginBottom: '10px',
flexWrap: 'wrap'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_6__["default"], {
wrap: true
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", null, "\u179F\u179A\u17BB\u1794: ", (filteredData === null || filteredData === void 0 ? void 0 : filteredData.length) || 0), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_10__["default"], {
placeholder: "\u179F\u17D2\u179C\u17C2\u1784\u179A\u1780...",
style: {
width: 200
},
value: searchText,
onChange: function onChange(e) {
return setSearchText(e.target.value);
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), {
onClick: handleSearch,
type: "primary"
}, "\u1785\u1798\u17D2\u179A\u17C4\u17C7"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), {
onClick: handleReset
}, "\u1780\u17C6\u178E\u178F\u17CB\u17A1\u17BE\u1784\u179C\u17B7\u1789")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_6__["default"], {
wrap: true
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_11__["default"], null),
type: "primary",
onClick: function onClick() {
return navigate("/opportunity-sources/form");
}
}, "\u1794\u1793\u17D2\u1790\u17C2\u1798\u1790\u17D2\u1798\u17B8"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_table__WEBPACK_IMPORTED_MODULE_12__["default"], {
rowSelection: {
type: 'checkbox',
onChange: function onChange(_, selectedRows) {
return setSelectedRows(selectedRows);
}
},
columns: columns,
dataSource: filteredData.map(function (it, index) {
return _objectSpread({
key: it.id,
index: index + 1,
name: it.name
}, it);
}),
pagination: {
pageSize: 10,
showSizeChanger: true
},
scroll: {
x: 'max-content'
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_container_dialogs_loading_dialog__WEBPACK_IMPORTED_MODULE_1__["default"], {
visible: opportunitySourcesPending
}));
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (OpportunitySourceList);
/***/ }),
/***/ "./src/shared/views/main/province/form.tsx":
/*!*************************************************!*\
!*** ./src/shared/views/main/province/form.tsx ***!
\*************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_10__);
/* harmony import */ var antd_es_row__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! antd/es/row */ "../../../node_modules/antd/lib/row/index.js");
/* harmony import */ var antd_es_col__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! antd/es/col */ "../../../node_modules/antd/lib/col/index.js");
/* harmony import */ var antd_es_input__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! antd/es/input */ "../../../node_modules/antd/lib/input/index.js");
/* harmony import */ var antd_es_message__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! antd/es/message */ "../../../node_modules/antd/lib/message/index.js");
/* harmony import */ var antd_es_form__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! antd/es/form */ "../../../node_modules/antd/lib/form/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs");
/* harmony import */ var _services_province_core_actions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../services/province/core/actions */ "./src/services/province/core/actions.ts");
/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js");
/* harmony import */ var antd_es_input_TextArea__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! antd/es/input/TextArea */ "../../../node_modules/antd/lib/input/TextArea.js");
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _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(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
var NewEditProvincePage = function NewEditProvincePage() {
var dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_2__.useDispatch)();
var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_3__.useNavigate)();
var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_2__.useSelector)(function (state) {
return state.province;
}),
province = _useSelector.province,
registerErrorMessage = _useSelector.registerErrorMessage,
provinceUpdatePending = _useSelector.provinceUpdatePending;
var _Form$useForm = antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].useForm(),
_Form$useForm2 = _slicedToArray(_Form$useForm, 1),
form = _Form$useForm2[0];
var searchParams = new URLSearchParams(location.search);
var id = searchParams.get('id');
var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false),
_useState2 = _slicedToArray(_useState, 2),
isClick = _useState2[0],
setIsClick = _useState2[1];
// π Fetch data when editing or reset form when adding
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
if (id) {
dispatch((0,_services_province_core_actions__WEBPACK_IMPORTED_MODULE_1__.provinceDetailAction)(Number(id)));
} else {
form.resetFields(); // Reset form fields when adding a new item
}
}, [dispatch, id, form]);
// π Populate form with fetched data
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
if (id && province) {
form.setFieldsValue({
name: province.name || '',
description: province.description || ''
});
}
}, [province, form, id]);
// π Show success or error alerts
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
if (!provinceUpdatePending && isClick) {
if (registerErrorMessage) {
antd_es_message__WEBPACK_IMPORTED_MODULE_5__["default"].error(registerErrorMessage);
} else {
antd_es_message__WEBPACK_IMPORTED_MODULE_5__["default"].success(id ? 'Updated successfully!' : 'Created successfully!');
navigate('/provinces');
}
}
}, [provinceUpdatePending, registerErrorMessage, id, isClick, navigate]);
// π Handle form submit
var onFinish = function onFinish(values) {
if (id) {
dispatch((0,_services_province_core_actions__WEBPACK_IMPORTED_MODULE_1__.updateProvinceAction)({
id: Number(id),
data: values
}));
form.resetFields();
} else {
dispatch((0,_services_province_core_actions__WEBPACK_IMPORTED_MODULE_1__.createProvinceAction)({
data: values
}));
form.resetFields(); // Reset form after successful creation
}
setIsClick(true);
};
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("h2", null, id ? 'ααααααααααα' : 'ααααααααααΈααααα'), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"], {
form: form,
layout: "vertical",
onFinish: onFinish,
style: {
maxWidth: '100%',
margin: '0 auto'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_6__["default"], {
gutter: [12, 12]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], {
span: 12
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, {
label: "\u1788\u17D2\u1798\u17C4\u17C7",
name: "name",
rules: [{
required: true,
message: 'Please enter a name'
}]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_8__["default"], null))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], {
span: 12
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, {
label: "\u1794\u179A\u17B7\u1799\u17B6\u1799",
name: "description"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_input_TextArea__WEBPACK_IMPORTED_MODULE_9__["default"], {
rows: 3
})))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_6__["default"], {
gutter: [12, 12]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], {
span: 3
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_10___default()), {
type: "primary",
block: true,
htmlType: "submit",
loading: provinceUpdatePending
}, "Submit"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], {
span: 3
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_10___default()), {
htmlType: "button",
onClick: function onClick() {
return navigate('/provinces');
}
}, "Cancel"))))));
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (NewEditProvincePage);
/***/ }),
/***/ "./src/shared/views/main/province/index.tsx":
/*!**************************************************!*\
!*** ./src/shared/views/main/province/index.tsx ***!
\**************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var antd_es_table__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! antd/es/table */ "../../../node_modules/antd/lib/table/index.js");
/* harmony import */ var antd_es_input__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! antd/es/input */ "../../../node_modules/antd/lib/input/index.js");
/* harmony import */ var antd_es_space__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! antd/es/space */ "../../../node_modules/antd/lib/space/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_7__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs");
/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js");
/* harmony import */ var _container_dialogs_loading_dialog__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../container/dialogs/loading-dialog */ "./src/shared/container/dialogs/loading-dialog.tsx");
/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/EditOutlined.js");
/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/DeleteOutlined.js");
/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/PlusOutlined.js");
/* harmony import */ var _services_province_core_actions__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../services/province/core/actions */ "./src/services/province/core/actions.ts");
/* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! sweetalert2 */ "../../../node_modules/sweetalert2/dist/sweetalert2.all.js");
/* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(sweetalert2__WEBPACK_IMPORTED_MODULE_3__);
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _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(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
var ProvinceList = function ProvinceList() {
var dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_4__.useDispatch)();
var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_5__.useNavigate)();
var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]),
_useState2 = _slicedToArray(_useState, 2),
selectedRows = _useState2[0],
setSelectedRows = _useState2[1];
var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(''),
_useState4 = _slicedToArray(_useState3, 2),
searchText = _useState4[0],
setSearchText = _useState4[1];
var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_4__.useSelector)(function (state) {
return state.province;
}),
provinces = _useSelector.provinces,
provincesPending = _useSelector.provincesPending;
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
dispatch((0,_services_province_core_actions__WEBPACK_IMPORTED_MODULE_2__.fetchProvinces)());
}, [dispatch]);
var handleEdit = function handleEdit(id) {
dispatch((0,_services_province_core_actions__WEBPACK_IMPORTED_MODULE_2__.provinceDetailAction)(id));
navigate("/provinces/form?id=".concat(id));
};
var handleDelete = function handleDelete(id) {
sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().fire({
title: 'Are you sure?',
text: 'You won\'t be able to revert this!',
icon: 'warning',
showConfirmButton: false,
showCancelButton: false,
html: "\n \n \n \n
\n ",
didOpen: function didOpen() {
var _Swal$getPopup, _Swal$getPopup2;
var confirmButton = (_Swal$getPopup = sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().getPopup()) === null || _Swal$getPopup === void 0 ? void 0 : _Swal$getPopup.querySelector('#confirm-delete');
var cancelButton = (_Swal$getPopup2 = sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().getPopup()) === null || _Swal$getPopup2 === void 0 ? void 0 : _Swal$getPopup2.querySelector('#cancel-delete');
confirmButton === null || confirmButton === void 0 || confirmButton.addEventListener('click', function () {
dispatch((0,_services_province_core_actions__WEBPACK_IMPORTED_MODULE_2__.deleteProvinceAction)(id)).then(function () {
sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().fire('Deleted!', 'The item has been deleted.', 'success');
dispatch((0,_services_province_core_actions__WEBPACK_IMPORTED_MODULE_2__.fetchProvinces)());
});
sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().close();
});
cancelButton === null || cancelButton === void 0 || cancelButton.addEventListener('click', function () {
sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().close();
});
}
});
};
var handleSearch = function handleSearch() {
// Triggers search by setting state
setSearchText(searchText.trim());
};
var handleReset = function handleReset() {
// Clears input and shows all data
setSearchText('');
};
var columns = [{
title: 'αααααα',
dataIndex: 'index',
key: 'index',
responsive: ['sm']
}, {
title: 'ααααα',
dataIndex: 'name',
key: 'name',
responsive: ['sm']
}, {
title: 'ααα·ααΆα',
dataIndex: 'description',
key: 'description',
responsive: ['sm']
}, {
title: 'Action',
key: 'action',
responsive: ['xs', 'sm', 'md', 'lg'],
render: function render(_, record) {
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_6__["default"], {
size: "middle"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_8__["default"], null),
type: "primary",
onClick: function onClick() {
return handleEdit(record.id);
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_9__["default"], null),
danger: true,
onClick: function onClick() {
return handleDelete(record.id);
}
}));
}
}];
var filteredData = (provinces || []).filter(function (it) {
var _it$name;
return (_it$name = it.name) === null || _it$name === void 0 ? void 0 : _it$name.toLowerCase().includes(searchText.toLowerCase());
});
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
style: {
overflowX: 'auto'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("h2", null, "\u1794\u1789\u17D2\u1787\u17B8\u1781\u17C1\u178F\u17D2\u178F"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
style: {
display: 'flex',
justifyContent: 'space-between',
padding: '10px',
background: '#f5f5f5',
marginBottom: '10px',
flexWrap: 'wrap'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_6__["default"], {
wrap: true
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", null, "\u179F\u179A\u17BB\u1794: ", (filteredData === null || filteredData === void 0 ? void 0 : filteredData.length) || 0), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_10__["default"], {
placeholder: "\u179F\u17D2\u179C\u17C2\u1784\u179A\u1780...",
style: {
width: 200
},
value: searchText,
onChange: function onChange(e) {
return setSearchText(e.target.value);
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), {
onClick: handleSearch,
type: "primary"
}, "\u1785\u1798\u17D2\u179A\u17C4\u17C7"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), {
onClick: handleReset
}, "\u1780\u17C6\u178E\u178F\u17CB\u17A1\u17BE\u1784\u179C\u17B7\u1789")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_6__["default"], {
wrap: true
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_11__["default"], null),
type: "primary",
onClick: function onClick() {
return navigate("/provinces/form");
}
}, "\u1794\u1793\u17D2\u1790\u17C2\u1798\u1790\u17D2\u1798\u17B8"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_table__WEBPACK_IMPORTED_MODULE_12__["default"], {
rowSelection: {
type: 'checkbox',
onChange: function onChange(_, selectedRows) {
return setSelectedRows(selectedRows);
}
},
columns: columns,
dataSource: filteredData.map(function (it, index) {
return _objectSpread({
key: it.id,
index: index + 1,
name: it.name
}, it);
}),
pagination: {
pageSize: 10,
showSizeChanger: true
},
scroll: {
x: 'max-content'
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_container_dialogs_loading_dialog__WEBPACK_IMPORTED_MODULE_1__["default"], {
visible: provincesPending
}));
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ProvinceList);
/***/ }),
/***/ "./src/shared/views/main/skill/form.tsx":
/*!**********************************************!*\
!*** ./src/shared/views/main/skill/form.tsx ***!
\**********************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_10__);
/* harmony import */ var antd_es_row__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! antd/es/row */ "../../../node_modules/antd/lib/row/index.js");
/* harmony import */ var antd_es_col__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! antd/es/col */ "../../../node_modules/antd/lib/col/index.js");
/* harmony import */ var antd_es_input__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! antd/es/input */ "../../../node_modules/antd/lib/input/index.js");
/* harmony import */ var antd_es_message__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! antd/es/message */ "../../../node_modules/antd/lib/message/index.js");
/* harmony import */ var antd_es_form__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! antd/es/form */ "../../../node_modules/antd/lib/form/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs");
/* harmony import */ var _services_skill_core_actions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../services/skill/core/actions */ "./src/services/skill/core/actions.ts");
/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js");
/* harmony import */ var antd_es_input_TextArea__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! antd/es/input/TextArea */ "../../../node_modules/antd/lib/input/TextArea.js");
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _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(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
var NewEditSkillPage = function NewEditSkillPage() {
var dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_2__.useDispatch)();
var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_3__.useNavigate)();
var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_2__.useSelector)(function (state) {
return state.skill;
}),
skill = _useSelector.skill,
registerErrorMessage = _useSelector.registerErrorMessage,
skillUpdatePending = _useSelector.skillUpdatePending;
var _Form$useForm = antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].useForm(),
_Form$useForm2 = _slicedToArray(_Form$useForm, 1),
form = _Form$useForm2[0];
var searchParams = new URLSearchParams(location.search);
var id = searchParams.get('id');
var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false),
_useState2 = _slicedToArray(_useState, 2),
isClick = _useState2[0],
setIsClick = _useState2[1];
// π Fetch data when editing or reset form when adding
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
if (id) {
dispatch((0,_services_skill_core_actions__WEBPACK_IMPORTED_MODULE_1__.skillDetailAction)(Number(id)));
} else {
form.resetFields(); // Reset form fields when adding a new item
}
}, [dispatch, id, form]);
// π Populate form with fetched data
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
if (id && skill) {
form.setFieldsValue({
name: skill.name || '',
description: skill.description || ''
});
}
}, [skill, form, id]);
// π Show success or error alerts
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
if (!skillUpdatePending && isClick) {
if (registerErrorMessage) {
antd_es_message__WEBPACK_IMPORTED_MODULE_5__["default"].error(registerErrorMessage);
} else {
antd_es_message__WEBPACK_IMPORTED_MODULE_5__["default"].success(id ? 'Updated successfully!' : 'Created successfully!');
navigate('/skills');
}
}
}, [skillUpdatePending, registerErrorMessage, id, isClick, navigate]);
// π Handle form submit
var onFinish = function onFinish(values) {
if (id) {
dispatch((0,_services_skill_core_actions__WEBPACK_IMPORTED_MODULE_1__.updateSkillAction)({
id: Number(id),
data: values
}));
form.resetFields();
} else {
dispatch((0,_services_skill_core_actions__WEBPACK_IMPORTED_MODULE_1__.createSkillAction)({
data: values
}));
form.resetFields(); // Reset form after successful creation
}
setIsClick(true);
};
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("h2", null, id ? 'ααααααααααΆα' : 'ααααααααααΈααααΆα'), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"], {
form: form,
layout: "vertical",
onFinish: onFinish,
style: {
maxWidth: '100%',
margin: '0 auto'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_6__["default"], {
gutter: [12, 12]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], {
span: 12
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, {
label: "\u1788\u17D2\u1798\u17C4\u17C7",
name: "name",
rules: [{
required: true,
message: 'Please enter a name'
}]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_8__["default"], null))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], {
span: 12
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, {
label: "\u1794\u179A\u17B7\u1799\u17B6\u1799",
name: "description"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_input_TextArea__WEBPACK_IMPORTED_MODULE_9__["default"], {
rows: 3
})))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_6__["default"], {
gutter: [12, 12]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], {
span: 3
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_10___default()), {
type: "primary",
block: true,
htmlType: "submit",
loading: skillUpdatePending
}, "Submit"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], {
span: 3
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_10___default()), {
htmlType: "button",
onClick: function onClick() {
return navigate('/skills');
}
}, "Cancel"))))));
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (NewEditSkillPage);
/***/ }),
/***/ "./src/shared/views/main/skill/index.tsx":
/*!***********************************************!*\
!*** ./src/shared/views/main/skill/index.tsx ***!
\***********************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var antd_es_table__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! antd/es/table */ "../../../node_modules/antd/lib/table/index.js");
/* harmony import */ var antd_es_input__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! antd/es/input */ "../../../node_modules/antd/lib/input/index.js");
/* harmony import */ var antd_es_space__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! antd/es/space */ "../../../node_modules/antd/lib/space/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_7__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs");
/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js");
/* harmony import */ var _container_dialogs_loading_dialog__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../container/dialogs/loading-dialog */ "./src/shared/container/dialogs/loading-dialog.tsx");
/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/EditOutlined.js");
/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/DeleteOutlined.js");
/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/PlusOutlined.js");
/* harmony import */ var _services_skill_core_actions__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../services/skill/core/actions */ "./src/services/skill/core/actions.ts");
/* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! sweetalert2 */ "../../../node_modules/sweetalert2/dist/sweetalert2.all.js");
/* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(sweetalert2__WEBPACK_IMPORTED_MODULE_3__);
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _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(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
var SkillList = function SkillList() {
var dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_4__.useDispatch)();
var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_5__.useNavigate)();
var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]),
_useState2 = _slicedToArray(_useState, 2),
selectedRows = _useState2[0],
setSelectedRows = _useState2[1];
var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(''),
_useState4 = _slicedToArray(_useState3, 2),
searchText = _useState4[0],
setSearchText = _useState4[1];
var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_4__.useSelector)(function (state) {
return state.skill;
}),
skills = _useSelector.skills,
skillsPending = _useSelector.skillsPending;
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
dispatch((0,_services_skill_core_actions__WEBPACK_IMPORTED_MODULE_2__.fetchSkills)());
}, [dispatch]);
var handleEdit = function handleEdit(id) {
dispatch((0,_services_skill_core_actions__WEBPACK_IMPORTED_MODULE_2__.skillDetailAction)(id));
navigate("/skills/form?id=".concat(id));
};
var handleDelete = function handleDelete(id) {
sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().fire({
title: 'Are you sure?',
text: 'You won\'t be able to revert this!',
icon: 'warning',
showConfirmButton: false,
showCancelButton: false,
html: "\n \n \n \n
\n ",
didOpen: function didOpen() {
var _Swal$getPopup, _Swal$getPopup2;
var confirmButton = (_Swal$getPopup = sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().getPopup()) === null || _Swal$getPopup === void 0 ? void 0 : _Swal$getPopup.querySelector('#confirm-delete');
var cancelButton = (_Swal$getPopup2 = sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().getPopup()) === null || _Swal$getPopup2 === void 0 ? void 0 : _Swal$getPopup2.querySelector('#cancel-delete');
confirmButton === null || confirmButton === void 0 || confirmButton.addEventListener('click', function () {
dispatch((0,_services_skill_core_actions__WEBPACK_IMPORTED_MODULE_2__.deleteSkillAction)(id)).then(function () {
sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().fire('Deleted!', 'The item has been deleted.', 'success');
dispatch((0,_services_skill_core_actions__WEBPACK_IMPORTED_MODULE_2__.fetchSkills)());
});
sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().close();
});
cancelButton === null || cancelButton === void 0 || cancelButton.addEventListener('click', function () {
sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().close();
});
}
});
};
var handleSearch = function handleSearch() {
// Triggers search by setting state
setSearchText(searchText.trim());
};
var handleReset = function handleReset() {
// Clears input and shows all data
setSearchText('');
};
var columns = [{
title: 'αααααα',
dataIndex: 'index',
key: 'index',
responsive: ['sm']
}, {
title: 'ααααα',
dataIndex: 'name',
key: 'name',
responsive: ['sm']
}, {
title: 'ααα·ααΆα',
dataIndex: 'description',
key: 'description',
responsive: ['sm']
}, {
title: 'Action',
key: 'action',
responsive: ['xs', 'sm', 'md', 'lg'],
render: function render(_, record) {
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_6__["default"], {
size: "middle"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_8__["default"], null),
type: "primary",
onClick: function onClick() {
return handleEdit(record.id);
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_9__["default"], null),
danger: true,
onClick: function onClick() {
return handleDelete(record.id);
}
}));
}
}];
var filteredData = (skills || []).filter(function (it) {
var _it$name;
return (_it$name = it.name) === null || _it$name === void 0 ? void 0 : _it$name.toLowerCase().includes(searchText.toLowerCase());
});
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
style: {
overflowX: 'auto'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("h2", null, "\u1794\u1789\u17D2\u1787\u17B8\u1787\u17C6\u1793\u17B6\u1789"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
style: {
display: 'flex',
justifyContent: 'space-between',
padding: '10px',
background: '#f5f5f5',
marginBottom: '10px',
flexWrap: 'wrap'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_6__["default"], {
wrap: true
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", null, "\u179F\u179A\u17BB\u1794: ", (filteredData === null || filteredData === void 0 ? void 0 : filteredData.length) || 0), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_10__["default"], {
placeholder: "\u179F\u17D2\u179C\u17C2\u1784\u179A\u1780...",
style: {
width: 200
},
value: searchText,
onChange: function onChange(e) {
return setSearchText(e.target.value);
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), {
onClick: handleSearch,
type: "primary"
}, "\u1785\u1798\u17D2\u179A\u17C4\u17C7"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), {
onClick: handleReset
}, "\u1780\u17C6\u178E\u178F\u17CB\u17A1\u17BE\u1784\u179C\u17B7\u1789")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_6__["default"], {
wrap: true
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_11__["default"], null),
type: "primary",
onClick: function onClick() {
return navigate("/skills/form");
}
}, "\u1794\u1793\u17D2\u1790\u17C2\u1798\u1790\u17D2\u1798\u17B8"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_table__WEBPACK_IMPORTED_MODULE_12__["default"], {
rowSelection: {
type: 'checkbox',
onChange: function onChange(_, selectedRows) {
return setSelectedRows(selectedRows);
}
},
columns: columns,
dataSource: filteredData.map(function (it, index) {
return _objectSpread({
key: it.id,
index: index + 1,
name: it.name
}, it);
}),
pagination: {
pageSize: 10,
showSizeChanger: true
},
scroll: {
x: 'max-content'
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_container_dialogs_loading_dialog__WEBPACK_IMPORTED_MODULE_1__["default"], {
visible: skillsPending
}));
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SkillList);
/***/ }),
/***/ "./src/shared/views/main/terms_condition/form.tsx":
/*!********************************************************!*\
!*** ./src/shared/views/main/terms_condition/form.tsx ***!
\********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_10__);
/* harmony import */ var antd_es_row__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! antd/es/row */ "../../../node_modules/antd/lib/row/index.js");
/* harmony import */ var antd_es_col__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! antd/es/col */ "../../../node_modules/antd/lib/col/index.js");
/* harmony import */ var antd_es_input__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! antd/es/input */ "../../../node_modules/antd/lib/input/index.js");
/* harmony import */ var antd_es_message__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! antd/es/message */ "../../../node_modules/antd/lib/message/index.js");
/* harmony import */ var antd_es_form__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! antd/es/form */ "../../../node_modules/antd/lib/form/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs");
/* harmony import */ var _services_terms_condition_core_actions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../services/terms_condition/core/actions */ "./src/services/terms_condition/core/actions.ts");
/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js");
/* harmony import */ var antd_es_input_TextArea__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! antd/es/input/TextArea */ "../../../node_modules/antd/lib/input/TextArea.js");
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _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(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
var NewEditTermsConditionPage = function NewEditTermsConditionPage() {
var dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_2__.useDispatch)();
var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_3__.useNavigate)();
var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_2__.useSelector)(function (state) {
return state.termsCondition;
}),
termsCondition = _useSelector.termsCondition,
registerErrorMessage = _useSelector.registerErrorMessage,
termsConditionUpdatePending = _useSelector.termsConditionUpdatePending;
var _Form$useForm = antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].useForm(),
_Form$useForm2 = _slicedToArray(_Form$useForm, 1),
form = _Form$useForm2[0];
var searchParams = new URLSearchParams(location.search);
var id = searchParams.get('id');
var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false),
_useState2 = _slicedToArray(_useState, 2),
isClick = _useState2[0],
setIsClick = _useState2[1];
// π Fetch data when editing or reset form when adding
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
if (id) {
dispatch((0,_services_terms_condition_core_actions__WEBPACK_IMPORTED_MODULE_1__.termsConditionDetailAction)(Number(id)));
} else {
form.resetFields(); // Reset form fields when adding a new item
}
}, [dispatch, id, form]);
// π Populate form with fetched data
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
if (id && termsCondition) {
form.setFieldsValue({
name: termsCondition.name || '',
description: termsCondition.description || ''
});
}
}, [termsCondition, form, id]);
// π Show success or error alerts
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
if (!termsConditionUpdatePending && isClick) {
if (registerErrorMessage) {
antd_es_message__WEBPACK_IMPORTED_MODULE_5__["default"].error(registerErrorMessage);
} else {
antd_es_message__WEBPACK_IMPORTED_MODULE_5__["default"].success(id ? 'Updated successfully!' : 'Created successfully!');
navigate('/terms-conditions');
}
}
}, [termsConditionUpdatePending, registerErrorMessage, id, isClick, navigate]);
// π Handle form submit
var onFinish = function onFinish(values) {
if (id) {
dispatch((0,_services_terms_condition_core_actions__WEBPACK_IMPORTED_MODULE_1__.updateTermsConditionAction)({
id: Number(id),
data: values
}));
form.resetFields();
} else {
dispatch((0,_services_terms_condition_core_actions__WEBPACK_IMPORTED_MODULE_1__.createTermsConditionAction)({
data: values
}));
form.resetFields(); // Reset form after successful creation
}
setIsClick(true);
};
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("h2", null, id ? 'αααααααααααααα' : 'ααααααααααΈαααααααα'), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"], {
form: form,
layout: "vertical",
onFinish: onFinish,
style: {
maxWidth: '100%',
margin: '0 auto'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_6__["default"], {
gutter: [12, 12]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], {
span: 12
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, {
label: "\u1788\u17D2\u1798\u17C4\u17C7",
name: "name",
rules: [{
required: true,
message: 'Please enter a name'
}]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_8__["default"], null))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], {
span: 12
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, {
label: "\u1794\u179A\u17B7\u1799\u17B6\u1799",
name: "description"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_input_TextArea__WEBPACK_IMPORTED_MODULE_9__["default"], {
rows: 3
})))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_6__["default"], {
gutter: [12, 12]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], {
span: 3
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_10___default()), {
type: "primary",
block: true,
htmlType: "submit",
loading: termsConditionUpdatePending
}, "Submit"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], {
span: 3
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_10___default()), {
htmlType: "button",
onClick: function onClick() {
return navigate('/terms-conditions');
}
}, "Cancel"))))));
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (NewEditTermsConditionPage);
/***/ }),
/***/ "./src/shared/views/main/terms_condition/index.tsx":
/*!*********************************************************!*\
!*** ./src/shared/views/main/terms_condition/index.tsx ***!
\*********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var antd_es_table__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! antd/es/table */ "../../../node_modules/antd/lib/table/index.js");
/* harmony import */ var antd_es_input__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! antd/es/input */ "../../../node_modules/antd/lib/input/index.js");
/* harmony import */ var antd_es_space__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! antd/es/space */ "../../../node_modules/antd/lib/space/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_7__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs");
/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js");
/* harmony import */ var _container_dialogs_loading_dialog__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../container/dialogs/loading-dialog */ "./src/shared/container/dialogs/loading-dialog.tsx");
/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/EditOutlined.js");
/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/DeleteOutlined.js");
/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/PlusOutlined.js");
/* harmony import */ var _services_terms_condition_core_actions__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../services/terms_condition/core/actions */ "./src/services/terms_condition/core/actions.ts");
/* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! sweetalert2 */ "../../../node_modules/sweetalert2/dist/sweetalert2.all.js");
/* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(sweetalert2__WEBPACK_IMPORTED_MODULE_3__);
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _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(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
var TermsConditionList = function TermsConditionList() {
var dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_4__.useDispatch)();
var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_5__.useNavigate)();
var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]),
_useState2 = _slicedToArray(_useState, 2),
selectedRows = _useState2[0],
setSelectedRows = _useState2[1];
var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(''),
_useState4 = _slicedToArray(_useState3, 2),
searchText = _useState4[0],
setSearchText = _useState4[1];
var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_4__.useSelector)(function (state) {
return state.termsCondition;
}),
termsConditions = _useSelector.termsConditions,
termsConditionsPending = _useSelector.termsConditionsPending;
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
dispatch((0,_services_terms_condition_core_actions__WEBPACK_IMPORTED_MODULE_2__.fetchTermsConditions)());
}, [dispatch]);
var handleEdit = function handleEdit(id) {
dispatch((0,_services_terms_condition_core_actions__WEBPACK_IMPORTED_MODULE_2__.termsConditionDetailAction)(id));
navigate("/terms-conditions/form?id=".concat(id));
};
var handleDelete = function handleDelete(id) {
sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().fire({
title: 'Are you sure?',
text: 'You won\'t be able to revert this!',
icon: 'warning',
showConfirmButton: false,
showCancelButton: false,
html: "\n \n \n \n
\n ",
didOpen: function didOpen() {
var _Swal$getPopup, _Swal$getPopup2;
var confirmButton = (_Swal$getPopup = sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().getPopup()) === null || _Swal$getPopup === void 0 ? void 0 : _Swal$getPopup.querySelector('#confirm-delete');
var cancelButton = (_Swal$getPopup2 = sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().getPopup()) === null || _Swal$getPopup2 === void 0 ? void 0 : _Swal$getPopup2.querySelector('#cancel-delete');
confirmButton === null || confirmButton === void 0 || confirmButton.addEventListener('click', function () {
dispatch((0,_services_terms_condition_core_actions__WEBPACK_IMPORTED_MODULE_2__.deleteTermsConditionAction)(id)).then(function () {
sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().fire('Deleted!', 'The item has been deleted.', 'success');
dispatch((0,_services_terms_condition_core_actions__WEBPACK_IMPORTED_MODULE_2__.fetchTermsConditions)());
});
sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().close();
});
cancelButton === null || cancelButton === void 0 || cancelButton.addEventListener('click', function () {
sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().close();
});
}
});
};
var handleSearch = function handleSearch() {
// Triggers search by setting state
setSearchText(searchText.trim());
};
var handleReset = function handleReset() {
// Clears input and shows all data
setSearchText('');
};
var columns = [{
title: 'αααααα',
dataIndex: 'index',
key: 'index',
responsive: ['sm']
}, {
title: 'ααααα',
dataIndex: 'name',
key: 'name',
responsive: ['sm']
}, {
title: 'ααα·ααΆα',
dataIndex: 'description',
key: 'description',
responsive: ['sm']
}, {
title: 'Action',
key: 'action',
responsive: ['xs', 'sm', 'md', 'lg'],
render: function render(_, record) {
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_6__["default"], {
size: "middle"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_8__["default"], null),
type: "primary",
onClick: function onClick() {
return handleEdit(record.id);
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_9__["default"], null),
danger: true,
onClick: function onClick() {
return handleDelete(record.id);
}
}));
}
}];
var filteredData = (termsConditions || []).filter(function (it) {
var _it$name;
return (_it$name = it.name) === null || _it$name === void 0 ? void 0 : _it$name.toLowerCase().includes(searchText.toLowerCase());
});
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
style: {
overflowX: 'auto'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("h2", null, "\u1794\u1789\u17D2\u1787\u17B8\u179B\u1780\u17D2\u1781\u1781\u178E\u17D2\u178C"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
style: {
display: 'flex',
justifyContent: 'space-between',
padding: '10px',
background: '#f5f5f5',
marginBottom: '10px',
flexWrap: 'wrap'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_6__["default"], {
wrap: true
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", null, "\u179F\u179A\u17BB\u1794: ", (filteredData === null || filteredData === void 0 ? void 0 : filteredData.length) || 0), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_10__["default"], {
placeholder: "\u179F\u17D2\u179C\u17C2\u1784\u179A\u1780...",
style: {
width: 200
},
value: searchText,
onChange: function onChange(e) {
return setSearchText(e.target.value);
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), {
onClick: handleSearch,
type: "primary"
}, "\u1785\u1798\u17D2\u179A\u17C4\u17C7"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), {
onClick: handleReset
}, "\u1780\u17C6\u178E\u178F\u17CB\u17A1\u17BE\u1784\u179C\u17B7\u1789")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_6__["default"], {
wrap: true
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_11__["default"], null),
type: "primary",
onClick: function onClick() {
return navigate("/terms-conditions/form");
}
}, "\u1794\u1793\u17D2\u1790\u17C2\u1798\u1790\u17D2\u1798\u17B8"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_table__WEBPACK_IMPORTED_MODULE_12__["default"], {
rowSelection: {
type: 'checkbox',
onChange: function onChange(_, selectedRows) {
return setSelectedRows(selectedRows);
}
},
columns: columns,
dataSource: filteredData.map(function (it, index) {
return _objectSpread({
key: it.id,
index: index + 1,
name: it.name
}, it);
}),
pagination: {
pageSize: 10,
showSizeChanger: true
},
scroll: {
x: 'max-content'
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_container_dialogs_loading_dialog__WEBPACK_IMPORTED_MODULE_1__["default"], {
visible: termsConditionsPending
}));
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (TermsConditionList);
/***/ }),
/***/ "./src/shared/views/main/training_session/form.tsx":
/*!*********************************************************!*\
!*** ./src/shared/views/main/training_session/form.tsx ***!
\*********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_10__);
/* harmony import */ var antd_es_row__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! antd/es/row */ "../../../node_modules/antd/lib/row/index.js");
/* harmony import */ var antd_es_col__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! antd/es/col */ "../../../node_modules/antd/lib/col/index.js");
/* harmony import */ var antd_es_input__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! antd/es/input */ "../../../node_modules/antd/lib/input/index.js");
/* harmony import */ var antd_es_message__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! antd/es/message */ "../../../node_modules/antd/lib/message/index.js");
/* harmony import */ var antd_es_form__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! antd/es/form */ "../../../node_modules/antd/lib/form/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs");
/* harmony import */ var _services_training_session_core_actions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../services/training_session/core/actions */ "./src/services/training_session/core/actions.ts");
/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js");
/* harmony import */ var antd_es_input_TextArea__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! antd/es/input/TextArea */ "../../../node_modules/antd/lib/input/TextArea.js");
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _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(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
var NewEditTrainingSessionPage = function NewEditTrainingSessionPage() {
var dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_2__.useDispatch)();
var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_3__.useNavigate)();
var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_2__.useSelector)(function (state) {
return state.trainingSession;
}),
trainingSession = _useSelector.trainingSession,
registerErrorMessage = _useSelector.registerErrorMessage,
trainingSessionUpdatePending = _useSelector.trainingSessionUpdatePending;
var _Form$useForm = antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].useForm(),
_Form$useForm2 = _slicedToArray(_Form$useForm, 1),
form = _Form$useForm2[0];
var searchParams = new URLSearchParams(location.search);
var id = searchParams.get('id');
var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false),
_useState2 = _slicedToArray(_useState, 2),
isClick = _useState2[0],
setIsClick = _useState2[1];
// π Fetch data when editing or reset form when adding
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
if (id) {
dispatch((0,_services_training_session_core_actions__WEBPACK_IMPORTED_MODULE_1__.trainingSessionDetailAction)(Number(id)));
} else {
form.resetFields(); // Reset form fields when adding a new item
}
}, [dispatch, id, form]);
// π Populate form with fetched data
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
if (id && trainingSession) {
form.setFieldsValue({
name: trainingSession.name || '',
description: trainingSession.description || ''
});
}
}, [trainingSession, form, id]);
// π Show success or error alerts
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
if (!trainingSessionUpdatePending && isClick) {
if (registerErrorMessage) {
antd_es_message__WEBPACK_IMPORTED_MODULE_5__["default"].error(registerErrorMessage);
} else {
antd_es_message__WEBPACK_IMPORTED_MODULE_5__["default"].success(id ? 'Updated successfully!' : 'Created successfully!');
navigate('/training-sessions');
}
}
}, [trainingSessionUpdatePending, registerErrorMessage, id, isClick, navigate]);
// π Handle form submit
var onFinish = function onFinish(values) {
if (id) {
dispatch((0,_services_training_session_core_actions__WEBPACK_IMPORTED_MODULE_1__.updateTrainingSessionAction)({
id: Number(id),
data: values
}));
form.resetFields();
} else {
dispatch((0,_services_training_session_core_actions__WEBPACK_IMPORTED_MODULE_1__.createTrainingSessionAction)({
data: values
}));
form.resetFields(); // Reset form after successful creation
}
setIsClick(true);
};
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("h2", null, id ? 'ααααααααααααααα»ααααααΆα' : 'ααααααααααΈααααααααα»ααααααΆα'), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"], {
form: form,
layout: "vertical",
onFinish: onFinish,
style: {
maxWidth: '100%',
margin: '0 auto'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_6__["default"], {
gutter: [12, 12]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], {
span: 12
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, {
label: "\u1788\u17D2\u1798\u17C4\u17C7",
name: "name",
rules: [{
required: true,
message: 'Please enter a name'
}]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_8__["default"], null))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], {
span: 12
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, {
label: "\u1794\u179A\u17B7\u1799\u17B6\u1799",
name: "description"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_input_TextArea__WEBPACK_IMPORTED_MODULE_9__["default"], {
rows: 3
})))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_6__["default"], {
gutter: [12, 12]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], {
span: 3
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_10___default()), {
type: "primary",
block: true,
htmlType: "submit",
loading: trainingSessionUpdatePending
}, "Submit"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], {
span: 3
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_10___default()), {
htmlType: "button",
onClick: function onClick() {
return navigate('/training-sessions');
}
}, "Cancel"))))));
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (NewEditTrainingSessionPage);
/***/ }),
/***/ "./src/shared/views/main/training_session/index.tsx":
/*!**********************************************************!*\
!*** ./src/shared/views/main/training_session/index.tsx ***!
\**********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var antd_es_table__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! antd/es/table */ "../../../node_modules/antd/lib/table/index.js");
/* harmony import */ var antd_es_input__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! antd/es/input */ "../../../node_modules/antd/lib/input/index.js");
/* harmony import */ var antd_es_space__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! antd/es/space */ "../../../node_modules/antd/lib/space/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_7__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs");
/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js");
/* harmony import */ var _container_dialogs_loading_dialog__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../container/dialogs/loading-dialog */ "./src/shared/container/dialogs/loading-dialog.tsx");
/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/EditOutlined.js");
/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/DeleteOutlined.js");
/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/PlusOutlined.js");
/* harmony import */ var _services_training_session_core_actions__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../services/training_session/core/actions */ "./src/services/training_session/core/actions.ts");
/* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! sweetalert2 */ "../../../node_modules/sweetalert2/dist/sweetalert2.all.js");
/* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(sweetalert2__WEBPACK_IMPORTED_MODULE_3__);
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _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(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
var TrainingSessionList = function TrainingSessionList() {
var dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_4__.useDispatch)();
var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_5__.useNavigate)();
var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]),
_useState2 = _slicedToArray(_useState, 2),
selectedRows = _useState2[0],
setSelectedRows = _useState2[1];
var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(''),
_useState4 = _slicedToArray(_useState3, 2),
searchText = _useState4[0],
setSearchText = _useState4[1];
var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_4__.useSelector)(function (state) {
return state.trainingSession;
}),
trainingSessions = _useSelector.trainingSessions,
trainingSessionsPending = _useSelector.trainingSessionsPending;
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
dispatch((0,_services_training_session_core_actions__WEBPACK_IMPORTED_MODULE_2__.fetchTrainingSessions)());
}, [dispatch]);
var handleEdit = function handleEdit(id) {
dispatch((0,_services_training_session_core_actions__WEBPACK_IMPORTED_MODULE_2__.trainingSessionDetailAction)(id));
navigate("/training-sessions/form?id=".concat(id));
};
var handleDelete = function handleDelete(id) {
sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().fire({
title: 'Are you sure?',
text: 'You won\'t be able to revert this!',
icon: 'warning',
showConfirmButton: false,
showCancelButton: false,
html: "\n \n \n \n
\n ",
didOpen: function didOpen() {
var _Swal$getPopup, _Swal$getPopup2;
var confirmButton = (_Swal$getPopup = sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().getPopup()) === null || _Swal$getPopup === void 0 ? void 0 : _Swal$getPopup.querySelector('#confirm-delete');
var cancelButton = (_Swal$getPopup2 = sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().getPopup()) === null || _Swal$getPopup2 === void 0 ? void 0 : _Swal$getPopup2.querySelector('#cancel-delete');
confirmButton === null || confirmButton === void 0 || confirmButton.addEventListener('click', function () {
dispatch((0,_services_training_session_core_actions__WEBPACK_IMPORTED_MODULE_2__.deleteTrainingSessionAction)(id)).then(function () {
sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().fire('Deleted!', 'The item has been deleted.', 'success');
dispatch((0,_services_training_session_core_actions__WEBPACK_IMPORTED_MODULE_2__.fetchTrainingSessions)());
});
sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().close();
});
cancelButton === null || cancelButton === void 0 || cancelButton.addEventListener('click', function () {
sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().close();
});
}
});
};
var handleSearch = function handleSearch() {
// Triggers search by setting state
setSearchText(searchText.trim());
};
var handleReset = function handleReset() {
// Clears input and shows all data
setSearchText('');
};
var columns = [{
title: 'αααααα',
dataIndex: 'index',
key: 'index',
responsive: ['sm']
}, {
title: 'ααααα',
dataIndex: 'name',
key: 'name',
responsive: ['sm']
}, {
title: 'ααα·ααΆα',
dataIndex: 'description',
key: 'description',
responsive: ['sm']
}, {
title: 'Action',
key: 'action',
responsive: ['xs', 'sm', 'md', 'lg'],
render: function render(_, record) {
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_6__["default"], {
size: "middle"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_8__["default"], null),
type: "primary",
onClick: function onClick() {
return handleEdit(record.id);
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_9__["default"], null),
danger: true,
onClick: function onClick() {
return handleDelete(record.id);
}
}));
}
}];
var filteredData = (trainingSessions || []).filter(function (it) {
var _it$name;
return (_it$name = it.name) === null || _it$name === void 0 ? void 0 : _it$name.toLowerCase().includes(searchText.toLowerCase());
});
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
style: {
overflowX: 'auto'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("h2", null, "\u1794\u1789\u17D2\u1787\u17B8\u179C\u1782\u17D2\u1782\u1794\u178E\u17D2\u178F\u17BB\u17C7\u1794\u178E\u17D2\u178F\u17B6\u179B"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
style: {
display: 'flex',
justifyContent: 'space-between',
padding: '10px',
background: '#f5f5f5',
marginBottom: '10px',
flexWrap: 'wrap'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_6__["default"], {
wrap: true
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", null, "\u179F\u179A\u17BB\u1794: ", (filteredData === null || filteredData === void 0 ? void 0 : filteredData.length) || 0), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_10__["default"], {
placeholder: "\u179F\u17D2\u179C\u17C2\u1784\u179A\u1780...",
style: {
width: 200
},
value: searchText,
onChange: function onChange(e) {
return setSearchText(e.target.value);
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), {
onClick: handleSearch,
type: "primary"
}, "\u1785\u1798\u17D2\u179A\u17C4\u17C7"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), {
onClick: handleReset
}, "\u1780\u17C6\u178E\u178F\u17CB\u17A1\u17BE\u1784\u179C\u17B7\u1789")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_6__["default"], {
wrap: true
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_11__["default"], null),
type: "primary",
onClick: function onClick() {
return navigate("/training-sessions/form");
}
}, "\u1794\u1793\u17D2\u1790\u17C2\u1798\u1790\u17D2\u1798\u17B8"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_table__WEBPACK_IMPORTED_MODULE_12__["default"], {
rowSelection: {
type: 'checkbox',
onChange: function onChange(_, selectedRows) {
return setSelectedRows(selectedRows);
}
},
columns: columns,
dataSource: filteredData.map(function (it, index) {
return _objectSpread({
key: it.id,
index: index + 1,
name: it.name
}, it);
}),
pagination: {
pageSize: 10,
showSizeChanger: true
},
scroll: {
x: 'max-content'
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_container_dialogs_loading_dialog__WEBPACK_IMPORTED_MODULE_1__["default"], {
visible: trainingSessionsPending
}));
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (TrainingSessionList);
/***/ }),
/***/ "./src/shared/views/main/travel_day/form.tsx":
/*!***************************************************!*\
!*** ./src/shared/views/main/travel_day/form.tsx ***!
\***************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_10__);
/* harmony import */ var antd_es_row__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! antd/es/row */ "../../../node_modules/antd/lib/row/index.js");
/* harmony import */ var antd_es_col__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! antd/es/col */ "../../../node_modules/antd/lib/col/index.js");
/* harmony import */ var antd_es_input__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! antd/es/input */ "../../../node_modules/antd/lib/input/index.js");
/* harmony import */ var antd_es_message__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! antd/es/message */ "../../../node_modules/antd/lib/message/index.js");
/* harmony import */ var antd_es_form__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! antd/es/form */ "../../../node_modules/antd/lib/form/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs");
/* harmony import */ var _services_travel_day_core_actions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../services/travel_day/core/actions */ "./src/services/travel_day/core/actions.ts");
/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js");
/* harmony import */ var antd_es_input_TextArea__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! antd/es/input/TextArea */ "../../../node_modules/antd/lib/input/TextArea.js");
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _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(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
var NewEditTravelDayPage = function NewEditTravelDayPage() {
var dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_2__.useDispatch)();
var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_3__.useNavigate)();
var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_2__.useSelector)(function (state) {
return state.travelDay;
}),
travelDay = _useSelector.travelDay,
registerErrorMessage = _useSelector.registerErrorMessage,
travelDayUpdatePending = _useSelector.travelDayUpdatePending;
var _Form$useForm = antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].useForm(),
_Form$useForm2 = _slicedToArray(_Form$useForm, 1),
form = _Form$useForm2[0];
var searchParams = new URLSearchParams(location.search);
var id = searchParams.get('id');
var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false),
_useState2 = _slicedToArray(_useState, 2),
isClick = _useState2[0],
setIsClick = _useState2[1];
// π Fetch data when editing or reset form when adding
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
if (id) {
dispatch((0,_services_travel_day_core_actions__WEBPACK_IMPORTED_MODULE_1__.travelDayDetailAction)(Number(id)));
} else {
form.resetFields(); // Reset form fields when adding a new item
}
}, [dispatch, id, form]);
// π Populate form with fetched data
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
if (id && travelDay) {
form.setFieldsValue({
name: travelDay.name || '',
description: travelDay.description || ''
});
}
}, [travelDay, form, id]);
// π Show success or error alerts
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
if (!travelDayUpdatePending && isClick) {
if (registerErrorMessage) {
antd_es_message__WEBPACK_IMPORTED_MODULE_5__["default"].error(registerErrorMessage);
} else {
antd_es_message__WEBPACK_IMPORTED_MODULE_5__["default"].success(id ? 'Updated successfully!' : 'Created successfully!');
navigate('/travel-days');
}
}
}, [travelDayUpdatePending, registerErrorMessage, id, isClick, navigate]);
// π Handle form submit
var onFinish = function onFinish(values) {
if (id) {
dispatch((0,_services_travel_day_core_actions__WEBPACK_IMPORTED_MODULE_1__.updateTravelDayAction)({
id: Number(id),
data: values
}));
form.resetFields();
} else {
dispatch((0,_services_travel_day_core_actions__WEBPACK_IMPORTED_MODULE_1__.createTravelDayAction)({
data: values
}));
form.resetFields(); // Reset form after successful creation
}
setIsClick(true);
};
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("h2", null, id ? 'ααααααααααααααΎααααΎα' : 'ααααααααααΈααααααααΎααααΎα'), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"], {
form: form,
layout: "vertical",
onFinish: onFinish,
style: {
maxWidth: '100%',
margin: '0 auto'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_6__["default"], {
gutter: [12, 12]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], {
span: 12
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, {
label: "\u1788\u17D2\u1798\u17C4\u17C7",
name: "name",
rules: [{
required: true,
message: 'Please enter a name'
}]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_8__["default"], null))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], {
span: 12
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, {
label: "\u1794\u179A\u17B7\u1799\u17B6\u1799",
name: "description"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_input_TextArea__WEBPACK_IMPORTED_MODULE_9__["default"], {
rows: 3
})))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_6__["default"], {
gutter: [12, 12]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], {
span: 3
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_10___default()), {
type: "primary",
block: true,
htmlType: "submit",
loading: travelDayUpdatePending
}, "Submit"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], {
span: 3
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_4__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_10___default()), {
htmlType: "button",
onClick: function onClick() {
return navigate('/travel-days');
}
}, "Cancel"))))));
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (NewEditTravelDayPage);
/***/ }),
/***/ "./src/shared/views/main/travel_day/index.tsx":
/*!****************************************************!*\
!*** ./src/shared/views/main/travel_day/index.tsx ***!
\****************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var antd_es_table__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! antd/es/table */ "../../../node_modules/antd/lib/table/index.js");
/* harmony import */ var antd_es_input__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! antd/es/input */ "../../../node_modules/antd/lib/input/index.js");
/* harmony import */ var antd_es_space__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! antd/es/space */ "../../../node_modules/antd/lib/space/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_7__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs");
/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js");
/* harmony import */ var _container_dialogs_loading_dialog__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../container/dialogs/loading-dialog */ "./src/shared/container/dialogs/loading-dialog.tsx");
/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/EditOutlined.js");
/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/DeleteOutlined.js");
/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/PlusOutlined.js");
/* harmony import */ var _services_travel_day_core_actions__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../services/travel_day/core/actions */ "./src/services/travel_day/core/actions.ts");
/* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! sweetalert2 */ "../../../node_modules/sweetalert2/dist/sweetalert2.all.js");
/* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(sweetalert2__WEBPACK_IMPORTED_MODULE_3__);
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _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(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
var TravelDayList = function TravelDayList() {
var dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_4__.useDispatch)();
var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_5__.useNavigate)();
var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]),
_useState2 = _slicedToArray(_useState, 2),
selectedRows = _useState2[0],
setSelectedRows = _useState2[1];
var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(''),
_useState4 = _slicedToArray(_useState3, 2),
searchText = _useState4[0],
setSearchText = _useState4[1];
var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_4__.useSelector)(function (state) {
return state.travelDay;
}),
travelDays = _useSelector.travelDays,
travelDaysPending = _useSelector.travelDaysPending;
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
dispatch((0,_services_travel_day_core_actions__WEBPACK_IMPORTED_MODULE_2__.fetchTravelDays)());
}, [dispatch]);
var handleEdit = function handleEdit(id) {
dispatch((0,_services_travel_day_core_actions__WEBPACK_IMPORTED_MODULE_2__.travelDayDetailAction)(id));
navigate("/travel-days/form?id=".concat(id));
};
var handleDelete = function handleDelete(id) {
sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().fire({
title: 'Are you sure?',
text: 'You won\'t be able to revert this!',
icon: 'warning',
showConfirmButton: false,
showCancelButton: false,
html: "\n \n \n \n
\n ",
didOpen: function didOpen() {
var _Swal$getPopup, _Swal$getPopup2;
var confirmButton = (_Swal$getPopup = sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().getPopup()) === null || _Swal$getPopup === void 0 ? void 0 : _Swal$getPopup.querySelector('#confirm-delete');
var cancelButton = (_Swal$getPopup2 = sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().getPopup()) === null || _Swal$getPopup2 === void 0 ? void 0 : _Swal$getPopup2.querySelector('#cancel-delete');
confirmButton === null || confirmButton === void 0 || confirmButton.addEventListener('click', function () {
dispatch((0,_services_travel_day_core_actions__WEBPACK_IMPORTED_MODULE_2__.deleteTravelDayAction)(id)).then(function () {
sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().fire('Deleted!', 'The item has been deleted.', 'success');
dispatch((0,_services_travel_day_core_actions__WEBPACK_IMPORTED_MODULE_2__.fetchTravelDays)());
});
sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().close();
});
cancelButton === null || cancelButton === void 0 || cancelButton.addEventListener('click', function () {
sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().close();
});
}
});
};
var handleSearch = function handleSearch() {
// Triggers search by setting state
setSearchText(searchText.trim());
};
var handleReset = function handleReset() {
// Clears input and shows all data
setSearchText('');
};
var columns = [{
title: 'αααααα',
dataIndex: 'index',
key: 'index',
responsive: ['sm']
}, {
title: 'ααααα',
dataIndex: 'name',
key: 'name',
responsive: ['sm']
}, {
title: 'ααα·ααΆα',
dataIndex: 'description',
key: 'description',
responsive: ['sm']
}, {
title: 'Action',
key: 'action',
responsive: ['xs', 'sm', 'md', 'lg'],
render: function render(_, record) {
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_6__["default"], {
size: "middle"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_8__["default"], null),
type: "primary",
onClick: function onClick() {
return handleEdit(record.id);
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_9__["default"], null),
danger: true,
onClick: function onClick() {
return handleDelete(record.id);
}
}));
}
}];
var filteredData = (travelDays || []).filter(function (it) {
var _it$name;
return (_it$name = it.name) === null || _it$name === void 0 ? void 0 : _it$name.toLowerCase().includes(searchText.toLowerCase());
});
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
style: {
overflowX: 'auto'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("h2", null, "\u1794\u1789\u17D2\u1787\u17B8\u1790\u17D2\u1784\u17C3\u1792\u17D2\u179C\u17BE\u178A\u17C6\u178E\u17BE\u179A"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
style: {
display: 'flex',
justifyContent: 'space-between',
padding: '10px',
background: '#f5f5f5',
marginBottom: '10px',
flexWrap: 'wrap'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_6__["default"], {
wrap: true
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", null, "\u179F\u179A\u17BB\u1794: ", (filteredData === null || filteredData === void 0 ? void 0 : filteredData.length) || 0), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_10__["default"], {
placeholder: "\u179F\u17D2\u179C\u17C2\u1784\u179A\u1780...",
style: {
width: 200
},
value: searchText,
onChange: function onChange(e) {
return setSearchText(e.target.value);
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), {
onClick: handleSearch,
type: "primary"
}, "\u1785\u1798\u17D2\u179A\u17C4\u17C7"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), {
onClick: handleReset
}, "\u1780\u17C6\u178E\u178F\u17CB\u17A1\u17BE\u1784\u179C\u17B7\u1789")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_6__["default"], {
wrap: true
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_11__["default"], null),
type: "primary",
onClick: function onClick() {
return navigate("/travel-days/form");
}
}, "\u1794\u1793\u17D2\u1790\u17C2\u1798\u1790\u17D2\u1798\u17B8"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_table__WEBPACK_IMPORTED_MODULE_12__["default"], {
rowSelection: {
type: 'checkbox',
onChange: function onChange(_, selectedRows) {
return setSelectedRows(selectedRows);
}
},
columns: columns,
dataSource: filteredData.map(function (it, index) {
return _objectSpread({
key: it.id,
index: index + 1,
name: it.name
}, it);
}),
pagination: {
pageSize: 10,
showSizeChanger: true
},
scroll: {
x: 'max-content'
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_container_dialogs_loading_dialog__WEBPACK_IMPORTED_MODULE_1__["default"], {
visible: travelDaysPending
}));
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (TravelDayList);
/***/ }),
/***/ "./src/shared/views/main/user/form.tsx":
/*!*********************************************!*\
!*** ./src/shared/views/main/user/form.tsx ***!
\*********************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var antd_es_modal__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! antd/es/modal */ "../../../node_modules/antd/lib/modal/index.js");
/* harmony import */ var antd_es_select__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! antd/es/select */ "../../../node_modules/antd/lib/select/index.js");
/* harmony import */ var antd_es_row__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! antd/es/row */ "../../../node_modules/antd/lib/row/index.js");
/* harmony import */ var antd_es_input__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! antd/es/input */ "../../../node_modules/antd/lib/input/index.js");
/* harmony import */ var antd_es_col__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! antd/es/col */ "../../../node_modules/antd/lib/col/index.js");
/* harmony import */ var antd_es_upload__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! antd/es/upload */ "../../../node_modules/antd/lib/upload/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_7__);
/* harmony import */ var antd_es_message__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! antd/es/message */ "../../../node_modules/antd/lib/message/index.js");
/* harmony import */ var antd_es_form__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! antd/es/form */ "../../../node_modules/antd/lib/form/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs");
/* harmony import */ var _services_user_core_actions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../services/user/core/actions */ "./src/services/user/core/actions.ts");
/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js");
/* harmony import */ var _shared_core_base_services__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../shared/core/base/services */ "./src/shared/core/base/services.ts");
/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/PlusOutlined.js");
/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/UploadOutlined.js");
/* harmony import */ var antd_es_mentions__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! antd/es/mentions */ "../../../node_modules/antd/lib/mentions/index.js");
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { if (r) i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n;else { var o = function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); }; o("next", 0), o("throw", 1), o("return", 2); } }, _regeneratorDefine2(e, r, n, t); }
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _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(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
var NewEditUserPage = function NewEditUserPage() {
var dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_3__.useDispatch)();
var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_4__.useNavigate)();
var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_3__.useSelector)(function (state) {
return state.user;
}),
user = _useSelector.user,
registerErrorMessage = _useSelector.registerErrorMessage,
userUpdatePending = _useSelector.userUpdatePending;
var _Form$useForm = antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"].useForm(),
_Form$useForm2 = _slicedToArray(_Form$useForm, 1),
form = _Form$useForm2[0];
var searchParams = new URLSearchParams(location.search);
var id = searchParams.get('id');
var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(''),
_useState2 = _slicedToArray(_useState, 2),
photoUrl = _useState2[0],
setPhotoUrl = _useState2[1];
var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false),
_useState4 = _slicedToArray(_useState3, 2),
previewVisible = _useState4[0],
setPreviewVisible = _useState4[1];
var _useState5 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(''),
_useState6 = _slicedToArray(_useState5, 2),
previewTitle = _useState6[0],
setPreviewTitle = _useState6[1];
var _useState7 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null),
_useState8 = _slicedToArray(_useState7, 2),
previewContent = _useState8[0],
setPreviewContent = _useState8[1];
var _useState9 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]),
_useState0 = _slicedToArray(_useState9, 2),
photoList = _useState0[0],
setPhotoList = _useState0[1];
var _useSelector2 = (0,react_redux__WEBPACK_IMPORTED_MODULE_3__.useSelector)(function (state) {
return state;
}),
auth = _useSelector2.auth; // Get user role
var currentUser = auth.currentUser;
var isAdmin = (currentUser === null || currentUser === void 0 ? void 0 : currentUser.role) === "super_admin"; // Check if user is admin
var _useState1 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false),
_useState10 = _slicedToArray(_useState1, 2),
isClick = _useState10[0],
setIsClick = _useState10[1];
// π Fetch data when editing or reset form when adding
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
if (id) {
dispatch((0,_services_user_core_actions__WEBPACK_IMPORTED_MODULE_1__.userDetailAction)(Number(id)));
} else {
form.resetFields(); // Reset form fields when adding a new item
}
}, [dispatch, id, form]);
// π Populate form with fetched data
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
if (id && user) {
form.setFieldsValue({
first_name: user.first_name || '',
last_name: user.last_name || '',
username: user.username || '',
email: user.email || '',
phone: user.phone || '',
role: user.role || '',
telegram_id: user.telegram_id || '',
photo_url: user.photo_url || '',
grad_type: user.grad_type || '',
status: user.status || ''
});
setPhotoUrl(user.photo_url || '');
}
}, [user, form, id]);
// π Show success or error alerts
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
if (!userUpdatePending && isClick) {
if (registerErrorMessage) {
antd_es_message__WEBPACK_IMPORTED_MODULE_6__["default"].error(registerErrorMessage);
} else {
antd_es_message__WEBPACK_IMPORTED_MODULE_6__["default"].success(id ? 'Updated successfully!' : 'Created successfully!');
navigate('/users');
}
}
}, [userUpdatePending, registerErrorMessage, id, isClick, navigate]);
// Common helper function for file uploads
var handleFileChange = /*#__PURE__*/function () {
var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(file, fieldName, form) {
var formData, response, _t;
return _regenerator().w(function (_context) {
while (1) switch (_context.n) {
case 0:
if (isAdmin) {
_context.n = 1;
break;
}
return _context.a(2);
case 1:
if (file) {
_context.n = 2;
break;
}
console.error("".concat(fieldName, " Upload Error: No file selected."));
return _context.a(2);
case 2:
_context.p = 2;
formData = new FormData();
formData.append("file", file);
_context.n = 3;
return (0,_shared_core_base_services__WEBPACK_IMPORTED_MODULE_2__.postUpload)(formData);
case 3:
response = _context.v;
if (response !== null && response !== void 0 && response.url) {
form.setFieldsValue(_defineProperty({}, fieldName, response.url));
}
_context.n = 5;
break;
case 4:
_context.p = 4;
_t = _context.v;
console.error("".concat(fieldName, " Upload Error:"), _t);
case 5:
return _context.a(2);
}
}, _callee, null, [[2, 4]]);
}));
return function handleFileChange(_x, _x2, _x3) {
return _ref.apply(this, arguments);
};
}();
var handlePhotoUploadChange = /*#__PURE__*/function () {
var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(photoFile) {
return _regenerator().w(function (_context2) {
while (1) switch (_context2.n) {
case 0:
if (isAdmin) {
_context2.n = 1;
break;
}
return _context2.a(2);
case 1:
_context2.n = 2;
return handleFileChange(photoFile, "photo_url", form);
case 2:
return _context2.a(2);
}
}, _callee2);
}));
return function handlePhotoUploadChange(_x4) {
return _ref2.apply(this, arguments);
};
}();
var handleFileChangeNew = /*#__PURE__*/function () {
var _ref3 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3(fileList, setFileList, fieldName) {
var updatedFileList, formData, response, doneFileList, errorFileList, _t2;
return _regenerator().w(function (_context3) {
while (1) switch (_context3.n) {
case 0:
// updatedFileList: mark all files as "uploading"
updatedFileList = fileList.map(function (file) {
return _objectSpread(_objectSpread({}, file), {}, {
status: "uploading" // inferred as the literal "uploading"
});
});
setFileList(updatedFileList);
_context3.p = 1;
formData = new FormData();
updatedFileList.forEach(function (file) {
if (file.originFileObj) {
formData.append("file", file.originFileObj);
}
});
_context3.n = 2;
return (0,_shared_core_base_services__WEBPACK_IMPORTED_MODULE_2__.postUpload)(formData);
case 2:
response = _context3.v;
if (response.url) {
form.setFieldsValue(_defineProperty({}, fieldName, response.url));
// doneFileList: mark all files as "done" on successful upload
doneFileList = updatedFileList.map(function (file) {
return _objectSpread(_objectSpread({}, file), {}, {
status: "done"
});
});
setFileList(doneFileList);
}
_context3.n = 4;
break;
case 3:
_context3.p = 3;
_t2 = _context3.v;
console.error("".concat(fieldName, " Upload Error:"), _t2);
// errorFileList: mark all files as "error" on failure
errorFileList = updatedFileList.map(function (file) {
return _objectSpread(_objectSpread({}, file), {}, {
status: "error"
});
});
setFileList(errorFileList);
case 4:
return _context3.a(2);
}
}, _callee3, null, [[1, 3]]);
}));
return function handleFileChangeNew(_x5, _x6, _x7) {
return _ref3.apply(this, arguments);
};
}();
var handlePhotoUploadChangeNew = /*#__PURE__*/function () {
var _ref5 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee4(_ref4) {
var fileList;
return _regenerator().w(function (_context4) {
while (1) switch (_context4.n) {
case 0:
fileList = _ref4.fileList;
_context4.n = 1;
return handleFileChangeNew(fileList, setPhotoList, "photo_url");
case 1:
return _context4.a(2);
}
}, _callee4);
}));
return function handlePhotoUploadChangeNew(_x8) {
return _ref5.apply(this, arguments);
};
}();
var beforeUpload = function beforeUpload(file) {
var isImage = file.type.startsWith("image/");
if (!isImage) {
antd_es_message__WEBPACK_IMPORTED_MODULE_6__["default"].error("You can only upload image files (JPG/PNG)!");
}
return isImage;
};
// π Handle form submit
var onFinish = function onFinish(values) {
if (id) {
dispatch((0,_services_user_core_actions__WEBPACK_IMPORTED_MODULE_1__.updateUserAction)({
id: Number(id),
data: values
}));
form.resetFields();
} else {
dispatch((0,_services_user_core_actions__WEBPACK_IMPORTED_MODULE_1__.createUserAction)({
data: values
}));
form.resetFields(); // Reset form after successful creation
}
setIsClick(true);
};
var handlePreview = function handlePreview(url, title) {
setPreviewTitle(title);
setPreviewContent(/*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
style: {
width: '70%',
margin: 'auto'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("img", {
src: url,
alt: title,
style: {
width: '100%'
}
})));
setPreviewVisible(true);
};
var uploadButton = function uploadButton(url, setUrl, label, fieldName) {
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
style: {
position: 'relative',
display: 'inline-block'
}
}, url ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
style: {
cursor: 'pointer'
},
onClick: function onClick() {
return handlePreview(url, label);
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("img", {
src: url,
alt: label,
style: {
width: '100%',
maxHeight: '300px',
borderRadius: '8px',
display: 'block'
}
})), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_8__["default"], null),
size: "small",
style: {
position: 'absolute',
bottom: 12,
right: 8,
background: '#1890ff',
color: '#fff'
},
onClick: function onClick() {
var _document$getElementB;
return (_document$getElementB = document.getElementById("upload-".concat(label))) === null || _document$getElementB === void 0 ? void 0 : _document$getElementB.click();
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("input", {
id: "upload-".concat(label),
type: "file",
style: {
display: 'none'
},
onChange: function onChange(e) {
var file = e.target.files[0];
if (file) {
// You can add your logic here for different file handling
handlePhotoUploadChange(file);
setUrl(URL.createObjectURL(file));
}
}
})) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_upload__WEBPACK_IMPORTED_MODULE_9__["default"], {
listType: "picture",
fileList: photoList,
onChange: handlePhotoUploadChangeNew,
beforeUpload: beforeUpload,
showUploadList: {
showPreviewIcon: true,
showRemoveIcon: true
},
className: "w-full custom-upload"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_10__["default"], null))));
};
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("h2", null, id ? 'ααααααα’αααααααΎααααΆαα' : 'ααααααααααΈα’αααααααΎααααΆαα'), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"], {
form: form,
layout: "vertical",
onFinish: onFinish,
style: {
maxWidth: '100%',
margin: '0 auto'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_11__["default"], {
gutter: [12, 12]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_12__["default"], {
span: 6
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"].Item, {
label: "\u179A\u17BC\u1794\u1790\u178F",
name: "photo_url"
}, uploadButton(photoUrl, setPhotoUrl, 'ααΌααα', 'photo_url'))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_12__["default"], {
span: 18
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_11__["default"], {
gutter: [12, 0]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_12__["default"], {
span: 8
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"].Item, {
label: "\u1793\u17B6\u1798\u1781\u17D2\u179B\u17BD\u1793",
name: "first_name",
rules: [{
required: false
}]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_13__["default"], null))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_12__["default"], {
span: 8
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"].Item, {
label: "\u1793\u17B6\u1798\u178F\u17D2\u179A\u1780\u17BC\u179B",
name: "last_name",
rules: [{
required: false
}]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_13__["default"], null))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_12__["default"], {
span: 8
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"].Item, {
label: "\u1788\u17D2\u1798\u17C4\u17C7\u17A2\u17D2\u1793\u1780\u1794\u17D2\u179A\u17BE\u1794\u17D2\u179A\u17B6\u179F\u17CB",
name: "username",
rules: [{
required: false
}]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_13__["default"], null)))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_11__["default"], {
gutter: [12, 0]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_12__["default"], {
span: 8
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"].Item, {
label: "\u17A2\u17CA\u17B8\u1798\u17C2\u179B",
name: "email",
rules: [{
required: false
}]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_13__["default"], null))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_12__["default"], {
span: 8
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"].Item, {
label: "\u179B\u17C1\u1781\u1791\u17BC\u179A\u179F\u17D0\u1796\u17D2\u1791",
name: "phone",
rules: [{
required: false
}]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_13__["default"], null))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_12__["default"], {
span: 8
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"].Item, {
label: "\u178F\u17BD\u1793\u17B6\u1791\u17B8",
name: "role",
rules: [{
required: false
}]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_select__WEBPACK_IMPORTED_MODULE_14__["default"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_mentions__WEBPACK_IMPORTED_MODULE_15__.Option, {
value: "super_admin"
}, "Super admin"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_mentions__WEBPACK_IMPORTED_MODULE_15__.Option, {
value: "admin"
}, "Admin"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_mentions__WEBPACK_IMPORTED_MODULE_15__.Option, {
value: "user"
}, "User"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_mentions__WEBPACK_IMPORTED_MODULE_15__.Option, {
value: "reporter"
}, "Reporter"))))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_11__["default"], {
gutter: [12, 0]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_12__["default"], {
span: 8
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"].Item, {
label: "\u178F\u17C1\u179B\u17C1\u1780\u17D2\u179A\u17B6\u1798\u200B ID",
name: "telegram_id",
rules: [{
required: false
}]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_13__["default"], null))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_12__["default"], {
span: 8
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"].Item, {
label: "\u1794\u17D2\u179A\u1797\u17C1\u1791",
name: "grad_type",
rules: [{
required: false
}]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_select__WEBPACK_IMPORTED_MODULE_14__["default"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_mentions__WEBPACK_IMPORTED_MODULE_15__.Option, {
value: "password"
}, "Password"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_mentions__WEBPACK_IMPORTED_MODULE_15__.Option, {
value: "telegram"
}, "Telegram")))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_12__["default"], {
span: 8
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"].Item, {
label: "\u179F\u17D2\u1790\u17B6\u1793\u1797\u17B6\u1796",
name: "status",
rules: [{
required: false
}]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_select__WEBPACK_IMPORTED_MODULE_14__["default"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_mentions__WEBPACK_IMPORTED_MODULE_15__.Option, {
value: "ACTIVE"
}, "Active"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_mentions__WEBPACK_IMPORTED_MODULE_15__.Option, {
value: "DISABLE"
}, "Disable"))))), !id && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_11__["default"], {
gutter: [12, 0]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_12__["default"], {
span: 8
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"].Item, {
label: "\u1796\u17B6\u1780\u17D2\u1799\u179F\u1798\u17D2\u1784\u17B6\u178F\u17CB",
name: "password",
rules: [{
required: false
}]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_13__["default"], {
type: "password"
})))))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("br", null), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_11__["default"], {
gutter: [12, 12],
justify: "end"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_12__["default"], {
span: 3
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), {
type: "primary",
block: true,
htmlType: "submit",
loading: userUpdatePending
}, "Submit"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_12__["default"], {
span: 3
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_7___default()), {
htmlType: "button",
onClick: function onClick() {
return navigate('/users');
}
}, "Cancel")))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_modal__WEBPACK_IMPORTED_MODULE_16__["default"], {
visible: previewVisible,
title: previewTitle,
footer: null,
onCancel: function onCancel() {
return setPreviewVisible(false);
}
}, previewContent)));
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (NewEditUserPage);
/***/ }),
/***/ "./src/shared/views/main/user/index.tsx":
/*!**********************************************!*\
!*** ./src/shared/views/main/user/index.tsx ***!
\**********************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var antd_es_table__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! antd/es/table */ "../../../node_modules/antd/lib/table/index.js");
/* harmony import */ var antd_es_input__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! antd/es/input */ "../../../node_modules/antd/lib/input/index.js");
/* harmony import */ var antd_es_space__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! antd/es/space */ "../../../node_modules/antd/lib/space/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_8__);
/* harmony import */ var antd_es_image__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! antd/es/image */ "../../../node_modules/antd/lib/image/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs");
/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js");
/* harmony import */ var _container_dialogs_loading_dialog__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../container/dialogs/loading-dialog */ "./src/shared/container/dialogs/loading-dialog.tsx");
/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/EditOutlined.js");
/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/DeleteOutlined.js");
/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/PlusOutlined.js");
/* harmony import */ var _services_user_core_actions__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../services/user/core/actions */ "./src/services/user/core/actions.ts");
/* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! sweetalert2 */ "../../../node_modules/sweetalert2/dist/sweetalert2.all.js");
/* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(sweetalert2__WEBPACK_IMPORTED_MODULE_3__);
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _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(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
var UserList = function UserList() {
var dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_4__.useDispatch)();
var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_5__.useNavigate)();
var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]),
_useState2 = _slicedToArray(_useState, 2),
selectedRows = _useState2[0],
setSelectedRows = _useState2[1];
var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(''),
_useState4 = _slicedToArray(_useState3, 2),
searchText = _useState4[0],
setSearchText = _useState4[1];
var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_4__.useSelector)(function (state) {
return state.user;
}),
users = _useSelector.users,
usersPending = _useSelector.usersPending;
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
dispatch((0,_services_user_core_actions__WEBPACK_IMPORTED_MODULE_2__.fetchUsers)());
}, [dispatch]);
var handleEdit = function handleEdit(id) {
dispatch((0,_services_user_core_actions__WEBPACK_IMPORTED_MODULE_2__.userDetailAction)(id));
navigate("/users/form?id=".concat(id));
};
var handleDelete = function handleDelete(id) {
sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().fire({
title: 'Are you sure?',
text: 'You won\'t be able to revert this!',
icon: 'warning',
showConfirmButton: false,
showCancelButton: false,
html: "\n \n \n \n
\n ",
didOpen: function didOpen() {
var _Swal$getPopup, _Swal$getPopup2;
var confirmButton = (_Swal$getPopup = sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().getPopup()) === null || _Swal$getPopup === void 0 ? void 0 : _Swal$getPopup.querySelector('#confirm-delete');
var cancelButton = (_Swal$getPopup2 = sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().getPopup()) === null || _Swal$getPopup2 === void 0 ? void 0 : _Swal$getPopup2.querySelector('#cancel-delete');
confirmButton === null || confirmButton === void 0 || confirmButton.addEventListener('click', function () {
dispatch((0,_services_user_core_actions__WEBPACK_IMPORTED_MODULE_2__.deleteUserAction)(id)).then(function () {
sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().fire('Deleted!', 'The item has been deleted.', 'success');
dispatch((0,_services_user_core_actions__WEBPACK_IMPORTED_MODULE_2__.fetchUsers)());
});
sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().close();
});
cancelButton === null || cancelButton === void 0 || cancelButton.addEventListener('click', function () {
sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().close();
});
}
});
};
var handleSearch = function handleSearch() {
// Triggers search by setting state
setSearchText(searchText.trim());
};
var handleReset = function handleReset() {
// Clears input and shows all data
setSearchText('');
};
var columns = [{
title: 'αααααα',
dataIndex: 'index',
key: 'index',
responsive: ['sm']
}, {
title: 'ααΆααααα½α',
dataIndex: 'first_name',
key: 'first_name',
responsive: ['sm']
}, {
title: 'ααΆααααααΌα',
dataIndex: 'last_name',
key: 'last_name',
responsive: ['sm']
}, {
title: 'αααααα’αααααααΎααααΆαα',
dataIndex: 'username',
key: 'username',
responsive: ['sm']
}, {
title: 'α’ααΈααα',
dataIndex: 'email',
key: 'email',
responsive: ['sm']
}, {
title: 'αααααΌαααααα',
dataIndex: 'phone',
key: 'phone',
responsive: ['sm']
}, {
title: 'αα½ααΆααΈ',
dataIndex: 'role',
key: 'role',
responsive: ['sm']
}, {
title: 'ααααααααΆαβ ID',
dataIndex: 'telegram_id',
key: 'telegram_id',
responsive: ['sm']
}, {
title: 'ααΌααα',
dataIndex: 'photo_url',
key: 'photo_url',
responsive: ['sm'],
render: function render(text) {
return text ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_image__WEBPACK_IMPORTED_MODULE_6__["default"], {
width: 50,
src: text,
alt: "Photo",
style: {
borderRadius: 5,
border: '1px solid #ddd'
}
}) : 'No Image';
}
}, {
title: 'αααααα',
dataIndex: 'grad_type',
key: 'grad_type',
responsive: ['sm']
}, {
title: 'ααααΆαααΆα',
dataIndex: 'status',
key: 'status',
responsive: ['sm']
}, {
title: 'Action',
key: 'action',
responsive: ['xs', 'sm', 'md', 'lg'],
render: function render(_, record) {
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_7__["default"], {
size: "middle"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_8___default()), {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_9__["default"], null),
type: "primary",
onClick: function onClick() {
return handleEdit(record.id);
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_8___default()), {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_10__["default"], null),
danger: true,
onClick: function onClick() {
return handleDelete(record.id);
}
}));
}
}];
var filteredData = (users || []).filter(function (it) {
var _it$email, _it$username, _it$role, _it$first_name, _it$last_name, _it$phone, _it$telegram_id, _it$grad_type, _it$status;
var search = searchText.toLowerCase();
return ((_it$email = it.email) === null || _it$email === void 0 ? void 0 : _it$email.toLowerCase().includes(search)) || ((_it$username = it.username) === null || _it$username === void 0 ? void 0 : _it$username.toLowerCase().includes(search)) || ((_it$role = it.role) === null || _it$role === void 0 ? void 0 : _it$role.toLowerCase().includes(search)) || ((_it$first_name = it.first_name) === null || _it$first_name === void 0 ? void 0 : _it$first_name.toLowerCase().includes(search)) || ((_it$last_name = it.last_name) === null || _it$last_name === void 0 ? void 0 : _it$last_name.toLowerCase().includes(search)) || ((_it$phone = it.phone) === null || _it$phone === void 0 ? void 0 : _it$phone.toLowerCase().includes(search)) || ((_it$telegram_id = it.telegram_id) === null || _it$telegram_id === void 0 ? void 0 : _it$telegram_id.toLowerCase().includes(search)) || ((_it$grad_type = it.grad_type) === null || _it$grad_type === void 0 ? void 0 : _it$grad_type.toLowerCase().includes(search)) || ((_it$status = it.status) === null || _it$status === void 0 ? void 0 : _it$status.toLowerCase().includes(search));
});
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
style: {
overflowX: 'auto'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("h2", null, "\u1794\u1789\u17D2\u1787\u17B8\u17A2\u17D2\u1793\u1780\u1794\u17D2\u179A\u17BE\u1794\u17D2\u179A\u17B6\u179F\u17CB"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
style: {
display: 'flex',
justifyContent: 'space-between',
padding: '10px',
background: '#f5f5f5',
marginBottom: '10px',
flexWrap: 'wrap'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_7__["default"], {
wrap: true
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", null, "\u179F\u179A\u17BB\u1794: ", (filteredData === null || filteredData === void 0 ? void 0 : filteredData.length) || 0), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_11__["default"], {
placeholder: "\u179F\u17D2\u179C\u17C2\u1784\u179A\u1780...",
style: {
width: 200
},
value: searchText,
onChange: function onChange(e) {
return setSearchText(e.target.value);
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_8___default()), {
onClick: handleSearch,
type: "primary"
}, "\u1785\u1798\u17D2\u179A\u17C4\u17C7"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_8___default()), {
onClick: handleReset
}, "\u1780\u17C6\u178E\u178F\u17CB\u17A1\u17BE\u1784\u179C\u17B7\u1789")), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_7__["default"], {
wrap: true
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_8___default()), {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_12__["default"], null),
type: "primary",
onClick: function onClick() {
return navigate("/users/form");
}
}, "\u1794\u1793\u17D2\u1790\u17C2\u1798\u1790\u17D2\u1798\u17B8"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_table__WEBPACK_IMPORTED_MODULE_13__["default"], {
rowSelection: {
type: 'checkbox',
onChange: function onChange(_, selectedRows) {
return setSelectedRows(selectedRows);
}
},
columns: columns,
dataSource: filteredData.map(function (it, index) {
return _objectSpread({
key: it.id,
index: index + 1,
name: it.first_name
}, it);
}),
pagination: {
pageSize: 10,
showSizeChanger: true
},
scroll: {
x: 'max-content'
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_container_dialogs_loading_dialog__WEBPACK_IMPORTED_MODULE_1__["default"], {
visible: usersPending
}));
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (UserList);
/***/ }),
/***/ "./src/shared/views/main/user_attendance/form.tsx":
/*!********************************************************!*\
!*** ./src/shared/views/main/user_attendance/form.tsx ***!
\********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_9__);
/* harmony import */ var antd_es_row__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! antd/es/row */ "../../../node_modules/antd/lib/row/index.js");
/* harmony import */ var antd_es_col__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! antd/es/col */ "../../../node_modules/antd/lib/col/index.js");
/* harmony import */ var antd_es_typography__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! antd/es/typography */ "../../../node_modules/antd/lib/typography/index.js");
/* harmony import */ var antd_es_form__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! antd/es/form */ "../../../node_modules/antd/lib/form/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs");
/* harmony import */ var _services_user_attendance_core_actions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../services/user_attendance/core/actions */ "./src/services/user_attendance/core/actions.ts");
/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js");
/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! moment */ "../../../node_modules/moment/moment.js");
/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(moment__WEBPACK_IMPORTED_MODULE_2__);
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _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(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
var NewEditUserAttendancePage = function NewEditUserAttendancePage() {
var _userAttendance$volun, _userAttendance$volun2, _userAttendance$volun3, _userAttendance$volun4, _userAttendance$volun5, _userAttendance$volun6, _userAttendance$volun7, _userAttendance$volun8, _userAttendance$volun9, _userAttendance$volun0, _userAttendance$volun1, _userAttendance$volun10, _userAttendance$volun11, _userAttendance$volun12, _userAttendance$volun13, _userAttendance$volun14, _userAttendance$volun15;
var dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_3__.useDispatch)();
var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_4__.useNavigate)();
var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_3__.useSelector)(function (state) {
return state.userAttendance;
}),
userAttendance = _useSelector.userAttendance,
registerErrorMessage = _useSelector.registerErrorMessage,
userAttendanceUpdatePending = _useSelector.userAttendanceUpdatePending;
var _Form$useForm = antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"].useForm(),
_Form$useForm2 = _slicedToArray(_Form$useForm, 1),
form = _Form$useForm2[0];
var searchParams = new URLSearchParams(location.search);
var id = searchParams.get('id');
var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false),
_useState2 = _slicedToArray(_useState, 2),
isClick = _useState2[0],
setIsClick = _useState2[1];
// π Fetch data when editing or reset form when adding
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
if (id) {
dispatch((0,_services_user_attendance_core_actions__WEBPACK_IMPORTED_MODULE_1__.userAttendanceDetailAction)(Number(id)));
}
}, [dispatch, id]);
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("h2", null, "User Attendance detail"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_6__["default"], {
gutter: [12, 12]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], {
span: 8
}, "Code: ", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_typography__WEBPACK_IMPORTED_MODULE_8__["default"].Text, {
style: {
color: userAttendance !== null && userAttendance !== void 0 && (_userAttendance$volun = userAttendance.volunteer) !== null && _userAttendance$volun !== void 0 && _userAttendance$volun.main_code ? 'green' : 'inherit'
}
}, (userAttendance === null || userAttendance === void 0 || (_userAttendance$volun2 = userAttendance.volunteer) === null || _userAttendance$volun2 === void 0 ? void 0 : _userAttendance$volun2.main_code) || (userAttendance === null || userAttendance === void 0 || (_userAttendance$volun3 = userAttendance.volunteer) === null || _userAttendance$volun3 === void 0 ? void 0 : _userAttendance$volun3.code))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], {
span: 8
}, "Meeting Note: ", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_typography__WEBPACK_IMPORTED_MODULE_8__["default"].Text, {
style: {
fontWeight: '600'
}
}, userAttendance === null || userAttendance === void 0 ? void 0 : userAttendance.meeting_note)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], {
span: 8
}, "Meeting Time: ", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_typography__WEBPACK_IMPORTED_MODULE_8__["default"].Text, {
style: {
fontWeight: '600'
}
}, moment__WEBPACK_IMPORTED_MODULE_2___default()(userAttendance === null || userAttendance === void 0 ? void 0 : userAttendance.meeting_time).format('MMMM Do YYYY, h:mm:ss a') || '-'))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("br", null), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_6__["default"], {
gutter: [12, 12]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], {
span: 8
}, "Photo: ", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("img", {
src: userAttendance === null || userAttendance === void 0 || (_userAttendance$volun4 = userAttendance.volunteer) === null || _userAttendance$volun4 === void 0 ? void 0 : _userAttendance$volun4.photo,
alt: "photo",
style: {
maxHeight: '100px',
borderRadius: '8px',
display: 'block'
}
})), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], {
span: 8
}, "Name Khmer: ", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_typography__WEBPACK_IMPORTED_MODULE_8__["default"].Text, {
style: {
fontWeight: '600'
}
}, userAttendance === null || userAttendance === void 0 || (_userAttendance$volun5 = userAttendance.volunteer) === null || _userAttendance$volun5 === void 0 ? void 0 : _userAttendance$volun5.last_name_khmer, " ", userAttendance === null || userAttendance === void 0 || (_userAttendance$volun6 = userAttendance.volunteer) === null || _userAttendance$volun6 === void 0 ? void 0 : _userAttendance$volun6.first_name_khmer)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], {
span: 8
}, "Name Latin: ", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_typography__WEBPACK_IMPORTED_MODULE_8__["default"].Text, {
style: {
fontWeight: '600'
}
}, userAttendance === null || userAttendance === void 0 || (_userAttendance$volun7 = userAttendance.volunteer) === null || _userAttendance$volun7 === void 0 ? void 0 : _userAttendance$volun7.last_name_latin, " ", userAttendance === null || userAttendance === void 0 || (_userAttendance$volun8 = userAttendance.volunteer) === null || _userAttendance$volun8 === void 0 ? void 0 : _userAttendance$volun8.first_name_latin))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("br", null), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_6__["default"], {
gutter: [12, 12]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], {
span: 8
}, "Volunteer Status: ", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_typography__WEBPACK_IMPORTED_MODULE_8__["default"].Text, {
style: {
fontWeight: '600'
}
}, userAttendance === null || userAttendance === void 0 || (_userAttendance$volun9 = userAttendance.volunteer) === null || _userAttendance$volun9 === void 0 ? void 0 : _userAttendance$volun9.volunteer_status)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], {
span: 8
}, "Gender: ", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_typography__WEBPACK_IMPORTED_MODULE_8__["default"].Text, {
style: {
fontWeight: '600'
}
}, userAttendance === null || userAttendance === void 0 || (_userAttendance$volun0 = userAttendance.volunteer) === null || _userAttendance$volun0 === void 0 ? void 0 : _userAttendance$volun0.gender)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], {
span: 8
}, "Date of Birth: ", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_typography__WEBPACK_IMPORTED_MODULE_8__["default"].Text, {
style: {
fontWeight: '600'
}
}, userAttendance === null || userAttendance === void 0 || (_userAttendance$volun1 = userAttendance.volunteer) === null || _userAttendance$volun1 === void 0 ? void 0 : _userAttendance$volun1.date_of_birth))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("br", null), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_6__["default"], {
gutter: [12, 12]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], {
span: 8
}, "Phone Number: ", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_typography__WEBPACK_IMPORTED_MODULE_8__["default"].Text, {
style: {
fontWeight: '600'
}
}, userAttendance === null || userAttendance === void 0 || (_userAttendance$volun10 = userAttendance.volunteer) === null || _userAttendance$volun10 === void 0 ? void 0 : _userAttendance$volun10.phone_number)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], {
span: 8
}, "Email: ", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_typography__WEBPACK_IMPORTED_MODULE_8__["default"].Text, {
style: {
fontWeight: '600'
}
}, userAttendance === null || userAttendance === void 0 || (_userAttendance$volun11 = userAttendance.volunteer) === null || _userAttendance$volun11 === void 0 ? void 0 : _userAttendance$volun11.email)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], {
span: 8
}, "Address: ", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_typography__WEBPACK_IMPORTED_MODULE_8__["default"].Text, {
style: {
fontWeight: '600'
}
}, userAttendance === null || userAttendance === void 0 || (_userAttendance$volun12 = userAttendance.volunteer) === null || _userAttendance$volun12 === void 0 ? void 0 : _userAttendance$volun12.phumi, " ", userAttendance === null || userAttendance === void 0 || (_userAttendance$volun13 = userAttendance.volunteer) === null || _userAttendance$volun13 === void 0 ? void 0 : _userAttendance$volun13.sangkat, " ", userAttendance === null || userAttendance === void 0 || (_userAttendance$volun14 = userAttendance.volunteer) === null || _userAttendance$volun14 === void 0 ? void 0 : _userAttendance$volun14.khan, " ", userAttendance === null || userAttendance === void 0 || (_userAttendance$volun15 = userAttendance.volunteer) === null || _userAttendance$volun15 === void 0 ? void 0 : _userAttendance$volun15.province_id))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("br", null), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_row__WEBPACK_IMPORTED_MODULE_6__["default"], {
gutter: [12, 12]
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_col__WEBPACK_IMPORTED_MODULE_7__["default"], {
span: 3
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_form__WEBPACK_IMPORTED_MODULE_5__["default"].Item, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_9___default()), {
htmlType: "button",
onClick: function onClick() {
return navigate('/user-attendances');
}
}, "Cancel")))));
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (NewEditUserAttendancePage);
/***/ }),
/***/ "./src/shared/views/main/user_attendance/index.tsx":
/*!*********************************************************!*\
!*** ./src/shared/views/main/user_attendance/index.tsx ***!
\*********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var antd_es_table__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! antd/es/table */ "../../../node_modules/antd/lib/table/index.js");
/* harmony import */ var antd_es_input__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! antd/es/input */ "../../../node_modules/antd/lib/input/index.js");
/* harmony import */ var antd_es_space__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! antd/es/space */ "../../../node_modules/antd/lib/space/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! antd/es/button */ "../../../node_modules/antd/lib/button/index.js");
/* harmony import */ var antd_es_button__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(antd_es_button__WEBPACK_IMPORTED_MODULE_8__);
/* harmony import */ var antd_es_typography__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! antd/es/typography */ "../../../node_modules/antd/lib/typography/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../../../node_modules/react/index.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react-redux */ "../../../node_modules/react-redux/dist/react-redux.mjs");
/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react-router-dom */ "../../../node_modules/react-router/dist/index.js");
/* harmony import */ var _container_dialogs_loading_dialog__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../container/dialogs/loading-dialog */ "./src/shared/container/dialogs/loading-dialog.tsx");
/* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @ant-design/icons */ "../../../node_modules/@ant-design/icons/es/icons/DeleteOutlined.js");
/* harmony import */ var _services_user_attendance_core_actions__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../services/user_attendance/core/actions */ "./src/services/user_attendance/core/actions.ts");
/* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! sweetalert2 */ "../../../node_modules/sweetalert2/dist/sweetalert2.all.js");
/* harmony import */ var sweetalert2__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(sweetalert2__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! moment */ "../../../node_modules/moment/moment.js");
/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(moment__WEBPACK_IMPORTED_MODULE_4__);
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _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(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
var UserAttendanceList = function UserAttendanceList() {
var dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_5__.useDispatch)();
var navigate = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_6__.useNavigate)();
var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]),
_useState2 = _slicedToArray(_useState, 2),
selectedRows = _useState2[0],
setSelectedRows = _useState2[1];
var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(''),
_useState4 = _slicedToArray(_useState3, 2),
searchText = _useState4[0],
setSearchText = _useState4[1];
var _useSelector = (0,react_redux__WEBPACK_IMPORTED_MODULE_5__.useSelector)(function (state) {
return state.userAttendance;
}),
userAttendances = _useSelector.userAttendances,
userAttendancesPending = _useSelector.userAttendancesPending;
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
dispatch((0,_services_user_attendance_core_actions__WEBPACK_IMPORTED_MODULE_2__.fetchUserAttendances)());
}, [dispatch]);
var handleEdit = function handleEdit(id) {
dispatch((0,_services_user_attendance_core_actions__WEBPACK_IMPORTED_MODULE_2__.userAttendanceDetailAction)(id));
navigate("/user-attendances/form?id=".concat(id));
};
var handleDelete = function handleDelete(id) {
sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().fire({
title: 'Are you sure?',
text: 'You won\'t be able to revert this!',
icon: 'warning',
showConfirmButton: false,
showCancelButton: false,
html: "\n \n \n \n
\n ",
didOpen: function didOpen() {
var _Swal$getPopup, _Swal$getPopup2;
var confirmButton = (_Swal$getPopup = sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().getPopup()) === null || _Swal$getPopup === void 0 ? void 0 : _Swal$getPopup.querySelector('#confirm-delete');
var cancelButton = (_Swal$getPopup2 = sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().getPopup()) === null || _Swal$getPopup2 === void 0 ? void 0 : _Swal$getPopup2.querySelector('#cancel-delete');
confirmButton === null || confirmButton === void 0 || confirmButton.addEventListener('click', function () {
dispatch((0,_services_user_attendance_core_actions__WEBPACK_IMPORTED_MODULE_2__.deleteUserAttendanceAction)(id)).then(function () {
sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().fire('Deleted!', 'The item has been deleted.', 'success');
dispatch((0,_services_user_attendance_core_actions__WEBPACK_IMPORTED_MODULE_2__.fetchUserAttendances)());
});
sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().close();
});
cancelButton === null || cancelButton === void 0 || cancelButton.addEventListener('click', function () {
sweetalert2__WEBPACK_IMPORTED_MODULE_3___default().close();
});
}
});
};
var handleSearch = function handleSearch() {
// Triggers search by setting state
setSearchText(searchText.trim());
};
var handleReset = function handleReset() {
// Clears input and shows all data
setSearchText('');
};
var columns = [{
title: 'αααααα',
dataIndex: 'index',
key: 'index',
responsive: ['sm']
}, {
title: 'αααααΌα',
key: 'code',
responsive: ['xs', 'sm', 'md', 'lg'],
render: function render(_, record) {
var _record$volunteer, _record$volunteer2, _record$volunteer3;
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_7__["default"], {
size: "small"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_8___default()), {
type: "link",
onClick: function onClick() {
return handleEdit(record.id);
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_typography__WEBPACK_IMPORTED_MODULE_9__["default"].Text, {
style: {
color: record !== null && record !== void 0 && (_record$volunteer = record.volunteer) !== null && _record$volunteer !== void 0 && _record$volunteer.main_code ? 'green' : 'inherit'
}
}, (record === null || record === void 0 || (_record$volunteer2 = record.volunteer) === null || _record$volunteer2 === void 0 ? void 0 : _record$volunteer2.main_code) || (record === null || record === void 0 || (_record$volunteer3 = record.volunteer) === null || _record$volunteer3 === void 0 ? void 0 : _record$volunteer3.code))));
}
}, {
title: 'αααααααααα',
dataIndex: 'nameKhmer',
key: 'nameKhmer',
responsive: ['sm']
}, {
title: 'αααααααΆααΆααΆα‘αΆααΆαα',
dataIndex: 'nameLatin',
key: 'nameLatin',
responsive: ['sm']
}, {
title: 'ααα',
dataIndex: 'gender',
key: 'gender',
responsive: ['sm']
}, {
title: 'αααααΌαααααα',
dataIndex: 'phoneNumber',
key: 'phoneNumber',
responsive: ['sm']
}, {
title: 'αααααα
αααΆααα·α
αα
ααααα»α',
dataIndex: 'meeting_note',
key: 'meeting_note',
responsive: ['sm']
}, {
title: 'αααααααΆααααα»α',
dataIndex: 'meeting_time',
key: 'meeting_time',
responsive: ['sm'],
render: function render(_, record) {
return moment__WEBPACK_IMPORTED_MODULE_4___default()(record.meeting_time).format('MMMM Do YYYY, h:mm:ss a') || '-';
}
}, {
title: 'Action',
key: 'action',
responsive: ['xs', 'sm', 'md', 'lg'],
render: function render(_, record) {
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_7__["default"], {
size: "middle"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_8___default()), {
icon: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_10__["default"], null),
danger: true,
onClick: function onClick() {
return handleDelete(record.id);
}
}));
}
}];
var filteredData = (userAttendances || []).filter(function (it) {
var _it$meeting_note, _it$meeting_time, _it$volunteer, _it$volunteer2, _it$volunteer3, _it$volunteer4, _it$volunteer5, _it$volunteer6, _it$volunteer7, _it$volunteer8;
var search = searchText.toLowerCase();
return ((_it$meeting_note = it.meeting_note) === null || _it$meeting_note === void 0 ? void 0 : _it$meeting_note.toLowerCase().includes(search)) || ((_it$meeting_time = it.meeting_time) === null || _it$meeting_time === void 0 ? void 0 : _it$meeting_time.toLowerCase().includes(search)) || ((_it$volunteer = it.volunteer) === null || _it$volunteer === void 0 || (_it$volunteer = _it$volunteer.code) === null || _it$volunteer === void 0 ? void 0 : _it$volunteer.toLowerCase().includes(search)) || ((_it$volunteer2 = it.volunteer) === null || _it$volunteer2 === void 0 || (_it$volunteer2 = _it$volunteer2.main_code) === null || _it$volunteer2 === void 0 ? void 0 : _it$volunteer2.toLowerCase().includes(search)) || ((_it$volunteer3 = it.volunteer) === null || _it$volunteer3 === void 0 || (_it$volunteer3 = _it$volunteer3.last_name_khmer) === null || _it$volunteer3 === void 0 ? void 0 : _it$volunteer3.toLowerCase().includes(search)) || ((_it$volunteer4 = it.volunteer) === null || _it$volunteer4 === void 0 || (_it$volunteer4 = _it$volunteer4.first_name_khmer) === null || _it$volunteer4 === void 0 ? void 0 : _it$volunteer4.toLowerCase().includes(search)) || ((_it$volunteer5 = it.volunteer) === null || _it$volunteer5 === void 0 || (_it$volunteer5 = _it$volunteer5.last_name_latin) === null || _it$volunteer5 === void 0 ? void 0 : _it$volunteer5.toLowerCase().includes(search)) || ((_it$volunteer6 = it.volunteer) === null || _it$volunteer6 === void 0 || (_it$volunteer6 = _it$volunteer6.first_name_latin) === null || _it$volunteer6 === void 0 ? void 0 : _it$volunteer6.toLowerCase().includes(search)) || ((_it$volunteer7 = it.volunteer) === null || _it$volunteer7 === void 0 || (_it$volunteer7 = _it$volunteer7.gender) === null || _it$volunteer7 === void 0 ? void 0 : _it$volunteer7.toLowerCase().includes(search)) || ((_it$volunteer8 = it.volunteer) === null || _it$volunteer8 === void 0 || (_it$volunteer8 = _it$volunteer8.phone_number) === null || _it$volunteer8 === void 0 ? void 0 : _it$volunteer8.toLowerCase().includes(search));
});
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
style: {
overflowX: 'auto'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("h2", null, "User Attendance List"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
style: {
display: 'flex',
justifyContent: 'space-between',
padding: '10px',
background: '#f5f5f5',
marginBottom: '10px',
flexWrap: 'wrap'
}
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_space__WEBPACK_IMPORTED_MODULE_7__["default"], {
wrap: true
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", null, "\u179F\u179A\u17BB\u1794: ", (filteredData === null || filteredData === void 0 ? void 0 : filteredData.length) || 0), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_input__WEBPACK_IMPORTED_MODULE_11__["default"], {
placeholder: "\u179F\u17D2\u179C\u17C2\u1784\u179A\u1780...",
style: {
width: 200
},
value: searchText,
onChange: function onChange(e) {
return setSearchText(e.target.value);
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_8___default()), {
onClick: handleSearch,
type: "primary"
}, "\u1785\u1798\u17D2\u179A\u17C4\u17C7"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((antd_es_button__WEBPACK_IMPORTED_MODULE_8___default()), {
onClick: handleReset
}, "\u1780\u17C6\u178E\u178F\u17CB\u17A1\u17BE\u1784\u179C\u17B7\u1789"))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(antd_es_table__WEBPACK_IMPORTED_MODULE_12__["default"], {
rowSelection: {
type: 'checkbox',
onChange: function onChange(_, selectedRows) {
return setSelectedRows(selectedRows);
}
},
columns: columns,
dataSource: filteredData.map(function (it, index) {
var _it$volunteer9, _it$volunteer0, _it$volunteer1, _it$volunteer10, _it$volunteer11, _it$volunteer12;
return _objectSpread({
key: it.id,
index: index + 1,
nameKhmer: "".concat(it === null || it === void 0 || (_it$volunteer9 = it.volunteer) === null || _it$volunteer9 === void 0 ? void 0 : _it$volunteer9.last_name_khmer, " ").concat(it === null || it === void 0 || (_it$volunteer0 = it.volunteer) === null || _it$volunteer0 === void 0 ? void 0 : _it$volunteer0.first_name_khmer),
nameLatin: "".concat(it === null || it === void 0 || (_it$volunteer1 = it.volunteer) === null || _it$volunteer1 === void 0 ? void 0 : _it$volunteer1.last_name_latin, " ").concat(it === null || it === void 0 || (_it$volunteer10 = it.volunteer) === null || _it$volunteer10 === void 0 ? void 0 : _it$volunteer10.first_name_latin),
gender: it === null || it === void 0 || (_it$volunteer11 = it.volunteer) === null || _it$volunteer11 === void 0 ? void 0 : _it$volunteer11.gender,
phoneNumber: it === null || it === void 0 || (_it$volunteer12 = it.volunteer) === null || _it$volunteer12 === void 0 ? void 0 : _it$volunteer12.phone_number
}, it);
}),
pagination: {
pageSize: 10,
showSizeChanger: true
},
scroll: {
x: 'max-content'
}
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_container_dialogs_loading_dialog__WEBPACK_IMPORTED_MODULE_1__["default"], {
visible: userAttendancesPending
}));
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (UserAttendanceList);
/***/ })
}]);
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianMvbWFpbi1zcmNfc2hhcmVkX3ZpZXdzX21haW5faS52b2x1bnRlZXJhcGkuNDI1MmZmNGEyMzE5ZWY0MGNiNjIuYnVuZGxlLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQW1EO0FBR0k7QUFFZ0c7QUFDeEc7QUFDRDtBQUU5QyxJQUFNVSx5QkFBbUMsR0FBRyxTQUF0Q0EseUJBQW1DQSxDQUFBLEVBQVM7RUFDaEQsSUFBTUMsUUFBUSxHQUFHUix3REFBVyxDQUFDLENBQUM7RUFDOUIsSUFBTVMsUUFBUSxHQUFHSiw2REFBVyxDQUFDLENBQUM7RUFDOUIsSUFBQUssWUFBQSxHQUE4RlQsd0RBQVcsQ0FDdkcsVUFBQ1UsS0FBZ0I7TUFBQSxPQUFLQSxLQUFLLENBQUNDLGNBQWM7SUFBQSxDQUM1QyxDQUFDO0lBRk1DLGVBQWUsR0FBQUgsWUFBQSxDQUFmRyxlQUFlO0lBQUVELGNBQWMsR0FBQUYsWUFBQSxDQUFkRSxjQUFjO0lBQUVFLG9CQUFvQixHQUFBSixZQUFBLENBQXBCSSxvQkFBb0I7SUFBRUMsMkJBQTJCLEdBQUFMLFlBQUEsQ0FBM0JLLDJCQUEyQjtFQUd6RixJQUFBQyxhQUFBLEdBQWVDLG9EQUFBLENBQUtDLE9BQU8sQ0FBQyxDQUFDO0lBQUFDLGNBQUEsR0FBQUMsY0FBQSxDQUFBSixhQUFBO0lBQXRCSyxJQUFJLEdBQUFGLGNBQUE7RUFFWCxJQUFNRyxZQUFZLEdBQUcsSUFBSUMsZUFBZSxDQUFDQyxRQUFRLENBQUNDLE1BQU0sQ0FBQztFQUN6RCxJQUFNQyxFQUFFLEdBQUdKLFlBQVksQ0FBQ0ssR0FBRyxDQUFDLElBQUksQ0FBQztFQUVqQyxJQUFBQyxTQUFBLEdBQThCN0IsK0NBQVEsQ0FBQyxLQUFLLENBQUM7SUFBQThCLFVBQUEsR0FBQVQsY0FBQSxDQUFBUSxTQUFBO0lBQXRDRSxPQUFPLEdBQUFELFVBQUE7SUFBRUUsVUFBVSxHQUFBRixVQUFBOztFQUUxQjtFQUNB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RUFBRSxhQUFGQSxFQUFFLGdCQUFBaWEsY0FBQSxHQUFGamEsRUFBRSxDQUFFMFgsU0FBUyxjQUFBdUMsY0FBQSx1QkFBYkEsY0FBQSxDQUFlOUIsZ0JBQWdCLENBQUU7UUFDakZvQyxTQUFTLEtBQUF4YyxNQUFBLENBQUtpQyxFQUFFLGFBQUZBLEVBQUUsZ0JBQUFrYSxjQUFBLEdBQUZsYSxFQUFFLENBQUUwWCxTQUFTLGNBQUF3QyxjQUFBLHVCQUFiQSxjQUFBLENBQWU5QixlQUFlLE9BQUFyYSxNQUFBLENBQUlpQyxFQUFFLGFBQUZBLEVBQUUsZ0JBQUFtYSxlQUFBLEdBQUZuYSxFQUFFLENBQUUwWCxTQUFTLGNBQUF5QyxlQUFBLHVCQUFiQSxlQUFBLENBQWU5QixnQkFBZ0IsQ0FBRTtRQUNqRkUsTUFBTSxFQUFFdlksRUFBRSxhQUFGQSxFQUFFLGdCQUFBb2EsZUFBQSxHQUFGcGEsRUFBRSxDQUFFMFgsU0FBUyxjQUFBMEMsZUFBQSx1QkFBYkEsZUFBQSxDQUFlN0IsTUFBTTtRQUM3QmlDLFdBQVcsRUFBRXhhLEVBQUUsYUFBRkEsRUFBRSxnQkFBQXFhLGVBQUEsR0FBRnJhLEVBQUUsQ0FBRTBYLFNBQVMsY0FBQTJDLGVBQUEsdUJBQWJBLGVBQUEsQ0FBZTVCO01BQVksR0FDckN6WSxFQUFFO0lBQUEsQ0FDTCxDQUFFO0lBQ0pzQixVQUFVLEVBQUU7TUFBRUMsUUFBUSxFQUFFLEVBQUU7TUFBRUMsZUFBZSxFQUFFO0lBQUssQ0FBRTtJQUNwREMsTUFBTSxFQUFFO01BQUVDLENBQUMsRUFBRTtJQUFjO0VBQUUsQ0FDOUIsQ0FBQyxlQUNGM0osMERBQUEsQ0FBQ2dGLHlFQUFhO0lBQUM0RSxPQUFPLEVBQUV1WDtFQUF1QixDQUFFLENBQzlDLENBQUM7QUFFVixDQUFDO0FBRUQsaUVBQWVGLGtCQUFrQixFIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQGNvcmUvdm9sdW50ZWVyX2FwcC8uL3NyYy9zaGFyZWQvdmlld3MvbWFpbi9pbnRlcmVzdGVkX3RlYW0vZm9ybS50c3giLCJ3ZWJwYWNrOi8vQGNvcmUvdm9sdW50ZWVyX2FwcC8uL3NyYy9zaGFyZWQvdmlld3MvbWFpbi9pbnRlcmVzdGVkX3RlYW0vaW5kZXgudHN4Iiwid2VicGFjazovL0Bjb3JlL3ZvbHVudGVlcl9hcHAvLi9zcmMvc2hhcmVkL3ZpZXdzL21haW4vbGFuZ3VhZ2UvZm9ybS50c3giLCJ3ZWJwYWNrOi8vQGNvcmUvdm9sdW50ZWVyX2FwcC8uL3NyYy9zaGFyZWQvdmlld3MvbWFpbi9sYW5ndWFnZS9pbmRleC50c3giLCJ3ZWJwYWNrOi8vQGNvcmUvdm9sdW50ZWVyX2FwcC8uL3NyYy9zaGFyZWQvdmlld3MvbWFpbi9ub3RpZmljYXRpb24vY29yZS9ub3RpZmljYXRpb25fc2VydmljZS50cyIsIndlYnBhY2s6Ly9AY29yZS92b2x1bnRlZXJfYXBwLy4vc3JjL3NoYXJlZC92aWV3cy9tYWluL25vdGlmaWNhdGlvbi9pbmRleC50c3giLCJ3ZWJwYWNrOi8vQGNvcmUvdm9sdW50ZWVyX2FwcC8uL3NyYy9zaGFyZWQvdmlld3MvbWFpbi9vY2N1cGF0aW9uL2Zvcm0udHN4Iiwid2VicGFjazovL0Bjb3JlL3ZvbHVudGVlcl9hcHAvLi9zcmMvc2hhcmVkL3ZpZXdzL21haW4vb2NjdXBhdGlvbi9pbmRleC50c3giLCJ3ZWJwYWNrOi8vQGNvcmUvdm9sdW50ZWVyX2FwcC8uL3NyYy9zaGFyZWQvdmlld3MvbWFpbi9vZmZlcl9wcm9ncmFtL2Zvcm0udHN4Iiwid2VicGFjazovL0Bjb3JlL3ZvbHVudGVlcl9hcHAvLi9zcmMvc2hhcmVkL3ZpZXdzL21haW4vb2ZmZXJfcHJvZ3JhbS9pbmRleC50c3giLCJ3ZWJwYWNrOi8vQGNvcmUvdm9sdW50ZWVyX2FwcC8uL3NyYy9zaGFyZWQvdmlld3MvbWFpbi9vcHBvcnR1bml0eV9zb3VyY2UvZm9ybS50c3giLCJ3ZWJwYWNrOi8vQGNvcmUvdm9sdW50ZWVyX2FwcC8uL3NyYy9zaGFyZWQvdmlld3MvbWFpbi9vcHBvcnR1bml0eV9zb3VyY2UvaW5kZXgudHN4Iiwid2VicGFjazovL0Bjb3JlL3ZvbHVudGVlcl9hcHAvLi9zcmMvc2hhcmVkL3ZpZXdzL21haW4vcHJvdmluY2UvZm9ybS50c3giLCJ3ZWJwYWNrOi8vQGNvcmUvdm9sdW50ZWVyX2FwcC8uL3NyYy9zaGFyZWQvdmlld3MvbWFpbi9wcm92aW5jZS9pbmRleC50c3giLCJ3ZWJwYWNrOi8vQGNvcmUvdm9sdW50ZWVyX2FwcC8uL3NyYy9zaGFyZWQvdmlld3MvbWFpbi9za2lsbC9mb3JtLnRzeCIsIndlYnBhY2s6Ly9AY29yZS92b2x1bnRlZXJfYXBwLy4vc3JjL3NoYXJlZC92aWV3cy9tYWluL3NraWxsL2luZGV4LnRzeCIsIndlYnBhY2s6Ly9AY29yZS92b2x1bnRlZXJfYXBwLy4vc3JjL3NoYXJlZC92aWV3cy9tYWluL3Rlcm1zX2NvbmRpdGlvbi9mb3JtLnRzeCIsIndlYnBhY2s6Ly9AY29yZS92b2x1bnRlZXJfYXBwLy4vc3JjL3NoYXJlZC92aWV3cy9tYWluL3Rlcm1zX2NvbmRpdGlvbi9pbmRleC50c3giLCJ3ZWJwYWNrOi8vQGNvcmUvdm9sdW50ZWVyX2FwcC8uL3NyYy9zaGFyZWQvdmlld3MvbWFpbi90cmFpbmluZ19zZXNzaW9uL2Zvcm0udHN4Iiwid2VicGFjazovL0Bjb3JlL3ZvbHVudGVlcl9hcHAvLi9zcmMvc2hhcmVkL3ZpZXdzL21haW4vdHJhaW5pbmdfc2Vzc2lvbi9pbmRleC50c3giLCJ3ZWJwYWNrOi8vQGNvcmUvdm9sdW50ZWVyX2FwcC8uL3NyYy9zaGFyZWQvdmlld3MvbWFpbi90cmF2ZWxfZGF5L2Zvcm0udHN4Iiwid2VicGFjazovL0Bjb3JlL3ZvbHVudGVlcl9hcHAvLi9zcmMvc2hhcmVkL3ZpZXdzL21haW4vdHJhdmVsX2RheS9pbmRleC50c3giLCJ3ZWJwYWNrOi8vQGNvcmUvdm9sdW50ZWVyX2FwcC8uL3NyYy9zaGFyZWQvdmlld3MvbWFpbi91c2VyL2Zvcm0udHN4Iiwid2VicGFjazovL0Bjb3JlL3ZvbHVudGVlcl9hcHAvLi9zcmMvc2hhcmVkL3ZpZXdzL21haW4vdXNlci9pbmRleC50c3giLCJ3ZWJwYWNrOi8vQGNvcmUvdm9sdW50ZWVyX2FwcC8uL3NyYy9zaGFyZWQvdmlld3MvbWFpbi91c2VyX2F0dGVuZGFuY2UvZm9ybS50c3giLCJ3ZWJwYWNrOi8vQGNvcmUvdm9sdW50ZWVyX2FwcC8uL3NyYy9zaGFyZWQvdmlld3MvbWFpbi91c2VyX2F0dGVuZGFuY2UvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgRm9ybSwgSW5wdXQsIEJ1dHRvbiwgUm93LCBDb2wsIG1lc3NhZ2UsIFNlbGVjdCB9IGZyb20gJ2FudGQnO1xuaW1wb3J0IHsgUm9vdFN0YXRlIH0gZnJvbSAnLi4vLi4vLi4vcmVkdXgvc3RvcmUnO1xuaW1wb3J0IHsgdXNlRGlzcGF0Y2gsIHVzZVNlbGVjdG9yIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHsgSW50ZXJlc3RlZFRlYW0gfSBmcm9tICdAL3NoYXJlZC9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGNyZWF0ZUludGVyZXN0ZWRUZWFtQWN0aW9uLCBpbnRlcmVzdGVkVGVhbURldGFpbEFjdGlvbiwgdXBkYXRlSW50ZXJlc3RlZFRlYW1BY3Rpb24gfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9pbnRlcmVzdGVkX3RlYW0vY29yZS9hY3Rpb25zJztcbmltcG9ydCB7IHVzZU5hdmlnYXRlIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQgVGV4dEFyZWEgZnJvbSAnYW50ZC9lcy9pbnB1dC9UZXh0QXJlYSc7XG5cbmNvbnN0IE5ld0VkaXRJbnRlcmVzdGVkVGVhbVBhZ2U6IFJlYWN0LkZDID0gKCkgPT4ge1xuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG4gIGNvbnN0IG5hdmlnYXRlID0gdXNlTmF2aWdhdGUoKTtcbiAgY29uc3Qge2ludGVyZXN0ZWRUZWFtcywgaW50ZXJlc3RlZFRlYW0sIHJlZ2lzdGVyRXJyb3JNZXNzYWdlLCBpbnRlcmVzdGVkVGVhbVVwZGF0ZVBlbmRpbmcgfSA9IHVzZVNlbGVjdG9yKFxuICAgIChzdGF0ZTogUm9vdFN0YXRlKSA9PiBzdGF0ZS5pbnRlcmVzdGVkVGVhbVxuICApO1xuICBjb25zdCBbZm9ybV0gPSBGb3JtLnVzZUZvcm0oKTtcblxuICBjb25zdCBzZWFyY2hQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKGxvY2F0aW9uLnNlYXJjaCk7XG4gIGNvbnN0IGlkID0gc2VhcmNoUGFyYW1zLmdldCgnaWQnKTtcblxuICBjb25zdCBbaXNDbGljaywgc2V0SXNDbGlja10gPSB1c2VTdGF0ZShmYWxzZSk7XG5cbiAgLy8g8J+RiSBGZXRjaCBkYXRhIHdoZW4gZWRpdGluZyBvciByZXNldCBmb3JtIHdoZW4gYWRkaW5nXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlkKSB7XG4gICAgICBkaXNwYXRjaChpbnRlcmVzdGVkVGVhbURldGFpbEFjdGlvbihOdW1iZXIoaWQpKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZvcm0ucmVzZXRGaWVsZHMoKTsgLy8gUmVzZXQgZm9ybSBmaWVsZHMgd2hlbiBhZGRpbmcgYSBuZXcgaXRlbVxuICAgIH1cbiAgfSwgW2Rpc3BhdGNoLCBpZCwgZm9ybV0pO1xuXG4gIC8vIPCfkYkgUG9wdWxhdGUgZm9ybSB3aXRoIGZldGNoZWQgZGF0YVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChpZCAmJiBpbnRlcmVzdGVkVGVhbSkge1xuICAgICAgZm9ybS5zZXRGaWVsZHNWYWx1ZSh7XG4gICAgICAgIG5hbWU6IGludGVyZXN0ZWRUZWFtLm5hbWUgfHwgJycsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBpbnRlcmVzdGVkVGVhbS5kZXNjcmlwdGlvbiB8fCAnJyxcbiAgICAgICAgcGFyZW50X2lkOiBpbnRlcmVzdGVkVGVhbS5wYXJlbnRfaWQgfHwgbnVsbCxcbiAgICAgIH0pO1xuICAgIH1cbiAgfSwgW2ludGVyZXN0ZWRUZWFtLCBmb3JtLCBpZF0pO1xuXG4gIC8vIPCfkYkgU2hvdyBzdWNjZXNzIG9yIGVycm9yIGFsZXJ0c1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghaW50ZXJlc3RlZFRlYW1VcGRhdGVQZW5kaW5nICYmIGlzQ2xpY2spIHtcbiAgICAgIGlmIChyZWdpc3RlckVycm9yTWVzc2FnZSkge1xuICAgICAgICBtZXNzYWdlLmVycm9yKHJlZ2lzdGVyRXJyb3JNZXNzYWdlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG1lc3NhZ2Uuc3VjY2VzcyhpZCA/ICdVcGRhdGVkIHN1Y2Nlc3NmdWxseSEnIDogJ0NyZWF0ZWQgc3VjY2Vzc2Z1bGx5IScpO1xuICAgICAgICBuYXZpZ2F0ZSgnL2ludGVyZXN0ZWQtdGVhbXMnKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIFtpbnRlcmVzdGVkVGVhbVVwZGF0ZVBlbmRpbmcsIHJlZ2lzdGVyRXJyb3JNZXNzYWdlLCBpZCwgaXNDbGljaywgbmF2aWdhdGVdKTtcblxuICAvLyDwn5GJIEhhbmRsZSBmb3JtIHN1Ym1pdFxuICBjb25zdCBvbkZpbmlzaCA9ICh2YWx1ZXM6IEludGVyZXN0ZWRUZWFtKSA9PiB7XG4gICAgaWYgKGlkKSB7XG4gICAgICBkaXNwYXRjaCh1cGRhdGVJbnRlcmVzdGVkVGVhbUFjdGlvbih7IGlkOiBOdW1iZXIoaWQpLCBkYXRhOiB2YWx1ZXMgfSkpO1xuICAgICAgZm9ybS5yZXNldEZpZWxkcygpO1xuICAgIH0gZWxzZSB7XG4gICAgICBkaXNwYXRjaChjcmVhdGVJbnRlcmVzdGVkVGVhbUFjdGlvbih7IGRhdGE6IHZhbHVlcyB9KSk7XG4gICAgICBmb3JtLnJlc2V0RmllbGRzKCk7IC8vIFJlc2V0IGZvcm0gYWZ0ZXIgc3VjY2Vzc2Z1bCBjcmVhdGlvblxuICAgIH1cbiAgICBzZXRJc0NsaWNrKHRydWUpO1xuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxoMj57aWQgPyAn4Z6A4Z+C4Z6U4Z+S4Z6a4Z+C4Z6A4Z+S4Z6a4Z674Z6Y4Z6F4Z624Z6U4Z+L4Z6i4Z624Z6a4Z6Y4Z+S4Z6Y4Z6O4Z+NJyA6ICfhnpThnpPhn5LhnpDhn4LhnpjhnpDhn5LhnpjhnrjhnoDhn5LhnprhnrvhnpjhnoXhnrbhnpThn4vhnqLhnrbhnprhnpjhn5Lhnpjhno7hn40nfTwvaDI+XG4gICAgICA8Rm9ybSBmb3JtPXtmb3JtfSBsYXlvdXQ9XCJ2ZXJ0aWNhbFwiIG9uRmluaXNoPXtvbkZpbmlzaH0gc3R5bGU9e3sgbWF4V2lkdGg6ICcxMDAlJywgbWFyZ2luOiAnMCBhdXRvJyB9fT5cbiAgICAgICAgPFJvdyBndXR0ZXI9e1sxMiwgMTJdfT5cbiAgICAgICAgICA8Q29sIHNwYW49ezEyfT5cbiAgICAgICAgICAgIDxGb3JtLkl0ZW0gbGFiZWw9XCLhnojhn5Lhnpjhn4Thn4dcIiBuYW1lPVwibmFtZVwiIHJ1bGVzPXtbeyByZXF1aXJlZDogdHJ1ZSwgbWVzc2FnZTogJ1BsZWFzZSBlbnRlciBhIG5hbWUnIH1dfT5cbiAgICAgICAgICAgICAgPElucHV0IC8+XG4gICAgICAgICAgICA8L0Zvcm0uSXRlbT5cbiAgICAgICAgICA8L0NvbD5cblxuICAgICAgICAgIDxDb2wgc3Bhbj17MTJ9PlxuICAgICAgICAgICAgPEZvcm0uSXRlbSBsYWJlbD1cIlBhcmVudCBUZWFtXCIgbmFtZT1cInBhcmVudF9pZFwiPlxuICAgICAgICAgICAgICA8U2VsZWN0IGFsbG93Q2xlYXIgcGxhY2Vob2xkZXI9XCJTZWxlY3QgUGFyZW50IFRlYW1cIj5cbiAgICAgICAgICAgICAgICB7QXJyYXkuaXNBcnJheShpbnRlcmVzdGVkVGVhbXMpICYmIGludGVyZXN0ZWRUZWFtcy5tYXAoKHRlYW0pID0+IChcbiAgICAgICAgICAgICAgICAgIDxPcHRpb24ga2V5PXt0ZWFtLmlkfSB2YWx1ZT17dGVhbS5pZH0+e3RlYW0ubmFtZX08L09wdGlvbj5cbiAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgPC9TZWxlY3Q+XG4gICAgICAgICAgICA8L0Zvcm0uSXRlbT5cbiAgICAgICAgICA8L0NvbD5cblxuICAgICAgICAgIDxDb2wgc3Bhbj17MTJ9PlxuICAgICAgICAgICAgPEZvcm0uSXRlbSBsYWJlbD1cIuGelOGemuGet+GemeGetuGemSAoT3B0aW9uYWwpXCIgbmFtZT1cImRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgICAgIDxUZXh0QXJlYSByb3dzPXszfSAvPlxuICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XG4gICAgICAgICAgPC9Db2w+XG4gICAgICAgIDwvUm93PlxuICAgICAgICA8Um93IGd1dHRlcj17WzEyLCAxMl19PlxuICAgICAgICAgIDxDb2wgc3Bhbj17M30+XG4gICAgICAgICAgICA8Rm9ybS5JdGVtPlxuICAgICAgICAgICAgICA8QnV0dG9uIHR5cGU9XCJwcmltYXJ5XCIgYmxvY2sgaHRtbFR5cGU9XCJzdWJtaXRcIiBsb2FkaW5nPXtpbnRlcmVzdGVkVGVhbVVwZGF0ZVBlbmRpbmd9PlxuICAgICAgICAgICAgICAgIFN1Ym1pdFxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxuICAgICAgICAgIDwvQ29sPlxuICAgICAgICAgIDxDb2wgc3Bhbj17M30+XG4gICAgICAgICAgICA8Rm9ybS5JdGVtPlxuICAgICAgICAgICAgICA8QnV0dG9uIGh0bWxUeXBlPVwiYnV0dG9uXCIgb25DbGljaz17KCkgPT4gbmF2aWdhdGUoJy9pbnRlcmVzdGVkLXRlYW1zJyl9PlxuICAgICAgICAgICAgICAgIENhbmNlbFxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxuICAgICAgICAgIDwvQ29sPlxuICAgICAgICA8L1Jvdz5cbiAgICAgIDwvRm9ybT5cbiAgICA8Lz5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IE5ld0VkaXRJbnRlcmVzdGVkVGVhbVBhZ2U7XG4iLCJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEJ1dHRvbiwgSW5wdXQsIFNwYWNlLCBUYWJsZSB9IGZyb20gJ2FudGQnO1xuaW1wb3J0IHsgdXNlRGlzcGF0Y2gsIHVzZVNlbGVjdG9yIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHsgUm9vdFN0YXRlIH0gZnJvbSAnLi4vLi4vLi4vcmVkdXgvc3RvcmUnO1xuaW1wb3J0IHsgdXNlTmF2aWdhdGUgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCBMb2FkaW5nRGlhbG9nIGZyb20gJy4uLy4uLy4uL2NvbnRhaW5lci9kaWFsb2dzL2xvYWRpbmctZGlhbG9nJztcbmltcG9ydCB7IERlbGV0ZU91dGxpbmVkLCBFZGl0T3V0bGluZWQsIFBsdXNPdXRsaW5lZCB9IGZyb20gJ0BhbnQtZGVzaWduL2ljb25zJztcbmltcG9ydCB7IGRlbGV0ZUludGVyZXN0ZWRUZWFtQWN0aW9uLCBpbnRlcmVzdGVkVGVhbURldGFpbEFjdGlvbiwgZmV0Y2hJbnRlcmVzdGVkVGVhbXMgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9pbnRlcmVzdGVkX3RlYW0vY29yZS9hY3Rpb25zJztcbmltcG9ydCBTd2FsIGZyb20gJ3N3ZWV0YWxlcnQyJztcblxuY29uc3QgSW50ZXJlc3RlZFRlYW1MaXN0ID0gKCkgPT4ge1xuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG4gIGNvbnN0IG5hdmlnYXRlID0gdXNlTmF2aWdhdGUoKTtcbiAgY29uc3QgW3NlbGVjdGVkUm93cywgc2V0U2VsZWN0ZWRSb3dzXSA9IHVzZVN0YXRlPGFueT4oW10pO1xuICBjb25zdCBbc2VhcmNoVGV4dCwgc2V0U2VhcmNoVGV4dF0gPSB1c2VTdGF0ZSgnJyk7XG4gIGNvbnN0IHsgaW50ZXJlc3RlZFRlYW1zLCBpbnRlcmVzdGVkVGVhbXNQZW5kaW5nIH0gPSB1c2VTZWxlY3Rvcigoc3RhdGU6IFJvb3RTdGF0ZSkgPT4gc3RhdGUuaW50ZXJlc3RlZFRlYW0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgZGlzcGF0Y2goZmV0Y2hJbnRlcmVzdGVkVGVhbXMoKSk7XG4gIH0sIFtkaXNwYXRjaF0pO1xuXG4gIGNvbnN0IGhhbmRsZUVkaXQgPSAoaWQ6IGFueSkgPT4ge1xuICAgIGRpc3BhdGNoKGludGVyZXN0ZWRUZWFtRGV0YWlsQWN0aW9uKGlkKSk7XG4gICAgbmF2aWdhdGUoYC9pbnRlcmVzdGVkLXRlYW1zL2Zvcm0/aWQ9JHtpZH1gKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVEZWxldGUgPSAoaWQ6IGFueSkgPT4ge1xuICAgIFN3YWwuZmlyZSh7XG4gICAgICB0aXRsZTogJ0FyZSB5b3Ugc3VyZT8nLFxuICAgICAgdGV4dDogJ1lvdSB3b25cXCd0IGJlIGFibGUgdG8gcmV2ZXJ0IHRoaXMhJyxcbiAgICAgIGljb246ICd3YXJuaW5nJyxcbiAgICAgIHNob3dDb25maXJtQnV0dG9uOiBmYWxzZSxcbiAgICAgIHNob3dDYW5jZWxCdXR0b246IGZhbHNlLFxuICAgICAgaHRtbDogYFxuICAgICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IGdhcDogMTBweDsgbWFyZ2luLXRvcDogMjBweDtcIj5cbiAgICAgICAgICA8YnV0dG9uIGlkPVwiY29uZmlybS1kZWxldGVcIiBjbGFzcz1cInN3YWwyLWNvbmZpcm0gc3dhbDItc3R5bGVkXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiAjZDMzO1wiPkRlbGV0ZTwvYnV0dG9uPlxuICAgICAgICAgIDxidXR0b24gaWQ9XCJjYW5jZWwtZGVsZXRlXCIgY2xhc3M9XCJzd2FsMi1jYW5jZWwgc3dhbDItc3R5bGVkXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiAjMzA4NWQ2O1wiPkNhbmNlbDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIGAsXG4gICAgICBkaWRPcGVuOiAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbmZpcm1CdXR0b24gPSBTd2FsLmdldFBvcHVwKCk/LnF1ZXJ5U2VsZWN0b3IoJyNjb25maXJtLWRlbGV0ZScpO1xuICAgICAgICBjb25zdCBjYW5jZWxCdXR0b24gPSBTd2FsLmdldFBvcHVwKCk/LnF1ZXJ5U2VsZWN0b3IoJyNjYW5jZWwtZGVsZXRlJyk7XG5cbiAgICAgICAgY29uZmlybUJ1dHRvbj8uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XG4gICAgICAgICAgZGlzcGF0Y2goZGVsZXRlSW50ZXJlc3RlZFRlYW1BY3Rpb24oaWQpKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIFN3YWwuZmlyZSgnRGVsZXRlZCEnLCAnVGhlIGl0ZW0gaGFzIGJlZW4gZGVsZXRlZC4nLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgZGlzcGF0Y2goZmV0Y2hJbnRlcmVzdGVkVGVhbXMoKSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgU3dhbC5jbG9zZSgpO1xuICAgICAgICB9KTtcblxuICAgICAgICBjYW5jZWxCdXR0b24/LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgICAgIFN3YWwuY2xvc2UoKTtcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVNlYXJjaCA9ICgpID0+IHtcbiAgICAvLyBUcmlnZ2VycyBzZWFyY2ggYnkgc2V0dGluZyBzdGF0ZVxuICAgIHNldFNlYXJjaFRleHQoc2VhcmNoVGV4dC50cmltKCkpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVJlc2V0ID0gKCkgPT4ge1xuICAgIC8vIENsZWFycyBpbnB1dCBhbmQgc2hvd3MgYWxsIGRhdGFcbiAgICBzZXRTZWFyY2hUZXh0KCcnKTtcbiAgfTtcblxuICBjb25zdCBjb2x1bW5zID0gW1xuICAgIHsgdGl0bGU6ICfhnpvhn4HhnoHhnprhn4DhnoQnLCBkYXRhSW5kZXg6ICdpbmRleCcsIGtleTogJ2luZGV4JywgcmVzcG9uc2l2ZTogWydzbSddIH0sXG4gICAgeyB0aXRsZTogJ+GeiOGfkuGemOGfhOGfhycsIGRhdGFJbmRleDogJ25hbWUnLCBrZXk6ICduYW1lJywgcmVzcG9uc2l2ZTogWydzbSddIH0sXG4gICAgeyB0aXRsZTogJ+GelOGemuGet+GemeGetuGemScsIGRhdGFJbmRleDogJ2Rlc2NyaXB0aW9uJywga2V5OiAnZGVzY3JpcHRpb24nLCByZXNwb25zaXZlOiBbJ3NtJ10gfSxcbiAgICB7XG4gICAgICB0aXRsZTogJ0FjdGlvbicsXG4gICAgICBrZXk6ICdhY3Rpb24nLFxuICAgICAgcmVzcG9uc2l2ZTogWyd4cycsICdzbScsICdtZCcsICdsZyddLFxuICAgICAgcmVuZGVyOiAoXzogc3RyaW5nLCByZWNvcmQ6IGFueSkgPT4gKFxuICAgICAgICA8U3BhY2Ugc2l6ZT1cIm1pZGRsZVwiPlxuICAgICAgICAgIDxCdXR0b24gaWNvbj17PEVkaXRPdXRsaW5lZCAvPn0gdHlwZT1cInByaW1hcnlcIiBvbkNsaWNrPXsoKSA9PiBoYW5kbGVFZGl0KHJlY29yZC5pZCl9IC8+XG4gICAgICAgICAgPEJ1dHRvbiBpY29uPXs8RGVsZXRlT3V0bGluZWQgLz59IGRhbmdlciBvbkNsaWNrPXsoKSA9PiBoYW5kbGVEZWxldGUocmVjb3JkLmlkKX0gLz5cbiAgICAgICAgPC9TcGFjZT5cbiAgICAgICksXG4gICAgfSxcbiAgXTtcblxuICBjb25zdCBmaWx0ZXJlZERhdGEgPSAoaW50ZXJlc3RlZFRlYW1zIHx8IFtdKS5maWx0ZXIoKGl0KSA9PlxuICAgIGl0Lm5hbWU/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVGV4dC50b0xvd2VyQ2FzZSgpKVxuICApO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBzdHlsZT17eyBvdmVyZmxvd1g6ICdhdXRvJyB9fT5cbiAgICAgIDxoMj7hnpThnonhn5LhnofhnrjhnoDhn5LhnprhnrvhnpjhnoXhnrbhnpThn4vhnqLhnrbhnprhnpjhn5Lhnpjhno7hn408L2gyPlxuICAgICAgPGRpdlxuICAgICAgICBzdHlsZT17e1xuICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ3NwYWNlLWJldHdlZW4nLFxuICAgICAgICAgIHBhZGRpbmc6ICcxMHB4JyxcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAnI2Y1ZjVmNScsXG4gICAgICAgICAgbWFyZ2luQm90dG9tOiAnMTBweCcsXG4gICAgICAgICAgZmxleFdyYXA6ICd3cmFwJyxcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgPFNwYWNlIHdyYXA+XG4gICAgICAgICAgPHNwYW4+4Z6f4Z6a4Z674Z6UOiB7ZmlsdGVyZWREYXRhPy5sZW5ndGggfHwgMH08L3NwYW4+XG4gICAgICAgICAgPElucHV0XG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIuGen+GfkuGenOGfguGehOGemuGegC4uLlwiXG4gICAgICAgICAgICBzdHlsZT17eyB3aWR0aDogMjAwIH19XG4gICAgICAgICAgICB2YWx1ZT17c2VhcmNoVGV4dH1cbiAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gc2V0U2VhcmNoVGV4dChlLnRhcmdldC52YWx1ZSl9XG4gICAgICAgICAgLz5cbiAgICAgICAgICA8QnV0dG9uIG9uQ2xpY2s9e2hhbmRsZVNlYXJjaH0gdHlwZT1cInByaW1hcnlcIj7hnoXhnpjhn5Lhnprhn4Thn4c8L0J1dHRvbj5cbiAgICAgICAgICA8QnV0dG9uIG9uQ2xpY2s9e2hhbmRsZVJlc2V0fT7hnoDhn4bhno7hno/hn4vhnqHhnr7hnoThnpzhnrfhnok8L0J1dHRvbj5cbiAgICAgICAgPC9TcGFjZT5cbiAgICAgICAgPFNwYWNlIHdyYXA+XG4gICAgICAgICAgPEJ1dHRvbiBpY29uPXs8UGx1c091dGxpbmVkIC8+fSB0eXBlPVwicHJpbWFyeVwiIG9uQ2xpY2s9eygpID0+IG5hdmlnYXRlKGAvaW50ZXJlc3RlZC10ZWFtcy9mb3JtYCl9PuGelOGek+GfkuGekOGfguGemOGekOGfkuGemOGeuDwvQnV0dG9uPlxuICAgICAgICA8L1NwYWNlPlxuICAgICAgPC9kaXY+XG4gICAgICA8VGFibGVcbiAgICAgICAgcm93U2VsZWN0aW9uPXt7XG4gICAgICAgICAgdHlwZTogJ2NoZWNrYm94JyxcbiAgICAgICAgICBvbkNoYW5nZTogKF8sIHNlbGVjdGVkUm93cykgPT4gc2V0U2VsZWN0ZWRSb3dzKHNlbGVjdGVkUm93cyksXG4gICAgICAgIH19XG4gICAgICAgIGNvbHVtbnM9e2NvbHVtbnN9XG4gICAgICAgIGRhdGFTb3VyY2U9e2ZpbHRlcmVkRGF0YS5tYXAoKGl0LCBpbmRleCkgPT4gKHtcbiAgICAgICAgICBrZXk6IGl0LmlkLFxuICAgICAgICAgIGluZGV4OiBpbmRleCArIDEsXG4gICAgICAgICAgbmFtZTogaXQubmFtZSxcbiAgICAgICAgICAuLi5pdCxcbiAgICAgICAgfSkpfVxuICAgICAgICBwYWdpbmF0aW9uPXt7IHBhZ2VTaXplOiAxMCwgc2hvd1NpemVDaGFuZ2VyOiB0cnVlIH19XG4gICAgICAgIHNjcm9sbD17eyB4OiAnbWF4LWNvbnRlbnQnIH19XG4gICAgICAvPlxuICAgICAgPExvYWRpbmdEaWFsb2cgdmlzaWJsZT17aW50ZXJlc3RlZFRlYW1zUGVuZGluZ30gLz5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEludGVyZXN0ZWRUZWFtTGlzdDtcbiIsImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgRm9ybSwgSW5wdXQsIEJ1dHRvbiwgUm93LCBDb2wsIG1lc3NhZ2UgfSBmcm9tICdhbnRkJztcbmltcG9ydCB7IFJvb3RTdGF0ZSB9IGZyb20gJy4uLy4uLy4uL3JlZHV4L3N0b3JlJztcbmltcG9ydCB7IHVzZURpc3BhdGNoLCB1c2VTZWxlY3RvciB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7IExhbmd1YWdlIH0gZnJvbSAnQC9zaGFyZWQvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBjcmVhdGVMYW5ndWFnZUFjdGlvbiwgbGFuZ3VhZ2VEZXRhaWxBY3Rpb24sIHVwZGF0ZUxhbmd1YWdlQWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvbGFuZ3VhZ2UvY29yZS9hY3Rpb25zJztcbmltcG9ydCB7IHVzZU5hdmlnYXRlIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQgVGV4dEFyZWEgZnJvbSAnYW50ZC9lcy9pbnB1dC9UZXh0QXJlYSc7XG5cbmNvbnN0IE5ld0VkaXRMYW5ndWFnZVBhZ2U6IFJlYWN0LkZDID0gKCkgPT4ge1xuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG4gIGNvbnN0IG5hdmlnYXRlID0gdXNlTmF2aWdhdGUoKTtcbiAgY29uc3QgeyBsYW5ndWFnZSwgcmVnaXN0ZXJFcnJvck1lc3NhZ2UsIGxhbmd1YWdlVXBkYXRlUGVuZGluZyB9ID0gdXNlU2VsZWN0b3IoXG4gICAgKHN0YXRlOiBSb290U3RhdGUpID0+IHN0YXRlLmxhbmd1YWdlXG4gICk7XG4gIGNvbnN0IFtmb3JtXSA9IEZvcm0udXNlRm9ybSgpO1xuXG4gIGNvbnN0IHNlYXJjaFBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMobG9jYXRpb24uc2VhcmNoKTtcbiAgY29uc3QgaWQgPSBzZWFyY2hQYXJhbXMuZ2V0KCdpZCcpO1xuXG4gIGNvbnN0IFtpc0NsaWNrLCBzZXRJc0NsaWNrXSA9IHVzZVN0YXRlKGZhbHNlKTtcblxuICAvLyDwn5GJIEZldGNoIGRhdGEgd2hlbiBlZGl0aW5nIG9yIHJlc2V0IGZvcm0gd2hlbiBhZGRpbmdcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaWQpIHtcbiAgICAgIGRpc3BhdGNoKGxhbmd1YWdlRGV0YWlsQWN0aW9uKE51bWJlcihpZCkpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZm9ybS5yZXNldEZpZWxkcygpOyAvLyBSZXNldCBmb3JtIGZpZWxkcyB3aGVuIGFkZGluZyBhIG5ldyBpdGVtXG4gICAgfVxuICB9LCBbZGlzcGF0Y2gsIGlkLCBmb3JtXSk7XG5cbiAgLy8g8J+RiSBQb3B1bGF0ZSBmb3JtIHdpdGggZmV0Y2hlZCBkYXRhXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlkICYmIGxhbmd1YWdlKSB7XG4gICAgICBmb3JtLnNldEZpZWxkc1ZhbHVlKHtcbiAgICAgICAgbmFtZTogbGFuZ3VhZ2UubmFtZSB8fCAnJyxcbiAgICAgICAgZGVzY3JpcHRpb246IGxhbmd1YWdlLmRlc2NyaXB0aW9uIHx8ICcnLFxuICAgICAgfSk7XG4gICAgfVxuICB9LCBbbGFuZ3VhZ2UsIGZvcm0sIGlkXSk7XG5cbiAgLy8g8J+RiSBTaG93IHN1Y2Nlc3Mgb3IgZXJyb3IgYWxlcnRzXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFsYW5ndWFnZVVwZGF0ZVBlbmRpbmcgJiYgaXNDbGljaykge1xuICAgICAgaWYgKHJlZ2lzdGVyRXJyb3JNZXNzYWdlKSB7XG4gICAgICAgIG1lc3NhZ2UuZXJyb3IocmVnaXN0ZXJFcnJvck1lc3NhZ2UpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbWVzc2FnZS5zdWNjZXNzKGlkID8gJ1VwZGF0ZWQgc3VjY2Vzc2Z1bGx5IScgOiAnQ3JlYXRlZCBzdWNjZXNzZnVsbHkhJyk7XG4gICAgICAgIG5hdmlnYXRlKCcvbGFuZ3VhZ2VzJyk7XG4gICAgICB9XG4gICAgfVxuICB9LCBbbGFuZ3VhZ2VVcGRhdGVQZW5kaW5nLCByZWdpc3RlckVycm9yTWVzc2FnZSwgaWQsIGlzQ2xpY2ssIG5hdmlnYXRlXSk7XG5cbiAgLy8g8J+RiSBIYW5kbGUgZm9ybSBzdWJtaXRcbiAgY29uc3Qgb25GaW5pc2ggPSAodmFsdWVzOiBMYW5ndWFnZSkgPT4ge1xuICAgIGlmIChpZCkge1xuICAgICAgZGlzcGF0Y2godXBkYXRlTGFuZ3VhZ2VBY3Rpb24oeyBpZDogTnVtYmVyKGlkKSwgZGF0YTogdmFsdWVzIH0pKTtcbiAgICAgIGZvcm0ucmVzZXRGaWVsZHMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGlzcGF0Y2goY3JlYXRlTGFuZ3VhZ2VBY3Rpb24oeyBkYXRhOiB2YWx1ZXMgfSkpO1xuICAgICAgZm9ybS5yZXNldEZpZWxkcygpOyAvLyBSZXNldCBmb3JtIGFmdGVyIHN1Y2Nlc3NmdWwgY3JlYXRpb25cbiAgICB9XG4gICAgc2V0SXNDbGljayh0cnVlKTtcbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8aDI+e2lkID8gJ+GegOGfguGelOGfkuGemuGfguGel+GetuGen+GeticgOiAn4Z6U4Z6T4Z+S4Z6Q4Z+C4Z6Y4Z6Q4Z+S4Z6Y4Z644Z6X4Z624Z6f4Z62J308L2gyPlxuICAgICAgPEZvcm0gZm9ybT17Zm9ybX0gbGF5b3V0PVwidmVydGljYWxcIiBvbkZpbmlzaD17b25GaW5pc2h9IHN0eWxlPXt7IG1heFdpZHRoOiAnMTAwJScsIG1hcmdpbjogJzAgYXV0bycgfX0+XG4gICAgICAgIDxSb3cgZ3V0dGVyPXtbMTIsIDEyXX0+XG4gICAgICAgICAgPENvbCBzcGFuPXsxMn0+XG4gICAgICAgICAgICA8Rm9ybS5JdGVtIGxhYmVsPVwi4Z6I4Z+S4Z6Y4Z+E4Z+HXCIgbmFtZT1cIm5hbWVcIiBydWxlcz17W3sgcmVxdWlyZWQ6IHRydWUsIG1lc3NhZ2U6ICdQbGVhc2UgZW50ZXIgYSBuYW1lJyB9XX0+XG4gICAgICAgICAgICAgIDxJbnB1dCAvPlxuICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XG4gICAgICAgICAgPC9Db2w+XG4gICAgICAgICAgPENvbCBzcGFuPXsxMn0+XG4gICAgICAgICAgICA8Rm9ybS5JdGVtIGxhYmVsPVwi4Z6U4Z6a4Z634Z6Z4Z624Z6ZXCIgbmFtZT1cImRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgICAgIDxUZXh0QXJlYSByb3dzPXszfSAvPlxuICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XG4gICAgICAgICAgPC9Db2w+XG4gICAgICAgIDwvUm93PlxuICAgICAgICA8Um93IGd1dHRlcj17WzEyLCAxMl19PlxuICAgICAgICAgIDxDb2wgc3Bhbj17M30+XG4gICAgICAgICAgICA8Rm9ybS5JdGVtPlxuICAgICAgICAgICAgICA8QnV0dG9uIHR5cGU9XCJwcmltYXJ5XCIgYmxvY2sgaHRtbFR5cGU9XCJzdWJtaXRcIiBsb2FkaW5nPXtsYW5ndWFnZVVwZGF0ZVBlbmRpbmd9PlxuICAgICAgICAgICAgICAgIFN1Ym1pdFxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxuICAgICAgICAgIDwvQ29sPlxuICAgICAgICAgIDxDb2wgc3Bhbj17M30+XG4gICAgICAgICAgICA8Rm9ybS5JdGVtPlxuICAgICAgICAgICAgICA8QnV0dG9uIGh0bWxUeXBlPVwiYnV0dG9uXCIgb25DbGljaz17KCkgPT4gbmF2aWdhdGUoJy9sYW5ndWFnZXMnKX0+XG4gICAgICAgICAgICAgICAgQ2FuY2VsXG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XG4gICAgICAgICAgPC9Db2w+XG4gICAgICAgIDwvUm93PlxuICAgICAgPC9Gb3JtPlxuICAgIDwvPlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgTmV3RWRpdExhbmd1YWdlUGFnZTtcbiIsImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgQnV0dG9uLCBJbnB1dCwgU3BhY2UsIFRhYmxlIH0gZnJvbSAnYW50ZCc7XG5pbXBvcnQgeyB1c2VEaXNwYXRjaCwgdXNlU2VsZWN0b3IgfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQgeyBSb290U3RhdGUgfSBmcm9tICcuLi8uLi8uLi9yZWR1eC9zdG9yZSc7XG5pbXBvcnQgeyB1c2VOYXZpZ2F0ZSB9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nO1xuaW1wb3J0IExvYWRpbmdEaWFsb2cgZnJvbSAnLi4vLi4vLi4vY29udGFpbmVyL2RpYWxvZ3MvbG9hZGluZy1kaWFsb2cnO1xuaW1wb3J0IHsgRGVsZXRlT3V0bGluZWQsIEVkaXRPdXRsaW5lZCwgUGx1c091dGxpbmVkIH0gZnJvbSAnQGFudC1kZXNpZ24vaWNvbnMnO1xuaW1wb3J0IHsgZGVsZXRlTGFuZ3VhZ2VBY3Rpb24sIGxhbmd1YWdlRGV0YWlsQWN0aW9uLCBmZXRjaExhbmd1YWdlcyB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL2xhbmd1YWdlL2NvcmUvYWN0aW9ucyc7XG5pbXBvcnQgU3dhbCBmcm9tICdzd2VldGFsZXJ0Mic7XG5cbmNvbnN0IExhbmd1YWdlTGlzdCA9ICgpID0+IHtcbiAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xuICBjb25zdCBuYXZpZ2F0ZSA9IHVzZU5hdmlnYXRlKCk7XG4gIGNvbnN0IFtzZWxlY3RlZFJvd3MsIHNldFNlbGVjdGVkUm93c10gPSB1c2VTdGF0ZTxhbnk+KFtdKTtcbiAgY29uc3QgW3NlYXJjaFRleHQsIHNldFNlYXJjaFRleHRdID0gdXNlU3RhdGUoJycpO1xuICBjb25zdCB7IGxhbmd1YWdlcywgbGFuZ3VhZ2VzUGVuZGluZyB9ID0gdXNlU2VsZWN0b3IoKHN0YXRlOiBSb290U3RhdGUpID0+IHN0YXRlLmxhbmd1YWdlKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGRpc3BhdGNoKGZldGNoTGFuZ3VhZ2VzKCkpO1xuICB9LCBbZGlzcGF0Y2hdKTtcblxuICBjb25zdCBoYW5kbGVFZGl0ID0gKGlkOiBhbnkpID0+IHtcbiAgICBkaXNwYXRjaChsYW5ndWFnZURldGFpbEFjdGlvbihpZCkpO1xuICAgIG5hdmlnYXRlKGAvbGFuZ3VhZ2VzL2Zvcm0/aWQ9JHtpZH1gKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVEZWxldGUgPSAoaWQ6IGFueSkgPT4ge1xuICAgIFN3YWwuZmlyZSh7XG4gICAgICB0aXRsZTogJ0FyZSB5b3Ugc3VyZT8nLFxuICAgICAgdGV4dDogJ1lvdSB3b25cXCd0IGJlIGFibGUgdG8gcmV2ZXJ0IHRoaXMhJyxcbiAgICAgIGljb246ICd3YXJuaW5nJyxcbiAgICAgIHNob3dDb25maXJtQnV0dG9uOiBmYWxzZSxcbiAgICAgIHNob3dDYW5jZWxCdXR0b246IGZhbHNlLFxuICAgICAgaHRtbDogYFxuICAgICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IGdhcDogMTBweDsgbWFyZ2luLXRvcDogMjBweDtcIj5cbiAgICAgICAgICA8YnV0dG9uIGlkPVwiY29uZmlybS1kZWxldGVcIiBjbGFzcz1cInN3YWwyLWNvbmZpcm0gc3dhbDItc3R5bGVkXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiAjZDMzO1wiPkRlbGV0ZTwvYnV0dG9uPlxuICAgICAgICAgIDxidXR0b24gaWQ9XCJjYW5jZWwtZGVsZXRlXCIgY2xhc3M9XCJzd2FsMi1jYW5jZWwgc3dhbDItc3R5bGVkXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiAjMzA4NWQ2O1wiPkNhbmNlbDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIGAsXG4gICAgICBkaWRPcGVuOiAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbmZpcm1CdXR0b24gPSBTd2FsLmdldFBvcHVwKCk/LnF1ZXJ5U2VsZWN0b3IoJyNjb25maXJtLWRlbGV0ZScpO1xuICAgICAgICBjb25zdCBjYW5jZWxCdXR0b24gPSBTd2FsLmdldFBvcHVwKCk/LnF1ZXJ5U2VsZWN0b3IoJyNjYW5jZWwtZGVsZXRlJyk7XG5cbiAgICAgICAgY29uZmlybUJ1dHRvbj8uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XG4gICAgICAgICAgZGlzcGF0Y2goZGVsZXRlTGFuZ3VhZ2VBY3Rpb24oaWQpKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIFN3YWwuZmlyZSgnRGVsZXRlZCEnLCAnVGhlIGl0ZW0gaGFzIGJlZW4gZGVsZXRlZC4nLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgZGlzcGF0Y2goZmV0Y2hMYW5ndWFnZXMoKSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgU3dhbC5jbG9zZSgpO1xuICAgICAgICB9KTtcblxuICAgICAgICBjYW5jZWxCdXR0b24/LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgICAgIFN3YWwuY2xvc2UoKTtcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVNlYXJjaCA9ICgpID0+IHtcbiAgICAvLyBUcmlnZ2VycyBzZWFyY2ggYnkgc2V0dGluZyBzdGF0ZVxuICAgIHNldFNlYXJjaFRleHQoc2VhcmNoVGV4dC50cmltKCkpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVJlc2V0ID0gKCkgPT4ge1xuICAgIC8vIENsZWFycyBpbnB1dCBhbmQgc2hvd3MgYWxsIGRhdGFcbiAgICBzZXRTZWFyY2hUZXh0KCcnKTtcbiAgfTtcblxuICBjb25zdCBjb2x1bW5zID0gW1xuICAgIHsgdGl0bGU6ICfhnpvhn4HhnoHhnprhn4DhnoQnLCBkYXRhSW5kZXg6ICdpbmRleCcsIGtleTogJ2luZGV4JywgcmVzcG9uc2l2ZTogWydzbSddIH0sXG4gICAgeyB0aXRsZTogJ+GeiOGfkuGemOGfhOGfhycsIGRhdGFJbmRleDogJ25hbWUnLCBrZXk6ICduYW1lJywgcmVzcG9uc2l2ZTogWydzbSddIH0sXG4gICAgeyB0aXRsZTogJ+GelOGemuGet+GemeGetuGemScsIGRhdGFJbmRleDogJ2Rlc2NyaXB0aW9uJywga2V5OiAnZGVzY3JpcHRpb24nLCByZXNwb25zaXZlOiBbJ3NtJ10gfSxcbiAgICB7XG4gICAgICB0aXRsZTogJ0FjdGlvbicsXG4gICAgICBrZXk6ICdhY3Rpb24nLFxuICAgICAgcmVzcG9uc2l2ZTogWyd4cycsICdzbScsICdtZCcsICdsZyddLFxuICAgICAgcmVuZGVyOiAoXzogc3RyaW5nLCByZWNvcmQ6IGFueSkgPT4gKFxuICAgICAgICA8U3BhY2Ugc2l6ZT1cIm1pZGRsZVwiPlxuICAgICAgICAgIDxCdXR0b24gaWNvbj17PEVkaXRPdXRsaW5lZCAvPn0gdHlwZT1cInByaW1hcnlcIiBvbkNsaWNrPXsoKSA9PiBoYW5kbGVFZGl0KHJlY29yZC5pZCl9IC8+XG4gICAgICAgICAgPEJ1dHRvbiBpY29uPXs8RGVsZXRlT3V0bGluZWQgLz59IGRhbmdlciBvbkNsaWNrPXsoKSA9PiBoYW5kbGVEZWxldGUocmVjb3JkLmlkKX0gLz5cbiAgICAgICAgPC9TcGFjZT5cbiAgICAgICksXG4gICAgfSxcbiAgXTtcblxuICBjb25zdCBmaWx0ZXJlZERhdGEgPSAobGFuZ3VhZ2VzIHx8IFtdKS5maWx0ZXIoKGl0KSA9PlxuICAgIGl0Lm5hbWU/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVGV4dC50b0xvd2VyQ2FzZSgpKVxuICApO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBzdHlsZT17eyBvdmVyZmxvd1g6ICdhdXRvJyB9fT5cbiAgICAgIDxoMj7hnpThnonhn5Lhnofhnrjhnpfhnrbhnp/hnrY8L2gyPlxuICAgICAgPGRpdlxuICAgICAgICBzdHlsZT17e1xuICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ3NwYWNlLWJldHdlZW4nLFxuICAgICAgICAgIHBhZGRpbmc6ICcxMHB4JyxcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAnI2Y1ZjVmNScsXG4gICAgICAgICAgbWFyZ2luQm90dG9tOiAnMTBweCcsXG4gICAgICAgICAgZmxleFdyYXA6ICd3cmFwJyxcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgPFNwYWNlIHdyYXA+XG4gICAgICAgICAgPHNwYW4+4Z6f4Z6a4Z674Z6UOiB7ZmlsdGVyZWREYXRhPy5sZW5ndGggfHwgMH08L3NwYW4+XG4gICAgICAgICAgPElucHV0XG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIuGen+GfkuGenOGfguGehOGemuGegC4uLlwiXG4gICAgICAgICAgICBzdHlsZT17eyB3aWR0aDogMjAwIH19XG4gICAgICAgICAgICB2YWx1ZT17c2VhcmNoVGV4dH1cbiAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gc2V0U2VhcmNoVGV4dChlLnRhcmdldC52YWx1ZSl9XG4gICAgICAgICAgLz5cbiAgICAgICAgICA8QnV0dG9uIG9uQ2xpY2s9e2hhbmRsZVNlYXJjaH0gdHlwZT1cInByaW1hcnlcIj7hnoXhnpjhn5Lhnprhn4Thn4c8L0J1dHRvbj5cbiAgICAgICAgICA8QnV0dG9uIG9uQ2xpY2s9e2hhbmRsZVJlc2V0fT7hnoDhn4bhno7hno/hn4vhnqHhnr7hnoThnpzhnrfhnok8L0J1dHRvbj5cbiAgICAgICAgPC9TcGFjZT5cbiAgICAgICAgPFNwYWNlIHdyYXA+XG4gICAgICAgICAgPEJ1dHRvbiBpY29uPXs8UGx1c091dGxpbmVkIC8+fSB0eXBlPVwicHJpbWFyeVwiIG9uQ2xpY2s9eygpID0+IG5hdmlnYXRlKGAvbGFuZ3VhZ2VzL2Zvcm1gKX0+4Z6U4Z6T4Z+S4Z6Q4Z+C4Z6Y4Z6Q4Z+S4Z6Y4Z64PC9CdXR0b24+XG4gICAgICAgIDwvU3BhY2U+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxUYWJsZVxuICAgICAgICByb3dTZWxlY3Rpb249e3tcbiAgICAgICAgICB0eXBlOiAnY2hlY2tib3gnLFxuICAgICAgICAgIG9uQ2hhbmdlOiAoXywgc2VsZWN0ZWRSb3dzKSA9PiBzZXRTZWxlY3RlZFJvd3Moc2VsZWN0ZWRSb3dzKSxcbiAgICAgICAgfX1cbiAgICAgICAgY29sdW1ucz17Y29sdW1uc31cbiAgICAgICAgZGF0YVNvdXJjZT17ZmlsdGVyZWREYXRhLm1hcCgoaXQsIGluZGV4KSA9PiAoe1xuICAgICAgICAgIGtleTogaXQuaWQsXG4gICAgICAgICAgaW5kZXg6IGluZGV4ICsgMSxcbiAgICAgICAgICBuYW1lOiBpdC5uYW1lLFxuICAgICAgICAgIC4uLml0LFxuICAgICAgICB9KSl9XG4gICAgICAgIHBhZ2luYXRpb249e3sgcGFnZVNpemU6IDEwLCBzaG93U2l6ZUNoYW5nZXI6IHRydWUgfX1cbiAgICAgICAgc2Nyb2xsPXt7IHg6ICdtYXgtY29udGVudCcgfX1cbiAgICAgIC8+XG4gICAgICA8TG9hZGluZ0RpYWxvZyB2aXNpYmxlPXtsYW5ndWFnZXNQZW5kaW5nfSAvPlxuICAgIDwvZGl2PlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgTGFuZ3VhZ2VMaXN0O1xuIiwiaW1wb3J0IHsgZ2V0V2l0aENvbmZpZywgcG9zdFdpdGhDb25maWcgfSBmcm9tIFwiLi4vLi4vLi4vLi4vY29yZS9iYXNlL3NlcnZpY2VzXCI7XG5pbXBvcnQgeyBVUkwgfSBmcm9tICcuLi8uLi8uLi8uLi9jb25maWdzL2NvbnN0YW50cyc7XG5cbmV4cG9ydCBjb25zdCBub3RpZnlVc2VyVGVsZWdyYW1TZXJ2aWNlID0gYXN5bmMgKHVzZXJfaWQ6IG51bWJlciwgbWVzc2FnZTogc3RyaW5nKSA9PiB7XG4gICAgcmV0dXJuIGF3YWl0IGdldFdpdGhDb25maWcoXG4gICAgICAgIGAke1VSTC5OT1RJRll9P3VzZXJfaWQ9JHt1c2VyX2lkfSZtZXNzYWdlPSR7bWVzc2FnZX1gLFxuICAgICk7XG59O1xuXG5cblxuZXhwb3J0IGNvbnN0IG5vdGlmeVVzZXJCeVN0YXR1cyA9IGFzeW5jIChzdGF0dXM6IHN0cmluZywgbWVzc2FnZTogc3RyaW5nKSA9PiB7XG4gICAgcmV0dXJuIGF3YWl0IGdldFdpdGhDb25maWcoXG4gICAgICAgIGAke1VSTC5OT1RJRllfU1RBVFVTfT9zdGF0dXM9JHtzdGF0dXN9Jm1lc3NhZ2U9JHttZXNzYWdlfWAsXG4gICAgKTtcbn07IiwiaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBCdXR0b24sIElucHV0LCBTZWxlY3QsIFJvdywgQ29sLCBNb2RhbCwgbWVzc2FnZSBhcyBhbnRkTWVzc2FnZSB9IGZyb20gXCJhbnRkXCI7XG5pbXBvcnQgeyB1c2VTZWxlY3RvciB9IGZyb20gXCJyZWFjdC1yZWR1eFwiO1xuaW1wb3J0IHsgUm9vdFN0YXRlIH0gZnJvbSBcIi4uLy4uLy4uL3JlZHV4L3N0b3JlXCI7XG5pbXBvcnQgeyBub3RpZnlVc2VyQnlTdGF0dXMsIG5vdGlmeVVzZXJUZWxlZ3JhbVNlcnZpY2UgfSBmcm9tIFwiLi9jb3JlL25vdGlmaWNhdGlvbl9zZXJ2aWNlXCI7XG5cbmNvbnN0IHsgT3B0aW9uIH0gPSBTZWxlY3Q7XG5cbmNvbnN0IEludml0YXRpb25fdG9fVm9sdW50ZWVyX0JyaWVmaW5nX01lZXRpbmcgPSBgXG7wn5OiICoq4Z6A4Z624Z6a4Z6i4Z6J4Z+S4Z6H4Z6+4Z6J4Z6F4Z684Z6b4Z6a4Z694Z6Y4Z6A4Z634Z6F4Z+S4Z6F4Z6U4Z+S4Z6a4Z6H4Z674Z+G4Z6V4Z+S4Z6f4Z6W4Z+S4Z6c4Z6V4Z+S4Z6f4Z624Z6Z4Z6i4Z+G4Z6W4Z644Z6P4Z694Z6T4Z624Z6R4Z644Z6X4Z624Z6a4Z6A4Z634Z6F4Z+S4Z6FKipcblxuXG7wn5OdICoq4Z6f4Z684Z6Y4Z6i4Z6J4Z+S4Z6H4Z6+4Z6J4Z6b4Z+E4Z6A4Z6i4Z+S4Z6T4Z6AKiog4Z6F4Z684Z6b4Z6a4Z694Z6Y4Z6A4Z634Z6F4Z+S4Z6F4Z6U4Z+S4Z6a4Z6H4Z674Z+G4Z6V4Z+S4Z6f4Z6W4Z+S4Z6c4Z6V4Z+S4Z6f4Z624Z6Z4Z6i4Z+G4Z6W4Z64ICoq4Z6P4Z694Z6T4Z624Z6R4Z644Z6X4Z624Z6a4Z6A4Z634Z6F4Z+S4Z6F4Z6A4Z+S4Z6a4Z674Z6Y4Z6A4Z624Z6a4Z6E4Z624Z6aKipcbuGeiuGevuGemOGfkuGelOGeuOGemuGfgOGelOGeheGfhuGegeGfkuGem+GeveGek+Geh+GetuGen+GfkuGemOGfkOGeguGfkuGemuGeheGet+Gej+GfkuGej+GegOGfkuGek+Geu+GehCAqKuGeluGfkuGemuGeueGej+GfkuGej+Get+GegOGetuGemuGejuGfjeGeouGehOGfkuGeguGemuGen+GehOGfkuGegOGfkuGemuGetuGek+GfkuGejyDhn6Lhn6Dhn6Lhn6UqKuOAglxuXG5cbvCfk4Ug4Z6A4Z624Z6b4Z6U4Z6a4Z634Z6F4Z+S4Z6G4Z+B4Z6R4Z+WIOGekOGfkuGehOGfg+Gen+GfheGemuGfjSDhnpHhnrgg4Z+i4Z+pIOGegeGfguGemOGeuOGek+GetiDhn6Lhn6Dhn6Lhn6VcbuKPsCDhnpbhn4Hhnpvhnpzhn4Hhnpvhnrbhn5Yg4Z+pOuGfoOGfoCDhnpbhn5LhnprhnrnhnoBcbvCfk40g4Z6R4Z644Z6P4Z624Z+G4Z6E4Z+WIOGekeGeuOGem+GetuGek+GeleGfkuGej+GetuGeheGfi+GeluGfkuGemuGfkOGej+GfkuGemuGen+GeoOGeluGfkOGek+GfkuGekuGegOGeuOGeoeGetuGelOGfiuGevOGemyDhnpPhnrfhnoThnpThn4nhn4Hhno/hnoThn4vhnoDhnpjhn5LhnpbhnrvhnofhnrYgKOGeluGeoOGeu+GegOGeuOGeoeGeiuGfkuGei+GetuGek+Geh+GetuGej+GetylcbvCfkZUg4Z6f4Z6Y4Z+S4Z6b4Z+A4Z6A4Z6U4Z+G4Z6W4Z624Z6A4Z+L4Z+WIOGen+GemOGemuGemOGfkuGemVxuXG7wn5OeIOGeluGfkOGej+GfjOGemOGetuGek+Gem+GemOGfkuGeouGet+Gej+Gen+GevOGemOGekeGfhuGek+GetuGegOGfi+GekeGfhuGek+GehOGfliAwOTggODkgODcgNjdcbmA7XG5cbmNvbnN0IE5vdGlmaWNhdGlvblBhZ2UgPSAoKSA9PiB7XG4gIGNvbnN0IFtzZWxlY3RlZFN0YXR1cywgc2V0U2VsZWN0ZWRTdGF0dXNdID0gdXNlU3RhdGUoXCJQQVJUSUNJUEFOVFNcIik7XG4gIGNvbnN0IFttZXNzYWdlVGV4dCwgc2V0TWVzc2FnZVRleHRdID0gdXNlU3RhdGUoSW52aXRhdGlvbl90b19Wb2x1bnRlZXJfQnJpZWZpbmdfTWVldGluZyk7XG4gIGNvbnN0IFtsb2FkaW5nLCBzZXRMb2FkaW5nXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgW2NvbmZpcm1WaXNpYmxlLCBzZXRDb25maXJtVmlzaWJsZV0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IFtmaW5hbENvbmZpcm1WaXNpYmxlLCBzZXRGaW5hbENvbmZpcm1WaXNpYmxlXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgW3NlbmRUeXBlLCBzZXRTZW5kVHlwZV0gPSB1c2VTdGF0ZShcIlwiKTtcblxuICBjb25zdCB7IGF1dGggfSA9IHVzZVNlbGVjdG9yKChzdGF0ZTogUm9vdFN0YXRlKSA9PiBzdGF0ZSk7XG4gIGNvbnN0IHsgdXNlcnMgfSA9IGF1dGg7XG5cbiAgY29uc3QgdXNlclN0YXR1c2VzID0gW1wiUEFSVElDSVBBTlRTXCIsXCJTSE9SVExJU1RcIiwgXCJJTlRFUlZJRVdcIiwgXCJSRVNFUlZFXCIsIFwiRkFJTEVEXCIsIFwiUkVTSUdOQVRJT05cIiwgXCJESVNRVUFMSUZJQ0FUSU9OXCIsXCJSRUdJU1RFUlwiXTtcblxuICBjb25zdCBzaG93Q29uZmlybURpYWxvZyA9ICh0eXBlOiBcInVzZXJcIiB8IFwic3RhdHVzXCIpID0+IHtcbiAgICBpZiAoIW1lc3NhZ2VUZXh0KSB7XG4gICAgICByZXR1cm4gYW50ZE1lc3NhZ2Uud2FybmluZyhcIlBsZWFzZSBlbnRlciBhIG1lc3NhZ2UgYmVmb3JlIHNlbmRpbmcuXCIpO1xuICAgIH1cbiAgICBzZXRTZW5kVHlwZSh0eXBlKTtcbiAgICBzZXRDb25maXJtVmlzaWJsZSh0cnVlKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVGaXJzdENvbmZpcm0gPSAoKSA9PiB7XG4gICAgc2V0Q29uZmlybVZpc2libGUoZmFsc2UpO1xuICAgIHNldEZpbmFsQ29uZmlybVZpc2libGUodHJ1ZSk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlQ29uZmlybVNlbmQgPSBhc3luYyAoKSA9PiB7XG4gICAgc2V0TG9hZGluZyh0cnVlKTtcbiAgICBzZXRGaW5hbENvbmZpcm1WaXNpYmxlKGZhbHNlKTtcblxuICAgIHRyeSB7XG4gICAgICBpZiAoc2VuZFR5cGUgPT09IFwidXNlclwiKSB7XG4gICAgICAgIGF3YWl0IG5vdGlmeVVzZXJUZWxlZ3JhbVNlcnZpY2UodXNlcnMuaWQsIG1lc3NhZ2VUZXh0KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGF3YWl0IG5vdGlmeVVzZXJCeVN0YXR1cyhzZWxlY3RlZFN0YXR1cywgbWVzc2FnZVRleHQpO1xuICAgICAgfVxuICAgICAgYW50ZE1lc3NhZ2Uuc3VjY2VzcyhcIk1lc3NhZ2Uocykgc2VudCBzdWNjZXNzZnVsbHkhXCIpO1xuICAgICAgc2V0TWVzc2FnZVRleHQoSW52aXRhdGlvbl90b19Wb2x1bnRlZXJfQnJpZWZpbmdfTWVldGluZyk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGFudGRNZXNzYWdlLmVycm9yKFwiRmFpbGVkIHRvIHNlbmQgbWVzc2FnZShzKSFcIik7XG4gICAgfVxuICAgIHNldExvYWRpbmcoZmFsc2UpO1xuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBzdHlsZT17eyBwYWRkaW5nOiAyMCB9fT5cbiAgICAgIDxoMj5TZW5kIE5vdGlmaWNhdGlvbnM8L2gyPlxuICAgICAgPGRpdiBzdHlsZT17eyBtYXJnaW5Cb3R0b206IDIwIH19PlxuICAgICAgICA8Um93IGd1dHRlcj17WzE2LDE2XX0+XG4gICAgICAgICAgPENvbCBzcGFuPXsxNn0gbGc9ezI0fT5cbiAgICAgICAgICA8U2VsZWN0XG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNlbGVjdCBVc2VyIFN0YXR1c1wiXG4gICAgICAgICAgICB2YWx1ZT17c2VsZWN0ZWRTdGF0dXN9XG4gICAgICAgICAgICBvbkNoYW5nZT17c2V0U2VsZWN0ZWRTdGF0dXN9XG4gICAgICAgICAgICBzdHlsZT17eyB3aWR0aDogMjAwIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAge3VzZXJTdGF0dXNlcy5tYXAoKHN0YXR1cykgPT4gKFxuICAgICAgICAgICAgICA8T3B0aW9uIGtleT17c3RhdHVzfSB2YWx1ZT17c3RhdHVzfT5cbiAgICAgICAgICAgICAgICB7c3RhdHVzfVxuICAgICAgICAgICAgICA8L09wdGlvbj5cbiAgICAgICAgICAgICkpfVxuICAgICAgICAgIDwvU2VsZWN0PlxuICAgICAgICAgIDwvQ29sPlxuICAgICAgICAgIDxDb2wgc3Bhbj17MTZ9IGxnPXsyNH0+XG4gICAgICAgICAgPElucHV0LlRleHRBcmVhXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkVudGVyIE1lc3NhZ2VcIlxuICAgICAgICAgICAgdmFsdWU9e21lc3NhZ2VUZXh0fVxuICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBzZXRNZXNzYWdlVGV4dChlLnRhcmdldC52YWx1ZSl9XG4gICAgICAgICAgICByb3dzPXsyMH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDwvQ29sPlxuICAgICAgICAgIDxDb2wgc3Bhbj17MTZ9IGxnPXsyNH0+XG4gICAgICAgICAgPEJ1dHRvbiB0eXBlPVwicHJpbWFyeVwiIG9uQ2xpY2s9eygpID0+IHNob3dDb25maXJtRGlhbG9nKFwic3RhdHVzXCIpfSBsb2FkaW5nPXtsb2FkaW5nfT5cbiAgICAgICAgICAgIFNlbmQgYnkgU3RhdHVzXG4gICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgPC9Db2w+XG4gICAgICAgIDwvUm93PlxuICAgICAgPC9kaXY+XG4gICAgICA8TW9kYWxcbiAgICAgICAgdGl0bGU9XCJDb25maXJtIFNlbmRpbmcgTWVzc2FnZVwiXG4gICAgICAgIHZpc2libGU9e2NvbmZpcm1WaXNpYmxlfVxuICAgICAgICBvbk9rPXtoYW5kbGVGaXJzdENvbmZpcm19XG4gICAgICAgIG9uQ2FuY2VsPXsoKSA9PiBzZXRDb25maXJtVmlzaWJsZShmYWxzZSl9XG4gICAgICAgIG9rVGV4dD1cIlByb2NlZWRcIlxuICAgICAgICBjYW5jZWxUZXh0PVwiQ2FuY2VsXCJcbiAgICAgID5cbiAgICAgICAgPENvbD5BcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gc2VuZCB0aGlzIG1lc3NhZ2U/PC9Db2w+XG4gICAgICAgIDxwPlxuICAgICAgICAgIDxzdHJvbmc+TWVzc2FnZTo8L3N0cm9uZz4ge21lc3NhZ2VUZXh0fVxuICAgICAgICA8L3A+XG4gICAgICAgIDxwPlxuICAgICAgICAgIDxzdHJvbmc+VXNlciBTdGF0dXM6PC9zdHJvbmc+IHtzZWxlY3RlZFN0YXR1c31cbiAgICAgICAgPC9wPlxuICAgICAgPC9Nb2RhbD5cbiAgICAgIDxNb2RhbFxuICAgICAgICB0aXRsZT1cIkZpbmFsIENvbmZpcm1hdGlvblwiXG4gICAgICAgIHZpc2libGU9e2ZpbmFsQ29uZmlybVZpc2libGV9XG4gICAgICAgIG9uT2s9e2hhbmRsZUNvbmZpcm1TZW5kfVxuICAgICAgICBvbkNhbmNlbD17KCkgPT4gc2V0RmluYWxDb25maXJtVmlzaWJsZShmYWxzZSl9XG4gICAgICAgIG9rVGV4dD1cIlllcywgU2VuZFwiXG4gICAgICAgIGNhbmNlbFRleHQ9XCJDYW5jZWxcIlxuICAgICAgPlxuICAgICAgICA8cD5UaGlzIGlzIHlvdXIgZmluYWwgY29uZmlybWF0aW9uLiBEbyB5b3Ugd2FudCB0byBwcm9jZWVkIHdpdGggc2VuZGluZyB0aGUgbWVzc2FnZT88L3A+XG4gICAgICA8L01vZGFsPlxuICAgIDwvZGl2PlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgTm90aWZpY2F0aW9uUGFnZTtcbiIsImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgRm9ybSwgSW5wdXQsIEJ1dHRvbiwgUm93LCBDb2wsIG1lc3NhZ2UgfSBmcm9tICdhbnRkJztcbmltcG9ydCB7IFJvb3RTdGF0ZSB9IGZyb20gJy4uLy4uLy4uL3JlZHV4L3N0b3JlJztcbmltcG9ydCB7IHVzZURpc3BhdGNoLCB1c2VTZWxlY3RvciB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7IE9jY3VwYXRpb24gfSBmcm9tICdAL3NoYXJlZC9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGNyZWF0ZU9jY3VwYXRpb25BY3Rpb24sIG9jY3VwYXRpb25EZXRhaWxBY3Rpb24sIHVwZGF0ZU9jY3VwYXRpb25BY3Rpb24gfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9vY2N1cGF0aW9uL2NvcmUvYWN0aW9ucyc7XG5pbXBvcnQgeyB1c2VOYXZpZ2F0ZSB9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nO1xuaW1wb3J0IFRleHRBcmVhIGZyb20gJ2FudGQvZXMvaW5wdXQvVGV4dEFyZWEnO1xuXG5jb25zdCBOZXdFZGl0T2NjdXBhdGlvblBhZ2U6IFJlYWN0LkZDID0gKCkgPT4ge1xuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG4gIGNvbnN0IG5hdmlnYXRlID0gdXNlTmF2aWdhdGUoKTtcbiAgY29uc3QgeyBvY2N1cGF0aW9uLCByZWdpc3RlckVycm9yTWVzc2FnZSwgb2NjdXBhdGlvblVwZGF0ZVBlbmRpbmcgfSA9IHVzZVNlbGVjdG9yKFxuICAgIChzdGF0ZTogUm9vdFN0YXRlKSA9PiBzdGF0ZS5vY2N1cGF0aW9uXG4gICk7XG4gIGNvbnN0IFtmb3JtXSA9IEZvcm0udXNlRm9ybSgpO1xuXG4gIGNvbnN0IHNlYXJjaFBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMobG9jYXRpb24uc2VhcmNoKTtcbiAgY29uc3QgaWQgPSBzZWFyY2hQYXJhbXMuZ2V0KCdpZCcpO1xuXG4gIGNvbnN0IFtpc0NsaWNrLCBzZXRJc0NsaWNrXSA9IHVzZVN0YXRlKGZhbHNlKTtcblxuICAvLyDwn5GJIEZldGNoIGRhdGEgd2hlbiBlZGl0aW5nIG9yIHJlc2V0IGZvcm0gd2hlbiBhZGRpbmdcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaWQpIHtcbiAgICAgIGRpc3BhdGNoKG9jY3VwYXRpb25EZXRhaWxBY3Rpb24oTnVtYmVyKGlkKSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBmb3JtLnJlc2V0RmllbGRzKCk7IC8vIFJlc2V0IGZvcm0gZmllbGRzIHdoZW4gYWRkaW5nIGEgbmV3IGl0ZW1cbiAgICB9XG4gIH0sIFtkaXNwYXRjaCwgaWQsIGZvcm1dKTtcblxuICAvLyDwn5GJIFBvcHVsYXRlIGZvcm0gd2l0aCBmZXRjaGVkIGRhdGFcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaWQgJiYgb2NjdXBhdGlvbikge1xuICAgICAgZm9ybS5zZXRGaWVsZHNWYWx1ZSh7XG4gICAgICAgIG5hbWU6IG9jY3VwYXRpb24ubmFtZSB8fCAnJyxcbiAgICAgICAgZGVzY3JpcHRpb246IG9jY3VwYXRpb24uZGVzY3JpcHRpb24gfHwgJycsXG4gICAgICB9KTtcbiAgICB9XG4gIH0sIFtvY2N1cGF0aW9uLCBmb3JtLCBpZF0pO1xuXG4gIC8vIPCfkYkgU2hvdyBzdWNjZXNzIG9yIGVycm9yIGFsZXJ0c1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghb2NjdXBhdGlvblVwZGF0ZVBlbmRpbmcgJiYgaXNDbGljaykge1xuICAgICAgaWYgKHJlZ2lzdGVyRXJyb3JNZXNzYWdlKSB7XG4gICAgICAgIG1lc3NhZ2UuZXJyb3IocmVnaXN0ZXJFcnJvck1lc3NhZ2UpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbWVzc2FnZS5zdWNjZXNzKGlkID8gJ1VwZGF0ZWQgc3VjY2Vzc2Z1bGx5IScgOiAnQ3JlYXRlZCBzdWNjZXNzZnVsbHkhJyk7XG4gICAgICAgIG5hdmlnYXRlKCcvb2NjdXBhdGlvbnMnKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIFtvY2N1cGF0aW9uVXBkYXRlUGVuZGluZywgcmVnaXN0ZXJFcnJvck1lc3NhZ2UsIGlkLCBpc0NsaWNrLCBuYXZpZ2F0ZV0pO1xuXG4gIC8vIPCfkYkgSGFuZGxlIGZvcm0gc3VibWl0XG4gIGNvbnN0IG9uRmluaXNoID0gKHZhbHVlczogT2NjdXBhdGlvbikgPT4ge1xuICAgIGlmIChpZCkge1xuICAgICAgZGlzcGF0Y2godXBkYXRlT2NjdXBhdGlvbkFjdGlvbih7IGlkOiBOdW1iZXIoaWQpLCBkYXRhOiB2YWx1ZXMgfSkpO1xuICAgICAgZm9ybS5yZXNldEZpZWxkcygpO1xuICAgIH0gZWxzZSB7XG4gICAgICBkaXNwYXRjaChjcmVhdGVPY2N1cGF0aW9uQWN0aW9uKHsgZGF0YTogdmFsdWVzIH0pKTtcbiAgICAgIGZvcm0ucmVzZXRGaWVsZHMoKTsgLy8gUmVzZXQgZm9ybSBhZnRlciBzdWNjZXNzZnVsIGNyZWF0aW9uXG4gICAgfVxuICAgIHNldElzQ2xpY2sodHJ1ZSk7XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPGgyPntpZCA/ICfhnoDhn4LhnpThn5Lhnprhn4LhnpjhnrvhnoHhnprhnpThnponIDogJ+GelOGek+GfkuGekOGfguGemOGekOGfkuGemOGeuOGemOGeu+GegeGemuGelOGemid9PC9oMj5cbiAgICAgIDxGb3JtIGZvcm09e2Zvcm19IGxheW91dD1cInZlcnRpY2FsXCIgb25GaW5pc2g9e29uRmluaXNofSBzdHlsZT17eyBtYXhXaWR0aDogJzEwMCUnLCBtYXJnaW46ICcwIGF1dG8nIH19PlxuICAgICAgICA8Um93IGd1dHRlcj17WzEyLCAxMl19PlxuICAgICAgICAgIDxDb2wgc3Bhbj17MTJ9PlxuICAgICAgICAgICAgPEZvcm0uSXRlbSBsYWJlbD1cIuGeiOGfkuGemOGfhOGfh1wiIG5hbWU9XCJuYW1lXCIgcnVsZXM9e1t7IHJlcXVpcmVkOiB0cnVlLCBtZXNzYWdlOiAnUGxlYXNlIGVudGVyIGEgbmFtZScgfV19PlxuICAgICAgICAgICAgICA8SW5wdXQgLz5cbiAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxuICAgICAgICAgIDwvQ29sPlxuICAgICAgICAgIDxDb2wgc3Bhbj17MTJ9PlxuICAgICAgICAgICAgPEZvcm0uSXRlbSBsYWJlbD1cIuGelOGemuGet+GemeGetuGemVwiIG5hbWU9XCJkZXNjcmlwdGlvblwiPlxuICAgICAgICAgICAgICA8VGV4dEFyZWEgcm93cz17M30gLz5cbiAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxuICAgICAgICAgIDwvQ29sPlxuICAgICAgICA8L1Jvdz5cbiAgICAgICAgPFJvdyBndXR0ZXI9e1sxMiwgMTJdfT5cbiAgICAgICAgICA8Q29sIHNwYW49ezN9PlxuICAgICAgICAgICAgPEZvcm0uSXRlbT5cbiAgICAgICAgICAgICAgPEJ1dHRvbiB0eXBlPVwicHJpbWFyeVwiIGJsb2NrIGh0bWxUeXBlPVwic3VibWl0XCIgbG9hZGluZz17b2NjdXBhdGlvblVwZGF0ZVBlbmRpbmd9PlxuICAgICAgICAgICAgICAgIFN1Ym1pdFxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxuICAgICAgICAgIDwvQ29sPlxuICAgICAgICAgIDxDb2wgc3Bhbj17M30+XG4gICAgICAgICAgICA8Rm9ybS5JdGVtPlxuICAgICAgICAgICAgICA8QnV0dG9uIGh0bWxUeXBlPVwiYnV0dG9uXCIgb25DbGljaz17KCkgPT4gbmF2aWdhdGUoJy9vY2N1cGF0aW9ucycpfT5cbiAgICAgICAgICAgICAgICBDYW5jZWxcbiAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICA8L0Zvcm0uSXRlbT5cbiAgICAgICAgICA8L0NvbD5cbiAgICAgICAgPC9Sb3c+XG4gICAgICA8L0Zvcm0+XG4gICAgPC8+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBOZXdFZGl0T2NjdXBhdGlvblBhZ2U7XG4iLCJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEJ1dHRvbiwgSW5wdXQsIFNwYWNlLCBUYWJsZSB9IGZyb20gJ2FudGQnO1xuaW1wb3J0IHsgdXNlRGlzcGF0Y2gsIHVzZVNlbGVjdG9yIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHsgUm9vdFN0YXRlIH0gZnJvbSAnLi4vLi4vLi4vcmVkdXgvc3RvcmUnO1xuaW1wb3J0IHsgdXNlTmF2aWdhdGUgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCBMb2FkaW5nRGlhbG9nIGZyb20gJy4uLy4uLy4uL2NvbnRhaW5lci9kaWFsb2dzL2xvYWRpbmctZGlhbG9nJztcbmltcG9ydCB7IERlbGV0ZU91dGxpbmVkLCBFZGl0T3V0bGluZWQsIFBsdXNPdXRsaW5lZCB9IGZyb20gJ0BhbnQtZGVzaWduL2ljb25zJztcbmltcG9ydCB7IGRlbGV0ZU9jY3VwYXRpb25BY3Rpb24sIG9jY3VwYXRpb25EZXRhaWxBY3Rpb24sIGZldGNoT2NjdXBhdGlvbnMgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9vY2N1cGF0aW9uL2NvcmUvYWN0aW9ucyc7XG5pbXBvcnQgU3dhbCBmcm9tICdzd2VldGFsZXJ0Mic7XG5cbmNvbnN0IE9jY3VwYXRpb25MaXN0ID0gKCkgPT4ge1xuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG4gIGNvbnN0IG5hdmlnYXRlID0gdXNlTmF2aWdhdGUoKTtcbiAgY29uc3QgW3NlbGVjdGVkUm93cywgc2V0U2VsZWN0ZWRSb3dzXSA9IHVzZVN0YXRlPGFueT4oW10pO1xuICBjb25zdCBbc2VhcmNoVGV4dCwgc2V0U2VhcmNoVGV4dF0gPSB1c2VTdGF0ZSgnJyk7XG4gIGNvbnN0IHsgb2NjdXBhdGlvbnMsIG9jY3VwYXRpb25zUGVuZGluZyB9ID0gdXNlU2VsZWN0b3IoKHN0YXRlOiBSb290U3RhdGUpID0+IHN0YXRlLm9jY3VwYXRpb24pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgZGlzcGF0Y2goZmV0Y2hPY2N1cGF0aW9ucygpKTtcbiAgfSwgW2Rpc3BhdGNoXSk7XG5cbiAgY29uc3QgaGFuZGxlRWRpdCA9IChpZDogYW55KSA9PiB7XG4gICAgZGlzcGF0Y2gob2NjdXBhdGlvbkRldGFpbEFjdGlvbihpZCkpO1xuICAgIG5hdmlnYXRlKGAvb2NjdXBhdGlvbnMvZm9ybT9pZD0ke2lkfWApO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZURlbGV0ZSA9IChpZDogYW55KSA9PiB7XG4gICAgU3dhbC5maXJlKHtcbiAgICAgIHRpdGxlOiAnQXJlIHlvdSBzdXJlPycsXG4gICAgICB0ZXh0OiAnWW91IHdvblxcJ3QgYmUgYWJsZSB0byByZXZlcnQgdGhpcyEnLFxuICAgICAgaWNvbjogJ3dhcm5pbmcnLFxuICAgICAgc2hvd0NvbmZpcm1CdXR0b246IGZhbHNlLFxuICAgICAgc2hvd0NhbmNlbEJ1dHRvbjogZmFsc2UsXG4gICAgICBodG1sOiBgXG4gICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgZ2FwOiAxMHB4OyBtYXJnaW4tdG9wOiAyMHB4O1wiPlxuICAgICAgICAgIDxidXR0b24gaWQ9XCJjb25maXJtLWRlbGV0ZVwiIGNsYXNzPVwic3dhbDItY29uZmlybSBzd2FsMi1zdHlsZWRcIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6ICNkMzM7XCI+RGVsZXRlPC9idXR0b24+XG4gICAgICAgICAgPGJ1dHRvbiBpZD1cImNhbmNlbC1kZWxldGVcIiBjbGFzcz1cInN3YWwyLWNhbmNlbCBzd2FsMi1zdHlsZWRcIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6ICMzMDg1ZDY7XCI+Q2FuY2VsPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgYCxcbiAgICAgIGRpZE9wZW46ICgpID0+IHtcbiAgICAgICAgY29uc3QgY29uZmlybUJ1dHRvbiA9IFN3YWwuZ2V0UG9wdXAoKT8ucXVlcnlTZWxlY3RvcignI2NvbmZpcm0tZGVsZXRlJyk7XG4gICAgICAgIGNvbnN0IGNhbmNlbEJ1dHRvbiA9IFN3YWwuZ2V0UG9wdXAoKT8ucXVlcnlTZWxlY3RvcignI2NhbmNlbC1kZWxldGUnKTtcblxuICAgICAgICBjb25maXJtQnV0dG9uPy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcbiAgICAgICAgICBkaXNwYXRjaChkZWxldGVPY2N1cGF0aW9uQWN0aW9uKGlkKSkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICBTd2FsLmZpcmUoJ0RlbGV0ZWQhJywgJ1RoZSBpdGVtIGhhcyBiZWVuIGRlbGV0ZWQuJywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGRpc3BhdGNoKGZldGNoT2NjdXBhdGlvbnMoKSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgU3dhbC5jbG9zZSgpO1xuICAgICAgICB9KTtcblxuICAgICAgICBjYW5jZWxCdXR0b24/LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgICAgIFN3YWwuY2xvc2UoKTtcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVNlYXJjaCA9ICgpID0+IHtcbiAgICAvLyBUcmlnZ2VycyBzZWFyY2ggYnkgc2V0dGluZyBzdGF0ZVxuICAgIHNldFNlYXJjaFRleHQoc2VhcmNoVGV4dC50cmltKCkpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVJlc2V0ID0gKCkgPT4ge1xuICAgIC8vIENsZWFycyBpbnB1dCBhbmQgc2hvd3MgYWxsIGRhdGFcbiAgICBzZXRTZWFyY2hUZXh0KCcnKTtcbiAgfTtcblxuICBjb25zdCBjb2x1bW5zID0gW1xuICAgIHsgdGl0bGU6ICfhnpvhn4HhnoHhnprhn4DhnoQnLCBkYXRhSW5kZXg6ICdpbmRleCcsIGtleTogJ2luZGV4JywgcmVzcG9uc2l2ZTogWydzbSddIH0sXG4gICAgeyB0aXRsZTogJ+GeiOGfkuGemOGfhOGfhycsIGRhdGFJbmRleDogJ25hbWUnLCBrZXk6ICduYW1lJywgcmVzcG9uc2l2ZTogWydzbSddIH0sXG4gICAgeyB0aXRsZTogJ+GelOGemuGet+GemeGetuGemScsIGRhdGFJbmRleDogJ2Rlc2NyaXB0aW9uJywga2V5OiAnZGVzY3JpcHRpb24nLCByZXNwb25zaXZlOiBbJ3NtJ10gfSxcbiAgICB7XG4gICAgICB0aXRsZTogJ0FjdGlvbicsXG4gICAgICBrZXk6ICdhY3Rpb24nLFxuICAgICAgcmVzcG9uc2l2ZTogWyd4cycsICdzbScsICdtZCcsICdsZyddLFxuICAgICAgcmVuZGVyOiAoXzogc3RyaW5nLCByZWNvcmQ6IGFueSkgPT4gKFxuICAgICAgICA8U3BhY2Ugc2l6ZT1cIm1pZGRsZVwiPlxuICAgICAgICAgIDxCdXR0b24gaWNvbj17PEVkaXRPdXRsaW5lZCAvPn0gdHlwZT1cInByaW1hcnlcIiBvbkNsaWNrPXsoKSA9PiBoYW5kbGVFZGl0KHJlY29yZC5pZCl9IC8+XG4gICAgICAgICAgPEJ1dHRvbiBpY29uPXs8RGVsZXRlT3V0bGluZWQgLz59IGRhbmdlciBvbkNsaWNrPXsoKSA9PiBoYW5kbGVEZWxldGUocmVjb3JkLmlkKX0gLz5cbiAgICAgICAgPC9TcGFjZT5cbiAgICAgICksXG4gICAgfSxcbiAgXTtcblxuICBjb25zdCBmaWx0ZXJlZERhdGEgPSAob2NjdXBhdGlvbnMgfHwgW10pLmZpbHRlcigoaXQpID0+XG4gICAgaXQubmFtZT8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2hUZXh0LnRvTG93ZXJDYXNlKCkpXG4gICk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IHN0eWxlPXt7IG92ZXJmbG93WDogJ2F1dG8nIH19PlxuICAgICAgPGgyPuGelOGeieGfkuGeh+GeuOGemOGeu+GegeGemuGelOGemjwvaDI+XG4gICAgICA8ZGl2XG4gICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgICAgIGp1c3RpZnlDb250ZW50OiAnc3BhY2UtYmV0d2VlbicsXG4gICAgICAgICAgcGFkZGluZzogJzEwcHgnLFxuICAgICAgICAgIGJhY2tncm91bmQ6ICcjZjVmNWY1JyxcbiAgICAgICAgICBtYXJnaW5Cb3R0b206ICcxMHB4JyxcbiAgICAgICAgICBmbGV4V3JhcDogJ3dyYXAnLFxuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICA8U3BhY2Ugd3JhcD5cbiAgICAgICAgICA8c3Bhbj7hnp/hnprhnrvhnpQ6IHtmaWx0ZXJlZERhdGE/Lmxlbmd0aCB8fCAwfTwvc3Bhbj5cbiAgICAgICAgICA8SW5wdXRcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwi4Z6f4Z+S4Z6c4Z+C4Z6E4Z6a4Z6ALi4uXCJcbiAgICAgICAgICAgIHN0eWxlPXt7IHdpZHRoOiAyMDAgfX1cbiAgICAgICAgICAgIHZhbHVlPXtzZWFyY2hUZXh0fVxuICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBzZXRTZWFyY2hUZXh0KGUudGFyZ2V0LnZhbHVlKX1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxCdXR0b24gb25DbGljaz17aGFuZGxlU2VhcmNofSB0eXBlPVwicHJpbWFyeVwiPuGeheGemOGfkuGemuGfhOGfhzwvQnV0dG9uPlxuICAgICAgICAgIDxCdXR0b24gb25DbGljaz17aGFuZGxlUmVzZXR9PuGegOGfhuGejuGej+Gfi+GeoeGevuGehOGenOGet+GeiTwvQnV0dG9uPlxuICAgICAgICA8L1NwYWNlPlxuICAgICAgICA8U3BhY2Ugd3JhcD5cbiAgICAgICAgICA8QnV0dG9uIGljb249ezxQbHVzT3V0bGluZWQgLz59IHR5cGU9XCJwcmltYXJ5XCIgb25DbGljaz17KCkgPT4gbmF2aWdhdGUoYC9vY2N1cGF0aW9ucy9mb3JtYCl9PuGelOGek+GfkuGekOGfguGemOGekOGfkuGemOGeuDwvQnV0dG9uPlxuICAgICAgICA8L1NwYWNlPlxuICAgICAgPC9kaXY+XG4gICAgICA8VGFibGVcbiAgICAgICAgcm93U2VsZWN0aW9uPXt7XG4gICAgICAgICAgdHlwZTogJ2NoZWNrYm94JyxcbiAgICAgICAgICBvbkNoYW5nZTogKF8sIHNlbGVjdGVkUm93cykgPT4gc2V0U2VsZWN0ZWRSb3dzKHNlbGVjdGVkUm93cyksXG4gICAgICAgIH19XG4gICAgICAgIGNvbHVtbnM9e2NvbHVtbnN9XG4gICAgICAgIGRhdGFTb3VyY2U9e2ZpbHRlcmVkRGF0YS5tYXAoKGl0LCBpbmRleCkgPT4gKHtcbiAgICAgICAgICBrZXk6IGl0LmlkLFxuICAgICAgICAgIGluZGV4OiBpbmRleCArIDEsXG4gICAgICAgICAgbmFtZTogaXQubmFtZSxcbiAgICAgICAgICAuLi5pdCxcbiAgICAgICAgfSkpfVxuICAgICAgICBwYWdpbmF0aW9uPXt7IHBhZ2VTaXplOiAxMCwgc2hvd1NpemVDaGFuZ2VyOiB0cnVlIH19XG4gICAgICAgIHNjcm9sbD17eyB4OiAnbWF4LWNvbnRlbnQnIH19XG4gICAgICAvPlxuICAgICAgPExvYWRpbmdEaWFsb2cgdmlzaWJsZT17b2NjdXBhdGlvbnNQZW5kaW5nfSAvPlxuICAgIDwvZGl2PlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgT2NjdXBhdGlvbkxpc3Q7XG4iLCJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEZvcm0sIElucHV0LCBCdXR0b24sIFJvdywgQ29sLCBtZXNzYWdlIH0gZnJvbSAnYW50ZCc7XG5pbXBvcnQgeyBSb290U3RhdGUgfSBmcm9tICcuLi8uLi8uLi9yZWR1eC9zdG9yZSc7XG5pbXBvcnQgeyB1c2VEaXNwYXRjaCwgdXNlU2VsZWN0b3IgfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQgeyBPZmZlclByb2dyYW0gfSBmcm9tICdAL3NoYXJlZC9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGNyZWF0ZU9mZmVyUHJvZ3JhbUFjdGlvbiwgb2ZmZXJQcm9ncmFtRGV0YWlsQWN0aW9uLCB1cGRhdGVPZmZlclByb2dyYW1BY3Rpb24gfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9vZmZlcl9wcm9ncmFtL2NvcmUvYWN0aW9ucyc7XG5pbXBvcnQgeyB1c2VOYXZpZ2F0ZSB9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nO1xuaW1wb3J0IFRleHRBcmVhIGZyb20gJ2FudGQvZXMvaW5wdXQvVGV4dEFyZWEnO1xuXG5jb25zdCBOZXdFZGl0T2ZmZXJQcm9ncmFtUGFnZTogUmVhY3QuRkMgPSAoKSA9PiB7XG4gIGNvbnN0IGRpc3BhdGNoID0gdXNlRGlzcGF0Y2goKTtcbiAgY29uc3QgbmF2aWdhdGUgPSB1c2VOYXZpZ2F0ZSgpO1xuICBjb25zdCB7IG9mZmVyUHJvZ3JhbSwgcmVnaXN0ZXJFcnJvck1lc3NhZ2UsIG9mZmVyUHJvZ3JhbVVwZGF0ZVBlbmRpbmcgfSA9IHVzZVNlbGVjdG9yKFxuICAgIChzdGF0ZTogUm9vdFN0YXRlKSA9PiBzdGF0ZS5vZmZlclByb2dyYW1cbiAgKTtcbiAgY29uc3QgW2Zvcm1dID0gRm9ybS51c2VGb3JtKCk7XG5cbiAgY29uc3Qgc2VhcmNoUGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyhsb2NhdGlvbi5zZWFyY2gpO1xuICBjb25zdCBpZCA9IHNlYXJjaFBhcmFtcy5nZXQoJ2lkJyk7XG5cbiAgY29uc3QgW2lzQ2xpY2ssIHNldElzQ2xpY2tdID0gdXNlU3RhdGUoZmFsc2UpO1xuXG4gIC8vIPCfkYkgRmV0Y2ggZGF0YSB3aGVuIGVkaXRpbmcgb3IgcmVzZXQgZm9ybSB3aGVuIGFkZGluZ1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChpZCkge1xuICAgICAgZGlzcGF0Y2gob2ZmZXJQcm9ncmFtRGV0YWlsQWN0aW9uKE51bWJlcihpZCkpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZm9ybS5yZXNldEZpZWxkcygpOyAvLyBSZXNldCBmb3JtIGZpZWxkcyB3aGVuIGFkZGluZyBhIG5ldyBpdGVtXG4gICAgfVxuICB9LCBbZGlzcGF0Y2gsIGlkLCBmb3JtXSk7XG5cbiAgLy8g8J+RiSBQb3B1bGF0ZSBmb3JtIHdpdGggZmV0Y2hlZCBkYXRhXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlkICYmIG9mZmVyUHJvZ3JhbSkge1xuICAgICAgZm9ybS5zZXRGaWVsZHNWYWx1ZSh7XG4gICAgICAgIG5hbWU6IG9mZmVyUHJvZ3JhbS5uYW1lIHx8ICcnLFxuICAgICAgICBkZXNjcmlwdGlvbjogb2ZmZXJQcm9ncmFtLmRlc2NyaXB0aW9uIHx8ICcnLFxuICAgICAgfSk7XG4gICAgfVxuICB9LCBbb2ZmZXJQcm9ncmFtLCBmb3JtLCBpZF0pO1xuXG4gIC8vIPCfkYkgU2hvdyBzdWNjZXNzIG9yIGVycm9yIGFsZXJ0c1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghb2ZmZXJQcm9ncmFtVXBkYXRlUGVuZGluZyAmJiBpc0NsaWNrKSB7XG4gICAgICBpZiAocmVnaXN0ZXJFcnJvck1lc3NhZ2UpIHtcbiAgICAgICAgbWVzc2FnZS5lcnJvcihyZWdpc3RlckVycm9yTWVzc2FnZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBtZXNzYWdlLnN1Y2Nlc3MoaWQgPyAnVXBkYXRlZCBzdWNjZXNzZnVsbHkhJyA6ICdDcmVhdGVkIHN1Y2Nlc3NmdWxseSEnKTtcbiAgICAgICAgbmF2aWdhdGUoJy9vZmZlci1wcm9ncmFtcycpO1xuICAgICAgfVxuICAgIH1cbiAgfSwgW29mZmVyUHJvZ3JhbVVwZGF0ZVBlbmRpbmcsIHJlZ2lzdGVyRXJyb3JNZXNzYWdlLCBpZCwgaXNDbGljaywgbmF2aWdhdGVdKTtcblxuICAvLyDwn5GJIEhhbmRsZSBmb3JtIHN1Ym1pdFxuICBjb25zdCBvbkZpbmlzaCA9ICh2YWx1ZXM6IE9mZmVyUHJvZ3JhbSkgPT4ge1xuICAgIGlmIChpZCkge1xuICAgICAgZGlzcGF0Y2godXBkYXRlT2ZmZXJQcm9ncmFtQWN0aW9uKHsgaWQ6IE51bWJlcihpZCksIGRhdGE6IHZhbHVlcyB9KSk7XG4gICAgICBmb3JtLnJlc2V0RmllbGRzKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRpc3BhdGNoKGNyZWF0ZU9mZmVyUHJvZ3JhbUFjdGlvbih7IGRhdGE6IHZhbHVlcyB9KSk7XG4gICAgICBmb3JtLnJlc2V0RmllbGRzKCk7IC8vIFJlc2V0IGZvcm0gYWZ0ZXIgc3VjY2Vzc2Z1bCBjcmVhdGlvblxuICAgIH1cbiAgICBzZXRJc0NsaWNrKHRydWUpO1xuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxoMj57aWQgPyAn4Z6A4Z+C4Z6U4Z+S4Z6a4Z+C4Z6A4Z6Y4Z+S4Z6Y4Z6c4Z644Z6S4Z644Z6V4Z+S4Z6K4Z6b4Z+L4Z6H4Z684Z6T4oCLJyA6ICfhnpThnpPhn5LhnpDhn4LhnpjhnpDhn5LhnpjhnrjhnoDhnpjhn5LhnpjhnpzhnrjhnpLhnrjhnpXhn5Lhnorhnpvhn4vhnofhnrzhnpPigIsnfTwvaDI+XG4gICAgICA8Rm9ybSBmb3JtPXtmb3JtfSBsYXlvdXQ9XCJ2ZXJ0aWNhbFwiIG9uRmluaXNoPXtvbkZpbmlzaH0gc3R5bGU9e3sgbWF4V2lkdGg6ICcxMDAlJywgbWFyZ2luOiAnMCBhdXRvJyB9fT5cbiAgICAgICAgPFJvdyBndXR0ZXI9e1sxMiwgMTJdfT5cbiAgICAgICAgICA8Q29sIHNwYW49ezEyfT5cbiAgICAgICAgICAgIDxGb3JtLkl0ZW0gbGFiZWw9XCLhnojhn5Lhnpjhn4Thn4dcIiBuYW1lPVwibmFtZVwiIHJ1bGVzPXtbeyByZXF1aXJlZDogdHJ1ZSwgbWVzc2FnZTogJ1BsZWFzZSBlbnRlciBhIG5hbWUnIH1dfT5cbiAgICAgICAgICAgICAgPElucHV0IC8+XG4gICAgICAgICAgICA8L0Zvcm0uSXRlbT5cbiAgICAgICAgICA8L0NvbD5cbiAgICAgICAgICA8Q29sIHNwYW49ezEyfT5cbiAgICAgICAgICAgIDxGb3JtLkl0ZW0gbGFiZWw9XCLhnpThnprhnrfhnpnhnrbhnplcIiBuYW1lPVwiZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICAgICAgPFRleHRBcmVhIHJvd3M9ezN9IC8+XG4gICAgICAgICAgICA8L0Zvcm0uSXRlbT5cbiAgICAgICAgICA8L0NvbD5cbiAgICAgICAgPC9Sb3c+XG4gICAgICAgIDxSb3cgZ3V0dGVyPXtbMTIsIDEyXX0+XG4gICAgICAgICAgPENvbCBzcGFuPXszfT5cbiAgICAgICAgICAgIDxGb3JtLkl0ZW0+XG4gICAgICAgICAgICAgIDxCdXR0b24gdHlwZT1cInByaW1hcnlcIiBibG9jayBodG1sVHlwZT1cInN1Ym1pdFwiIGxvYWRpbmc9e29mZmVyUHJvZ3JhbVVwZGF0ZVBlbmRpbmd9PlxuICAgICAgICAgICAgICAgIFN1Ym1pdFxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxuICAgICAgICAgIDwvQ29sPlxuICAgICAgICAgIDxDb2wgc3Bhbj17M30+XG4gICAgICAgICAgICA8Rm9ybS5JdGVtPlxuICAgICAgICAgICAgICA8QnV0dG9uIGh0bWxUeXBlPVwiYnV0dG9uXCIgb25DbGljaz17KCkgPT4gbmF2aWdhdGUoJy9vZmZlci1wcm9ncmFtcycpfT5cbiAgICAgICAgICAgICAgICBDYW5jZWxcbiAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICA8L0Zvcm0uSXRlbT5cbiAgICAgICAgICA8L0NvbD5cbiAgICAgICAgPC9Sb3c+XG4gICAgICA8L0Zvcm0+XG4gICAgPC8+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBOZXdFZGl0T2ZmZXJQcm9ncmFtUGFnZTtcbiIsImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgQnV0dG9uLCBJbnB1dCwgU3BhY2UsIFRhYmxlIH0gZnJvbSAnYW50ZCc7XG5pbXBvcnQgeyB1c2VEaXNwYXRjaCwgdXNlU2VsZWN0b3IgfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQgeyBSb290U3RhdGUgfSBmcm9tICcuLi8uLi8uLi9yZWR1eC9zdG9yZSc7XG5pbXBvcnQgeyB1c2VOYXZpZ2F0ZSB9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nO1xuaW1wb3J0IExvYWRpbmdEaWFsb2cgZnJvbSAnLi4vLi4vLi4vY29udGFpbmVyL2RpYWxvZ3MvbG9hZGluZy1kaWFsb2cnO1xuaW1wb3J0IHsgRGVsZXRlT3V0bGluZWQsIEVkaXRPdXRsaW5lZCwgUGx1c091dGxpbmVkIH0gZnJvbSAnQGFudC1kZXNpZ24vaWNvbnMnO1xuaW1wb3J0IHsgZGVsZXRlT2ZmZXJQcm9ncmFtQWN0aW9uLCBvZmZlclByb2dyYW1EZXRhaWxBY3Rpb24sIGZldGNoT2ZmZXJQcm9ncmFtcyB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL29mZmVyX3Byb2dyYW0vY29yZS9hY3Rpb25zJztcbmltcG9ydCBTd2FsIGZyb20gJ3N3ZWV0YWxlcnQyJztcblxuY29uc3QgT2ZmZXJQcm9ncmFtTGlzdCA9ICgpID0+IHtcbiAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xuICBjb25zdCBuYXZpZ2F0ZSA9IHVzZU5hdmlnYXRlKCk7XG4gIGNvbnN0IFtzZWxlY3RlZFJvd3MsIHNldFNlbGVjdGVkUm93c10gPSB1c2VTdGF0ZTxhbnk+KFtdKTtcbiAgY29uc3QgW3NlYXJjaFRleHQsIHNldFNlYXJjaFRleHRdID0gdXNlU3RhdGUoJycpO1xuICBjb25zdCB7IG9mZmVyUHJvZ3JhbXMsIG9mZmVyUHJvZ3JhbXNQZW5kaW5nIH0gPSB1c2VTZWxlY3Rvcigoc3RhdGU6IFJvb3RTdGF0ZSkgPT4gc3RhdGUub2ZmZXJQcm9ncmFtKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGRpc3BhdGNoKGZldGNoT2ZmZXJQcm9ncmFtcygpKTtcbiAgfSwgW2Rpc3BhdGNoXSk7XG5cbiAgY29uc3QgaGFuZGxlRWRpdCA9IChpZDogYW55KSA9PiB7XG4gICAgZGlzcGF0Y2gob2ZmZXJQcm9ncmFtRGV0YWlsQWN0aW9uKGlkKSk7XG4gICAgbmF2aWdhdGUoYC9vZmZlci1wcm9ncmFtcy9mb3JtP2lkPSR7aWR9YCk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlRGVsZXRlID0gKGlkOiBhbnkpID0+IHtcbiAgICBTd2FsLmZpcmUoe1xuICAgICAgdGl0bGU6ICdBcmUgeW91IHN1cmU/JyxcbiAgICAgIHRleHQ6ICdZb3Ugd29uXFwndCBiZSBhYmxlIHRvIHJldmVydCB0aGlzIScsXG4gICAgICBpY29uOiAnd2FybmluZycsXG4gICAgICBzaG93Q29uZmlybUJ1dHRvbjogZmFsc2UsXG4gICAgICBzaG93Q2FuY2VsQnV0dG9uOiBmYWxzZSxcbiAgICAgIGh0bWw6IGBcbiAgICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGp1c3RpZnktY29udGVudDogY2VudGVyOyBnYXA6IDEwcHg7IG1hcmdpbi10b3A6IDIwcHg7XCI+XG4gICAgICAgICAgPGJ1dHRvbiBpZD1cImNvbmZpcm0tZGVsZXRlXCIgY2xhc3M9XCJzd2FsMi1jb25maXJtIHN3YWwyLXN0eWxlZFwiIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogI2QzMztcIj5EZWxldGU8L2J1dHRvbj5cbiAgICAgICAgICA8YnV0dG9uIGlkPVwiY2FuY2VsLWRlbGV0ZVwiIGNsYXNzPVwic3dhbDItY2FuY2VsIHN3YWwyLXN0eWxlZFwiIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogIzMwODVkNjtcIj5DYW5jZWw8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICBgLFxuICAgICAgZGlkT3BlbjogKCkgPT4ge1xuICAgICAgICBjb25zdCBjb25maXJtQnV0dG9uID0gU3dhbC5nZXRQb3B1cCgpPy5xdWVyeVNlbGVjdG9yKCcjY29uZmlybS1kZWxldGUnKTtcbiAgICAgICAgY29uc3QgY2FuY2VsQnV0dG9uID0gU3dhbC5nZXRQb3B1cCgpPy5xdWVyeVNlbGVjdG9yKCcjY2FuY2VsLWRlbGV0ZScpO1xuXG4gICAgICAgIGNvbmZpcm1CdXR0b24/LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgICAgIGRpc3BhdGNoKGRlbGV0ZU9mZmVyUHJvZ3JhbUFjdGlvbihpZCkpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgU3dhbC5maXJlKCdEZWxldGVkIScsICdUaGUgaXRlbSBoYXMgYmVlbiBkZWxldGVkLicsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBkaXNwYXRjaChmZXRjaE9mZmVyUHJvZ3JhbXMoKSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgU3dhbC5jbG9zZSgpO1xuICAgICAgICB9KTtcblxuICAgICAgICBjYW5jZWxCdXR0b24/LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgICAgIFN3YWwuY2xvc2UoKTtcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVNlYXJjaCA9ICgpID0+IHtcbiAgICAvLyBUcmlnZ2VycyBzZWFyY2ggYnkgc2V0dGluZyBzdGF0ZVxuICAgIHNldFNlYXJjaFRleHQoc2VhcmNoVGV4dC50cmltKCkpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVJlc2V0ID0gKCkgPT4ge1xuICAgIC8vIENsZWFycyBpbnB1dCBhbmQgc2hvd3MgYWxsIGRhdGFcbiAgICBzZXRTZWFyY2hUZXh0KCcnKTtcbiAgfTtcblxuICBjb25zdCBjb2x1bW5zID0gW1xuICAgIHsgdGl0bGU6ICfhnpvhn4HhnoHhnprhn4DhnoQnLCBkYXRhSW5kZXg6ICdpbmRleCcsIGtleTogJ2luZGV4JywgcmVzcG9uc2l2ZTogWydzbSddIH0sXG4gICAgeyB0aXRsZTogJ+GeiOGfkuGemOGfhOGfhycsIGRhdGFJbmRleDogJ25hbWUnLCBrZXk6ICduYW1lJywgcmVzcG9uc2l2ZTogWydzbSddIH0sXG4gICAgeyB0aXRsZTogJ+GelOGemuGet+GemeGetuGemScsIGRhdGFJbmRleDogJ2Rlc2NyaXB0aW9uJywga2V5OiAnZGVzY3JpcHRpb24nLCByZXNwb25zaXZlOiBbJ3NtJ10gfSxcbiAgICB7XG4gICAgICB0aXRsZTogJ0FjdGlvbicsXG4gICAgICBrZXk6ICdhY3Rpb24nLFxuICAgICAgcmVzcG9uc2l2ZTogWyd4cycsICdzbScsICdtZCcsICdsZyddLFxuICAgICAgcmVuZGVyOiAoXzogc3RyaW5nLCByZWNvcmQ6IGFueSkgPT4gKFxuICAgICAgICA8U3BhY2Ugc2l6ZT1cIm1pZGRsZVwiPlxuICAgICAgICAgIDxCdXR0b24gaWNvbj17PEVkaXRPdXRsaW5lZCAvPn0gdHlwZT1cInByaW1hcnlcIiBvbkNsaWNrPXsoKSA9PiBoYW5kbGVFZGl0KHJlY29yZC5pZCl9IC8+XG4gICAgICAgICAgPEJ1dHRvbiBpY29uPXs8RGVsZXRlT3V0bGluZWQgLz59IGRhbmdlciBvbkNsaWNrPXsoKSA9PiBoYW5kbGVEZWxldGUocmVjb3JkLmlkKX0gLz5cbiAgICAgICAgPC9TcGFjZT5cbiAgICAgICksXG4gICAgfSxcbiAgXTtcblxuICBjb25zdCBmaWx0ZXJlZERhdGEgPSAob2ZmZXJQcm9ncmFtcyB8fCBbXSkuZmlsdGVyKChpdCkgPT5cbiAgICBpdC5uYW1lPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFRleHQudG9Mb3dlckNhc2UoKSlcbiAgKTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgc3R5bGU9e3sgb3ZlcmZsb3dYOiAnYXV0bycgfX0+XG4gICAgICA8aDI+4Z6U4Z6J4Z+S4Z6H4Z644Z6A4Z6Y4Z+S4Z6Y4Z6c4Z644Z6S4Z644Z6V4Z+S4Z6K4Z6b4Z+L4Z6H4Z684Z6T4oCLPC9oMj5cbiAgICAgIDxkaXZcbiAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdzcGFjZS1iZXR3ZWVuJyxcbiAgICAgICAgICBwYWRkaW5nOiAnMTBweCcsXG4gICAgICAgICAgYmFja2dyb3VuZDogJyNmNWY1ZjUnLFxuICAgICAgICAgIG1hcmdpbkJvdHRvbTogJzEwcHgnLFxuICAgICAgICAgIGZsZXhXcmFwOiAnd3JhcCcsXG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIDxTcGFjZSB3cmFwPlxuICAgICAgICAgIDxzcGFuPuGen+GemuGeu+GelDoge2ZpbHRlcmVkRGF0YT8ubGVuZ3RoIHx8IDB9PC9zcGFuPlxuICAgICAgICAgIDxJbnB1dFxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLhnp/hn5Lhnpzhn4LhnoThnprhnoAuLi5cIlxuICAgICAgICAgICAgc3R5bGU9e3sgd2lkdGg6IDIwMCB9fVxuICAgICAgICAgICAgdmFsdWU9e3NlYXJjaFRleHR9XG4gICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHNldFNlYXJjaFRleHQoZS50YXJnZXQudmFsdWUpfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPEJ1dHRvbiBvbkNsaWNrPXtoYW5kbGVTZWFyY2h9IHR5cGU9XCJwcmltYXJ5XCI+4Z6F4Z6Y4Z+S4Z6a4Z+E4Z+HPC9CdXR0b24+XG4gICAgICAgICAgPEJ1dHRvbiBvbkNsaWNrPXtoYW5kbGVSZXNldH0+4Z6A4Z+G4Z6O4Z6P4Z+L4Z6h4Z6+4Z6E4Z6c4Z634Z6JPC9CdXR0b24+XG4gICAgICAgIDwvU3BhY2U+XG4gICAgICAgIDxTcGFjZSB3cmFwPlxuICAgICAgICAgIDxCdXR0b24gaWNvbj17PFBsdXNPdXRsaW5lZCAvPn0gdHlwZT1cInByaW1hcnlcIiBvbkNsaWNrPXsoKSA9PiBuYXZpZ2F0ZShgL29mZmVyLXByb2dyYW1zL2Zvcm1gKX0+4Z6U4Z6T4Z+S4Z6Q4Z+C4Z6Y4Z6Q4Z+S4Z6Y4Z64PC9CdXR0b24+XG4gICAgICAgIDwvU3BhY2U+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxUYWJsZVxuICAgICAgICByb3dTZWxlY3Rpb249e3tcbiAgICAgICAgICB0eXBlOiAnY2hlY2tib3gnLFxuICAgICAgICAgIG9uQ2hhbmdlOiAoXywgc2VsZWN0ZWRSb3dzKSA9PiBzZXRTZWxlY3RlZFJvd3Moc2VsZWN0ZWRSb3dzKSxcbiAgICAgICAgfX1cbiAgICAgICAgY29sdW1ucz17Y29sdW1uc31cbiAgICAgICAgZGF0YVNvdXJjZT17ZmlsdGVyZWREYXRhLm1hcCgoaXQsIGluZGV4KSA9PiAoe1xuICAgICAgICAgIGtleTogaXQuaWQsXG4gICAgICAgICAgaW5kZXg6IGluZGV4ICsgMSxcbiAgICAgICAgICBuYW1lOiBpdC5uYW1lLFxuICAgICAgICAgIC4uLml0LFxuICAgICAgICB9KSl9XG4gICAgICAgIHBhZ2luYXRpb249e3sgcGFnZVNpemU6IDEwLCBzaG93U2l6ZUNoYW5nZXI6IHRydWUgfX1cbiAgICAgICAgc2Nyb2xsPXt7IHg6ICdtYXgtY29udGVudCcgfX1cbiAgICAgIC8+XG4gICAgICA8TG9hZGluZ0RpYWxvZyB2aXNpYmxlPXtvZmZlclByb2dyYW1zUGVuZGluZ30gLz5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IE9mZmVyUHJvZ3JhbUxpc3Q7XG4iLCJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEZvcm0sIElucHV0LCBCdXR0b24sIFJvdywgQ29sLCBtZXNzYWdlIH0gZnJvbSAnYW50ZCc7XG5pbXBvcnQgeyBSb290U3RhdGUgfSBmcm9tICcuLi8uLi8uLi9yZWR1eC9zdG9yZSc7XG5pbXBvcnQgeyB1c2VEaXNwYXRjaCwgdXNlU2VsZWN0b3IgfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQgeyBPcHBvcnR1bml0eVNvdXJjZSB9IGZyb20gJ0Avc2hhcmVkL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgY3JlYXRlT3Bwb3J0dW5pdHlTb3VyY2VBY3Rpb24sIG9wcG9ydHVuaXR5U291cmNlRGV0YWlsQWN0aW9uLCB1cGRhdGVPcHBvcnR1bml0eVNvdXJjZUFjdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL29wcG9ydHVuaXR5X3NvdXJjZS9jb3JlL2FjdGlvbnMnO1xuaW1wb3J0IHsgdXNlTmF2aWdhdGUgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCBUZXh0QXJlYSBmcm9tICdhbnRkL2VzL2lucHV0L1RleHRBcmVhJztcblxuY29uc3QgTmV3RWRpdE9wcG9ydHVuaXR5U291cmNlUGFnZTogUmVhY3QuRkMgPSAoKSA9PiB7XG4gIGNvbnN0IGRpc3BhdGNoID0gdXNlRGlzcGF0Y2goKTtcbiAgY29uc3QgbmF2aWdhdGUgPSB1c2VOYXZpZ2F0ZSgpO1xuICBjb25zdCB7IG9wcG9ydHVuaXR5U291cmNlLCByZWdpc3RlckVycm9yTWVzc2FnZSwgb3Bwb3J0dW5pdHlTb3VyY2VVcGRhdGVQZW5kaW5nIH0gPSB1c2VTZWxlY3RvcihcbiAgICAoc3RhdGU6IFJvb3RTdGF0ZSkgPT4gc3RhdGUub3Bwb3J0dW5pdHlTb3VyY2VcbiAgKTtcbiAgY29uc3QgW2Zvcm1dID0gRm9ybS51c2VGb3JtKCk7XG5cbiAgY29uc3Qgc2VhcmNoUGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyhsb2NhdGlvbi5zZWFyY2gpO1xuICBjb25zdCBpZCA9IHNlYXJjaFBhcmFtcy5nZXQoJ2lkJyk7XG5cbiAgY29uc3QgW2lzQ2xpY2ssIHNldElzQ2xpY2tdID0gdXNlU3RhdGUoZmFsc2UpO1xuXG4gIC8vIPCfkYkgRmV0Y2ggZGF0YSB3aGVuIGVkaXRpbmcgb3IgcmVzZXQgZm9ybSB3aGVuIGFkZGluZ1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChpZCkge1xuICAgICAgZGlzcGF0Y2gob3Bwb3J0dW5pdHlTb3VyY2VEZXRhaWxBY3Rpb24oTnVtYmVyKGlkKSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBmb3JtLnJlc2V0RmllbGRzKCk7IC8vIFJlc2V0IGZvcm0gZmllbGRzIHdoZW4gYWRkaW5nIGEgbmV3IGl0ZW1cbiAgICB9XG4gIH0sIFtkaXNwYXRjaCwgaWQsIGZvcm1dKTtcblxuICAvLyDwn5GJIFBvcHVsYXRlIGZvcm0gd2l0aCBmZXRjaGVkIGRhdGFcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaWQgJiYgb3Bwb3J0dW5pdHlTb3VyY2UpIHtcbiAgICAgIGZvcm0uc2V0RmllbGRzVmFsdWUoe1xuICAgICAgICBuYW1lOiBvcHBvcnR1bml0eVNvdXJjZS5uYW1lIHx8ICcnLFxuICAgICAgICBkZXNjcmlwdGlvbjogb3Bwb3J0dW5pdHlTb3VyY2UuZGVzY3JpcHRpb24gfHwgJycsXG4gICAgICB9KTtcbiAgICB9XG4gIH0sIFtvcHBvcnR1bml0eVNvdXJjZSwgZm9ybSwgaWRdKTtcblxuICAvLyDwn5GJIFNob3cgc3VjY2VzcyBvciBlcnJvciBhbGVydHNcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIW9wcG9ydHVuaXR5U291cmNlVXBkYXRlUGVuZGluZyAmJiBpc0NsaWNrKSB7XG4gICAgICBpZiAocmVnaXN0ZXJFcnJvck1lc3NhZ2UpIHtcbiAgICAgICAgbWVzc2FnZS5lcnJvcihyZWdpc3RlckVycm9yTWVzc2FnZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBtZXNzYWdlLnN1Y2Nlc3MoaWQgPyAnVXBkYXRlZCBzdWNjZXNzZnVsbHkhJyA6ICdDcmVhdGVkIHN1Y2Nlc3NmdWxseSEnKTtcbiAgICAgICAgbmF2aWdhdGUoJy9vcHBvcnR1bml0eS1zb3VyY2VzJyk7XG4gICAgICB9XG4gICAgfVxuICB9LCBbb3Bwb3J0dW5pdHlTb3VyY2VVcGRhdGVQZW5kaW5nLCByZWdpc3RlckVycm9yTWVzc2FnZSwgaWQsIGlzQ2xpY2ssIG5hdmlnYXRlXSk7XG5cbiAgLy8g8J+RiSBIYW5kbGUgZm9ybSBzdWJtaXRcbiAgY29uc3Qgb25GaW5pc2ggPSAodmFsdWVzOiBPcHBvcnR1bml0eVNvdXJjZSkgPT4ge1xuICAgIGlmIChpZCkge1xuICAgICAgZGlzcGF0Y2godXBkYXRlT3Bwb3J0dW5pdHlTb3VyY2VBY3Rpb24oeyBpZDogTnVtYmVyKGlkKSwgZGF0YTogdmFsdWVzIH0pKTtcbiAgICAgIGZvcm0ucmVzZXRGaWVsZHMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGlzcGF0Y2goY3JlYXRlT3Bwb3J0dW5pdHlTb3VyY2VBY3Rpb24oeyBkYXRhOiB2YWx1ZXMgfSkpO1xuICAgICAgZm9ybS5yZXNldEZpZWxkcygpOyAvLyBSZXNldCBmb3JtIGFmdGVyIHN1Y2Nlc3NmdWwgY3JlYXRpb25cbiAgICB9XG4gICAgc2V0SXNDbGljayh0cnVlKTtcbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8aDI+e2lkID8gJ+GegOGfguGelOGfkuGemuGfguGelOGfkuGemuGel+GeluGeseGegOGetuGenycgOiAn4Z6U4Z6T4Z+S4Z6Q4Z+C4Z6Y4Z6Q4Z+S4Z6Y4Z644Z6U4Z+S4Z6a4Z6X4Z6W4Z6x4Z6A4Z624Z6fJ308L2gyPlxuICAgICAgPEZvcm0gZm9ybT17Zm9ybX0gbGF5b3V0PVwidmVydGljYWxcIiBvbkZpbmlzaD17b25GaW5pc2h9IHN0eWxlPXt7IG1heFdpZHRoOiAnMTAwJScsIG1hcmdpbjogJzAgYXV0bycgfX0+XG4gICAgICAgIDxSb3cgZ3V0dGVyPXtbMTIsIDEyXX0+XG4gICAgICAgICAgPENvbCBzcGFuPXsxMn0+XG4gICAgICAgICAgICA8Rm9ybS5JdGVtIGxhYmVsPVwi4Z6I4Z+S4Z6Y4Z+E4Z+HXCIgbmFtZT1cIm5hbWVcIiBydWxlcz17W3sgcmVxdWlyZWQ6IHRydWUsIG1lc3NhZ2U6ICdQbGVhc2UgZW50ZXIgYSBuYW1lJyB9XX0+XG4gICAgICAgICAgICAgIDxJbnB1dCAvPlxuICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XG4gICAgICAgICAgPC9Db2w+XG4gICAgICAgICAgPENvbCBzcGFuPXsxMn0+XG4gICAgICAgICAgICA8Rm9ybS5JdGVtIGxhYmVsPVwi4Z6U4Z6a4Z634Z6Z4Z624Z6ZXCIgbmFtZT1cImRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgICAgIDxUZXh0QXJlYSByb3dzPXszfSAvPlxuICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XG4gICAgICAgICAgPC9Db2w+XG4gICAgICAgIDwvUm93PlxuICAgICAgICA8Um93IGd1dHRlcj17WzEyLCAxMl19PlxuICAgICAgICAgIDxDb2wgc3Bhbj17M30+XG4gICAgICAgICAgICA8Rm9ybS5JdGVtPlxuICAgICAgICAgICAgICA8QnV0dG9uIHR5cGU9XCJwcmltYXJ5XCIgYmxvY2sgaHRtbFR5cGU9XCJzdWJtaXRcIiBsb2FkaW5nPXtvcHBvcnR1bml0eVNvdXJjZVVwZGF0ZVBlbmRpbmd9PlxuICAgICAgICAgICAgICAgIFN1Ym1pdFxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxuICAgICAgICAgIDwvQ29sPlxuICAgICAgICAgIDxDb2wgc3Bhbj17M30+XG4gICAgICAgICAgICA8Rm9ybS5JdGVtPlxuICAgICAgICAgICAgICA8QnV0dG9uIGh0bWxUeXBlPVwiYnV0dG9uXCIgb25DbGljaz17KCkgPT4gbmF2aWdhdGUoJy9vcHBvcnR1bml0eS1zb3VyY2VzJyl9PlxuICAgICAgICAgICAgICAgIENhbmNlbFxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxuICAgICAgICAgIDwvQ29sPlxuICAgICAgICA8L1Jvdz5cbiAgICAgIDwvRm9ybT5cbiAgICA8Lz5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IE5ld0VkaXRPcHBvcnR1bml0eVNvdXJjZVBhZ2U7XG4iLCJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEJ1dHRvbiwgSW5wdXQsIFNwYWNlLCBUYWJsZSB9IGZyb20gJ2FudGQnO1xuaW1wb3J0IHsgdXNlRGlzcGF0Y2gsIHVzZVNlbGVjdG9yIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHsgUm9vdFN0YXRlIH0gZnJvbSAnLi4vLi4vLi4vcmVkdXgvc3RvcmUnO1xuaW1wb3J0IHsgdXNlTmF2aWdhdGUgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCBMb2FkaW5nRGlhbG9nIGZyb20gJy4uLy4uLy4uL2NvbnRhaW5lci9kaWFsb2dzL2xvYWRpbmctZGlhbG9nJztcbmltcG9ydCB7IERlbGV0ZU91dGxpbmVkLCBFZGl0T3V0bGluZWQsIFBsdXNPdXRsaW5lZCB9IGZyb20gJ0BhbnQtZGVzaWduL2ljb25zJztcbmltcG9ydCB7IGRlbGV0ZU9wcG9ydHVuaXR5U291cmNlQWN0aW9uLCBvcHBvcnR1bml0eVNvdXJjZURldGFpbEFjdGlvbiwgZmV0Y2hPcHBvcnR1bml0eVNvdXJjZXMgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9vcHBvcnR1bml0eV9zb3VyY2UvY29yZS9hY3Rpb25zJztcbmltcG9ydCBTd2FsIGZyb20gJ3N3ZWV0YWxlcnQyJztcblxuY29uc3QgT3Bwb3J0dW5pdHlTb3VyY2VMaXN0ID0gKCkgPT4ge1xuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG4gIGNvbnN0IG5hdmlnYXRlID0gdXNlTmF2aWdhdGUoKTtcbiAgY29uc3QgW3NlbGVjdGVkUm93cywgc2V0U2VsZWN0ZWRSb3dzXSA9IHVzZVN0YXRlPGFueT4oW10pO1xuICBjb25zdCBbc2VhcmNoVGV4dCwgc2V0U2VhcmNoVGV4dF0gPSB1c2VTdGF0ZSgnJyk7XG4gIGNvbnN0IHsgb3Bwb3J0dW5pdHlTb3VyY2VzLCBvcHBvcnR1bml0eVNvdXJjZXNQZW5kaW5nIH0gPSB1c2VTZWxlY3Rvcigoc3RhdGU6IFJvb3RTdGF0ZSkgPT4gc3RhdGUub3Bwb3J0dW5pdHlTb3VyY2UpO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgZGlzcGF0Y2goZmV0Y2hPcHBvcnR1bml0eVNvdXJjZXMoKSk7XG4gIH0sIFtkaXNwYXRjaF0pO1xuXG4gIGNvbnN0IGhhbmRsZUVkaXQgPSAoaWQ6IGFueSkgPT4ge1xuICAgIGRpc3BhdGNoKG9wcG9ydHVuaXR5U291cmNlRGV0YWlsQWN0aW9uKGlkKSk7XG4gICAgbmF2aWdhdGUoYC9vcHBvcnR1bml0eS1zb3VyY2VzL2Zvcm0/aWQ9JHtpZH1gKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVEZWxldGUgPSAoaWQ6IGFueSkgPT4ge1xuICAgIFN3YWwuZmlyZSh7XG4gICAgICB0aXRsZTogJ0FyZSB5b3Ugc3VyZT8nLFxuICAgICAgdGV4dDogJ1lvdSB3b25cXCd0IGJlIGFibGUgdG8gcmV2ZXJ0IHRoaXMhJyxcbiAgICAgIGljb246ICd3YXJuaW5nJyxcbiAgICAgIHNob3dDb25maXJtQnV0dG9uOiBmYWxzZSxcbiAgICAgIHNob3dDYW5jZWxCdXR0b246IGZhbHNlLFxuICAgICAgaHRtbDogYFxuICAgICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IGdhcDogMTBweDsgbWFyZ2luLXRvcDogMjBweDtcIj5cbiAgICAgICAgICA8YnV0dG9uIGlkPVwiY29uZmlybS1kZWxldGVcIiBjbGFzcz1cInN3YWwyLWNvbmZpcm0gc3dhbDItc3R5bGVkXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiAjZDMzO1wiPkRlbGV0ZTwvYnV0dG9uPlxuICAgICAgICAgIDxidXR0b24gaWQ9XCJjYW5jZWwtZGVsZXRlXCIgY2xhc3M9XCJzd2FsMi1jYW5jZWwgc3dhbDItc3R5bGVkXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiAjMzA4NWQ2O1wiPkNhbmNlbDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIGAsXG4gICAgICBkaWRPcGVuOiAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbmZpcm1CdXR0b24gPSBTd2FsLmdldFBvcHVwKCk/LnF1ZXJ5U2VsZWN0b3IoJyNjb25maXJtLWRlbGV0ZScpO1xuICAgICAgICBjb25zdCBjYW5jZWxCdXR0b24gPSBTd2FsLmdldFBvcHVwKCk/LnF1ZXJ5U2VsZWN0b3IoJyNjYW5jZWwtZGVsZXRlJyk7XG5cbiAgICAgICAgY29uZmlybUJ1dHRvbj8uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XG4gICAgICAgICAgZGlzcGF0Y2goZGVsZXRlT3Bwb3J0dW5pdHlTb3VyY2VBY3Rpb24oaWQpKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIFN3YWwuZmlyZSgnRGVsZXRlZCEnLCAnVGhlIGl0ZW0gaGFzIGJlZW4gZGVsZXRlZC4nLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgZGlzcGF0Y2goZmV0Y2hPcHBvcnR1bml0eVNvdXJjZXMoKSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgU3dhbC5jbG9zZSgpO1xuICAgICAgICB9KTtcblxuICAgICAgICBjYW5jZWxCdXR0b24/LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgICAgIFN3YWwuY2xvc2UoKTtcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVNlYXJjaCA9ICgpID0+IHtcbiAgICAvLyBUcmlnZ2VycyBzZWFyY2ggYnkgc2V0dGluZyBzdGF0ZVxuICAgIHNldFNlYXJjaFRleHQoc2VhcmNoVGV4dC50cmltKCkpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVJlc2V0ID0gKCkgPT4ge1xuICAgIC8vIENsZWFycyBpbnB1dCBhbmQgc2hvd3MgYWxsIGRhdGFcbiAgICBzZXRTZWFyY2hUZXh0KCcnKTtcbiAgfTtcblxuICBjb25zdCBjb2x1bW5zID0gW1xuICAgIHsgdGl0bGU6ICfhnpvhn4HhnoHhnprhn4DhnoQnLCBkYXRhSW5kZXg6ICdpbmRleCcsIGtleTogJ2luZGV4JywgcmVzcG9uc2l2ZTogWydzbSddIH0sXG4gICAgeyB0aXRsZTogJ+GeiOGfkuGemOGfhOGfhycsIGRhdGFJbmRleDogJ25hbWUnLCBrZXk6ICduYW1lJywgcmVzcG9uc2l2ZTogWydzbSddIH0sXG4gICAgeyB0aXRsZTogJ+GelOGemuGet+GemeGetuGemScsIGRhdGFJbmRleDogJ2Rlc2NyaXB0aW9uJywga2V5OiAnZGVzY3JpcHRpb24nLCByZXNwb25zaXZlOiBbJ3NtJ10gfSxcbiAgICB7XG4gICAgICB0aXRsZTogJ0FjdGlvbicsXG4gICAgICBrZXk6ICdhY3Rpb24nLFxuICAgICAgcmVzcG9uc2l2ZTogWyd4cycsICdzbScsICdtZCcsICdsZyddLFxuICAgICAgcmVuZGVyOiAoXzogc3RyaW5nLCByZWNvcmQ6IGFueSkgPT4gKFxuICAgICAgICA8U3BhY2Ugc2l6ZT1cIm1pZGRsZVwiPlxuICAgICAgICAgIDxCdXR0b24gaWNvbj17PEVkaXRPdXRsaW5lZCAvPn0gdHlwZT1cInByaW1hcnlcIiBvbkNsaWNrPXsoKSA9PiBoYW5kbGVFZGl0KHJlY29yZC5pZCl9IC8+XG4gICAgICAgICAgPEJ1dHRvbiBpY29uPXs8RGVsZXRlT3V0bGluZWQgLz59IGRhbmdlciBvbkNsaWNrPXsoKSA9PiBoYW5kbGVEZWxldGUocmVjb3JkLmlkKX0gLz5cbiAgICAgICAgPC9TcGFjZT5cbiAgICAgICksXG4gICAgfSxcbiAgXTtcblxuICBjb25zdCBmaWx0ZXJlZERhdGEgPSAob3Bwb3J0dW5pdHlTb3VyY2VzIHx8IFtdKS5maWx0ZXIoKGl0KSA9PlxuICAgIGl0Lm5hbWU/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVGV4dC50b0xvd2VyQ2FzZSgpKVxuICApO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBzdHlsZT17eyBvdmVyZmxvd1g6ICdhdXRvJyB9fT5cbiAgICAgIDxoMj7hnpThnonhn5LhnofhnrjhnpThn5LhnprhnpfhnpbhnrHhnoDhnrbhnp88L2gyPlxuICAgICAgPGRpdlxuICAgICAgICBzdHlsZT17e1xuICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ3NwYWNlLWJldHdlZW4nLFxuICAgICAgICAgIHBhZGRpbmc6ICcxMHB4JyxcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAnI2Y1ZjVmNScsXG4gICAgICAgICAgbWFyZ2luQm90dG9tOiAnMTBweCcsXG4gICAgICAgICAgZmxleFdyYXA6ICd3cmFwJyxcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgPFNwYWNlIHdyYXA+XG4gICAgICAgICAgPHNwYW4+4Z6f4Z6a4Z674Z6UOiB7ZmlsdGVyZWREYXRhPy5sZW5ndGggfHwgMH08L3NwYW4+XG4gICAgICAgICAgPElucHV0XG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIuGen+GfkuGenOGfguGehOGemuGegC4uLlwiXG4gICAgICAgICAgICBzdHlsZT17eyB3aWR0aDogMjAwIH19XG4gICAgICAgICAgICB2YWx1ZT17c2VhcmNoVGV4dH1cbiAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gc2V0U2VhcmNoVGV4dChlLnRhcmdldC52YWx1ZSl9XG4gICAgICAgICAgLz5cbiAgICAgICAgICA8QnV0dG9uIG9uQ2xpY2s9e2hhbmRsZVNlYXJjaH0gdHlwZT1cInByaW1hcnlcIj7hnoXhnpjhn5Lhnprhn4Thn4c8L0J1dHRvbj5cbiAgICAgICAgICA8QnV0dG9uIG9uQ2xpY2s9e2hhbmRsZVJlc2V0fT7hnoDhn4bhno7hno/hn4vhnqHhnr7hnoThnpzhnrfhnok8L0J1dHRvbj5cbiAgICAgICAgPC9TcGFjZT5cbiAgICAgICAgPFNwYWNlIHdyYXA+XG4gICAgICAgICAgPEJ1dHRvbiBpY29uPXs8UGx1c091dGxpbmVkIC8+fSB0eXBlPVwicHJpbWFyeVwiIG9uQ2xpY2s9eygpID0+IG5hdmlnYXRlKGAvb3Bwb3J0dW5pdHktc291cmNlcy9mb3JtYCl9PuGelOGek+GfkuGekOGfguGemOGekOGfkuGemOGeuDwvQnV0dG9uPlxuICAgICAgICA8L1NwYWNlPlxuICAgICAgPC9kaXY+XG4gICAgICA8VGFibGVcbiAgICAgICAgcm93U2VsZWN0aW9uPXt7XG4gICAgICAgICAgdHlwZTogJ2NoZWNrYm94JyxcbiAgICAgICAgICBvbkNoYW5nZTogKF8sIHNlbGVjdGVkUm93cykgPT4gc2V0U2VsZWN0ZWRSb3dzKHNlbGVjdGVkUm93cyksXG4gICAgICAgIH19XG4gICAgICAgIGNvbHVtbnM9e2NvbHVtbnN9XG4gICAgICAgIGRhdGFTb3VyY2U9e2ZpbHRlcmVkRGF0YS5tYXAoKGl0LCBpbmRleCkgPT4gKHtcbiAgICAgICAgICBrZXk6IGl0LmlkLFxuICAgICAgICAgIGluZGV4OiBpbmRleCArIDEsXG4gICAgICAgICAgbmFtZTogaXQubmFtZSxcbiAgICAgICAgICAuLi5pdCxcbiAgICAgICAgfSkpfVxuICAgICAgICBwYWdpbmF0aW9uPXt7IHBhZ2VTaXplOiAxMCwgc2hvd1NpemVDaGFuZ2VyOiB0cnVlIH19XG4gICAgICAgIHNjcm9sbD17eyB4OiAnbWF4LWNvbnRlbnQnIH19XG4gICAgICAvPlxuICAgICAgPExvYWRpbmdEaWFsb2cgdmlzaWJsZT17b3Bwb3J0dW5pdHlTb3VyY2VzUGVuZGluZ30gLz5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IE9wcG9ydHVuaXR5U291cmNlTGlzdDtcbiIsImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgRm9ybSwgSW5wdXQsIEJ1dHRvbiwgUm93LCBDb2wsIG1lc3NhZ2UgfSBmcm9tICdhbnRkJztcbmltcG9ydCB7IFJvb3RTdGF0ZSB9IGZyb20gJy4uLy4uLy4uL3JlZHV4L3N0b3JlJztcbmltcG9ydCB7IHVzZURpc3BhdGNoLCB1c2VTZWxlY3RvciB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7IFByb3ZpbmNlIH0gZnJvbSAnQC9zaGFyZWQvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBjcmVhdGVQcm92aW5jZUFjdGlvbiwgcHJvdmluY2VEZXRhaWxBY3Rpb24sIHVwZGF0ZVByb3ZpbmNlQWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvcHJvdmluY2UvY29yZS9hY3Rpb25zJztcbmltcG9ydCB7IHVzZU5hdmlnYXRlIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQgVGV4dEFyZWEgZnJvbSAnYW50ZC9lcy9pbnB1dC9UZXh0QXJlYSc7XG5cbmNvbnN0IE5ld0VkaXRQcm92aW5jZVBhZ2U6IFJlYWN0LkZDID0gKCkgPT4ge1xuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG4gIGNvbnN0IG5hdmlnYXRlID0gdXNlTmF2aWdhdGUoKTtcbiAgY29uc3QgeyBwcm92aW5jZSwgcmVnaXN0ZXJFcnJvck1lc3NhZ2UsIHByb3ZpbmNlVXBkYXRlUGVuZGluZyB9ID0gdXNlU2VsZWN0b3IoXG4gICAgKHN0YXRlOiBSb290U3RhdGUpID0+IHN0YXRlLnByb3ZpbmNlXG4gICk7XG4gIGNvbnN0IFtmb3JtXSA9IEZvcm0udXNlRm9ybSgpO1xuXG4gIGNvbnN0IHNlYXJjaFBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMobG9jYXRpb24uc2VhcmNoKTtcbiAgY29uc3QgaWQgPSBzZWFyY2hQYXJhbXMuZ2V0KCdpZCcpO1xuXG4gIGNvbnN0IFtpc0NsaWNrLCBzZXRJc0NsaWNrXSA9IHVzZVN0YXRlKGZhbHNlKTtcblxuICAvLyDwn5GJIEZldGNoIGRhdGEgd2hlbiBlZGl0aW5nIG9yIHJlc2V0IGZvcm0gd2hlbiBhZGRpbmdcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaWQpIHtcbiAgICAgIGRpc3BhdGNoKHByb3ZpbmNlRGV0YWlsQWN0aW9uKE51bWJlcihpZCkpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZm9ybS5yZXNldEZpZWxkcygpOyAvLyBSZXNldCBmb3JtIGZpZWxkcyB3aGVuIGFkZGluZyBhIG5ldyBpdGVtXG4gICAgfVxuICB9LCBbZGlzcGF0Y2gsIGlkLCBmb3JtXSk7XG5cbiAgLy8g8J+RiSBQb3B1bGF0ZSBmb3JtIHdpdGggZmV0Y2hlZCBkYXRhXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlkICYmIHByb3ZpbmNlKSB7XG4gICAgICBmb3JtLnNldEZpZWxkc1ZhbHVlKHtcbiAgICAgICAgbmFtZTogcHJvdmluY2UubmFtZSB8fCAnJyxcbiAgICAgICAgZGVzY3JpcHRpb246IHByb3ZpbmNlLmRlc2NyaXB0aW9uIHx8ICcnLFxuICAgICAgfSk7XG4gICAgfVxuICB9LCBbcHJvdmluY2UsIGZvcm0sIGlkXSk7XG5cbiAgLy8g8J+RiSBTaG93IHN1Y2Nlc3Mgb3IgZXJyb3IgYWxlcnRzXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFwcm92aW5jZVVwZGF0ZVBlbmRpbmcgJiYgaXNDbGljaykge1xuICAgICAgaWYgKHJlZ2lzdGVyRXJyb3JNZXNzYWdlKSB7XG4gICAgICAgIG1lc3NhZ2UuZXJyb3IocmVnaXN0ZXJFcnJvck1lc3NhZ2UpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbWVzc2FnZS5zdWNjZXNzKGlkID8gJ1VwZGF0ZWQgc3VjY2Vzc2Z1bGx5IScgOiAnQ3JlYXRlZCBzdWNjZXNzZnVsbHkhJyk7XG4gICAgICAgIG5hdmlnYXRlKCcvcHJvdmluY2VzJyk7XG4gICAgICB9XG4gICAgfVxuICB9LCBbcHJvdmluY2VVcGRhdGVQZW5kaW5nLCByZWdpc3RlckVycm9yTWVzc2FnZSwgaWQsIGlzQ2xpY2ssIG5hdmlnYXRlXSk7XG5cbiAgLy8g8J+RiSBIYW5kbGUgZm9ybSBzdWJtaXRcbiAgY29uc3Qgb25GaW5pc2ggPSAodmFsdWVzOiBQcm92aW5jZSkgPT4ge1xuICAgIGlmIChpZCkge1xuICAgICAgZGlzcGF0Y2godXBkYXRlUHJvdmluY2VBY3Rpb24oeyBpZDogTnVtYmVyKGlkKSwgZGF0YTogdmFsdWVzIH0pKTtcbiAgICAgIGZvcm0ucmVzZXRGaWVsZHMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGlzcGF0Y2goY3JlYXRlUHJvdmluY2VBY3Rpb24oeyBkYXRhOiB2YWx1ZXMgfSkpO1xuICAgICAgZm9ybS5yZXNldEZpZWxkcygpOyAvLyBSZXNldCBmb3JtIGFmdGVyIHN1Y2Nlc3NmdWwgY3JlYXRpb25cbiAgICB9XG4gICAgc2V0SXNDbGljayh0cnVlKTtcbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8aDI+e2lkID8gJ+GegOGfguGelOGfkuGemuGfguGegeGfgeGej+GfkuGejycgOiAn4Z6U4Z6T4Z+S4Z6Q4Z+C4Z6Y4Z6Q4Z+S4Z6Y4Z644Z6B4Z+B4Z6P4Z+S4Z6PJ308L2gyPlxuICAgICAgPEZvcm0gZm9ybT17Zm9ybX0gbGF5b3V0PVwidmVydGljYWxcIiBvbkZpbmlzaD17b25GaW5pc2h9IHN0eWxlPXt7IG1heFdpZHRoOiAnMTAwJScsIG1hcmdpbjogJzAgYXV0bycgfX0+XG4gICAgICAgIDxSb3cgZ3V0dGVyPXtbMTIsIDEyXX0+XG4gICAgICAgICAgPENvbCBzcGFuPXsxMn0+XG4gICAgICAgICAgICA8Rm9ybS5JdGVtIGxhYmVsPVwi4Z6I4Z+S4Z6Y4Z+E4Z+HXCIgbmFtZT1cIm5hbWVcIiBydWxlcz17W3sgcmVxdWlyZWQ6IHRydWUsIG1lc3NhZ2U6ICdQbGVhc2UgZW50ZXIgYSBuYW1lJyB9XX0+XG4gICAgICAgICAgICAgIDxJbnB1dCAvPlxuICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XG4gICAgICAgICAgPC9Db2w+XG4gICAgICAgICAgPENvbCBzcGFuPXsxMn0+XG4gICAgICAgICAgICA8Rm9ybS5JdGVtIGxhYmVsPVwi4Z6U4Z6a4Z634Z6Z4Z624Z6ZXCIgbmFtZT1cImRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgICAgIDxUZXh0QXJlYSByb3dzPXszfSAvPlxuICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XG4gICAgICAgICAgPC9Db2w+XG4gICAgICAgIDwvUm93PlxuICAgICAgICA8Um93IGd1dHRlcj17WzEyLCAxMl19PlxuICAgICAgICAgIDxDb2wgc3Bhbj17M30+XG4gICAgICAgICAgICA8Rm9ybS5JdGVtPlxuICAgICAgICAgICAgICA8QnV0dG9uIHR5cGU9XCJwcmltYXJ5XCIgYmxvY2sgaHRtbFR5cGU9XCJzdWJtaXRcIiBsb2FkaW5nPXtwcm92aW5jZVVwZGF0ZVBlbmRpbmd9PlxuICAgICAgICAgICAgICAgIFN1Ym1pdFxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxuICAgICAgICAgIDwvQ29sPlxuICAgICAgICAgIDxDb2wgc3Bhbj17M30+XG4gICAgICAgICAgICA8Rm9ybS5JdGVtPlxuICAgICAgICAgICAgICA8QnV0dG9uIGh0bWxUeXBlPVwiYnV0dG9uXCIgb25DbGljaz17KCkgPT4gbmF2aWdhdGUoJy9wcm92aW5jZXMnKX0+XG4gICAgICAgICAgICAgICAgQ2FuY2VsXG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XG4gICAgICAgICAgPC9Db2w+XG4gICAgICAgIDwvUm93PlxuICAgICAgPC9Gb3JtPlxuICAgIDwvPlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgTmV3RWRpdFByb3ZpbmNlUGFnZTtcbiIsImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgQnV0dG9uLCBJbnB1dCwgU3BhY2UsIFRhYmxlIH0gZnJvbSAnYW50ZCc7XG5pbXBvcnQgeyB1c2VEaXNwYXRjaCwgdXNlU2VsZWN0b3IgfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQgeyBSb290U3RhdGUgfSBmcm9tICcuLi8uLi8uLi9yZWR1eC9zdG9yZSc7XG5pbXBvcnQgeyB1c2VOYXZpZ2F0ZSB9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nO1xuaW1wb3J0IExvYWRpbmdEaWFsb2cgZnJvbSAnLi4vLi4vLi4vY29udGFpbmVyL2RpYWxvZ3MvbG9hZGluZy1kaWFsb2cnO1xuaW1wb3J0IHsgRGVsZXRlT3V0bGluZWQsIEVkaXRPdXRsaW5lZCwgUGx1c091dGxpbmVkIH0gZnJvbSAnQGFudC1kZXNpZ24vaWNvbnMnO1xuaW1wb3J0IHsgZGVsZXRlUHJvdmluY2VBY3Rpb24sIHByb3ZpbmNlRGV0YWlsQWN0aW9uLCBmZXRjaFByb3ZpbmNlcyB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL3Byb3ZpbmNlL2NvcmUvYWN0aW9ucyc7XG5pbXBvcnQgU3dhbCBmcm9tICdzd2VldGFsZXJ0Mic7XG5cbmNvbnN0IFByb3ZpbmNlTGlzdCA9ICgpID0+IHtcbiAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xuICBjb25zdCBuYXZpZ2F0ZSA9IHVzZU5hdmlnYXRlKCk7XG4gIGNvbnN0IFtzZWxlY3RlZFJvd3MsIHNldFNlbGVjdGVkUm93c10gPSB1c2VTdGF0ZTxhbnk+KFtdKTtcbiAgY29uc3QgW3NlYXJjaFRleHQsIHNldFNlYXJjaFRleHRdID0gdXNlU3RhdGUoJycpO1xuICBjb25zdCB7IHByb3ZpbmNlcywgcHJvdmluY2VzUGVuZGluZyB9ID0gdXNlU2VsZWN0b3IoKHN0YXRlOiBSb290U3RhdGUpID0+IHN0YXRlLnByb3ZpbmNlKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGRpc3BhdGNoKGZldGNoUHJvdmluY2VzKCkpO1xuICB9LCBbZGlzcGF0Y2hdKTtcblxuICBjb25zdCBoYW5kbGVFZGl0ID0gKGlkOiBhbnkpID0+IHtcbiAgICBkaXNwYXRjaChwcm92aW5jZURldGFpbEFjdGlvbihpZCkpO1xuICAgIG5hdmlnYXRlKGAvcHJvdmluY2VzL2Zvcm0/aWQ9JHtpZH1gKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVEZWxldGUgPSAoaWQ6IGFueSkgPT4ge1xuICAgIFN3YWwuZmlyZSh7XG4gICAgICB0aXRsZTogJ0FyZSB5b3Ugc3VyZT8nLFxuICAgICAgdGV4dDogJ1lvdSB3b25cXCd0IGJlIGFibGUgdG8gcmV2ZXJ0IHRoaXMhJyxcbiAgICAgIGljb246ICd3YXJuaW5nJyxcbiAgICAgIHNob3dDb25maXJtQnV0dG9uOiBmYWxzZSxcbiAgICAgIHNob3dDYW5jZWxCdXR0b246IGZhbHNlLFxuICAgICAgaHRtbDogYFxuICAgICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IGdhcDogMTBweDsgbWFyZ2luLXRvcDogMjBweDtcIj5cbiAgICAgICAgICA8YnV0dG9uIGlkPVwiY29uZmlybS1kZWxldGVcIiBjbGFzcz1cInN3YWwyLWNvbmZpcm0gc3dhbDItc3R5bGVkXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiAjZDMzO1wiPkRlbGV0ZTwvYnV0dG9uPlxuICAgICAgICAgIDxidXR0b24gaWQ9XCJjYW5jZWwtZGVsZXRlXCIgY2xhc3M9XCJzd2FsMi1jYW5jZWwgc3dhbDItc3R5bGVkXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiAjMzA4NWQ2O1wiPkNhbmNlbDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIGAsXG4gICAgICBkaWRPcGVuOiAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbmZpcm1CdXR0b24gPSBTd2FsLmdldFBvcHVwKCk/LnF1ZXJ5U2VsZWN0b3IoJyNjb25maXJtLWRlbGV0ZScpO1xuICAgICAgICBjb25zdCBjYW5jZWxCdXR0b24gPSBTd2FsLmdldFBvcHVwKCk/LnF1ZXJ5U2VsZWN0b3IoJyNjYW5jZWwtZGVsZXRlJyk7XG5cbiAgICAgICAgY29uZmlybUJ1dHRvbj8uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XG4gICAgICAgICAgZGlzcGF0Y2goZGVsZXRlUHJvdmluY2VBY3Rpb24oaWQpKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIFN3YWwuZmlyZSgnRGVsZXRlZCEnLCAnVGhlIGl0ZW0gaGFzIGJlZW4gZGVsZXRlZC4nLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgZGlzcGF0Y2goZmV0Y2hQcm92aW5jZXMoKSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgU3dhbC5jbG9zZSgpO1xuICAgICAgICB9KTtcblxuICAgICAgICBjYW5jZWxCdXR0b24/LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgICAgIFN3YWwuY2xvc2UoKTtcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVNlYXJjaCA9ICgpID0+IHtcbiAgICAvLyBUcmlnZ2VycyBzZWFyY2ggYnkgc2V0dGluZyBzdGF0ZVxuICAgIHNldFNlYXJjaFRleHQoc2VhcmNoVGV4dC50cmltKCkpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVJlc2V0ID0gKCkgPT4ge1xuICAgIC8vIENsZWFycyBpbnB1dCBhbmQgc2hvd3MgYWxsIGRhdGFcbiAgICBzZXRTZWFyY2hUZXh0KCcnKTtcbiAgfTtcblxuICBjb25zdCBjb2x1bW5zID0gW1xuICAgIHsgdGl0bGU6ICfhnpvhn4HhnoHhnprhn4DhnoQnLCBkYXRhSW5kZXg6ICdpbmRleCcsIGtleTogJ2luZGV4JywgcmVzcG9uc2l2ZTogWydzbSddIH0sXG4gICAgeyB0aXRsZTogJ+GeiOGfkuGemOGfhOGfhycsIGRhdGFJbmRleDogJ25hbWUnLCBrZXk6ICduYW1lJywgcmVzcG9uc2l2ZTogWydzbSddIH0sXG4gICAgeyB0aXRsZTogJ+GelOGemuGet+GemeGetuGemScsIGRhdGFJbmRleDogJ2Rlc2NyaXB0aW9uJywga2V5OiAnZGVzY3JpcHRpb24nLCByZXNwb25zaXZlOiBbJ3NtJ10gfSxcbiAgICB7XG4gICAgICB0aXRsZTogJ0FjdGlvbicsXG4gICAgICBrZXk6ICdhY3Rpb24nLFxuICAgICAgcmVzcG9uc2l2ZTogWyd4cycsICdzbScsICdtZCcsICdsZyddLFxuICAgICAgcmVuZGVyOiAoXzogc3RyaW5nLCByZWNvcmQ6IGFueSkgPT4gKFxuICAgICAgICA8U3BhY2Ugc2l6ZT1cIm1pZGRsZVwiPlxuICAgICAgICAgIDxCdXR0b24gaWNvbj17PEVkaXRPdXRsaW5lZCAvPn0gdHlwZT1cInByaW1hcnlcIiBvbkNsaWNrPXsoKSA9PiBoYW5kbGVFZGl0KHJlY29yZC5pZCl9IC8+XG4gICAgICAgICAgPEJ1dHRvbiBpY29uPXs8RGVsZXRlT3V0bGluZWQgLz59IGRhbmdlciBvbkNsaWNrPXsoKSA9PiBoYW5kbGVEZWxldGUocmVjb3JkLmlkKX0gLz5cbiAgICAgICAgPC9TcGFjZT5cbiAgICAgICksXG4gICAgfSxcbiAgXTtcblxuICBjb25zdCBmaWx0ZXJlZERhdGEgPSAocHJvdmluY2VzIHx8IFtdKS5maWx0ZXIoKGl0KSA9PlxuICAgIGl0Lm5hbWU/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVGV4dC50b0xvd2VyQ2FzZSgpKVxuICApO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBzdHlsZT17eyBvdmVyZmxvd1g6ICdhdXRvJyB9fT5cbiAgICAgIDxoMj7hnpThnonhn5LhnofhnrjhnoHhn4Hhno/hn5Lhno88L2gyPlxuICAgICAgPGRpdlxuICAgICAgICBzdHlsZT17e1xuICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ3NwYWNlLWJldHdlZW4nLFxuICAgICAgICAgIHBhZGRpbmc6ICcxMHB4JyxcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAnI2Y1ZjVmNScsXG4gICAgICAgICAgbWFyZ2luQm90dG9tOiAnMTBweCcsXG4gICAgICAgICAgZmxleFdyYXA6ICd3cmFwJyxcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgPFNwYWNlIHdyYXA+XG4gICAgICAgICAgPHNwYW4+4Z6f4Z6a4Z674Z6UOiB7ZmlsdGVyZWREYXRhPy5sZW5ndGggfHwgMH08L3NwYW4+XG4gICAgICAgICAgPElucHV0XG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIuGen+GfkuGenOGfguGehOGemuGegC4uLlwiXG4gICAgICAgICAgICBzdHlsZT17eyB3aWR0aDogMjAwIH19XG4gICAgICAgICAgICB2YWx1ZT17c2VhcmNoVGV4dH1cbiAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gc2V0U2VhcmNoVGV4dChlLnRhcmdldC52YWx1ZSl9XG4gICAgICAgICAgLz5cbiAgICAgICAgICA8QnV0dG9uIG9uQ2xpY2s9e2hhbmRsZVNlYXJjaH0gdHlwZT1cInByaW1hcnlcIj7hnoXhnpjhn5Lhnprhn4Thn4c8L0J1dHRvbj5cbiAgICAgICAgICA8QnV0dG9uIG9uQ2xpY2s9e2hhbmRsZVJlc2V0fT7hnoDhn4bhno7hno/hn4vhnqHhnr7hnoThnpzhnrfhnok8L0J1dHRvbj5cbiAgICAgICAgPC9TcGFjZT5cbiAgICAgICAgPFNwYWNlIHdyYXA+XG4gICAgICAgICAgPEJ1dHRvbiBpY29uPXs8UGx1c091dGxpbmVkIC8+fSB0eXBlPVwicHJpbWFyeVwiIG9uQ2xpY2s9eygpID0+IG5hdmlnYXRlKGAvcHJvdmluY2VzL2Zvcm1gKX0+4Z6U4Z6T4Z+S4Z6Q4Z+C4Z6Y4Z6Q4Z+S4Z6Y4Z64PC9CdXR0b24+XG4gICAgICAgIDwvU3BhY2U+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxUYWJsZVxuICAgICAgICByb3dTZWxlY3Rpb249e3tcbiAgICAgICAgICB0eXBlOiAnY2hlY2tib3gnLFxuICAgICAgICAgIG9uQ2hhbmdlOiAoXywgc2VsZWN0ZWRSb3dzKSA9PiBzZXRTZWxlY3RlZFJvd3Moc2VsZWN0ZWRSb3dzKSxcbiAgICAgICAgfX1cbiAgICAgICAgY29sdW1ucz17Y29sdW1uc31cbiAgICAgICAgZGF0YVNvdXJjZT17ZmlsdGVyZWREYXRhLm1hcCgoaXQsIGluZGV4KSA9PiAoe1xuICAgICAgICAgIGtleTogaXQuaWQsXG4gICAgICAgICAgaW5kZXg6IGluZGV4ICsgMSxcbiAgICAgICAgICBuYW1lOiBpdC5uYW1lLFxuICAgICAgICAgIC4uLml0LFxuICAgICAgICB9KSl9XG4gICAgICAgIHBhZ2luYXRpb249e3sgcGFnZVNpemU6IDEwLCBzaG93U2l6ZUNoYW5nZXI6IHRydWUgfX1cbiAgICAgICAgc2Nyb2xsPXt7IHg6ICdtYXgtY29udGVudCcgfX1cbiAgICAgIC8+XG4gICAgICA8TG9hZGluZ0RpYWxvZyB2aXNpYmxlPXtwcm92aW5jZXNQZW5kaW5nfSAvPlxuICAgIDwvZGl2PlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgUHJvdmluY2VMaXN0O1xuIiwiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBGb3JtLCBJbnB1dCwgQnV0dG9uLCBSb3csIENvbCwgbWVzc2FnZSB9IGZyb20gJ2FudGQnO1xuaW1wb3J0IHsgUm9vdFN0YXRlIH0gZnJvbSAnLi4vLi4vLi4vcmVkdXgvc3RvcmUnO1xuaW1wb3J0IHsgdXNlRGlzcGF0Y2gsIHVzZVNlbGVjdG9yIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHsgU2tpbGwgfSBmcm9tICdAL3NoYXJlZC9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGNyZWF0ZVNraWxsQWN0aW9uLCBza2lsbERldGFpbEFjdGlvbiwgdXBkYXRlU2tpbGxBY3Rpb24gfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9za2lsbC9jb3JlL2FjdGlvbnMnO1xuaW1wb3J0IHsgdXNlTmF2aWdhdGUgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCBUZXh0QXJlYSBmcm9tICdhbnRkL2VzL2lucHV0L1RleHRBcmVhJztcblxuY29uc3QgTmV3RWRpdFNraWxsUGFnZTogUmVhY3QuRkMgPSAoKSA9PiB7XG4gIGNvbnN0IGRpc3BhdGNoID0gdXNlRGlzcGF0Y2goKTtcbiAgY29uc3QgbmF2aWdhdGUgPSB1c2VOYXZpZ2F0ZSgpO1xuICBjb25zdCB7IHNraWxsLCByZWdpc3RlckVycm9yTWVzc2FnZSwgc2tpbGxVcGRhdGVQZW5kaW5nIH0gPSB1c2VTZWxlY3RvcihcbiAgICAoc3RhdGU6IFJvb3RTdGF0ZSkgPT4gc3RhdGUuc2tpbGxcbiAgKTtcbiAgY29uc3QgW2Zvcm1dID0gRm9ybS51c2VGb3JtKCk7XG5cbiAgY29uc3Qgc2VhcmNoUGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyhsb2NhdGlvbi5zZWFyY2gpO1xuICBjb25zdCBpZCA9IHNlYXJjaFBhcmFtcy5nZXQoJ2lkJyk7XG5cbiAgY29uc3QgW2lzQ2xpY2ssIHNldElzQ2xpY2tdID0gdXNlU3RhdGUoZmFsc2UpO1xuXG4gIC8vIPCfkYkgRmV0Y2ggZGF0YSB3aGVuIGVkaXRpbmcgb3IgcmVzZXQgZm9ybSB3aGVuIGFkZGluZ1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChpZCkge1xuICAgICAgZGlzcGF0Y2goc2tpbGxEZXRhaWxBY3Rpb24oTnVtYmVyKGlkKSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBmb3JtLnJlc2V0RmllbGRzKCk7IC8vIFJlc2V0IGZvcm0gZmllbGRzIHdoZW4gYWRkaW5nIGEgbmV3IGl0ZW1cbiAgICB9XG4gIH0sIFtkaXNwYXRjaCwgaWQsIGZvcm1dKTtcblxuICAvLyDwn5GJIFBvcHVsYXRlIGZvcm0gd2l0aCBmZXRjaGVkIGRhdGFcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaWQgJiYgc2tpbGwpIHtcbiAgICAgIGZvcm0uc2V0RmllbGRzVmFsdWUoe1xuICAgICAgICBuYW1lOiBza2lsbC5uYW1lIHx8ICcnLFxuICAgICAgICBkZXNjcmlwdGlvbjogc2tpbGwuZGVzY3JpcHRpb24gfHwgJycsXG4gICAgICB9KTtcbiAgICB9XG4gIH0sIFtza2lsbCwgZm9ybSwgaWRdKTtcblxuICAvLyDwn5GJIFNob3cgc3VjY2VzcyBvciBlcnJvciBhbGVydHNcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIXNraWxsVXBkYXRlUGVuZGluZyAmJiBpc0NsaWNrKSB7XG4gICAgICBpZiAocmVnaXN0ZXJFcnJvck1lc3NhZ2UpIHtcbiAgICAgICAgbWVzc2FnZS5lcnJvcihyZWdpc3RlckVycm9yTWVzc2FnZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBtZXNzYWdlLnN1Y2Nlc3MoaWQgPyAnVXBkYXRlZCBzdWNjZXNzZnVsbHkhJyA6ICdDcmVhdGVkIHN1Y2Nlc3NmdWxseSEnKTtcbiAgICAgICAgbmF2aWdhdGUoJy9za2lsbHMnKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIFtza2lsbFVwZGF0ZVBlbmRpbmcsIHJlZ2lzdGVyRXJyb3JNZXNzYWdlLCBpZCwgaXNDbGljaywgbmF2aWdhdGVdKTtcblxuICAvLyDwn5GJIEhhbmRsZSBmb3JtIHN1Ym1pdFxuICBjb25zdCBvbkZpbmlzaCA9ICh2YWx1ZXM6IFNraWxsKSA9PiB7XG4gICAgaWYgKGlkKSB7XG4gICAgICBkaXNwYXRjaCh1cGRhdGVTa2lsbEFjdGlvbih7IGlkOiBOdW1iZXIoaWQpLCBkYXRhOiB2YWx1ZXMgfSkpO1xuICAgICAgZm9ybS5yZXNldEZpZWxkcygpO1xuICAgIH0gZWxzZSB7XG4gICAgICBkaXNwYXRjaChjcmVhdGVTa2lsbEFjdGlvbih7IGRhdGE6IHZhbHVlcyB9KSk7XG4gICAgICBmb3JtLnJlc2V0RmllbGRzKCk7IC8vIFJlc2V0IGZvcm0gYWZ0ZXIgc3VjY2Vzc2Z1bCBjcmVhdGlvblxuICAgIH1cbiAgICBzZXRJc0NsaWNrKHRydWUpO1xuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxoMj57aWQgPyAn4Z6A4Z+C4Z6U4Z+S4Z6a4Z+C4Z6H4Z+G4Z6T4Z624Z6JJyA6ICfhnpThnpPhn5LhnpDhn4LhnpjhnpDhn5Lhnpjhnrjhnofhn4bhnpPhnrbhnoknfTwvaDI+XG4gICAgICA8Rm9ybSBmb3JtPXtmb3JtfSBsYXlvdXQ9XCJ2ZXJ0aWNhbFwiIG9uRmluaXNoPXtvbkZpbmlzaH0gc3R5bGU9e3sgbWF4V2lkdGg6ICcxMDAlJywgbWFyZ2luOiAnMCBhdXRvJyB9fT5cbiAgICAgICAgPFJvdyBndXR0ZXI9e1sxMiwgMTJdfT5cbiAgICAgICAgICA8Q29sIHNwYW49ezEyfT5cbiAgICAgICAgICAgIDxGb3JtLkl0ZW0gbGFiZWw9XCLhnojhn5Lhnpjhn4Thn4dcIiBuYW1lPVwibmFtZVwiIHJ1bGVzPXtbeyByZXF1aXJlZDogdHJ1ZSwgbWVzc2FnZTogJ1BsZWFzZSBlbnRlciBhIG5hbWUnIH1dfT5cbiAgICAgICAgICAgICAgPElucHV0IC8+XG4gICAgICAgICAgICA8L0Zvcm0uSXRlbT5cbiAgICAgICAgICA8L0NvbD5cbiAgICAgICAgICA8Q29sIHNwYW49ezEyfT5cbiAgICAgICAgICAgIDxGb3JtLkl0ZW0gbGFiZWw9XCLhnpThnprhnrfhnpnhnrbhnplcIiBuYW1lPVwiZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICAgICAgPFRleHRBcmVhIHJvd3M9ezN9IC8+XG4gICAgICAgICAgICA8L0Zvcm0uSXRlbT5cbiAgICAgICAgICA8L0NvbD5cbiAgICAgICAgPC9Sb3c+XG4gICAgICAgIDxSb3cgZ3V0dGVyPXtbMTIsIDEyXX0+XG4gICAgICAgICAgPENvbCBzcGFuPXszfT5cbiAgICAgICAgICAgIDxGb3JtLkl0ZW0+XG4gICAgICAgICAgICAgIDxCdXR0b24gdHlwZT1cInByaW1hcnlcIiBibG9jayBodG1sVHlwZT1cInN1Ym1pdFwiIGxvYWRpbmc9e3NraWxsVXBkYXRlUGVuZGluZ30+XG4gICAgICAgICAgICAgICAgU3VibWl0XG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XG4gICAgICAgICAgPC9Db2w+XG4gICAgICAgICAgPENvbCBzcGFuPXszfT5cbiAgICAgICAgICAgIDxGb3JtLkl0ZW0+XG4gICAgICAgICAgICAgIDxCdXR0b24gaHRtbFR5cGU9XCJidXR0b25cIiBvbkNsaWNrPXsoKSA9PiBuYXZpZ2F0ZSgnL3NraWxscycpfT5cbiAgICAgICAgICAgICAgICBDYW5jZWxcbiAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICA8L0Zvcm0uSXRlbT5cbiAgICAgICAgICA8L0NvbD5cbiAgICAgICAgPC9Sb3c+XG4gICAgICA8L0Zvcm0+XG4gICAgPC8+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBOZXdFZGl0U2tpbGxQYWdlO1xuIiwiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBCdXR0b24sIElucHV0LCBTcGFjZSwgVGFibGUgfSBmcm9tICdhbnRkJztcbmltcG9ydCB7IHVzZURpc3BhdGNoLCB1c2VTZWxlY3RvciB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7IFJvb3RTdGF0ZSB9IGZyb20gJy4uLy4uLy4uL3JlZHV4L3N0b3JlJztcbmltcG9ydCB7IHVzZU5hdmlnYXRlIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQgTG9hZGluZ0RpYWxvZyBmcm9tICcuLi8uLi8uLi9jb250YWluZXIvZGlhbG9ncy9sb2FkaW5nLWRpYWxvZyc7XG5pbXBvcnQgeyBEZWxldGVPdXRsaW5lZCwgRWRpdE91dGxpbmVkLCBQbHVzT3V0bGluZWQgfSBmcm9tICdAYW50LWRlc2lnbi9pY29ucyc7XG5pbXBvcnQgeyBkZWxldGVTa2lsbEFjdGlvbiwgc2tpbGxEZXRhaWxBY3Rpb24sIGZldGNoU2tpbGxzIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvc2tpbGwvY29yZS9hY3Rpb25zJztcbmltcG9ydCBTd2FsIGZyb20gJ3N3ZWV0YWxlcnQyJztcblxuY29uc3QgU2tpbGxMaXN0ID0gKCkgPT4ge1xuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG4gIGNvbnN0IG5hdmlnYXRlID0gdXNlTmF2aWdhdGUoKTtcbiAgY29uc3QgW3NlbGVjdGVkUm93cywgc2V0U2VsZWN0ZWRSb3dzXSA9IHVzZVN0YXRlPGFueT4oW10pO1xuICBjb25zdCBbc2VhcmNoVGV4dCwgc2V0U2VhcmNoVGV4dF0gPSB1c2VTdGF0ZSgnJyk7XG4gIGNvbnN0IHsgc2tpbGxzLCBza2lsbHNQZW5kaW5nIH0gPSB1c2VTZWxlY3Rvcigoc3RhdGU6IFJvb3RTdGF0ZSkgPT4gc3RhdGUuc2tpbGwpO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgZGlzcGF0Y2goZmV0Y2hTa2lsbHMoKSk7XG4gIH0sIFtkaXNwYXRjaF0pO1xuXG4gIGNvbnN0IGhhbmRsZUVkaXQgPSAoaWQ6IGFueSkgPT4ge1xuICAgIGRpc3BhdGNoKHNraWxsRGV0YWlsQWN0aW9uKGlkKSk7XG4gICAgbmF2aWdhdGUoYC9za2lsbHMvZm9ybT9pZD0ke2lkfWApO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZURlbGV0ZSA9IChpZDogYW55KSA9PiB7XG4gICAgU3dhbC5maXJlKHtcbiAgICAgIHRpdGxlOiAnQXJlIHlvdSBzdXJlPycsXG4gICAgICB0ZXh0OiAnWW91IHdvblxcJ3QgYmUgYWJsZSB0byByZXZlcnQgdGhpcyEnLFxuICAgICAgaWNvbjogJ3dhcm5pbmcnLFxuICAgICAgc2hvd0NvbmZpcm1CdXR0b246IGZhbHNlLFxuICAgICAgc2hvd0NhbmNlbEJ1dHRvbjogZmFsc2UsXG4gICAgICBodG1sOiBgXG4gICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgZ2FwOiAxMHB4OyBtYXJnaW4tdG9wOiAyMHB4O1wiPlxuICAgICAgICAgIDxidXR0b24gaWQ9XCJjb25maXJtLWRlbGV0ZVwiIGNsYXNzPVwic3dhbDItY29uZmlybSBzd2FsMi1zdHlsZWRcIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6ICNkMzM7XCI+RGVsZXRlPC9idXR0b24+XG4gICAgICAgICAgPGJ1dHRvbiBpZD1cImNhbmNlbC1kZWxldGVcIiBjbGFzcz1cInN3YWwyLWNhbmNlbCBzd2FsMi1zdHlsZWRcIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6ICMzMDg1ZDY7XCI+Q2FuY2VsPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgYCxcbiAgICAgIGRpZE9wZW46ICgpID0+IHtcbiAgICAgICAgY29uc3QgY29uZmlybUJ1dHRvbiA9IFN3YWwuZ2V0UG9wdXAoKT8ucXVlcnlTZWxlY3RvcignI2NvbmZpcm0tZGVsZXRlJyk7XG4gICAgICAgIGNvbnN0IGNhbmNlbEJ1dHRvbiA9IFN3YWwuZ2V0UG9wdXAoKT8ucXVlcnlTZWxlY3RvcignI2NhbmNlbC1kZWxldGUnKTtcblxuICAgICAgICBjb25maXJtQnV0dG9uPy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcbiAgICAgICAgICBkaXNwYXRjaChkZWxldGVTa2lsbEFjdGlvbihpZCkpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgU3dhbC5maXJlKCdEZWxldGVkIScsICdUaGUgaXRlbSBoYXMgYmVlbiBkZWxldGVkLicsICdzdWNjZXNzJyk7XG4gICAgICAgICAgICBkaXNwYXRjaChmZXRjaFNraWxscygpKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBTd2FsLmNsb3NlKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNhbmNlbEJ1dHRvbj8uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XG4gICAgICAgICAgU3dhbC5jbG9zZSgpO1xuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlU2VhcmNoID0gKCkgPT4ge1xuICAgIC8vIFRyaWdnZXJzIHNlYXJjaCBieSBzZXR0aW5nIHN0YXRlXG4gICAgc2V0U2VhcmNoVGV4dChzZWFyY2hUZXh0LnRyaW0oKSk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlUmVzZXQgPSAoKSA9PiB7XG4gICAgLy8gQ2xlYXJzIGlucHV0IGFuZCBzaG93cyBhbGwgZGF0YVxuICAgIHNldFNlYXJjaFRleHQoJycpO1xuICB9O1xuXG4gIGNvbnN0IGNvbHVtbnMgPSBbXG4gICAgeyB0aXRsZTogJ+Gem+GfgeGegeGemuGfgOGehCcsIGRhdGFJbmRleDogJ2luZGV4Jywga2V5OiAnaW5kZXgnLCByZXNwb25zaXZlOiBbJ3NtJ10gfSxcbiAgICB7IHRpdGxlOiAn4Z6I4Z+S4Z6Y4Z+E4Z+HJywgZGF0YUluZGV4OiAnbmFtZScsIGtleTogJ25hbWUnLCByZXNwb25zaXZlOiBbJ3NtJ10gfSxcbiAgICB7IHRpdGxlOiAn4Z6U4Z6a4Z634Z6Z4Z624Z6ZJywgZGF0YUluZGV4OiAnZGVzY3JpcHRpb24nLCBrZXk6ICdkZXNjcmlwdGlvbicsIHJlc3BvbnNpdmU6IFsnc20nXSB9LFxuICAgIHtcbiAgICAgIHRpdGxlOiAnQWN0aW9uJyxcbiAgICAgIGtleTogJ2FjdGlvbicsXG4gICAgICByZXNwb25zaXZlOiBbJ3hzJywgJ3NtJywgJ21kJywgJ2xnJ10sXG4gICAgICByZW5kZXI6IChfOiBzdHJpbmcsIHJlY29yZDogYW55KSA9PiAoXG4gICAgICAgIDxTcGFjZSBzaXplPVwibWlkZGxlXCI+XG4gICAgICAgICAgPEJ1dHRvbiBpY29uPXs8RWRpdE91dGxpbmVkIC8+fSB0eXBlPVwicHJpbWFyeVwiIG9uQ2xpY2s9eygpID0+IGhhbmRsZUVkaXQocmVjb3JkLmlkKX0gLz5cbiAgICAgICAgICA8QnV0dG9uIGljb249ezxEZWxldGVPdXRsaW5lZCAvPn0gZGFuZ2VyIG9uQ2xpY2s9eygpID0+IGhhbmRsZURlbGV0ZShyZWNvcmQuaWQpfSAvPlxuICAgICAgICA8L1NwYWNlPlxuICAgICAgKSxcbiAgICB9LFxuICBdO1xuXG4gIGNvbnN0IGZpbHRlcmVkRGF0YSA9IChza2lsbHMgfHwgW10pLmZpbHRlcigoaXQpID0+XG4gICAgaXQubmFtZT8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2hUZXh0LnRvTG93ZXJDYXNlKCkpXG4gICk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IHN0eWxlPXt7IG92ZXJmbG93WDogJ2F1dG8nIH19PlxuICAgICAgPGgyPuGelOGeieGfkuGeh+GeuOGeh+GfhuGek+GetuGeiTwvaDI+XG4gICAgICA8ZGl2XG4gICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgICAgIGp1c3RpZnlDb250ZW50OiAnc3BhY2UtYmV0d2VlbicsXG4gICAgICAgICAgcGFkZGluZzogJzEwcHgnLFxuICAgICAgICAgIGJhY2tncm91bmQ6ICcjZjVmNWY1JyxcbiAgICAgICAgICBtYXJnaW5Cb3R0b206ICcxMHB4JyxcbiAgICAgICAgICBmbGV4V3JhcDogJ3dyYXAnLFxuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICA8U3BhY2Ugd3JhcD5cbiAgICAgICAgICA8c3Bhbj7hnp/hnprhnrvhnpQ6IHtmaWx0ZXJlZERhdGE/Lmxlbmd0aCB8fCAwfTwvc3Bhbj5cbiAgICAgICAgICA8SW5wdXRcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwi4Z6f4Z+S4Z6c4Z+C4Z6E4Z6a4Z6ALi4uXCJcbiAgICAgICAgICAgIHN0eWxlPXt7IHdpZHRoOiAyMDAgfX1cbiAgICAgICAgICAgIHZhbHVlPXtzZWFyY2hUZXh0fVxuICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBzZXRTZWFyY2hUZXh0KGUudGFyZ2V0LnZhbHVlKX1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxCdXR0b24gb25DbGljaz17aGFuZGxlU2VhcmNofSB0eXBlPVwicHJpbWFyeVwiPuGeheGemOGfkuGemuGfhOGfhzwvQnV0dG9uPlxuICAgICAgICAgIDxCdXR0b24gb25DbGljaz17aGFuZGxlUmVzZXR9PuGegOGfhuGejuGej+Gfi+GeoeGevuGehOGenOGet+GeiTwvQnV0dG9uPlxuICAgICAgICA8L1NwYWNlPlxuICAgICAgICA8U3BhY2Ugd3JhcD5cbiAgICAgICAgICA8QnV0dG9uIGljb249ezxQbHVzT3V0bGluZWQgLz59IHR5cGU9XCJwcmltYXJ5XCIgb25DbGljaz17KCkgPT4gbmF2aWdhdGUoYC9za2lsbHMvZm9ybWApfT7hnpThnpPhn5LhnpDhn4LhnpjhnpDhn5Lhnpjhnrg8L0J1dHRvbj5cbiAgICAgICAgPC9TcGFjZT5cbiAgICAgIDwvZGl2PlxuICAgICAgPFRhYmxlXG4gICAgICAgIHJvd1NlbGVjdGlvbj17e1xuICAgICAgICAgIHR5cGU6ICdjaGVja2JveCcsXG4gICAgICAgICAgb25DaGFuZ2U6IChfLCBzZWxlY3RlZFJvd3MpID0+IHNldFNlbGVjdGVkUm93cyhzZWxlY3RlZFJvd3MpLFxuICAgICAgICB9fVxuICAgICAgICBjb2x1bW5zPXtjb2x1bW5zfVxuICAgICAgICBkYXRhU291cmNlPXtmaWx0ZXJlZERhdGEubWFwKChpdCwgaW5kZXgpID0+ICh7XG4gICAgICAgICAga2V5OiBpdC5pZCxcbiAgICAgICAgICBpbmRleDogaW5kZXggKyAxLFxuICAgICAgICAgIG5hbWU6IGl0Lm5hbWUsXG4gICAgICAgICAgLi4uaXQsXG4gICAgICAgIH0pKX1cbiAgICAgICAgcGFnaW5hdGlvbj17eyBwYWdlU2l6ZTogMTAsIHNob3dTaXplQ2hhbmdlcjogdHJ1ZSB9fVxuICAgICAgICBzY3JvbGw9e3sgeDogJ21heC1jb250ZW50JyB9fVxuICAgICAgLz5cbiAgICAgIDxMb2FkaW5nRGlhbG9nIHZpc2libGU9e3NraWxsc1BlbmRpbmd9IC8+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBTa2lsbExpc3Q7XG4iLCJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEZvcm0sIElucHV0LCBCdXR0b24sIFJvdywgQ29sLCBtZXNzYWdlIH0gZnJvbSAnYW50ZCc7XG5pbXBvcnQgeyBSb290U3RhdGUgfSBmcm9tICcuLi8uLi8uLi9yZWR1eC9zdG9yZSc7XG5pbXBvcnQgeyB1c2VEaXNwYXRjaCwgdXNlU2VsZWN0b3IgfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQgeyBUZXJtc0NvbmRpdGlvbiB9IGZyb20gJ0Avc2hhcmVkL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgY3JlYXRlVGVybXNDb25kaXRpb25BY3Rpb24sIHRlcm1zQ29uZGl0aW9uRGV0YWlsQWN0aW9uLCB1cGRhdGVUZXJtc0NvbmRpdGlvbkFjdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL3Rlcm1zX2NvbmRpdGlvbi9jb3JlL2FjdGlvbnMnO1xuaW1wb3J0IHsgdXNlTmF2aWdhdGUgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCBUZXh0QXJlYSBmcm9tICdhbnRkL2VzL2lucHV0L1RleHRBcmVhJztcblxuY29uc3QgTmV3RWRpdFRlcm1zQ29uZGl0aW9uUGFnZTogUmVhY3QuRkMgPSAoKSA9PiB7XG4gIGNvbnN0IGRpc3BhdGNoID0gdXNlRGlzcGF0Y2goKTtcbiAgY29uc3QgbmF2aWdhdGUgPSB1c2VOYXZpZ2F0ZSgpO1xuICBjb25zdCB7IHRlcm1zQ29uZGl0aW9uLCByZWdpc3RlckVycm9yTWVzc2FnZSwgdGVybXNDb25kaXRpb25VcGRhdGVQZW5kaW5nIH0gPSB1c2VTZWxlY3RvcihcbiAgICAoc3RhdGU6IFJvb3RTdGF0ZSkgPT4gc3RhdGUudGVybXNDb25kaXRpb25cbiAgKTtcbiAgY29uc3QgW2Zvcm1dID0gRm9ybS51c2VGb3JtKCk7XG5cbiAgY29uc3Qgc2VhcmNoUGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyhsb2NhdGlvbi5zZWFyY2gpO1xuICBjb25zdCBpZCA9IHNlYXJjaFBhcmFtcy5nZXQoJ2lkJyk7XG5cbiAgY29uc3QgW2lzQ2xpY2ssIHNldElzQ2xpY2tdID0gdXNlU3RhdGUoZmFsc2UpO1xuXG4gIC8vIPCfkYkgRmV0Y2ggZGF0YSB3aGVuIGVkaXRpbmcgb3IgcmVzZXQgZm9ybSB3aGVuIGFkZGluZ1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChpZCkge1xuICAgICAgZGlzcGF0Y2godGVybXNDb25kaXRpb25EZXRhaWxBY3Rpb24oTnVtYmVyKGlkKSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBmb3JtLnJlc2V0RmllbGRzKCk7IC8vIFJlc2V0IGZvcm0gZmllbGRzIHdoZW4gYWRkaW5nIGEgbmV3IGl0ZW1cbiAgICB9XG4gIH0sIFtkaXNwYXRjaCwgaWQsIGZvcm1dKTtcblxuICAvLyDwn5GJIFBvcHVsYXRlIGZvcm0gd2l0aCBmZXRjaGVkIGRhdGFcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaWQgJiYgdGVybXNDb25kaXRpb24pIHtcbiAgICAgIGZvcm0uc2V0RmllbGRzVmFsdWUoe1xuICAgICAgICBuYW1lOiB0ZXJtc0NvbmRpdGlvbi5uYW1lIHx8ICcnLFxuICAgICAgICBkZXNjcmlwdGlvbjogdGVybXNDb25kaXRpb24uZGVzY3JpcHRpb24gfHwgJycsXG4gICAgICB9KTtcbiAgICB9XG4gIH0sIFt0ZXJtc0NvbmRpdGlvbiwgZm9ybSwgaWRdKTtcblxuICAvLyDwn5GJIFNob3cgc3VjY2VzcyBvciBlcnJvciBhbGVydHNcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIXRlcm1zQ29uZGl0aW9uVXBkYXRlUGVuZGluZyAmJiBpc0NsaWNrKSB7XG4gICAgICBpZiAocmVnaXN0ZXJFcnJvck1lc3NhZ2UpIHtcbiAgICAgICAgbWVzc2FnZS5lcnJvcihyZWdpc3RlckVycm9yTWVzc2FnZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBtZXNzYWdlLnN1Y2Nlc3MoaWQgPyAnVXBkYXRlZCBzdWNjZXNzZnVsbHkhJyA6ICdDcmVhdGVkIHN1Y2Nlc3NmdWxseSEnKTtcbiAgICAgICAgbmF2aWdhdGUoJy90ZXJtcy1jb25kaXRpb25zJyk7XG4gICAgICB9XG4gICAgfVxuICB9LCBbdGVybXNDb25kaXRpb25VcGRhdGVQZW5kaW5nLCByZWdpc3RlckVycm9yTWVzc2FnZSwgaWQsIGlzQ2xpY2ssIG5hdmlnYXRlXSk7XG5cbiAgLy8g8J+RiSBIYW5kbGUgZm9ybSBzdWJtaXRcbiAgY29uc3Qgb25GaW5pc2ggPSAodmFsdWVzOiBUZXJtc0NvbmRpdGlvbikgPT4ge1xuICAgIGlmIChpZCkge1xuICAgICAgZGlzcGF0Y2godXBkYXRlVGVybXNDb25kaXRpb25BY3Rpb24oeyBpZDogTnVtYmVyKGlkKSwgZGF0YTogdmFsdWVzIH0pKTtcbiAgICAgIGZvcm0ucmVzZXRGaWVsZHMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGlzcGF0Y2goY3JlYXRlVGVybXNDb25kaXRpb25BY3Rpb24oeyBkYXRhOiB2YWx1ZXMgfSkpO1xuICAgICAgZm9ybS5yZXNldEZpZWxkcygpOyAvLyBSZXNldCBmb3JtIGFmdGVyIHN1Y2Nlc3NmdWwgY3JlYXRpb25cbiAgICB9XG4gICAgc2V0SXNDbGljayh0cnVlKTtcbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8aDI+e2lkID8gJ+GegOGfguGelOGfkuGemuGfguGem+GegOGfkuGegeGegeGejuGfkuGejCcgOiAn4Z6U4Z6T4Z+S4Z6Q4Z+C4Z6Y4Z6Q4Z+S4Z6Y4Z644Z6b4Z6A4Z+S4Z6B4Z6B4Z6O4Z+S4Z6MJ308L2gyPlxuICAgICAgPEZvcm0gZm9ybT17Zm9ybX0gbGF5b3V0PVwidmVydGljYWxcIiBvbkZpbmlzaD17b25GaW5pc2h9IHN0eWxlPXt7IG1heFdpZHRoOiAnMTAwJScsIG1hcmdpbjogJzAgYXV0bycgfX0+XG4gICAgICAgIDxSb3cgZ3V0dGVyPXtbMTIsIDEyXX0+XG4gICAgICAgICAgPENvbCBzcGFuPXsxMn0+XG4gICAgICAgICAgICA8Rm9ybS5JdGVtIGxhYmVsPVwi4Z6I4Z+S4Z6Y4Z+E4Z+HXCIgbmFtZT1cIm5hbWVcIiBydWxlcz17W3sgcmVxdWlyZWQ6IHRydWUsIG1lc3NhZ2U6ICdQbGVhc2UgZW50ZXIgYSBuYW1lJyB9XX0+XG4gICAgICAgICAgICAgIDxJbnB1dCAvPlxuICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XG4gICAgICAgICAgPC9Db2w+XG4gICAgICAgICAgPENvbCBzcGFuPXsxMn0+XG4gICAgICAgICAgICA8Rm9ybS5JdGVtIGxhYmVsPVwi4Z6U4Z6a4Z634Z6Z4Z624Z6ZXCIgbmFtZT1cImRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgICAgIDxUZXh0QXJlYSByb3dzPXszfSAvPlxuICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XG4gICAgICAgICAgPC9Db2w+XG4gICAgICAgIDwvUm93PlxuICAgICAgICA8Um93IGd1dHRlcj17WzEyLCAxMl19PlxuICAgICAgICAgIDxDb2wgc3Bhbj17M30+XG4gICAgICAgICAgICA8Rm9ybS5JdGVtPlxuICAgICAgICAgICAgICA8QnV0dG9uIHR5cGU9XCJwcmltYXJ5XCIgYmxvY2sgaHRtbFR5cGU9XCJzdWJtaXRcIiBsb2FkaW5nPXt0ZXJtc0NvbmRpdGlvblVwZGF0ZVBlbmRpbmd9PlxuICAgICAgICAgICAgICAgIFN1Ym1pdFxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxuICAgICAgICAgIDwvQ29sPlxuICAgICAgICAgIDxDb2wgc3Bhbj17M30+XG4gICAgICAgICAgICA8Rm9ybS5JdGVtPlxuICAgICAgICAgICAgICA8QnV0dG9uIGh0bWxUeXBlPVwiYnV0dG9uXCIgb25DbGljaz17KCkgPT4gbmF2aWdhdGUoJy90ZXJtcy1jb25kaXRpb25zJyl9PlxuICAgICAgICAgICAgICAgIENhbmNlbFxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxuICAgICAgICAgIDwvQ29sPlxuICAgICAgICA8L1Jvdz5cbiAgICAgIDwvRm9ybT5cbiAgICA8Lz5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IE5ld0VkaXRUZXJtc0NvbmRpdGlvblBhZ2U7XG4iLCJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEJ1dHRvbiwgSW5wdXQsIFNwYWNlLCBUYWJsZSB9IGZyb20gJ2FudGQnO1xuaW1wb3J0IHsgdXNlRGlzcGF0Y2gsIHVzZVNlbGVjdG9yIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHsgUm9vdFN0YXRlIH0gZnJvbSAnLi4vLi4vLi4vcmVkdXgvc3RvcmUnO1xuaW1wb3J0IHsgdXNlTmF2aWdhdGUgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCBMb2FkaW5nRGlhbG9nIGZyb20gJy4uLy4uLy4uL2NvbnRhaW5lci9kaWFsb2dzL2xvYWRpbmctZGlhbG9nJztcbmltcG9ydCB7IERlbGV0ZU91dGxpbmVkLCBFZGl0T3V0bGluZWQsIFBsdXNPdXRsaW5lZCB9IGZyb20gJ0BhbnQtZGVzaWduL2ljb25zJztcbmltcG9ydCB7IGRlbGV0ZVRlcm1zQ29uZGl0aW9uQWN0aW9uLCB0ZXJtc0NvbmRpdGlvbkRldGFpbEFjdGlvbiwgZmV0Y2hUZXJtc0NvbmRpdGlvbnMgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy90ZXJtc19jb25kaXRpb24vY29yZS9hY3Rpb25zJztcbmltcG9ydCBTd2FsIGZyb20gJ3N3ZWV0YWxlcnQyJztcblxuY29uc3QgVGVybXNDb25kaXRpb25MaXN0ID0gKCkgPT4ge1xuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG4gIGNvbnN0IG5hdmlnYXRlID0gdXNlTmF2aWdhdGUoKTtcbiAgY29uc3QgW3NlbGVjdGVkUm93cywgc2V0U2VsZWN0ZWRSb3dzXSA9IHVzZVN0YXRlPGFueT4oW10pO1xuICBjb25zdCBbc2VhcmNoVGV4dCwgc2V0U2VhcmNoVGV4dF0gPSB1c2VTdGF0ZSgnJyk7XG4gIGNvbnN0IHsgdGVybXNDb25kaXRpb25zLCB0ZXJtc0NvbmRpdGlvbnNQZW5kaW5nIH0gPSB1c2VTZWxlY3Rvcigoc3RhdGU6IFJvb3RTdGF0ZSkgPT4gc3RhdGUudGVybXNDb25kaXRpb24pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgZGlzcGF0Y2goZmV0Y2hUZXJtc0NvbmRpdGlvbnMoKSk7XG4gIH0sIFtkaXNwYXRjaF0pO1xuXG4gIGNvbnN0IGhhbmRsZUVkaXQgPSAoaWQ6IGFueSkgPT4ge1xuICAgIGRpc3BhdGNoKHRlcm1zQ29uZGl0aW9uRGV0YWlsQWN0aW9uKGlkKSk7XG4gICAgbmF2aWdhdGUoYC90ZXJtcy1jb25kaXRpb25zL2Zvcm0/aWQ9JHtpZH1gKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVEZWxldGUgPSAoaWQ6IGFueSkgPT4ge1xuICAgIFN3YWwuZmlyZSh7XG4gICAgICB0aXRsZTogJ0FyZSB5b3Ugc3VyZT8nLFxuICAgICAgdGV4dDogJ1lvdSB3b25cXCd0IGJlIGFibGUgdG8gcmV2ZXJ0IHRoaXMhJyxcbiAgICAgIGljb246ICd3YXJuaW5nJyxcbiAgICAgIHNob3dDb25maXJtQnV0dG9uOiBmYWxzZSxcbiAgICAgIHNob3dDYW5jZWxCdXR0b246IGZhbHNlLFxuICAgICAgaHRtbDogYFxuICAgICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IGdhcDogMTBweDsgbWFyZ2luLXRvcDogMjBweDtcIj5cbiAgICAgICAgICA8YnV0dG9uIGlkPVwiY29uZmlybS1kZWxldGVcIiBjbGFzcz1cInN3YWwyLWNvbmZpcm0gc3dhbDItc3R5bGVkXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiAjZDMzO1wiPkRlbGV0ZTwvYnV0dG9uPlxuICAgICAgICAgIDxidXR0b24gaWQ9XCJjYW5jZWwtZGVsZXRlXCIgY2xhc3M9XCJzd2FsMi1jYW5jZWwgc3dhbDItc3R5bGVkXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiAjMzA4NWQ2O1wiPkNhbmNlbDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIGAsXG4gICAgICBkaWRPcGVuOiAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbmZpcm1CdXR0b24gPSBTd2FsLmdldFBvcHVwKCk/LnF1ZXJ5U2VsZWN0b3IoJyNjb25maXJtLWRlbGV0ZScpO1xuICAgICAgICBjb25zdCBjYW5jZWxCdXR0b24gPSBTd2FsLmdldFBvcHVwKCk/LnF1ZXJ5U2VsZWN0b3IoJyNjYW5jZWwtZGVsZXRlJyk7XG5cbiAgICAgICAgY29uZmlybUJ1dHRvbj8uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XG4gICAgICAgICAgZGlzcGF0Y2goZGVsZXRlVGVybXNDb25kaXRpb25BY3Rpb24oaWQpKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIFN3YWwuZmlyZSgnRGVsZXRlZCEnLCAnVGhlIGl0ZW0gaGFzIGJlZW4gZGVsZXRlZC4nLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgZGlzcGF0Y2goZmV0Y2hUZXJtc0NvbmRpdGlvbnMoKSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgU3dhbC5jbG9zZSgpO1xuICAgICAgICB9KTtcblxuICAgICAgICBjYW5jZWxCdXR0b24/LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgICAgIFN3YWwuY2xvc2UoKTtcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVNlYXJjaCA9ICgpID0+IHtcbiAgICAvLyBUcmlnZ2VycyBzZWFyY2ggYnkgc2V0dGluZyBzdGF0ZVxuICAgIHNldFNlYXJjaFRleHQoc2VhcmNoVGV4dC50cmltKCkpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVJlc2V0ID0gKCkgPT4ge1xuICAgIC8vIENsZWFycyBpbnB1dCBhbmQgc2hvd3MgYWxsIGRhdGFcbiAgICBzZXRTZWFyY2hUZXh0KCcnKTtcbiAgfTtcblxuICBjb25zdCBjb2x1bW5zID0gW1xuICAgIHsgdGl0bGU6ICfhnpvhn4HhnoHhnprhn4DhnoQnLCBkYXRhSW5kZXg6ICdpbmRleCcsIGtleTogJ2luZGV4JywgcmVzcG9uc2l2ZTogWydzbSddIH0sXG4gICAgeyB0aXRsZTogJ+GeiOGfkuGemOGfhOGfhycsIGRhdGFJbmRleDogJ25hbWUnLCBrZXk6ICduYW1lJywgcmVzcG9uc2l2ZTogWydzbSddIH0sXG4gICAgeyB0aXRsZTogJ+GelOGemuGet+GemeGetuGemScsIGRhdGFJbmRleDogJ2Rlc2NyaXB0aW9uJywga2V5OiAnZGVzY3JpcHRpb24nLCByZXNwb25zaXZlOiBbJ3NtJ10gfSxcbiAgICB7XG4gICAgICB0aXRsZTogJ0FjdGlvbicsXG4gICAgICBrZXk6ICdhY3Rpb24nLFxuICAgICAgcmVzcG9uc2l2ZTogWyd4cycsICdzbScsICdtZCcsICdsZyddLFxuICAgICAgcmVuZGVyOiAoXzogc3RyaW5nLCByZWNvcmQ6IGFueSkgPT4gKFxuICAgICAgICA8U3BhY2Ugc2l6ZT1cIm1pZGRsZVwiPlxuICAgICAgICAgIDxCdXR0b24gaWNvbj17PEVkaXRPdXRsaW5lZCAvPn0gdHlwZT1cInByaW1hcnlcIiBvbkNsaWNrPXsoKSA9PiBoYW5kbGVFZGl0KHJlY29yZC5pZCl9IC8+XG4gICAgICAgICAgPEJ1dHRvbiBpY29uPXs8RGVsZXRlT3V0bGluZWQgLz59IGRhbmdlciBvbkNsaWNrPXsoKSA9PiBoYW5kbGVEZWxldGUocmVjb3JkLmlkKX0gLz5cbiAgICAgICAgPC9TcGFjZT5cbiAgICAgICksXG4gICAgfSxcbiAgXTtcblxuICBjb25zdCBmaWx0ZXJlZERhdGEgPSAodGVybXNDb25kaXRpb25zIHx8IFtdKS5maWx0ZXIoKGl0KSA9PlxuICAgIGl0Lm5hbWU/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVGV4dC50b0xvd2VyQ2FzZSgpKVxuICApO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBzdHlsZT17eyBvdmVyZmxvd1g6ICdhdXRvJyB9fT5cbiAgICAgIDxoMj7hnpThnonhn5LhnofhnrjhnpvhnoDhn5LhnoHhnoHhno7hn5Lhnow8L2gyPlxuICAgICAgPGRpdlxuICAgICAgICBzdHlsZT17e1xuICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ3NwYWNlLWJldHdlZW4nLFxuICAgICAgICAgIHBhZGRpbmc6ICcxMHB4JyxcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAnI2Y1ZjVmNScsXG4gICAgICAgICAgbWFyZ2luQm90dG9tOiAnMTBweCcsXG4gICAgICAgICAgZmxleFdyYXA6ICd3cmFwJyxcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgPFNwYWNlIHdyYXA+XG4gICAgICAgICAgPHNwYW4+4Z6f4Z6a4Z674Z6UOiB7ZmlsdGVyZWREYXRhPy5sZW5ndGggfHwgMH08L3NwYW4+XG4gICAgICAgICAgPElucHV0XG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIuGen+GfkuGenOGfguGehOGemuGegC4uLlwiXG4gICAgICAgICAgICBzdHlsZT17eyB3aWR0aDogMjAwIH19XG4gICAgICAgICAgICB2YWx1ZT17c2VhcmNoVGV4dH1cbiAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gc2V0U2VhcmNoVGV4dChlLnRhcmdldC52YWx1ZSl9XG4gICAgICAgICAgLz5cbiAgICAgICAgICA8QnV0dG9uIG9uQ2xpY2s9e2hhbmRsZVNlYXJjaH0gdHlwZT1cInByaW1hcnlcIj7hnoXhnpjhn5Lhnprhn4Thn4c8L0J1dHRvbj5cbiAgICAgICAgICA8QnV0dG9uIG9uQ2xpY2s9e2hhbmRsZVJlc2V0fT7hnoDhn4bhno7hno/hn4vhnqHhnr7hnoThnpzhnrfhnok8L0J1dHRvbj5cbiAgICAgICAgPC9TcGFjZT5cbiAgICAgICAgPFNwYWNlIHdyYXA+XG4gICAgICAgICAgPEJ1dHRvbiBpY29uPXs8UGx1c091dGxpbmVkIC8+fSB0eXBlPVwicHJpbWFyeVwiIG9uQ2xpY2s9eygpID0+IG5hdmlnYXRlKGAvdGVybXMtY29uZGl0aW9ucy9mb3JtYCl9PuGelOGek+GfkuGekOGfguGemOGekOGfkuGemOGeuDwvQnV0dG9uPlxuICAgICAgICA8L1NwYWNlPlxuICAgICAgPC9kaXY+XG4gICAgICA8VGFibGVcbiAgICAgICAgcm93U2VsZWN0aW9uPXt7XG4gICAgICAgICAgdHlwZTogJ2NoZWNrYm94JyxcbiAgICAgICAgICBvbkNoYW5nZTogKF8sIHNlbGVjdGVkUm93cykgPT4gc2V0U2VsZWN0ZWRSb3dzKHNlbGVjdGVkUm93cyksXG4gICAgICAgIH19XG4gICAgICAgIGNvbHVtbnM9e2NvbHVtbnN9XG4gICAgICAgIGRhdGFTb3VyY2U9e2ZpbHRlcmVkRGF0YS5tYXAoKGl0LCBpbmRleCkgPT4gKHtcbiAgICAgICAgICBrZXk6IGl0LmlkLFxuICAgICAgICAgIGluZGV4OiBpbmRleCArIDEsXG4gICAgICAgICAgbmFtZTogaXQubmFtZSxcbiAgICAgICAgICAuLi5pdCxcbiAgICAgICAgfSkpfVxuICAgICAgICBwYWdpbmF0aW9uPXt7IHBhZ2VTaXplOiAxMCwgc2hvd1NpemVDaGFuZ2VyOiB0cnVlIH19XG4gICAgICAgIHNjcm9sbD17eyB4OiAnbWF4LWNvbnRlbnQnIH19XG4gICAgICAvPlxuICAgICAgPExvYWRpbmdEaWFsb2cgdmlzaWJsZT17dGVybXNDb25kaXRpb25zUGVuZGluZ30gLz5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFRlcm1zQ29uZGl0aW9uTGlzdDtcbiIsImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgRm9ybSwgSW5wdXQsIEJ1dHRvbiwgUm93LCBDb2wsIG1lc3NhZ2UgfSBmcm9tICdhbnRkJztcbmltcG9ydCB7IFJvb3RTdGF0ZSB9IGZyb20gJy4uLy4uLy4uL3JlZHV4L3N0b3JlJztcbmltcG9ydCB7IHVzZURpc3BhdGNoLCB1c2VTZWxlY3RvciB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7IFRyYWluaW5nU2Vzc2lvbiB9IGZyb20gJ0Avc2hhcmVkL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgY3JlYXRlVHJhaW5pbmdTZXNzaW9uQWN0aW9uLCB0cmFpbmluZ1Nlc3Npb25EZXRhaWxBY3Rpb24sIHVwZGF0ZVRyYWluaW5nU2Vzc2lvbkFjdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL3RyYWluaW5nX3Nlc3Npb24vY29yZS9hY3Rpb25zJztcbmltcG9ydCB7IHVzZU5hdmlnYXRlIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQgVGV4dEFyZWEgZnJvbSAnYW50ZC9lcy9pbnB1dC9UZXh0QXJlYSc7XG5cbmNvbnN0IE5ld0VkaXRUcmFpbmluZ1Nlc3Npb25QYWdlOiBSZWFjdC5GQyA9ICgpID0+IHtcbiAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xuICBjb25zdCBuYXZpZ2F0ZSA9IHVzZU5hdmlnYXRlKCk7XG4gIGNvbnN0IHsgdHJhaW5pbmdTZXNzaW9uLCByZWdpc3RlckVycm9yTWVzc2FnZSwgdHJhaW5pbmdTZXNzaW9uVXBkYXRlUGVuZGluZyB9ID0gdXNlU2VsZWN0b3IoXG4gICAgKHN0YXRlOiBSb290U3RhdGUpID0+IHN0YXRlLnRyYWluaW5nU2Vzc2lvblxuICApO1xuICBjb25zdCBbZm9ybV0gPSBGb3JtLnVzZUZvcm0oKTtcblxuICBjb25zdCBzZWFyY2hQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKGxvY2F0aW9uLnNlYXJjaCk7XG4gIGNvbnN0IGlkID0gc2VhcmNoUGFyYW1zLmdldCgnaWQnKTtcblxuICBjb25zdCBbaXNDbGljaywgc2V0SXNDbGlja10gPSB1c2VTdGF0ZShmYWxzZSk7XG5cbiAgLy8g8J+RiSBGZXRjaCBkYXRhIHdoZW4gZWRpdGluZyBvciByZXNldCBmb3JtIHdoZW4gYWRkaW5nXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlkKSB7XG4gICAgICBkaXNwYXRjaCh0cmFpbmluZ1Nlc3Npb25EZXRhaWxBY3Rpb24oTnVtYmVyKGlkKSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBmb3JtLnJlc2V0RmllbGRzKCk7IC8vIFJlc2V0IGZvcm0gZmllbGRzIHdoZW4gYWRkaW5nIGEgbmV3IGl0ZW1cbiAgICB9XG4gIH0sIFtkaXNwYXRjaCwgaWQsIGZvcm1dKTtcblxuICAvLyDwn5GJIFBvcHVsYXRlIGZvcm0gd2l0aCBmZXRjaGVkIGRhdGFcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaWQgJiYgdHJhaW5pbmdTZXNzaW9uKSB7XG4gICAgICBmb3JtLnNldEZpZWxkc1ZhbHVlKHtcbiAgICAgICAgbmFtZTogdHJhaW5pbmdTZXNzaW9uLm5hbWUgfHwgJycsXG4gICAgICAgIGRlc2NyaXB0aW9uOiB0cmFpbmluZ1Nlc3Npb24uZGVzY3JpcHRpb24gfHwgJycsXG4gICAgICB9KTtcbiAgICB9XG4gIH0sIFt0cmFpbmluZ1Nlc3Npb24sIGZvcm0sIGlkXSk7XG5cbiAgLy8g8J+RiSBTaG93IHN1Y2Nlc3Mgb3IgZXJyb3IgYWxlcnRzXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCF0cmFpbmluZ1Nlc3Npb25VcGRhdGVQZW5kaW5nICYmIGlzQ2xpY2spIHtcbiAgICAgIGlmIChyZWdpc3RlckVycm9yTWVzc2FnZSkge1xuICAgICAgICBtZXNzYWdlLmVycm9yKHJlZ2lzdGVyRXJyb3JNZXNzYWdlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG1lc3NhZ2Uuc3VjY2VzcyhpZCA/ICdVcGRhdGVkIHN1Y2Nlc3NmdWxseSEnIDogJ0NyZWF0ZWQgc3VjY2Vzc2Z1bGx5IScpO1xuICAgICAgICBuYXZpZ2F0ZSgnL3RyYWluaW5nLXNlc3Npb25zJyk7XG4gICAgICB9XG4gICAgfVxuICB9LCBbdHJhaW5pbmdTZXNzaW9uVXBkYXRlUGVuZGluZywgcmVnaXN0ZXJFcnJvck1lc3NhZ2UsIGlkLCBpc0NsaWNrLCBuYXZpZ2F0ZV0pO1xuXG4gIC8vIPCfkYkgSGFuZGxlIGZvcm0gc3VibWl0XG4gIGNvbnN0IG9uRmluaXNoID0gKHZhbHVlczogVHJhaW5pbmdTZXNzaW9uKSA9PiB7XG4gICAgaWYgKGlkKSB7XG4gICAgICBkaXNwYXRjaCh1cGRhdGVUcmFpbmluZ1Nlc3Npb25BY3Rpb24oeyBpZDogTnVtYmVyKGlkKSwgZGF0YTogdmFsdWVzIH0pKTtcbiAgICAgIGZvcm0ucmVzZXRGaWVsZHMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGlzcGF0Y2goY3JlYXRlVHJhaW5pbmdTZXNzaW9uQWN0aW9uKHsgZGF0YTogdmFsdWVzIH0pKTtcbiAgICAgIGZvcm0ucmVzZXRGaWVsZHMoKTsgLy8gUmVzZXQgZm9ybSBhZnRlciBzdWNjZXNzZnVsIGNyZWF0aW9uXG4gICAgfVxuICAgIHNldElzQ2xpY2sodHJ1ZSk7XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPGgyPntpZCA/ICfhnoDhn4LhnpThn5Lhnprhn4LhnpzhnoLhn5LhnoLhnpThno7hn5Lhno/hnrvhn4fhnpThno7hn5Lhno/hnrbhnpsnIDogJ+GelOGek+GfkuGekOGfguGemOGekOGfkuGemOGeuOGenOGeguGfkuGeguGelOGejuGfkuGej+Geu+Gfh+GelOGejuGfkuGej+GetuGemyd9PC9oMj5cbiAgICAgIDxGb3JtIGZvcm09e2Zvcm19IGxheW91dD1cInZlcnRpY2FsXCIgb25GaW5pc2g9e29uRmluaXNofSBzdHlsZT17eyBtYXhXaWR0aDogJzEwMCUnLCBtYXJnaW46ICcwIGF1dG8nIH19PlxuICAgICAgICA8Um93IGd1dHRlcj17WzEyLCAxMl19PlxuICAgICAgICAgIDxDb2wgc3Bhbj17MTJ9PlxuICAgICAgICAgICAgPEZvcm0uSXRlbSBsYWJlbD1cIuGeiOGfkuGemOGfhOGfh1wiIG5hbWU9XCJuYW1lXCIgcnVsZXM9e1t7IHJlcXVpcmVkOiB0cnVlLCBtZXNzYWdlOiAnUGxlYXNlIGVudGVyIGEgbmFtZScgfV19PlxuICAgICAgICAgICAgICA8SW5wdXQgLz5cbiAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxuICAgICAgICAgIDwvQ29sPlxuICAgICAgICAgIDxDb2wgc3Bhbj17MTJ9PlxuICAgICAgICAgICAgPEZvcm0uSXRlbSBsYWJlbD1cIuGelOGemuGet+GemeGetuGemVwiIG5hbWU9XCJkZXNjcmlwdGlvblwiPlxuICAgICAgICAgICAgICA8VGV4dEFyZWEgcm93cz17M30gLz5cbiAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxuICAgICAgICAgIDwvQ29sPlxuICAgICAgICA8L1Jvdz5cbiAgICAgICAgPFJvdyBndXR0ZXI9e1sxMiwgMTJdfT5cbiAgICAgICAgICA8Q29sIHNwYW49ezN9PlxuICAgICAgICAgICAgPEZvcm0uSXRlbT5cbiAgICAgICAgICAgICAgPEJ1dHRvbiB0eXBlPVwicHJpbWFyeVwiIGJsb2NrIGh0bWxUeXBlPVwic3VibWl0XCIgbG9hZGluZz17dHJhaW5pbmdTZXNzaW9uVXBkYXRlUGVuZGluZ30+XG4gICAgICAgICAgICAgICAgU3VibWl0XG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XG4gICAgICAgICAgPC9Db2w+XG4gICAgICAgICAgPENvbCBzcGFuPXszfT5cbiAgICAgICAgICAgIDxGb3JtLkl0ZW0+XG4gICAgICAgICAgICAgIDxCdXR0b24gaHRtbFR5cGU9XCJidXR0b25cIiBvbkNsaWNrPXsoKSA9PiBuYXZpZ2F0ZSgnL3RyYWluaW5nLXNlc3Npb25zJyl9PlxuICAgICAgICAgICAgICAgIENhbmNlbFxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxuICAgICAgICAgIDwvQ29sPlxuICAgICAgICA8L1Jvdz5cbiAgICAgIDwvRm9ybT5cbiAgICA8Lz5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IE5ld0VkaXRUcmFpbmluZ1Nlc3Npb25QYWdlO1xuIiwiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBCdXR0b24sIElucHV0LCBTcGFjZSwgVGFibGUgfSBmcm9tICdhbnRkJztcbmltcG9ydCB7IHVzZURpc3BhdGNoLCB1c2VTZWxlY3RvciB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7IFJvb3RTdGF0ZSB9IGZyb20gJy4uLy4uLy4uL3JlZHV4L3N0b3JlJztcbmltcG9ydCB7IHVzZU5hdmlnYXRlIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQgTG9hZGluZ0RpYWxvZyBmcm9tICcuLi8uLi8uLi9jb250YWluZXIvZGlhbG9ncy9sb2FkaW5nLWRpYWxvZyc7XG5pbXBvcnQgeyBEZWxldGVPdXRsaW5lZCwgRWRpdE91dGxpbmVkLCBQbHVzT3V0bGluZWQgfSBmcm9tICdAYW50LWRlc2lnbi9pY29ucyc7XG5pbXBvcnQgeyBkZWxldGVUcmFpbmluZ1Nlc3Npb25BY3Rpb24sIHRyYWluaW5nU2Vzc2lvbkRldGFpbEFjdGlvbiwgZmV0Y2hUcmFpbmluZ1Nlc3Npb25zIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvdHJhaW5pbmdfc2Vzc2lvbi9jb3JlL2FjdGlvbnMnO1xuaW1wb3J0IFN3YWwgZnJvbSAnc3dlZXRhbGVydDInO1xuXG5jb25zdCBUcmFpbmluZ1Nlc3Npb25MaXN0ID0gKCkgPT4ge1xuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG4gIGNvbnN0IG5hdmlnYXRlID0gdXNlTmF2aWdhdGUoKTtcbiAgY29uc3QgW3NlbGVjdGVkUm93cywgc2V0U2VsZWN0ZWRSb3dzXSA9IHVzZVN0YXRlPGFueT4oW10pO1xuICBjb25zdCBbc2VhcmNoVGV4dCwgc2V0U2VhcmNoVGV4dF0gPSB1c2VTdGF0ZSgnJyk7XG4gIGNvbnN0IHsgdHJhaW5pbmdTZXNzaW9ucywgdHJhaW5pbmdTZXNzaW9uc1BlbmRpbmcgfSA9IHVzZVNlbGVjdG9yKChzdGF0ZTogUm9vdFN0YXRlKSA9PiBzdGF0ZS50cmFpbmluZ1Nlc3Npb24pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgZGlzcGF0Y2goZmV0Y2hUcmFpbmluZ1Nlc3Npb25zKCkpO1xuICB9LCBbZGlzcGF0Y2hdKTtcblxuICBjb25zdCBoYW5kbGVFZGl0ID0gKGlkOiBhbnkpID0+IHtcbiAgICBkaXNwYXRjaCh0cmFpbmluZ1Nlc3Npb25EZXRhaWxBY3Rpb24oaWQpKTtcbiAgICBuYXZpZ2F0ZShgL3RyYWluaW5nLXNlc3Npb25zL2Zvcm0/aWQ9JHtpZH1gKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVEZWxldGUgPSAoaWQ6IGFueSkgPT4ge1xuICAgIFN3YWwuZmlyZSh7XG4gICAgICB0aXRsZTogJ0FyZSB5b3Ugc3VyZT8nLFxuICAgICAgdGV4dDogJ1lvdSB3b25cXCd0IGJlIGFibGUgdG8gcmV2ZXJ0IHRoaXMhJyxcbiAgICAgIGljb246ICd3YXJuaW5nJyxcbiAgICAgIHNob3dDb25maXJtQnV0dG9uOiBmYWxzZSxcbiAgICAgIHNob3dDYW5jZWxCdXR0b246IGZhbHNlLFxuICAgICAgaHRtbDogYFxuICAgICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IGdhcDogMTBweDsgbWFyZ2luLXRvcDogMjBweDtcIj5cbiAgICAgICAgICA8YnV0dG9uIGlkPVwiY29uZmlybS1kZWxldGVcIiBjbGFzcz1cInN3YWwyLWNvbmZpcm0gc3dhbDItc3R5bGVkXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiAjZDMzO1wiPkRlbGV0ZTwvYnV0dG9uPlxuICAgICAgICAgIDxidXR0b24gaWQ9XCJjYW5jZWwtZGVsZXRlXCIgY2xhc3M9XCJzd2FsMi1jYW5jZWwgc3dhbDItc3R5bGVkXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiAjMzA4NWQ2O1wiPkNhbmNlbDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIGAsXG4gICAgICBkaWRPcGVuOiAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbmZpcm1CdXR0b24gPSBTd2FsLmdldFBvcHVwKCk/LnF1ZXJ5U2VsZWN0b3IoJyNjb25maXJtLWRlbGV0ZScpO1xuICAgICAgICBjb25zdCBjYW5jZWxCdXR0b24gPSBTd2FsLmdldFBvcHVwKCk/LnF1ZXJ5U2VsZWN0b3IoJyNjYW5jZWwtZGVsZXRlJyk7XG5cbiAgICAgICAgY29uZmlybUJ1dHRvbj8uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XG4gICAgICAgICAgZGlzcGF0Y2goZGVsZXRlVHJhaW5pbmdTZXNzaW9uQWN0aW9uKGlkKSkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICBTd2FsLmZpcmUoJ0RlbGV0ZWQhJywgJ1RoZSBpdGVtIGhhcyBiZWVuIGRlbGV0ZWQuJywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGRpc3BhdGNoKGZldGNoVHJhaW5pbmdTZXNzaW9ucygpKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBTd2FsLmNsb3NlKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNhbmNlbEJ1dHRvbj8uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XG4gICAgICAgICAgU3dhbC5jbG9zZSgpO1xuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlU2VhcmNoID0gKCkgPT4ge1xuICAgIC8vIFRyaWdnZXJzIHNlYXJjaCBieSBzZXR0aW5nIHN0YXRlXG4gICAgc2V0U2VhcmNoVGV4dChzZWFyY2hUZXh0LnRyaW0oKSk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlUmVzZXQgPSAoKSA9PiB7XG4gICAgLy8gQ2xlYXJzIGlucHV0IGFuZCBzaG93cyBhbGwgZGF0YVxuICAgIHNldFNlYXJjaFRleHQoJycpO1xuICB9O1xuXG4gIGNvbnN0IGNvbHVtbnMgPSBbXG4gICAgeyB0aXRsZTogJ+Gem+GfgeGegeGemuGfgOGehCcsIGRhdGFJbmRleDogJ2luZGV4Jywga2V5OiAnaW5kZXgnLCByZXNwb25zaXZlOiBbJ3NtJ10gfSxcbiAgICB7IHRpdGxlOiAn4Z6I4Z+S4Z6Y4Z+E4Z+HJywgZGF0YUluZGV4OiAnbmFtZScsIGtleTogJ25hbWUnLCByZXNwb25zaXZlOiBbJ3NtJ10gfSxcbiAgICB7IHRpdGxlOiAn4Z6U4Z6a4Z634Z6Z4Z624Z6ZJywgZGF0YUluZGV4OiAnZGVzY3JpcHRpb24nLCBrZXk6ICdkZXNjcmlwdGlvbicsIHJlc3BvbnNpdmU6IFsnc20nXSB9LFxuICAgIHtcbiAgICAgIHRpdGxlOiAnQWN0aW9uJyxcbiAgICAgIGtleTogJ2FjdGlvbicsXG4gICAgICByZXNwb25zaXZlOiBbJ3hzJywgJ3NtJywgJ21kJywgJ2xnJ10sXG4gICAgICByZW5kZXI6IChfOiBzdHJpbmcsIHJlY29yZDogYW55KSA9PiAoXG4gICAgICAgIDxTcGFjZSBzaXplPVwibWlkZGxlXCI+XG4gICAgICAgICAgPEJ1dHRvbiBpY29uPXs8RWRpdE91dGxpbmVkIC8+fSB0eXBlPVwicHJpbWFyeVwiIG9uQ2xpY2s9eygpID0+IGhhbmRsZUVkaXQocmVjb3JkLmlkKX0gLz5cbiAgICAgICAgICA8QnV0dG9uIGljb249ezxEZWxldGVPdXRsaW5lZCAvPn0gZGFuZ2VyIG9uQ2xpY2s9eygpID0+IGhhbmRsZURlbGV0ZShyZWNvcmQuaWQpfSAvPlxuICAgICAgICA8L1NwYWNlPlxuICAgICAgKSxcbiAgICB9LFxuICBdO1xuXG4gIGNvbnN0IGZpbHRlcmVkRGF0YSA9ICh0cmFpbmluZ1Nlc3Npb25zIHx8IFtdKS5maWx0ZXIoKGl0KSA9PlxuICAgIGl0Lm5hbWU/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVGV4dC50b0xvd2VyQ2FzZSgpKVxuICApO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBzdHlsZT17eyBvdmVyZmxvd1g6ICdhdXRvJyB9fT5cbiAgICAgIDxoMj7hnpThnonhn5LhnofhnrjhnpzhnoLhn5LhnoLhnpThno7hn5Lhno/hnrvhn4fhnpThno7hn5Lhno/hnrbhnps8L2gyPlxuICAgICAgPGRpdlxuICAgICAgICBzdHlsZT17e1xuICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ3NwYWNlLWJldHdlZW4nLFxuICAgICAgICAgIHBhZGRpbmc6ICcxMHB4JyxcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAnI2Y1ZjVmNScsXG4gICAgICAgICAgbWFyZ2luQm90dG9tOiAnMTBweCcsXG4gICAgICAgICAgZmxleFdyYXA6ICd3cmFwJyxcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgPFNwYWNlIHdyYXA+XG4gICAgICAgICAgPHNwYW4+4Z6f4Z6a4Z674Z6UOiB7ZmlsdGVyZWREYXRhPy5sZW5ndGggfHwgMH08L3NwYW4+XG4gICAgICAgICAgPElucHV0XG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIuGen+GfkuGenOGfguGehOGemuGegC4uLlwiXG4gICAgICAgICAgICBzdHlsZT17eyB3aWR0aDogMjAwIH19XG4gICAgICAgICAgICB2YWx1ZT17c2VhcmNoVGV4dH1cbiAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gc2V0U2VhcmNoVGV4dChlLnRhcmdldC52YWx1ZSl9XG4gICAgICAgICAgLz5cbiAgICAgICAgICA8QnV0dG9uIG9uQ2xpY2s9e2hhbmRsZVNlYXJjaH0gdHlwZT1cInByaW1hcnlcIj7hnoXhnpjhn5Lhnprhn4Thn4c8L0J1dHRvbj5cbiAgICAgICAgICA8QnV0dG9uIG9uQ2xpY2s9e2hhbmRsZVJlc2V0fT7hnoDhn4bhno7hno/hn4vhnqHhnr7hnoThnpzhnrfhnok8L0J1dHRvbj5cbiAgICAgICAgPC9TcGFjZT5cbiAgICAgICAgPFNwYWNlIHdyYXA+XG4gICAgICAgICAgPEJ1dHRvbiBpY29uPXs8UGx1c091dGxpbmVkIC8+fSB0eXBlPVwicHJpbWFyeVwiIG9uQ2xpY2s9eygpID0+IG5hdmlnYXRlKGAvdHJhaW5pbmctc2Vzc2lvbnMvZm9ybWApfT7hnpThnpPhn5LhnpDhn4LhnpjhnpDhn5Lhnpjhnrg8L0J1dHRvbj5cbiAgICAgICAgPC9TcGFjZT5cbiAgICAgIDwvZGl2PlxuICAgICAgPFRhYmxlXG4gICAgICAgIHJvd1NlbGVjdGlvbj17e1xuICAgICAgICAgIHR5cGU6ICdjaGVja2JveCcsXG4gICAgICAgICAgb25DaGFuZ2U6IChfLCBzZWxlY3RlZFJvd3MpID0+IHNldFNlbGVjdGVkUm93cyhzZWxlY3RlZFJvd3MpLFxuICAgICAgICB9fVxuICAgICAgICBjb2x1bW5zPXtjb2x1bW5zfVxuICAgICAgICBkYXRhU291cmNlPXtmaWx0ZXJlZERhdGEubWFwKChpdCwgaW5kZXgpID0+ICh7XG4gICAgICAgICAga2V5OiBpdC5pZCxcbiAgICAgICAgICBpbmRleDogaW5kZXggKyAxLFxuICAgICAgICAgIG5hbWU6IGl0Lm5hbWUsXG4gICAgICAgICAgLi4uaXQsXG4gICAgICAgIH0pKX1cbiAgICAgICAgcGFnaW5hdGlvbj17eyBwYWdlU2l6ZTogMTAsIHNob3dTaXplQ2hhbmdlcjogdHJ1ZSB9fVxuICAgICAgICBzY3JvbGw9e3sgeDogJ21heC1jb250ZW50JyB9fVxuICAgICAgLz5cbiAgICAgIDxMb2FkaW5nRGlhbG9nIHZpc2libGU9e3RyYWluaW5nU2Vzc2lvbnNQZW5kaW5nfSAvPlxuICAgIDwvZGl2PlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgVHJhaW5pbmdTZXNzaW9uTGlzdDtcbiIsImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgRm9ybSwgSW5wdXQsIEJ1dHRvbiwgUm93LCBDb2wsIG1lc3NhZ2UgfSBmcm9tICdhbnRkJztcbmltcG9ydCB7IFJvb3RTdGF0ZSB9IGZyb20gJy4uLy4uLy4uL3JlZHV4L3N0b3JlJztcbmltcG9ydCB7IHVzZURpc3BhdGNoLCB1c2VTZWxlY3RvciB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7IFRyYXZlbERheSB9IGZyb20gJ0Avc2hhcmVkL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgY3JlYXRlVHJhdmVsRGF5QWN0aW9uLCB0cmF2ZWxEYXlEZXRhaWxBY3Rpb24sIHVwZGF0ZVRyYXZlbERheUFjdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL3RyYXZlbF9kYXkvY29yZS9hY3Rpb25zJztcbmltcG9ydCB7IHVzZU5hdmlnYXRlIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQgVGV4dEFyZWEgZnJvbSAnYW50ZC9lcy9pbnB1dC9UZXh0QXJlYSc7XG5cbmNvbnN0IE5ld0VkaXRUcmF2ZWxEYXlQYWdlOiBSZWFjdC5GQyA9ICgpID0+IHtcbiAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xuICBjb25zdCBuYXZpZ2F0ZSA9IHVzZU5hdmlnYXRlKCk7XG4gIGNvbnN0IHsgdHJhdmVsRGF5LCByZWdpc3RlckVycm9yTWVzc2FnZSwgdHJhdmVsRGF5VXBkYXRlUGVuZGluZyB9ID0gdXNlU2VsZWN0b3IoXG4gICAgKHN0YXRlOiBSb290U3RhdGUpID0+IHN0YXRlLnRyYXZlbERheVxuICApO1xuICBjb25zdCBbZm9ybV0gPSBGb3JtLnVzZUZvcm0oKTtcblxuICBjb25zdCBzZWFyY2hQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKGxvY2F0aW9uLnNlYXJjaCk7XG4gIGNvbnN0IGlkID0gc2VhcmNoUGFyYW1zLmdldCgnaWQnKTtcblxuICBjb25zdCBbaXNDbGljaywgc2V0SXNDbGlja10gPSB1c2VTdGF0ZShmYWxzZSk7XG5cbiAgLy8g8J+RiSBGZXRjaCBkYXRhIHdoZW4gZWRpdGluZyBvciByZXNldCBmb3JtIHdoZW4gYWRkaW5nXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlkKSB7XG4gICAgICBkaXNwYXRjaCh0cmF2ZWxEYXlEZXRhaWxBY3Rpb24oTnVtYmVyKGlkKSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBmb3JtLnJlc2V0RmllbGRzKCk7IC8vIFJlc2V0IGZvcm0gZmllbGRzIHdoZW4gYWRkaW5nIGEgbmV3IGl0ZW1cbiAgICB9XG4gIH0sIFtkaXNwYXRjaCwgaWQsIGZvcm1dKTtcblxuICAvLyDwn5GJIFBvcHVsYXRlIGZvcm0gd2l0aCBmZXRjaGVkIGRhdGFcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaWQgJiYgdHJhdmVsRGF5KSB7XG4gICAgICBmb3JtLnNldEZpZWxkc1ZhbHVlKHtcbiAgICAgICAgbmFtZTogdHJhdmVsRGF5Lm5hbWUgfHwgJycsXG4gICAgICAgIGRlc2NyaXB0aW9uOiB0cmF2ZWxEYXkuZGVzY3JpcHRpb24gfHwgJycsXG4gICAgICB9KTtcbiAgICB9XG4gIH0sIFt0cmF2ZWxEYXksIGZvcm0sIGlkXSk7XG5cbiAgLy8g8J+RiSBTaG93IHN1Y2Nlc3Mgb3IgZXJyb3IgYWxlcnRzXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCF0cmF2ZWxEYXlVcGRhdGVQZW5kaW5nICYmIGlzQ2xpY2spIHtcbiAgICAgIGlmIChyZWdpc3RlckVycm9yTWVzc2FnZSkge1xuICAgICAgICBtZXNzYWdlLmVycm9yKHJlZ2lzdGVyRXJyb3JNZXNzYWdlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG1lc3NhZ2Uuc3VjY2VzcyhpZCA/ICdVcGRhdGVkIHN1Y2Nlc3NmdWxseSEnIDogJ0NyZWF0ZWQgc3VjY2Vzc2Z1bGx5IScpO1xuICAgICAgICBuYXZpZ2F0ZSgnL3RyYXZlbC1kYXlzJyk7XG4gICAgICB9XG4gICAgfVxuICB9LCBbdHJhdmVsRGF5VXBkYXRlUGVuZGluZywgcmVnaXN0ZXJFcnJvck1lc3NhZ2UsIGlkLCBpc0NsaWNrLCBuYXZpZ2F0ZV0pO1xuXG4gIC8vIPCfkYkgSGFuZGxlIGZvcm0gc3VibWl0XG4gIGNvbnN0IG9uRmluaXNoID0gKHZhbHVlczogVHJhdmVsRGF5KSA9PiB7XG4gICAgaWYgKGlkKSB7XG4gICAgICBkaXNwYXRjaCh1cGRhdGVUcmF2ZWxEYXlBY3Rpb24oeyBpZDogTnVtYmVyKGlkKSwgZGF0YTogdmFsdWVzIH0pKTtcbiAgICAgIGZvcm0ucmVzZXRGaWVsZHMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGlzcGF0Y2goY3JlYXRlVHJhdmVsRGF5QWN0aW9uKHsgZGF0YTogdmFsdWVzIH0pKTtcbiAgICAgIGZvcm0ucmVzZXRGaWVsZHMoKTsgLy8gUmVzZXQgZm9ybSBhZnRlciBzdWNjZXNzZnVsIGNyZWF0aW9uXG4gICAgfVxuICAgIHNldElzQ2xpY2sodHJ1ZSk7XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPGgyPntpZCA/ICfhnoDhn4LhnpThn5Lhnprhn4LhnpDhn5LhnoThn4PhnpLhn5Lhnpzhnr7hnorhn4bhno7hnr7hnponIDogJ+GelOGek+GfkuGekOGfguGemOGekOGfkuGemOGeuOGekOGfkuGehOGfg+GekuGfkuGenOGevuGeiuGfhuGejuGevuGemid9PC9oMj5cbiAgICAgIDxGb3JtIGZvcm09e2Zvcm19IGxheW91dD1cInZlcnRpY2FsXCIgb25GaW5pc2g9e29uRmluaXNofSBzdHlsZT17eyBtYXhXaWR0aDogJzEwMCUnLCBtYXJnaW46ICcwIGF1dG8nIH19PlxuICAgICAgICA8Um93IGd1dHRlcj17WzEyLCAxMl19PlxuICAgICAgICAgIDxDb2wgc3Bhbj17MTJ9PlxuICAgICAgICAgICAgPEZvcm0uSXRlbSBsYWJlbD1cIuGeiOGfkuGemOGfhOGfh1wiIG5hbWU9XCJuYW1lXCIgcnVsZXM9e1t7IHJlcXVpcmVkOiB0cnVlLCBtZXNzYWdlOiAnUGxlYXNlIGVudGVyIGEgbmFtZScgfV19PlxuICAgICAgICAgICAgICA8SW5wdXQgLz5cbiAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxuICAgICAgICAgIDwvQ29sPlxuICAgICAgICAgIDxDb2wgc3Bhbj17MTJ9PlxuICAgICAgICAgICAgPEZvcm0uSXRlbSBsYWJlbD1cIuGelOGemuGet+GemeGetuGemVwiIG5hbWU9XCJkZXNjcmlwdGlvblwiPlxuICAgICAgICAgICAgICA8VGV4dEFyZWEgcm93cz17M30gLz5cbiAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxuICAgICAgICAgIDwvQ29sPlxuICAgICAgICA8L1Jvdz5cbiAgICAgICAgPFJvdyBndXR0ZXI9e1sxMiwgMTJdfT5cbiAgICAgICAgICA8Q29sIHNwYW49ezN9PlxuICAgICAgICAgICAgPEZvcm0uSXRlbT5cbiAgICAgICAgICAgICAgPEJ1dHRvbiB0eXBlPVwicHJpbWFyeVwiIGJsb2NrIGh0bWxUeXBlPVwic3VibWl0XCIgbG9hZGluZz17dHJhdmVsRGF5VXBkYXRlUGVuZGluZ30+XG4gICAgICAgICAgICAgICAgU3VibWl0XG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XG4gICAgICAgICAgPC9Db2w+XG4gICAgICAgICAgPENvbCBzcGFuPXszfT5cbiAgICAgICAgICAgIDxGb3JtLkl0ZW0+XG4gICAgICAgICAgICAgIDxCdXR0b24gaHRtbFR5cGU9XCJidXR0b25cIiBvbkNsaWNrPXsoKSA9PiBuYXZpZ2F0ZSgnL3RyYXZlbC1kYXlzJyl9PlxuICAgICAgICAgICAgICAgIENhbmNlbFxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxuICAgICAgICAgIDwvQ29sPlxuICAgICAgICA8L1Jvdz5cbiAgICAgIDwvRm9ybT5cbiAgICA8Lz5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IE5ld0VkaXRUcmF2ZWxEYXlQYWdlO1xuIiwiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBCdXR0b24sIElucHV0LCBTcGFjZSwgVGFibGUgfSBmcm9tICdhbnRkJztcbmltcG9ydCB7IHVzZURpc3BhdGNoLCB1c2VTZWxlY3RvciB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7IFJvb3RTdGF0ZSB9IGZyb20gJy4uLy4uLy4uL3JlZHV4L3N0b3JlJztcbmltcG9ydCB7IHVzZU5hdmlnYXRlIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQgTG9hZGluZ0RpYWxvZyBmcm9tICcuLi8uLi8uLi9jb250YWluZXIvZGlhbG9ncy9sb2FkaW5nLWRpYWxvZyc7XG5pbXBvcnQgeyBEZWxldGVPdXRsaW5lZCwgRWRpdE91dGxpbmVkLCBQbHVzT3V0bGluZWQgfSBmcm9tICdAYW50LWRlc2lnbi9pY29ucyc7XG5pbXBvcnQgeyBkZWxldGVUcmF2ZWxEYXlBY3Rpb24sIHRyYXZlbERheURldGFpbEFjdGlvbiwgZmV0Y2hUcmF2ZWxEYXlzIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvdHJhdmVsX2RheS9jb3JlL2FjdGlvbnMnO1xuaW1wb3J0IFN3YWwgZnJvbSAnc3dlZXRhbGVydDInO1xuXG5jb25zdCBUcmF2ZWxEYXlMaXN0ID0gKCkgPT4ge1xuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG4gIGNvbnN0IG5hdmlnYXRlID0gdXNlTmF2aWdhdGUoKTtcbiAgY29uc3QgW3NlbGVjdGVkUm93cywgc2V0U2VsZWN0ZWRSb3dzXSA9IHVzZVN0YXRlPGFueT4oW10pO1xuICBjb25zdCBbc2VhcmNoVGV4dCwgc2V0U2VhcmNoVGV4dF0gPSB1c2VTdGF0ZSgnJyk7XG4gIGNvbnN0IHsgdHJhdmVsRGF5cywgdHJhdmVsRGF5c1BlbmRpbmcgfSA9IHVzZVNlbGVjdG9yKChzdGF0ZTogUm9vdFN0YXRlKSA9PiBzdGF0ZS50cmF2ZWxEYXkpO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgZGlzcGF0Y2goZmV0Y2hUcmF2ZWxEYXlzKCkpO1xuICB9LCBbZGlzcGF0Y2hdKTtcblxuICBjb25zdCBoYW5kbGVFZGl0ID0gKGlkOiBhbnkpID0+IHtcbiAgICBkaXNwYXRjaCh0cmF2ZWxEYXlEZXRhaWxBY3Rpb24oaWQpKTtcbiAgICBuYXZpZ2F0ZShgL3RyYXZlbC1kYXlzL2Zvcm0/aWQ9JHtpZH1gKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVEZWxldGUgPSAoaWQ6IGFueSkgPT4ge1xuICAgIFN3YWwuZmlyZSh7XG4gICAgICB0aXRsZTogJ0FyZSB5b3Ugc3VyZT8nLFxuICAgICAgdGV4dDogJ1lvdSB3b25cXCd0IGJlIGFibGUgdG8gcmV2ZXJ0IHRoaXMhJyxcbiAgICAgIGljb246ICd3YXJuaW5nJyxcbiAgICAgIHNob3dDb25maXJtQnV0dG9uOiBmYWxzZSxcbiAgICAgIHNob3dDYW5jZWxCdXR0b246IGZhbHNlLFxuICAgICAgaHRtbDogYFxuICAgICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IGdhcDogMTBweDsgbWFyZ2luLXRvcDogMjBweDtcIj5cbiAgICAgICAgICA8YnV0dG9uIGlkPVwiY29uZmlybS1kZWxldGVcIiBjbGFzcz1cInN3YWwyLWNvbmZpcm0gc3dhbDItc3R5bGVkXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiAjZDMzO1wiPkRlbGV0ZTwvYnV0dG9uPlxuICAgICAgICAgIDxidXR0b24gaWQ9XCJjYW5jZWwtZGVsZXRlXCIgY2xhc3M9XCJzd2FsMi1jYW5jZWwgc3dhbDItc3R5bGVkXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiAjMzA4NWQ2O1wiPkNhbmNlbDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIGAsXG4gICAgICBkaWRPcGVuOiAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbmZpcm1CdXR0b24gPSBTd2FsLmdldFBvcHVwKCk/LnF1ZXJ5U2VsZWN0b3IoJyNjb25maXJtLWRlbGV0ZScpO1xuICAgICAgICBjb25zdCBjYW5jZWxCdXR0b24gPSBTd2FsLmdldFBvcHVwKCk/LnF1ZXJ5U2VsZWN0b3IoJyNjYW5jZWwtZGVsZXRlJyk7XG5cbiAgICAgICAgY29uZmlybUJ1dHRvbj8uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XG4gICAgICAgICAgZGlzcGF0Y2goZGVsZXRlVHJhdmVsRGF5QWN0aW9uKGlkKSkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICBTd2FsLmZpcmUoJ0RlbGV0ZWQhJywgJ1RoZSBpdGVtIGhhcyBiZWVuIGRlbGV0ZWQuJywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgIGRpc3BhdGNoKGZldGNoVHJhdmVsRGF5cygpKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBTd2FsLmNsb3NlKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNhbmNlbEJ1dHRvbj8uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XG4gICAgICAgICAgU3dhbC5jbG9zZSgpO1xuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlU2VhcmNoID0gKCkgPT4ge1xuICAgIC8vIFRyaWdnZXJzIHNlYXJjaCBieSBzZXR0aW5nIHN0YXRlXG4gICAgc2V0U2VhcmNoVGV4dChzZWFyY2hUZXh0LnRyaW0oKSk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlUmVzZXQgPSAoKSA9PiB7XG4gICAgLy8gQ2xlYXJzIGlucHV0IGFuZCBzaG93cyBhbGwgZGF0YVxuICAgIHNldFNlYXJjaFRleHQoJycpO1xuICB9O1xuXG4gIGNvbnN0IGNvbHVtbnMgPSBbXG4gICAgeyB0aXRsZTogJ+Gem+GfgeGegeGemuGfgOGehCcsIGRhdGFJbmRleDogJ2luZGV4Jywga2V5OiAnaW5kZXgnLCByZXNwb25zaXZlOiBbJ3NtJ10gfSxcbiAgICB7IHRpdGxlOiAn4Z6I4Z+S4Z6Y4Z+E4Z+HJywgZGF0YUluZGV4OiAnbmFtZScsIGtleTogJ25hbWUnLCByZXNwb25zaXZlOiBbJ3NtJ10gfSxcbiAgICB7IHRpdGxlOiAn4Z6U4Z6a4Z634Z6Z4Z624Z6ZJywgZGF0YUluZGV4OiAnZGVzY3JpcHRpb24nLCBrZXk6ICdkZXNjcmlwdGlvbicsIHJlc3BvbnNpdmU6IFsnc20nXSB9LFxuICAgIHtcbiAgICAgIHRpdGxlOiAnQWN0aW9uJyxcbiAgICAgIGtleTogJ2FjdGlvbicsXG4gICAgICByZXNwb25zaXZlOiBbJ3hzJywgJ3NtJywgJ21kJywgJ2xnJ10sXG4gICAgICByZW5kZXI6IChfOiBzdHJpbmcsIHJlY29yZDogYW55KSA9PiAoXG4gICAgICAgIDxTcGFjZSBzaXplPVwibWlkZGxlXCI+XG4gICAgICAgICAgPEJ1dHRvbiBpY29uPXs8RWRpdE91dGxpbmVkIC8+fSB0eXBlPVwicHJpbWFyeVwiIG9uQ2xpY2s9eygpID0+IGhhbmRsZUVkaXQocmVjb3JkLmlkKX0gLz5cbiAgICAgICAgICA8QnV0dG9uIGljb249ezxEZWxldGVPdXRsaW5lZCAvPn0gZGFuZ2VyIG9uQ2xpY2s9eygpID0+IGhhbmRsZURlbGV0ZShyZWNvcmQuaWQpfSAvPlxuICAgICAgICA8L1NwYWNlPlxuICAgICAgKSxcbiAgICB9LFxuICBdO1xuXG4gIGNvbnN0IGZpbHRlcmVkRGF0YSA9ICh0cmF2ZWxEYXlzIHx8IFtdKS5maWx0ZXIoKGl0KSA9PlxuICAgIGl0Lm5hbWU/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVGV4dC50b0xvd2VyQ2FzZSgpKVxuICApO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBzdHlsZT17eyBvdmVyZmxvd1g6ICdhdXRvJyB9fT5cbiAgICAgIDxoMj7hnpThnonhn5LhnofhnrjhnpDhn5LhnoThn4PhnpLhn5Lhnpzhnr7hnorhn4bhno7hnr7hnpo8L2gyPlxuICAgICAgPGRpdlxuICAgICAgICBzdHlsZT17e1xuICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ3NwYWNlLWJldHdlZW4nLFxuICAgICAgICAgIHBhZGRpbmc6ICcxMHB4JyxcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAnI2Y1ZjVmNScsXG4gICAgICAgICAgbWFyZ2luQm90dG9tOiAnMTBweCcsXG4gICAgICAgICAgZmxleFdyYXA6ICd3cmFwJyxcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgPFNwYWNlIHdyYXA+XG4gICAgICAgICAgPHNwYW4+4Z6f4Z6a4Z674Z6UOiB7ZmlsdGVyZWREYXRhPy5sZW5ndGggfHwgMH08L3NwYW4+XG4gICAgICAgICAgPElucHV0XG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIuGen+GfkuGenOGfguGehOGemuGegC4uLlwiXG4gICAgICAgICAgICBzdHlsZT17eyB3aWR0aDogMjAwIH19XG4gICAgICAgICAgICB2YWx1ZT17c2VhcmNoVGV4dH1cbiAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gc2V0U2VhcmNoVGV4dChlLnRhcmdldC52YWx1ZSl9XG4gICAgICAgICAgLz5cbiAgICAgICAgICA8QnV0dG9uIG9uQ2xpY2s9e2hhbmRsZVNlYXJjaH0gdHlwZT1cInByaW1hcnlcIj7hnoXhnpjhn5Lhnprhn4Thn4c8L0J1dHRvbj5cbiAgICAgICAgICA8QnV0dG9uIG9uQ2xpY2s9e2hhbmRsZVJlc2V0fT7hnoDhn4bhno7hno/hn4vhnqHhnr7hnoThnpzhnrfhnok8L0J1dHRvbj5cbiAgICAgICAgPC9TcGFjZT5cbiAgICAgICAgPFNwYWNlIHdyYXA+XG4gICAgICAgICAgPEJ1dHRvbiBpY29uPXs8UGx1c091dGxpbmVkIC8+fSB0eXBlPVwicHJpbWFyeVwiIG9uQ2xpY2s9eygpID0+IG5hdmlnYXRlKGAvdHJhdmVsLWRheXMvZm9ybWApfT7hnpThnpPhn5LhnpDhn4LhnpjhnpDhn5Lhnpjhnrg8L0J1dHRvbj5cbiAgICAgICAgPC9TcGFjZT5cbiAgICAgIDwvZGl2PlxuICAgICAgPFRhYmxlXG4gICAgICAgIHJvd1NlbGVjdGlvbj17e1xuICAgICAgICAgIHR5cGU6ICdjaGVja2JveCcsXG4gICAgICAgICAgb25DaGFuZ2U6IChfLCBzZWxlY3RlZFJvd3MpID0+IHNldFNlbGVjdGVkUm93cyhzZWxlY3RlZFJvd3MpLFxuICAgICAgICB9fVxuICAgICAgICBjb2x1bW5zPXtjb2x1bW5zfVxuICAgICAgICBkYXRhU291cmNlPXtmaWx0ZXJlZERhdGEubWFwKChpdCwgaW5kZXgpID0+ICh7XG4gICAgICAgICAga2V5OiBpdC5pZCxcbiAgICAgICAgICBpbmRleDogaW5kZXggKyAxLFxuICAgICAgICAgIG5hbWU6IGl0Lm5hbWUsXG4gICAgICAgICAgLi4uaXQsXG4gICAgICAgIH0pKX1cbiAgICAgICAgcGFnaW5hdGlvbj17eyBwYWdlU2l6ZTogMTAsIHNob3dTaXplQ2hhbmdlcjogdHJ1ZSB9fVxuICAgICAgICBzY3JvbGw9e3sgeDogJ21heC1jb250ZW50JyB9fVxuICAgICAgLz5cbiAgICAgIDxMb2FkaW5nRGlhbG9nIHZpc2libGU9e3RyYXZlbERheXNQZW5kaW5nfSAvPlxuICAgIDwvZGl2PlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgVHJhdmVsRGF5TGlzdDtcbiIsImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgRm9ybSwgSW5wdXQsIEJ1dHRvbiwgUm93LCBDb2wsIG1lc3NhZ2UsIE1vZGFsLCBVcGxvYWQsIFVwbG9hZEZpbGUsIFVwbG9hZFByb3BzLCBTZWxlY3QgfSBmcm9tICdhbnRkJztcbmltcG9ydCB7IFJvb3RTdGF0ZSB9IGZyb20gJy4uLy4uLy4uL3JlZHV4L3N0b3JlJztcbmltcG9ydCB7IHVzZURpc3BhdGNoLCB1c2VTZWxlY3RvciB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7IFVzZXIgfSBmcm9tICdAL3NoYXJlZC9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGNyZWF0ZVVzZXJBY3Rpb24sIHVzZXJEZXRhaWxBY3Rpb24sIHVwZGF0ZVVzZXJBY3Rpb24gfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy91c2VyL2NvcmUvYWN0aW9ucyc7XG5pbXBvcnQgeyB1c2VOYXZpZ2F0ZSB9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nO1xuaW1wb3J0IHsgcG9zdFVwbG9hZCB9IGZyb20gJy4uLy4uLy4uLy4uL3NoYXJlZC9jb3JlL2Jhc2Uvc2VydmljZXMnO1xuaW1wb3J0IHsgUGx1c091dGxpbmVkLCBVcGxvYWRPdXRsaW5lZCB9IGZyb20gJ0BhbnQtZGVzaWduL2ljb25zJztcbmltcG9ydCB7IE9wdGlvbiB9IGZyb20gJ2FudGQvZXMvbWVudGlvbnMnO1xuXG5jb25zdCBOZXdFZGl0VXNlclBhZ2U6IFJlYWN0LkZDID0gKCkgPT4ge1xuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG4gIGNvbnN0IG5hdmlnYXRlID0gdXNlTmF2aWdhdGUoKTtcbiAgY29uc3QgeyB1c2VyLCByZWdpc3RlckVycm9yTWVzc2FnZSwgdXNlclVwZGF0ZVBlbmRpbmcgfSA9IHVzZVNlbGVjdG9yKFxuICAgIChzdGF0ZTogUm9vdFN0YXRlKSA9PiBzdGF0ZS51c2VyXG4gICk7XG4gIGNvbnN0IFtmb3JtXSA9IEZvcm0udXNlRm9ybSgpO1xuXG4gIGNvbnN0IHNlYXJjaFBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMobG9jYXRpb24uc2VhcmNoKTtcbiAgY29uc3QgaWQgPSBzZWFyY2hQYXJhbXMuZ2V0KCdpZCcpO1xuICBjb25zdCBbcGhvdG9VcmwsIHNldFBob3RvVXJsXSA9IHVzZVN0YXRlKCcnKTtcbiAgY29uc3QgW3ByZXZpZXdWaXNpYmxlLCBzZXRQcmV2aWV3VmlzaWJsZV0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IFtwcmV2aWV3VGl0bGUsIHNldFByZXZpZXdUaXRsZV0gPSB1c2VTdGF0ZSgnJyk7XG4gIGNvbnN0IFtwcmV2aWV3Q29udGVudCwgc2V0UHJldmlld0NvbnRlbnRdID0gdXNlU3RhdGU8YW55PihudWxsKTtcbiAgY29uc3QgW3Bob3RvTGlzdCwgc2V0UGhvdG9MaXN0XSA9IHVzZVN0YXRlPFVwbG9hZEZpbGVbXT4oW10pO1xuICBjb25zdCB7IGF1dGggfSA9IHVzZVNlbGVjdG9yKChzdGF0ZTogUm9vdFN0YXRlKSA9PiBzdGF0ZSk7IC8vIEdldCB1c2VyIHJvbGVcbiAgY29uc3QgeyBjdXJyZW50VXNlciB9ID0gYXV0aDtcbiAgY29uc3QgaXNBZG1pbiA9IGN1cnJlbnRVc2VyPy5yb2xlID09PSBcInN1cGVyX2FkbWluXCI7IC8vIENoZWNrIGlmIHVzZXIgaXMgYWRtaW5cblxuICBjb25zdCBbaXNDbGljaywgc2V0SXNDbGlja10gPSB1c2VTdGF0ZShmYWxzZSk7XG5cbiAgLy8g8J+RiSBGZXRjaCBkYXRhIHdoZW4gZWRpdGluZyBvciByZXNldCBmb3JtIHdoZW4gYWRkaW5nXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlkKSB7XG4gICAgICBkaXNwYXRjaCh1c2VyRGV0YWlsQWN0aW9uKE51bWJlcihpZCkpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZm9ybS5yZXNldEZpZWxkcygpOyAvLyBSZXNldCBmb3JtIGZpZWxkcyB3aGVuIGFkZGluZyBhIG5ldyBpdGVtXG4gICAgfVxuICB9LCBbZGlzcGF0Y2gsIGlkLCBmb3JtXSk7XG5cbiAgLy8g8J+RiSBQb3B1bGF0ZSBmb3JtIHdpdGggZmV0Y2hlZCBkYXRhXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlkICYmIHVzZXIpIHtcbiAgICAgIGZvcm0uc2V0RmllbGRzVmFsdWUoe1xuICAgICAgICBmaXJzdF9uYW1lOiB1c2VyLmZpcnN0X25hbWUgfHwgJycsXG4gICAgICAgIGxhc3RfbmFtZTogdXNlci5sYXN0X25hbWUgfHwgJycsXG4gICAgICAgIHVzZXJuYW1lOiB1c2VyLnVzZXJuYW1lIHx8ICcnLFxuICAgICAgICBlbWFpbDogdXNlci5lbWFpbCB8fCAnJyxcbiAgICAgICAgcGhvbmU6IHVzZXIucGhvbmUgfHwgJycsXG4gICAgICAgIHJvbGU6IHVzZXIucm9sZSB8fCAnJyxcbiAgICAgICAgdGVsZWdyYW1faWQ6IHVzZXIudGVsZWdyYW1faWQgfHwgJycsXG4gICAgICAgIHBob3RvX3VybDogdXNlci5waG90b191cmwgfHwgJycsXG4gICAgICAgIGdyYWRfdHlwZTogdXNlci5ncmFkX3R5cGUgfHwgJycsXG4gICAgICAgIHN0YXR1czogdXNlci5zdGF0dXMgfHwgJycsXG4gICAgICB9KTtcblxuICAgICAgc2V0UGhvdG9VcmwodXNlci5waG90b191cmwgfHwgJycpO1xuICAgIH1cbiAgfSwgW3VzZXIsIGZvcm0sIGlkXSk7XG5cbiAgLy8g8J+RiSBTaG93IHN1Y2Nlc3Mgb3IgZXJyb3IgYWxlcnRzXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCF1c2VyVXBkYXRlUGVuZGluZyAmJiBpc0NsaWNrKSB7XG4gICAgICBpZiAocmVnaXN0ZXJFcnJvck1lc3NhZ2UpIHtcbiAgICAgICAgbWVzc2FnZS5lcnJvcihyZWdpc3RlckVycm9yTWVzc2FnZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBtZXNzYWdlLnN1Y2Nlc3MoaWQgPyAnVXBkYXRlZCBzdWNjZXNzZnVsbHkhJyA6ICdDcmVhdGVkIHN1Y2Nlc3NmdWxseSEnKTtcbiAgICAgICAgbmF2aWdhdGUoJy91c2VycycpO1xuICAgICAgfVxuICAgIH1cbiAgfSwgW3VzZXJVcGRhdGVQZW5kaW5nLCByZWdpc3RlckVycm9yTWVzc2FnZSwgaWQsIGlzQ2xpY2ssIG5hdmlnYXRlXSk7XG5cblxuICAvLyBDb21tb24gaGVscGVyIGZ1bmN0aW9uIGZvciBmaWxlIHVwbG9hZHNcbiAgY29uc3QgaGFuZGxlRmlsZUNoYW5nZSA9IGFzeW5jIChcbiAgICBmaWxlOiBGaWxlLFxuICAgIGZpZWxkTmFtZTogc3RyaW5nLFxuICAgIGZvcm06IGFueVxuICApID0+IHtcbiAgICBpZiAoIWlzQWRtaW4pIHJldHVybjsgLy8gUmVzdHJpY3QgZWRpdCBhY2Nlc3NcbiAgICBpZiAoIWZpbGUpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYCR7ZmllbGROYW1lfSBVcGxvYWQgRXJyb3I6IE5vIGZpbGUgc2VsZWN0ZWQuYCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgICBmb3JtRGF0YS5hcHBlbmQoXCJmaWxlXCIsIGZpbGUpO1xuXG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHBvc3RVcGxvYWQoZm9ybURhdGEpO1xuXG4gICAgICBpZiAocmVzcG9uc2U/LnVybCkge1xuICAgICAgICBmb3JtLnNldEZpZWxkc1ZhbHVlKHsgW2ZpZWxkTmFtZV06IHJlc3BvbnNlLnVybCB9KTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcihgJHtmaWVsZE5hbWV9IFVwbG9hZCBFcnJvcjpgLCBlcnJvcik7XG4gICAgfVxuICB9O1xuICBjb25zdCBoYW5kbGVQaG90b1VwbG9hZENoYW5nZSA9IGFzeW5jIChwaG90b0ZpbGU6IEZpbGUpID0+IHtcbiAgICBpZiAoIWlzQWRtaW4pIHJldHVybjsgLy8gUmVzdHJpY3QgZWRpdCBhY2Nlc3NcbiAgICBhd2FpdCBoYW5kbGVGaWxlQ2hhbmdlKHBob3RvRmlsZSwgXCJwaG90b191cmxcIiwgZm9ybSk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlRmlsZUNoYW5nZU5ldyA9IGFzeW5jIChcbiAgICBmaWxlTGlzdDogVXBsb2FkRmlsZVtdLFxuICAgIHNldEZpbGVMaXN0OiBSZWFjdC5EaXNwYXRjaDxSZWFjdC5TZXRTdGF0ZUFjdGlvbjxVcGxvYWRGaWxlW10+PixcbiAgICBmaWVsZE5hbWU6IHN0cmluZ1xuICApID0+IHtcbiAgICAvLyB1cGRhdGVkRmlsZUxpc3Q6IG1hcmsgYWxsIGZpbGVzIGFzIFwidXBsb2FkaW5nXCJcbiAgICBjb25zdCB1cGRhdGVkRmlsZUxpc3QgPSBmaWxlTGlzdC5tYXAoKGZpbGUpOiBVcGxvYWRGaWxlID0+ICh7XG4gICAgICAuLi5maWxlLFxuICAgICAgc3RhdHVzOiBcInVwbG9hZGluZ1wiLCAvLyBpbmZlcnJlZCBhcyB0aGUgbGl0ZXJhbCBcInVwbG9hZGluZ1wiXG4gICAgfSkpO1xuICAgIHNldEZpbGVMaXN0KHVwZGF0ZWRGaWxlTGlzdCk7XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcbiAgICAgIHVwZGF0ZWRGaWxlTGlzdC5mb3JFYWNoKChmaWxlKSA9PiB7XG4gICAgICAgIGlmIChmaWxlLm9yaWdpbkZpbGVPYmopIHtcbiAgICAgICAgICBmb3JtRGF0YS5hcHBlbmQoXCJmaWxlXCIsIGZpbGUub3JpZ2luRmlsZU9iaik7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHBvc3RVcGxvYWQoZm9ybURhdGEpO1xuICAgICAgaWYgKHJlc3BvbnNlLnVybCkge1xuICAgICAgICBmb3JtLnNldEZpZWxkc1ZhbHVlKHsgW2ZpZWxkTmFtZV06IHJlc3BvbnNlLnVybCB9KTtcbiAgICAgICAgLy8gZG9uZUZpbGVMaXN0OiBtYXJrIGFsbCBmaWxlcyBhcyBcImRvbmVcIiBvbiBzdWNjZXNzZnVsIHVwbG9hZFxuICAgICAgICBjb25zdCBkb25lRmlsZUxpc3QgPSB1cGRhdGVkRmlsZUxpc3QubWFwKChmaWxlKTogVXBsb2FkRmlsZSA9PiAoe1xuICAgICAgICAgIC4uLmZpbGUsXG4gICAgICAgICAgc3RhdHVzOiBcImRvbmVcIixcbiAgICAgICAgfSkpO1xuICAgICAgICBzZXRGaWxlTGlzdChkb25lRmlsZUxpc3QpO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGAke2ZpZWxkTmFtZX0gVXBsb2FkIEVycm9yOmAsIGVycm9yKTtcbiAgICAgIC8vIGVycm9yRmlsZUxpc3Q6IG1hcmsgYWxsIGZpbGVzIGFzIFwiZXJyb3JcIiBvbiBmYWlsdXJlXG4gICAgICBjb25zdCBlcnJvckZpbGVMaXN0ID0gdXBkYXRlZEZpbGVMaXN0Lm1hcCgoZmlsZSk6IFVwbG9hZEZpbGUgPT4gKHtcbiAgICAgICAgLi4uZmlsZSxcbiAgICAgICAgc3RhdHVzOiBcImVycm9yXCIsXG4gICAgICB9KSk7XG4gICAgICBzZXRGaWxlTGlzdChlcnJvckZpbGVMaXN0KTtcbiAgICB9XG4gIH07XG5cblxuICBjb25zdCBoYW5kbGVQaG90b1VwbG9hZENoYW5nZU5ldzogVXBsb2FkUHJvcHNbXCJvbkNoYW5nZVwiXSA9IGFzeW5jICh7IGZpbGVMaXN0IH0pID0+IHtcbiAgICBhd2FpdCBoYW5kbGVGaWxlQ2hhbmdlTmV3KGZpbGVMaXN0LCBzZXRQaG90b0xpc3QsIFwicGhvdG9fdXJsXCIpO1xuICB9O1xuXG4gIGNvbnN0IGJlZm9yZVVwbG9hZCA9IChmaWxlOiBhbnkpID0+IHtcbiAgICBjb25zdCBpc0ltYWdlID0gZmlsZS50eXBlLnN0YXJ0c1dpdGgoXCJpbWFnZS9cIik7XG4gICAgaWYgKCFpc0ltYWdlKSB7XG4gICAgICBtZXNzYWdlLmVycm9yKFwiWW91IGNhbiBvbmx5IHVwbG9hZCBpbWFnZSBmaWxlcyAoSlBHL1BORykhXCIpO1xuICAgIH1cbiAgICByZXR1cm4gaXNJbWFnZTtcbiAgfTtcblxuICAvLyDwn5GJIEhhbmRsZSBmb3JtIHN1Ym1pdFxuICBjb25zdCBvbkZpbmlzaCA9ICh2YWx1ZXM6IFVzZXIpID0+IHtcbiAgICBpZiAoaWQpIHtcbiAgICAgIGRpc3BhdGNoKHVwZGF0ZVVzZXJBY3Rpb24oeyBpZDogTnVtYmVyKGlkKSwgZGF0YTogdmFsdWVzIH0pKTtcbiAgICAgIGZvcm0ucmVzZXRGaWVsZHMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGlzcGF0Y2goY3JlYXRlVXNlckFjdGlvbih7IGRhdGE6IHZhbHVlcyB9KSk7XG4gICAgICBmb3JtLnJlc2V0RmllbGRzKCk7IC8vIFJlc2V0IGZvcm0gYWZ0ZXIgc3VjY2Vzc2Z1bCBjcmVhdGlvblxuICAgIH1cbiAgICBzZXRJc0NsaWNrKHRydWUpO1xuICB9O1xuXG5cbiAgY29uc3QgaGFuZGxlUHJldmlldyA9ICh1cmw6IHN0cmluZywgdGl0bGU6IHN0cmluZykgPT4ge1xuICAgIHNldFByZXZpZXdUaXRsZSh0aXRsZSk7XG4gICAgc2V0UHJldmlld0NvbnRlbnQoPGRpdiBzdHlsZT17eyB3aWR0aDogJzcwJScsIG1hcmdpbjogJ2F1dG8nIH19PjxpbWcgc3JjPXt1cmx9IGFsdD17dGl0bGV9IHN0eWxlPXt7IHdpZHRoOiAnMTAwJScgfX0gLz48L2Rpdj4pO1xuICAgIHNldFByZXZpZXdWaXNpYmxlKHRydWUpO1xuICB9O1xuXG4gIGNvbnN0IHVwbG9hZEJ1dHRvbiA9IChcbiAgICB1cmw6IHN0cmluZyxcbiAgICBzZXRVcmw6IFJlYWN0LkRpc3BhdGNoPFJlYWN0LlNldFN0YXRlQWN0aW9uPHN0cmluZz4+LFxuICAgIGxhYmVsOiBzdHJpbmcsXG4gICAgZmllbGROYW1lOiBzdHJpbmdcbiAgKSA9PiAoXG4gICAgPGRpdiBzdHlsZT17eyBwb3NpdGlvbjogJ3JlbGF0aXZlJywgZGlzcGxheTogJ2lubGluZS1ibG9jaycgfX0+XG4gICAgICB7dXJsID8gKFxuICAgICAgICA8PlxuICAgICAgICAgIDxkaXYgc3R5bGU9e3sgY3Vyc29yOiAncG9pbnRlcicgfX0gb25DbGljaz17KCkgPT4gaGFuZGxlUHJldmlldyh1cmwsIGxhYmVsKX0+XG4gICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgIHNyYz17dXJsfVxuICAgICAgICAgICAgICBhbHQ9e2xhYmVsfVxuICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgICAgICAgICAgbWF4SGVpZ2h0OiAnMzAwcHgnLFxuICAgICAgICAgICAgICAgIGJvcmRlclJhZGl1czogJzhweCcsXG4gICAgICAgICAgICAgICAgZGlzcGxheTogJ2Jsb2NrJyxcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgaWNvbj17PFBsdXNPdXRsaW5lZCAvPn1cbiAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICBzdHlsZT17eyBwb3NpdGlvbjogJ2Fic29sdXRlJywgYm90dG9tOiAxMiwgcmlnaHQ6IDgsIGJhY2tncm91bmQ6ICcjMTg5MGZmJywgY29sb3I6ICcjZmZmJyB9fVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYHVwbG9hZC0ke2xhYmVsfWApPy5jbGljaygpfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICBpZD17YHVwbG9hZC0ke2xhYmVsfWB9XG4gICAgICAgICAgICB0eXBlPVwiZmlsZVwiXG4gICAgICAgICAgICBzdHlsZT17eyBkaXNwbGF5OiAnbm9uZScgfX1cbiAgICAgICAgICAgIG9uQ2hhbmdlPXsoZTogYW55KSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IGZpbGUgPSBlLnRhcmdldC5maWxlc1swXTtcbiAgICAgICAgICAgICAgaWYgKGZpbGUpIHtcbiAgICAgICAgICAgICAgICAvLyBZb3UgY2FuIGFkZCB5b3VyIGxvZ2ljIGhlcmUgZm9yIGRpZmZlcmVudCBmaWxlIGhhbmRsaW5nXG4gICAgICAgICAgICAgICAgaGFuZGxlUGhvdG9VcGxvYWRDaGFuZ2UoZmlsZSk7XG4gICAgICAgICAgICAgICAgc2V0VXJsKFVSTC5jcmVhdGVPYmplY3RVUkwoZmlsZSkpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9fVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvPlxuICAgICAgKSA6IChcbiAgICAgICAgPD5cbiAgICAgICAgICA8VXBsb2FkXG4gICAgICAgICAgICBsaXN0VHlwZT1cInBpY3R1cmVcIlxuICAgICAgICAgICAgZmlsZUxpc3Q9e3Bob3RvTGlzdH1cbiAgICAgICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVQaG90b1VwbG9hZENoYW5nZU5ld31cbiAgICAgICAgICAgIGJlZm9yZVVwbG9hZD17YmVmb3JlVXBsb2FkfVxuICAgICAgICAgICAgc2hvd1VwbG9hZExpc3Q9e3sgc2hvd1ByZXZpZXdJY29uOiB0cnVlLCBzaG93UmVtb3ZlSWNvbjogdHJ1ZSB9fVxuICAgICAgICAgICAgY2xhc3NOYW1lPVwidy1mdWxsIGN1c3RvbS11cGxvYWRcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxVcGxvYWRPdXRsaW5lZCAvPlxuICAgICAgICAgIDwvVXBsb2FkPlxuICAgICAgICA8Lz5cbiAgICAgICl9XG4gICAgPC9kaXY+XG4gICk7XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPGgyPntpZCA/ICfhnoDhn4LhnpThn5Lhnprhn4LhnqLhn5LhnpPhnoDhnpThn5Lhnprhnr7hnpThn5Lhnprhnrbhnp/hn4snIDogJ+GelOGek+GfkuGekOGfguGemOGekOGfkuGemOGeuOGeouGfkuGek+GegOGelOGfkuGemuGevuGelOGfkuGemuGetuGen+Gfiyd9PC9oMj5cbiAgICAgIDxGb3JtIGZvcm09e2Zvcm19IGxheW91dD1cInZlcnRpY2FsXCIgb25GaW5pc2g9e29uRmluaXNofSBzdHlsZT17eyBtYXhXaWR0aDogJzEwMCUnLCBtYXJnaW46ICcwIGF1dG8nIH19PlxuICAgICAgICA8Um93IGd1dHRlcj17WzEyLCAxMl19PlxuICAgICAgICAgIDxDb2wgc3Bhbj17Nn0+XG4gICAgICAgICAgICA8Rm9ybS5JdGVtIGxhYmVsPVwi4Z6a4Z684Z6U4Z6Q4Z6PXCIgbmFtZT1cInBob3RvX3VybFwiPlxuICAgICAgICAgICAgICB7dXBsb2FkQnV0dG9uKHBob3RvVXJsLCBzZXRQaG90b1VybCwgJ+GemuGevOGelOGekOGejycsICdwaG90b191cmwnKX1cbiAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxuICAgICAgICAgIDwvQ29sPlxuICAgICAgICAgIDxDb2wgc3Bhbj17MTh9PlxuICAgICAgICAgICAgPFJvdyBndXR0ZXI9e1sxMiwgMF19PlxuICAgICAgICAgICAgICA8Q29sIHNwYW49ezh9PlxuICAgICAgICAgICAgICAgIDxGb3JtLkl0ZW0gbGFiZWw9XCLhnpPhnrbhnpjhnoHhn5Lhnpvhnr3hnpNcIiBuYW1lPVwiZmlyc3RfbmFtZVwiIHJ1bGVzPXtbeyByZXF1aXJlZDogZmFsc2UgfV19PlxuICAgICAgICAgICAgICAgICAgPElucHV0IC8+XG4gICAgICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XG4gICAgICAgICAgICAgIDwvQ29sPlxuICAgICAgICAgICAgICA8Q29sIHNwYW49ezh9PlxuICAgICAgICAgICAgICAgIDxGb3JtLkl0ZW0gbGFiZWw9XCLhnpPhnrbhnpjhno/hn5LhnprhnoDhnrzhnptcIiBuYW1lPVwibGFzdF9uYW1lXCIgcnVsZXM9e1t7IHJlcXVpcmVkOiBmYWxzZSB9XX0+XG4gICAgICAgICAgICAgICAgICA8SW5wdXQgLz5cbiAgICAgICAgICAgICAgICA8L0Zvcm0uSXRlbT5cbiAgICAgICAgICAgICAgPC9Db2w+XG4gICAgICAgICAgICAgIDxDb2wgc3Bhbj17OH0+XG4gICAgICAgICAgICAgICAgPEZvcm0uSXRlbSBsYWJlbD1cIuGeiOGfkuGemOGfhOGfh+GeouGfkuGek+GegOGelOGfkuGemuGevuGelOGfkuGemuGetuGen+Gfi1wiIG5hbWU9XCJ1c2VybmFtZVwiIHJ1bGVzPXtbeyByZXF1aXJlZDogZmFsc2UgfV19PlxuICAgICAgICAgICAgICAgICAgPElucHV0IC8+XG4gICAgICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XG4gICAgICAgICAgICAgIDwvQ29sPlxuICAgICAgICAgICAgPC9Sb3c+XG4gICAgICAgICAgICA8Um93IGd1dHRlcj17WzEyLCAwXX0+XG4gICAgICAgICAgICAgIDxDb2wgc3Bhbj17OH0+XG4gICAgICAgICAgICAgICAgPEZvcm0uSXRlbSBsYWJlbD1cIuGeouGfiuGeuOGemOGfguGem1wiIG5hbWU9XCJlbWFpbFwiIHJ1bGVzPXtbeyByZXF1aXJlZDogZmFsc2UgfV19PlxuICAgICAgICAgICAgICAgICAgPElucHV0IC8+XG4gICAgICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XG4gICAgICAgICAgICAgIDwvQ29sPlxuICAgICAgICAgICAgICA8Q29sIHNwYW49ezh9PlxuICAgICAgICAgICAgICAgIDxGb3JtLkl0ZW0gbGFiZWw9XCLhnpvhn4HhnoHhnpHhnrzhnprhnp/hn5Dhnpbhn5LhnpFcIiBuYW1lPVwicGhvbmVcIiBydWxlcz17W3sgcmVxdWlyZWQ6IGZhbHNlIH1dfT5cbiAgICAgICAgICAgICAgICAgIDxJbnB1dCAvPlxuICAgICAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxuICAgICAgICAgICAgICA8L0NvbD5cbiAgICAgICAgICAgICAgPENvbCBzcGFuPXs4fT5cbiAgICAgICAgICAgICAgICA8Rm9ybS5JdGVtIGxhYmVsPVwi4Z6P4Z694Z6T4Z624Z6R4Z64XCIgbmFtZT1cInJvbGVcIiBydWxlcz17W3sgcmVxdWlyZWQ6IGZhbHNlIH1dfT5cbiAgICAgICAgICAgICAgICAgIDxTZWxlY3Q+XG4gICAgICAgICAgICAgICAgICAgIDxPcHRpb24gdmFsdWU9XCJzdXBlcl9hZG1pblwiPlN1cGVyIGFkbWluPC9PcHRpb24+XG4gICAgICAgICAgICAgICAgICAgIDxPcHRpb24gdmFsdWU9XCJhZG1pblwiPkFkbWluPC9PcHRpb24+XG4gICAgICAgICAgICAgICAgICAgIDxPcHRpb24gdmFsdWU9XCJ1c2VyXCI+VXNlcjwvT3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICA8T3B0aW9uIHZhbHVlPVwicmVwb3J0ZXJcIj5SZXBvcnRlcjwvT3B0aW9uPlxuICAgICAgICAgICAgICAgICAgPC9TZWxlY3Q+XG4gICAgICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XG4gICAgICAgICAgICAgIDwvQ29sPlxuICAgICAgICAgICAgPC9Sb3c+XG4gICAgICAgICAgICA8Um93IGd1dHRlcj17WzEyLCAwXX0+XG4gICAgICAgICAgICAgIDxDb2wgc3Bhbj17OH0+XG4gICAgICAgICAgICAgICAgPEZvcm0uSXRlbSBsYWJlbD1cIuGej+GfgeGem+GfgeGegOGfkuGemuGetuGemOKAiyBJRFwiIG5hbWU9XCJ0ZWxlZ3JhbV9pZFwiIHJ1bGVzPXtbeyByZXF1aXJlZDogZmFsc2UgfV19PlxuICAgICAgICAgICAgICAgICAgPElucHV0IC8+XG4gICAgICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XG4gICAgICAgICAgICAgIDwvQ29sPlxuICAgICAgICAgICAgICA8Q29sIHNwYW49ezh9PlxuICAgICAgICAgICAgICAgIDxGb3JtLkl0ZW0gbGFiZWw9XCLhnpThn5Lhnprhnpfhn4HhnpFcIiBuYW1lPVwiZ3JhZF90eXBlXCIgcnVsZXM9e1t7IHJlcXVpcmVkOiBmYWxzZSB9XX0+XG4gICAgICAgICAgICAgICAgICA8U2VsZWN0PlxuICAgICAgICAgICAgICAgICAgICA8T3B0aW9uIHZhbHVlPVwicGFzc3dvcmRcIj5QYXNzd29yZDwvT3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICA8T3B0aW9uIHZhbHVlPVwidGVsZWdyYW1cIj5UZWxlZ3JhbTwvT3B0aW9uPlxuICAgICAgICAgICAgICAgICAgPC9TZWxlY3Q+XG4gICAgICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XG4gICAgICAgICAgICAgIDwvQ29sPlxuICAgICAgICAgICAgICA8Q29sIHNwYW49ezh9PlxuICAgICAgICAgICAgICAgIDxGb3JtLkl0ZW0gbGFiZWw9XCLhnp/hn5LhnpDhnrbhnpPhnpfhnrbhnpZcIiBuYW1lPVwic3RhdHVzXCIgcnVsZXM9e1t7IHJlcXVpcmVkOiBmYWxzZSB9XX0+XG4gICAgICAgICAgICAgICAgICA8U2VsZWN0PlxuICAgICAgICAgICAgICAgICAgICA8T3B0aW9uIHZhbHVlPVwiQUNUSVZFXCI+QWN0aXZlPC9PcHRpb24+XG4gICAgICAgICAgICAgICAgICAgIDxPcHRpb24gdmFsdWU9XCJESVNBQkxFXCI+RGlzYWJsZTwvT3B0aW9uPlxuICAgICAgICAgICAgICAgICAgPC9TZWxlY3Q+XG4gICAgICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XG4gICAgICAgICAgICAgIDwvQ29sPlxuICAgICAgICAgICAgPC9Sb3c+XG4gICAgICAgICAgICB7IWlkICYmXG4gICAgICAgICAgICAgIDxSb3cgZ3V0dGVyPXtbMTIsIDBdfT5cbiAgICAgICAgICAgICAgICA8Q29sIHNwYW49ezh9PlxuICAgICAgICAgICAgICAgICAgPEZvcm0uSXRlbSBsYWJlbD1cIuGeluGetuGegOGfkuGemeGen+GemOGfkuGehOGetuGej+Gfi1wiIG5hbWU9XCJwYXNzd29yZFwiIHJ1bGVzPXtbeyByZXF1aXJlZDogZmFsc2UgfV19PlxuICAgICAgICAgICAgICAgICAgICA8SW5wdXQgdHlwZT0ncGFzc3dvcmQnIC8+XG4gICAgICAgICAgICAgICAgICA8L0Zvcm0uSXRlbT5cbiAgICAgICAgICAgICAgICA8L0NvbD5cbiAgICAgICAgICAgICAgPC9Sb3c+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9Db2w+XG4gICAgICAgIDwvUm93PlxuICAgICAgICA8YnIgLz5cbiAgICAgICAgPFJvdyBndXR0ZXI9e1sxMiwgMTJdfSBqdXN0aWZ5PSdlbmQnPlxuICAgICAgICAgIDxDb2wgc3Bhbj17M30+XG4gICAgICAgICAgICA8Rm9ybS5JdGVtPlxuICAgICAgICAgICAgICA8QnV0dG9uIHR5cGU9XCJwcmltYXJ5XCIgYmxvY2sgaHRtbFR5cGU9XCJzdWJtaXRcIiBsb2FkaW5nPXt1c2VyVXBkYXRlUGVuZGluZ30+XG4gICAgICAgICAgICAgICAgU3VibWl0XG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XG4gICAgICAgICAgPC9Db2w+XG4gICAgICAgICAgPENvbCBzcGFuPXszfT5cbiAgICAgICAgICAgIDxGb3JtLkl0ZW0+XG4gICAgICAgICAgICAgIDxCdXR0b24gaHRtbFR5cGU9XCJidXR0b25cIiBvbkNsaWNrPXsoKSA9PiBuYXZpZ2F0ZSgnL3VzZXJzJyl9PlxuICAgICAgICAgICAgICAgIENhbmNlbFxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxuICAgICAgICAgIDwvQ29sPlxuICAgICAgICA8L1Jvdz5cblxuICAgICAgICA8TW9kYWwgdmlzaWJsZT17cHJldmlld1Zpc2libGV9IHRpdGxlPXtwcmV2aWV3VGl0bGV9IGZvb3Rlcj17bnVsbH0gb25DYW5jZWw9eygpID0+IHNldFByZXZpZXdWaXNpYmxlKGZhbHNlKX0+XG4gICAgICAgICAge3ByZXZpZXdDb250ZW50fVxuICAgICAgICA8L01vZGFsPlxuICAgICAgPC9Gb3JtPlxuICAgIDwvPlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgTmV3RWRpdFVzZXJQYWdlO1xuIiwiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBCdXR0b24sIEltYWdlLCBJbnB1dCwgU3BhY2UsIFRhYmxlIH0gZnJvbSAnYW50ZCc7XG5pbXBvcnQgeyB1c2VEaXNwYXRjaCwgdXNlU2VsZWN0b3IgfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQgeyBSb290U3RhdGUgfSBmcm9tICcuLi8uLi8uLi9yZWR1eC9zdG9yZSc7XG5pbXBvcnQgeyB1c2VOYXZpZ2F0ZSB9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nO1xuaW1wb3J0IExvYWRpbmdEaWFsb2cgZnJvbSAnLi4vLi4vLi4vY29udGFpbmVyL2RpYWxvZ3MvbG9hZGluZy1kaWFsb2cnO1xuaW1wb3J0IHsgRGVsZXRlT3V0bGluZWQsIEVkaXRPdXRsaW5lZCwgUGx1c091dGxpbmVkIH0gZnJvbSAnQGFudC1kZXNpZ24vaWNvbnMnO1xuaW1wb3J0IHsgZGVsZXRlVXNlckFjdGlvbiwgdXNlckRldGFpbEFjdGlvbiwgZmV0Y2hVc2VycyB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL3VzZXIvY29yZS9hY3Rpb25zJztcbmltcG9ydCBTd2FsIGZyb20gJ3N3ZWV0YWxlcnQyJztcblxuY29uc3QgVXNlckxpc3QgPSAoKSA9PiB7XG4gIGNvbnN0IGRpc3BhdGNoID0gdXNlRGlzcGF0Y2goKTtcbiAgY29uc3QgbmF2aWdhdGUgPSB1c2VOYXZpZ2F0ZSgpO1xuICBjb25zdCBbc2VsZWN0ZWRSb3dzLCBzZXRTZWxlY3RlZFJvd3NdID0gdXNlU3RhdGU8YW55PihbXSk7XG4gIGNvbnN0IFtzZWFyY2hUZXh0LCBzZXRTZWFyY2hUZXh0XSA9IHVzZVN0YXRlKCcnKTtcbiAgY29uc3QgeyB1c2VycywgdXNlcnNQZW5kaW5nIH0gPSB1c2VTZWxlY3Rvcigoc3RhdGU6IFJvb3RTdGF0ZSkgPT4gc3RhdGUudXNlcik7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBkaXNwYXRjaChmZXRjaFVzZXJzKCkpO1xuICB9LCBbZGlzcGF0Y2hdKTtcblxuICBjb25zdCBoYW5kbGVFZGl0ID0gKGlkOiBhbnkpID0+IHtcbiAgICBkaXNwYXRjaCh1c2VyRGV0YWlsQWN0aW9uKGlkKSk7XG4gICAgbmF2aWdhdGUoYC91c2Vycy9mb3JtP2lkPSR7aWR9YCk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlRGVsZXRlID0gKGlkOiBhbnkpID0+IHtcbiAgICBTd2FsLmZpcmUoe1xuICAgICAgdGl0bGU6ICdBcmUgeW91IHN1cmU/JyxcbiAgICAgIHRleHQ6ICdZb3Ugd29uXFwndCBiZSBhYmxlIHRvIHJldmVydCB0aGlzIScsXG4gICAgICBpY29uOiAnd2FybmluZycsXG4gICAgICBzaG93Q29uZmlybUJ1dHRvbjogZmFsc2UsXG4gICAgICBzaG93Q2FuY2VsQnV0dG9uOiBmYWxzZSxcbiAgICAgIGh0bWw6IGBcbiAgICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGp1c3RpZnktY29udGVudDogY2VudGVyOyBnYXA6IDEwcHg7IG1hcmdpbi10b3A6IDIwcHg7XCI+XG4gICAgICAgICAgPGJ1dHRvbiBpZD1cImNvbmZpcm0tZGVsZXRlXCIgY2xhc3M9XCJzd2FsMi1jb25maXJtIHN3YWwyLXN0eWxlZFwiIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogI2QzMztcIj5EZWxldGU8L2J1dHRvbj5cbiAgICAgICAgICA8YnV0dG9uIGlkPVwiY2FuY2VsLWRlbGV0ZVwiIGNsYXNzPVwic3dhbDItY2FuY2VsIHN3YWwyLXN0eWxlZFwiIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogIzMwODVkNjtcIj5DYW5jZWw8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICBgLFxuICAgICAgZGlkT3BlbjogKCkgPT4ge1xuICAgICAgICBjb25zdCBjb25maXJtQnV0dG9uID0gU3dhbC5nZXRQb3B1cCgpPy5xdWVyeVNlbGVjdG9yKCcjY29uZmlybS1kZWxldGUnKTtcbiAgICAgICAgY29uc3QgY2FuY2VsQnV0dG9uID0gU3dhbC5nZXRQb3B1cCgpPy5xdWVyeVNlbGVjdG9yKCcjY2FuY2VsLWRlbGV0ZScpO1xuXG4gICAgICAgIGNvbmZpcm1CdXR0b24/LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgICAgIGRpc3BhdGNoKGRlbGV0ZVVzZXJBY3Rpb24oaWQpKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIFN3YWwuZmlyZSgnRGVsZXRlZCEnLCAnVGhlIGl0ZW0gaGFzIGJlZW4gZGVsZXRlZC4nLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgZGlzcGF0Y2goZmV0Y2hVc2VycygpKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBTd2FsLmNsb3NlKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNhbmNlbEJ1dHRvbj8uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XG4gICAgICAgICAgU3dhbC5jbG9zZSgpO1xuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlU2VhcmNoID0gKCkgPT4ge1xuICAgIC8vIFRyaWdnZXJzIHNlYXJjaCBieSBzZXR0aW5nIHN0YXRlXG4gICAgc2V0U2VhcmNoVGV4dChzZWFyY2hUZXh0LnRyaW0oKSk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlUmVzZXQgPSAoKSA9PiB7XG4gICAgLy8gQ2xlYXJzIGlucHV0IGFuZCBzaG93cyBhbGwgZGF0YVxuICAgIHNldFNlYXJjaFRleHQoJycpO1xuICB9O1xuXG4gIGNvbnN0IGNvbHVtbnMgPSBbXG4gICAgeyB0aXRsZTogJ+Gem+GfgeGegeGemuGfgOGehCcsIGRhdGFJbmRleDogJ2luZGV4Jywga2V5OiAnaW5kZXgnLCByZXNwb25zaXZlOiBbJ3NtJ10gfSxcbiAgICB7IHRpdGxlOiAn4Z6T4Z624Z6Y4Z6B4Z+S4Z6b4Z694Z6TJywgZGF0YUluZGV4OiAnZmlyc3RfbmFtZScsIGtleTogJ2ZpcnN0X25hbWUnLCByZXNwb25zaXZlOiBbJ3NtJ10gfSxcbiAgICB7IHRpdGxlOiAn4Z6T4Z624Z6Y4Z6P4Z+S4Z6a4Z6A4Z684Z6bJywgZGF0YUluZGV4OiAnbGFzdF9uYW1lJywga2V5OiAnbGFzdF9uYW1lJywgcmVzcG9uc2l2ZTogWydzbSddIH0sXG4gICAgeyB0aXRsZTogJ+GeiOGfkuGemOGfhOGfh+GeouGfkuGek+GegOGelOGfkuGemuGevuGelOGfkuGemuGetuGen+GfiycsIGRhdGFJbmRleDogJ3VzZXJuYW1lJywga2V5OiAndXNlcm5hbWUnLCByZXNwb25zaXZlOiBbJ3NtJ10gfSxcbiAgICB7IHRpdGxlOiAn4Z6i4Z+K4Z644Z6Y4Z+C4Z6bJywgZGF0YUluZGV4OiAnZW1haWwnLCBrZXk6ICdlbWFpbCcsIHJlc3BvbnNpdmU6IFsnc20nXSB9LFxuICAgIHsgdGl0bGU6ICfhnpvhn4HhnoHhnpHhnrzhnprhnp/hn5Dhnpbhn5LhnpEnLCBkYXRhSW5kZXg6ICdwaG9uZScsIGtleTogJ3Bob25lJywgcmVzcG9uc2l2ZTogWydzbSddIH0sXG4gICAgeyB0aXRsZTogJ+Gej+GeveGek+GetuGekeGeuCcsIGRhdGFJbmRleDogJ3JvbGUnLCBrZXk6ICdyb2xlJywgcmVzcG9uc2l2ZTogWydzbSddIH0sXG4gICAgeyB0aXRsZTogJ+Gej+GfgeGem+GfgeGegOGfkuGemuGetuGemOKAiyBJRCcsIGRhdGFJbmRleDogJ3RlbGVncmFtX2lkJywga2V5OiAndGVsZWdyYW1faWQnLCByZXNwb25zaXZlOiBbJ3NtJ10gfSxcbiAgICB7IHRpdGxlOiAn4Z6a4Z684Z6U4Z6Q4Z6PJywgZGF0YUluZGV4OiAncGhvdG9fdXJsJywga2V5OiAncGhvdG9fdXJsJywgcmVzcG9uc2l2ZTogWydzbSddLCBcbiAgICAgIHJlbmRlcjogKHRleHQ6IGFueSkgPT5cbiAgICAgICAgdGV4dCA/IDxJbWFnZSB3aWR0aD17NTB9IHNyYz17dGV4dH0gYWx0PVwiUGhvdG9cIiBzdHlsZT17eyBib3JkZXJSYWRpdXM6IDUsIGJvcmRlcjogJzFweCBzb2xpZCAjZGRkJyB9fSAvPiA6ICdObyBJbWFnZScsIFxuICAgIH0sXG4gICAgeyB0aXRsZTogJ+GelOGfkuGemuGel+GfgeGekScsIGRhdGFJbmRleDogJ2dyYWRfdHlwZScsIGtleTogJ2dyYWRfdHlwZScsIHJlc3BvbnNpdmU6IFsnc20nXSB9LFxuICAgIHsgdGl0bGU6ICfhnp/hn5LhnpDhnrbhnpPhnpfhnrbhnpYnLCBkYXRhSW5kZXg6ICdzdGF0dXMnLCBrZXk6ICdzdGF0dXMnLCByZXNwb25zaXZlOiBbJ3NtJ10gfSxcbiAgICB7XG4gICAgICB0aXRsZTogJ0FjdGlvbicsXG4gICAgICBrZXk6ICdhY3Rpb24nLFxuICAgICAgcmVzcG9uc2l2ZTogWyd4cycsICdzbScsICdtZCcsICdsZyddLFxuICAgICAgcmVuZGVyOiAoXzogc3RyaW5nLCByZWNvcmQ6IGFueSkgPT4gKFxuICAgICAgICA8U3BhY2Ugc2l6ZT1cIm1pZGRsZVwiPlxuICAgICAgICAgIDxCdXR0b24gaWNvbj17PEVkaXRPdXRsaW5lZCAvPn0gdHlwZT1cInByaW1hcnlcIiBvbkNsaWNrPXsoKSA9PiBoYW5kbGVFZGl0KHJlY29yZC5pZCl9IC8+XG4gICAgICAgICAgPEJ1dHRvbiBpY29uPXs8RGVsZXRlT3V0bGluZWQgLz59IGRhbmdlciBvbkNsaWNrPXsoKSA9PiBoYW5kbGVEZWxldGUocmVjb3JkLmlkKX0gLz5cbiAgICAgICAgPC9TcGFjZT5cbiAgICAgICksXG4gICAgfSxcbiAgXTtcblxuICBjb25zdCBmaWx0ZXJlZERhdGEgPSAodXNlcnMgfHwgW10pLmZpbHRlcigoaXQpID0+IHtcbiAgICBjb25zdCBzZWFyY2ggPSBzZWFyY2hUZXh0LnRvTG93ZXJDYXNlKCk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgaXQuZW1haWw/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoKSB8fFxuICAgICAgaXQudXNlcm5hbWU/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoKSB8fFxuICAgICAgaXQucm9sZT8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2gpIHx8XG4gICAgICBpdC5maXJzdF9uYW1lPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaCkgfHxcbiAgICAgIGl0Lmxhc3RfbmFtZT8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2gpIHx8XG4gICAgICBpdC5waG9uZT8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2gpIHx8XG4gICAgICBpdC50ZWxlZ3JhbV9pZD8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2gpIHx8XG4gICAgICBpdC5ncmFkX3R5cGU/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoKSB8fFxuICAgICAgaXQuc3RhdHVzPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaClcbiAgICApO1xuICB9KTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgc3R5bGU9e3sgb3ZlcmZsb3dYOiAnYXV0bycgfX0+XG4gICAgICA8aDI+4Z6U4Z6J4Z+S4Z6H4Z644Z6i4Z+S4Z6T4Z6A4Z6U4Z+S4Z6a4Z6+4Z6U4Z+S4Z6a4Z624Z6f4Z+LPC9oMj5cbiAgICAgIDxkaXZcbiAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdzcGFjZS1iZXR3ZWVuJyxcbiAgICAgICAgICBwYWRkaW5nOiAnMTBweCcsXG4gICAgICAgICAgYmFja2dyb3VuZDogJyNmNWY1ZjUnLFxuICAgICAgICAgIG1hcmdpbkJvdHRvbTogJzEwcHgnLFxuICAgICAgICAgIGZsZXhXcmFwOiAnd3JhcCcsXG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIDxTcGFjZSB3cmFwPlxuICAgICAgICAgIDxzcGFuPuGen+GemuGeu+GelDoge2ZpbHRlcmVkRGF0YT8ubGVuZ3RoIHx8IDB9PC9zcGFuPlxuICAgICAgICAgIDxJbnB1dFxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLhnp/hn5Lhnpzhn4LhnoThnprhnoAuLi5cIlxuICAgICAgICAgICAgc3R5bGU9e3sgd2lkdGg6IDIwMCB9fVxuICAgICAgICAgICAgdmFsdWU9e3NlYXJjaFRleHR9XG4gICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHNldFNlYXJjaFRleHQoZS50YXJnZXQudmFsdWUpfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPEJ1dHRvbiBvbkNsaWNrPXtoYW5kbGVTZWFyY2h9IHR5cGU9XCJwcmltYXJ5XCI+4Z6F4Z6Y4Z+S4Z6a4Z+E4Z+HPC9CdXR0b24+XG4gICAgICAgICAgPEJ1dHRvbiBvbkNsaWNrPXtoYW5kbGVSZXNldH0+4Z6A4Z+G4Z6O4Z6P4Z+L4Z6h4Z6+4Z6E4Z6c4Z634Z6JPC9CdXR0b24+XG4gICAgICAgIDwvU3BhY2U+XG4gICAgICAgIDxTcGFjZSB3cmFwPlxuICAgICAgICAgIDxCdXR0b24gaWNvbj17PFBsdXNPdXRsaW5lZCAvPn0gdHlwZT1cInByaW1hcnlcIiBvbkNsaWNrPXsoKSA9PiBuYXZpZ2F0ZShgL3VzZXJzL2Zvcm1gKX0+4Z6U4Z6T4Z+S4Z6Q4Z+C4Z6Y4Z6Q4Z+S4Z6Y4Z64PC9CdXR0b24+XG4gICAgICAgIDwvU3BhY2U+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxUYWJsZVxuICAgICAgICByb3dTZWxlY3Rpb249e3tcbiAgICAgICAgICB0eXBlOiAnY2hlY2tib3gnLFxuICAgICAgICAgIG9uQ2hhbmdlOiAoXywgc2VsZWN0ZWRSb3dzKSA9PiBzZXRTZWxlY3RlZFJvd3Moc2VsZWN0ZWRSb3dzKSxcbiAgICAgICAgfX1cbiAgICAgICAgY29sdW1ucz17Y29sdW1uc31cbiAgICAgICAgZGF0YVNvdXJjZT17ZmlsdGVyZWREYXRhLm1hcCgoaXQsIGluZGV4KSA9PiAoe1xuICAgICAgICAgIGtleTogaXQuaWQsXG4gICAgICAgICAgaW5kZXg6IGluZGV4ICsgMSxcbiAgICAgICAgICBuYW1lOiBpdC5maXJzdF9uYW1lLFxuICAgICAgICAgIC4uLml0LFxuICAgICAgICB9KSl9XG4gICAgICAgIHBhZ2luYXRpb249e3sgcGFnZVNpemU6IDEwLCBzaG93U2l6ZUNoYW5nZXI6IHRydWUgfX1cbiAgICAgICAgc2Nyb2xsPXt7IHg6ICdtYXgtY29udGVudCcgfX1cbiAgICAgIC8+XG4gICAgICA8TG9hZGluZ0RpYWxvZyB2aXNpYmxlPXt1c2Vyc1BlbmRpbmd9IC8+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBVc2VyTGlzdDtcbiIsImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgRm9ybSwgSW5wdXQsIEJ1dHRvbiwgUm93LCBDb2wsIG1lc3NhZ2UsIFR5cG9ncmFwaHkgfSBmcm9tICdhbnRkJztcbmltcG9ydCB7IFJvb3RTdGF0ZSB9IGZyb20gJy4uLy4uLy4uL3JlZHV4L3N0b3JlJztcbmltcG9ydCB7IHVzZURpc3BhdGNoLCB1c2VTZWxlY3RvciB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7IFVzZXJBdHRlbmRhbmNlIH0gZnJvbSAnQC9zaGFyZWQvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBjcmVhdGVVc2VyQXR0ZW5kYW5jZUFjdGlvbiwgdXNlckF0dGVuZGFuY2VEZXRhaWxBY3Rpb24sIHVwZGF0ZVVzZXJBdHRlbmRhbmNlQWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvdXNlcl9hdHRlbmRhbmNlL2NvcmUvYWN0aW9ucyc7XG5pbXBvcnQgeyB1c2VOYXZpZ2F0ZSB9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nO1xuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xuXG5jb25zdCBOZXdFZGl0VXNlckF0dGVuZGFuY2VQYWdlOiBSZWFjdC5GQyA9ICgpID0+IHtcbiAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xuICBjb25zdCBuYXZpZ2F0ZSA9IHVzZU5hdmlnYXRlKCk7XG4gIGNvbnN0IHsgdXNlckF0dGVuZGFuY2UsIHJlZ2lzdGVyRXJyb3JNZXNzYWdlLCB1c2VyQXR0ZW5kYW5jZVVwZGF0ZVBlbmRpbmcgfSA9IHVzZVNlbGVjdG9yKFxuICAgIChzdGF0ZTogUm9vdFN0YXRlKSA9PiBzdGF0ZS51c2VyQXR0ZW5kYW5jZVxuICApO1xuICBjb25zdCBbZm9ybV0gPSBGb3JtLnVzZUZvcm0oKTtcblxuICBjb25zdCBzZWFyY2hQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKGxvY2F0aW9uLnNlYXJjaCk7XG4gIGNvbnN0IGlkID0gc2VhcmNoUGFyYW1zLmdldCgnaWQnKTtcblxuICBjb25zdCBbaXNDbGljaywgc2V0SXNDbGlja10gPSB1c2VTdGF0ZShmYWxzZSk7XG5cbiAgLy8g8J+RiSBGZXRjaCBkYXRhIHdoZW4gZWRpdGluZyBvciByZXNldCBmb3JtIHdoZW4gYWRkaW5nXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlkKSB7XG4gICAgICBkaXNwYXRjaCh1c2VyQXR0ZW5kYW5jZURldGFpbEFjdGlvbihOdW1iZXIoaWQpKSk7XG4gICAgfVxuICB9LCBbZGlzcGF0Y2gsIGlkXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPGgyPlVzZXIgQXR0ZW5kYW5jZSBkZXRhaWw8L2gyPlxuICAgICAgPFJvdyBndXR0ZXI9e1sxMiwgMTJdfT5cbiAgICAgICAgPENvbCBzcGFuPXs4fT5cbiAgICAgICAgICBDb2RlOiA8VHlwb2dyYXBoeS5UZXh0IHN0eWxlPXt7IGNvbG9yOiB1c2VyQXR0ZW5kYW5jZT8udm9sdW50ZWVyPy5tYWluX2NvZGUgPyAnZ3JlZW4nIDogJ2luaGVyaXQnIH19PlxuICAgICAgICAgICAgICAgICAge3VzZXJBdHRlbmRhbmNlPy52b2x1bnRlZXI/Lm1haW5fY29kZSB8fCB1c2VyQXR0ZW5kYW5jZT8udm9sdW50ZWVyPy5jb2RlfVxuICAgICAgICAgICAgICAgIDwvVHlwb2dyYXBoeS5UZXh0PlxuICAgICAgICA8L0NvbD5cbiAgICAgICAgPENvbCBzcGFuPXs4fT5cbiAgICAgICAgICBNZWV0aW5nIE5vdGU6IDxUeXBvZ3JhcGh5LlRleHQgc3R5bGU9e3sgZm9udFdlaWdodDogJzYwMCcgfX0+e3VzZXJBdHRlbmRhbmNlPy5tZWV0aW5nX25vdGV9PC9UeXBvZ3JhcGh5LlRleHQ+XG4gICAgICAgIDwvQ29sPlxuICAgICAgICA8Q29sIHNwYW49ezh9PlxuICAgICAgICAgIE1lZXRpbmcgVGltZTogPFR5cG9ncmFwaHkuVGV4dCBzdHlsZT17eyBmb250V2VpZ2h0OiAnNjAwJyB9fT57bW9tZW50KHVzZXJBdHRlbmRhbmNlPy5tZWV0aW5nX3RpbWUpLmZvcm1hdCgnTU1NTSBEbyBZWVlZLCBoOm1tOnNzIGEnKSB8fCAnLSd9PC9UeXBvZ3JhcGh5LlRleHQ+XG4gICAgICAgIDwvQ29sPlxuICAgICAgPC9Sb3c+PGJyIC8+XG4gICAgICA8Um93IGd1dHRlcj17WzEyLCAxMl19PlxuICAgICAgICA8Q29sIHNwYW49ezh9PlxuICAgICAgICAgIFBob3RvOiA8aW1nXG4gICAgICAgICAgICAgICAgICAgIHNyYz17dXNlckF0dGVuZGFuY2U/LnZvbHVudGVlcj8ucGhvdG99XG4gICAgICAgICAgICAgICAgICAgIGFsdD0ncGhvdG8nXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXhIZWlnaHQ6ICcxMDBweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXJSYWRpdXM6ICc4cHgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogJ2Jsb2NrJyxcbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICA8L0NvbD5cbiAgICAgICAgPENvbCBzcGFuPXs4fT5cbiAgICAgICAgICBOYW1lIEtobWVyOiA8VHlwb2dyYXBoeS5UZXh0IHN0eWxlPXt7IGZvbnRXZWlnaHQ6ICc2MDAnIH19Pnt1c2VyQXR0ZW5kYW5jZT8udm9sdW50ZWVyPy5sYXN0X25hbWVfa2htZXJ9IHt1c2VyQXR0ZW5kYW5jZT8udm9sdW50ZWVyPy5maXJzdF9uYW1lX2tobWVyfTwvVHlwb2dyYXBoeS5UZXh0PlxuICAgICAgICA8L0NvbD5cbiAgICAgICAgPENvbCBzcGFuPXs4fT5cbiAgICAgICAgICBOYW1lIExhdGluOiA8VHlwb2dyYXBoeS5UZXh0IHN0eWxlPXt7IGZvbnRXZWlnaHQ6ICc2MDAnIH19Pnt1c2VyQXR0ZW5kYW5jZT8udm9sdW50ZWVyPy5sYXN0X25hbWVfbGF0aW59IHt1c2VyQXR0ZW5kYW5jZT8udm9sdW50ZWVyPy5maXJzdF9uYW1lX2xhdGlufTwvVHlwb2dyYXBoeS5UZXh0PlxuICAgICAgICA8L0NvbD5cbiAgICAgIDwvUm93PlxuICAgICAgPGJyIC8+XG4gICAgICA8Um93IGd1dHRlcj17WzEyLCAxMl19PlxuICAgICAgICA8Q29sIHNwYW49ezh9PlxuICAgICAgICAgIFZvbHVudGVlciBTdGF0dXM6IDxUeXBvZ3JhcGh5LlRleHQgc3R5bGU9e3sgZm9udFdlaWdodDogJzYwMCcgfX0+e3VzZXJBdHRlbmRhbmNlPy52b2x1bnRlZXI/LnZvbHVudGVlcl9zdGF0dXN9PC9UeXBvZ3JhcGh5LlRleHQ+XG4gICAgICAgIDwvQ29sPlxuICAgICAgICA8Q29sIHNwYW49ezh9PlxuICAgICAgICAgIEdlbmRlcjogPFR5cG9ncmFwaHkuVGV4dCBzdHlsZT17eyBmb250V2VpZ2h0OiAnNjAwJyB9fT57dXNlckF0dGVuZGFuY2U/LnZvbHVudGVlcj8uZ2VuZGVyfTwvVHlwb2dyYXBoeS5UZXh0PlxuICAgICAgICA8L0NvbD5cbiAgICAgICAgPENvbCBzcGFuPXs4fT5cbiAgICAgICAgICBEYXRlIG9mIEJpcnRoOiA8VHlwb2dyYXBoeS5UZXh0IHN0eWxlPXt7IGZvbnRXZWlnaHQ6ICc2MDAnIH19Pnt1c2VyQXR0ZW5kYW5jZT8udm9sdW50ZWVyPy5kYXRlX29mX2JpcnRofTwvVHlwb2dyYXBoeS5UZXh0PlxuICAgICAgICA8L0NvbD5cbiAgICAgIDwvUm93PlxuICAgICAgPGJyIC8+XG4gICAgICA8Um93IGd1dHRlcj17WzEyLCAxMl19PlxuICAgICAgICA8Q29sIHNwYW49ezh9PlxuICAgICAgICAgIFBob25lIE51bWJlcjogPFR5cG9ncmFwaHkuVGV4dCBzdHlsZT17eyBmb250V2VpZ2h0OiAnNjAwJyB9fT57dXNlckF0dGVuZGFuY2U/LnZvbHVudGVlcj8ucGhvbmVfbnVtYmVyfTwvVHlwb2dyYXBoeS5UZXh0PlxuICAgICAgICA8L0NvbD5cbiAgICAgICAgPENvbCBzcGFuPXs4fT5cbiAgICAgICAgICBFbWFpbDogPFR5cG9ncmFwaHkuVGV4dCBzdHlsZT17eyBmb250V2VpZ2h0OiAnNjAwJyB9fT57dXNlckF0dGVuZGFuY2U/LnZvbHVudGVlcj8uZW1haWx9PC9UeXBvZ3JhcGh5LlRleHQ+XG4gICAgICAgIDwvQ29sPlxuICAgICAgICA8Q29sIHNwYW49ezh9PlxuICAgICAgICAgIEFkZHJlc3M6IDxUeXBvZ3JhcGh5LlRleHQgc3R5bGU9e3sgZm9udFdlaWdodDogJzYwMCcgfX0+e3VzZXJBdHRlbmRhbmNlPy52b2x1bnRlZXI/LnBodW1pfSB7dXNlckF0dGVuZGFuY2U/LnZvbHVudGVlcj8uc2FuZ2thdH0ge3VzZXJBdHRlbmRhbmNlPy52b2x1bnRlZXI/LmtoYW59IHt1c2VyQXR0ZW5kYW5jZT8udm9sdW50ZWVyPy5wcm92aW5jZV9pZH08L1R5cG9ncmFwaHkuVGV4dD5cbiAgICAgICAgPC9Db2w+XG4gICAgICA8L1Jvdz5cbiAgICAgIDxiciAvPlxuICAgICAgPFJvdyBndXR0ZXI9e1sxMiwgMTJdfT5cbiAgICAgICAgPENvbCBzcGFuPXszfT5cbiAgICAgICAgICA8Rm9ybS5JdGVtPlxuICAgICAgICAgICAgPEJ1dHRvbiBodG1sVHlwZT1cImJ1dHRvblwiIG9uQ2xpY2s9eygpID0+IG5hdmlnYXRlKCcvdXNlci1hdHRlbmRhbmNlcycpfT5cbiAgICAgICAgICAgICAgQ2FuY2VsXG4gICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICA8L0Zvcm0uSXRlbT5cbiAgICAgICAgPC9Db2w+XG4gICAgICA8L1Jvdz5cbiAgICA8Lz5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IE5ld0VkaXRVc2VyQXR0ZW5kYW5jZVBhZ2U7XG4iLCJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEJ1dHRvbiwgSW5wdXQsIFNwYWNlLCBUYWJsZSwgVHlwb2dyYXBoeSB9IGZyb20gJ2FudGQnO1xuaW1wb3J0IHsgdXNlRGlzcGF0Y2gsIHVzZVNlbGVjdG9yIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHsgUm9vdFN0YXRlIH0gZnJvbSAnLi4vLi4vLi4vcmVkdXgvc3RvcmUnO1xuaW1wb3J0IHsgdXNlTmF2aWdhdGUgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCBMb2FkaW5nRGlhbG9nIGZyb20gJy4uLy4uLy4uL2NvbnRhaW5lci9kaWFsb2dzL2xvYWRpbmctZGlhbG9nJztcbmltcG9ydCB7IERlbGV0ZU91dGxpbmVkLCBFZGl0T3V0bGluZWQsIFBsdXNPdXRsaW5lZCB9IGZyb20gJ0BhbnQtZGVzaWduL2ljb25zJztcbmltcG9ydCB7IGRlbGV0ZVVzZXJBdHRlbmRhbmNlQWN0aW9uLCB1c2VyQXR0ZW5kYW5jZURldGFpbEFjdGlvbiwgZmV0Y2hVc2VyQXR0ZW5kYW5jZXMgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy91c2VyX2F0dGVuZGFuY2UvY29yZS9hY3Rpb25zJztcbmltcG9ydCBTd2FsIGZyb20gJ3N3ZWV0YWxlcnQyJztcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcblxuY29uc3QgVXNlckF0dGVuZGFuY2VMaXN0ID0gKCkgPT4ge1xuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG4gIGNvbnN0IG5hdmlnYXRlID0gdXNlTmF2aWdhdGUoKTtcbiAgY29uc3QgW3NlbGVjdGVkUm93cywgc2V0U2VsZWN0ZWRSb3dzXSA9IHVzZVN0YXRlPGFueT4oW10pO1xuICBjb25zdCBbc2VhcmNoVGV4dCwgc2V0U2VhcmNoVGV4dF0gPSB1c2VTdGF0ZSgnJyk7XG4gIGNvbnN0IHsgdXNlckF0dGVuZGFuY2VzLCB1c2VyQXR0ZW5kYW5jZXNQZW5kaW5nIH0gPSB1c2VTZWxlY3Rvcigoc3RhdGU6IFJvb3RTdGF0ZSkgPT4gc3RhdGUudXNlckF0dGVuZGFuY2UpO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgZGlzcGF0Y2goZmV0Y2hVc2VyQXR0ZW5kYW5jZXMoKSk7XG4gIH0sIFtkaXNwYXRjaF0pO1xuXG4gIGNvbnN0IGhhbmRsZUVkaXQgPSAoaWQ6IGFueSkgPT4ge1xuICAgIGRpc3BhdGNoKHVzZXJBdHRlbmRhbmNlRGV0YWlsQWN0aW9uKGlkKSk7XG4gICAgbmF2aWdhdGUoYC91c2VyLWF0dGVuZGFuY2VzL2Zvcm0/aWQ9JHtpZH1gKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVEZWxldGUgPSAoaWQ6IGFueSkgPT4ge1xuICAgIFN3YWwuZmlyZSh7XG4gICAgICB0aXRsZTogJ0FyZSB5b3Ugc3VyZT8nLFxuICAgICAgdGV4dDogJ1lvdSB3b25cXCd0IGJlIGFibGUgdG8gcmV2ZXJ0IHRoaXMhJyxcbiAgICAgIGljb246ICd3YXJuaW5nJyxcbiAgICAgIHNob3dDb25maXJtQnV0dG9uOiBmYWxzZSxcbiAgICAgIHNob3dDYW5jZWxCdXR0b246IGZhbHNlLFxuICAgICAgaHRtbDogYFxuICAgICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IGdhcDogMTBweDsgbWFyZ2luLXRvcDogMjBweDtcIj5cbiAgICAgICAgICA8YnV0dG9uIGlkPVwiY29uZmlybS1kZWxldGVcIiBjbGFzcz1cInN3YWwyLWNvbmZpcm0gc3dhbDItc3R5bGVkXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiAjZDMzO1wiPkRlbGV0ZTwvYnV0dG9uPlxuICAgICAgICAgIDxidXR0b24gaWQ9XCJjYW5jZWwtZGVsZXRlXCIgY2xhc3M9XCJzd2FsMi1jYW5jZWwgc3dhbDItc3R5bGVkXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiAjMzA4NWQ2O1wiPkNhbmNlbDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIGAsXG4gICAgICBkaWRPcGVuOiAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbmZpcm1CdXR0b24gPSBTd2FsLmdldFBvcHVwKCk/LnF1ZXJ5U2VsZWN0b3IoJyNjb25maXJtLWRlbGV0ZScpO1xuICAgICAgICBjb25zdCBjYW5jZWxCdXR0b24gPSBTd2FsLmdldFBvcHVwKCk/LnF1ZXJ5U2VsZWN0b3IoJyNjYW5jZWwtZGVsZXRlJyk7XG5cbiAgICAgICAgY29uZmlybUJ1dHRvbj8uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XG4gICAgICAgICAgZGlzcGF0Y2goZGVsZXRlVXNlckF0dGVuZGFuY2VBY3Rpb24oaWQpKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIFN3YWwuZmlyZSgnRGVsZXRlZCEnLCAnVGhlIGl0ZW0gaGFzIGJlZW4gZGVsZXRlZC4nLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgZGlzcGF0Y2goZmV0Y2hVc2VyQXR0ZW5kYW5jZXMoKSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgU3dhbC5jbG9zZSgpO1xuICAgICAgICB9KTtcblxuICAgICAgICBjYW5jZWxCdXR0b24/LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgICAgIFN3YWwuY2xvc2UoKTtcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVNlYXJjaCA9ICgpID0+IHtcbiAgICAvLyBUcmlnZ2VycyBzZWFyY2ggYnkgc2V0dGluZyBzdGF0ZVxuICAgIHNldFNlYXJjaFRleHQoc2VhcmNoVGV4dC50cmltKCkpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVJlc2V0ID0gKCkgPT4ge1xuICAgIC8vIENsZWFycyBpbnB1dCBhbmQgc2hvd3MgYWxsIGRhdGFcbiAgICBzZXRTZWFyY2hUZXh0KCcnKTtcbiAgfTtcblxuICBjb25zdCBjb2x1bW5zID0gW1xuICAgIHsgdGl0bGU6ICfhnpvhn4HhnoHhnprhn4DhnoQnLCBkYXRhSW5kZXg6ICdpbmRleCcsIGtleTogJ2luZGV4JywgcmVzcG9uc2l2ZTogWydzbSddIH0sXG4gICAge1xuICAgICAgdGl0bGU6ICfhnpvhn4HhnoHhnoDhnrzhnoonLFxuICAgICAga2V5OiAnY29kZScsXG4gICAgICByZXNwb25zaXZlOiBbJ3hzJywgJ3NtJywgJ21kJywgJ2xnJ10sXG4gICAgICByZW5kZXI6IChfOiBzdHJpbmcsIHJlY29yZDogYW55KSA9PiAoXG4gICAgICAgIDxTcGFjZSBzaXplPVwic21hbGxcIj5cbiAgICAgICAgICA8QnV0dG9uIHR5cGU9XCJsaW5rXCIgb25DbGljaz17KCkgPT4gaGFuZGxlRWRpdChyZWNvcmQuaWQpfT5cbiAgICAgICAgICAgIDxUeXBvZ3JhcGh5LlRleHQgc3R5bGU9e3sgY29sb3I6IHJlY29yZD8udm9sdW50ZWVyPy5tYWluX2NvZGUgPyAnZ3JlZW4nIDogJ2luaGVyaXQnIH19PlxuICAgICAgICAgICAgICB7cmVjb3JkPy52b2x1bnRlZXI/Lm1haW5fY29kZSB8fCByZWNvcmQ/LnZvbHVudGVlcj8uY29kZX1cbiAgICAgICAgICAgIDwvVHlwb2dyYXBoeS5UZXh0PlxuICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICA8L1NwYWNlPlxuICAgICAgKSxcbiAgICB9LFxuICAgIHsgdGl0bGU6ICfhnojhn5Lhnpjhn4Thn4fhnoHhn5Lhnpjhn4LhnponLCBkYXRhSW5kZXg6ICduYW1lS2htZXInLCBrZXk6ICduYW1lS2htZXInLCByZXNwb25zaXZlOiBbJ3NtJ10gfSxcbiAgICB7IHRpdGxlOiAn4Z6I4Z+S4Z6Y4Z+E4Z+H4Z6H4Z624Z6X4Z624Z6f4Z624Z6h4Z624Z6P4Z624Z+G4Z6EJywgZGF0YUluZGV4OiAnbmFtZUxhdGluJywga2V5OiAnbmFtZUxhdGluJywgcmVzcG9uc2l2ZTogWydzbSddIH0sXG4gICAgeyB0aXRsZTogJ+Gel+GfgeGekScsIGRhdGFJbmRleDogJ2dlbmRlcicsIGtleTogJ2dlbmRlcicsIHJlc3BvbnNpdmU6IFsnc20nXSB9LFxuICAgIHsgdGl0bGU6ICfhnpvhn4HhnoHhnpHhnrzhnprhnp/hn5Dhnpbhn5LhnpEnLCBkYXRhSW5kZXg6ICdwaG9uZU51bWJlcicsIGtleTogJ3Bob25lTnVtYmVyJywgcmVzcG9uc2l2ZTogWydzbSddIH0sXG4gICAgeyB0aXRsZTogJ+GegOGfhuGejuGej+Gfi+GeheGfhuGejuGetuGfhuGegOGet+GeheGfkuGeheGelOGfkuGemuGeh+Geu+GfhicsIGRhdGFJbmRleDogJ21lZXRpbmdfbm90ZScsIGtleTogJ21lZXRpbmdfbm90ZScsIHJlc3BvbnNpdmU6IFsnc20nXSB9LFxuICAgIHsgXG4gICAgICB0aXRsZTogJ+GeluGfgeGem+GenOGfgeGem+GetuGelOGfkuGemuGeh+Geu+GfhicsIFxuICAgICAgZGF0YUluZGV4OiAnbWVldGluZ190aW1lJywgXG4gICAgICBrZXk6ICdtZWV0aW5nX3RpbWUnLCBcbiAgICAgIHJlc3BvbnNpdmU6IFsnc20nXSwgXG4gICAgICByZW5kZXI6IChfOiBhbnksIHJlY29yZDogYW55KSA9PiAobW9tZW50KHJlY29yZC5tZWV0aW5nX3RpbWUpLmZvcm1hdCgnTU1NTSBEbyBZWVlZLCBoOm1tOnNzIGEnKSB8fCAnLScpXG4gICAgfSxcbiAgICB7XG4gICAgICB0aXRsZTogJ0FjdGlvbicsXG4gICAgICBrZXk6ICdhY3Rpb24nLFxuICAgICAgcmVzcG9uc2l2ZTogWyd4cycsICdzbScsICdtZCcsICdsZyddLFxuICAgICAgcmVuZGVyOiAoXzogc3RyaW5nLCByZWNvcmQ6IGFueSkgPT4gKFxuICAgICAgICA8U3BhY2Ugc2l6ZT1cIm1pZGRsZVwiPlxuICAgICAgICAgIDxCdXR0b24gaWNvbj17PERlbGV0ZU91dGxpbmVkIC8+fSBkYW5nZXIgb25DbGljaz17KCkgPT4gaGFuZGxlRGVsZXRlKHJlY29yZC5pZCl9IC8+XG4gICAgICAgIDwvU3BhY2U+XG4gICAgICApLFxuICAgIH0sXG4gIF07XG5cbiAgY29uc3QgZmlsdGVyZWREYXRhID0gKHVzZXJBdHRlbmRhbmNlcyB8fCBbXSkuZmlsdGVyKChpdCkgPT4ge1xuICAgIGNvbnN0IHNlYXJjaCA9IHNlYXJjaFRleHQudG9Mb3dlckNhc2UoKTtcblxuICAgIHJldHVybiAoXG4gICAgICBpdC5tZWV0aW5nX25vdGU/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoKSB8fFxuICAgICAgaXQubWVldGluZ190aW1lPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaCkgfHxcbiAgICAgIGl0LnZvbHVudGVlcj8uY29kZT8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2gpIHx8XG4gICAgICBpdC52b2x1bnRlZXI/Lm1haW5fY29kZT8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2gpIHx8XG4gICAgICBpdC52b2x1bnRlZXI/Lmxhc3RfbmFtZV9raG1lcj8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2gpIHx8XG4gICAgICBpdC52b2x1bnRlZXI/LmZpcnN0X25hbWVfa2htZXI/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoKSB8fFxuICAgICAgaXQudm9sdW50ZWVyPy5sYXN0X25hbWVfbGF0aW4/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoKSB8fFxuICAgICAgaXQudm9sdW50ZWVyPy5maXJzdF9uYW1lX2xhdGluPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaCkgfHxcbiAgICAgIGl0LnZvbHVudGVlcj8uZ2VuZGVyPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaCkgfHxcbiAgICAgIGl0LnZvbHVudGVlcj8ucGhvbmVfbnVtYmVyPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaClcbiAgICApO1xuICB9KTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgc3R5bGU9e3sgb3ZlcmZsb3dYOiAnYXV0bycgfX0+XG4gICAgICA8aDI+VXNlciBBdHRlbmRhbmNlIExpc3Q8L2gyPlxuICAgICAgPGRpdlxuICAgICAgICBzdHlsZT17e1xuICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ3NwYWNlLWJldHdlZW4nLFxuICAgICAgICAgIHBhZGRpbmc6ICcxMHB4JyxcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAnI2Y1ZjVmNScsXG4gICAgICAgICAgbWFyZ2luQm90dG9tOiAnMTBweCcsXG4gICAgICAgICAgZmxleFdyYXA6ICd3cmFwJyxcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgPFNwYWNlIHdyYXA+XG4gICAgICAgICAgPHNwYW4+4Z6f4Z6a4Z674Z6UOiB7ZmlsdGVyZWREYXRhPy5sZW5ndGggfHwgMH08L3NwYW4+XG4gICAgICAgICAgPElucHV0XG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIuGen+GfkuGenOGfguGehOGemuGegC4uLlwiXG4gICAgICAgICAgICBzdHlsZT17eyB3aWR0aDogMjAwIH19XG4gICAgICAgICAgICB2YWx1ZT17c2VhcmNoVGV4dH1cbiAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gc2V0U2VhcmNoVGV4dChlLnRhcmdldC52YWx1ZSl9XG4gICAgICAgICAgLz5cbiAgICAgICAgICA8QnV0dG9uIG9uQ2xpY2s9e2hhbmRsZVNlYXJjaH0gdHlwZT1cInByaW1hcnlcIj7hnoXhnpjhn5Lhnprhn4Thn4c8L0J1dHRvbj5cbiAgICAgICAgICA8QnV0dG9uIG9uQ2xpY2s9e2hhbmRsZVJlc2V0fT7hnoDhn4bhno7hno/hn4vhnqHhnr7hnoThnpzhnrfhnok8L0J1dHRvbj5cbiAgICAgICAgPC9TcGFjZT5cbiAgICAgIDwvZGl2PlxuICAgICAgPFRhYmxlXG4gICAgICAgIHJvd1NlbGVjdGlvbj17e1xuICAgICAgICAgIHR5cGU6ICdjaGVja2JveCcsXG4gICAgICAgICAgb25DaGFuZ2U6IChfLCBzZWxlY3RlZFJvd3MpID0+IHNldFNlbGVjdGVkUm93cyhzZWxlY3RlZFJvd3MpLFxuICAgICAgICB9fVxuICAgICAgICBjb2x1bW5zPXtjb2x1bW5zfVxuICAgICAgICBkYXRhU291cmNlPXtmaWx0ZXJlZERhdGEubWFwKChpdCwgaW5kZXgpID0+ICh7XG4gICAgICAgICAga2V5OiBpdC5pZCxcbiAgICAgICAgICBpbmRleDogaW5kZXggKyAxLFxuICAgICAgICAgIG5hbWVLaG1lcjogYCR7aXQ/LnZvbHVudGVlcj8ubGFzdF9uYW1lX2tobWVyfSAke2l0Py52b2x1bnRlZXI/LmZpcnN0X25hbWVfa2htZXJ9YCxcbiAgICAgICAgICBuYW1lTGF0aW46IGAke2l0Py52b2x1bnRlZXI/Lmxhc3RfbmFtZV9sYXRpbn0gJHtpdD8udm9sdW50ZWVyPy5maXJzdF9uYW1lX2xhdGlufWAsXG4gICAgICAgICAgZ2VuZGVyOiBpdD8udm9sdW50ZWVyPy5nZW5kZXIsXG4gICAgICAgICAgcGhvbmVOdW1iZXI6IGl0Py52b2x1bnRlZXI/LnBob25lX251bWJlcixcbiAgICAgICAgICAuLi5pdCxcbiAgICAgICAgfSkpfVxuICAgICAgICBwYWdpbmF0aW9uPXt7IHBhZ2VTaXplOiAxMCwgc2hvd1NpemVDaGFuZ2VyOiB0cnVlIH19XG4gICAgICAgIHNjcm9sbD17eyB4OiAnbWF4LWNvbnRlbnQnIH19XG4gICAgICAvPlxuICAgICAgPExvYWRpbmdEaWFsb2cgdmlzaWJsZT17dXNlckF0dGVuZGFuY2VzUGVuZGluZ30gLz5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFVzZXJBdHRlbmRhbmNlTGlzdDtcbiJdLCJuYW1lcyI6WyJSZWFjdCIsInVzZUVmZmVjdCIsInVzZVN0YXRlIiwidXNlRGlzcGF0Y2giLCJ1c2VTZWxlY3RvciIsImNyZWF0ZUludGVyZXN0ZWRUZWFtQWN0aW9uIiwiaW50ZXJlc3RlZFRlYW1EZXRhaWxBY3Rpb24iLCJ1cGRhdGVJbnRlcmVzdGVkVGVhbUFjdGlvbiIsInVzZU5hdmlnYXRlIiwiVGV4dEFyZWEiLCJOZXdFZGl0SW50ZXJlc3RlZFRlYW1QYWdlIiwiZGlzcGF0Y2giLCJuYXZpZ2F0ZSIsIl91c2VTZWxlY3RvciIsInN0YXRlIiwiaW50ZXJlc3RlZFRlYW0iLCJpbnRlcmVzdGVkVGVhbXMiLCJyZWdpc3RlckVycm9yTWVzc2FnZSIsImludGVyZXN0ZWRUZWFtVXBkYXRlUGVuZGluZyIsIl9Gb3JtJHVzZUZvcm0iLCJfRm9ybSIsInVzZUZvcm0iLCJfRm9ybSR1c2VGb3JtMiIsIl9zbGljZWRUb0FycmF5IiwiZm9ybSIsInNlYXJjaFBhcmFtcyIsIlVSTFNlYXJjaFBhcmFtcyIsImxvY2F0aW9uIiwic2VhcmNoIiwiaWQiLCJnZXQiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiaXNDbGljayIsInNldElzQ2xpY2siLCJOdW1iZXIiLCJyZXNldEZpZWxkcyIsInNldEZpZWxkc1ZhbHVlIiwibmFtZSIsImRlc2NyaXB0aW9uIiwicGFyZW50X2lkIiwiX21lc3NhZ2UiLCJlcnJvciIsInN1Y2Nlc3MiLCJvbkZpbmlzaCIsInZhbHVlcyIsImRhdGEiLCJjcmVhdGVFbGVtZW50IiwiRnJhZ21lbnQiLCJsYXlvdXQiLCJzdHlsZSIsIm1heFdpZHRoIiwibWFyZ2luIiwiX1JvdyIsImd1dHRlciIsIl9Db2wiLCJzcGFuIiwiSXRlbSIsImxhYmVsIiwicnVsZXMiLCJyZXF1aXJlZCIsIm1lc3NhZ2UiLCJfSW5wdXQiLCJfU2VsZWN0IiwiYWxsb3dDbGVhciIsInBsYWNlaG9sZGVyIiwiQXJyYXkiLCJpc0FycmF5IiwibWFwIiwidGVhbSIsIk9wdGlvbiIsImtleSIsInZhbHVlIiwicm93cyIsIl9CdXR0b24iLCJ0eXBlIiwiYmxvY2siLCJodG1sVHlwZSIsImxvYWRpbmciLCJvbkNsaWNrIiwiTG9hZGluZ0RpYWxvZyIsIkRlbGV0ZU91dGxpbmVkIiwiRWRpdE91dGxpbmVkIiwiUGx1c091dGxpbmVkIiwiZGVsZXRlSW50ZXJlc3RlZFRlYW1BY3Rpb24iLCJmZXRjaEludGVyZXN0ZWRUZWFtcyIsIlN3YWwiLCJJbnRlcmVzdGVkVGVhbUxpc3QiLCJzZWxlY3RlZFJvd3MiLCJzZXRTZWxlY3RlZFJvd3MiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsInNlYXJjaFRleHQiLCJzZXRTZWFyY2hUZXh0IiwiaW50ZXJlc3RlZFRlYW1zUGVuZGluZyIsImhhbmRsZUVkaXQiLCJjb25jYXQiLCJoYW5kbGVEZWxldGUiLCJmaXJlIiwidGl0bGUiLCJ0ZXh0IiwiaWNvbiIsInNob3dDb25maXJtQnV0dG9uIiwic2hvd0NhbmNlbEJ1dHRvbiIsImh0bWwiLCJkaWRPcGVuIiwiX1N3YWwkZ2V0UG9wdXAiLCJfU3dhbCRnZXRQb3B1cDIiLCJjb25maXJtQnV0dG9uIiwiZ2V0UG9wdXAiLCJxdWVyeVNlbGVjdG9yIiwiY2FuY2VsQnV0dG9uIiwiYWRkRXZlbnRMaXN0ZW5lciIsInRoZW4iLCJjbG9zZSIsImhhbmRsZVNlYXJjaCIsInRyaW0iLCJoYW5kbGVSZXNldCIsImNvbHVtbnMiLCJkYXRhSW5kZXgiLCJyZXNwb25zaXZlIiwicmVuZGVyIiwiXyIsInJlY29yZCIsIl9TcGFjZSIsInNpemUiLCJkYW5nZXIiLCJmaWx0ZXJlZERhdGEiLCJmaWx0ZXIiLCJpdCIsIl9pdCRuYW1lIiwidG9Mb3dlckNhc2UiLCJpbmNsdWRlcyIsIm92ZXJmbG93WCIsImRpc3BsYXkiLCJqdXN0aWZ5Q29udGVudCIsInBhZGRpbmciLCJiYWNrZ3JvdW5kIiwibWFyZ2luQm90dG9tIiwiZmxleFdyYXAiLCJ3cmFwIiwibGVuZ3RoIiwid2lkdGgiLCJvbkNoYW5nZSIsImUiLCJ0YXJnZXQiLCJfVGFibGUiLCJyb3dTZWxlY3Rpb24iLCJkYXRhU291cmNlIiwiaW5kZXgiLCJfb2JqZWN0U3ByZWFkIiwicGFnaW5hdGlvbiIsInBhZ2VTaXplIiwic2hvd1NpemVDaGFuZ2VyIiwic2Nyb2xsIiwieCIsInZpc2libGUiLCJjcmVhdGVMYW5ndWFnZUFjdGlvbiIsImxhbmd1YWdlRGV0YWlsQWN0aW9uIiwidXBkYXRlTGFuZ3VhZ2VBY3Rpb24iLCJOZXdFZGl0TGFuZ3VhZ2VQYWdlIiwibGFuZ3VhZ2UiLCJsYW5ndWFnZVVwZGF0ZVBlbmRpbmciLCJkZWxldGVMYW5ndWFnZUFjdGlvbiIsImZldGNoTGFuZ3VhZ2VzIiwiTGFuZ3VhZ2VMaXN0IiwibGFuZ3VhZ2VzIiwibGFuZ3VhZ2VzUGVuZGluZyIsInQiLCJyIiwiU3ltYm9sIiwibiIsIml0ZXJhdG9yIiwibyIsInRvU3RyaW5nVGFnIiwiaSIsImMiLCJwcm90b3R5cGUiLCJHZW5lcmF0b3IiLCJ1IiwiT2JqZWN0IiwiY3JlYXRlIiwiX3JlZ2VuZXJhdG9yRGVmaW5lMiIsImYiLCJwIiwieSIsIkciLCJ2IiwiYSIsImQiLCJiaW5kIiwibCIsIlR5cGVFcnJvciIsImNhbGwiLCJkb25lIiwiR2VuZXJhdG9yRnVuY3Rpb24iLCJHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSIsImdldFByb3RvdHlwZU9mIiwic2V0UHJvdG90eXBlT2YiLCJfX3Byb3RvX18iLCJkaXNwbGF5TmFtZSIsIl9yZWdlbmVyYXRvciIsInciLCJtIiwiZGVmaW5lUHJvcGVydHkiLCJfcmVnZW5lcmF0b3JEZWZpbmUiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJfaW52b2tlIiwiYXN5bmNHZW5lcmF0b3JTdGVwIiwiUHJvbWlzZSIsInJlc29sdmUiLCJfYXN5bmNUb0dlbmVyYXRvciIsImFyZ3VtZW50cyIsImFwcGx5IiwiX25leHQiLCJfdGhyb3ciLCJnZXRXaXRoQ29uZmlnIiwiVVJMIiwibm90aWZ5VXNlclRlbGVncmFtU2VydmljZSIsIl9yZWYiLCJfY2FsbGVlIiwidXNlcl9pZCIsIl9jb250ZXh0IiwiTk9USUZZIiwiX3giLCJfeDIiLCJub3RpZnlVc2VyQnlTdGF0dXMiLCJfcmVmMiIsIl9jYWxsZWUyIiwic3RhdHVzIiwiX2NvbnRleHQyIiwiTk9USUZZX1NUQVRVUyIsIl94MyIsIl94NCIsIl9hcnJheVdpdGhIb2xlcyIsIl9pdGVyYWJsZVRvQXJyYXlMaW1pdCIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsIl9ub25JdGVyYWJsZVJlc3QiLCJfYXJyYXlMaWtlVG9BcnJheSIsInRvU3RyaW5nIiwic2xpY2UiLCJjb25zdHJ1Y3RvciIsImZyb20iLCJ0ZXN0IiwibmV4dCIsInB1c2giLCJJbnZpdGF0aW9uX3RvX1ZvbHVudGVlcl9CcmllZmluZ19NZWV0aW5nIiwiTm90aWZpY2F0aW9uUGFnZSIsInNlbGVjdGVkU3RhdHVzIiwic2V0U2VsZWN0ZWRTdGF0dXMiLCJtZXNzYWdlVGV4dCIsInNldE1lc3NhZ2VUZXh0IiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJzZXRMb2FkaW5nIiwiX3VzZVN0YXRlNyIsIl91c2VTdGF0ZTgiLCJjb25maXJtVmlzaWJsZSIsInNldENvbmZpcm1WaXNpYmxlIiwiX3VzZVN0YXRlOSIsIl91c2VTdGF0ZTAiLCJmaW5hbENvbmZpcm1WaXNpYmxlIiwic2V0RmluYWxDb25maXJtVmlzaWJsZSIsIl91c2VTdGF0ZTEiLCJfdXNlU3RhdGUxMCIsInNlbmRUeXBlIiwic2V0U2VuZFR5cGUiLCJhdXRoIiwidXNlcnMiLCJ1c2VyU3RhdHVzZXMiLCJzaG93Q29uZmlybURpYWxvZyIsIndhcm5pbmciLCJoYW5kbGVGaXJzdENvbmZpcm0iLCJoYW5kbGVDb25maXJtU2VuZCIsIl90IiwibGciLCJfTW9kYWwiLCJvbk9rIiwib25DYW5jZWwiLCJva1RleHQiLCJjYW5jZWxUZXh0IiwiY3JlYXRlT2NjdXBhdGlvbkFjdGlvbiIsIm9jY3VwYXRpb25EZXRhaWxBY3Rpb24iLCJ1cGRhdGVPY2N1cGF0aW9uQWN0aW9uIiwiTmV3RWRpdE9jY3VwYXRpb25QYWdlIiwib2NjdXBhdGlvbiIsIm9jY3VwYXRpb25VcGRhdGVQZW5kaW5nIiwiZGVsZXRlT2NjdXBhdGlvbkFjdGlvbiIsImZldGNoT2NjdXBhdGlvbnMiLCJPY2N1cGF0aW9uTGlzdCIsIm9jY3VwYXRpb25zIiwib2NjdXBhdGlvbnNQZW5kaW5nIiwiY3JlYXRlT2ZmZXJQcm9ncmFtQWN0aW9uIiwib2ZmZXJQcm9ncmFtRGV0YWlsQWN0aW9uIiwidXBkYXRlT2ZmZXJQcm9ncmFtQWN0aW9uIiwiTmV3RWRpdE9mZmVyUHJvZ3JhbVBhZ2UiLCJvZmZlclByb2dyYW0iLCJvZmZlclByb2dyYW1VcGRhdGVQZW5kaW5nIiwiZGVsZXRlT2ZmZXJQcm9ncmFtQWN0aW9uIiwiZmV0Y2hPZmZlclByb2dyYW1zIiwiT2ZmZXJQcm9ncmFtTGlzdCIsIm9mZmVyUHJvZ3JhbXMiLCJvZmZlclByb2dyYW1zUGVuZGluZyIsImNyZWF0ZU9wcG9ydHVuaXR5U291cmNlQWN0aW9uIiwib3Bwb3J0dW5pdHlTb3VyY2VEZXRhaWxBY3Rpb24iLCJ1cGRhdGVPcHBvcnR1bml0eVNvdXJjZUFjdGlvbiIsIk5ld0VkaXRPcHBvcnR1bml0eVNvdXJjZVBhZ2UiLCJvcHBvcnR1bml0eVNvdXJjZSIsIm9wcG9ydHVuaXR5U291cmNlVXBkYXRlUGVuZGluZyIsImRlbGV0ZU9wcG9ydHVuaXR5U291cmNlQWN0aW9uIiwiZmV0Y2hPcHBvcnR1bml0eVNvdXJjZXMiLCJPcHBvcnR1bml0eVNvdXJjZUxpc3QiLCJvcHBvcnR1bml0eVNvdXJjZXMiLCJvcHBvcnR1bml0eVNvdXJjZXNQZW5kaW5nIiwiY3JlYXRlUHJvdmluY2VBY3Rpb24iLCJwcm92aW5jZURldGFpbEFjdGlvbiIsInVwZGF0ZVByb3ZpbmNlQWN0aW9uIiwiTmV3RWRpdFByb3ZpbmNlUGFnZSIsInByb3ZpbmNlIiwicHJvdmluY2VVcGRhdGVQZW5kaW5nIiwiZGVsZXRlUHJvdmluY2VBY3Rpb24iLCJmZXRjaFByb3ZpbmNlcyIsIlByb3ZpbmNlTGlzdCIsInByb3ZpbmNlcyIsInByb3ZpbmNlc1BlbmRpbmciLCJjcmVhdGVTa2lsbEFjdGlvbiIsInNraWxsRGV0YWlsQWN0aW9uIiwidXBkYXRlU2tpbGxBY3Rpb24iLCJOZXdFZGl0U2tpbGxQYWdlIiwic2tpbGwiLCJza2lsbFVwZGF0ZVBlbmRpbmciLCJkZWxldGVTa2lsbEFjdGlvbiIsImZldGNoU2tpbGxzIiwiU2tpbGxMaXN0Iiwic2tpbGxzIiwic2tpbGxzUGVuZGluZyIsImNyZWF0ZVRlcm1zQ29uZGl0aW9uQWN0aW9uIiwidGVybXNDb25kaXRpb25EZXRhaWxBY3Rpb24iLCJ1cGRhdGVUZXJtc0NvbmRpdGlvbkFjdGlvbiIsIk5ld0VkaXRUZXJtc0NvbmRpdGlvblBhZ2UiLCJ0ZXJtc0NvbmRpdGlvbiIsInRlcm1zQ29uZGl0aW9uVXBkYXRlUGVuZGluZyIsImRlbGV0ZVRlcm1zQ29uZGl0aW9uQWN0aW9uIiwiZmV0Y2hUZXJtc0NvbmRpdGlvbnMiLCJUZXJtc0NvbmRpdGlvbkxpc3QiLCJ0ZXJtc0NvbmRpdGlvbnMiLCJ0ZXJtc0NvbmRpdGlvbnNQZW5kaW5nIiwiY3JlYXRlVHJhaW5pbmdTZXNzaW9uQWN0aW9uIiwidHJhaW5pbmdTZXNzaW9uRGV0YWlsQWN0aW9uIiwidXBkYXRlVHJhaW5pbmdTZXNzaW9uQWN0aW9uIiwiTmV3RWRpdFRyYWluaW5nU2Vzc2lvblBhZ2UiLCJ0cmFpbmluZ1Nlc3Npb24iLCJ0cmFpbmluZ1Nlc3Npb25VcGRhdGVQZW5kaW5nIiwiZGVsZXRlVHJhaW5pbmdTZXNzaW9uQWN0aW9uIiwiZmV0Y2hUcmFpbmluZ1Nlc3Npb25zIiwiVHJhaW5pbmdTZXNzaW9uTGlzdCIsInRyYWluaW5nU2Vzc2lvbnMiLCJ0cmFpbmluZ1Nlc3Npb25zUGVuZGluZyIsImNyZWF0ZVRyYXZlbERheUFjdGlvbiIsInRyYXZlbERheURldGFpbEFjdGlvbiIsInVwZGF0ZVRyYXZlbERheUFjdGlvbiIsIk5ld0VkaXRUcmF2ZWxEYXlQYWdlIiwidHJhdmVsRGF5IiwidHJhdmVsRGF5VXBkYXRlUGVuZGluZyIsImRlbGV0ZVRyYXZlbERheUFjdGlvbiIsImZldGNoVHJhdmVsRGF5cyIsIlRyYXZlbERheUxpc3QiLCJ0cmF2ZWxEYXlzIiwidHJhdmVsRGF5c1BlbmRpbmciLCJfZGVmaW5lUHJvcGVydHkiLCJfdG9Qcm9wZXJ0eUtleSIsIl90b1ByaW1pdGl2ZSIsIl90eXBlb2YiLCJ0b1ByaW1pdGl2ZSIsIlN0cmluZyIsImNyZWF0ZVVzZXJBY3Rpb24iLCJ1c2VyRGV0YWlsQWN0aW9uIiwidXBkYXRlVXNlckFjdGlvbiIsInBvc3RVcGxvYWQiLCJVcGxvYWRPdXRsaW5lZCIsIk5ld0VkaXRVc2VyUGFnZSIsInVzZXIiLCJ1c2VyVXBkYXRlUGVuZGluZyIsInBob3RvVXJsIiwic2V0UGhvdG9VcmwiLCJwcmV2aWV3VmlzaWJsZSIsInNldFByZXZpZXdWaXNpYmxlIiwicHJldmlld1RpdGxlIiwic2V0UHJldmlld1RpdGxlIiwicHJldmlld0NvbnRlbnQiLCJzZXRQcmV2aWV3Q29udGVudCIsInBob3RvTGlzdCIsInNldFBob3RvTGlzdCIsIl91c2VTZWxlY3RvcjIiLCJjdXJyZW50VXNlciIsImlzQWRtaW4iLCJyb2xlIiwiZmlyc3RfbmFtZSIsImxhc3RfbmFtZSIsInVzZXJuYW1lIiwiZW1haWwiLCJwaG9uZSIsInRlbGVncmFtX2lkIiwicGhvdG9fdXJsIiwiZ3JhZF90eXBlIiwiaGFuZGxlRmlsZUNoYW5nZSIsImZpbGUiLCJmaWVsZE5hbWUiLCJmb3JtRGF0YSIsInJlc3BvbnNlIiwiY29uc29sZSIsIkZvcm1EYXRhIiwiYXBwZW5kIiwidXJsIiwiaGFuZGxlUGhvdG9VcGxvYWRDaGFuZ2UiLCJwaG90b0ZpbGUiLCJoYW5kbGVGaWxlQ2hhbmdlTmV3IiwiX3JlZjMiLCJfY2FsbGVlMyIsImZpbGVMaXN0Iiwic2V0RmlsZUxpc3QiLCJ1cGRhdGVkRmlsZUxpc3QiLCJkb25lRmlsZUxpc3QiLCJlcnJvckZpbGVMaXN0IiwiX3QyIiwiX2NvbnRleHQzIiwiZm9yRWFjaCIsIm9yaWdpbkZpbGVPYmoiLCJfeDUiLCJfeDYiLCJfeDciLCJoYW5kbGVQaG90b1VwbG9hZENoYW5nZU5ldyIsIl9yZWY1IiwiX2NhbGxlZTQiLCJfcmVmNCIsIl9jb250ZXh0NCIsIl94OCIsImJlZm9yZVVwbG9hZCIsImlzSW1hZ2UiLCJzdGFydHNXaXRoIiwiaGFuZGxlUHJldmlldyIsInNyYyIsImFsdCIsInVwbG9hZEJ1dHRvbiIsInNldFVybCIsInBvc2l0aW9uIiwiY3Vyc29yIiwibWF4SGVpZ2h0IiwiYm9yZGVyUmFkaXVzIiwiYm90dG9tIiwicmlnaHQiLCJjb2xvciIsIl9kb2N1bWVudCRnZXRFbGVtZW50QiIsImRvY3VtZW50IiwiZ2V0RWxlbWVudEJ5SWQiLCJjbGljayIsImZpbGVzIiwiY3JlYXRlT2JqZWN0VVJMIiwiX1VwbG9hZCIsImxpc3RUeXBlIiwic2hvd1VwbG9hZExpc3QiLCJzaG93UHJldmlld0ljb24iLCJzaG93UmVtb3ZlSWNvbiIsImNsYXNzTmFtZSIsImp1c3RpZnkiLCJmb290ZXIiLCJkZWxldGVVc2VyQWN0aW9uIiwiZmV0Y2hVc2VycyIsIlVzZXJMaXN0IiwidXNlcnNQZW5kaW5nIiwiX0ltYWdlIiwiYm9yZGVyIiwiX2l0JGVtYWlsIiwiX2l0JHVzZXJuYW1lIiwiX2l0JHJvbGUiLCJfaXQkZmlyc3RfbmFtZSIsIl9pdCRsYXN0X25hbWUiLCJfaXQkcGhvbmUiLCJfaXQkdGVsZWdyYW1faWQiLCJfaXQkZ3JhZF90eXBlIiwiX2l0JHN0YXR1cyIsInVzZXJBdHRlbmRhbmNlRGV0YWlsQWN0aW9uIiwibW9tZW50IiwiTmV3RWRpdFVzZXJBdHRlbmRhbmNlUGFnZSIsIl91c2VyQXR0ZW5kYW5jZSR2b2x1biIsIl91c2VyQXR0ZW5kYW5jZSR2b2x1bjIiLCJfdXNlckF0dGVuZGFuY2Ukdm9sdW4zIiwiX3VzZXJBdHRlbmRhbmNlJHZvbHVuNCIsIl91c2VyQXR0ZW5kYW5jZSR2b2x1bjUiLCJfdXNlckF0dGVuZGFuY2Ukdm9sdW42IiwiX3VzZXJBdHRlbmRhbmNlJHZvbHVuNyIsIl91c2VyQXR0ZW5kYW5jZSR2b2x1bjgiLCJfdXNlckF0dGVuZGFuY2Ukdm9sdW45IiwiX3VzZXJBdHRlbmRhbmNlJHZvbHVuMCIsIl91c2VyQXR0ZW5kYW5jZSR2b2x1bjEiLCJfdXNlckF0dGVuZGFuY2Ukdm9sdW4xMCIsIl91c2VyQXR0ZW5kYW5jZSR2b2x1bjExIiwiX3VzZXJBdHRlbmRhbmNlJHZvbHVuMTIiLCJfdXNlckF0dGVuZGFuY2Ukdm9sdW4xMyIsIl91c2VyQXR0ZW5kYW5jZSR2b2x1bjE0IiwiX3VzZXJBdHRlbmRhbmNlJHZvbHVuMTUiLCJ1c2VyQXR0ZW5kYW5jZSIsInVzZXJBdHRlbmRhbmNlVXBkYXRlUGVuZGluZyIsIl9UeXBvZ3JhcGh5IiwiVGV4dCIsInZvbHVudGVlciIsIm1haW5fY29kZSIsImNvZGUiLCJmb250V2VpZ2h0IiwibWVldGluZ19ub3RlIiwibWVldGluZ190aW1lIiwiZm9ybWF0IiwicGhvdG8iLCJsYXN0X25hbWVfa2htZXIiLCJmaXJzdF9uYW1lX2tobWVyIiwibGFzdF9uYW1lX2xhdGluIiwiZmlyc3RfbmFtZV9sYXRpbiIsInZvbHVudGVlcl9zdGF0dXMiLCJnZW5kZXIiLCJkYXRlX29mX2JpcnRoIiwicGhvbmVfbnVtYmVyIiwicGh1bWkiLCJzYW5na2F0Iiwia2hhbiIsInByb3ZpbmNlX2lkIiwiZGVsZXRlVXNlckF0dGVuZGFuY2VBY3Rpb24iLCJmZXRjaFVzZXJBdHRlbmRhbmNlcyIsIlVzZXJBdHRlbmRhbmNlTGlzdCIsInVzZXJBdHRlbmRhbmNlcyIsInVzZXJBdHRlbmRhbmNlc1BlbmRpbmciLCJfcmVjb3JkJHZvbHVudGVlciIsIl9yZWNvcmQkdm9sdW50ZWVyMiIsIl9yZWNvcmQkdm9sdW50ZWVyMyIsIl9pdCRtZWV0aW5nX25vdGUiLCJfaXQkbWVldGluZ190aW1lIiwiX2l0JHZvbHVudGVlciIsIl9pdCR2b2x1bnRlZXIyIiwiX2l0JHZvbHVudGVlcjMiLCJfaXQkdm9sdW50ZWVyNCIsIl9pdCR2b2x1bnRlZXI1IiwiX2l0JHZvbHVudGVlcjYiLCJfaXQkdm9sdW50ZWVyNyIsIl9pdCR2b2x1bnRlZXI4IiwiX2l0JHZvbHVudGVlcjkiLCJfaXQkdm9sdW50ZWVyMCIsIl9pdCR2b2x1bnRlZXIxIiwiX2l0JHZvbHVudGVlcjEwIiwiX2l0JHZvbHVudGVlcjExIiwiX2l0JHZvbHVudGVlcjEyIiwibmFtZUtobWVyIiwibmFtZUxhdGluIiwicGhvbmVOdW1iZXIiXSwic291cmNlUm9vdCI6IiJ9