@projectcor/maia-components 2.46.0 → 2.48.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/components/atoms/OptionCorPermission/OptionCorPermission.js +36 -8
- package/lib/components/atoms/OptionCorPermission/OptionCorPermission.styles.js +23 -5
- package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.js +126 -13
- package/lib/components/organisms/AbmAgentModal/AbmAgentModal.js +80 -47
- package/lib/lang/br/index.js +8 -1
- package/lib/lang/en/index.js +8 -1
- package/lib/lang/es/index.js +8 -1
- package/lib/lang/fr/index.js +8 -1
- package/lib/services/maia/Agents/connectors.js +88 -46
- package/lib/store/sessions/sessionStreamManager.js +70 -53
- package/lib/types/agentModal.js +1 -1
- package/lib/utils/normalizeAgentConnectors.js +4 -4
- package/lib/utils/streamActivityMessages.js +13 -2
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Switch } from '../Switch';
|
|
2
|
-
import { SCOCPWrapper, SCOCPTextContainer, SCOCPTitle, SCOCPDescription } from './OptionCorPermission.styles';
|
|
2
|
+
import { SCOCPWrapper, SCOCPTextContainer, SCOCPTitle, SCOCPDescription, SCOCPAction, SCOCPControlSlot, SCOCPStatusIndicator } from './OptionCorPermission.styles';
|
|
3
3
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
4
4
|
export var OptionCorPermission = function OptionCorPermission(_ref) {
|
|
5
5
|
var title = _ref.title,
|
|
@@ -8,20 +8,48 @@ export var OptionCorPermission = function OptionCorPermission(_ref) {
|
|
|
8
8
|
onChange = _ref.onChange,
|
|
9
9
|
_ref$disabled = _ref.disabled,
|
|
10
10
|
disabled = _ref$disabled === void 0 ? false : _ref$disabled,
|
|
11
|
-
switchAriaLabel = _ref.switchAriaLabel
|
|
11
|
+
switchAriaLabel = _ref.switchAriaLabel,
|
|
12
|
+
actionLabel = _ref.actionLabel,
|
|
13
|
+
onAction = _ref.onAction,
|
|
14
|
+
_ref$actionBusy = _ref.actionBusy,
|
|
15
|
+
actionBusy = _ref$actionBusy === void 0 ? false : _ref$actionBusy,
|
|
16
|
+
_ref$actionTone = _ref.actionTone,
|
|
17
|
+
actionTone = _ref$actionTone === void 0 ? 'attention' : _ref$actionTone;
|
|
18
|
+
var showAction = Boolean(actionLabel && onAction);
|
|
12
19
|
return /*#__PURE__*/_jsxs(SCOCPWrapper, {
|
|
13
|
-
children: [/*#__PURE__*/_jsx(
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
20
|
+
children: [/*#__PURE__*/_jsx(SCOCPControlSlot, {
|
|
21
|
+
children: showAction ? /*#__PURE__*/_jsx(SCOCPStatusIndicator, {
|
|
22
|
+
$tone: actionTone,
|
|
23
|
+
"aria-hidden": "true",
|
|
24
|
+
children: "!"
|
|
25
|
+
}) : /*#__PURE__*/_jsx(Switch, {
|
|
26
|
+
checked: checked,
|
|
27
|
+
onChange: onChange,
|
|
28
|
+
disabled: disabled,
|
|
29
|
+
"aria-label": switchAriaLabel || title
|
|
30
|
+
})
|
|
18
31
|
}), /*#__PURE__*/_jsxs(SCOCPTextContainer, {
|
|
19
32
|
children: [/*#__PURE__*/_jsx(SCOCPTitle, {
|
|
20
33
|
children: title
|
|
21
34
|
}), /*#__PURE__*/_jsx(SCOCPDescription, {
|
|
22
35
|
children: description
|
|
23
36
|
})]
|
|
37
|
+
}), actionLabel && onAction && /*#__PURE__*/_jsx(SCOCPAction, {
|
|
38
|
+
role: "button",
|
|
39
|
+
tabIndex: actionBusy ? -1 : 0,
|
|
40
|
+
"aria-label": "".concat(actionLabel, " ").concat(title),
|
|
41
|
+
"aria-disabled": actionBusy,
|
|
42
|
+
onClick: function onClick() {
|
|
43
|
+
if (!actionBusy) onAction();
|
|
44
|
+
},
|
|
45
|
+
onKeyDown: function onKeyDown(event) {
|
|
46
|
+
if (!actionBusy && (event.key === 'Enter' || event.key === ' ')) {
|
|
47
|
+
event.preventDefault();
|
|
48
|
+
onAction();
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
children: actionLabel
|
|
24
52
|
})]
|
|
25
53
|
});
|
|
26
54
|
};
|
|
27
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
55
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTd2l0Y2giLCJTQ09DUFdyYXBwZXIiLCJTQ09DUFRleHRDb250YWluZXIiLCJTQ09DUFRpdGxlIiwiU0NPQ1BEZXNjcmlwdGlvbiIsIlNDT0NQQWN0aW9uIiwiU0NPQ1BDb250cm9sU2xvdCIsIlNDT0NQU3RhdHVzSW5kaWNhdG9yIiwianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIk9wdGlvbkNvclBlcm1pc3Npb24iLCJfcmVmIiwidGl0bGUiLCJkZXNjcmlwdGlvbiIsImNoZWNrZWQiLCJvbkNoYW5nZSIsIl9yZWYkZGlzYWJsZWQiLCJkaXNhYmxlZCIsInN3aXRjaEFyaWFMYWJlbCIsImFjdGlvbkxhYmVsIiwib25BY3Rpb24iLCJfcmVmJGFjdGlvbkJ1c3kiLCJhY3Rpb25CdXN5IiwiX3JlZiRhY3Rpb25Ub25lIiwiYWN0aW9uVG9uZSIsInNob3dBY3Rpb24iLCJCb29sZWFuIiwiY2hpbGRyZW4iLCIkdG9uZSIsInJvbGUiLCJ0YWJJbmRleCIsImNvbmNhdCIsIm9uQ2xpY2siLCJvbktleURvd24iLCJldmVudCIsImtleSIsInByZXZlbnREZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYXRvbXMvT3B0aW9uQ29yUGVybWlzc2lvbi9PcHRpb25Db3JQZXJtaXNzaW9uLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTd2l0Y2ggfSBmcm9tICcuLi9Td2l0Y2gnXG5pbXBvcnQge1xuICBTQ09DUFdyYXBwZXIsXG4gIFNDT0NQVGV4dENvbnRhaW5lcixcbiAgU0NPQ1BUaXRsZSxcbiAgU0NPQ1BEZXNjcmlwdGlvbixcbiAgU0NPQ1BBY3Rpb24sXG4gIFNDT0NQQ29udHJvbFNsb3QsXG4gIFNDT0NQU3RhdHVzSW5kaWNhdG9yLFxufSBmcm9tICcuL09wdGlvbkNvclBlcm1pc3Npb24uc3R5bGVzJ1xuXG5pbnRlcmZhY2UgT3B0aW9uQ29yUGVybWlzc2lvblByb3BzIHtcbiAgdGl0bGU6IHN0cmluZ1xuICBkZXNjcmlwdGlvbjogc3RyaW5nXG4gIGNoZWNrZWQ6IGJvb2xlYW5cbiAgb25DaGFuZ2U6IChjaGVja2VkOiBib29sZWFuKSA9PiB2b2lkXG4gIGRpc2FibGVkPzogYm9vbGVhblxuICBzd2l0Y2hBcmlhTGFiZWw/OiBzdHJpbmdcbiAgYWN0aW9uTGFiZWw/OiBzdHJpbmdcbiAgb25BY3Rpb24/OiAoKSA9PiB2b2lkXG4gIGFjdGlvbkJ1c3k/OiBib29sZWFuXG4gIGFjdGlvblRvbmU/OiAnYXR0ZW50aW9uJyB8ICdlcnJvcidcbn1cblxuZXhwb3J0IGNvbnN0IE9wdGlvbkNvclBlcm1pc3Npb24gPSAoe1xuICB0aXRsZSxcbiAgZGVzY3JpcHRpb24sXG4gIGNoZWNrZWQsXG4gIG9uQ2hhbmdlLFxuICBkaXNhYmxlZCA9IGZhbHNlLFxuICBzd2l0Y2hBcmlhTGFiZWwsXG4gIGFjdGlvbkxhYmVsLFxuICBvbkFjdGlvbixcbiAgYWN0aW9uQnVzeSA9IGZhbHNlLFxuICBhY3Rpb25Ub25lID0gJ2F0dGVudGlvbicsXG59OiBPcHRpb25Db3JQZXJtaXNzaW9uUHJvcHMpID0+IHtcbiAgY29uc3Qgc2hvd0FjdGlvbiA9IEJvb2xlYW4oYWN0aW9uTGFiZWwgJiYgb25BY3Rpb24pXG4gIHJldHVybiAoXG4gICAgPFNDT0NQV3JhcHBlcj5cbiAgICAgIDxTQ09DUENvbnRyb2xTbG90PlxuICAgICAgICB7c2hvd0FjdGlvbiA/IChcbiAgICAgICAgICA8U0NPQ1BTdGF0dXNJbmRpY2F0b3IgJHRvbmU9e2FjdGlvblRvbmV9IGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICAgICAgIVxuICAgICAgICAgIDwvU0NPQ1BTdGF0dXNJbmRpY2F0b3I+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFN3aXRjaCBjaGVja2VkPXtjaGVja2VkfSBvbkNoYW5nZT17b25DaGFuZ2V9IGRpc2FibGVkPXtkaXNhYmxlZH0gYXJpYS1sYWJlbD17c3dpdGNoQXJpYUxhYmVsIHx8IHRpdGxlfSAvPlxuICAgICAgICApfVxuICAgICAgPC9TQ09DUENvbnRyb2xTbG90PlxuICAgICAgPFNDT0NQVGV4dENvbnRhaW5lcj5cbiAgICAgICAgPFNDT0NQVGl0bGU+e3RpdGxlfTwvU0NPQ1BUaXRsZT5cbiAgICAgICAgPFNDT0NQRGVzY3JpcHRpb24+e2Rlc2NyaXB0aW9ufTwvU0NPQ1BEZXNjcmlwdGlvbj5cbiAgICAgIDwvU0NPQ1BUZXh0Q29udGFpbmVyPlxuICAgICAge2FjdGlvbkxhYmVsICYmIG9uQWN0aW9uICYmIChcbiAgICAgICAgPFNDT0NQQWN0aW9uXG4gICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgdGFiSW5kZXg9e2FjdGlvbkJ1c3kgPyAtMSA6IDB9XG4gICAgICAgICAgYXJpYS1sYWJlbD17YCR7YWN0aW9uTGFiZWx9ICR7dGl0bGV9YH1cbiAgICAgICAgICBhcmlhLWRpc2FibGVkPXthY3Rpb25CdXN5fVxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgIGlmICghYWN0aW9uQnVzeSkgb25BY3Rpb24oKVxuICAgICAgICAgIH19XG4gICAgICAgICAgb25LZXlEb3duPXtldmVudCA9PiB7XG4gICAgICAgICAgICBpZiAoIWFjdGlvbkJ1c3kgJiYgKGV2ZW50LmtleSA9PT0gJ0VudGVyJyB8fCBldmVudC5rZXkgPT09ICcgJykpIHtcbiAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICBvbkFjdGlvbigpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfX1cbiAgICAgICAgPlxuICAgICAgICAgIHthY3Rpb25MYWJlbH1cbiAgICAgICAgPC9TQ09DUEFjdGlvbj5cbiAgICAgICl9XG4gICAgPC9TQ09DUFdyYXBwZXI+XG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsTUFBTSxRQUFRLFdBQVc7QUFDbEMsU0FDRUMsWUFBWSxFQUNaQyxrQkFBa0IsRUFDbEJDLFVBQVUsRUFDVkMsZ0JBQWdCLEVBQ2hCQyxXQUFX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
|
|
@@ -2,17 +2,35 @@ import styled from 'styled-components';
|
|
|
2
2
|
export var SCOCPWrapper = styled.div.withConfig({
|
|
3
3
|
displayName: "OptionCorPermissionstyles__SCOCPWrapper",
|
|
4
4
|
componentId: "sc-xzueda-0"
|
|
5
|
-
})(["display:flex;align-items:center;gap:
|
|
5
|
+
})(["display:flex;align-items:center;gap:10px;width:100%;padding:10px;border-radius:8px;border:1px solid #e0e0e0;background:#fff;box-sizing:border-box;"]);
|
|
6
|
+
export var SCOCPControlSlot = styled.span.withConfig({
|
|
7
|
+
displayName: "OptionCorPermissionstyles__SCOCPControlSlot",
|
|
8
|
+
componentId: "sc-xzueda-1"
|
|
9
|
+
})(["display:flex;align-items:center;justify-content:center;flex:0 0 36px;height:20px;"]);
|
|
10
|
+
export var SCOCPStatusIndicator = styled.span.withConfig({
|
|
11
|
+
displayName: "OptionCorPermissionstyles__SCOCPStatusIndicator",
|
|
12
|
+
componentId: "sc-xzueda-2"
|
|
13
|
+
})(["display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:", ";color:", ";font-size:12px;font-weight:700;line-height:1;"], function (_ref) {
|
|
14
|
+
var $tone = _ref.$tone;
|
|
15
|
+
return $tone === 'error' ? '#fef3f2' : '#fff7ed';
|
|
16
|
+
}, function (_ref2) {
|
|
17
|
+
var $tone = _ref2.$tone;
|
|
18
|
+
return $tone === 'error' ? '#b42318' : '#b45309';
|
|
19
|
+
});
|
|
6
20
|
export var SCOCPTextContainer = styled.div.withConfig({
|
|
7
21
|
displayName: "OptionCorPermissionstyles__SCOCPTextContainer",
|
|
8
|
-
componentId: "sc-xzueda-
|
|
22
|
+
componentId: "sc-xzueda-3"
|
|
9
23
|
})(["display:flex;flex-direction:column;flex:1;min-width:0;"]);
|
|
10
24
|
export var SCOCPTitle = styled.span.withConfig({
|
|
11
25
|
displayName: "OptionCorPermissionstyles__SCOCPTitle",
|
|
12
|
-
componentId: "sc-xzueda-
|
|
26
|
+
componentId: "sc-xzueda-4"
|
|
13
27
|
})(["font-size:14px;font-weight:500;color:#20201f;line-height:140%;"]);
|
|
14
28
|
export var SCOCPDescription = styled.span.withConfig({
|
|
15
29
|
displayName: "OptionCorPermissionstyles__SCOCPDescription",
|
|
16
|
-
componentId: "sc-xzueda-
|
|
30
|
+
componentId: "sc-xzueda-5"
|
|
17
31
|
})(["font-size:12px;font-weight:400;color:#666;line-height:130%;"]);
|
|
18
|
-
|
|
32
|
+
export var SCOCPAction = styled.span.withConfig({
|
|
33
|
+
displayName: "OptionCorPermissionstyles__SCOCPAction",
|
|
34
|
+
componentId: "sc-xzueda-6"
|
|
35
|
+
})(["display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;min-height:28px;padding:4px 10px;box-sizing:border-box;border:1px solid #b8dfee;border-radius:6px;background:#f2faff;color:#006e9b;cursor:pointer;font-size:12px;font-weight:600;line-height:16px;white-space:nowrap;&:hover{background:#e4f4fb;border-color:#8acde5;}&:focus-visible{outline:2px solid #08c;outline-offset:2px;}&[aria-disabled='true']{cursor:wait;opacity:0.5;}"]);
|
|
36
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJTQ09DUFdyYXBwZXIiLCJkaXYiLCJ3aXRoQ29uZmlnIiwiZGlzcGxheU5hbWUiLCJjb21wb25lbnRJZCIsIlNDT0NQQ29udHJvbFNsb3QiLCJzcGFuIiwiU0NPQ1BTdGF0dXNJbmRpY2F0b3IiLCJfcmVmIiwiJHRvbmUiLCJfcmVmMiIsIlNDT0NQVGV4dENvbnRhaW5lciIsIlNDT0NQVGl0bGUiLCJTQ09DUERlc2NyaXB0aW9uIiwiU0NPQ1BBY3Rpb24iXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9hdG9tcy9PcHRpb25Db3JQZXJtaXNzaW9uL09wdGlvbkNvclBlcm1pc3Npb24uc3R5bGVzLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJ1xuXG5leHBvcnQgY29uc3QgU0NPQ1BXcmFwcGVyID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAxMHB4O1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMTBweDtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTBlMGUwO1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuYFxuXG5leHBvcnQgY29uc3QgU0NPQ1BDb250cm9sU2xvdCA9IHN0eWxlZC5zcGFuYFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZmxleDogMCAwIDM2cHg7XG4gIGhlaWdodDogMjBweDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDT0NQU3RhdHVzSW5kaWNhdG9yID0gc3R5bGVkLnNwYW48eyAkdG9uZTogJ2F0dGVudGlvbicgfCAnZXJyb3InIH0+YFxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHdpZHRoOiAxOHB4O1xuICBoZWlnaHQ6IDE4cHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYmFja2dyb3VuZDogJHsoeyAkdG9uZSB9KSA9PiAoJHRvbmUgPT09ICdlcnJvcicgPyAnI2ZlZjNmMicgOiAnI2ZmZjdlZCcpfTtcbiAgY29sb3I6ICR7KHsgJHRvbmUgfSkgPT4gKCR0b25lID09PSAnZXJyb3InID8gJyNiNDIzMTgnIDogJyNiNDUzMDknKX07XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ09DUFRleHRDb250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBmbGV4OiAxO1xuICBtaW4td2lkdGg6IDA7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ09DUFRpdGxlID0gc3R5bGVkLnNwYW5gXG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgY29sb3I6ICMyMDIwMWY7XG4gIGxpbmUtaGVpZ2h0OiAxNDAlO1xuYFxuXG5leHBvcnQgY29uc3QgU0NPQ1BEZXNjcmlwdGlvbiA9IHN0eWxlZC5zcGFuYFxuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGNvbG9yOiAjNjY2O1xuICBsaW5lLWhlaWdodDogMTMwJTtcbmBcblxuZXhwb3J0IGNvbnN0IFNDT0NQQWN0aW9uID0gc3R5bGVkLnNwYW5gXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZmxleC1zaHJpbms6IDA7XG4gIG1pbi1oZWlnaHQ6IDI4cHg7XG4gIHBhZGRpbmc6IDRweCAxMHB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBib3JkZXI6IDFweCBzb2xpZCAjYjhkZmVlO1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIGJhY2tncm91bmQ6ICNmMmZhZmY7XG4gIGNvbG9yOiAjMDA2ZTliO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogI2U0ZjRmYjtcbiAgICBib3JkZXItY29sb3I6ICM4YWNkZTU7XG4gIH1cblxuICAmOmZvY3VzLXZpc2libGUge1xuICAgIG91dGxpbmU6IDJweCBzb2xpZCAjMDhjO1xuICAgIG91dGxpbmUtb2Zmc2V0OiAycHg7XG4gIH1cblxuICAmW2FyaWEtZGlzYWJsZWQ9J3RydWUnXSB7XG4gICAgY3Vyc29yOiB3YWl0O1xuICAgIG9wYWNpdHk6IDAuNTtcbiAgfVxuYFxuIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxNQUFNLE1BQU0sbUJBQW1CO0FBRXRDLE9BQU8sSUFBTUMsWUFBWSxHQUFHRCxNQUFNLENBQUNFLEdBQUcsQ0FBQUMsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSwwSkFVckM7QUFFRCxPQUFPLElBQU1DLGdCQUFnQixHQUFHTixNQUFNLENBQUNPLElBQUksQ0FBQUosVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSx5RkFNMUM7QUFFRCxPQUFPLElBQU1HLG9CQUFvQixHQUFHUixNQUFNLENBQUNPLElBQUksQ0FBQUosVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSx3TEFPL0IsVUFBQUksSUFBQTtFQUFBLElBQUdDLEtBQUssR0FBQUQsSUFBQSxDQUFMQyxLQUFLO0VBQUEsT0FBUUEsS0FBSyxLQUFLLE9BQU8sR0FBRyxTQUFTLEdBQUcsU0FBUztBQUFBLENBQUMsRUFDL0QsVUFBQUMsS0FBQTtFQUFBLElBQUdELEtBQUssR0FBQUMsS0FBQSxDQUFMRCxLQUFLO0VBQUEsT0FBUUEsS0FBSyxLQUFLLE9BQU8sR0FBRyxTQUFTLEdBQUcsU0FBUztBQUFBLENBQUMsQ0FJcEU7QUFFRCxPQUFPLElBQU1FLGtCQUFrQixHQUFHWixNQUFNLENBQUNFLEdBQUcsQ0FBQUMsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSw4REFLM0M7QUFFRCxPQUFPLElBQU1RLFVBQVUsR0FBR2IsTUFBTSxDQUFDTyxJQUFJLENBQUFKLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsc0VBS3BDO0FBRUQsT0FBTyxJQUFNUyxnQkFBZ0IsR0FBR2QsTUFBTSxDQUFDTyxJQUFJLENBQUFKLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsbUVBSzFDO0FBRUQsT0FBTyxJQUFNVSxXQUFXLEdBQUdmLE1BQU0sQ0FBQ08sSUFBSSxDQUFBSixVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLHNjQWdDckMiLCJpZ25vcmVMaXN0IjpbXX0=
|
package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
|
|
2
|
+
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
2
3
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
3
4
|
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
5
|
+
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
4
6
|
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; }
|
|
5
7
|
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; }
|
|
6
8
|
import { useState, useEffect } from 'react';
|
|
@@ -8,7 +10,8 @@ import { useTranslation } from 'react-i18next';
|
|
|
8
10
|
import { OptionAccessibility } from '../../../atoms/OptionAccessibility';
|
|
9
11
|
import { OptionCorPermission } from '../../../atoms/OptionCorPermission';
|
|
10
12
|
import { EVENTS, useEvent } from '../../../../hooks/useEvent';
|
|
11
|
-
import { getAvailableConnectors } from '../../../../services/maia/Agents/connectors';
|
|
13
|
+
import { authorizeConnector, getAgentConnectors, getAvailableConnectors, waitForConnectorAuthorization } from '../../../../services/maia/Agents/connectors';
|
|
14
|
+
import { useSnackBarManager } from '../../../../hooks/useSnackBarManager/useSnackBarManager';
|
|
12
15
|
import { DEFAULT_COR_ACCESS } from '../../../../utils/normalizeAgentConnectors';
|
|
13
16
|
import { hasMaiaExternalConnectorsAccess } from '../../../../constants/maiaExternalConnectorsAccess';
|
|
14
17
|
import { SCAASWrapper, SCAASHeader, SCAASTitle, SCAASSubtitle, SCAASContent, SCAASSection, SCAASSectionHeader, SCAASSectionTitle, SCAASSectionSubtitle, SCAASOptionsContainer, SCAASDivider } from './AbmAccessibilitySection.styles';
|
|
@@ -28,17 +31,20 @@ var COR_PERMISSION_ROWS = [{
|
|
|
28
31
|
descriptionKey: 'taskAccessDescription'
|
|
29
32
|
}];
|
|
30
33
|
export var AbmAccessibilitySection = function AbmAccessibilitySection(_ref) {
|
|
31
|
-
var _values$accessibility, _values$accessibility2, _values$accessibility3, _values$accessibility4, _values$accessibility5, _values$
|
|
34
|
+
var _values$accessibility, _values$accessibility2, _values$accessibility3, _values$accessibility4, _values$accessibility5, _values$accessibility6, _values$accessibility8, _formValues$clients;
|
|
32
35
|
var values = _ref.values,
|
|
33
36
|
handleSetAgentValues = _ref.handleSetAgentValues;
|
|
34
37
|
var _useTranslation = useTranslation('abm_agent_section'),
|
|
35
38
|
t = _useTranslation.t;
|
|
36
39
|
var eventAmplitude = useEvent();
|
|
40
|
+
var _useSnackBarManager = useSnackBarManager(),
|
|
41
|
+
handleSnackbarError = _useSnackBarManager.handleSnackbarError;
|
|
37
42
|
var _useState = useState({
|
|
38
43
|
accessType: (values === null || values === void 0 || (_values$accessibility = values.accessibility) === null || _values$accessibility === void 0 ? void 0 : _values$accessibility.accessType) || 'company',
|
|
39
44
|
clients: (values === null || values === void 0 || (_values$accessibility2 = values.accessibility) === null || _values$accessibility2 === void 0 ? void 0 : _values$accessibility2.clients) || null,
|
|
40
45
|
corAccess: (_values$accessibility3 = values === null || values === void 0 || (_values$accessibility4 = values.accessibility) === null || _values$accessibility4 === void 0 ? void 0 : _values$accessibility4.corAccess) !== null && _values$accessibility3 !== void 0 ? _values$accessibility3 : DEFAULT_COR_ACCESS,
|
|
41
|
-
selectedConnectors: (values === null || values === void 0 || (_values$accessibility5 = values.accessibility) === null || _values$accessibility5 === void 0 ? void 0 : _values$accessibility5.selectedConnectors) || []
|
|
46
|
+
selectedConnectors: (values === null || values === void 0 || (_values$accessibility5 = values.accessibility) === null || _values$accessibility5 === void 0 ? void 0 : _values$accessibility5.selectedConnectors) || [],
|
|
47
|
+
connectorStatuses: (values === null || values === void 0 || (_values$accessibility6 = values.accessibility) === null || _values$accessibility6 === void 0 ? void 0 : _values$accessibility6.connectorStatuses) || {}
|
|
42
48
|
}),
|
|
43
49
|
_useState2 = _slicedToArray(_useState, 2),
|
|
44
50
|
formValues = _useState2[0],
|
|
@@ -48,6 +54,10 @@ export var AbmAccessibilitySection = function AbmAccessibilitySection(_ref) {
|
|
|
48
54
|
_useState4 = _slicedToArray(_useState3, 2),
|
|
49
55
|
catalogConnectors = _useState4[0],
|
|
50
56
|
setCatalogConnectors = _useState4[1];
|
|
57
|
+
var _useState5 = useState(null),
|
|
58
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
59
|
+
authorizingSlug = _useState6[0],
|
|
60
|
+
setAuthorizingSlug = _useState6[1];
|
|
51
61
|
var externalConnectorsEnabled = hasMaiaExternalConnectorsAccess();
|
|
52
62
|
var _handleSelectOption = function handleSelectOption(option, clients) {
|
|
53
63
|
var optionMapping = {
|
|
@@ -62,7 +72,8 @@ export var AbmAccessibilitySection = function AbmAccessibilitySection(_ref) {
|
|
|
62
72
|
accessType: option,
|
|
63
73
|
clients: null,
|
|
64
74
|
corAccess: formValues.corAccess,
|
|
65
|
-
selectedConnectors: formValues.selectedConnectors
|
|
75
|
+
selectedConnectors: formValues.selectedConnectors,
|
|
76
|
+
connectorStatuses: formValues.connectorStatuses
|
|
66
77
|
};
|
|
67
78
|
if (option !== 'clients' || !clients) {
|
|
68
79
|
setFormValues(valueToSend);
|
|
@@ -111,9 +122,105 @@ export var AbmAccessibilitySection = function AbmAccessibilitySection(_ref) {
|
|
|
111
122
|
});
|
|
112
123
|
});
|
|
113
124
|
};
|
|
125
|
+
var connectorActionLabel = function connectorActionLabel(slug) {
|
|
126
|
+
if (!formValues.selectedConnectors.includes(slug)) return undefined;
|
|
127
|
+
if (formValues.connectorStatuses[slug] === 'needs_attention') return t('accessibilitySection.connectorAuthenticateAction');
|
|
128
|
+
if (formValues.connectorStatuses[slug] === 'error') return t('accessibilitySection.connectorReopenAction');
|
|
129
|
+
return undefined;
|
|
130
|
+
};
|
|
131
|
+
var handleConnectorAuthorization = /*#__PURE__*/function () {
|
|
132
|
+
var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(slug) {
|
|
133
|
+
var _values$general;
|
|
134
|
+
var agentId, popup, _yield$waitForConnect, authorized, error, connectors, updated, _t;
|
|
135
|
+
return _regeneratorRuntime.wrap(function (_context) {
|
|
136
|
+
while (1) switch (_context.prev = _context.next) {
|
|
137
|
+
case 0:
|
|
138
|
+
agentId = values === null || values === void 0 || (_values$general = values.general) === null || _values$general === void 0 ? void 0 : _values$general.id;
|
|
139
|
+
if (!(!agentId || authorizingSlug)) {
|
|
140
|
+
_context.next = 1;
|
|
141
|
+
break;
|
|
142
|
+
}
|
|
143
|
+
return _context.abrupt("return");
|
|
144
|
+
case 1:
|
|
145
|
+
// Open synchronously from the click so the browser does not block OAuth.
|
|
146
|
+
popup = window.open('', '_blank', 'popup=yes,width=560,height=760');
|
|
147
|
+
if (popup) {
|
|
148
|
+
_context.next = 2;
|
|
149
|
+
break;
|
|
150
|
+
}
|
|
151
|
+
handleSnackbarError(t('accessibilitySection.connectorPopupBlocked'));
|
|
152
|
+
return _context.abrupt("return");
|
|
153
|
+
case 2:
|
|
154
|
+
setAuthorizingSlug(slug);
|
|
155
|
+
_context.prev = 3;
|
|
156
|
+
_context.next = 4;
|
|
157
|
+
return authorizeConnector(slug);
|
|
158
|
+
case 4:
|
|
159
|
+
popup.location.href = _context.sent;
|
|
160
|
+
_context.next = 5;
|
|
161
|
+
return waitForConnectorAuthorization({
|
|
162
|
+
agentId: agentId.toString(),
|
|
163
|
+
slugs: [slug],
|
|
164
|
+
popup: popup
|
|
165
|
+
});
|
|
166
|
+
case 5:
|
|
167
|
+
_yield$waitForConnect = _context.sent;
|
|
168
|
+
authorized = _yield$waitForConnect.authorized;
|
|
169
|
+
error = _yield$waitForConnect.error;
|
|
170
|
+
if (authorized.includes(slug)) {
|
|
171
|
+
_context.next = 6;
|
|
172
|
+
break;
|
|
173
|
+
}
|
|
174
|
+
if (!popup.closed) popup.close();
|
|
175
|
+
setFormValues(function (prev) {
|
|
176
|
+
return _objectSpread(_objectSpread({}, prev), {}, {
|
|
177
|
+
connectorStatuses: _objectSpread(_objectSpread({}, prev.connectorStatuses), {}, _defineProperty({}, slug, 'error'))
|
|
178
|
+
});
|
|
179
|
+
});
|
|
180
|
+
handleSnackbarError(error && error !== 'timeout' ? error : t('accessibilitySection.connectorAuthIncomplete'));
|
|
181
|
+
return _context.abrupt("return");
|
|
182
|
+
case 6:
|
|
183
|
+
_context.next = 7;
|
|
184
|
+
return getAgentConnectors(agentId.toString());
|
|
185
|
+
case 7:
|
|
186
|
+
connectors = _context.sent;
|
|
187
|
+
updated = connectors.find(function (connector) {
|
|
188
|
+
return connector.slug === slug;
|
|
189
|
+
});
|
|
190
|
+
setFormValues(function (prev) {
|
|
191
|
+
return _objectSpread(_objectSpread({}, prev), {}, {
|
|
192
|
+
connectorStatuses: _objectSpread(_objectSpread({}, prev.connectorStatuses), {}, _defineProperty({}, slug, (updated === null || updated === void 0 ? void 0 : updated.connection_status) || 'ok'))
|
|
193
|
+
});
|
|
194
|
+
});
|
|
195
|
+
_context.next = 9;
|
|
196
|
+
break;
|
|
197
|
+
case 8:
|
|
198
|
+
_context.prev = 8;
|
|
199
|
+
_t = _context["catch"](3);
|
|
200
|
+
if (!popup.closed) popup.close();
|
|
201
|
+
setFormValues(function (prev) {
|
|
202
|
+
return _objectSpread(_objectSpread({}, prev), {}, {
|
|
203
|
+
connectorStatuses: _objectSpread(_objectSpread({}, prev.connectorStatuses), {}, _defineProperty({}, slug, 'error'))
|
|
204
|
+
});
|
|
205
|
+
});
|
|
206
|
+
handleSnackbarError(t('accessibilitySection.connectorAuthFailed'));
|
|
207
|
+
case 9:
|
|
208
|
+
_context.prev = 9;
|
|
209
|
+
setAuthorizingSlug(null);
|
|
210
|
+
return _context.finish(9);
|
|
211
|
+
case 10:
|
|
212
|
+
case "end":
|
|
213
|
+
return _context.stop();
|
|
214
|
+
}
|
|
215
|
+
}, _callee, null, [[3, 8, 9, 10]]);
|
|
216
|
+
}));
|
|
217
|
+
return function handleConnectorAuthorization(_x) {
|
|
218
|
+
return _ref2.apply(this, arguments);
|
|
219
|
+
};
|
|
220
|
+
}();
|
|
114
221
|
useEffect(function () {
|
|
115
|
-
var _values$
|
|
116
|
-
var nextConnectors = values === null || values === void 0 || (_values$
|
|
222
|
+
var _values$accessibility7;
|
|
223
|
+
var nextConnectors = values === null || values === void 0 || (_values$accessibility7 = values.accessibility) === null || _values$accessibility7 === void 0 ? void 0 : _values$accessibility7.selectedConnectors;
|
|
117
224
|
if (!nextConnectors) {
|
|
118
225
|
return;
|
|
119
226
|
}
|
|
@@ -127,7 +234,7 @@ export var AbmAccessibilitySection = function AbmAccessibilitySection(_ref) {
|
|
|
127
234
|
selectedConnectors: nextConnectors
|
|
128
235
|
});
|
|
129
236
|
});
|
|
130
|
-
}, [values === null || values === void 0 || (_values$
|
|
237
|
+
}, [values === null || values === void 0 || (_values$accessibility8 = values.accessibility) === null || _values$accessibility8 === void 0 ? void 0 : _values$accessibility8.selectedConnectors]);
|
|
131
238
|
useEffect(function () {
|
|
132
239
|
if (formValues) {
|
|
133
240
|
handleSetAgentValues === null || handleSetAgentValues === void 0 || handleSetAgentValues({
|
|
@@ -172,10 +279,10 @@ export var AbmAccessibilitySection = function AbmAccessibilitySection(_ref) {
|
|
|
172
279
|
}), /*#__PURE__*/_jsx(SCAASSectionSubtitle, {
|
|
173
280
|
children: t('accessibilitySection.corPermissionsSubtitle')
|
|
174
281
|
})]
|
|
175
|
-
}), COR_PERMISSION_ROWS.map(function (
|
|
176
|
-
var slug =
|
|
177
|
-
titleKey =
|
|
178
|
-
descriptionKey =
|
|
282
|
+
}), COR_PERMISSION_ROWS.map(function (_ref3) {
|
|
283
|
+
var slug = _ref3.slug,
|
|
284
|
+
titleKey = _ref3.titleKey,
|
|
285
|
+
descriptionKey = _ref3.descriptionKey;
|
|
179
286
|
return /*#__PURE__*/_jsx(OptionCorPermission, {
|
|
180
287
|
title: t("accessibilitySection.".concat(titleKey)),
|
|
181
288
|
description: t("accessibilitySection.".concat(descriptionKey)),
|
|
@@ -202,7 +309,13 @@ export var AbmAccessibilitySection = function AbmAccessibilitySection(_ref) {
|
|
|
202
309
|
checked: formValues.selectedConnectors.includes(connector.slug),
|
|
203
310
|
onChange: function onChange(checked) {
|
|
204
311
|
return handleConnectorAccessChange(connector.slug, checked);
|
|
205
|
-
}
|
|
312
|
+
},
|
|
313
|
+
actionLabel: connectorActionLabel(connector.slug),
|
|
314
|
+
actionTone: formValues.connectorStatuses[connector.slug] === 'error' ? 'error' : 'attention',
|
|
315
|
+
onAction: function onAction() {
|
|
316
|
+
return handleConnectorAuthorization(connector.slug);
|
|
317
|
+
},
|
|
318
|
+
actionBusy: authorizingSlug === connector.slug
|
|
206
319
|
}, connector.slug);
|
|
207
320
|
})]
|
|
208
321
|
})]
|
|
@@ -254,4 +367,4 @@ export var AbmAccessibilitySection = function AbmAccessibilitySection(_ref) {
|
|
|
254
367
|
})]
|
|
255
368
|
});
|
|
256
369
|
};
|
|
257
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VTdGF0ZSIsInVzZUVmZmVjdCIsInVzZVRyYW5zbGF0aW9uIiwiT3B0aW9uQWNjZXNzaWJpbGl0eSIsIk9wdGlvbkNvclBlcm1pc3Npb24iLCJFVkVOVFMiLCJ1c2VFdmVudCIsImdldEF2YWlsYWJsZUNvbm5lY3RvcnMiLCJERUZBVUxUX0NPUl9BQ0NFU1MiLCJoYXNNYWlhRXh0ZXJuYWxDb25uZWN0b3JzQWNjZXNzIiwiU0NBQVNXcmFwcGVyIiwiU0NBQVNIZWFkZXIiLCJTQ0FBU1RpdGxlIiwiU0NBQVNTdWJ0aXRsZSIsIlNDQUFTQ29udGVudCIsIlNDQUFTU2VjdGlvbiIsIlNDQUFTU2VjdGlvbkhlYWRlciIsIlNDQUFTU2VjdGlvblRpdGxlIiwiU0NBQVNTZWN0aW9uU3VidGl0bGUiLCJTQ0FBU09wdGlvbnNDb250YWluZXIiLCJTQ0FBU0RpdmlkZXIiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJDT1JfUEVSTUlTU0lPTl9ST1dTIiwic2x1ZyIsInRpdGxlS2V5IiwiZGVzY3JpcHRpb25LZXkiLCJBYm1BY2Nlc3NpYmlsaXR5U2VjdGlvbiIsIl9yZWYiLCJfdmFsdWVzJGFjY2Vzc2liaWxpdHkiLCJfdmFsdWVzJGFjY2Vzc2liaWxpdHkyIiwiX3ZhbHVlcyRhY2Nlc3NpYmlsaXR5MyIsIl92YWx1ZXMkYWNjZXNzaWJpbGl0eTQiLCJfdmFsdWVzJGFjY2Vzc2liaWxpdHk1IiwiX3ZhbHVlcyRhY2Nlc3NpYmlsaXR5NyIsIl9mb3JtVmFsdWVzJGNsaWVudHMiLCJ2YWx1ZXMiLCJoYW5kbGVTZXRBZ2VudFZhbHVlcyIsIl91c2VUcmFuc2xhdGlvbiIsInQiLCJldmVudEFtcGxpdHVkZSIsIl91c2VTdGF0ZSIsImFjY2Vzc1R5cGUiLCJhY2Nlc3NpYmlsaXR5IiwiY2xpZW50cyIsImNvckFjY2VzcyIsInNlbGVjdGVkQ29ubmVjdG9ycyIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsImZvcm1WYWx1ZXMiLCJzZXRGb3JtVmFsdWVzIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJjYXRhbG9nQ29ubmVjdG9ycyIsInNldENhdGFsb2dDb25uZWN0b3JzIiwiZXh0ZXJuYWxDb25uZWN0b3JzRW5hYmxlZCIsImhhbmRsZVNlbGVjdE9wdGlvbiIsIm9wdGlvbiIsIm9wdGlvbk1hcHBpbmciLCJjb21wYW55Iiwib25seV9tZSIsImFjY2Vzc2liaWxpdHlUeXBlIiwidmFsdWVUb1NlbmQiLCJjbGllbnRGb3JtRGF0YSIsIm1hcCIsImNsaWVudCIsImlkIiwibmFtZSIsImlzX2FjdGl2ZSIsImlzX2RlbGV0ZWQiLCJsZW5ndGgiLCJhY2Nlc3NpYmlsaXR5U2VsZWN0Q2xpZW50IiwiX29iamVjdFNwcmVhZCIsImhhbmRsZUNvckFjY2Vzc0NoYW5nZSIsImNoZWNrZWQiLCJjb25uZWN0b3JDb3IiLCJwcmV2IiwiX2RlZmluZVByb3BlcnR5IiwiaGFuZGxlQ29ubmVjdG9yQWNjZXNzQ2hhbmdlIiwiY29ubmVjdG9yTWNwIiwibmV4dCIsIlNldCIsImFkZCIsIkFycmF5IiwiZnJvbSIsIl92YWx1ZXMkYWNjZXNzaWJpbGl0eTYiLCJuZXh0Q29ubmVjdG9ycyIsImN1cnJlbnQiLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJzb3J0Iiwiam9pbiIsImluY29taW5nIiwia2V5IiwidmFsdWUiLCJ1bmRlZmluZWQiLCJjYW5jZWxsZWQiLCJ0aGVuIiwiY29ubmVjdG9ycyIsImZpbHRlciIsImNvbm5lY3RvciIsImVycm9yIiwiY29uc29sZSIsImNoaWxkcmVuIiwiJGluZGV4IiwiX3JlZjIiLCJ0aXRsZSIsImNvbmNhdCIsImRlc2NyaXB0aW9uIiwib25DaGFuZ2UiLCJpbmNsdWRlcyIsIm9wdGlvblNlbGVjdGVkIiwiaXNDbGllbnQiLCJwcm9wcyIsInNlbGVjdGVkQ2xpZW50cyIsIl9jbGllbnQkbmFtZSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL21vbGVjdWxlcy9BYm1TZWN0aW9uL0FibUFjY2Vzc2liaWxpdHlTZWN0aW9uL0FibUFjY2Vzc2liaWxpdHlTZWN0aW9uLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VTdGF0ZSwgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gJ3JlYWN0LWkxOG5leHQnXG5pbXBvcnQgeyBPcHRpb25BY2Nlc3NpYmlsaXR5IH0gZnJvbSAnLi4vLi4vLi4vYXRvbXMvT3B0aW9uQWNjZXNzaWJpbGl0eSdcbmltcG9ydCB7IE9wdGlvbkNvclBlcm1pc3Npb24gfSBmcm9tICcuLi8uLi8uLi9hdG9tcy9PcHRpb25Db3JQZXJtaXNzaW9uJ1xuaW1wb3J0IHsgRVZFTlRTLCB1c2VFdmVudCB9IGZyb20gJy4uLy4uLy4uLy4uL2hvb2tzL3VzZUV2ZW50J1xuaW1wb3J0IHsgZ2V0QXZhaWxhYmxlQ29ubmVjdG9ycywgdHlwZSBDYXRhbG9nQ29ubmVjdG9yIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvbWFpYS9BZ2VudHMvY29ubmVjdG9ycydcbmltcG9ydCB7IENvckFjY2VzcywgQ29yVG9vbEdyb3VwU2x1ZywgREVGQVVMVF9DT1JfQUNDRVNTIH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbHMvbm9ybWFsaXplQWdlbnRDb25uZWN0b3JzJ1xuaW1wb3J0IHsgaGFzTWFpYUV4dGVybmFsQ29ubmVjdG9yc0FjY2VzcyB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbnN0YW50cy9tYWlhRXh0ZXJuYWxDb25uZWN0b3JzQWNjZXNzJ1xuaW1wb3J0IHtcbiAgU0NBQVNXcmFwcGVyLFxuICBTQ0FBU0hlYWRlcixcbiAgU0NBQVNUaXRsZSxcbiAgU0NBQVNTdWJ0aXRsZSxcbiAgU0NBQVNDb250ZW50LFxuICBTQ0FBU1NlY3Rpb24sXG4gIFNDQUFTU2VjdGlvbkhlYWRlcixcbiAgU0NBQVNTZWN0aW9uVGl0bGUsXG4gIFNDQUFTU2VjdGlvblN1YnRpdGxlLFxuICBTQ0FBU09wdGlvbnNDb250YWluZXIsXG4gIFNDQUFTRGl2aWRlcixcbn0gZnJvbSAnLi9BYm1BY2Nlc3NpYmlsaXR5U2VjdGlvbi5zdHlsZXMnXG5pbXBvcnQgeyBDbGllbnRGb3JtRGF0YSB9IGZyb20gJy4vQWJtQWNjZXNzaWJpbGl0eVNlY3Rpb24uaW50ZXJmYWNlJ1xuXG5pbnRlcmZhY2UgQWJtQWNjZXNzaWJpbGl0eVNlY3Rpb25Qcm9wcyB7XG4gIHZhbHVlcz86IHtcbiAgICBhY2Nlc3NpYmlsaXR5Pzoge1xuICAgICAgYWNjZXNzVHlwZT86IHN0cmluZ1xuICAgICAgY2xpZW50cz86IENsaWVudEZvcm1EYXRhW10gfCBudWxsXG4gICAgICBjb3JBY2Nlc3M/OiBDb3JBY2Nlc3NcbiAgICAgIHNlbGVjdGVkQ29ubmVjdG9ycz86IHN0cmluZ1tdXG4gICAgfVxuICB9XG4gIGhhbmRsZVNldEFnZW50VmFsdWVzPzogKHsga2V5LCB2YWx1ZSB9OiB7IGtleTogc3RyaW5nOyB2YWx1ZTogdW5rbm93biB9KSA9PiB2b2lkXG59XG5cbi8vIE9yZGVuID0gamVyYXJxdcOtYSBkZSBDT1IgKGNsaWVudGUgPiBwcm95ZWN0byA+IHRhcmVhKSwgZGUgbcOhcyBhbXBsaW8gYSBtw6FzIGVzcGVjw61maWNvLlxuY29uc3QgQ09SX1BFUk1JU1NJT05fUk9XUzogeyBzbHVnOiBDb3JUb29sR3JvdXBTbHVnOyB0aXRsZUtleTogc3RyaW5nOyBkZXNjcmlwdGlvbktleTogc3RyaW5nIH1bXSA9IFtcbiAgeyBzbHVnOiAnY2xpZW50ZXMnLCB0aXRsZUtleTogJ2NsaWVudEFjY2Vzc1RpdGxlJywgZGVzY3JpcHRpb25LZXk6ICdjbGllbnRBY2Nlc3NEZXNjcmlwdGlvbicgfSxcbiAgeyBzbHVnOiAncHJveWVjdG9zJywgdGl0bGVLZXk6ICdwcm9qZWN0QWNjZXNzVGl0bGUnLCBkZXNjcmlwdGlvbktleTogJ3Byb2plY3RBY2Nlc3NEZXNjcmlwdGlvbicgfSxcbiAgeyBzbHVnOiAndGFyZWFzJywgdGl0bGVLZXk6ICd0YXNrQWNjZXNzVGl0bGUnLCBkZXNjcmlwdGlvbktleTogJ3Rhc2tBY2Nlc3NEZXNjcmlwdGlvbicgfSxcbl1cblxuZXhwb3J0IGNvbnN0IEFibUFjY2Vzc2liaWxpdHlTZWN0aW9uID0gKHsgdmFsdWVzLCBoYW5kbGVTZXRBZ2VudFZhbHVlcyB9OiBBYm1BY2Nlc3NpYmlsaXR5U2VjdGlvblByb3BzKSA9PiB7XG4gIGNvbnN0IHsgdCB9ID0gdXNlVHJhbnNsYXRpb24oJ2FibV9hZ2VudF9zZWN0aW9uJylcbiAgY29uc3QgZXZlbnRBbXBsaXR1ZGUgPSB1c2VFdmVudCgpXG5cbiAgY29uc3QgW2Zvcm1WYWx1ZXMsIHNldEZvcm1WYWx1ZXNdID0gdXNlU3RhdGU8e1xuICAgIGFjY2Vzc1R5cGU6IHN0cmluZ1xuICAgIGNsaWVudHM6IENsaWVudEZvcm1EYXRhW10gfCBudWxsXG4gICAgY29yQWNjZXNzOiBDb3JBY2Nlc3NcbiAgICBzZWxlY3RlZENvbm5lY3RvcnM6IHN0cmluZ1tdXG4gIH0+KHtcbiAgICBhY2Nlc3NUeXBlOiB2YWx1ZXM/LmFjY2Vzc2liaWxpdHk/LmFjY2Vzc1R5cGUgfHwgJ2NvbXBhbnknLFxuICAgIGNsaWVudHM6IHZhbHVlcz8uYWNjZXNzaWJpbGl0eT8uY2xpZW50cyB8fCBudWxsLFxuICAgIGNvckFjY2VzczogdmFsdWVzPy5hY2Nlc3NpYmlsaXR5Py5jb3JBY2Nlc3MgPz8gREVGQVVMVF9DT1JfQUNDRVNTLFxuICAgIHNlbGVjdGVkQ29ubmVjdG9yczogdmFsdWVzPy5hY2Nlc3NpYmlsaXR5Py5zZWxlY3RlZENvbm5lY3RvcnMgfHwgW10sXG4gIH0pXG4gIC8vIEVsIGNhdMOhbG9nbyBsbyBkZWZpbmUgZWwgYmFjayAoYEdFVCAvdjEvY29ubmVjdG9yc2ApOyBlbCBBQk0gcmVuZGVyaXphIHVuYSBmaWxhIHBvciBjb25lY3RvciBhY3Rpdm8uXG4gIGNvbnN0IFtjYXRhbG9nQ29ubmVjdG9ycywgc2V0Q2F0YWxvZ0Nvbm5lY3RvcnNdID0gdXNlU3RhdGU8Q2F0YWxvZ0Nvbm5lY3RvcltdPihbXSlcbiAgY29uc3QgZXh0ZXJuYWxDb25uZWN0b3JzRW5hYmxlZCA9IGhhc01haWFFeHRlcm5hbENvbm5lY3RvcnNBY2Nlc3MoKVxuXG4gIGNvbnN0IGhhbmRsZVNlbGVjdE9wdGlvbiA9IChvcHRpb246IHN0cmluZywgY2xpZW50cz86IENsaWVudEZvcm1EYXRhW10gfCBudWxsKSA9PiB7XG4gICAgY29uc3Qgb3B0aW9uTWFwcGluZzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHtcbiAgICAgIGNvbXBhbnk6ICdhbGxfY29tcGFueScsXG4gICAgICBjbGllbnRzOiAnYnlfY2xpZW50ZXMnLFxuICAgICAgb25seV9tZTogJ2p1c3RfbWUnLFxuICAgIH1cblxuICAgIGV2ZW50QW1wbGl0dWRlKEVWRU5UUy5hY2Nlc3NpYmlsaXR5VHlwZSwgeyBvcHRpb246IG9wdGlvbk1hcHBpbmdbb3B0aW9uXSB9KVxuXG4gICAgY29uc3QgdmFsdWVUb1NlbmQgPSB7XG4gICAgICBhY2Nlc3NUeXBlOiBvcHRpb24sXG4gICAgICBjbGllbnRzOiBudWxsIGFzIENsaWVudEZvcm1EYXRhW10gfCBudWxsLFxuICAgICAgY29yQWNjZXNzOiBmb3JtVmFsdWVzLmNvckFjY2VzcyxcbiAgICAgIHNlbGVjdGVkQ29ubmVjdG9yczogZm9ybVZhbHVlcy5zZWxlY3RlZENvbm5lY3RvcnMsXG4gICAgfVxuICAgIGlmIChvcHRpb24gIT09ICdjbGllbnRzJyB8fCAhY2xpZW50cykge1xuICAgICAgc2V0Rm9ybVZhbHVlcyh2YWx1ZVRvU2VuZClcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IGNsaWVudEZvcm1EYXRhID0gY2xpZW50cy5tYXAoY2xpZW50ID0+ICh7XG4gICAgICBpZDogY2xpZW50LmlkLFxuICAgICAgbmFtZTogY2xpZW50Lm5hbWUsXG4gICAgICBpc19hY3RpdmU6IGNsaWVudC5pc19hY3RpdmUsXG4gICAgICBpc19kZWxldGVkOiBjbGllbnQuaXNfZGVsZXRlZCxcbiAgICB9KSlcblxuICAgIGlmIChjbGllbnRzICYmIGNsaWVudHMubGVuZ3RoID4gMCkge1xuICAgICAgZXZlbnRBbXBsaXR1ZGUoRVZFTlRTLmFjY2Vzc2liaWxpdHlTZWxlY3RDbGllbnQpXG4gICAgfVxuXG4gICAgc2V0Rm9ybVZhbHVlcyh7IC4uLnZhbHVlVG9TZW5kLCBjbGllbnRzOiBjbGllbnRGb3JtRGF0YSB9KVxuICB9XG5cbiAgY29uc3QgaGFuZGxlQ29yQWNjZXNzQ2hhbmdlID0gKHNsdWc6IENvclRvb2xHcm91cFNsdWcsIGNoZWNrZWQ6IGJvb2xlYW4pID0+IHtcbiAgICBldmVudEFtcGxpdHVkZShFVkVOVFMuY29ubmVjdG9yQ29yLCB7IG9wdGlvbjogY2hlY2tlZCA/ICdvbicgOiAnb2ZmJywgc2x1ZyB9KVxuXG4gICAgc2V0Rm9ybVZhbHVlcyhwcmV2ID0+ICh7XG4gICAgICAuLi5wcmV2LFxuICAgICAgY29yQWNjZXNzOiB7IC4uLnByZXYuY29yQWNjZXNzLCBbc2x1Z106IGNoZWNrZWQgfSxcbiAgICB9KSlcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZUNvbm5lY3RvckFjY2Vzc0NoYW5nZSA9IChzbHVnOiBzdHJpbmcsIGNoZWNrZWQ6IGJvb2xlYW4pID0+IHtcbiAgICBldmVudEFtcGxpdHVkZShFVkVOVFMuY29ubmVjdG9yTWNwLCB7IG9wdGlvbjogY2hlY2tlZCA/ICdvbicgOiAnb2ZmJywgc2x1ZyB9KVxuXG4gICAgc2V0Rm9ybVZhbHVlcyhwcmV2ID0+IHtcbiAgICAgIGNvbnN0IG5leHQgPSBuZXcgU2V0KHByZXYuc2VsZWN0ZWRDb25uZWN0b3JzKVxuICAgICAgaWYgKGNoZWNrZWQpIHtcbiAgICAgICAgbmV4dC5hZGQoc2x1ZylcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5leHQuZGVsZXRlKHNsdWcpXG4gICAgICB9XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5wcmV2LFxuICAgICAgICBzZWxlY3RlZENvbm5lY3RvcnM6IEFycmF5LmZyb20obmV4dCksXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgbmV4dENvbm5lY3RvcnMgPSB2YWx1ZXM/LmFjY2Vzc2liaWxpdHk/LnNlbGVjdGVkQ29ubmVjdG9yc1xuICAgIGlmICghbmV4dENvbm5lY3RvcnMpIHtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBzZXRGb3JtVmFsdWVzKHByZXYgPT4ge1xuICAgICAgY29uc3QgY3VycmVudCA9IFsuLi5wcmV2LnNlbGVjdGVkQ29ubmVjdG9yc10uc29ydCgpLmpvaW4oJ3wnKVxuICAgICAgY29uc3QgaW5jb21pbmcgPSBbLi4ubmV4dENvbm5lY3RvcnNdLnNvcnQoKS5qb2luKCd8JylcbiAgICAgIGlmIChjdXJyZW50ID09PSBpbmNvbWluZykge1xuICAgICAgICByZXR1cm4gcHJldlxuICAgICAgfVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ucHJldixcbiAgICAgICAgc2VsZWN0ZWRDb25uZWN0b3JzOiBuZXh0Q29ubmVjdG9ycyxcbiAgICAgIH1cbiAgICB9KVxuICB9LCBbdmFsdWVzPy5hY2Nlc3NpYmlsaXR5Py5zZWxlY3RlZENvbm5lY3RvcnNdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGZvcm1WYWx1ZXMpIHtcbiAgICAgIGhhbmRsZVNldEFnZW50VmFsdWVzPy4oe1xuICAgICAgICBrZXk6ICdhY2Nlc3NpYmlsaXR5JyxcbiAgICAgICAgdmFsdWU6IGZvcm1WYWx1ZXMsXG4gICAgICB9KVxuICAgIH1cbiAgfSwgW2Zvcm1WYWx1ZXNdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFleHRlcm5hbENvbm5lY3RvcnNFbmFibGVkKSByZXR1cm4gdW5kZWZpbmVkXG5cbiAgICBsZXQgY2FuY2VsbGVkID0gZmFsc2VcbiAgICBnZXRBdmFpbGFibGVDb25uZWN0b3JzKClcbiAgICAgIC50aGVuKGNvbm5lY3RvcnMgPT4ge1xuICAgICAgICBpZiAoIWNhbmNlbGxlZCkge1xuICAgICAgICAgIHNldENhdGFsb2dDb25uZWN0b3JzKGNvbm5lY3RvcnMuZmlsdGVyKGNvbm5lY3RvciA9PiBjb25uZWN0b3IuaXNfYWN0aXZlKSlcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICAgIC5jYXRjaChlcnJvciA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGZldGNoaW5nIGNvbm5lY3RvcnMgY2F0YWxvZzonLCBlcnJvcilcbiAgICAgICAgaWYgKCFjYW5jZWxsZWQpIHtcbiAgICAgICAgICBzZXRDYXRhbG9nQ29ubmVjdG9ycyhbXSlcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgY2FuY2VsbGVkID0gdHJ1ZVxuICAgIH1cbiAgfSwgW2V4dGVybmFsQ29ubmVjdG9yc0VuYWJsZWRdKVxuXG4gIHJldHVybiAoXG4gICAgPFNDQUFTV3JhcHBlcj5cbiAgICAgIDxTQ0FBU0hlYWRlciAkaW5kZXg9ezB9PlxuICAgICAgICA8U0NBQVNUaXRsZT57dCgnYWNjZXNzaWJpbGl0eVNlY3Rpb24udGl0bGVTZWN0aW9uJyl9PC9TQ0FBU1RpdGxlPlxuICAgICAgICA8U0NBQVNTdWJ0aXRsZT57dCgnYWNjZXNzaWJpbGl0eVNlY3Rpb24uc3VidGl0bGVTZWN0aW9uJyl9PC9TQ0FBU1N1YnRpdGxlPlxuICAgICAgPC9TQ0FBU0hlYWRlcj5cbiAgICAgIDxTQ0FBU0NvbnRlbnQgJGluZGV4PXsxfT5cbiAgICAgICAgPFNDQUFTU2VjdGlvbj5cbiAgICAgICAgICA8U0NBQVNTZWN0aW9uSGVhZGVyPlxuICAgICAgICAgICAgPFNDQUFTU2VjdGlvblRpdGxlPnt0KCdhY2Nlc3NpYmlsaXR5U2VjdGlvbi5jb3JQZXJtaXNzaW9uc1RpdGxlJyl9PC9TQ0FBU1NlY3Rpb25UaXRsZT5cbiAgICAgICAgICAgIDxTQ0FBU1NlY3Rpb25TdWJ0aXRsZT57dCgnYWNjZXNzaWJpbGl0eVNlY3Rpb24uY29yUGVybWlzc2lvbnNTdWJ0aXRsZScpfTwvU0NBQVNTZWN0aW9uU3VidGl0bGU+XG4gICAgICAgICAgPC9TQ0FBU1NlY3Rpb25IZWFkZXI+XG4gICAgICAgICAge0NPUl9QRVJNSVNTSU9OX1JPV1MubWFwKCh7IHNsdWcsIHRpdGxlS2V5LCBkZXNjcmlwdGlvbktleSB9KSA9PiAoXG4gICAgICAgICAgICA8T3B0aW9uQ29yUGVybWlzc2lvblxuICAgICAgICAgICAgICBrZXk9e3NsdWd9XG4gICAgICAgICAgICAgIHRpdGxlPXt0KGBhY2Nlc3NpYmlsaXR5U2VjdGlvbi4ke3RpdGxlS2V5fWApfVxuICAgICAgICAgICAgICBkZXNjcmlwdGlvbj17dChgYWNjZXNzaWJpbGl0eVNlY3Rpb24uJHtkZXNjcmlwdGlvbktleX1gKX1cbiAgICAgICAgICAgICAgY2hlY2tlZD17Zm9ybVZhbHVlcy5jb3JBY2Nlc3Nbc2x1Z119XG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXtjaGVja2VkID0+IGhhbmRsZUNvckFjY2Vzc0NoYW5nZShzbHVnLCBjaGVja2VkKX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKSl9XG4gICAgICAgIDwvU0NBQVNTZWN0aW9uPlxuXG4gICAgICAgIHtleHRlcm5hbENvbm5lY3RvcnNFbmFibGVkICYmIChcbiAgICAgICAgICA8PlxuICAgICAgICAgICAgPFNDQUFTRGl2aWRlciAvPlxuXG4gICAgICAgICAgICA8U0NBQVNTZWN0aW9uPlxuICAgICAgICAgICAgICA8U0NBQVNTZWN0aW9uSGVhZGVyPlxuICAgICAgICAgICAgICAgIDxTQ0FBU1NlY3Rpb25UaXRsZT57dCgnYWNjZXNzaWJpbGl0eVNlY3Rpb24ubWNwUGVybWlzc2lvbnNUaXRsZScpfTwvU0NBQVNTZWN0aW9uVGl0bGU+XG4gICAgICAgICAgICAgICAgPFNDQUFTU2VjdGlvblN1YnRpdGxlPnt0KCdhY2Nlc3NpYmlsaXR5U2VjdGlvbi5tY3BQZXJtaXNzaW9uc1N1YnRpdGxlJyl9PC9TQ0FBU1NlY3Rpb25TdWJ0aXRsZT5cbiAgICAgICAgICAgICAgPC9TQ0FBU1NlY3Rpb25IZWFkZXI+XG4gICAgICAgICAgICAgIHtjYXRhbG9nQ29ubmVjdG9ycy5tYXAoY29ubmVjdG9yID0+IChcbiAgICAgICAgICAgICAgICA8T3B0aW9uQ29yUGVybWlzc2lvblxuICAgICAgICAgICAgICAgICAga2V5PXtjb25uZWN0b3Iuc2x1Z31cbiAgICAgICAgICAgICAgICAgIHRpdGxlPXtjb25uZWN0b3IubmFtZX1cbiAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uPXtcbiAgICAgICAgICAgICAgICAgICAgY29ubmVjdG9yLmRlc2NyaXB0aW9uIHx8XG4gICAgICAgICAgICAgICAgICAgIHQoJ2FjY2Vzc2liaWxpdHlTZWN0aW9uLmNvbm5lY3RvckFjY2Vzc0Rlc2NyaXB0aW9uJywgeyBuYW1lOiBjb25uZWN0b3IubmFtZSB9KVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgY2hlY2tlZD17Zm9ybVZhbHVlcy5zZWxlY3RlZENvbm5lY3RvcnMuaW5jbHVkZXMoY29ubmVjdG9yLnNsdWcpfVxuICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e2NoZWNrZWQgPT4gaGFuZGxlQ29ubmVjdG9yQWNjZXNzQ2hhbmdlKGNvbm5lY3Rvci5zbHVnLCBjaGVja2VkKX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgIDwvU0NBQVNTZWN0aW9uPlxuICAgICAgICAgIDwvPlxuICAgICAgICApfVxuXG4gICAgICAgIDxTQ0FBU0RpdmlkZXIgLz5cblxuICAgICAgICA8U0NBQVNTZWN0aW9uPlxuICAgICAgICAgIDxTQ0FBU1NlY3Rpb25IZWFkZXI+XG4gICAgICAgICAgICA8U0NBQVNTZWN0aW9uVGl0bGU+e3QoJ2FjY2Vzc2liaWxpdHlTZWN0aW9uLnZpc2liaWxpdHlUaXRsZScpfTwvU0NBQVNTZWN0aW9uVGl0bGU+XG4gICAgICAgICAgICA8U0NBQVNTZWN0aW9uU3VidGl0bGU+e3QoJ2FjY2Vzc2liaWxpdHlTZWN0aW9uLndob0NhbkFjY2VzcycpfTwvU0NBQVNTZWN0aW9uU3VidGl0bGU+XG4gICAgICAgICAgPC9TQ0FBU1NlY3Rpb25IZWFkZXI+XG4gICAgICAgICAgPFNDQUFTT3B0aW9uc0NvbnRhaW5lcj5cbiAgICAgICAgICAgIDxPcHRpb25BY2Nlc3NpYmlsaXR5XG4gICAgICAgICAgICAgIHRpdGxlPXt0KCdhY2Nlc3NpYmlsaXR5U2VjdGlvbi5hbGxDb21wYW55VGl0bGUnKX1cbiAgICAgICAgICAgICAgZGVzY3JpcHRpb249e3QoJ2FjY2Vzc2liaWxpdHlTZWN0aW9uLmFsbENvbXBhbnlEZXNjcmlwdGlvbicpfVxuICAgICAgICAgICAgICBoYW5kbGVTZWxlY3RPcHRpb249eygpID0+IGhhbmRsZVNlbGVjdE9wdGlvbignY29tcGFueScpfVxuICAgICAgICAgICAgICBvcHRpb25TZWxlY3RlZD17Zm9ybVZhbHVlcy5hY2Nlc3NUeXBlfVxuICAgICAgICAgICAgICBuYW1lPVwiY29tcGFueVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPE9wdGlvbkFjY2Vzc2liaWxpdHlcbiAgICAgICAgICAgICAgdGl0bGU9e3QoJ2FjY2Vzc2liaWxpdHlTZWN0aW9uLmNsaWVudFRpdGxlJyl9XG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uPXt0KCdhY2Nlc3NpYmlsaXR5U2VjdGlvbi5jbGllbnREZXNjcmlwdGlvbicpfVxuICAgICAgICAgICAgICBpc0NsaWVudD17Zm9ybVZhbHVlcy5hY2Nlc3NUeXBlID09PSAnY2xpZW50cyd9XG4gICAgICAgICAgICAgIGhhbmRsZVNlbGVjdE9wdGlvbj17KHByb3BzPzogQ2xpZW50Rm9ybURhdGFbXSkgPT4gaGFuZGxlU2VsZWN0T3B0aW9uKCdjbGllbnRzJywgcHJvcHMpfVxuICAgICAgICAgICAgICBvcHRpb25TZWxlY3RlZD17Zm9ybVZhbHVlcy5hY2Nlc3NUeXBlfVxuICAgICAgICAgICAgICBuYW1lPVwiY2xpZW50c1wiXG4gICAgICAgICAgICAgIHNlbGVjdGVkQ2xpZW50cz17Zm9ybVZhbHVlcy5jbGllbnRzPy5tYXAoY2xpZW50ID0+ICh7XG4gICAgICAgICAgICAgICAgaWQ6IGNsaWVudC5pZCxcbiAgICAgICAgICAgICAgICBuYW1lOiBjbGllbnQubmFtZSA/PyAnJyxcbiAgICAgICAgICAgICAgICBpc19hY3RpdmU6IGNsaWVudC5pc19hY3RpdmUsXG4gICAgICAgICAgICAgICAgaXNfZGVsZXRlZDogY2xpZW50LmlzX2RlbGV0ZWQsXG4gICAgICAgICAgICAgIH0pKX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8T3B0aW9uQWNjZXNzaWJpbGl0eVxuICAgICAgICAgICAgICB0aXRsZT17dCgnYWNjZXNzaWJpbGl0eVNlY3Rpb24ub3duVGl0bGUnKX1cbiAgICAgICAgICAgICAgZGVzY3JpcHRpb249e3QoJ2FjY2Vzc2liaWxpdHlTZWN0aW9uLm93bkRlc2NyaXB0aW9uJyl9XG4gICAgICAgICAgICAgIGhhbmRsZVNlbGVjdE9wdGlvbj17KCkgPT4gaGFuZGxlU2VsZWN0T3B0aW9uKCdvbmx5X21lJyl9XG4gICAgICAgICAgICAgIG9wdGlvblNlbGVjdGVkPXtmb3JtVmFsdWVzLmFjY2Vzc1R5cGV9XG4gICAgICAgICAgICAgIG5hbWU9XCJvbmx5X21lXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9TQ0FBU09wdGlvbnNDb250YWluZXI+XG4gICAgICAgIDwvU0NBQVNTZWN0aW9uPlxuICAgICAgPC9TQ0FBU0NvbnRlbnQ+XG4gICAgPC9TQ0FBU1dyYXBwZXI+XG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxTQUFTQSxRQUFRLEVBQUVDLFNBQVMsUUFBUSxPQUFPO0FBQzNDLFNBQVNDLGNBQWMsUUFBUSxlQUFlO0FBQzlDLFNBQVNDLG1CQUFtQixRQUFRLG9DQUFvQztBQUN4RSxTQUFTQyxtQkFBbUIsUUFBUSxvQ0FBb0M7QUFDeEUsU0FBU0MsTUFBTSxFQUFFQyxRQUFRLFFBQVEsNEJBQTRCO0FBQzdELFNBQVNDLHNCQUFzQixRQUErQiw2Q0FBNkM7QUFDM0csU0FB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
|
|
370
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VTdGF0ZSIsInVzZUVmZmVjdCIsInVzZVRyYW5zbGF0aW9uIiwiT3B0aW9uQWNjZXNzaWJpbGl0eSIsIk9wdGlvbkNvclBlcm1pc3Npb24iLCJFVkVOVFMiLCJ1c2VFdmVudCIsImF1dGhvcml6ZUNvbm5lY3RvciIsImdldEFnZW50Q29ubmVjdG9ycyIsImdldEF2YWlsYWJsZUNvbm5lY3RvcnMiLCJ3YWl0Rm9yQ29ubmVjdG9yQXV0aG9yaXphdGlvbiIsInVzZVNuYWNrQmFyTWFuYWdlciIsIkRFRkFVTFRfQ09SX0FDQ0VTUyIsImhhc01haWFFeHRlcm5hbENvbm5lY3RvcnNBY2Nlc3MiLCJTQ0FBU1dyYXBwZXIiLCJTQ0FBU0hlYWRlciIsIlNDQUFTVGl0bGUiLCJTQ0FBU1N1YnRpdGxlIiwiU0NBQVNDb250ZW50IiwiU0NBQVNTZWN0aW9uIiwiU0NBQVNTZWN0aW9uSGVhZGVyIiwiU0NBQVNTZWN0aW9uVGl0bGUiLCJTQ0FBU1NlY3Rpb25TdWJ0aXRsZSIsIlNDQUFTT3B0aW9uc0NvbnRhaW5lciIsIlNDQUFTRGl2aWRlciIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJGcmFnbWVudCIsIl9GcmFnbWVudCIsIkNPUl9QRVJNSVNTSU9OX1JPV1MiLCJzbHVnIiwidGl0bGVLZXkiLCJkZXNjcmlwdGlvbktleSIsIkFibUFjY2Vzc2liaWxpdHlTZWN0aW9uIiwiX3JlZiIsIl92YWx1ZXMkYWNjZXNzaWJpbGl0eSIsIl92YWx1ZXMkYWNjZXNzaWJpbGl0eTIiLCJfdmFsdWVzJGFjY2Vzc2liaWxpdHkzIiwiX3ZhbHVlcyRhY2Nlc3NpYmlsaXR5NCIsIl92YWx1ZXMkYWNjZXNzaWJpbGl0eTUiLCJfdmFsdWVzJGFjY2Vzc2liaWxpdHk2IiwiX3ZhbHVlcyRhY2Nlc3NpYmlsaXR5OCIsIl9mb3JtVmFsdWVzJGNsaWVudHMiLCJ2YWx1ZXMiLCJoYW5kbGVTZXRBZ2VudFZhbHVlcyIsIl91c2VUcmFuc2xhdGlvbiIsInQiLCJldmVudEFtcGxpdHVkZSIsIl91c2VTbmFja0Jhck1hbmFnZXIiLCJoYW5kbGVTbmFja2JhckVycm9yIiwiX3VzZVN0YXRlIiwiYWNjZXNzVHlwZSIsImFjY2Vzc2liaWxpdHkiLCJjbGllbnRzIiwiY29yQWNjZXNzIiwic2VsZWN0ZWRDb25uZWN0b3JzIiwiY29ubmVjdG9yU3RhdHVzZXMiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJmb3JtVmFsdWVzIiwic2V0Rm9ybVZhbHVlcyIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwiY2F0YWxvZ0Nvbm5lY3RvcnMiLCJzZXRDYXRhbG9nQ29ubmVjdG9ycyIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2IiwiYXV0aG9yaXppbmdTbHVnIiwic2V0QXV0aG9yaXppbmdTbHVnIiwiZXh0ZXJuYWxDb25uZWN0b3JzRW5hYmxlZCIsImhhbmRsZVNlbGVjdE9wdGlvbiIsIm9wdGlvbiIsIm9wdGlvbk1hcHBpbmciLCJjb21wYW55Iiwib25seV9tZSIsImFjY2Vzc2liaWxpdHlUeXBlIiwidmFsdWVUb1NlbmQiLCJjbGllbnRGb3JtRGF0YSIsIm1hcCIsImNsaWVudCIsImlkIiwibmFtZSIsImlzX2FjdGl2ZSIsImlzX2RlbGV0ZWQiLCJsZW5ndGgiLCJhY2Nlc3NpYmlsaXR5U2VsZWN0Q2xpZW50IiwiX29iamVjdFNwcmVhZCIsImhhbmRsZUNvckFjY2Vzc0NoYW5nZSIsImNoZWNrZWQiLCJjb25uZWN0b3JDb3IiLCJwcmV2IiwiX2RlZmluZVByb3BlcnR5IiwiaGFuZGxlQ29ubmVjdG9yQWNjZXNzQ2hhbmdlIiwiY29ubmVjdG9yTWNwIiwibmV4dCIsIlNldCIsImFkZCIsIkFycmF5IiwiZnJvbSIsImNvbm5lY3RvckFjdGlvbkxhYmVsIiwiaW5jbHVkZXMiLCJ1bmRlZmluZWQiLCJoYW5kbGVDb25uZWN0b3JBdXRob3JpemF0aW9uIiwiX3JlZjIiLCJfYXN5bmNUb0dlbmVyYXRvciIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwiX2NhbGxlZSIsIl92YWx1ZXMkZ2VuZXJhbCIsImFnZW50SWQiLCJwb3B1cCIsIl95aWVsZCR3YWl0Rm9yQ29ubmVjdCIsImF1dGhvcml6ZWQiLCJlcnJvciIsImNvbm5lY3RvcnMiLCJ1cGRhdGVkIiwiX3QiLCJ3cmFwIiwiX2NvbnRleHQiLCJnZW5lcmFsIiwiYWJydXB0Iiwid2luZG93Iiwib3BlbiIsImxvY2F0aW9uIiwiaHJlZiIsInNlbnQiLCJ0b1N0cmluZyIsInNsdWdzIiwiY2xvc2VkIiwiY2xvc2UiLCJmaW5kIiwiY29ubmVjdG9yIiwiY29ubmVjdGlvbl9zdGF0dXMiLCJmaW5pc2giLCJzdG9wIiwiX3giLCJhcHBseSIsImFyZ3VtZW50cyIsIl92YWx1ZXMkYWNjZXNzaWJpbGl0eTciLCJuZXh0Q29ubmVjdG9ycyIsImN1cnJlbnQiLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJzb3J0Iiwiam9pbiIsImluY29taW5nIiwia2V5IiwidmFsdWUiLCJjYW5jZWxsZWQiLCJ0aGVuIiwiZmlsdGVyIiwiY29uc29sZSIsImNoaWxkcmVuIiwiJGluZGV4IiwiX3JlZjMiLCJ0aXRsZSIsImNvbmNhdCIsImRlc2NyaXB0aW9uIiwib25DaGFuZ2UiLCJhY3Rpb25MYWJlbCIsImFjdGlvblRvbmUiLCJvbkFjdGlvbiIsImFjdGlvbkJ1c3kiLCJvcHRpb25TZWxlY3RlZCIsImlzQ2xpZW50IiwicHJvcHMiLCJzZWxlY3RlZENsaWVudHMiLCJfY2xpZW50JG5hbWUiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvQWJtU2VjdGlvbi9BYm1BY2Nlc3NpYmlsaXR5U2VjdGlvbi9BYm1BY2Nlc3NpYmlsaXR5U2VjdGlvbi50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlU3RhdGUsIHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tICdyZWFjdC1pMThuZXh0J1xuaW1wb3J0IHsgT3B0aW9uQWNjZXNzaWJpbGl0eSB9IGZyb20gJy4uLy4uLy4uL2F0b21zL09wdGlvbkFjY2Vzc2liaWxpdHknXG5pbXBvcnQgeyBPcHRpb25Db3JQZXJtaXNzaW9uIH0gZnJvbSAnLi4vLi4vLi4vYXRvbXMvT3B0aW9uQ29yUGVybWlzc2lvbidcbmltcG9ydCB7IEVWRU5UUywgdXNlRXZlbnQgfSBmcm9tICcuLi8uLi8uLi8uLi9ob29rcy91c2VFdmVudCdcbmltcG9ydCB7XG4gIGF1dGhvcml6ZUNvbm5lY3RvcixcbiAgZ2V0QWdlbnRDb25uZWN0b3JzLFxuICBnZXRBdmFpbGFibGVDb25uZWN0b3JzLFxuICB3YWl0Rm9yQ29ubmVjdG9yQXV0aG9yaXphdGlvbixcbiAgdHlwZSBDYXRhbG9nQ29ubmVjdG9yLFxuICB0eXBlIENvbm5lY3RvckNvbm5lY3Rpb25TdGF0dXMsXG59IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL21haWEvQWdlbnRzL2Nvbm5lY3RvcnMnXG5pbXBvcnQgeyB1c2VTbmFja0Jhck1hbmFnZXIgfSBmcm9tICcuLi8uLi8uLi8uLi9ob29rcy91c2VTbmFja0Jhck1hbmFnZXIvdXNlU25hY2tCYXJNYW5hZ2VyJ1xuaW1wb3J0IHsgQ29yQWNjZXNzLCBDb3JUb29sR3JvdXBTbHVnLCBERUZBVUxUX0NPUl9BQ0NFU1MgfSBmcm9tICcuLi8uLi8uLi8uLi91dGlscy9ub3JtYWxpemVBZ2VudENvbm5lY3RvcnMnXG5pbXBvcnQgeyBoYXNNYWlhRXh0ZXJuYWxDb25uZWN0b3JzQWNjZXNzIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29uc3RhbnRzL21haWFFeHRlcm5hbENvbm5lY3RvcnNBY2Nlc3MnXG5pbXBvcnQge1xuICBTQ0FBU1dyYXBwZXIsXG4gIFNDQUFTSGVhZGVyLFxuICBTQ0FBU1RpdGxlLFxuICBTQ0FBU1N1YnRpdGxlLFxuICBTQ0FBU0NvbnRlbnQsXG4gIFNDQUFTU2VjdGlvbixcbiAgU0NBQVNTZWN0aW9uSGVhZGVyLFxuICBTQ0FBU1NlY3Rpb25UaXRsZSxcbiAgU0NBQVNTZWN0aW9uU3VidGl0bGUsXG4gIFNDQUFTT3B0aW9uc0NvbnRhaW5lcixcbiAgU0NBQVNEaXZpZGVyLFxufSBmcm9tICcuL0FibUFjY2Vzc2liaWxpdHlTZWN0aW9uLnN0eWxlcydcbmltcG9ydCB7IENsaWVudEZvcm1EYXRhIH0gZnJvbSAnLi9BYm1BY2Nlc3NpYmlsaXR5U2VjdGlvbi5pbnRlcmZhY2UnXG5cbmludGVyZmFjZSBBYm1BY2Nlc3NpYmlsaXR5U2VjdGlvblByb3BzIHtcbiAgdmFsdWVzPzoge1xuICAgIGdlbmVyYWw/OiB7IGlkPzogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbCB9XG4gICAgYWNjZXNzaWJpbGl0eT86IHtcbiAgICAgIGFjY2Vzc1R5cGU/OiBzdHJpbmdcbiAgICAgIGNsaWVudHM/OiBDbGllbnRGb3JtRGF0YVtdIHwgbnVsbFxuICAgICAgY29yQWNjZXNzPzogQ29yQWNjZXNzXG4gICAgICBzZWxlY3RlZENvbm5lY3RvcnM/OiBzdHJpbmdbXVxuICAgICAgY29ubmVjdG9yU3RhdHVzZXM/OiBSZWNvcmQ8c3RyaW5nLCBDb25uZWN0b3JDb25uZWN0aW9uU3RhdHVzPlxuICAgIH1cbiAgfVxuICBoYW5kbGVTZXRBZ2VudFZhbHVlcz86ICh7IGtleSwgdmFsdWUgfTogeyBrZXk6IHN0cmluZzsgdmFsdWU6IHVua25vd24gfSkgPT4gdm9pZFxufVxuXG4vLyBPcmRlbiA9IGplcmFycXXDrWEgZGUgQ09SIChjbGllbnRlID4gcHJveWVjdG8gPiB0YXJlYSksIGRlIG3DoXMgYW1wbGlvIGEgbcOhcyBlc3BlY8OtZmljby5cbmNvbnN0IENPUl9QRVJNSVNTSU9OX1JPV1M6IHsgc2x1ZzogQ29yVG9vbEdyb3VwU2x1ZzsgdGl0bGVLZXk6IHN0cmluZzsgZGVzY3JpcHRpb25LZXk6IHN0cmluZyB9W10gPSBbXG4gIHsgc2x1ZzogJ2NsaWVudGVzJywgdGl0bGVLZXk6ICdjbGllbnRBY2Nlc3NUaXRsZScsIGRlc2NyaXB0aW9uS2V5OiAnY2xpZW50QWNjZXNzRGVzY3JpcHRpb24nIH0sXG4gIHsgc2x1ZzogJ3Byb3llY3RvcycsIHRpdGxlS2V5OiAncHJvamVjdEFjY2Vzc1RpdGxlJywgZGVzY3JpcHRpb25LZXk6ICdwcm9qZWN0QWNjZXNzRGVzY3JpcHRpb24nIH0sXG4gIHsgc2x1ZzogJ3RhcmVhcycsIHRpdGxlS2V5OiAndGFza0FjY2Vzc1RpdGxlJywgZGVzY3JpcHRpb25LZXk6ICd0YXNrQWNjZXNzRGVzY3JpcHRpb24nIH0sXG5dXG5cbmV4cG9ydCBjb25zdCBBYm1BY2Nlc3NpYmlsaXR5U2VjdGlvbiA9ICh7IHZhbHVlcywgaGFuZGxlU2V0QWdlbnRWYWx1ZXMgfTogQWJtQWNjZXNzaWJpbGl0eVNlY3Rpb25Qcm9wcykgPT4ge1xuICBjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKCdhYm1fYWdlbnRfc2VjdGlvbicpXG4gIGNvbnN0IGV2ZW50QW1wbGl0dWRlID0gdXNlRXZlbnQoKVxuICBjb25zdCB7IGhhbmRsZVNuYWNrYmFyRXJyb3IgfSA9IHVzZVNuYWNrQmFyTWFuYWdlcigpXG5cbiAgY29uc3QgW2Zvcm1WYWx1ZXMsIHNldEZvcm1WYWx1ZXNdID0gdXNlU3RhdGU8e1xuICAgIGFjY2Vzc1R5cGU6IHN0cmluZ1xuICAgIGNsaWVudHM6IENsaWVudEZvcm1EYXRhW10gfCBudWxsXG4gICAgY29yQWNjZXNzOiBDb3JBY2Nlc3NcbiAgICBzZWxlY3RlZENvbm5lY3RvcnM6IHN0cmluZ1tdXG4gICAgY29ubmVjdG9yU3RhdHVzZXM6IFJlY29yZDxzdHJpbmcsIENvbm5lY3RvckNvbm5lY3Rpb25TdGF0dXM+XG4gIH0+KHtcbiAgICBhY2Nlc3NUeXBlOiB2YWx1ZXM/LmFjY2Vzc2liaWxpdHk/LmFjY2Vzc1R5cGUgfHwgJ2NvbXBhbnknLFxuICAgIGNsaWVudHM6IHZhbHVlcz8uYWNjZXNzaWJpbGl0eT8uY2xpZW50cyB8fCBudWxsLFxuICAgIGNvckFjY2VzczogdmFsdWVzPy5hY2Nlc3NpYmlsaXR5Py5jb3JBY2Nlc3MgPz8gREVGQVVMVF9DT1JfQUNDRVNTLFxuICAgIHNlbGVjdGVkQ29ubmVjdG9yczogdmFsdWVzPy5hY2Nlc3NpYmlsaXR5Py5zZWxlY3RlZENvbm5lY3RvcnMgfHwgW10sXG4gICAgY29ubmVjdG9yU3RhdHVzZXM6IHZhbHVlcz8uYWNjZXNzaWJpbGl0eT8uY29ubmVjdG9yU3RhdHVzZXMgfHwge30sXG4gIH0pXG4gIC8vIEVsIGNhdMOhbG9nbyBsbyBkZWZpbmUgZWwgYmFjayAoYEdFVCAvdjEvY29ubmVjdG9yc2ApOyBlbCBBQk0gcmVuZGVyaXphIHVuYSBmaWxhIHBvciBjb25lY3RvciBhY3Rpdm8uXG4gIGNvbnN0IFtjYXRhbG9nQ29ubmVjdG9ycywgc2V0Q2F0YWxvZ0Nvbm5lY3RvcnNdID0gdXNlU3RhdGU8Q2F0YWxvZ0Nvbm5lY3RvcltdPihbXSlcbiAgY29uc3QgW2F1dGhvcml6aW5nU2x1Zywgc2V0QXV0aG9yaXppbmdTbHVnXSA9IHVzZVN0YXRlPHN0cmluZyB8IG51bGw+KG51bGwpXG4gIGNvbnN0IGV4dGVybmFsQ29ubmVjdG9yc0VuYWJsZWQgPSBoYXNNYWlhRXh0ZXJuYWxDb25uZWN0b3JzQWNjZXNzKClcblxuICBjb25zdCBoYW5kbGVTZWxlY3RPcHRpb24gPSAob3B0aW9uOiBzdHJpbmcsIGNsaWVudHM/OiBDbGllbnRGb3JtRGF0YVtdIHwgbnVsbCkgPT4ge1xuICAgIGNvbnN0IG9wdGlvbk1hcHBpbmc6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7XG4gICAgICBjb21wYW55OiAnYWxsX2NvbXBhbnknLFxuICAgICAgY2xpZW50czogJ2J5X2NsaWVudGVzJyxcbiAgICAgIG9ubHlfbWU6ICdqdXN0X21lJyxcbiAgICB9XG5cbiAgICBldmVudEFtcGxpdHVkZShFVkVOVFMuYWNjZXNzaWJpbGl0eVR5cGUsIHsgb3B0aW9uOiBvcHRpb25NYXBwaW5nW29wdGlvbl0gfSlcblxuICAgIGNvbnN0IHZhbHVlVG9TZW5kID0ge1xuICAgICAgYWNjZXNzVHlwZTogb3B0aW9uLFxuICAgICAgY2xpZW50czogbnVsbCBhcyBDbGllbnRGb3JtRGF0YVtdIHwgbnVsbCxcbiAgICAgIGNvckFjY2VzczogZm9ybVZhbHVlcy5jb3JBY2Nlc3MsXG4gICAgICBzZWxlY3RlZENvbm5lY3RvcnM6IGZvcm1WYWx1ZXMuc2VsZWN0ZWRDb25uZWN0b3JzLFxuICAgICAgY29ubmVjdG9yU3RhdHVzZXM6IGZvcm1WYWx1ZXMuY29ubmVjdG9yU3RhdHVzZXMsXG4gICAgfVxuICAgIGlmIChvcHRpb24gIT09ICdjbGllbnRzJyB8fCAhY2xpZW50cykge1xuICAgICAgc2V0Rm9ybVZhbHVlcyh2YWx1ZVRvU2VuZClcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IGNsaWVudEZvcm1EYXRhID0gY2xpZW50cy5tYXAoY2xpZW50ID0+ICh7XG4gICAgICBpZDogY2xpZW50LmlkLFxuICAgICAgbmFtZTogY2xpZW50Lm5hbWUsXG4gICAgICBpc19hY3RpdmU6IGNsaWVudC5pc19hY3RpdmUsXG4gICAgICBpc19kZWxldGVkOiBjbGllbnQuaXNfZGVsZXRlZCxcbiAgICB9KSlcblxuICAgIGlmIChjbGllbnRzICYmIGNsaWVudHMubGVuZ3RoID4gMCkge1xuICAgICAgZXZlbnRBbXBsaXR1ZGUoRVZFTlRTLmFjY2Vzc2liaWxpdHlTZWxlY3RDbGllbnQpXG4gICAgfVxuXG4gICAgc2V0Rm9ybVZhbHVlcyh7IC4uLnZhbHVlVG9TZW5kLCBjbGllbnRzOiBjbGllbnRGb3JtRGF0YSB9KVxuICB9XG5cbiAgY29uc3QgaGFuZGxlQ29yQWNjZXNzQ2hhbmdlID0gKHNsdWc6IENvclRvb2xHcm91cFNsdWcsIGNoZWNrZWQ6IGJvb2xlYW4pID0+IHtcbiAgICBldmVudEFtcGxpdHVkZShFVkVOVFMuY29ubmVjdG9yQ29yLCB7IG9wdGlvbjogY2hlY2tlZCA/ICdvbicgOiAnb2ZmJywgc2x1ZyB9KVxuXG4gICAgc2V0Rm9ybVZhbHVlcyhwcmV2ID0+ICh7XG4gICAgICAuLi5wcmV2LFxuICAgICAgY29yQWNjZXNzOiB7IC4uLnByZXYuY29yQWNjZXNzLCBbc2x1Z106IGNoZWNrZWQgfSxcbiAgICB9KSlcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZUNvbm5lY3RvckFjY2Vzc0NoYW5nZSA9IChzbHVnOiBzdHJpbmcsIGNoZWNrZWQ6IGJvb2xlYW4pID0+IHtcbiAgICBldmVudEFtcGxpdHVkZShFVkVOVFMuY29ubmVjdG9yTWNwLCB7IG9wdGlvbjogY2hlY2tlZCA/ICdvbicgOiAnb2ZmJywgc2x1ZyB9KVxuXG4gICAgc2V0Rm9ybVZhbHVlcyhwcmV2ID0+IHtcbiAgICAgIGNvbnN0IG5leHQgPSBuZXcgU2V0KHByZXYuc2VsZWN0ZWRDb25uZWN0b3JzKVxuICAgICAgaWYgKGNoZWNrZWQpIHtcbiAgICAgICAgbmV4dC5hZGQoc2x1ZylcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5leHQuZGVsZXRlKHNsdWcpXG4gICAgICB9XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5wcmV2LFxuICAgICAgICBzZWxlY3RlZENvbm5lY3RvcnM6IEFycmF5LmZyb20obmV4dCksXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIGNvbnN0IGNvbm5lY3RvckFjdGlvbkxhYmVsID0gKHNsdWc6IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCA9PiB7XG4gICAgaWYgKCFmb3JtVmFsdWVzLnNlbGVjdGVkQ29ubmVjdG9ycy5pbmNsdWRlcyhzbHVnKSkgcmV0dXJuIHVuZGVmaW5lZFxuICAgIGlmIChmb3JtVmFsdWVzLmNvbm5lY3RvclN0YXR1c2VzW3NsdWddID09PSAnbmVlZHNfYXR0ZW50aW9uJylcbiAgICAgIHJldHVybiB0KCdhY2Nlc3NpYmlsaXR5U2VjdGlvbi5jb25uZWN0b3JBdXRoZW50aWNhdGVBY3Rpb24nKVxuICAgIGlmIChmb3JtVmFsdWVzLmNvbm5lY3RvclN0YXR1c2VzW3NsdWddID09PSAnZXJyb3InKSByZXR1cm4gdCgnYWNjZXNzaWJpbGl0eVNlY3Rpb24uY29ubmVjdG9yUmVvcGVuQWN0aW9uJylcbiAgICByZXR1cm4gdW5kZWZpbmVkXG4gIH1cblxuICBjb25zdCBoYW5kbGVDb25uZWN0b3JBdXRob3JpemF0aW9uID0gYXN5bmMgKHNsdWc6IHN0cmluZykgPT4ge1xuICAgIGNvbnN0IGFnZW50SWQgPSB2YWx1ZXM/LmdlbmVyYWw/LmlkXG4gICAgaWYgKCFhZ2VudElkIHx8IGF1dGhvcml6aW5nU2x1ZykgcmV0dXJuXG5cbiAgICAvLyBPcGVuIHN5bmNocm9ub3VzbHkgZnJvbSB0aGUgY2xpY2sgc28gdGhlIGJyb3dzZXIgZG9lcyBub3QgYmxvY2sgT0F1dGguXG4gICAgY29uc3QgcG9wdXAgPSB3aW5kb3cub3BlbignJywgJ19ibGFuaycsICdwb3B1cD15ZXMsd2lkdGg9NTYwLGhlaWdodD03NjAnKVxuICAgIGlmICghcG9wdXApIHtcbiAgICAgIGhhbmRsZVNuYWNrYmFyRXJyb3IodCgnYWNjZXNzaWJpbGl0eVNlY3Rpb24uY29ubmVjdG9yUG9wdXBCbG9ja2VkJykpXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBzZXRBdXRob3JpemluZ1NsdWcoc2x1ZylcbiAgICB0cnkge1xuICAgICAgcG9wdXAubG9jYXRpb24uaHJlZiA9IGF3YWl0IGF1dGhvcml6ZUNvbm5lY3RvcihzbHVnKVxuICAgICAgY29uc3QgeyBhdXRob3JpemVkLCBlcnJvciB9ID0gYXdhaXQgd2FpdEZvckNvbm5lY3RvckF1dGhvcml6YXRpb24oe1xuICAgICAgICBhZ2VudElkOiBhZ2VudElkLnRvU3RyaW5nKCksXG4gICAgICAgIHNsdWdzOiBbc2x1Z10sXG4gICAgICAgIHBvcHVwLFxuICAgICAgfSlcbiAgICAgIGlmICghYXV0aG9yaXplZC5pbmNsdWRlcyhzbHVnKSkge1xuICAgICAgICBpZiAoIXBvcHVwLmNsb3NlZCkgcG9wdXAuY2xvc2UoKVxuICAgICAgICBzZXRGb3JtVmFsdWVzKHByZXYgPT4gKHsgLi4ucHJldiwgY29ubmVjdG9yU3RhdHVzZXM6IHsgLi4ucHJldi5jb25uZWN0b3JTdGF0dXNlcywgW3NsdWddOiAnZXJyb3InIH0gfSkpXG4gICAgICAgIGhhbmRsZVNuYWNrYmFyRXJyb3IoZXJyb3IgJiYgZXJyb3IgIT09ICd0aW1lb3V0JyA/IGVycm9yIDogdCgnYWNjZXNzaWJpbGl0eVNlY3Rpb24uY29ubmVjdG9yQXV0aEluY29tcGxldGUnKSlcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgICBjb25zdCBjb25uZWN0b3JzID0gYXdhaXQgZ2V0QWdlbnRDb25uZWN0b3JzKGFnZW50SWQudG9TdHJpbmcoKSlcbiAgICAgIGNvbnN0IHVwZGF0ZWQgPSBjb25uZWN0b3JzLmZpbmQoY29ubmVjdG9yID0+IGNvbm5lY3Rvci5zbHVnID09PSBzbHVnKVxuICAgICAgc2V0Rm9ybVZhbHVlcyhwcmV2ID0+ICh7XG4gICAgICAgIC4uLnByZXYsXG4gICAgICAgIGNvbm5lY3RvclN0YXR1c2VzOiB7IC4uLnByZXYuY29ubmVjdG9yU3RhdHVzZXMsIFtzbHVnXTogdXBkYXRlZD8uY29ubmVjdGlvbl9zdGF0dXMgfHwgJ29rJyB9LFxuICAgICAgfSkpXG4gICAgfSBjYXRjaCB7XG4gICAgICBpZiAoIXBvcHVwLmNsb3NlZCkgcG9wdXAuY2xvc2UoKVxuICAgICAgc2V0Rm9ybVZhbHVlcyhwcmV2ID0+ICh7IC4uLnByZXYsIGNvbm5lY3RvclN0YXR1c2VzOiB7IC4uLnByZXYuY29ubmVjdG9yU3RhdHVzZXMsIFtzbHVnXTogJ2Vycm9yJyB9IH0pKVxuICAgICAgaGFuZGxlU25hY2tiYXJFcnJvcih0KCdhY2Nlc3NpYmlsaXR5U2VjdGlvbi5jb25uZWN0b3JBdXRoRmFpbGVkJykpXG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHNldEF1dGhvcml6aW5nU2x1ZyhudWxsKVxuICAgIH1cbiAgfVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgbmV4dENvbm5lY3RvcnMgPSB2YWx1ZXM/LmFjY2Vzc2liaWxpdHk/LnNlbGVjdGVkQ29ubmVjdG9yc1xuICAgIGlmICghbmV4dENvbm5lY3RvcnMpIHtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBzZXRGb3JtVmFsdWVzKHByZXYgPT4ge1xuICAgICAgY29uc3QgY3VycmVudCA9IFsuLi5wcmV2LnNlbGVjdGVkQ29ubmVjdG9yc10uc29ydCgpLmpvaW4oJ3wnKVxuICAgICAgY29uc3QgaW5jb21pbmcgPSBbLi4ubmV4dENvbm5lY3RvcnNdLnNvcnQoKS5qb2luKCd8JylcbiAgICAgIGlmIChjdXJyZW50ID09PSBpbmNvbWluZykge1xuICAgICAgICByZXR1cm4gcHJldlxuICAgICAgfVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ucHJldixcbiAgICAgICAgc2VsZWN0ZWRDb25uZWN0b3JzOiBuZXh0Q29ubmVjdG9ycyxcbiAgICAgIH1cbiAgICB9KVxuICB9LCBbdmFsdWVzPy5hY2Nlc3NpYmlsaXR5Py5zZWxlY3RlZENvbm5lY3RvcnNdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGZvcm1WYWx1ZXMpIHtcbiAgICAgIGhhbmRsZVNldEFnZW50VmFsdWVzPy4oe1xuICAgICAgICBrZXk6ICdhY2Nlc3NpYmlsaXR5JyxcbiAgICAgICAgdmFsdWU6IGZvcm1WYWx1ZXMsXG4gICAgICB9KVxuICAgIH1cbiAgfSwgW2Zvcm1WYWx1ZXNdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFleHRlcm5hbENvbm5lY3RvcnNFbmFibGVkKSByZXR1cm4gdW5kZWZpbmVkXG5cbiAgICBsZXQgY2FuY2VsbGVkID0gZmFsc2VcbiAgICBnZXRBdmFpbGFibGVDb25uZWN0b3JzKClcbiAgICAgIC50aGVuKGNvbm5lY3RvcnMgPT4ge1xuICAgICAgICBpZiAoIWNhbmNlbGxlZCkge1xuICAgICAgICAgIHNldENhdGFsb2dDb25uZWN0b3JzKGNvbm5lY3RvcnMuZmlsdGVyKGNvbm5lY3RvciA9PiBjb25uZWN0b3IuaXNfYWN0aXZlKSlcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICAgIC5jYXRjaChlcnJvciA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGZldGNoaW5nIGNvbm5lY3RvcnMgY2F0YWxvZzonLCBlcnJvcilcbiAgICAgICAgaWYgKCFjYW5jZWxsZWQpIHtcbiAgICAgICAgICBzZXRDYXRhbG9nQ29ubmVjdG9ycyhbXSlcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgY2FuY2VsbGVkID0gdHJ1ZVxuICAgIH1cbiAgfSwgW2V4dGVybmFsQ29ubmVjdG9yc0VuYWJsZWRdKVxuXG4gIHJldHVybiAoXG4gICAgPFNDQUFTV3JhcHBlcj5cbiAgICAgIDxTQ0FBU0hlYWRlciAkaW5kZXg9ezB9PlxuICAgICAgICA8U0NBQVNUaXRsZT57dCgnYWNjZXNzaWJpbGl0eVNlY3Rpb24udGl0bGVTZWN0aW9uJyl9PC9TQ0FBU1RpdGxlPlxuICAgICAgICA8U0NBQVNTdWJ0aXRsZT57dCgnYWNjZXNzaWJpbGl0eVNlY3Rpb24uc3VidGl0bGVTZWN0aW9uJyl9PC9TQ0FBU1N1YnRpdGxlPlxuICAgICAgPC9TQ0FBU0hlYWRlcj5cbiAgICAgIDxTQ0FBU0NvbnRlbnQgJGluZGV4PXsxfT5cbiAgICAgICAgPFNDQUFTU2VjdGlvbj5cbiAgICAgICAgICA8U0NBQVNTZWN0aW9uSGVhZGVyPlxuICAgICAgICAgICAgPFNDQUFTU2VjdGlvblRpdGxlPnt0KCdhY2Nlc3NpYmlsaXR5U2VjdGlvbi5jb3JQZXJtaXNzaW9uc1RpdGxlJyl9PC9TQ0FBU1NlY3Rpb25UaXRsZT5cbiAgICAgICAgICAgIDxTQ0FBU1NlY3Rpb25TdWJ0aXRsZT57dCgnYWNjZXNzaWJpbGl0eVNlY3Rpb24uY29yUGVybWlzc2lvbnNTdWJ0aXRsZScpfTwvU0NBQVNTZWN0aW9uU3VidGl0bGU+XG4gICAgICAgICAgPC9TQ0FBU1NlY3Rpb25IZWFkZXI+XG4gICAgICAgICAge0NPUl9QRVJNSVNTSU9OX1JPV1MubWFwKCh7IHNsdWcsIHRpdGxlS2V5LCBkZXNjcmlwdGlvbktleSB9KSA9PiAoXG4gICAgICAgICAgICA8T3B0aW9uQ29yUGVybWlzc2lvblxuICAgICAgICAgICAgICBrZXk9e3NsdWd9XG4gICAgICAgICAgICAgIHRpdGxlPXt0KGBhY2Nlc3NpYmlsaXR5U2VjdGlvbi4ke3RpdGxlS2V5fWApfVxuICAgICAgICAgICAgICBkZXNjcmlwdGlvbj17dChgYWNjZXNzaWJpbGl0eVNlY3Rpb24uJHtkZXNjcmlwdGlvbktleX1gKX1cbiAgICAgICAgICAgICAgY2hlY2tlZD17Zm9ybVZhbHVlcy5jb3JBY2Nlc3Nbc2x1Z119XG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXtjaGVja2VkID0+IGhhbmRsZUNvckFjY2Vzc0NoYW5nZShzbHVnLCBjaGVja2VkKX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKSl9XG4gICAgICAgIDwvU0NBQVNTZWN0aW9uPlxuXG4gICAgICAgIHtleHRlcm5hbENvbm5lY3RvcnNFbmFibGVkICYmIChcbiAgICAgICAgICA8PlxuICAgICAgICAgICAgPFNDQUFTRGl2aWRlciAvPlxuXG4gICAgICAgICAgICA8U0NBQVNTZWN0aW9uPlxuICAgICAgICAgICAgICA8U0NBQVNTZWN0aW9uSGVhZGVyPlxuICAgICAgICAgICAgICAgIDxTQ0FBU1NlY3Rpb25UaXRsZT57dCgnYWNjZXNzaWJpbGl0eVNlY3Rpb24ubWNwUGVybWlzc2lvbnNUaXRsZScpfTwvU0NBQVNTZWN0aW9uVGl0bGU+XG4gICAgICAgICAgICAgICAgPFNDQUFTU2VjdGlvblN1YnRpdGxlPnt0KCdhY2Nlc3NpYmlsaXR5U2VjdGlvbi5tY3BQZXJtaXNzaW9uc1N1YnRpdGxlJyl9PC9TQ0FBU1NlY3Rpb25TdWJ0aXRsZT5cbiAgICAgICAgICAgICAgPC9TQ0FBU1NlY3Rpb25IZWFkZXI+XG4gICAgICAgICAgICAgIHtjYXRhbG9nQ29ubmVjdG9ycy5tYXAoY29ubmVjdG9yID0+IChcbiAgICAgICAgICAgICAgICA8T3B0aW9uQ29yUGVybWlzc2lvblxuICAgICAgICAgICAgICAgICAga2V5PXtjb25uZWN0b3Iuc2x1Z31cbiAgICAgICAgICAgICAgICAgIHRpdGxlPXtjb25uZWN0b3IubmFtZX1cbiAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uPXtcbiAgICAgICAgICAgICAgICAgICAgY29ubmVjdG9yLmRlc2NyaXB0aW9uIHx8XG4gICAgICAgICAgICAgICAgICAgIHQoJ2FjY2Vzc2liaWxpdHlTZWN0aW9uLmNvbm5lY3RvckFjY2Vzc0Rlc2NyaXB0aW9uJywgeyBuYW1lOiBjb25uZWN0b3IubmFtZSB9KVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgY2hlY2tlZD17Zm9ybVZhbHVlcy5zZWxlY3RlZENvbm5lY3RvcnMuaW5jbHVkZXMoY29ubmVjdG9yLnNsdWcpfVxuICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e2NoZWNrZWQgPT4gaGFuZGxlQ29ubmVjdG9yQWNjZXNzQ2hhbmdlKGNvbm5lY3Rvci5zbHVnLCBjaGVja2VkKX1cbiAgICAgICAgICAgICAgICAgIGFjdGlvbkxhYmVsPXtjb25uZWN0b3JBY3Rpb25MYWJlbChjb25uZWN0b3Iuc2x1Zyl9XG4gICAgICAgICAgICAgICAgICBhY3Rpb25Ub25lPXtmb3JtVmFsdWVzLmNvbm5lY3RvclN0YXR1c2VzW2Nvbm5lY3Rvci5zbHVnXSA9PT0gJ2Vycm9yJyA/ICdlcnJvcicgOiAnYXR0ZW50aW9uJ31cbiAgICAgICAgICAgICAgICAgIG9uQWN0aW9uPXsoKSA9PiBoYW5kbGVDb25uZWN0b3JBdXRob3JpemF0aW9uKGNvbm5lY3Rvci5zbHVnKX1cbiAgICAgICAgICAgICAgICAgIGFjdGlvbkJ1c3k9e2F1dGhvcml6aW5nU2x1ZyA9PT0gY29ubmVjdG9yLnNsdWd9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICA8L1NDQUFTU2VjdGlvbj5cbiAgICAgICAgICA8Lz5cbiAgICAgICAgKX1cblxuICAgICAgICA8U0NBQVNEaXZpZGVyIC8+XG5cbiAgICAgICAgPFNDQUFTU2VjdGlvbj5cbiAgICAgICAgICA8U0NBQVNTZWN0aW9uSGVhZGVyPlxuICAgICAgICAgICAgPFNDQUFTU2VjdGlvblRpdGxlPnt0KCdhY2Nlc3NpYmlsaXR5U2VjdGlvbi52aXNpYmlsaXR5VGl0bGUnKX08L1NDQUFTU2VjdGlvblRpdGxlPlxuICAgICAgICAgICAgPFNDQUFTU2VjdGlvblN1YnRpdGxlPnt0KCdhY2Nlc3NpYmlsaXR5U2VjdGlvbi53aG9DYW5BY2Nlc3MnKX08L1NDQUFTU2VjdGlvblN1YnRpdGxlPlxuICAgICAgICAgIDwvU0NBQVNTZWN0aW9uSGVhZGVyPlxuICAgICAgICAgIDxTQ0FBU09wdGlvbnNDb250YWluZXI+XG4gICAgICAgICAgICA8T3B0aW9uQWNjZXNzaWJpbGl0eVxuICAgICAgICAgICAgICB0aXRsZT17dCgnYWNjZXNzaWJpbGl0eVNlY3Rpb24uYWxsQ29tcGFueVRpdGxlJyl9XG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uPXt0KCdhY2Nlc3NpYmlsaXR5U2VjdGlvbi5hbGxDb21wYW55RGVzY3JpcHRpb24nKX1cbiAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0T3B0aW9uPXsoKSA9PiBoYW5kbGVTZWxlY3RPcHRpb24oJ2NvbXBhbnknKX1cbiAgICAgICAgICAgICAgb3B0aW9uU2VsZWN0ZWQ9e2Zvcm1WYWx1ZXMuYWNjZXNzVHlwZX1cbiAgICAgICAgICAgICAgbmFtZT1cImNvbXBhbnlcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxPcHRpb25BY2Nlc3NpYmlsaXR5XG4gICAgICAgICAgICAgIHRpdGxlPXt0KCdhY2Nlc3NpYmlsaXR5U2VjdGlvbi5jbGllbnRUaXRsZScpfVxuICAgICAgICAgICAgICBkZXNjcmlwdGlvbj17dCgnYWNjZXNzaWJpbGl0eVNlY3Rpb24uY2xpZW50RGVzY3JpcHRpb24nKX1cbiAgICAgICAgICAgICAgaXNDbGllbnQ9e2Zvcm1WYWx1ZXMuYWNjZXNzVHlwZSA9PT0gJ2NsaWVudHMnfVxuICAgICAgICAgICAgICBoYW5kbGVTZWxlY3RPcHRpb249eyhwcm9wcz86IENsaWVudEZvcm1EYXRhW10pID0+IGhhbmRsZVNlbGVjdE9wdGlvbignY2xpZW50cycsIHByb3BzKX1cbiAgICAgICAgICAgICAgb3B0aW9uU2VsZWN0ZWQ9e2Zvcm1WYWx1ZXMuYWNjZXNzVHlwZX1cbiAgICAgICAgICAgICAgbmFtZT1cImNsaWVudHNcIlxuICAgICAgICAgICAgICBzZWxlY3RlZENsaWVudHM9e2Zvcm1WYWx1ZXMuY2xpZW50cz8ubWFwKGNsaWVudCA9PiAoe1xuICAgICAgICAgICAgICAgIGlkOiBjbGllbnQuaWQsXG4gICAgICAgICAgICAgICAgbmFtZTogY2xpZW50Lm5hbWUgPz8gJycsXG4gICAgICAgICAgICAgICAgaXNfYWN0aXZlOiBjbGllbnQuaXNfYWN0aXZlLFxuICAgICAgICAgICAgICAgIGlzX2RlbGV0ZWQ6IGNsaWVudC5pc19kZWxldGVkLFxuICAgICAgICAgICAgICB9KSl9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPE9wdGlvbkFjY2Vzc2liaWxpdHlcbiAgICAgICAgICAgICAgdGl0bGU9e3QoJ2FjY2Vzc2liaWxpdHlTZWN0aW9uLm93blRpdGxlJyl9XG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uPXt0KCdhY2Nlc3NpYmlsaXR5U2VjdGlvbi5vd25EZXNjcmlwdGlvbicpfVxuICAgICAgICAgICAgICBoYW5kbGVTZWxlY3RPcHRpb249eygpID0+IGhhbmRsZVNlbGVjdE9wdGlvbignb25seV9tZScpfVxuICAgICAgICAgICAgICBvcHRpb25TZWxlY3RlZD17Zm9ybVZhbHVlcy5hY2Nlc3NUeXBlfVxuICAgICAgICAgICAgICBuYW1lPVwib25seV9tZVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvU0NBQVNPcHRpb25zQ29udGFpbmVyPlxuICAgICAgICA8L1NDQUFTU2VjdGlvbj5cbiAgICAgIDwvU0NBQVNDb250ZW50PlxuICAgIDwvU0NBQVNXcmFwcGVyPlxuICApXG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxTQUFTQSxRQUFRLEVBQUVDLFNBQVMsUUFBUSxPQUFPO0FBQzNDLFNBQVNDLGNB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
|