@kepler.gl/components 3.2.0 → 3.2.2
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/dist/common/color-legend.js +8 -8
- package/dist/common/data-table/index.js +13 -9
- package/dist/map/map-legend-panel.js +10 -4
- package/dist/map/map-legend.js +2 -2
- package/dist/plot-container.js +4 -2
- package/dist/side-panel/interaction-panel/interaction-panel.js +2 -2
- package/dist/side-panel/layer-panel/color-breaks-panel.js +11 -2
- package/dist/side-panel/layer-panel/color-scale-selector.js +65 -12
- package/dist/side-panel/layer-panel/custom-palette.js +18 -7
- package/dist/side-panel/layer-panel/vector-tile-layer-configurator.d.ts +3 -2
- package/dist/side-panel/layer-panel/vector-tile-layer-configurator.js +18 -4
- package/package.json +15 -15
|
@@ -36,22 +36,22 @@ var stopClickPropagation = function stopClickPropagation(e) {
|
|
|
36
36
|
return e.stopPropagation();
|
|
37
37
|
};
|
|
38
38
|
var inputCss = (0, _styledComponents.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n input {\n pointer-events: none;\n }\n"])));
|
|
39
|
-
var StyledLegend = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n ", ";\n ", ";\n overflow: auto;\n margin-bottom: ", "px;\n display: grid;\n grid-row-gap: ", "px;\n padding: 2px 0;\n\n ", "\n"])), function (props) {
|
|
39
|
+
var StyledLegend = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n ", ";\n ", ";\n overflow-y: auto;\n overflow-x: hidden;\n margin-bottom: ", "px;\n display: grid;\n grid-row-gap: ", "px;\n padding: 2px 0;\n\n ", "\n"])), function (props) {
|
|
40
40
|
return props.theme.sidePanelScrollBar;
|
|
41
41
|
}, function (props) {
|
|
42
42
|
return props.isExpanded ? '' : "max-height: 156px;";
|
|
43
43
|
}, GAP, GAP, function (props) {
|
|
44
44
|
return props.disableEdit ? inputCss : '';
|
|
45
45
|
});
|
|
46
|
-
var StyledLegendRow = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n height: 20px;\n"])));
|
|
46
|
+
var StyledLegendRow = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n height: 20px;\n min-width: 0;\n"])));
|
|
47
47
|
function ResetColorLabelFactory() {
|
|
48
|
-
return (0, _styledComponents["default"])(_icons.Reset)(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n cursor: pointer;\n\n &:hover {\n color: ", ";\n }\n "])), function (props) {
|
|
48
|
+
return (0, _styledComponents["default"])(_icons.Reset)(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n cursor: pointer;\n flex-shrink: 0;\n margin-left: ", "px;\n\n &:hover {\n color: ", ";\n }\n "])), function (props) {
|
|
49
49
|
return props.theme.labelColorLT;
|
|
50
|
-
}, function (props) {
|
|
50
|
+
}, GAP, function (props) {
|
|
51
51
|
return props.theme.panelHeaderIconHover;
|
|
52
52
|
});
|
|
53
53
|
}
|
|
54
|
-
var StyleInlineInput = (0, _styledComponents["default"])(_styledComponents2.InlineInput)(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n font-size: 9.5px;\n line-height: ", "px;\n height: ", "px;\n color: ", ";\n width: unset;\n padding: 2px;\n flex: 1;\n margin: 0 ", "px;\n :hover {\n height: ", "px;\n }\n"])), ROW_H, ROW_H, function (props) {
|
|
54
|
+
var StyleInlineInput = (0, _styledComponents["default"])(_styledComponents2.InlineInput)(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n font-size: 9.5px;\n line-height: ", "px;\n height: ", "px;\n color: ", ";\n width: unset;\n padding: 2px;\n flex: 1;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n margin: 0 ", "px;\n :hover {\n height: ", "px;\n }\n"])), ROW_H, ROW_H, function (props) {
|
|
55
55
|
return props.theme.textColor;
|
|
56
56
|
}, GAP, ROW_H);
|
|
57
57
|
function LegendRowEditorFactory() {
|
|
@@ -97,7 +97,7 @@ function LegendColorDisplayFactory() {
|
|
|
97
97
|
};
|
|
98
98
|
return LegendColorDisplay;
|
|
99
99
|
}
|
|
100
|
-
var StyledLabel = _styledComponents["default"].div(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n font-size: 10px;\n color: ", ";\n padding-left: 2px;\n"])), function (props) {
|
|
100
|
+
var StyledLabel = _styledComponents["default"].div(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n font-size: 10px;\n color: ", ";\n padding-left: 2px;\n flex: 1;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n"])), function (props) {
|
|
101
101
|
return props.theme.textColor;
|
|
102
102
|
});
|
|
103
103
|
LegendRowFactory.deps = [LegendColorDisplayFactory, LegendRowEditorFactory, ResetColorLabelFactory];
|
|
@@ -115,7 +115,7 @@ function LegendRowFactory(LegendColorDisplay, LegendRowEditor, ResetColorLabel)
|
|
|
115
115
|
var onReset = (0, _react.useCallback)(function () {
|
|
116
116
|
return onResetLabel && onResetLabel(color);
|
|
117
117
|
}, [color, onResetLabel]);
|
|
118
|
-
var value = displayLabel ? label
|
|
118
|
+
var value = displayLabel ? String(label !== null && label !== void 0 ? label : '') : '';
|
|
119
119
|
return /*#__PURE__*/_react["default"].createElement(StyledLegendRow, null, /*#__PURE__*/_react["default"].createElement(LegendColorDisplay, {
|
|
120
120
|
color: color
|
|
121
121
|
}), onUpdateLabel ? /*#__PURE__*/_react["default"].createElement(LegendRowEditor, {
|
|
@@ -270,4 +270,4 @@ function ColorLegendFactory(LegendRow) {
|
|
|
270
270
|
return /*#__PURE__*/_react["default"].memo(ColorLegend);
|
|
271
271
|
}
|
|
272
272
|
var _default = exports["default"] = ColorLegendFactory;
|
|
273
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9jb25zdGFudHMiLCJfdXRpbHMiLCJfaWNvbnMiLCJfc3R5bGVkQ29tcG9uZW50czIiLCJfdGVtcGxhdGVPYmplY3QiLCJfdGVtcGxhdGVPYmplY3QyIiwiX3RlbXBsYXRlT2JqZWN0MyIsIl90ZW1wbGF0ZU9iamVjdDQiLCJfdGVtcGxhdGVPYmplY3Q1IiwiX3RlbXBsYXRlT2JqZWN0NiIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIl90b1Byb3BlcnR5S2V5IiwiX3RvUHJpbWl0aXZlIiwiU3ltYm9sIiwidG9QcmltaXRpdmUiLCJUeXBlRXJyb3IiLCJTdHJpbmciLCJOdW1iZXIiLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJST1dfSCIsIkdBUCIsIlJFQ1RfVyIsInN0b3BDbGlja1Byb3BhZ2F0aW9uIiwic3RvcFByb3BhZ2F0aW9uIiwiaW5wdXRDc3MiLCJjc3MiLCJfdGFnZ2VkVGVtcGxhdGVMaXRlcmFsMiIsIlN0eWxlZExlZ2VuZCIsInN0eWxlZCIsImRpdiIsInByb3BzIiwidGhlbWUiLCJzaWRlUGFuZWxTY3JvbGxCYXIiLCJpc0V4cGFuZGVkIiwiZGlzYWJsZUVkaXQiLCJTdHlsZWRMZWdlbmRSb3ciLCJSZXNldENvbG9yTGFiZWxGYWN0b3J5IiwiUmVzZXQiLCJsYWJlbENvbG9yTFQiLCJwYW5lbEhlYWRlckljb25Ib3ZlciIsIlN0eWxlSW5saW5lSW5wdXQiLCJJbmxpbmVJbnB1dCIsInRleHRDb2xvciIsIkxlZ2VuZFJvd0VkaXRvckZhY3RvcnkiLCJMZWdlbmRSb3dFZGl0b3IiLCJfcmVmIiwiY29sb3IiLCJsYWJlbCIsIm9uRWRpdCIsIl9yZWYkZGlzYWJsZWQiLCJkaXNhYmxlZCIsIm9uQ2hhbmdlIiwidXNlQ2FsbGJhY2siLCJldmVudCIsInRhcmdldCIsInZhbHVlIiwiY3JlYXRlRWxlbWVudCIsInR5cGUiLCJjbGFzc05hbWUiLCJvbkNsaWNrIiwiaWQiLCJjb25jYXQiLCJkaXNwbGF5TmFtZSIsIkxlZ2VuZFJvd1N0eWxlIiwid2lkdGgiLCJoZWlnaHQiLCJMZWdlbmRDb2xvckRpc3BsYXlGYWN0b3J5IiwiTGVnZW5kQ29sb3JEaXNwbGF5IiwiX3JlZjIiLCJzdHlsZSIsInVzZU1lbW8iLCJiYWNrZ3JvdW5kQ29sb3IiLCJtYXJnaW5SaWdodCIsIlN0eWxlZExhYmVsIiwiTGVnZW5kUm93RmFjdG9yeSIsImRlcHMiLCJSZXNldENvbG9yTGFiZWwiLCJMZWdlbmRSb3ciLCJfcmVmMyIsIl9yZWYzJGxhYmVsIiwiZGlzcGxheUxhYmVsIiwib25VcGRhdGVMYWJlbCIsIm9uUmVzZXRMYWJlbCIsIm5ld0xhYmVsIiwib25SZXNldCIsInRvU3RyaW5nIiwib3ZlcnJpZGVDb2xvckxlZ2VuZHMiLCJjb2xvckxlZ2VuZHMiLCJvdmVycmlkZXMiLCJkYXRhIiwibGFiZWxzIiwibmV3Q29sb3JMZWdlbmRzIiwiX3RvQ29uc3VtYWJsZUFycmF5MiIsImRhdHVtIiwiaW5kZXgiLCJjdXJyZW50SW5kZXgiLCJmaW5kSW5kZXgiLCJkIiwib3ZlcnJpZGUiLCJvdmVycmlkZUJ5Q3VzdG9tTGVnZW5kIiwiX3JlZjQiLCJjdXJyZW50TGVnZW5kcyIsImlzT2JqZWN0IiwidmFsdWVzIiwidXNlTGF5ZXJDb2xvckxlZ2VuZHMiLCJsYXllciIsInNjYWxlVHlwZSIsImRvbWFpbiIsInJhbmdlIiwiaXNGaXhlZCIsImZpZWxkVHlwZSIsImxhYmVsRm9ybWF0IiwibWFwU3RhdGUiLCJzY2FsZSIsImdldExheWVyQ29sb3JTY2FsZSIsInNjYWxlQnlab29tIiwiZ2V0VmlzdWFsQ2hhbm5lbFNjYWxlQnlab29tIiwiU0NBTEVfVFlQRVMiLCJjdXN0b21PcmRpbmFsIiwiY29sb3JNYXAiLCJjb2xvckJyZWFrcyIsImNvbG9yTWFwVG9DYXRlZ29yaWNhbENvbG9yQnJlYWtzIiwibWFwIiwiY2IiLCJBcnJheSIsImlzQXJyYXkiLCJnZXRMZWdlbmRPZlNjYWxlIiwiTGVnZW5kc1dpdGhDdXN0b21MZWdlbmRzIiwiQ29sb3JMZWdlbmRGYWN0b3J5IiwiQ29sb3JMZWdlbmQiLCJfcmVmNSIsIm9uVXBkYXRlQ29sb3JMZWdlbmQiLCJfcmVmNSRkaXNwbGF5TGFiZWwiLCJfcmVmNSRkaXNhYmxlRWRpdCIsIl9yZWY2IiwibGVnZW5kcyIsIm5ld1ZhbHVlIiwiXyIsInJlc3QiLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMyIiwibGVnZW5kIiwia2V5IiwidW5kZWZpbmVkIiwiUmVhY3QiLCJtZW1vIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbW1vbi9jb2xvci1sZWdlbmQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCwge3VzZUNhbGxiYWNrLCB1c2VNZW1vfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgc3R5bGVkLCB7Y3NzfSBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5cbmltcG9ydCB7U0NBTEVfVFlQRVN9IGZyb20gJ0BrZXBsZXIuZ2wvY29uc3RhbnRzJztcbmltcG9ydCB7TGF5ZXJ9IGZyb20gJ0BrZXBsZXIuZ2wvbGF5ZXJzJztcbmltcG9ydCB7Q29sb3JSYW5nZSwgSGV4Q29sb3IsIE1hcFN0YXRlfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcbmltcG9ydCB7XG4gIGdldExheWVyQ29sb3JTY2FsZSxcbiAgZ2V0TGVnZW5kT2ZTY2FsZSxcbiAgZ2V0VmlzdWFsQ2hhbm5lbFNjYWxlQnlab29tLFxuICBjb2xvck1hcFRvQ2F0ZWdvcmljYWxDb2xvckJyZWFrcyxcbiAgaXNPYmplY3Rcbn0gZnJvbSAnQGtlcGxlci5nbC91dGlscyc7XG5cbmltcG9ydCB7UmVzZXR9IGZyb20gJy4vaWNvbnMnO1xuaW1wb3J0IHtJbmxpbmVJbnB1dH0gZnJvbSAnLi9zdHlsZWQtY29tcG9uZW50cyc7XG5cbmNvbnN0IFJPV19IID0gMTU7XG5jb25zdCBHQVAgPSAyO1xuY29uc3QgUkVDVF9XID0gMjA7XG5cbmNvbnN0IHN0b3BDbGlja1Byb3BhZ2F0aW9uID0gZSA9PiBlLnN0b3BQcm9wYWdhdGlvbigpO1xuXG5jb25zdCBpbnB1dENzcyA9IGNzc2BcbiAgaW5wdXQge1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB9XG5gO1xuY29uc3QgU3R5bGVkTGVnZW5kID0gc3R5bGVkLmRpdjx7ZGlzYWJsZUVkaXQ6IGJvb2xlYW47IGlzRXhwYW5kZWQ/OiBib29sZWFufT5gXG4gICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuc2lkZVBhbmVsU2Nyb2xsQmFyfTtcbiAgJHtwcm9wcyA9PiAocHJvcHMuaXNFeHBhbmRlZCA/ICcnIDogYG1heC1oZWlnaHQ6IDE1NnB4O2ApfTtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIG1hcmdpbi1ib3R0b206ICR7R0FQfXB4O1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXJvdy1nYXA6ICR7R0FQfXB4O1xuICBwYWRkaW5nOiAycHggMDtcblxuICAke3Byb3BzID0+IChwcm9wcy5kaXNhYmxlRWRpdCA/IGlucHV0Q3NzIDogJycpfVxuYDtcblxuY29uc3QgU3R5bGVkTGVnZW5kUm93ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgaGVpZ2h0OiAyMHB4O1xuYDtcblxuZXhwb3J0IGZ1bmN0aW9uIFJlc2V0Q29sb3JMYWJlbEZhY3RvcnkoKSB7XG4gIHJldHVybiBzdHlsZWQoUmVzZXQpYFxuICAgIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmxhYmVsQ29sb3JMVH07XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5wYW5lbEhlYWRlckljb25Ib3Zlcn07XG4gICAgfVxuICBgO1xufVxuXG5jb25zdCBTdHlsZUlubGluZUlucHV0ID0gc3R5bGVkKElubGluZUlucHV0KWBcbiAgZm9udC1zaXplOiA5LjVweDtcbiAgbGluZS1oZWlnaHQ6ICR7Uk9XX0h9cHg7XG4gIGhlaWdodDogJHtST1dfSH1weDtcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUudGV4dENvbG9yfTtcbiAgd2lkdGg6IHVuc2V0O1xuICBwYWRkaW5nOiAycHg7XG4gIGZsZXg6IDE7XG4gIG1hcmdpbjogMCAke0dBUH1weDtcbiAgOmhvdmVyIHtcbiAgICBoZWlnaHQ6ICR7Uk9XX0h9cHg7XG4gIH1cbmA7XG5cbmV4cG9ydCB0eXBlIExlZ2VuZFJvd0VkaXRvclByb3BzID0ge1xuICBjb2xvcjogc3RyaW5nO1xuICBsYWJlbDogc3RyaW5nO1xuICBjdXN0b21MYWJlbD86IHN0cmluZztcbiAgb25FZGl0OiAobmV3VmFsdWU6IHN0cmluZykgPT4gdm9pZDtcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBMZWdlbmRSb3dFZGl0b3JGYWN0b3J5KCkge1xuICBjb25zdCBMZWdlbmRSb3dFZGl0b3I6IFJlYWN0LkZDPExlZ2VuZFJvd0VkaXRvclByb3BzPiA9ICh7XG4gICAgY29sb3IsXG4gICAgbGFiZWwsXG4gICAgb25FZGl0LFxuICAgIGRpc2FibGVkID0gZmFsc2VcbiAgfSkgPT4ge1xuICAgIGNvbnN0IG9uQ2hhbmdlID0gdXNlQ2FsbGJhY2soZXZlbnQgPT4gb25FZGl0KGV2ZW50LnRhcmdldC52YWx1ZSksIFtvbkVkaXRdKTtcbiAgICByZXR1cm4gKFxuICAgICAgPFN0eWxlSW5saW5lSW5wdXRcbiAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICBjbGFzc05hbWU9XCJsZWdlbmRfX2xhYmVsX190aXRsZV9fZWRpdG9yXCJcbiAgICAgICAgdmFsdWU9e2xhYmVsfVxuICAgICAgICBvbkNsaWNrPXtzdG9wQ2xpY2tQcm9wYWdhdGlvbn1cbiAgICAgICAgb25DaGFuZ2U9e29uQ2hhbmdlfVxuICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgIGlkPXtgJHtjb2xvcn06aW5wdXQtbGVnZW5kLWxhYmVsYH1cbiAgICAgIC8+XG4gICAgKTtcbiAgfTtcblxuICBMZWdlbmRSb3dFZGl0b3IuZGlzcGxheU5hbWUgPSAnTGVnZW5kUm93RWRpdG9yJztcbiAgcmV0dXJuIExlZ2VuZFJvd0VkaXRvcjtcbn1cblxuY29uc3QgTGVnZW5kUm93U3R5bGUgPSB7XG4gIHdpZHRoOiBgJHtSRUNUX1d9cHhgLFxuICBoZWlnaHQ6IGAke1JPV19IfXB4YFxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIExlZ2VuZENvbG9yRGlzcGxheUZhY3RvcnkoKSB7XG4gIGNvbnN0IExlZ2VuZENvbG9yRGlzcGxheSA9ICh7Y29sb3J9KSA9PiB7XG4gICAgY29uc3Qgc3R5bGUgPSB1c2VNZW1vKFxuICAgICAgKCkgPT4gKHsuLi5MZWdlbmRSb3dTdHlsZSwgYmFja2dyb3VuZENvbG9yOiBjb2xvciwgbWFyZ2luUmlnaHQ6IGAke0dBUH1weGB9KSxcbiAgICAgIFtjb2xvcl1cbiAgICApO1xuICAgIHJldHVybiA8ZGl2IHN0eWxlPXtzdHlsZX0gY2xhc3NOYW1lPVwibGVnZW5kLXJvdy1jb2xvclwiIC8+O1xuICB9O1xuXG4gIHJldHVybiBMZWdlbmRDb2xvckRpc3BsYXk7XG59XG5cbmNvbnN0IFN0eWxlZExhYmVsID0gc3R5bGVkLmRpdmBcbiAgZm9udC1zaXplOiAxMHB4O1xuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS50ZXh0Q29sb3J9O1xuICBwYWRkaW5nLWxlZnQ6IDJweDtcbmA7XG5cbmV4cG9ydCB0eXBlIExlZ2VuZFJvd1Byb3BzID0ge1xuICBsYWJlbDogc3RyaW5nO1xuICBjdXN0b21MYWJlbD86IHN0cmluZztcbiAgZGlzcGxheUxhYmVsPzogYm9vbGVhbjtcbiAgY29sb3I6IHN0cmluZztcbiAgb25VcGRhdGVMYWJlbD86IChzZWxlY3RlZENvbG9yOiBzdHJpbmcsIG5ld0xhYmVsOiBzdHJpbmcpID0+IHZvaWQ7XG4gIG9uUmVzZXRMYWJlbD86IChjb2xvcjogc3RyaW5nKSA9PiB2b2lkO1xuICBkaXNhYmxlRWRpdD86IGJvb2xlYW47XG59O1xuXG5MZWdlbmRSb3dGYWN0b3J5LmRlcHMgPSBbTGVnZW5kQ29sb3JEaXNwbGF5RmFjdG9yeSwgTGVnZW5kUm93RWRpdG9yRmFjdG9yeSwgUmVzZXRDb2xvckxhYmVsRmFjdG9yeV07XG5leHBvcnQgZnVuY3Rpb24gTGVnZW5kUm93RmFjdG9yeShcbiAgTGVnZW5kQ29sb3JEaXNwbGF5OiBSZXR1cm5UeXBlPHR5cGVvZiBMZWdlbmRDb2xvckRpc3BsYXlGYWN0b3J5PixcbiAgTGVnZW5kUm93RWRpdG9yOiBSZXR1cm5UeXBlPHR5cGVvZiBMZWdlbmRSb3dFZGl0b3JGYWN0b3J5PixcbiAgUmVzZXRDb2xvckxhYmVsOiBSZXR1cm5UeXBlPHR5cGVvZiBSZXNldENvbG9yTGFiZWxGYWN0b3J5PlxuKSB7XG4gIGNvbnN0IExlZ2VuZFJvdzogUmVhY3QuRkM8TGVnZW5kUm93UHJvcHM+ID0gKHtcbiAgICBsYWJlbCA9ICcnLFxuICAgIGRpc3BsYXlMYWJlbCxcbiAgICBjb2xvcixcbiAgICBvblVwZGF0ZUxhYmVsLFxuICAgIG9uUmVzZXRMYWJlbFxuICB9KSA9PiB7XG4gICAgY29uc3Qgb25FZGl0ID0gdXNlQ2FsbGJhY2soXG4gICAgICBuZXdMYWJlbCA9PiBvblVwZGF0ZUxhYmVsICYmIG9uVXBkYXRlTGFiZWwoY29sb3IsIG5ld0xhYmVsKSxcbiAgICAgIFtjb2xvciwgb25VcGRhdGVMYWJlbF1cbiAgICApO1xuICAgIGNvbnN0IG9uUmVzZXQgPSB1c2VDYWxsYmFjaygoKSA9PiBvblJlc2V0TGFiZWwgJiYgb25SZXNldExhYmVsKGNvbG9yKSwgW2NvbG9yLCBvblJlc2V0TGFiZWxdKTtcbiAgICBjb25zdCB2YWx1ZSA9IGRpc3BsYXlMYWJlbCA/IGxhYmVsLnRvU3RyaW5nKCkgOiAnJztcbiAgICByZXR1cm4gKFxuICAgICAgPFN0eWxlZExlZ2VuZFJvdz5cbiAgICAgICAgPExlZ2VuZENvbG9yRGlzcGxheSBjb2xvcj17Y29sb3J9IC8+XG4gICAgICAgIHtvblVwZGF0ZUxhYmVsID8gKFxuICAgICAgICAgIDxMZWdlbmRSb3dFZGl0b3IgZGlzYWJsZWQ9eyFvblVwZGF0ZUxhYmVsfSBsYWJlbD17dmFsdWV9IGNvbG9yPXtjb2xvcn0gb25FZGl0PXtvbkVkaXR9IC8+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFN0eWxlZExhYmVsPnt2YWx1ZX08L1N0eWxlZExhYmVsPlxuICAgICAgICApfVxuICAgICAgICB7b25SZXNldExhYmVsID8gPFJlc2V0Q29sb3JMYWJlbCBvbkNsaWNrPXtvblJlc2V0fSBoZWlnaHQ9XCIxNnB4XCIgLz4gOiBudWxsfVxuICAgICAgPC9TdHlsZWRMZWdlbmRSb3c+XG4gICAgKTtcbiAgfTtcbiAgTGVnZW5kUm93LmRpc3BsYXlOYW1lID0gJ0xlZ2VuZFJvdyc7XG4gIHJldHVybiBMZWdlbmRSb3c7XG59XG5cbmNvbnN0IG92ZXJyaWRlQ29sb3JMZWdlbmRzID0gKGNvbG9yTGVnZW5kcywgb3ZlcnJpZGVzKSA9PiB7XG4gIGNvbnN0IHtkYXRhLCBsYWJlbHN9ID0gb3ZlcnJpZGVzO1xuXG4gIGNvbnN0IG5ld0NvbG9yTGVnZW5kcyA9IFsuLi5jb2xvckxlZ2VuZHNdO1xuXG4gIGRhdGEuZm9yRWFjaCgoZGF0dW0sIGluZGV4KSA9PiB7XG4gICAgY29uc3QgY3VycmVudEluZGV4ID0gY29sb3JMZWdlbmRzLmZpbmRJbmRleChkID0+IGQuZGF0YSA9PT0gZGF0dW0pO1xuICAgIGlmIChjdXJyZW50SW5kZXggIT09IC0xKSB7XG4gICAgICBuZXdDb2xvckxlZ2VuZHNbY3VycmVudEluZGV4XSA9IHtcbiAgICAgICAgbGFiZWw6IGxhYmVsc1tpbmRleF0sXG4gICAgICAgIGRhdGE6IGRhdHVtLFxuICAgICAgICBvdmVycmlkZTogdHJ1ZVxuICAgICAgfTtcbiAgICAgIG5ld0NvbG9yTGVnZW5kc1tjdXJyZW50SW5kZXhdLmxhYmVsID0gbGFiZWxzW2luZGV4XTtcbiAgICB9IGVsc2Uge1xuICAgICAgbmV3Q29sb3JMZWdlbmRzLnB1c2goe1xuICAgICAgICBkYXRhOiBkYXR1bSxcbiAgICAgICAgbGFiZWw6IGxhYmVsc1tpbmRleF0sXG4gICAgICAgIG92ZXJyaWRlOiB0cnVlXG4gICAgICB9KTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBuZXdDb2xvckxlZ2VuZHM7XG59O1xuXG50eXBlIE92ZXJyaWRlQnlDdXN0b21MZWdlbmRPcHRpb25zID0ge1xuICAvKipcbiAgICogTGVnZW5kIHBhcmFtZXRlcnMgdG8gb3ZlcnJpZGVcbiAgICovXG4gIGNvbG9yTGVnZW5kcz86IFJlY29yZDxzdHJpbmcsIGFueT47XG4gIC8qKlxuICAgKiBPcmlnaW5hbCBMZWdlbmRzXG4gICAqL1xuICBjdXJyZW50TGVnZW5kcz86IFJldHVyblR5cGU8dHlwZW9mIGdldExlZ2VuZE9mU2NhbGU+O1xufTtcblxuLyoqXG4gKiBPdmVycmlkZXMgbGVnZW5kIGxhYmVscyB3aXRoIGNvbG9yIGxlZ2VuZHMuXG4gKiBAcGFyYW0gcGFyYW0wIExlZ2VuZCBpbmZvIGFuZCBvdmVycmlkZSBwYXJhbWV0ZXJzLlxuICogQHJldHVybnMgT3JpZ2luYWwgb3Igb3ZlcnJpZGVuIGxlbmVuZHMuXG4gKi9cbmZ1bmN0aW9uIG92ZXJyaWRlQnlDdXN0b21MZWdlbmQoe2NvbG9yTGVnZW5kcywgY3VycmVudExlZ2VuZHN9OiBPdmVycmlkZUJ5Q3VzdG9tTGVnZW5kT3B0aW9ucykge1xuICBpZiAoY29sb3JMZWdlbmRzICYmIGlzT2JqZWN0KGNvbG9yTGVnZW5kcykpIHtcbiAgICAvLyBvdmVycmlkZSBsYWJlbHMgd2l0aCBjb2xvciBsZWdlbmRzXG4gICAgY29uc3QgZGF0YSA9IE9iamVjdC5rZXlzKGNvbG9yTGVnZW5kcyk7XG4gICAgY29uc3QgbGFiZWxzID0gT2JqZWN0LnZhbHVlcyhjb2xvckxlZ2VuZHMpO1xuXG4gICAgcmV0dXJuIG92ZXJyaWRlQ29sb3JMZWdlbmRzKGN1cnJlbnRMZWdlbmRzLCB7ZGF0YSwgbGFiZWxzfSk7XG4gIH1cblxuICByZXR1cm4gY3VycmVudExlZ2VuZHM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VMYXllckNvbG9yTGVnZW5kcyhcbiAgbGF5ZXI6IENvbG9yTGVnZW5kUHJvcHNbJ2xheWVyJ10sXG4gIHNjYWxlVHlwZTogQ29sb3JMZWdlbmRQcm9wc1snc2NhbGVUeXBlJ10sXG4gIGRvbWFpbjogQ29sb3JMZWdlbmRQcm9wc1snZG9tYWluJ10sXG4gIHJhbmdlOiBDb2xvckxlZ2VuZFByb3BzWydyYW5nZSddLFxuICBpc0ZpeGVkOiBDb2xvckxlZ2VuZFByb3BzWydpc0ZpeGVkJ10sXG4gIGZpZWxkVHlwZTogQ29sb3JMZWdlbmRQcm9wc1snZmllbGRUeXBlJ10sXG4gIGxhYmVsRm9ybWF0OiBDb2xvckxlZ2VuZFByb3BzWydsYWJlbEZvcm1hdCddLFxuICBtYXBTdGF0ZTogQ29sb3JMZWdlbmRQcm9wc1snbWFwU3RhdGUnXVxuKTogTGVnZW5kW10ge1xuICBjb25zdCBzY2FsZSA9IHVzZU1lbW8oXG4gICAgKCkgPT4gZ2V0TGF5ZXJDb2xvclNjYWxlKHtyYW5nZSwgZG9tYWluLCBzY2FsZVR5cGUsIGlzRml4ZWQsIGxheWVyfSksXG4gICAgW3JhbmdlLCBkb21haW4sIHNjYWxlVHlwZSwgaXNGaXhlZCwgbGF5ZXJdXG4gICk7XG5cbiAgY29uc3Qgc2NhbGVCeVpvb20gPSB1c2VNZW1vKFxuICAgICgpID0+IGdldFZpc3VhbENoYW5uZWxTY2FsZUJ5Wm9vbSh7c2NhbGUsIGxheWVyLCBtYXBTdGF0ZX0pLFxuICAgIFtzY2FsZSwgbGF5ZXIsIG1hcFN0YXRlXVxuICApO1xuXG4gIGNvbnN0IGN1cnJlbnRMZWdlbmRzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKHNjYWxlVHlwZSA9PT0gU0NBTEVfVFlQRVMuY3VzdG9tT3JkaW5hbCAmJiByYW5nZT8uY29sb3JNYXApIHtcbiAgICAgIGNvbnN0IGNvbG9yQnJlYWtzID0gY29sb3JNYXBUb0NhdGVnb3JpY2FsQ29sb3JCcmVha3MocmFuZ2UuY29sb3JNYXApO1xuICAgICAgcmV0dXJuIGNvbG9yQnJlYWtzPy5tYXAoY2IgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGRhdGE6IGNiLmRhdGEsXG4gICAgICAgICAgbGFiZWw6IEFycmF5LmlzQXJyYXkoY2IubGFiZWwpXG4gICAgICAgICAgICA/IGNiLmxhYmVsLmxlbmd0aCA+IDVcbiAgICAgICAgICAgICAgPyBgJHtjYi5sYWJlbC5sZW5ndGh9IHNlbGVjdGVkYFxuICAgICAgICAgICAgICA6IGNiLmxhYmVsXG4gICAgICAgICAgICA6IGNiLmxhYmVsIHx8ICcnXG4gICAgICAgIH07XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIGdldExlZ2VuZE9mU2NhbGUoe3NjYWxlOiBzY2FsZUJ5Wm9vbSwgc2NhbGVUeXBlLCBsYWJlbEZvcm1hdCwgZmllbGRUeXBlfSk7XG4gIH0sIFtyYW5nZSwgc2NhbGVCeVpvb20sIHNjYWxlVHlwZSwgbGFiZWxGb3JtYXQsIGZpZWxkVHlwZV0pO1xuXG4gIGNvbnN0IExlZ2VuZHNXaXRoQ3VzdG9tTGVnZW5kcyA9IHVzZU1lbW8oXG4gICAgKCkgPT5cbiAgICAgIG92ZXJyaWRlQnlDdXN0b21MZWdlbmQoe1xuICAgICAgICBjb2xvckxlZ2VuZHM6IHJhbmdlPy5jb2xvckxlZ2VuZHMsXG4gICAgICAgIGN1cnJlbnRMZWdlbmRzXG4gICAgICB9KSxcbiAgICBbcmFuZ2U/LmNvbG9yTGVnZW5kcywgY3VycmVudExlZ2VuZHNdXG4gICk7XG5cbiAgcmV0dXJuIExlZ2VuZHNXaXRoQ3VzdG9tTGVnZW5kcyB8fCBbXTtcbn1cblxuZXhwb3J0IHR5cGUgQ29sb3JMZWdlbmRQcm9wcyA9IHtcbiAgbGF5ZXI6IExheWVyO1xuICBzY2FsZVR5cGU6IHN0cmluZztcbiAgZG9tYWluOiBudW1iZXJbXSB8IHN0cmluZ1tdO1xuICBmaWVsZFR5cGU/OiBzdHJpbmcgfCBudWxsO1xuICByYW5nZT86IENvbG9yUmFuZ2UgfCBudWxsO1xuICBsYWJlbEZvcm1hdD86IChuOiBhbnkpID0+IHN0cmluZztcbiAgZGlzcGxheUxhYmVsPzogYm9vbGVhbjtcbiAgZGlzYWJsZUVkaXQ/OiBib29sZWFuO1xuICBtYXBTdGF0ZT86IE1hcFN0YXRlO1xuICBpc0ZpeGVkPzogYm9vbGVhbjtcbiAgaXNFeHBhbmRlZD86IGJvb2xlYW47XG4gIG9uVXBkYXRlQ29sb3JMZWdlbmQ/OiAoY29sb3JMZWdlbmRzOiB7W2tleTogSGV4Q29sb3JdOiBzdHJpbmd9KSA9PiB2b2lkO1xufTtcblxuZXhwb3J0IHR5cGUgTGVnZW5kID0ge1xuICBkYXRhOiBzdHJpbmc7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIG92ZXJyaWRlPzogYm9vbGVhbjtcbn07XG5cbkNvbG9yTGVnZW5kRmFjdG9yeS5kZXBzID0gW0xlZ2VuZFJvd0ZhY3RvcnldO1xuZnVuY3Rpb24gQ29sb3JMZWdlbmRGYWN0b3J5KExlZ2VuZFJvdzogUmV0dXJuVHlwZTx0eXBlb2YgTGVnZW5kUm93RmFjdG9yeT4pIHtcbiAgY29uc3QgQ29sb3JMZWdlbmQ6IFJlYWN0LkZDPENvbG9yTGVnZW5kUHJvcHM+ID0gKHtcbiAgICBsYXllcixcbiAgICBpc0ZpeGVkLFxuICAgIGlzRXhwYW5kZWQsXG4gICAgZG9tYWluLFxuICAgIHJhbmdlLFxuICAgIGxhYmVsRm9ybWF0LFxuICAgIHNjYWxlVHlwZSxcbiAgICBmaWVsZFR5cGUsXG4gICAgbWFwU3RhdGUsXG4gICAgb25VcGRhdGVDb2xvckxlZ2VuZCxcbiAgICBkaXNwbGF5TGFiZWwgPSB0cnVlLFxuICAgIGRpc2FibGVFZGl0ID0gZmFsc2VcbiAgfSkgPT4ge1xuICAgIGNvbnN0IHtjb2xvckxlZ2VuZHN9ID0gcmFuZ2UgfHwge307XG5cbiAgICBjb25zdCBsZWdlbmRzID0gdXNlTGF5ZXJDb2xvckxlZ2VuZHMoXG4gICAgICBsYXllcixcbiAgICAgIHNjYWxlVHlwZSxcbiAgICAgIGRvbWFpbixcbiAgICAgIHJhbmdlLFxuICAgICAgaXNGaXhlZCxcbiAgICAgIGZpZWxkVHlwZSxcbiAgICAgIGxhYmVsRm9ybWF0LFxuICAgICAgbWFwU3RhdGVcbiAgICApO1xuXG4gICAgY29uc3Qgb25VcGRhdGVMYWJlbCA9IHVzZUNhbGxiYWNrKFxuICAgICAgKGNvbG9yLCBuZXdWYWx1ZSkgPT4ge1xuICAgICAgICBpZiAob25VcGRhdGVDb2xvckxlZ2VuZCkge1xuICAgICAgICAgIG9uVXBkYXRlQ29sb3JMZWdlbmQoe1xuICAgICAgICAgICAgLi4uY29sb3JMZWdlbmRzLFxuICAgICAgICAgICAgW2NvbG9yXTogbmV3VmFsdWVcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFtvblVwZGF0ZUNvbG9yTGVnZW5kLCBjb2xvckxlZ2VuZHNdXG4gICAgKTtcblxuICAgIGNvbnN0IG9uUmVzZXRMYWJlbCA9IHVzZUNhbGxiYWNrKFxuICAgICAgY29sb3IgPT4ge1xuICAgICAgICAvKiBlc2xpbnQtZGlzYWJsZSBuby11bnVzZWQtdmFycyAqL1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIGNvbnN0IHtbY29sb3JdOiBfLCAuLi5yZXN0fSA9IGNvbG9yTGVnZW5kcztcbiAgICAgICAgaWYgKG9uVXBkYXRlQ29sb3JMZWdlbmQgJiYgcmVzdCkge1xuICAgICAgICAgIG9uVXBkYXRlQ29sb3JMZWdlbmQocmVzdCk7XG4gICAgICAgIH1cbiAgICAgICAgLyogZXNsaW50LWVuYWJsZSBuby11bnVzZWQtdmFycyAqL1xuICAgICAgfSxcbiAgICAgIFtvblVwZGF0ZUNvbG9yTGVnZW5kLCBjb2xvckxlZ2VuZHNdXG4gICAgKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8U3R5bGVkTGVnZW5kXG4gICAgICAgIGNsYXNzTmFtZT1cInN0eWxlZC1jb2xvci1sZWdlbmRcIlxuICAgICAgICBkaXNhYmxlRWRpdD17ZGlzYWJsZUVkaXR9XG4gICAgICAgIGlzRXhwYW5kZWQ9e2lzRXhwYW5kZWR9XG4gICAgICA+XG4gICAgICAgIHtsZWdlbmRzLm1hcCgobGVnZW5kLCBpKSA9PiAoXG4gICAgICAgICAgPExlZ2VuZFJvd1xuICAgICAgICAgICAga2V5PXtgJHtsZWdlbmQuZGF0YX0tJHtpfWB9XG4gICAgICAgICAgICBsYWJlbD17bGVnZW5kLmxhYmVsfVxuICAgICAgICAgICAgZGlzcGxheUxhYmVsPXtkaXNwbGF5TGFiZWx9XG4gICAgICAgICAgICBjb2xvcj17bGVnZW5kLmRhdGF9XG4gICAgICAgICAgICBvblVwZGF0ZUxhYmVsPXshZGlzYWJsZUVkaXQgPyBvblVwZGF0ZUxhYmVsIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgb25SZXNldExhYmVsPXtsZWdlbmQub3ZlcnJpZGUgJiYgIWRpc2FibGVFZGl0ID8gb25SZXNldExhYmVsIDogdW5kZWZpbmVkfVxuICAgICAgICAgIC8+XG4gICAgICAgICkpfVxuICAgICAgPC9TdHlsZWRMZWdlbmQ+XG4gICAgKTtcbiAgfTtcblxuICByZXR1cm4gUmVhY3QubWVtbyhDb2xvckxlZ2VuZCk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IENvbG9yTGVnZW5kRmFjdG9yeTtcbiJdLCJt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
|
|
273
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9jb25zdGFudHMiLCJfdXRpbHMiLCJfaWNvbnMiLCJfc3R5bGVkQ29tcG9uZW50czIiLCJfdGVtcGxhdGVPYmplY3QiLCJfdGVtcGxhdGVPYmplY3QyIiwiX3RlbXBsYXRlT2JqZWN0MyIsIl90ZW1wbGF0ZU9iamVjdDQiLCJfdGVtcGxhdGVPYmplY3Q1IiwiX3RlbXBsYXRlT2JqZWN0NiIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIl90b1Byb3BlcnR5S2V5IiwiX3RvUHJpbWl0aXZlIiwiU3ltYm9sIiwidG9QcmltaXRpdmUiLCJUeXBlRXJyb3IiLCJTdHJpbmciLCJOdW1iZXIiLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJST1dfSCIsIkdBUCIsIlJFQ1RfVyIsInN0b3BDbGlja1Byb3BhZ2F0aW9uIiwic3RvcFByb3BhZ2F0aW9uIiwiaW5wdXRDc3MiLCJjc3MiLCJfdGFnZ2VkVGVtcGxhdGVMaXRlcmFsMiIsIlN0eWxlZExlZ2VuZCIsInN0eWxlZCIsImRpdiIsInByb3BzIiwidGhlbWUiLCJzaWRlUGFuZWxTY3JvbGxCYXIiLCJpc0V4cGFuZGVkIiwiZGlzYWJsZUVkaXQiLCJTdHlsZWRMZWdlbmRSb3ciLCJSZXNldENvbG9yTGFiZWxGYWN0b3J5IiwiUmVzZXQiLCJsYWJlbENvbG9yTFQiLCJwYW5lbEhlYWRlckljb25Ib3ZlciIsIlN0eWxlSW5saW5lSW5wdXQiLCJJbmxpbmVJbnB1dCIsInRleHRDb2xvciIsIkxlZ2VuZFJvd0VkaXRvckZhY3RvcnkiLCJMZWdlbmRSb3dFZGl0b3IiLCJfcmVmIiwiY29sb3IiLCJsYWJlbCIsIm9uRWRpdCIsIl9yZWYkZGlzYWJsZWQiLCJkaXNhYmxlZCIsIm9uQ2hhbmdlIiwidXNlQ2FsbGJhY2siLCJldmVudCIsInRhcmdldCIsInZhbHVlIiwiY3JlYXRlRWxlbWVudCIsInR5cGUiLCJjbGFzc05hbWUiLCJvbkNsaWNrIiwiaWQiLCJjb25jYXQiLCJkaXNwbGF5TmFtZSIsIkxlZ2VuZFJvd1N0eWxlIiwid2lkdGgiLCJoZWlnaHQiLCJMZWdlbmRDb2xvckRpc3BsYXlGYWN0b3J5IiwiTGVnZW5kQ29sb3JEaXNwbGF5IiwiX3JlZjIiLCJzdHlsZSIsInVzZU1lbW8iLCJiYWNrZ3JvdW5kQ29sb3IiLCJtYXJnaW5SaWdodCIsIlN0eWxlZExhYmVsIiwiTGVnZW5kUm93RmFjdG9yeSIsImRlcHMiLCJSZXNldENvbG9yTGFiZWwiLCJMZWdlbmRSb3ciLCJfcmVmMyIsIl9yZWYzJGxhYmVsIiwiZGlzcGxheUxhYmVsIiwib25VcGRhdGVMYWJlbCIsIm9uUmVzZXRMYWJlbCIsIm5ld0xhYmVsIiwib25SZXNldCIsIm92ZXJyaWRlQ29sb3JMZWdlbmRzIiwiY29sb3JMZWdlbmRzIiwib3ZlcnJpZGVzIiwiZGF0YSIsImxhYmVscyIsIm5ld0NvbG9yTGVnZW5kcyIsIl90b0NvbnN1bWFibGVBcnJheTIiLCJkYXR1bSIsImluZGV4IiwiY3VycmVudEluZGV4IiwiZmluZEluZGV4IiwiZCIsIm92ZXJyaWRlIiwib3ZlcnJpZGVCeUN1c3RvbUxlZ2VuZCIsIl9yZWY0IiwiY3VycmVudExlZ2VuZHMiLCJpc09iamVjdCIsInZhbHVlcyIsInVzZUxheWVyQ29sb3JMZWdlbmRzIiwibGF5ZXIiLCJzY2FsZVR5cGUiLCJkb21haW4iLCJyYW5nZSIsImlzRml4ZWQiLCJmaWVsZFR5cGUiLCJsYWJlbEZvcm1hdCIsIm1hcFN0YXRlIiwic2NhbGUiLCJnZXRMYXllckNvbG9yU2NhbGUiLCJzY2FsZUJ5Wm9vbSIsImdldFZpc3VhbENoYW5uZWxTY2FsZUJ5Wm9vbSIsIlNDQUxFX1RZUEVTIiwiY3VzdG9tT3JkaW5hbCIsImNvbG9yTWFwIiwiY29sb3JCcmVha3MiLCJjb2xvck1hcFRvQ2F0ZWdvcmljYWxDb2xvckJyZWFrcyIsIm1hcCIsImNiIiwiQXJyYXkiLCJpc0FycmF5IiwiZ2V0TGVnZW5kT2ZTY2FsZSIsIkxlZ2VuZHNXaXRoQ3VzdG9tTGVnZW5kcyIsIkNvbG9yTGVnZW5kRmFjdG9yeSIsIkNvbG9yTGVnZW5kIiwiX3JlZjUiLCJvblVwZGF0ZUNvbG9yTGVnZW5kIiwiX3JlZjUkZGlzcGxheUxhYmVsIiwiX3JlZjUkZGlzYWJsZUVkaXQiLCJfcmVmNiIsImxlZ2VuZHMiLCJuZXdWYWx1ZSIsIl8iLCJyZXN0IiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzMiIsImxlZ2VuZCIsImtleSIsInVuZGVmaW5lZCIsIlJlYWN0IiwibWVtbyIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tb24vY29sb3ItbGVnZW5kLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgUmVhY3QsIHt1c2VDYWxsYmFjaywgdXNlTWVtb30gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHN0eWxlZCwge2Nzc30gZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuXG5pbXBvcnQge1NDQUxFX1RZUEVTfSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5pbXBvcnQge0xheWVyfSBmcm9tICdAa2VwbGVyLmdsL2xheWVycyc7XG5pbXBvcnQge0NvbG9yUmFuZ2UsIEhleENvbG9yLCBNYXBTdGF0ZX0gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5pbXBvcnQge1xuICBnZXRMYXllckNvbG9yU2NhbGUsXG4gIGdldExlZ2VuZE9mU2NhbGUsXG4gIGdldFZpc3VhbENoYW5uZWxTY2FsZUJ5Wm9vbSxcbiAgY29sb3JNYXBUb0NhdGVnb3JpY2FsQ29sb3JCcmVha3MsXG4gIGlzT2JqZWN0XG59IGZyb20gJ0BrZXBsZXIuZ2wvdXRpbHMnO1xuXG5pbXBvcnQge1Jlc2V0fSBmcm9tICcuL2ljb25zJztcbmltcG9ydCB7SW5saW5lSW5wdXR9IGZyb20gJy4vc3R5bGVkLWNvbXBvbmVudHMnO1xuXG5jb25zdCBST1dfSCA9IDE1O1xuY29uc3QgR0FQID0gMjtcbmNvbnN0IFJFQ1RfVyA9IDIwO1xuXG5jb25zdCBzdG9wQ2xpY2tQcm9wYWdhdGlvbiA9IGUgPT4gZS5zdG9wUHJvcGFnYXRpb24oKTtcblxuY29uc3QgaW5wdXRDc3MgPSBjc3NgXG4gIGlucHV0IHtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgfVxuYDtcbmNvbnN0IFN0eWxlZExlZ2VuZCA9IHN0eWxlZC5kaXY8e2Rpc2FibGVFZGl0OiBib29sZWFuOyBpc0V4cGFuZGVkPzogYm9vbGVhbn0+YFxuICAke3Byb3BzID0+IHByb3BzLnRoZW1lLnNpZGVQYW5lbFNjcm9sbEJhcn07XG4gICR7cHJvcHMgPT4gKHByb3BzLmlzRXhwYW5kZWQgPyAnJyA6IGBtYXgtaGVpZ2h0OiAxNTZweDtgKX07XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgbWFyZ2luLWJvdHRvbTogJHtHQVB9cHg7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtcm93LWdhcDogJHtHQVB9cHg7XG4gIHBhZGRpbmc6IDJweCAwO1xuXG4gICR7cHJvcHMgPT4gKHByb3BzLmRpc2FibGVFZGl0ID8gaW5wdXRDc3MgOiAnJyl9XG5gO1xuXG5jb25zdCBTdHlsZWRMZWdlbmRSb3cgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBoZWlnaHQ6IDIwcHg7XG4gIG1pbi13aWR0aDogMDtcbmA7XG5cbmV4cG9ydCBmdW5jdGlvbiBSZXNldENvbG9yTGFiZWxGYWN0b3J5KCkge1xuICByZXR1cm4gc3R5bGVkKFJlc2V0KWBcbiAgICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5sYWJlbENvbG9yTFR9O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBtYXJnaW4tbGVmdDogJHtHQVB9cHg7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnBhbmVsSGVhZGVySWNvbkhvdmVyfTtcbiAgICB9XG4gIGA7XG59XG5cbmNvbnN0IFN0eWxlSW5saW5lSW5wdXQgPSBzdHlsZWQoSW5saW5lSW5wdXQpYFxuICBmb250LXNpemU6IDkuNXB4O1xuICBsaW5lLWhlaWdodDogJHtST1dfSH1weDtcbiAgaGVpZ2h0OiAke1JPV19IfXB4O1xuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS50ZXh0Q29sb3J9O1xuICB3aWR0aDogdW5zZXQ7XG4gIHBhZGRpbmc6IDJweDtcbiAgZmxleDogMTtcbiAgbWluLXdpZHRoOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgbWFyZ2luOiAwICR7R0FQfXB4O1xuICA6aG92ZXIge1xuICAgIGhlaWdodDogJHtST1dfSH1weDtcbiAgfVxuYDtcblxuZXhwb3J0IHR5cGUgTGVnZW5kUm93RWRpdG9yUHJvcHMgPSB7XG4gIGNvbG9yOiBzdHJpbmc7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIGN1c3RvbUxhYmVsPzogc3RyaW5nO1xuICBvbkVkaXQ6IChuZXdWYWx1ZTogc3RyaW5nKSA9PiB2b2lkO1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG59O1xuZXhwb3J0IGZ1bmN0aW9uIExlZ2VuZFJvd0VkaXRvckZhY3RvcnkoKSB7XG4gIGNvbnN0IExlZ2VuZFJvd0VkaXRvcjogUmVhY3QuRkM8TGVnZW5kUm93RWRpdG9yUHJvcHM+ID0gKHtcbiAgICBjb2xvcixcbiAgICBsYWJlbCxcbiAgICBvbkVkaXQsXG4gICAgZGlzYWJsZWQgPSBmYWxzZVxuICB9KSA9PiB7XG4gICAgY29uc3Qgb25DaGFuZ2UgPSB1c2VDYWxsYmFjayhldmVudCA9PiBvbkVkaXQoZXZlbnQudGFyZ2V0LnZhbHVlKSwgW29uRWRpdF0pO1xuICAgIHJldHVybiAoXG4gICAgICA8U3R5bGVJbmxpbmVJbnB1dFxuICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgIGNsYXNzTmFtZT1cImxlZ2VuZF9fbGFiZWxfX3RpdGxlX19lZGl0b3JcIlxuICAgICAgICB2YWx1ZT17bGFiZWx9XG4gICAgICAgIG9uQ2xpY2s9e3N0b3BDbGlja1Byb3BhZ2F0aW9ufVxuICAgICAgICBvbkNoYW5nZT17b25DaGFuZ2V9XG4gICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgaWQ9e2Ake2NvbG9yfTppbnB1dC1sZWdlbmQtbGFiZWxgfVxuICAgICAgLz5cbiAgICApO1xuICB9O1xuXG4gIExlZ2VuZFJvd0VkaXRvci5kaXNwbGF5TmFtZSA9ICdMZWdlbmRSb3dFZGl0b3InO1xuICByZXR1cm4gTGVnZW5kUm93RWRpdG9yO1xufVxuXG5jb25zdCBMZWdlbmRSb3dTdHlsZSA9IHtcbiAgd2lkdGg6IGAke1JFQ1RfV31weGAsXG4gIGhlaWdodDogYCR7Uk9XX0h9cHhgXG59O1xuXG5leHBvcnQgZnVuY3Rpb24gTGVnZW5kQ29sb3JEaXNwbGF5RmFjdG9yeSgpIHtcbiAgY29uc3QgTGVnZW5kQ29sb3JEaXNwbGF5ID0gKHtjb2xvcn0pID0+IHtcbiAgICBjb25zdCBzdHlsZSA9IHVzZU1lbW8oXG4gICAgICAoKSA9PiAoey4uLkxlZ2VuZFJvd1N0eWxlLCBiYWNrZ3JvdW5kQ29sb3I6IGNvbG9yLCBtYXJnaW5SaWdodDogYCR7R0FQfXB4YH0pLFxuICAgICAgW2NvbG9yXVxuICAgICk7XG4gICAgcmV0dXJuIDxkaXYgc3R5bGU9e3N0eWxlfSBjbGFzc05hbWU9XCJsZWdlbmQtcm93LWNvbG9yXCIgLz47XG4gIH07XG5cbiAgcmV0dXJuIExlZ2VuZENvbG9yRGlzcGxheTtcbn1cblxuY29uc3QgU3R5bGVkTGFiZWwgPSBzdHlsZWQuZGl2YFxuICBmb250LXNpemU6IDEwcHg7XG4gIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnRleHRDb2xvcn07XG4gIHBhZGRpbmctbGVmdDogMnB4O1xuICBmbGV4OiAxO1xuICBtaW4td2lkdGg6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuYDtcblxuZXhwb3J0IHR5cGUgTGVnZW5kUm93UHJvcHMgPSB7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIGN1c3RvbUxhYmVsPzogc3RyaW5nO1xuICBkaXNwbGF5TGFiZWw/OiBib29sZWFuO1xuICBjb2xvcjogc3RyaW5nO1xuICBvblVwZGF0ZUxhYmVsPzogKHNlbGVjdGVkQ29sb3I6IHN0cmluZywgbmV3TGFiZWw6IHN0cmluZykgPT4gdm9pZDtcbiAgb25SZXNldExhYmVsPzogKGNvbG9yOiBzdHJpbmcpID0+IHZvaWQ7XG4gIGRpc2FibGVFZGl0PzogYm9vbGVhbjtcbn07XG5cbkxlZ2VuZFJvd0ZhY3RvcnkuZGVwcyA9IFtMZWdlbmRDb2xvckRpc3BsYXlGYWN0b3J5LCBMZWdlbmRSb3dFZGl0b3JGYWN0b3J5LCBSZXNldENvbG9yTGFiZWxGYWN0b3J5XTtcbmV4cG9ydCBmdW5jdGlvbiBMZWdlbmRSb3dGYWN0b3J5KFxuICBMZWdlbmRDb2xvckRpc3BsYXk6IFJldHVyblR5cGU8dHlwZW9mIExlZ2VuZENvbG9yRGlzcGxheUZhY3Rvcnk+LFxuICBMZWdlbmRSb3dFZGl0b3I6IFJldHVyblR5cGU8dHlwZW9mIExlZ2VuZFJvd0VkaXRvckZhY3Rvcnk+LFxuICBSZXNldENvbG9yTGFiZWw6IFJldHVyblR5cGU8dHlwZW9mIFJlc2V0Q29sb3JMYWJlbEZhY3Rvcnk+XG4pIHtcbiAgY29uc3QgTGVnZW5kUm93OiBSZWFjdC5GQzxMZWdlbmRSb3dQcm9wcz4gPSAoe1xuICAgIGxhYmVsID0gJycsXG4gICAgZGlzcGxheUxhYmVsLFxuICAgIGNvbG9yLFxuICAgIG9uVXBkYXRlTGFiZWwsXG4gICAgb25SZXNldExhYmVsXG4gIH0pID0+IHtcbiAgICBjb25zdCBvbkVkaXQgPSB1c2VDYWxsYmFjayhcbiAgICAgIG5ld0xhYmVsID0+IG9uVXBkYXRlTGFiZWwgJiYgb25VcGRhdGVMYWJlbChjb2xvciwgbmV3TGFiZWwpLFxuICAgICAgW2NvbG9yLCBvblVwZGF0ZUxhYmVsXVxuICAgICk7XG4gICAgY29uc3Qgb25SZXNldCA9IHVzZUNhbGxiYWNrKCgpID0+IG9uUmVzZXRMYWJlbCAmJiBvblJlc2V0TGFiZWwoY29sb3IpLCBbY29sb3IsIG9uUmVzZXRMYWJlbF0pO1xuICAgIGNvbnN0IHZhbHVlID0gZGlzcGxheUxhYmVsID8gU3RyaW5nKGxhYmVsID8/ICcnKSA6ICcnO1xuICAgIHJldHVybiAoXG4gICAgICA8U3R5bGVkTGVnZW5kUm93PlxuICAgICAgICA8TGVnZW5kQ29sb3JEaXNwbGF5IGNvbG9yPXtjb2xvcn0gLz5cbiAgICAgICAge29uVXBkYXRlTGFiZWwgPyAoXG4gICAgICAgICAgPExlZ2VuZFJvd0VkaXRvciBkaXNhYmxlZD17IW9uVXBkYXRlTGFiZWx9IGxhYmVsPXt2YWx1ZX0gY29sb3I9e2NvbG9yfSBvbkVkaXQ9e29uRWRpdH0gLz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8U3R5bGVkTGFiZWw+e3ZhbHVlfTwvU3R5bGVkTGFiZWw+XG4gICAgICAgICl9XG4gICAgICAgIHtvblJlc2V0TGFiZWwgPyA8UmVzZXRDb2xvckxhYmVsIG9uQ2xpY2s9e29uUmVzZXR9IGhlaWdodD1cIjE2cHhcIiAvPiA6IG51bGx9XG4gICAgICA8L1N0eWxlZExlZ2VuZFJvdz5cbiAgICApO1xuICB9O1xuICBMZWdlbmRSb3cuZGlzcGxheU5hbWUgPSAnTGVnZW5kUm93JztcbiAgcmV0dXJuIExlZ2VuZFJvdztcbn1cblxuY29uc3Qgb3ZlcnJpZGVDb2xvckxlZ2VuZHMgPSAoY29sb3JMZWdlbmRzLCBvdmVycmlkZXMpID0+IHtcbiAgY29uc3Qge2RhdGEsIGxhYmVsc30gPSBvdmVycmlkZXM7XG5cbiAgY29uc3QgbmV3Q29sb3JMZWdlbmRzID0gWy4uLmNvbG9yTGVnZW5kc107XG5cbiAgZGF0YS5mb3JFYWNoKChkYXR1bSwgaW5kZXgpID0+IHtcbiAgICBjb25zdCBjdXJyZW50SW5kZXggPSBjb2xvckxlZ2VuZHMuZmluZEluZGV4KGQgPT4gZC5kYXRhID09PSBkYXR1bSk7XG4gICAgaWYgKGN1cnJlbnRJbmRleCAhPT0gLTEpIHtcbiAgICAgIG5ld0NvbG9yTGVnZW5kc1tjdXJyZW50SW5kZXhdID0ge1xuICAgICAgICBsYWJlbDogbGFiZWxzW2luZGV4XSxcbiAgICAgICAgZGF0YTogZGF0dW0sXG4gICAgICAgIG92ZXJyaWRlOiB0cnVlXG4gICAgICB9O1xuICAgICAgbmV3Q29sb3JMZWdlbmRzW2N1cnJlbnRJbmRleF0ubGFiZWwgPSBsYWJlbHNbaW5kZXhdO1xuICAgIH0gZWxzZSB7XG4gICAgICBuZXdDb2xvckxlZ2VuZHMucHVzaCh7XG4gICAgICAgIGRhdGE6IGRhdHVtLFxuICAgICAgICBsYWJlbDogbGFiZWxzW2luZGV4XSxcbiAgICAgICAgb3ZlcnJpZGU6IHRydWVcbiAgICAgIH0pO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIG5ld0NvbG9yTGVnZW5kcztcbn07XG5cbnR5cGUgT3ZlcnJpZGVCeUN1c3RvbUxlZ2VuZE9wdGlvbnMgPSB7XG4gIC8qKlxuICAgKiBMZWdlbmQgcGFyYW1ldGVycyB0byBvdmVycmlkZVxuICAgKi9cbiAgY29sb3JMZWdlbmRzPzogUmVjb3JkPHN0cmluZywgYW55PjtcbiAgLyoqXG4gICAqIE9yaWdpbmFsIExlZ2VuZHNcbiAgICovXG4gIGN1cnJlbnRMZWdlbmRzPzogUmV0dXJuVHlwZTx0eXBlb2YgZ2V0TGVnZW5kT2ZTY2FsZT47XG59O1xuXG4vKipcbiAqIE92ZXJyaWRlcyBsZWdlbmQgbGFiZWxzIHdpdGggY29sb3IgbGVnZW5kcy5cbiAqIEBwYXJhbSBwYXJhbTAgTGVnZW5kIGluZm8gYW5kIG92ZXJyaWRlIHBhcmFtZXRlcnMuXG4gKiBAcmV0dXJucyBPcmlnaW5hbCBvciBvdmVycmlkZW4gbGVuZW5kcy5cbiAqL1xuZnVuY3Rpb24gb3ZlcnJpZGVCeUN1c3RvbUxlZ2VuZCh7Y29sb3JMZWdlbmRzLCBjdXJyZW50TGVnZW5kc306IE92ZXJyaWRlQnlDdXN0b21MZWdlbmRPcHRpb25zKSB7XG4gIGlmIChjb2xvckxlZ2VuZHMgJiYgaXNPYmplY3QoY29sb3JMZWdlbmRzKSkge1xuICAgIC8vIG92ZXJyaWRlIGxhYmVscyB3aXRoIGNvbG9yIGxlZ2VuZHNcbiAgICBjb25zdCBkYXRhID0gT2JqZWN0LmtleXMoY29sb3JMZWdlbmRzKTtcbiAgICBjb25zdCBsYWJlbHMgPSBPYmplY3QudmFsdWVzKGNvbG9yTGVnZW5kcyk7XG5cbiAgICByZXR1cm4gb3ZlcnJpZGVDb2xvckxlZ2VuZHMoY3VycmVudExlZ2VuZHMsIHtkYXRhLCBsYWJlbHN9KTtcbiAgfVxuXG4gIHJldHVybiBjdXJyZW50TGVnZW5kcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVzZUxheWVyQ29sb3JMZWdlbmRzKFxuICBsYXllcjogQ29sb3JMZWdlbmRQcm9wc1snbGF5ZXInXSxcbiAgc2NhbGVUeXBlOiBDb2xvckxlZ2VuZFByb3BzWydzY2FsZVR5cGUnXSxcbiAgZG9tYWluOiBDb2xvckxlZ2VuZFByb3BzWydkb21haW4nXSxcbiAgcmFuZ2U6IENvbG9yTGVnZW5kUHJvcHNbJ3JhbmdlJ10sXG4gIGlzRml4ZWQ6IENvbG9yTGVnZW5kUHJvcHNbJ2lzRml4ZWQnXSxcbiAgZmllbGRUeXBlOiBDb2xvckxlZ2VuZFByb3BzWydmaWVsZFR5cGUnXSxcbiAgbGFiZWxGb3JtYXQ6IENvbG9yTGVnZW5kUHJvcHNbJ2xhYmVsRm9ybWF0J10sXG4gIG1hcFN0YXRlOiBDb2xvckxlZ2VuZFByb3BzWydtYXBTdGF0ZSddXG4pOiBMZWdlbmRbXSB7XG4gIGNvbnN0IHNjYWxlID0gdXNlTWVtbyhcbiAgICAoKSA9PiBnZXRMYXllckNvbG9yU2NhbGUoe3JhbmdlLCBkb21haW4sIHNjYWxlVHlwZSwgaXNGaXhlZCwgbGF5ZXJ9KSxcbiAgICBbcmFuZ2UsIGRvbWFpbiwgc2NhbGVUeXBlLCBpc0ZpeGVkLCBsYXllcl1cbiAgKTtcblxuICBjb25zdCBzY2FsZUJ5Wm9vbSA9IHVzZU1lbW8oXG4gICAgKCkgPT4gZ2V0VmlzdWFsQ2hhbm5lbFNjYWxlQnlab29tKHtzY2FsZSwgbGF5ZXIsIG1hcFN0YXRlfSksXG4gICAgW3NjYWxlLCBsYXllciwgbWFwU3RhdGVdXG4gICk7XG5cbiAgY29uc3QgY3VycmVudExlZ2VuZHMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoc2NhbGVUeXBlID09PSBTQ0FMRV9UWVBFUy5jdXN0b21PcmRpbmFsICYmIHJhbmdlPy5jb2xvck1hcCkge1xuICAgICAgY29uc3QgY29sb3JCcmVha3MgPSBjb2xvck1hcFRvQ2F0ZWdvcmljYWxDb2xvckJyZWFrcyhyYW5nZS5jb2xvck1hcCk7XG4gICAgICByZXR1cm4gY29sb3JCcmVha3M/Lm1hcChjYiA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgZGF0YTogY2IuZGF0YSxcbiAgICAgICAgICBsYWJlbDogQXJyYXkuaXNBcnJheShjYi5sYWJlbClcbiAgICAgICAgICAgID8gY2IubGFiZWwubGVuZ3RoID4gNVxuICAgICAgICAgICAgICA/IGAke2NiLmxhYmVsLmxlbmd0aH0gc2VsZWN0ZWRgXG4gICAgICAgICAgICAgIDogY2IubGFiZWxcbiAgICAgICAgICAgIDogY2IubGFiZWwgfHwgJydcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gZ2V0TGVnZW5kT2ZTY2FsZSh7c2NhbGU6IHNjYWxlQnlab29tLCBzY2FsZVR5cGUsIGxhYmVsRm9ybWF0LCBmaWVsZFR5cGV9KTtcbiAgfSwgW3JhbmdlLCBzY2FsZUJ5Wm9vbSwgc2NhbGVUeXBlLCBsYWJlbEZvcm1hdCwgZmllbGRUeXBlXSk7XG5cbiAgY29uc3QgTGVnZW5kc1dpdGhDdXN0b21MZWdlbmRzID0gdXNlTWVtbyhcbiAgICAoKSA9PlxuICAgICAgb3ZlcnJpZGVCeUN1c3RvbUxlZ2VuZCh7XG4gICAgICAgIGNvbG9yTGVnZW5kczogcmFuZ2U/LmNvbG9yTGVnZW5kcyxcbiAgICAgICAgY3VycmVudExlZ2VuZHNcbiAgICAgIH0pLFxuICAgIFtyYW5nZT8uY29sb3JMZWdlbmRzLCBjdXJyZW50TGVnZW5kc11cbiAgKTtcblxuICByZXR1cm4gTGVnZW5kc1dpdGhDdXN0b21MZWdlbmRzIHx8IFtdO1xufVxuXG5leHBvcnQgdHlwZSBDb2xvckxlZ2VuZFByb3BzID0ge1xuICBsYXllcjogTGF5ZXI7XG4gIHNjYWxlVHlwZTogc3RyaW5nO1xuICBkb21haW46IG51bWJlcltdIHwgc3RyaW5nW107XG4gIGZpZWxkVHlwZT86IHN0cmluZyB8IG51bGw7XG4gIHJhbmdlPzogQ29sb3JSYW5nZSB8IG51bGw7XG4gIGxhYmVsRm9ybWF0PzogKG46IGFueSkgPT4gc3RyaW5nO1xuICBkaXNwbGF5TGFiZWw/OiBib29sZWFuO1xuICBkaXNhYmxlRWRpdD86IGJvb2xlYW47XG4gIG1hcFN0YXRlPzogTWFwU3RhdGU7XG4gIGlzRml4ZWQ/OiBib29sZWFuO1xuICBpc0V4cGFuZGVkPzogYm9vbGVhbjtcbiAgb25VcGRhdGVDb2xvckxlZ2VuZD86IChjb2xvckxlZ2VuZHM6IHtba2V5OiBIZXhDb2xvcl06IHN0cmluZ30pID0+IHZvaWQ7XG59O1xuXG5leHBvcnQgdHlwZSBMZWdlbmQgPSB7XG4gIGRhdGE6IHN0cmluZztcbiAgbGFiZWw6IHN0cmluZztcbiAgb3ZlcnJpZGU/OiBib29sZWFuO1xufTtcblxuQ29sb3JMZWdlbmRGYWN0b3J5LmRlcHMgPSBbTGVnZW5kUm93RmFjdG9yeV07XG5mdW5jdGlvbiBDb2xvckxlZ2VuZEZhY3RvcnkoTGVnZW5kUm93OiBSZXR1cm5UeXBlPHR5cGVvZiBMZWdlbmRSb3dGYWN0b3J5Pikge1xuICBjb25zdCBDb2xvckxlZ2VuZDogUmVhY3QuRkM8Q29sb3JMZWdlbmRQcm9wcz4gPSAoe1xuICAgIGxheWVyLFxuICAgIGlzRml4ZWQsXG4gICAgaXNFeHBhbmRlZCxcbiAgICBkb21haW4sXG4gICAgcmFuZ2UsXG4gICAgbGFiZWxGb3JtYXQsXG4gICAgc2NhbGVUeXBlLFxuICAgIGZpZWxkVHlwZSxcbiAgICBtYXBTdGF0ZSxcbiAgICBvblVwZGF0ZUNvbG9yTGVnZW5kLFxuICAgIGRpc3BsYXlMYWJlbCA9IHRydWUsXG4gICAgZGlzYWJsZUVkaXQgPSBmYWxzZVxuICB9KSA9PiB7XG4gICAgY29uc3Qge2NvbG9yTGVnZW5kc30gPSByYW5nZSB8fCB7fTtcblxuICAgIGNvbnN0IGxlZ2VuZHMgPSB1c2VMYXllckNvbG9yTGVnZW5kcyhcbiAgICAgIGxheWVyLFxuICAgICAgc2NhbGVUeXBlLFxuICAgICAgZG9tYWluLFxuICAgICAgcmFuZ2UsXG4gICAgICBpc0ZpeGVkLFxuICAgICAgZmllbGRUeXBlLFxuICAgICAgbGFiZWxGb3JtYXQsXG4gICAgICBtYXBTdGF0ZVxuICAgICk7XG5cbiAgICBjb25zdCBvblVwZGF0ZUxhYmVsID0gdXNlQ2FsbGJhY2soXG4gICAgICAoY29sb3IsIG5ld1ZhbHVlKSA9PiB7XG4gICAgICAgIGlmIChvblVwZGF0ZUNvbG9yTGVnZW5kKSB7XG4gICAgICAgICAgb25VcGRhdGVDb2xvckxlZ2VuZCh7XG4gICAgICAgICAgICAuLi5jb2xvckxlZ2VuZHMsXG4gICAgICAgICAgICBbY29sb3JdOiBuZXdWYWx1ZVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgW29uVXBkYXRlQ29sb3JMZWdlbmQsIGNvbG9yTGVnZW5kc11cbiAgICApO1xuXG4gICAgY29uc3Qgb25SZXNldExhYmVsID0gdXNlQ2FsbGJhY2soXG4gICAgICBjb2xvciA9PiB7XG4gICAgICAgIC8qIGVzbGludC1kaXNhYmxlIG5vLXVudXNlZC12YXJzICovXG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgY29uc3Qge1tjb2xvcl06IF8sIC4uLnJlc3R9ID0gY29sb3JMZWdlbmRzO1xuICAgICAgICBpZiAob25VcGRhdGVDb2xvckxlZ2VuZCAmJiByZXN0KSB7XG4gICAgICAgICAgb25VcGRhdGVDb2xvckxlZ2VuZChyZXN0KTtcbiAgICAgICAgfVxuICAgICAgICAvKiBlc2xpbnQtZW5hYmxlIG5vLXVudXNlZC12YXJzICovXG4gICAgICB9LFxuICAgICAgW29uVXBkYXRlQ29sb3JMZWdlbmQsIGNvbG9yTGVnZW5kc11cbiAgICApO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxTdHlsZWRMZWdlbmRcbiAgICAgICAgY2xhc3NOYW1lPVwic3R5bGVkLWNvbG9yLWxlZ2VuZFwiXG4gICAgICAgIGRpc2FibGVFZGl0PXtkaXNhYmxlRWRpdH1cbiAgICAgICAgaXNFeHBhbmRlZD17aXNFeHBhbmRlZH1cbiAgICAgID5cbiAgICAgICAge2xlZ2VuZHMubWFwKChsZWdlbmQsIGkpID0+IChcbiAgICAgICAgICA8TGVnZW5kUm93XG4gICAgICAgICAgICBrZXk9e2Ake2xlZ2VuZC5kYXRhfS0ke2l9YH1cbiAgICAgICAgICAgIGxhYmVsPXtsZWdlbmQubGFiZWx9XG4gICAgICAgICAgICBkaXNwbGF5TGFiZWw9e2Rpc3BsYXlMYWJlbH1cbiAgICAgICAgICAgIGNvbG9yPXtsZWdlbmQuZGF0YX1cbiAgICAgICAgICAgIG9uVXBkYXRlTGFiZWw9eyFkaXNhYmxlRWRpdCA/IG9uVXBkYXRlTGFiZWwgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICBvblJlc2V0TGFiZWw9e2xlZ2VuZC5vdmVycmlkZSAmJiAhZGlzYWJsZUVkaXQgPyBvblJlc2V0TGFiZWwgOiB1bmRlZmluZWR9XG4gICAgICAgICAgLz5cbiAgICAgICAgKSl9XG4gICAgICA8L1N0eWxlZExlZ2VuZD5cbiAgICApO1xuICB9O1xuXG4gIHJldHVybiBSZWFjdC5tZW1vKENvbG9yTGVnZW5kKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgQ29sb3JMZWdlbmRGYWN0b3J5O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUdBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLGlCQUFBLEdBQUFGLHVCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBRSxVQUFBLEdBQUFGLE9BQUE7QUFHQSxJQUFBRyxNQUFBLEdBQUFILE9BQUE7QUFRQSxJQUFBSSxNQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxrQkFBQSxHQUFBTCxPQUFBO0FBQWdELElBQUFNLGVBQUEsRUFBQUMsZ0JBQUEsRUFBQUMsZ0JBQUEsRUFBQUMsZ0JBQUEsRUFBQUMsZ0JBQUEsRUFBQUMsZ0JBQUEsRUFsQmhEO0FBQ0E7QUFBQSxTQUFBQyx5QkFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxtQkFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFBQUMsQ0FBQSxXQUFBQSxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxLQUFBRixDQUFBO0FBQUEsU0FBQWQsd0JBQUFjLENBQUEsRUFBQUUsQ0FBQSxTQUFBQSxDQUFBLElBQUFGLENBQUEsSUFBQUEsQ0FBQSxDQUFBSSxVQUFBLFNBQUFKLENBQUEsZUFBQUEsQ0FBQSxnQkFBQUssT0FBQSxDQUFBTCxDQUFBLDBCQUFBQSxDQUFBLHNCQUFBQSxDQUFBLFFBQUFHLENBQUEsR0FBQUosd0JB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
|
|
@@ -32,10 +32,10 @@ var _templateObject, _templateObject2; // SPDX-License-Identifier: MIT
|
|
|
32
32
|
// Copyright contributors to the kepler.gl project
|
|
33
33
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
34
34
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
|
35
|
-
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; }
|
|
36
|
-
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) { (0, _defineProperty2["default"])(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; }
|
|
37
35
|
function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
|
|
38
36
|
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
37
|
+
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; }
|
|
38
|
+
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) { (0, _defineProperty2["default"])(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; }
|
|
39
39
|
var defaultHeaderRowHeight = 55;
|
|
40
40
|
var defaultHeaderStatsControlHeight = 40;
|
|
41
41
|
var defaultRowHeight = 32;
|
|
@@ -135,7 +135,7 @@ var TableSection = exports.TableSection = function TableSection(_ref4) {
|
|
|
135
135
|
fixedWidth = _ref4.fixedWidth,
|
|
136
136
|
_ref4$fixedHeight = _ref4.fixedHeight,
|
|
137
137
|
fixedHeight = _ref4$fixedHeight === void 0 ? undefined : _ref4$fixedHeight,
|
|
138
|
-
|
|
138
|
+
_onScroll = _ref4.onScroll,
|
|
139
139
|
scrollTop = _ref4.scrollTop,
|
|
140
140
|
dataGridProps = _ref4.dataGridProps,
|
|
141
141
|
columnWidth = _ref4.columnWidth,
|
|
@@ -175,7 +175,11 @@ var TableSection = exports.TableSection = function TableSection(_ref4) {
|
|
|
175
175
|
height: headerGridProps.height + browserScrollBarWidth,
|
|
176
176
|
width: headerGridWidth,
|
|
177
177
|
scrollLeft: scrollLeft,
|
|
178
|
-
onScroll: onScroll
|
|
178
|
+
onScroll: function onScroll(args) {
|
|
179
|
+
return _onScroll === null || _onScroll === void 0 ? void 0 : _onScroll(_objectSpread(_objectSpread({}, args), {}, {
|
|
180
|
+
scrollTop: scrollTop !== null && scrollTop !== void 0 ? scrollTop : 0
|
|
181
|
+
}));
|
|
182
|
+
}
|
|
179
183
|
}))), /*#__PURE__*/_react["default"].createElement("div", {
|
|
180
184
|
className: (0, _classnames2["default"])('scroll-in-ui-thread', classList === null || classList === void 0 ? void 0 : classList.rows),
|
|
181
185
|
style: contentStyle
|
|
@@ -184,7 +188,7 @@ var TableSection = exports.TableSection = function TableSection(_ref4) {
|
|
|
184
188
|
}, dataGridProps, gridDimension, {
|
|
185
189
|
className: isPinned ? 'pinned-grid' : 'body-grid',
|
|
186
190
|
height: dataGridHeight - headerGridProps.height,
|
|
187
|
-
onScroll:
|
|
191
|
+
onScroll: _onScroll,
|
|
188
192
|
scrollLeft: scrollLeft,
|
|
189
193
|
scrollTop: scrollTop,
|
|
190
194
|
setGridRef: setGridRef
|
|
@@ -389,7 +393,7 @@ function DataTableFactory(HeaderCell) {
|
|
|
389
393
|
ref: this.root,
|
|
390
394
|
hasCustomScrollBarStyle: hasCustomScrollBarStyle
|
|
391
395
|
}, Object.keys(cellSizeCache).length ? /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_reactVirtualized.ScrollSync, null, function (_ref7) {
|
|
392
|
-
var
|
|
396
|
+
var _onScroll2 = _ref7.onScroll,
|
|
393
397
|
scrollLeft = _ref7.scrollLeft,
|
|
394
398
|
scrollTop = _ref7.scrollTop;
|
|
395
399
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
@@ -404,7 +408,7 @@ function DataTableFactory(HeaderCell) {
|
|
|
404
408
|
headerGridProps: headerGridProps,
|
|
405
409
|
fixedWidth: pinnedColumnsWidth,
|
|
406
410
|
onScroll: function onScroll(args) {
|
|
407
|
-
return
|
|
411
|
+
return _onScroll2(_objectSpread(_objectSpread({}, args), {}, {
|
|
408
412
|
scrollLeft: scrollLeft
|
|
409
413
|
}));
|
|
410
414
|
},
|
|
@@ -430,7 +434,7 @@ function DataTableFactory(HeaderCell) {
|
|
|
430
434
|
headerGridProps: headerGridProps,
|
|
431
435
|
fixedWidth: fixedWidth,
|
|
432
436
|
fixedHeight: fixedHeight,
|
|
433
|
-
onScroll:
|
|
437
|
+
onScroll: _onScroll2,
|
|
434
438
|
scrollTop: scrollTop,
|
|
435
439
|
scrollLeft: scrollLeft,
|
|
436
440
|
dataGridProps: dataGridProps,
|
|
@@ -464,4 +468,4 @@ function DataTableFactory(HeaderCell) {
|
|
|
464
468
|
return (0, _styledComponents.withTheme)(DataTable);
|
|
465
469
|
}
|
|
466
470
|
var _default = exports["default"] = DataTableFactory;
|
|
467
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcmVhY3RWaXJ0dWFsaXplZCIsIl9zdHlsZWRDb21wb25lbnRzIiwiX2NsYXNzbmFtZXMyIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9yZXNlbGVjdCIsIl9nZXQiLCJfZGVib3VuY2UiLCJfaWNvbnMiLCJfZ3JpZCIsIl9oZWFkZXJDZWxsIiwiX3V0aWxzIiwiX2NlbGxTaXplIiwiX2NvbnN0YW50cyIsIl90ZW1wbGF0ZU9iamVjdCIsIl90ZW1wbGF0ZU9iamVjdDIiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJfY2FsbFN1cGVyIiwiX2dldFByb3RvdHlwZU9mMiIsIl9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuMiIsIl9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QiLCJSZWZsZWN0IiwiY29uc3RydWN0IiwiY29uc3RydWN0b3IiLCJCb29sZWFuIiwicHJvdG90eXBlIiwidmFsdWVPZiIsImRlZmF1bHRIZWFkZXJSb3dIZWlnaHQiLCJkZWZhdWx0SGVhZGVyU3RhdHNDb250cm9sSGVpZ2h0IiwiZGVmYXVsdFJvd0hlaWdodCIsIm92ZXJzY2FuQ29sdW1uQ291bnQiLCJvdmVyc2NhblJvd0NvdW50IiwiYnJvd3NlclNjcm9sbEJhcldpZHRoIiwiZmllbGRUb0FsaWduUmlnaHQiLCJBTExfRklFTERfVFlQRVMiLCJpbnRlZ2VyIiwicmVhbCIsInBpbm5lZENsYXNzTGlzdCIsImhlYWRlciIsInJvd3MiLCJ1bnBpbm5lZENsYXNzTGlzdCIsIkNvbnRhaW5lciIsImV4cG9ydHMiLCJzdHlsZWQiLCJkaXYiLCJfdGFnZ2VkVGVtcGxhdGVMaXRlcmFsMiIsInByb3BzIiwidGhlbWUiLCJkYXRhVGFibGVUZXh0Q29sb3IiLCJoYXNDdXN0b21TY3JvbGxCYXJTdHlsZSIsIm1vZGFsU2Nyb2xsQmFyIiwiY2VsbEJvcmRlckNvbG9yIiwicGlubmVkR3JpZEJvcmRlckNvbG9yIiwiZXZlblJvd0JhY2tncm91bmQiLCJvZGRSb3dCYWNrZ3JvdW5kIiwiY2VsbFBhZGRpbmdTaWRlIiwiY2VsbEZvbnRTaXplIiwiZWRnZUNlbGxQYWRkaW5nU2lkZSIsImRlZmF1bHRDb2x1bW5XaWR0aCIsImNvbHVtbldpZHRoRnVuY3Rpb24iLCJjb2x1bW5zIiwiY2VsbFNpemVDYWNoZSIsImdob3N0IiwiX3JlZiIsImluZGV4IiwiZGVmYXVsdEdldFJvd0NlbGwiLCJfcmVmMiIsImZvcm1hdHRlciIsImRhdGFDb250YWluZXIiLCJjb2x1bW4iLCJjb2xNZXRhIiwicm93SW5kZXgiLCJzb3J0T3JkZXIiLCJyb3dJZHgiLCJ0eXBlIiwidmFsdWUiLCJ2YWx1ZUF0IiwiaW5kZXhPZiIsInVuZGVmaW5lZCIsInBhcnNlRmllbGRWYWx1ZSIsIlN0eWxlZFN0YXRzQ29udHJvbCIsImhlYWRlclN0YXRzQ29udHJvbEhlaWdodCIsInRvcCIsImZvbnRGYW1pbHlNZWRpdW0iLCJhY3RpdmVDb2xvciIsImhlYWRlckNlbGxTdGF0c0NvbnRyb2xCYWNrZ3JvdW5kIiwic2hvd1N0YXRzIiwiU3RhdHNDb250cm9sIiwiX3JlZjMiLCJ0b2dnbGVTaG93U3RhdHMiLCJjcmVhdGVFbGVtZW50Iiwib25DbGljayIsIkFycm93RG93biIsImhlaWdodCIsIlRhYmxlU2VjdGlvbiIsIl9yZWY0IiwiY2xhc3NMaXN0IiwiaXNQaW5uZWQiLCJoZWFkZXJHcmlkUHJvcHMiLCJmaXhlZFdpZHRoIiwiX3JlZjQkZml4ZWRIZWlnaHQiLCJmaXhlZEhlaWdodCIsIm9uU2Nyb2xsIiwic2Nyb2xsVG9wIiwiZGF0YUdyaWRQcm9wcyIsImNvbHVtbldpZHRoIiwiX3JlZjQkc2V0R3JpZFJlZiIsInNldEdyaWRSZWYiLCJoZWFkZXJDZWxsUmVuZGVyIiwiZGF0YUNlbGxSZW5kZXIiLCJfcmVmNCRzY3JvbGxMZWZ0Iiwic2Nyb2xsTGVmdCIsImhlYWRlckhlaWdodCIsImhlYWRlclN0eWxlIiwidXNlTWVtbyIsImNvbmNhdCIsImNvbnRlbnRTdHlsZSIsIkF1dG9TaXplciIsIl9yZWY1Iiwid2lkdGgiLCJncmlkRGltZW5zaW9uIiwiY29sdW1uQ291bnQiLCJoZWFkZXJHcmlkV2lkdGgiLCJkYXRhR3JpZEhlaWdodCIsIkZyYWdtZW50IiwiY2xhc3NOYW1lIiwiY2xhc3NuYW1lcyIsInN0eWxlIiwiX2V4dGVuZHMyIiwiY2VsbFJlbmRlcmVyIiwiRFVNTVlfU1RZTEUiLCJEYXRhVGFibGVGYWN0b3J5IiwiZGVwcyIsIkhlYWRlckNlbGxGYWN0b3J5IiwiSGVhZGVyQ2VsbCIsIkRhdGFUYWJsZSIsIl9Db21wb25lbnQiLCJfdGhpcyIsIl9jbGFzc0NhbGxDaGVjazIiLCJfbGVuIiwiYXJncyIsIkFycmF5IiwiX2tleSIsIm1vcmVPcHRpb25zQ29sdW1uIiwiY3JlYXRlUmVmIiwicGlubmVkQ29sdW1ucyIsImNyZWF0ZVNlbGVjdG9yIiwiaXNBcnJheSIsImMiLCJpbmNsdWRlcyIsImhhc01vdW50ZWQiLCJzZXRTdGF0ZSIsInN0YXRlIiwiX3RoaXMkcHJvcHMiLCJfdGhpcyRwcm9wcyRjZWxsU2l6ZUMiLCJwcm9wc0NhY2hlIiwiX3RoaXMkcHJvcHMkcGlubmVkQ29sIiwidW5waW5uZWRDb2x1bW5zIiwicm9vdCIsImN1cnJlbnQiLCJjbGllbnRXaWR0aCIsImFkanVzdFdpZHRoIiwiX3JlZjYiLCJhZGp1c3RDZWxsc1RvQ29udGFpbmVyIiwiZ2V0Q2VsbFNpemVDYWNoZSIsImRlYm91bmNlIiwiZG9TY2FsZUNlbGxzVG9XaWR0aCIsIl90aGlzJHByb3BzJGdldFJvd0NlbCIsImdldFJvd0NlbGwiLCJEYXRhQ2VsbFJlbmRlcmVyIiwiY2VsbEluZm8iLCJjb2x1bW5JbmRleCIsImtleSIsImlzR2hvc3QiLCJnZXRDb2x1bW5Gb3JtYXR0ZXIiLCJyb3dDZWxsIiwibGFzdFJvd0luZGV4IiwibnVtUm93cyIsImVuZENlbGwiLCJmaXJzdENlbGwiLCJib3R0b21DZWxsIiwiYWxpZ25SaWdodCIsIk51bWJlciIsImNlbGwiLCJ0aXRsZSIsIl9pbmhlcml0czIiLCJfY3JlYXRlQ2xhc3MyIiwiY29tcG9uZW50RGlkTW91bnQiLCJ3aW5kb3ciLCJhZGRFdmVudExpc3RlbmVyIiwic2NhbGVDZWxsc1RvV2lkdGgiLCJjb21wb25lbnREaWRVcGRhdGUiLCJwcmV2UHJvcHMiLCJjb21wb25lbnRXaWxsVW5tb3VudCIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJyZW5kZXJIZWFkZXJDZWxsIiwidG9nZ2xlTW9yZU9wdGlvbnMiLCJfdGhpczIiLCJIZWFkZXJDZWxsUmVuZGVyZXIiLCJyZW5kZXIiLCJfdGhpczMiLCJfdGhpcyRwcm9wczIiLCJfdGhpcyRwcm9wczIkcGlubmVkQ28iLCJfdGhpcyRwcm9wczIkdGhlbWUiLCJfdGhpcyRwcm9wczIkZml4ZWRIZWkiLCJoYXNTdGF0cyIsIl90aGlzJHN0YXRlIiwiX3RoaXMkc3RhdGUkY2VsbFNpemVDIiwidW5waW5uZWRDb2x1bW5zR2hvc3QiLCJfdG9Db25zdW1hYmxlQXJyYXkyIiwicGlubmVkQ29sdW1uc1dpZHRoIiwicmVkdWNlIiwiYWNjIiwidmFsIiwiaGFzUGlubmVkQ29sdW1ucyIsIl90aGVtZSRoZWFkZXJSb3dIZWlnaCIsImhlYWRlclJvd0hlaWdodCIsIl90aGVtZSRoZWFkZXJTdGF0c0NvbiIsIl90aGVtZSRoZWFkZXJSb3dXU3RhdCIsImhlYWRlclJvd1dTdGF0c0hlaWdodCIsIl90aGVtZSRyb3dIZWlnaHQiLCJyb3dIZWlnaHQiLCJyb3dDb3VudCIsInJlZiIsIlNjcm9sbFN5bmMiLCJfcmVmNyIsInBpbm5lZEdyaWQiLCJyZW5kZXJEYXRhQ2VsbCIsIm1hcmdpbkxlZnQiLCJ1bnBpbm5lZEdyaWQiLCJDb21wb25lbnQiLCJzb3J0Q29sdW1uIiwid2l0aFRoZW1lIiwiX2RlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbW9uL2RhdGEtdGFibGUvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCwge0NvbXBvbmVudCwgY3JlYXRlUmVmLCB1c2VNZW1vfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQge1Njcm9sbFN5bmMsIEF1dG9TaXplciwgT25TY3JvbGxQYXJhbXMsIEdyaWRQcm9wcywgSW5kZXh9IGZyb20gJ3JlYWN0LXZpcnR1YWxpemVkJztcbmltcG9ydCBzdHlsZWQsIHt3aXRoVGhlbWV9IGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCBjbGFzc25hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IHtjcmVhdGVTZWxlY3Rvcn0gZnJvbSAncmVzZWxlY3QnO1xuaW1wb3J0IGdldCBmcm9tICdsb2Rhc2gvZ2V0JztcbmltcG9ydCBkZWJvdW5jZSBmcm9tICdsb2Rhc2gvZGVib3VuY2UnO1xuaW1wb3J0IHtBcnJvd0Rvd259IGZyb20gJy4uL2ljb25zJztcblxuaW1wb3J0IHtDZWxsU2l6ZUNhY2hlfSBmcm9tICcuL2NlbGwtc2l6ZSc7XG5cbmltcG9ydCBHcmlkIGZyb20gJy4vZ3JpZCc7XG5pbXBvcnQgSGVhZGVyQ2VsbEZhY3RvcnkgZnJvbSAnLi9oZWFkZXItY2VsbCc7XG5cbmltcG9ydCB7Q29sTWV0YX0gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5pbXBvcnQge3BhcnNlRmllbGRWYWx1ZSwgZ2V0Q29sdW1uRm9ybWF0dGVyLCBEYXRhQ29udGFpbmVySW50ZXJmYWNlfSBmcm9tICdAa2VwbGVyLmdsL3V0aWxzJztcbmltcG9ydCB7YWRqdXN0Q2VsbHNUb0NvbnRhaW5lcn0gZnJvbSAnLi9jZWxsLXNpemUnO1xuXG5pbXBvcnQge0FMTF9GSUVMRF9UWVBFU30gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuXG5jb25zdCBkZWZhdWx0SGVhZGVyUm93SGVpZ2h0ID0gNTU7XG5jb25zdCBkZWZhdWx0SGVhZGVyU3RhdHNDb250cm9sSGVpZ2h0ID0gNDA7XG5jb25zdCBkZWZhdWx0Um93SGVpZ2h0ID0gMzI7XG5jb25zdCBvdmVyc2NhbkNvbHVtbkNvdW50ID0gMTA7XG5jb25zdCBvdmVyc2NhblJvd0NvdW50ID0gMTA7XG4vLyBUaGUgZGVmYXVsdCBzY3JvbGxiYXIgd2lkdGggY2FuIHJhbmdlIGFueXdoZXJlIGZyb20gMTJweCB0byAxN3B4XG5jb25zdCBicm93c2VyU2Nyb2xsQmFyV2lkdGggPSAxNztcbmNvbnN0IGZpZWxkVG9BbGlnblJpZ2h0ID0ge1xuICBbQUxMX0ZJRUxEX1RZUEVTLmludGVnZXJdOiB0cnVlLFxuICBbQUxMX0ZJRUxEX1RZUEVTLnJlYWxdOiB0cnVlXG59O1xuXG5jb25zdCBwaW5uZWRDbGFzc0xpc3QgPSB7XG4gIGhlYWRlcjogJ3Bpbm5lZC1jb2x1bW5zLS1oZWFkZXIgcGlubmVkLWdyaWQtY29udGFpbmVyJyxcbiAgcm93czogJ3Bpbm5lZC1jb2x1bW5zLS1yb3dzIHBpbm5lZC1ncmlkLWNvbnRhaW5lcidcbn07XG5cbmNvbnN0IHVucGlubmVkQ2xhc3NMaXN0ID0ge1xuICBoZWFkZXI6ICd1bnBpbm5lZC1jb2x1bW5zLS1oZWFkZXIgdW5waW5uZWQtZ3JpZC1jb250YWluZXInLFxuICByb3dzOiAndW5waW5uZWQtY29sdW1ucy0tcm93cyB1bnBpbm5lZC1ncmlkLWNvbnRhaW5lcidcbn07XG5cbnR5cGUgQ29udGFpbmVyUHJvcHMgPSB7XG4gIGhhc0N1c3RvbVNjcm9sbEJhclN0eWxlPzogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCBjb25zdCBDb250YWluZXIgPSBzdHlsZWQuZGl2PENvbnRhaW5lclByb3BzPmBcbiAgZGlzcGxheTogZmxleDtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBmbGV4LWdyb3c6IDE7XG4gIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmRhdGFUYWJsZVRleHRDb2xvcn07XG4gIHdpZHRoOiAxMDAlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIC5SZWFjdFZpcnR1YWxpemVkX19HcmlkOmZvY3VzLFxuICAuUmVhY3RWaXJ0dWFsaXplZF9fR3JpZDphY3RpdmUge1xuICAgIG91dGxpbmU6IDA7XG4gIH1cbiAgLmJvZHktZ3JpZCB7XG4gICAgJHtwcm9wcyA9PiBwcm9wcy5oYXNDdXN0b21TY3JvbGxCYXJTdHlsZSAmJiBwcm9wcy50aGVtZS5tb2RhbFNjcm9sbEJhcn1cbiAgfVxuXG4gIC5jZWxsIHtcbiAgICAmOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gICo6Zm9jdXMge1xuICAgIG91dGxpbmU6IDA7XG4gIH1cblxuICAucmVzdWx0cy10YWJsZS13cmFwcGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWluLWhlaWdodDogMTAwJTtcbiAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgIC5zY3JvbGwtaW4tdWktdGhyZWFkLnBpbm5lZC1jb2x1bW5zLS1oZWFkZXIge1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke3Byb3BzID0+IHByb3BzLnRoZW1lLmNlbGxCb3JkZXJDb2xvcn07XG4gICAgICBwYWRkaW5nLWJvdHRvbTogJHticm93c2VyU2Nyb2xsQmFyV2lkdGh9cHg7XG4gICAgfVxuICAgIC5zY3JvbGwtaW4tdWktdGhyZWFkLnVucGlubmVkLWNvbHVtbnMtLWhlYWRlciB7XG4gICAgICB3aWR0aDogMTAwdnc7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuY2VsbEJvcmRlckNvbG9yfTtcbiAgICAgIC8vIGxlYXZlIHJvb20gZm9yIHNjcm9sbGJhclxuICAgICAgcGFkZGluZy1ib3R0b206ICR7YnJvd3NlclNjcm9sbEJhcldpZHRofXB4O1xuICAgIH1cblxuICAgIC5zY3JvbGwtaW4tdWktdGhyZWFkOjphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIC5ncmlkLXJvdyB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICB9XG4gICAgLmdyaWQtY29sdW1uIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgZmxleDogMSAxIGF1dG87XG4gICAgfVxuICAgIC5waW5uZWQtZ3JpZC1jb250YWluZXIge1xuICAgICAgZmxleDogMCAwIDc1cHg7XG4gICAgICB6LWluZGV4OiAxMDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB0b3A6IDA7XG4gICAgICBib3JkZXItcmlnaHQ6IDJweCBzb2xpZCAke3Byb3BzID0+IHByb3BzLnRoZW1lLnBpbm5lZEdyaWRCb3JkZXJDb2xvcn07XG4gICAgfVxuICAgIC5ldmVuLXJvdyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmV2ZW5Sb3dCYWNrZ3JvdW5kfTtcbiAgICB9XG4gICAgLm9kZC1yb3cge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5vZGRSb3dCYWNrZ3JvdW5kfTtcbiAgICB9XG4gICAgLmNlbGwsXG4gICAgLmhlYWRlci1jZWxsIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIC8vIGhlYWRlciBib3JkZXIgaXMgcmVuZGVyZWQgYnkgaGVhZGVyIGNvbnRhaW5lclxuICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgIC5uLXNvcnQtaWR4IHtcbiAgICAgICAgZm9udC1zaXplOiA5cHg7XG4gICAgICB9XG4gICAgfVxuICAgIC5jZWxsIHtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke3Byb3BzID0+IHByb3BzLnRoZW1lLmNlbGxCb3JkZXJDb2xvcn07XG4gICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAke3Byb3BzID0+IHByb3BzLnRoZW1lLmNlbGxCb3JkZXJDb2xvcn07XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICBwYWRkaW5nOiAwICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuY2VsbFBhZGRpbmdTaWRlfXB4O1xuICAgICAgZm9udC1zaXplOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmNlbGxGb250U2l6ZX1weDtcblxuICAgICAgLnJlc3VsdC1saW5rIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgICAuY2VsbC5lbmQtY2VsbCxcbiAgICAuaGVhZGVyLWNlbGwuZW5kLWNlbGwge1xuICAgICAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICAgICAgcGFkZGluZy1yaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5jZWxsUGFkZGluZ1NpZGUgKyBwcm9wcy50aGVtZS5lZGdlQ2VsbFBhZGRpbmdTaWRlfXB4O1xuICAgIH1cbiAgICAuY2VsbC5maXJzdC1jZWxsLFxuICAgIC5oZWFkZXItY2VsbC5maXJzdC1jZWxsIHtcbiAgICAgIHBhZGRpbmctbGVmdDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5jZWxsUGFkZGluZ1NpZGUgKyBwcm9wcy50aGVtZS5lZGdlQ2VsbFBhZGRpbmdTaWRlfXB4O1xuICAgIH1cbiAgICAuY2VsbC5ib3R0b20tY2VsbCB7XG4gICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgIH1cbiAgICAuY2VsbC5hbGlnbi1yaWdodCB7XG4gICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgfVxuICB9XG5cbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgfVxuYDtcblxuY29uc3QgZGVmYXVsdENvbHVtbldpZHRoID0gMjAwO1xuXG5leHBvcnQgdHlwZSBTb3J0Q29sdW1uID0ge1xuICBjb2x1bW4/OiBzdHJpbmc7XG4gIG1vZGU/OiBzdHJpbmc7XG59O1xuXG5jb25zdCBjb2x1bW5XaWR0aEZ1bmN0aW9uID1cbiAgKGNvbHVtbnMsIGNlbGxTaXplQ2FjaGUsIGdob3N0PykgPT5cbiAgKHtpbmRleH0pID0+IHtcbiAgICByZXR1cm4gKGNvbHVtbnNbaW5kZXhdIHx8IHt9KS5naG9zdFxuICAgICAgPyBnaG9zdFxuICAgICAgOiBjZWxsU2l6ZUNhY2hlW2NvbHVtbnNbaW5kZXhdXSB8fCBkZWZhdWx0Q29sdW1uV2lkdGg7XG4gIH07XG5cbmludGVyZmFjZSBHZXRSb3dDZWxsUHJvcHMge1xuICBkYXRhQ29udGFpbmVyOiBEYXRhQ29udGFpbmVySW50ZXJmYWNlIHwgbnVsbDtcbiAgY29sdW1uczogKHN0cmluZyAmIHtnaG9zdD86IGJvb2xlYW59KVtdO1xuICBjb2x1bW46IHN0cmluZztcbiAgY29sTWV0YTtcbiAgcm93SW5kZXg6IG51bWJlcjtcbiAgc29ydE9yZGVyPzogbnVtYmVyW10gfCBudWxsO1xufVxuXG4vKlxuICogVGhpcyBpcyBhbiBhY2Nlc3NvciBtZXRob2QgdXNlZCB0byBnZW5lcmFsaXplIGdldHRpbmcgYSBjZWxsIGZyb20gYSBkYXRhIHJvd1xuICovXG5jb25zdCBkZWZhdWx0R2V0Um93Q2VsbCA9IChcbiAge2RhdGFDb250YWluZXIsIGNvbHVtbnMsIGNvbHVtbiwgY29sTWV0YSwgcm93SW5kZXgsIHNvcnRPcmRlcn06IEdldFJvd0NlbGxQcm9wcyxcbiAgZm9ybWF0dGVyXG4pID0+IHtcbiAgY29uc3Qgcm93SWR4ID0gc29ydE9yZGVyICYmIHNvcnRPcmRlci5sZW5ndGggPyBnZXQoc29ydE9yZGVyLCByb3dJbmRleCkgOiByb3dJbmRleDtcbiAgY29uc3Qge3R5cGV9ID0gY29sTWV0YVtjb2x1bW5dO1xuXG4gIGNvbnN0IHZhbHVlID0gZGF0YUNvbnRhaW5lcj8udmFsdWVBdChyb3dJZHgsIGNvbHVtbnMuaW5kZXhPZihjb2x1bW4pKTtcbiAgcmV0dXJuIHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09ICcnXG4gICAgPyAnJ1xuICAgIDogZm9ybWF0dGVyXG4gICAgPyBmb3JtYXR0ZXIodmFsdWUpXG4gICAgOiBwYXJzZUZpZWxkVmFsdWUodmFsdWUsIHR5cGUpO1xufTtcblxudHlwZSBTdGF0c0NvbnRyb2xQcm9wcyA9IHtcbiAgdG9wOiBudW1iZXI7XG4gIHNob3dTdGF0cz86IGJvb2xlYW47XG59O1xuXG5jb25zdCBTdHlsZWRTdGF0c0NvbnRyb2wgPSBzdHlsZWQuZGl2PFN0YXRzQ29udHJvbFByb3BzPmBcbiAgaGVpZ2h0OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmhlYWRlclN0YXRzQ29udHJvbEhlaWdodH1weDtcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6ICR7cHJvcHMgPT4gcHJvcHMudG9wfXB4O1xuICBmb250LWZhbWlseTogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5mb250RmFtaWx5TWVkaXVtfXB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmFjdGl2ZUNvbG9yfTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5oZWFkZXJDZWxsU3RhdHNDb250cm9sQmFja2dyb3VuZH07XG4gICY6aG92ZXIge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuXG4gID4gZGl2IHtcbiAgICBwYWRkaW5nOiAwcHggMjRweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICBzdmcge1xuICAgICAgbWFyZ2luLWxlZnQ6IDEycHg7XG4gICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC41cyBlYXNlO1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoJHtwcm9wcyA9PiAocHJvcHMuc2hvd1N0YXRzID8gMTgwIDogMCl9ZGVnKTtcbiAgICB9XG4gIH1cbmA7XG5cbmNvbnN0IFN0YXRzQ29udHJvbCA9ICh7XG4gIHRvcCxcbiAgc2hvd1N0YXRzLFxuICB0b2dnbGVTaG93U3RhdHNcbn06IHtcbiAgdG9wOiBudW1iZXI7XG4gIHNob3dTdGF0cz86IGJvb2xlYW47XG4gIHRvZ2dsZVNob3dTdGF0czogKCkgPT4gdm9pZDtcbn0pID0+IChcbiAgPFN0eWxlZFN0YXRzQ29udHJvbCB0b3A9e3RvcH0gc2hvd1N0YXRzPXtzaG93U3RhdHN9PlxuICAgIDxkaXYgb25DbGljaz17dG9nZ2xlU2hvd1N0YXRzfT5cbiAgICAgIHtzaG93U3RhdHMgPyAnSGlkZSBDb2x1bW4gU3RhdHMnIDogJ1Nob3cgQ29sdW1uIFN0YXRzJ31cbiAgICAgIDxBcnJvd0Rvd24gaGVpZ2h0PVwiMThweFwiIC8+XG4gICAgPC9kaXY+XG4gIDwvU3R5bGVkU3RhdHNDb250cm9sPlxuKTtcblxuaW50ZXJmYWNlIFRhYmxlU2VjdGlvblByb3BzIHtcbiAgY2xhc3NMaXN0Pzoge1xuICAgIGhlYWRlcjogc3RyaW5nO1xuICAgIHJvd3M6IHN0cmluZztcbiAgfTtcbiAgaXNQaW5uZWQ/OiBib29sZWFuO1xuICBjb2x1bW5zOiAoc3RyaW5nICYge2dob3N0PzogYm9vbGVhbn0pW107XG4gIGhlYWRlckdyaWRQcm9wcz87XG4gIGZpeGVkV2lkdGg/OiBudW1iZXIgfCBudWxsO1xuICBmaXhlZEhlaWdodD86IG51bWJlciB8IG51bGw7XG4gIG9uU2Nyb2xsPzogKHBhcmFtczogT25TY3JvbGxQYXJhbXMpID0+IHZvaWQ7XG4gIHNjcm9sbFRvcD86IG51bWJlcjtcbiAgZGF0YUdyaWRQcm9wczoge1xuICAgIHJvd0hlaWdodDogbnVtYmVyIHwgKChwYXJhbXM6IEluZGV4KSA9PiBudW1iZXIpO1xuICAgIHJvd0NvdW50OiBudW1iZXI7XG4gIH0gJiBQYXJ0aWFsPEdyaWRQcm9wcz47XG4gIGNvbHVtbldpZHRoPztcbiAgc2V0R3JpZFJlZj86IChyZWY6IEhUTUxEaXZFbGVtZW50IHwgbnVsbCkgPT4gdm9pZDtcbiAgaGVhZGVyQ2VsbFJlbmRlcj87XG4gIGRhdGFDZWxsUmVuZGVyPztcbiAgc2Nyb2xsTGVmdD86IG51bWJlcjtcbn1cblxuZXhwb3J0IGNvbnN0IFRhYmxlU2VjdGlvbiA9ICh7XG4gIGNsYXNzTGlzdCxcbiAgaXNQaW5uZWQsXG4gIGNvbHVtbnMsXG4gIGhlYWRlckdyaWRQcm9wcyxcbiAgZml4ZWRXaWR0aCxcbiAgZml4ZWRIZWlnaHQgPSB1bmRlZmluZWQsXG4gIG9uU2Nyb2xsLFxuICBzY3JvbGxUb3AsXG4gIGRhdGFHcmlkUHJvcHMsXG4gIGNvbHVtbldpZHRoLFxuICBzZXRHcmlkUmVmID0gdW5kZWZpbmVkLFxuICBoZWFkZXJDZWxsUmVuZGVyLFxuICBkYXRhQ2VsbFJlbmRlcixcbiAgc2Nyb2xsTGVmdCA9IDBcbn06IFRhYmxlU2VjdGlvblByb3BzKSA9PiB7XG4gIGNvbnN0IGhlYWRlckhlaWdodCA9IGhlYWRlckdyaWRQcm9wcy5oZWlnaHQ7XG5cbiAgY29uc3QgaGVhZGVyU3R5bGUgPSB1c2VNZW1vKFxuICAgICgpID0+ICh7XG4gICAgICBoZWlnaHQ6IGAke2hlYWRlckhlaWdodH1weGBcbiAgICB9KSxcbiAgICBbaGVhZGVySGVpZ2h0XVxuICApO1xuICBjb25zdCBjb250ZW50U3R5bGUgPSB1c2VNZW1vKFxuICAgICgpID0+ICh7XG4gICAgICB0b3A6IGAke2hlYWRlckhlaWdodH1weGBcbiAgICB9KSxcbiAgICBbaGVhZGVySGVpZ2h0XVxuICApO1xuXG4gIHJldHVybiAoXG4gICAgPEF1dG9TaXplcj5cbiAgICAgIHsoe3dpZHRoLCBoZWlnaHR9KSA9PiB7XG4gICAgICAgIGNvbnN0IGdyaWREaW1lbnNpb24gPSB7XG4gICAgICAgICAgY29sdW1uQ291bnQ6IGNvbHVtbnMubGVuZ3RoLFxuICAgICAgICAgIGNvbHVtbldpZHRoLFxuICAgICAgICAgIHdpZHRoOiBmaXhlZFdpZHRoIHx8IHdpZHRoXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGhlYWRlckdyaWRXaWR0aCA9IGZpeGVkV2lkdGggfHwgd2lkdGg7XG4gICAgICAgIGNvbnN0IGRhdGFHcmlkSGVpZ2h0ID0gZml4ZWRIZWlnaHQgfHwgaGVpZ2h0O1xuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc25hbWVzKCdzY3JvbGwtaW4tdWktdGhyZWFkJywgY2xhc3NMaXN0Py5oZWFkZXIpfVxuICAgICAgICAgICAgICBzdHlsZT17aGVhZGVyU3R5bGV9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxHcmlkXG4gICAgICAgICAgICAgICAgY2VsbFJlbmRlcmVyPXtoZWFkZXJDZWxsUmVuZGVyfVxuICAgICAgICAgICAgICAgIHsuLi5oZWFkZXJHcmlkUHJvcHN9XG4gICAgICAgICAgICAgICAgey4uLmdyaWREaW1lbnNpb259XG4gICAgICAgICAgICAgICAgaGVpZ2h0PXtoZWFkZXJHcmlkUHJvcHMuaGVpZ2h0ICsgYnJvd3NlclNjcm9sbEJhcldpZHRofVxuICAgICAgICAgICAgICAgIHdpZHRoPXtoZWFkZXJHcmlkV2lkdGh9XG4gICAgICAgICAgICAgICAgc2Nyb2xsTGVmdD17c2Nyb2xsTGVmdH1cbiAgICAgICAgICAgICAgICBvblNjcm9sbD17b25TY3JvbGx9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc25hbWVzKCdzY3JvbGwtaW4tdWktdGhyZWFkJywgY2xhc3NMaXN0Py5yb3dzKX1cbiAgICAgICAgICAgICAgc3R5bGU9e2NvbnRlbnRTdHlsZX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPEdyaWRcbiAgICAgICAgICAgICAgICBjZWxsUmVuZGVyZXI9e2RhdGFDZWxsUmVuZGVyfVxuICAgICAgICAgICAgICAgIHsuLi5kYXRhR3JpZFByb3BzfVxuICAgICAgICAgICAgICAgIHsuLi5ncmlkRGltZW5zaW9ufVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17aXNQaW5uZWQgPyAncGlubmVkLWdyaWQnIDogJ2JvZHktZ3JpZCd9XG4gICAgICAgICAgICAgICAgaGVpZ2h0PXtkYXRhR3JpZEhlaWdodCAtIGhlYWRlckdyaWRQcm9wcy5oZWlnaHR9XG4gICAgICAgICAgICAgICAgb25TY3JvbGw9e29uU2Nyb2xsfVxuICAgICAgICAgICAgICAgIHNjcm9sbExlZnQ9e3Njcm9sbExlZnR9XG4gICAgICAgICAgICAgICAgc2Nyb2xsVG9wPXtzY3JvbGxUb3B9XG4gICAgICAgICAgICAgICAgc2V0R3JpZFJlZj17c2V0R3JpZFJlZn1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvPlxuICAgICAgICApO1xuICAgICAgfX1cbiAgICA8L0F1dG9TaXplcj5cbiAgKTtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YVRhYmxlUHJvcHMge1xuICBkYXRhSWQ/OiBzdHJpbmc7XG4gIGhhc1N0YXRzPzogYm9vbGVhbjtcbiAgY2VsbFNpemVDYWNoZT86IENlbGxTaXplQ2FjaGU7XG4gIHBpbm5lZENvbHVtbnM/OiBzdHJpbmdbXTtcbiAgY29sdW1uczogKHN0cmluZyAmIHtnaG9zdD86IGJvb2xlYW59KVtdO1xuICBmaXhlZFdpZHRoPzogbnVtYmVyIHwgbnVsbDtcbiAgdGhlbWU/OiBhbnk7XG4gIGRhdGFDb250YWluZXI6IERhdGFDb250YWluZXJJbnRlcmZhY2UgfCBudWxsO1xuICBmaXhlZEhlaWdodD86IG51bWJlciB8IG51bGw7XG4gIGNvbE1ldGE6IENvbE1ldGE7XG4gIHNvcnRDb2x1bW46IFNvcnRDb2x1bW47XG4gIHNvcnRUYWJsZUNvbHVtbjogKGNvbHVtbjogc3RyaW5nLCBtb2RlPzogc3RyaW5nKSA9PiB2b2lkO1xuICBwaW5UYWJsZUNvbHVtbjogKGNvbHVtbjogc3RyaW5nKSA9PiB2b2lkO1xuICBzZXRDb2x1bW5EaXNwbGF5Rm9ybWF0PzogKGZvcm1hdHM6IHtba2V5OiBzdHJpbmddOiBzdHJpbmd9KSA9PiB2b2lkO1xuICBjb3B5VGFibGVDb2x1bW46IChjb2x1bW46IHN0cmluZykgPT4gdm9pZDtcbiAgc29ydE9yZGVyPzogbnVtYmVyW10gfCBudWxsO1xuICBzaG93U3RhdHM/OiBib29sZWFuO1xuICBoYXNDdXN0b21TY3JvbGxCYXJTdHlsZT86IGJvb2xlYW47XG4gIGdldFJvd0NlbGw/OiAocmVuZGVyRGF0YUNlbGxQcm9wczogR2V0Um93Q2VsbFByb3BzLCBmb3JtYXR0ZXI6IGFueSkgPT4gc3RyaW5nIHwgbnVtYmVyO1xufVxuXG5pbnRlcmZhY2UgRGF0YVRhYmxlU3RhdGUge1xuICBjZWxsU2l6ZUNhY2hlPzogQ2VsbFNpemVDYWNoZTtcbiAgbW9yZU9wdGlvbnNDb2x1bW4/O1xuICBnaG9zdD87XG4gIHNob3dTdGF0cz86IGJvb2xlYW47XG59XG5cbmNvbnN0IERVTU1ZX1NUWUxFID0ge307XG5cbkRhdGFUYWJsZUZhY3RvcnkuZGVwcyA9IFtIZWFkZXJDZWxsRmFjdG9yeV07XG5mdW5jdGlvbiBEYXRhVGFibGVGYWN0b3J5KFxuICBIZWFkZXJDZWxsOiBSZXR1cm5UeXBlPHR5cGVvZiBIZWFkZXJDZWxsRmFjdG9yeT5cbik6IFJlYWN0LkNvbXBvbmVudFR5cGU8RGF0YVRhYmxlUHJvcHM+IHtcbiAgY2xhc3MgRGF0YVRhYmxlIGV4dGVuZHMgQ29tcG9uZW50PERhdGFUYWJsZVByb3BzLCBEYXRhVGFibGVTdGF0ZT4ge1xuICAgIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgICBkYXRhQ29udGFpbmVyOiBudWxsLFxuICAgICAgcGlubmVkQ29sdW1uczogW10sXG4gICAgICBjb2xNZXRhOiB7fSxcbiAgICAgIGNlbGxTaXplQ2FjaGU6IHt9LFxuICAgICAgc29ydENvbHVtbjoge30sXG4gICAgICBmaXhlZFdpZHRoOiBudWxsLFxuICAgICAgZml4ZWRIZWlnaHQ6IG51bGwsXG4gICAgICB0aGVtZToge30sXG4gICAgICBoYXNTdGF0czogZmFsc2UsXG4gICAgICBoYXNDdXN0b21TY3JvbGxCYXJTdHlsZTogdHJ1ZVxuICAgIH07XG5cbiAgICBwaW5uZWRHcmlkOiBIVE1MRGl2RWxlbWVudCB8IG51bGwgPSBudWxsO1xuICAgIHVucGlubmVkR3JpZDogSFRNTERpdkVsZW1lbnQgfCBudWxsID0gbnVsbDtcbiAgICBoYXNNb3VudGVkID0gZmFsc2U7XG5cbiAgICBzdGF0ZTogRGF0YVRhYmxlU3RhdGUgPSB7XG4gICAgICBjZWxsU2l6ZUNhY2hlOiB7fSxcbiAgICAgIG1vcmVPcHRpb25zQ29sdW1uOiBudWxsLFxuICAgICAgc2hvd1N0YXRzOiB0cnVlXG4gICAgfTtcblxuICAgIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgICAgdGhpcy5oYXNNb3VudGVkID0gdHJ1ZTtcbiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCB0aGlzLnNjYWxlQ2VsbHNUb1dpZHRoKTtcbiAgICAgIHRoaXMuc2NhbGVDZWxsc1RvV2lkdGgoKTtcbiAgICB9XG5cbiAgICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgICBpZiAoXG4gICAgICAgIHRoaXMucHJvcHMuY2VsbFNpemVDYWNoZSAhPT0gcHJldlByb3BzLmNlbGxTaXplQ2FjaGUgfHxcbiAgICAgICAgdGhpcy5wcm9wcy5waW5uZWRDb2x1bW5zICE9PSBwcmV2UHJvcHMucGlubmVkQ29sdW1uc1xuICAgICAgKSB7XG4gICAgICAgIHRoaXMuc2NhbGVDZWxsc1RvV2lkdGgoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICAgIHRoaXMuaGFzTW91bnRlZCA9IGZhbHNlO1xuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMuc2NhbGVDZWxsc1RvV2lkdGgpO1xuICAgIH1cblxuICAgIHJvb3QgPSBjcmVhdGVSZWY8SFRNTERpdkVsZW1lbnQ+KCk7XG4gICAgY29sdW1ucyA9IChwcm9wczogRGF0YVRhYmxlUHJvcHMpID0+IHByb3BzLmNvbHVtbnM7XG4gICAgcGlubmVkQ29sdW1ucyA9IChwcm9wczogRGF0YVRhYmxlUHJvcHMpID0+IHByb3BzLnBpbm5lZENvbHVtbnM7XG4gICAgdW5waW5uZWRDb2x1bW5zID0gY3JlYXRlU2VsZWN0b3IodGhpcy5jb2x1bW5zLCB0aGlzLnBpbm5lZENvbHVtbnMsIChjb2x1bW5zLCBwaW5uZWRDb2x1bW5zKSA9PlxuICAgICAgIUFycmF5LmlzQXJyYXkocGlubmVkQ29sdW1ucykgPyBjb2x1bW5zIDogY29sdW1ucy5maWx0ZXIoYyA9PiAhcGlubmVkQ29sdW1ucy5pbmNsdWRlcyhjKSlcbiAgICApO1xuXG4gICAgdG9nZ2xlTW9yZU9wdGlvbnMgPSBtb3JlT3B0aW9uc0NvbHVtbiA9PiB7XG4gICAgICBpZiAodGhpcy5oYXNNb3VudGVkKVxuICAgICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICBtb3JlT3B0aW9uc0NvbHVtbjpcbiAgICAgICAgICAgIHRoaXMuc3RhdGUubW9yZU9wdGlvbnNDb2x1bW4gPT09IG1vcmVPcHRpb25zQ29sdW1uID8gbnVsbCA6IG1vcmVPcHRpb25zQ29sdW1uXG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgdG9nZ2xlU2hvd1N0YXRzID0gKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuaGFzTW91bnRlZCkgdGhpcy5zZXRTdGF0ZSh7c2hvd1N0YXRzOiAhdGhpcy5zdGF0ZS5zaG93U3RhdHN9KTtcbiAgICB9O1xuICAgIGdldENlbGxTaXplQ2FjaGUgPSAoKSA9PiB7XG4gICAgICBjb25zdCB7Y2VsbFNpemVDYWNoZTogcHJvcHNDYWNoZSA9IHt9LCBmaXhlZFdpZHRoLCBwaW5uZWRDb2x1bW5zID0gW119ID0gdGhpcy5wcm9wcztcbiAgICAgIGNvbnN0IHVucGlubmVkQ29sdW1ucyA9IHRoaXMudW5waW5uZWRDb2x1bW5zKHRoaXMucHJvcHMpO1xuXG4gICAgICBjb25zdCB3aWR0aCA9IGZpeGVkV2lkdGggPyBmaXhlZFdpZHRoIDogdGhpcy5yb290LmN1cnJlbnQgPyB0aGlzLnJvb3QuY3VycmVudC5jbGllbnRXaWR0aCA6IDA7XG5cbiAgICAgIC8vIHBpbiBjb2x1bW4gYm9yZGVyIGlzIDIgcGl4ZWwgdnMgMSBwaXhlbFxuICAgICAgY29uc3QgYWRqdXN0V2lkdGggPSBwaW5uZWRDb2x1bW5zLmxlbmd0aCA/IHdpZHRoIC0gMSA6IHdpZHRoO1xuICAgICAgY29uc3Qge2NlbGxTaXplQ2FjaGUsIGdob3N0fSA9IGFkanVzdENlbGxzVG9Db250YWluZXIoXG4gICAgICAgIGFkanVzdFdpZHRoLFxuICAgICAgICBwcm9wc0NhY2hlLFxuICAgICAgICBwaW5uZWRDb2x1bW5zLFxuICAgICAgICB1bnBpbm5lZENvbHVtbnNcbiAgICAgICkgYXMge2NlbGxTaXplQ2FjaGU6IENlbGxTaXplQ2FjaGU7IGdob3N0OiBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkfTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY2VsbFNpemVDYWNoZSxcbiAgICAgICAgZ2hvc3RcbiAgICAgIH07XG4gICAgfTtcblxuICAgIGRvU2NhbGVDZWxsc1RvV2lkdGggPSAoKSA9PiB7XG4gICAgICBpZiAodGhpcy5oYXNNb3VudGVkKSB0aGlzLnNldFN0YXRlKHRoaXMuZ2V0Q2VsbFNpemVDYWNoZSgpKTtcbiAgICB9O1xuXG4gICAgc2NhbGVDZWxsc1RvV2lkdGggPSBkZWJvdW5jZSh0aGlzLmRvU2NhbGVDZWxsc1RvV2lkdGgsIDMwMCk7XG5cbiAgICByZW5kZXJEYXRhQ2VsbCA9IChjb2x1bW5zLCBpc1Bpbm5lZCwgcHJvcHM6IERhdGFUYWJsZVByb3BzKSA9PiB7XG4gICAgICBjb25zdCBnZXRSb3dDZWxsID0gdGhpcy5wcm9wcy5nZXRSb3dDZWxsID8/IGRlZmF1bHRHZXRSb3dDZWxsO1xuICAgICAgY29uc3QgRGF0YUNlbGxSZW5kZXJlciA9IGNlbGxJbmZvID0+IHtcbiAgICAgICAgY29uc3Qge2NvbHVtbkluZGV4LCBrZXksIHN0eWxlLCByb3dJbmRleH0gPSBjZWxsSW5mbztcbiAgICAgICAgY29uc3Qge2RhdGFDb250YWluZXIsIGNvbE1ldGF9ID0gcHJvcHM7XG4gICAgICAgIGNvbnN0IGNvbHVtbiA9IGNvbHVtbnNbY29sdW1uSW5kZXhdO1xuICAgICAgICBjb25zdCBpc0dob3N0ID0gY29sdW1uLmdob3N0O1xuXG4gICAgICAgIGNvbnN0IGZvcm1hdHRlciA9IGlzR2hvc3QgPyBudWxsIDogZ2V0Q29sdW1uRm9ybWF0dGVyKGNvbE1ldGFbY29sdW1uXSk7XG4gICAgICAgIGNvbnN0IHJvd0NlbGwgPSBpc0dob3N0ID8gJycgOiBnZXRSb3dDZWxsKHsuLi5wcm9wcywgY29sdW1uLCByb3dJbmRleH0sIGZvcm1hdHRlcik7XG4gICAgICAgIGNvbnN0IHR5cGUgPSBpc0dob3N0ID8gbnVsbCA6IGNvbE1ldGFbY29sdW1uXS50eXBlO1xuXG4gICAgICAgIGNvbnN0IGxhc3RSb3dJbmRleCA9IGRhdGFDb250YWluZXIgPyBkYXRhQ29udGFpbmVyLm51bVJvd3MoKSAtIDEgOiAwO1xuXG4gICAgICAgIGNvbnN0IGVuZENlbGwgPSBjb2x1bW5JbmRleCA9PT0gY29sdW1ucy5sZW5ndGggLSAxO1xuICAgICAgICBjb25zdCBmaXJzdENlbGwgPSBjb2x1bW5JbmRleCA9PT0gMDtcbiAgICAgICAgY29uc3QgYm90dG9tQ2VsbCA9IHJvd0luZGV4ID09PSBsYXN0Um93SW5kZXg7XG4gICAgICAgIGNvbnN0IGFsaWduUmlnaHQgPSBmaWVsZFRvQWxpZ25SaWdodFtOdW1iZXIodHlwZSldO1xuXG4gICAgICAgIGNvbnN0IGNlbGwgPSAoXG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc25hbWVzKCdjZWxsJywge1xuICAgICAgICAgICAgICBbcm93SW5kZXggJSAyID09PSAwID8gJ2V2ZW4tcm93JyA6ICdvZGQtcm93J106IHRydWUsXG4gICAgICAgICAgICAgIFtgcm93LSR7cm93SW5kZXh9YF06IHRydWUsXG4gICAgICAgICAgICAgICdwaW5uZWQtY2VsbCc6IGlzUGlubmVkLFxuICAgICAgICAgICAgICAnZmlyc3QtY2VsbCc6IGZpcnN0Q2VsbCxcbiAgICAgICAgICAgICAgJ2VuZC1jZWxsJzogZW5kQ2VsbCxcbiAgICAgICAgICAgICAgJ2JvdHRvbS1jZWxsJzogYm90dG9tQ2VsbCxcbiAgICAgICAgICAgICAgJ2FsaWduLXJpZ2h0JzogYWxpZ25SaWdodFxuICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICBrZXk9e2tleX1cbiAgICAgICAgICAgIHN0eWxlPXtzdHlsZX1cbiAgICAgICAgICAgIHRpdGxlPXtpc0dob3N0ID8gdW5kZWZpbmVkIDogcm93Q2VsbH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7YCR7cm93Q2VsbH0ke2VuZENlbGwgPyAnXFxuJyA6ICdcXHQnfWB9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICk7XG5cbiAgICAgICAgcmV0dXJuIGNlbGw7XG4gICAgICB9O1xuICAgICAgcmV0dXJuIERhdGFDZWxsUmVuZGVyZXI7XG4gICAgfTtcblxuICAgIHJlbmRlckhlYWRlckNlbGwoY29sdW1ucywgaXNQaW5uZWQsIHByb3BzLCB0b2dnbGVNb3JlT3B0aW9ucywgbW9yZU9wdGlvbnNDb2x1bW4pIHtcbiAgICAgIGNvbnN0IEhlYWRlckNlbGxSZW5kZXJlciA9IGNlbGxJbmZvID0+IChcbiAgICAgICAgPEhlYWRlckNlbGxcbiAgICAgICAgICBjZWxsSW5mbz17Y2VsbEluZm99XG4gICAgICAgICAga2V5PXtjZWxsSW5mby5jb2x1bW5JbmRleH1cbiAgICAgICAgICBjb2x1bW5zPXtjb2x1bW5zfVxuICAgICAgICAgIGlzUGlubmVkPXtpc1Bpbm5lZH1cbiAgICAgICAgICBzaG93U3RhdHM9e3RoaXMuc3RhdGUuc2hvd1N0YXRzfVxuICAgICAgICAgIHByb3BzPXtwcm9wc31cbiAgICAgICAgICB0b2dnbGVNb3JlT3B0aW9ucz17dG9nZ2xlTW9yZU9wdGlvbnN9XG4gICAgICAgICAgbW9yZU9wdGlvbnNDb2x1bW49e21vcmVPcHRpb25zQ29sdW1ufVxuICAgICAgICAgIC8vIHBhc3MgZHVtbXkgc3R5bGUgdG8gcHJldmVudCB3YXJuaW5ncyBmcm9tIHJlYWN0LXZpcnR1YWxpemVkIEdyaWRcbiAgICAgICAgICBzdHlsZT17RFVNTVlfU1RZTEV9XG4gICAgICAgIC8+XG4gICAgICApO1xuICAgICAgcmV0dXJuIEhlYWRlckNlbGxSZW5kZXJlcjtcbiAgICB9XG4gICAgcmVuZGVyKCkge1xuICAgICAgY29uc3Qge1xuICAgICAgICBkYXRhQ29udGFpbmVyLFxuICAgICAgICBwaW5uZWRDb2x1bW5zID0gW10sXG4gICAgICAgIHRoZW1lID0ge30sXG4gICAgICAgIGZpeGVkV2lkdGgsXG4gICAgICAgIGZpeGVkSGVpZ2h0ID0gMCxcbiAgICAgICAgaGFzU3RhdHMsXG4gICAgICAgIGhhc0N1c3RvbVNjcm9sbEJhclN0eWxlXG4gICAgICB9ID0gdGhpcy5wcm9wcztcbiAgICAgIGNvbnN0IHVucGlubmVkQ29sdW1ucyA9IHRoaXMudW5waW5uZWRDb2x1bW5zKHRoaXMucHJvcHMpO1xuXG4gICAgICBjb25zdCB7Y2VsbFNpemVDYWNoZSA9IHt9LCBtb3JlT3B0aW9uc0NvbHVtbiwgZ2hvc3QsIHNob3dTdGF0c30gPSB0aGlzLnN0YXRlO1xuICAgICAgY29uc3QgdW5waW5uZWRDb2x1bW5zR2hvc3QgPSBnaG9zdFxuICAgICAgICA/IFsuLi51bnBpbm5lZENvbHVtbnMsIHtnaG9zdDogdHJ1ZX0gYXMgc3RyaW5nICYge2dob3N0OiBib29sZWFufV1cbiAgICAgICAgOiB1bnBpbm5lZENvbHVtbnM7XG4gICAgICBjb25zdCBwaW5uZWRDb2x1bW5zV2lkdGggPSBwaW5uZWRDb2x1bW5zLnJlZHVjZShcbiAgICAgICAgKGFjYywgdmFsKSA9PiBhY2MgKyAoZ2V0KGNlbGxTaXplQ2FjaGUsIHZhbCwgMCkgYXMgbnVtYmVyKSxcbiAgICAgICAgMFxuICAgICAgKTtcblxuICAgICAgY29uc3QgaGFzUGlubmVkQ29sdW1ucyA9IEJvb2xlYW4ocGlubmVkQ29sdW1ucy5sZW5ndGgpO1xuICAgICAgY29uc3Qge1xuICAgICAgICBoZWFkZXJSb3dIZWlnaHQgPSBkZWZhdWx0SGVhZGVyUm93SGVpZ2h0LFxuICAgICAgICBoZWFkZXJTdGF0c0NvbnRyb2xIZWlnaHQgPSBkZWZhdWx0SGVhZGVyU3RhdHNDb250cm9sSGVpZ2h0LFxuICAgICAgICBoZWFkZXJSb3dXU3RhdHNIZWlnaHQgPSBkZWZhdWx0SGVhZGVyUm93SGVpZ2h0LFxuICAgICAgICByb3dIZWlnaHQgPSBkZWZhdWx0Um93SGVpZ2h0XG4gICAgICB9ID0gdGhlbWU7XG5cbiAgICAgIGNvbnN0IGhlYWRlckdyaWRQcm9wcyA9IHtcbiAgICAgICAgY2VsbFNpemVDYWNoZSxcbiAgICAgICAgY2xhc3NOYW1lOiAnaGVhZGVyLWdyaWQnLFxuICAgICAgICBoZWlnaHQ6ICFoYXNTdGF0c1xuICAgICAgICAgID8gaGVhZGVyUm93SGVpZ2h0XG4gICAgICAgICAgOiBzaG93U3RhdHNcbiAgICAgICAgICA/IGhlYWRlclJvd1dTdGF0c0hlaWdodFxuICAgICAgICAgIDogaGVhZGVyUm93SGVpZ2h0ICsgaGVhZGVyU3RhdHNDb250cm9sSGVpZ2h0LFxuICAgICAgICByb3dDb3VudDogMSxcbiAgICAgICAgcm93SGVpZ2h0OiAhaGFzU3RhdHNcbiAgICAgICAgICA/IGhlYWRlclJvd0hlaWdodFxuICAgICAgICAgIDogc2hvd1N0YXRzXG4gICAgICAgICAgPyBoZWFkZXJSb3dXU3RhdHNIZWlnaHRcbiAgICAgICAgICA6IGhlYWRlclJvd0hlaWdodCArIGhlYWRlclN0YXRzQ29udHJvbEhlaWdodFxuICAgICAgfTtcblxuICAgICAgY29uc3QgZGF0YUdyaWRQcm9wcyA9IHtcbiAgICAgICAgY2VsbFNpemVDYWNoZSxcbiAgICAgICAgb3ZlcnNjYW5Db2x1bW5Db3VudCxcbiAgICAgICAgb3ZlcnNjYW5Sb3dDb3VudCxcbiAgICAgICAgcm93Q291bnQ6IGRhdGFDb250YWluZXIgPyBkYXRhQ29udGFpbmVyLm51bVJvd3MoKSA6IDAsXG4gICAgICAgIHJvd0hlaWdodFxuICAgICAgfTtcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgIGNsYXNzTmFtZT1cImRhdGEtdGFibGUtY29udGFpbmVyXCJcbiAgICAgICAgICByZWY9e3RoaXMucm9vdH1cbiAgICAgICAgICBoYXNDdXN0b21TY3JvbGxCYXJTdHlsZT17aGFzQ3VzdG9tU2Nyb2xsQmFyU3R5bGV9XG4gICAgICAgID5cbiAgICAgICAgICB7T2JqZWN0LmtleXMoY2VsbFNpemVDYWNoZSkubGVuZ3RoID8gKFxuICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgPFNjcm9sbFN5bmM+XG4gICAgICAgICAgICAgICAgeyh7b25TY3JvbGwsIHNjcm9sbExlZnQsIHNjcm9sbFRvcH0pID0+IHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicmVzdWx0cy10YWJsZS13cmFwcGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAge2hhc1Bpbm5lZENvbHVtbnMgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBrZXk9XCJwaW5uZWQtY29sdW1uc1wiIGNsYXNzTmFtZT1cInBpbm5lZC1jb2x1bW5zIGdyaWQtcm93XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxUYWJsZVNlY3Rpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc0xpc3Q9e3Bpbm5lZENsYXNzTGlzdH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1Bpbm5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbnM9e3Bpbm5lZENvbHVtbnN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyR3JpZFByb3BzPXtoZWFkZXJHcmlkUHJvcHN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZml4ZWRXaWR0aD17cGlubmVkQ29sdW1uc1dpZHRofVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uU2Nyb2xsPXthcmdzID0+IG9uU2Nyb2xsKHsuLi5hcmdzLCBzY3JvbGxMZWZ0fSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Nyb2xsVG9wPXtzY3JvbGxUb3B9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Nyb2xsTGVmdD17c2Nyb2xsTGVmdH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhR3JpZFByb3BzPXtkYXRhR3JpZFByb3BzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldEdyaWRSZWY9e3Bpbm5lZEdyaWQgPT4gKHRoaXMucGlubmVkR3JpZCA9IHBpbm5lZEdyaWQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbldpZHRoPXtjb2x1bW5XaWR0aEZ1bmN0aW9uKHBpbm5lZENvbHVtbnMsIGNlbGxTaXplQ2FjaGUpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlckNlbGxSZW5kZXI9e3RoaXMucmVuZGVySGVhZGVyQ2VsbChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBpbm5lZENvbHVtbnMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudG9nZ2xlTW9yZU9wdGlvbnMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb3JlT3B0aW9uc0NvbHVtblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YUNlbGxSZW5kZXI9e3RoaXMucmVuZGVyRGF0YUNlbGwocGlubmVkQ29sdW1ucywgdHJ1ZSwgdGhpcy5wcm9wcyl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleT1cInVucGlubmVkLWNvbHVtbnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luTGVmdDogYCR7aGFzUGlubmVkQ29sdW1ucyA/IGAke3Bpbm5lZENvbHVtbnNXaWR0aH1weGAgOiAnMCd9YFxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInVucGlubmVkLWNvbHVtbnMgZ3JpZC1jb2x1bW5cIlxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxUYWJsZVNlY3Rpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NMaXN0PXt1bnBpbm5lZENsYXNzTGlzdH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgaXNQaW5uZWQ9e2ZhbHNlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5zPXt1bnBpbm5lZENvbHVtbnNHaG9zdH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyR3JpZFByb3BzPXtoZWFkZXJHcmlkUHJvcHN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGZpeGVkV2lkdGg9e2ZpeGVkV2lkdGh9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGZpeGVkSGVpZ2h0PXtmaXhlZEhlaWdodH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25TY3JvbGw9e29uU2Nyb2xsfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGxUb3A9e3Njcm9sbFRvcH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2Nyb2xsTGVmdD17c2Nyb2xsTGVmdH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YUdyaWRQcm9wcz17ZGF0YUdyaWRQcm9wc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0R3JpZFJlZj17dW5waW5uZWRHcmlkID0+ICh0aGlzLnVucGlubmVkR3JpZCA9IHVucGlubmVkR3JpZCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbldpZHRoPXtjb2x1bW5XaWR0aEZ1bmN0aW9uKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVucGlubmVkQ29sdW1uc0dob3N0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGxTaXplQ2FjaGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2hvc3RcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyQ2VsbFJlbmRlcj17dGhpcy5yZW5kZXJIZWFkZXJDZWxsKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVucGlubmVkQ29sdW1uc0dob3N0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50b2dnbGVNb3JlT3B0aW9ucyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb3JlT3B0aW9uc0NvbHVtblxuICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhQ2VsbFJlbmRlcj17dGhpcy5yZW5kZXJEYXRhQ2VsbChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnBpbm5lZENvbHVtbnNHaG9zdCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPC9TY3JvbGxTeW5jPlxuICAgICAgICAgICAgICB7aGFzU3RhdHMgPyAoXG4gICAgICAgICAgICAgICAgPFN0YXRzQ29udHJvbFxuICAgICAgICAgICAgICAgICAgdG9wPXtoZWFkZXJSb3dIZWlnaHR9XG4gICAgICAgICAgICAgICAgICBzaG93U3RhdHM9e3Nob3dTdGF0c31cbiAgICAgICAgICAgICAgICAgIHRvZ2dsZVNob3dTdGF0cz17dGhpcy50b2dnbGVTaG93U3RhdHN9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8Lz5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9Db250YWluZXI+XG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB3aXRoVGhlbWUoRGF0YVRhYmxlIGFzIFJlYWN0LkNvbXBvbmVudFR5cGU8RGF0YVRhYmxlUHJvcHM+KTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgRGF0YVRhYmxlRmFjdG9yeTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxpQkFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsaUJBQUEsR0FBQUgsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFHLFlBQUEsR0FBQUMsc0JBQUEsQ0FBQUosT0FBQTtBQUNBLElBQUFLLFNBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLElBQUEsR0FBQUYsc0JBQUEsQ0FBQUosT0FBQTtBQUNBLElBQUFPLFNBQUEsR0FBQUgsc0JBQUEsQ0FBQUosT0FB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
|
|
471
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcmVhY3RWaXJ0dWFsaXplZCIsIl9zdHlsZWRDb21wb25lbnRzIiwiX2NsYXNzbmFtZXMyIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9yZXNlbGVjdCIsIl9nZXQiLCJfZGVib3VuY2UiLCJfaWNvbnMiLCJfZ3JpZCIsIl9oZWFkZXJDZWxsIiwiX3V0aWxzIiwiX2NlbGxTaXplIiwiX2NvbnN0YW50cyIsIl90ZW1wbGF0ZU9iamVjdCIsIl90ZW1wbGF0ZU9iamVjdDIiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJfY2FsbFN1cGVyIiwibyIsIl9nZXRQcm90b3R5cGVPZjIiLCJfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybjIiLCJfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0IiwiUmVmbGVjdCIsImNvbnN0cnVjdCIsImNvbnN0cnVjdG9yIiwiYXBwbHkiLCJCb29sZWFuIiwicHJvdG90eXBlIiwidmFsdWVPZiIsIm93bktleXMiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiZmlsdGVyIiwiZW51bWVyYWJsZSIsInB1c2giLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsImRlZmF1bHRIZWFkZXJSb3dIZWlnaHQiLCJkZWZhdWx0SGVhZGVyU3RhdHNDb250cm9sSGVpZ2h0IiwiZGVmYXVsdFJvd0hlaWdodCIsIm92ZXJzY2FuQ29sdW1uQ291bnQiLCJvdmVyc2NhblJvd0NvdW50IiwiYnJvd3NlclNjcm9sbEJhcldpZHRoIiwiZmllbGRUb0FsaWduUmlnaHQiLCJBTExfRklFTERfVFlQRVMiLCJpbnRlZ2VyIiwicmVhbCIsInBpbm5lZENsYXNzTGlzdCIsImhlYWRlciIsInJvd3MiLCJ1bnBpbm5lZENsYXNzTGlzdCIsIkNvbnRhaW5lciIsImV4cG9ydHMiLCJzdHlsZWQiLCJkaXYiLCJfdGFnZ2VkVGVtcGxhdGVMaXRlcmFsMiIsInByb3BzIiwidGhlbWUiLCJkYXRhVGFibGVUZXh0Q29sb3IiLCJoYXNDdXN0b21TY3JvbGxCYXJTdHlsZSIsIm1vZGFsU2Nyb2xsQmFyIiwiY2VsbEJvcmRlckNvbG9yIiwicGlubmVkR3JpZEJvcmRlckNvbG9yIiwiZXZlblJvd0JhY2tncm91bmQiLCJvZGRSb3dCYWNrZ3JvdW5kIiwiY2VsbFBhZGRpbmdTaWRlIiwiY2VsbEZvbnRTaXplIiwiZWRnZUNlbGxQYWRkaW5nU2lkZSIsImRlZmF1bHRDb2x1bW5XaWR0aCIsImNvbHVtbldpZHRoRnVuY3Rpb24iLCJjb2x1bW5zIiwiY2VsbFNpemVDYWNoZSIsImdob3N0IiwiX3JlZiIsImluZGV4IiwiZGVmYXVsdEdldFJvd0NlbGwiLCJfcmVmMiIsImZvcm1hdHRlciIsImRhdGFDb250YWluZXIiLCJjb2x1bW4iLCJjb2xNZXRhIiwicm93SW5kZXgiLCJzb3J0T3JkZXIiLCJyb3dJZHgiLCJ0eXBlIiwidmFsdWUiLCJ2YWx1ZUF0IiwiaW5kZXhPZiIsInVuZGVmaW5lZCIsInBhcnNlRmllbGRWYWx1ZSIsIlN0eWxlZFN0YXRzQ29udHJvbCIsImhlYWRlclN0YXRzQ29udHJvbEhlaWdodCIsInRvcCIsImZvbnRGYW1pbHlNZWRpdW0iLCJhY3RpdmVDb2xvciIsImhlYWRlckNlbGxTdGF0c0NvbnRyb2xCYWNrZ3JvdW5kIiwic2hvd1N0YXRzIiwiU3RhdHNDb250cm9sIiwiX3JlZjMiLCJ0b2dnbGVTaG93U3RhdHMiLCJjcmVhdGVFbGVtZW50Iiwib25DbGljayIsIkFycm93RG93biIsImhlaWdodCIsIlRhYmxlU2VjdGlvbiIsIl9yZWY0IiwiY2xhc3NMaXN0IiwiaXNQaW5uZWQiLCJoZWFkZXJHcmlkUHJvcHMiLCJmaXhlZFdpZHRoIiwiX3JlZjQkZml4ZWRIZWlnaHQiLCJmaXhlZEhlaWdodCIsIm9uU2Nyb2xsIiwic2Nyb2xsVG9wIiwiZGF0YUdyaWRQcm9wcyIsImNvbHVtbldpZHRoIiwiX3JlZjQkc2V0R3JpZFJlZiIsInNldEdyaWRSZWYiLCJoZWFkZXJDZWxsUmVuZGVyIiwiZGF0YUNlbGxSZW5kZXIiLCJfcmVmNCRzY3JvbGxMZWZ0Iiwic2Nyb2xsTGVmdCIsImhlYWRlckhlaWdodCIsImhlYWRlclN0eWxlIiwidXNlTWVtbyIsImNvbmNhdCIsImNvbnRlbnRTdHlsZSIsIkF1dG9TaXplciIsIl9yZWY1Iiwid2lkdGgiLCJncmlkRGltZW5zaW9uIiwiY29sdW1uQ291bnQiLCJoZWFkZXJHcmlkV2lkdGgiLCJkYXRhR3JpZEhlaWdodCIsIkZyYWdtZW50IiwiY2xhc3NOYW1lIiwiY2xhc3NuYW1lcyIsInN0eWxlIiwiX2V4dGVuZHMyIiwiY2VsbFJlbmRlcmVyIiwiYXJncyIsIkRVTU1ZX1NUWUxFIiwiRGF0YVRhYmxlRmFjdG9yeSIsImRlcHMiLCJIZWFkZXJDZWxsRmFjdG9yeSIsIkhlYWRlckNlbGwiLCJEYXRhVGFibGUiLCJfQ29tcG9uZW50IiwiX3RoaXMiLCJfY2xhc3NDYWxsQ2hlY2syIiwiX2xlbiIsIkFycmF5IiwiX2tleSIsIm1vcmVPcHRpb25zQ29sdW1uIiwiY3JlYXRlUmVmIiwicGlubmVkQ29sdW1ucyIsImNyZWF0ZVNlbGVjdG9yIiwiaXNBcnJheSIsImMiLCJpbmNsdWRlcyIsImhhc01vdW50ZWQiLCJzZXRTdGF0ZSIsInN0YXRlIiwiX3RoaXMkcHJvcHMiLCJfdGhpcyRwcm9wcyRjZWxsU2l6ZUMiLCJwcm9wc0NhY2hlIiwiX3RoaXMkcHJvcHMkcGlubmVkQ29sIiwidW5waW5uZWRDb2x1bW5zIiwicm9vdCIsImN1cnJlbnQiLCJjbGllbnRXaWR0aCIsImFkanVzdFdpZHRoIiwiX3JlZjYiLCJhZGp1c3RDZWxsc1RvQ29udGFpbmVyIiwiZ2V0Q2VsbFNpemVDYWNoZSIsImRlYm91bmNlIiwiZG9TY2FsZUNlbGxzVG9XaWR0aCIsIl90aGlzJHByb3BzJGdldFJvd0NlbCIsImdldFJvd0NlbGwiLCJEYXRhQ2VsbFJlbmRlcmVyIiwiY2VsbEluZm8iLCJjb2x1bW5JbmRleCIsImtleSIsImlzR2hvc3QiLCJnZXRDb2x1bW5Gb3JtYXR0ZXIiLCJyb3dDZWxsIiwibGFzdFJvd0luZGV4IiwibnVtUm93cyIsImVuZENlbGwiLCJmaXJzdENlbGwiLCJib3R0b21DZWxsIiwiYWxpZ25SaWdodCIsIk51bWJlciIsImNlbGwiLCJ0aXRsZSIsIl9pbmhlcml0czIiLCJfY3JlYXRlQ2xhc3MyIiwiY29tcG9uZW50RGlkTW91bnQiLCJ3aW5kb3ciLCJhZGRFdmVudExpc3RlbmVyIiwic2NhbGVDZWxsc1RvV2lkdGgiLCJjb21wb25lbnREaWRVcGRhdGUiLCJwcmV2UHJvcHMiLCJjb21wb25lbnRXaWxsVW5tb3VudCIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJyZW5kZXJIZWFkZXJDZWxsIiwidG9nZ2xlTW9yZU9wdGlvbnMiLCJfdGhpczIiLCJIZWFkZXJDZWxsUmVuZGVyZXIiLCJyZW5kZXIiLCJfdGhpczMiLCJfdGhpcyRwcm9wczIiLCJfdGhpcyRwcm9wczIkcGlubmVkQ28iLCJfdGhpcyRwcm9wczIkdGhlbWUiLCJfdGhpcyRwcm9wczIkZml4ZWRIZWkiLCJoYXNTdGF0cyIsIl90aGlzJHN0YXRlIiwiX3RoaXMkc3RhdGUkY2VsbFNpemVDIiwidW5waW5uZWRDb2x1bW5zR2hvc3QiLCJfdG9Db25zdW1hYmxlQXJyYXkyIiwicGlubmVkQ29sdW1uc1dpZHRoIiwicmVkdWNlIiwiYWNjIiwidmFsIiwiaGFzUGlubmVkQ29sdW1ucyIsIl90aGVtZSRoZWFkZXJSb3dIZWlnaCIsImhlYWRlclJvd0hlaWdodCIsIl90aGVtZSRoZWFkZXJTdGF0c0NvbiIsIl90aGVtZSRoZWFkZXJSb3dXU3RhdCIsImhlYWRlclJvd1dTdGF0c0hlaWdodCIsIl90aGVtZSRyb3dIZWlnaHQiLCJyb3dIZWlnaHQiLCJyb3dDb3VudCIsInJlZiIsIlNjcm9sbFN5bmMiLCJfcmVmNyIsInBpbm5lZEdyaWQiLCJyZW5kZXJEYXRhQ2VsbCIsIm1hcmdpbkxlZnQiLCJ1bnBpbm5lZEdyaWQiLCJDb21wb25lbnQiLCJzb3J0Q29sdW1uIiwid2l0aFRoZW1lIiwiX2RlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbW9uL2RhdGEtdGFibGUvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCwge0NvbXBvbmVudCwgY3JlYXRlUmVmLCB1c2VNZW1vfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQge1Njcm9sbFN5bmMsIEF1dG9TaXplciwgT25TY3JvbGxQYXJhbXMsIEdyaWRQcm9wcywgSW5kZXh9IGZyb20gJ3JlYWN0LXZpcnR1YWxpemVkJztcbmltcG9ydCBzdHlsZWQsIHt3aXRoVGhlbWV9IGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCBjbGFzc25hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IHtjcmVhdGVTZWxlY3Rvcn0gZnJvbSAncmVzZWxlY3QnO1xuaW1wb3J0IGdldCBmcm9tICdsb2Rhc2gvZ2V0JztcbmltcG9ydCBkZWJvdW5jZSBmcm9tICdsb2Rhc2gvZGVib3VuY2UnO1xuaW1wb3J0IHtBcnJvd0Rvd259IGZyb20gJy4uL2ljb25zJztcblxuaW1wb3J0IHtDZWxsU2l6ZUNhY2hlfSBmcm9tICcuL2NlbGwtc2l6ZSc7XG5cbmltcG9ydCBHcmlkIGZyb20gJy4vZ3JpZCc7XG5pbXBvcnQgSGVhZGVyQ2VsbEZhY3RvcnkgZnJvbSAnLi9oZWFkZXItY2VsbCc7XG5cbmltcG9ydCB7Q29sTWV0YX0gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5pbXBvcnQge3BhcnNlRmllbGRWYWx1ZSwgZ2V0Q29sdW1uRm9ybWF0dGVyLCBEYXRhQ29udGFpbmVySW50ZXJmYWNlfSBmcm9tICdAa2VwbGVyLmdsL3V0aWxzJztcbmltcG9ydCB7YWRqdXN0Q2VsbHNUb0NvbnRhaW5lcn0gZnJvbSAnLi9jZWxsLXNpemUnO1xuXG5pbXBvcnQge0FMTF9GSUVMRF9UWVBFU30gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuXG5jb25zdCBkZWZhdWx0SGVhZGVyUm93SGVpZ2h0ID0gNTU7XG5jb25zdCBkZWZhdWx0SGVhZGVyU3RhdHNDb250cm9sSGVpZ2h0ID0gNDA7XG5jb25zdCBkZWZhdWx0Um93SGVpZ2h0ID0gMzI7XG5jb25zdCBvdmVyc2NhbkNvbHVtbkNvdW50ID0gMTA7XG5jb25zdCBvdmVyc2NhblJvd0NvdW50ID0gMTA7XG4vLyBUaGUgZGVmYXVsdCBzY3JvbGxiYXIgd2lkdGggY2FuIHJhbmdlIGFueXdoZXJlIGZyb20gMTJweCB0byAxN3B4XG5jb25zdCBicm93c2VyU2Nyb2xsQmFyV2lkdGggPSAxNztcbmNvbnN0IGZpZWxkVG9BbGlnblJpZ2h0ID0ge1xuICBbQUxMX0ZJRUxEX1RZUEVTLmludGVnZXJdOiB0cnVlLFxuICBbQUxMX0ZJRUxEX1RZUEVTLnJlYWxdOiB0cnVlXG59O1xuXG5jb25zdCBwaW5uZWRDbGFzc0xpc3QgPSB7XG4gIGhlYWRlcjogJ3Bpbm5lZC1jb2x1bW5zLS1oZWFkZXIgcGlubmVkLWdyaWQtY29udGFpbmVyJyxcbiAgcm93czogJ3Bpbm5lZC1jb2x1bW5zLS1yb3dzIHBpbm5lZC1ncmlkLWNvbnRhaW5lcidcbn07XG5cbmNvbnN0IHVucGlubmVkQ2xhc3NMaXN0ID0ge1xuICBoZWFkZXI6ICd1bnBpbm5lZC1jb2x1bW5zLS1oZWFkZXIgdW5waW5uZWQtZ3JpZC1jb250YWluZXInLFxuICByb3dzOiAndW5waW5uZWQtY29sdW1ucy0tcm93cyB1bnBpbm5lZC1ncmlkLWNvbnRhaW5lcidcbn07XG5cbnR5cGUgQ29udGFpbmVyUHJvcHMgPSB7XG4gIGhhc0N1c3RvbVNjcm9sbEJhclN0eWxlPzogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCBjb25zdCBDb250YWluZXIgPSBzdHlsZWQuZGl2PENvbnRhaW5lclByb3BzPmBcbiAgZGlzcGxheTogZmxleDtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBmbGV4LWdyb3c6IDE7XG4gIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmRhdGFUYWJsZVRleHRDb2xvcn07XG4gIHdpZHRoOiAxMDAlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIC5SZWFjdFZpcnR1YWxpemVkX19HcmlkOmZvY3VzLFxuICAuUmVhY3RWaXJ0dWFsaXplZF9fR3JpZDphY3RpdmUge1xuICAgIG91dGxpbmU6IDA7XG4gIH1cbiAgLmJvZHktZ3JpZCB7XG4gICAgJHtwcm9wcyA9PiBwcm9wcy5oYXNDdXN0b21TY3JvbGxCYXJTdHlsZSAmJiBwcm9wcy50aGVtZS5tb2RhbFNjcm9sbEJhcn1cbiAgfVxuXG4gIC5jZWxsIHtcbiAgICAmOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gICo6Zm9jdXMge1xuICAgIG91dGxpbmU6IDA7XG4gIH1cblxuICAucmVzdWx0cy10YWJsZS13cmFwcGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWluLWhlaWdodDogMTAwJTtcbiAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgIC5zY3JvbGwtaW4tdWktdGhyZWFkLnBpbm5lZC1jb2x1bW5zLS1oZWFkZXIge1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke3Byb3BzID0+IHByb3BzLnRoZW1lLmNlbGxCb3JkZXJDb2xvcn07XG4gICAgICBwYWRkaW5nLWJvdHRvbTogJHticm93c2VyU2Nyb2xsQmFyV2lkdGh9cHg7XG4gICAgfVxuICAgIC5zY3JvbGwtaW4tdWktdGhyZWFkLnVucGlubmVkLWNvbHVtbnMtLWhlYWRlciB7XG4gICAgICB3aWR0aDogMTAwdnc7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuY2VsbEJvcmRlckNvbG9yfTtcbiAgICAgIC8vIGxlYXZlIHJvb20gZm9yIHNjcm9sbGJhclxuICAgICAgcGFkZGluZy1ib3R0b206ICR7YnJvd3NlclNjcm9sbEJhcldpZHRofXB4O1xuICAgIH1cblxuICAgIC5zY3JvbGwtaW4tdWktdGhyZWFkOjphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIC5ncmlkLXJvdyB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICB9XG4gICAgLmdyaWQtY29sdW1uIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgZmxleDogMSAxIGF1dG87XG4gICAgfVxuICAgIC5waW5uZWQtZ3JpZC1jb250YWluZXIge1xuICAgICAgZmxleDogMCAwIDc1cHg7XG4gICAgICB6LWluZGV4OiAxMDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB0b3A6IDA7XG4gICAgICBib3JkZXItcmlnaHQ6IDJweCBzb2xpZCAke3Byb3BzID0+IHByb3BzLnRoZW1lLnBpbm5lZEdyaWRCb3JkZXJDb2xvcn07XG4gICAgfVxuICAgIC5ldmVuLXJvdyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmV2ZW5Sb3dCYWNrZ3JvdW5kfTtcbiAgICB9XG4gICAgLm9kZC1yb3cge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5vZGRSb3dCYWNrZ3JvdW5kfTtcbiAgICB9XG4gICAgLmNlbGwsXG4gICAgLmhlYWRlci1jZWxsIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIC8vIGhlYWRlciBib3JkZXIgaXMgcmVuZGVyZWQgYnkgaGVhZGVyIGNvbnRhaW5lclxuICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgIC5uLXNvcnQtaWR4IHtcbiAgICAgICAgZm9udC1zaXplOiA5cHg7XG4gICAgICB9XG4gICAgfVxuICAgIC5jZWxsIHtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke3Byb3BzID0+IHByb3BzLnRoZW1lLmNlbGxCb3JkZXJDb2xvcn07XG4gICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAke3Byb3BzID0+IHByb3BzLnRoZW1lLmNlbGxCb3JkZXJDb2xvcn07XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICBwYWRkaW5nOiAwICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuY2VsbFBhZGRpbmdTaWRlfXB4O1xuICAgICAgZm9udC1zaXplOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmNlbGxGb250U2l6ZX1weDtcblxuICAgICAgLnJlc3VsdC1saW5rIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgICAuY2VsbC5lbmQtY2VsbCxcbiAgICAuaGVhZGVyLWNlbGwuZW5kLWNlbGwge1xuICAgICAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICAgICAgcGFkZGluZy1yaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5jZWxsUGFkZGluZ1NpZGUgKyBwcm9wcy50aGVtZS5lZGdlQ2VsbFBhZGRpbmdTaWRlfXB4O1xuICAgIH1cbiAgICAuY2VsbC5maXJzdC1jZWxsLFxuICAgIC5oZWFkZXItY2VsbC5maXJzdC1jZWxsIHtcbiAgICAgIHBhZGRpbmctbGVmdDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5jZWxsUGFkZGluZ1NpZGUgKyBwcm9wcy50aGVtZS5lZGdlQ2VsbFBhZGRpbmdTaWRlfXB4O1xuICAgIH1cbiAgICAuY2VsbC5ib3R0b20tY2VsbCB7XG4gICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgIH1cbiAgICAuY2VsbC5hbGlnbi1yaWdodCB7XG4gICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgfVxuICB9XG5cbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgfVxuYDtcblxuY29uc3QgZGVmYXVsdENvbHVtbldpZHRoID0gMjAwO1xuXG5leHBvcnQgdHlwZSBTb3J0Q29sdW1uID0ge1xuICBjb2x1bW4/OiBzdHJpbmc7XG4gIG1vZGU/OiBzdHJpbmc7XG59O1xuXG5jb25zdCBjb2x1bW5XaWR0aEZ1bmN0aW9uID1cbiAgKGNvbHVtbnMsIGNlbGxTaXplQ2FjaGUsIGdob3N0PykgPT5cbiAgKHtpbmRleH0pID0+IHtcbiAgICByZXR1cm4gKGNvbHVtbnNbaW5kZXhdIHx8IHt9KS5naG9zdFxuICAgICAgPyBnaG9zdFxuICAgICAgOiBjZWxsU2l6ZUNhY2hlW2NvbHVtbnNbaW5kZXhdXSB8fCBkZWZhdWx0Q29sdW1uV2lkdGg7XG4gIH07XG5cbmludGVyZmFjZSBHZXRSb3dDZWxsUHJvcHMge1xuICBkYXRhQ29udGFpbmVyOiBEYXRhQ29udGFpbmVySW50ZXJmYWNlIHwgbnVsbDtcbiAgY29sdW1uczogKHN0cmluZyAmIHtnaG9zdD86IGJvb2xlYW59KVtdO1xuICBjb2x1bW46IHN0cmluZztcbiAgY29sTWV0YTtcbiAgcm93SW5kZXg6IG51bWJlcjtcbiAgc29ydE9yZGVyPzogbnVtYmVyW10gfCBudWxsO1xufVxuXG4vKlxuICogVGhpcyBpcyBhbiBhY2Nlc3NvciBtZXRob2QgdXNlZCB0byBnZW5lcmFsaXplIGdldHRpbmcgYSBjZWxsIGZyb20gYSBkYXRhIHJvd1xuICovXG5jb25zdCBkZWZhdWx0R2V0Um93Q2VsbCA9IChcbiAge2RhdGFDb250YWluZXIsIGNvbHVtbnMsIGNvbHVtbiwgY29sTWV0YSwgcm93SW5kZXgsIHNvcnRPcmRlcn06IEdldFJvd0NlbGxQcm9wcyxcbiAgZm9ybWF0dGVyXG4pID0+IHtcbiAgY29uc3Qgcm93SWR4ID0gc29ydE9yZGVyICYmIHNvcnRPcmRlci5sZW5ndGggPyBnZXQoc29ydE9yZGVyLCByb3dJbmRleCkgOiByb3dJbmRleDtcbiAgY29uc3Qge3R5cGV9ID0gY29sTWV0YVtjb2x1bW5dO1xuXG4gIGNvbnN0IHZhbHVlID0gZGF0YUNvbnRhaW5lcj8udmFsdWVBdChyb3dJZHgsIGNvbHVtbnMuaW5kZXhPZihjb2x1bW4pKTtcbiAgcmV0dXJuIHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09ICcnXG4gICAgPyAnJ1xuICAgIDogZm9ybWF0dGVyXG4gICAgPyBmb3JtYXR0ZXIodmFsdWUpXG4gICAgOiBwYXJzZUZpZWxkVmFsdWUodmFsdWUsIHR5cGUpO1xufTtcblxudHlwZSBTdGF0c0NvbnRyb2xQcm9wcyA9IHtcbiAgdG9wOiBudW1iZXI7XG4gIHNob3dTdGF0cz86IGJvb2xlYW47XG59O1xuXG5jb25zdCBTdHlsZWRTdGF0c0NvbnRyb2wgPSBzdHlsZWQuZGl2PFN0YXRzQ29udHJvbFByb3BzPmBcbiAgaGVpZ2h0OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmhlYWRlclN0YXRzQ29udHJvbEhlaWdodH1weDtcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6ICR7cHJvcHMgPT4gcHJvcHMudG9wfXB4O1xuICBmb250LWZhbWlseTogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5mb250RmFtaWx5TWVkaXVtfXB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmFjdGl2ZUNvbG9yfTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5oZWFkZXJDZWxsU3RhdHNDb250cm9sQmFja2dyb3VuZH07XG4gICY6aG92ZXIge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuXG4gID4gZGl2IHtcbiAgICBwYWRkaW5nOiAwcHggMjRweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICBzdmcge1xuICAgICAgbWFyZ2luLWxlZnQ6IDEycHg7XG4gICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC41cyBlYXNlO1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoJHtwcm9wcyA9PiAocHJvcHMuc2hvd1N0YXRzID8gMTgwIDogMCl9ZGVnKTtcbiAgICB9XG4gIH1cbmA7XG5cbmNvbnN0IFN0YXRzQ29udHJvbCA9ICh7XG4gIHRvcCxcbiAgc2hvd1N0YXRzLFxuICB0b2dnbGVTaG93U3RhdHNcbn06IHtcbiAgdG9wOiBudW1iZXI7XG4gIHNob3dTdGF0cz86IGJvb2xlYW47XG4gIHRvZ2dsZVNob3dTdGF0czogKCkgPT4gdm9pZDtcbn0pID0+IChcbiAgPFN0eWxlZFN0YXRzQ29udHJvbCB0b3A9e3RvcH0gc2hvd1N0YXRzPXtzaG93U3RhdHN9PlxuICAgIDxkaXYgb25DbGljaz17dG9nZ2xlU2hvd1N0YXRzfT5cbiAgICAgIHtzaG93U3RhdHMgPyAnSGlkZSBDb2x1bW4gU3RhdHMnIDogJ1Nob3cgQ29sdW1uIFN0YXRzJ31cbiAgICAgIDxBcnJvd0Rvd24gaGVpZ2h0PVwiMThweFwiIC8+XG4gICAgPC9kaXY+XG4gIDwvU3R5bGVkU3RhdHNDb250cm9sPlxuKTtcblxuaW50ZXJmYWNlIFRhYmxlU2VjdGlvblByb3BzIHtcbiAgY2xhc3NMaXN0Pzoge1xuICAgIGhlYWRlcjogc3RyaW5nO1xuICAgIHJvd3M6IHN0cmluZztcbiAgfTtcbiAgaXNQaW5uZWQ/OiBib29sZWFuO1xuICBjb2x1bW5zOiAoc3RyaW5nICYge2dob3N0PzogYm9vbGVhbn0pW107XG4gIGhlYWRlckdyaWRQcm9wcz87XG4gIGZpeGVkV2lkdGg/OiBudW1iZXIgfCBudWxsO1xuICBmaXhlZEhlaWdodD86IG51bWJlciB8IG51bGw7XG4gIG9uU2Nyb2xsPzogKHBhcmFtczogT25TY3JvbGxQYXJhbXMpID0+IHZvaWQ7XG4gIHNjcm9sbFRvcD86IG51bWJlcjtcbiAgZGF0YUdyaWRQcm9wczoge1xuICAgIHJvd0hlaWdodDogbnVtYmVyIHwgKChwYXJhbXM6IEluZGV4KSA9PiBudW1iZXIpO1xuICAgIHJvd0NvdW50OiBudW1iZXI7XG4gIH0gJiBQYXJ0aWFsPEdyaWRQcm9wcz47XG4gIGNvbHVtbldpZHRoPztcbiAgc2V0R3JpZFJlZj86IChyZWY6IEhUTUxEaXZFbGVtZW50IHwgbnVsbCkgPT4gdm9pZDtcbiAgaGVhZGVyQ2VsbFJlbmRlcj87XG4gIGRhdGFDZWxsUmVuZGVyPztcbiAgc2Nyb2xsTGVmdD86IG51bWJlcjtcbn1cblxuZXhwb3J0IGNvbnN0IFRhYmxlU2VjdGlvbiA9ICh7XG4gIGNsYXNzTGlzdCxcbiAgaXNQaW5uZWQsXG4gIGNvbHVtbnMsXG4gIGhlYWRlckdyaWRQcm9wcyxcbiAgZml4ZWRXaWR0aCxcbiAgZml4ZWRIZWlnaHQgPSB1bmRlZmluZWQsXG4gIG9uU2Nyb2xsLFxuICBzY3JvbGxUb3AsXG4gIGRhdGFHcmlkUHJvcHMsXG4gIGNvbHVtbldpZHRoLFxuICBzZXRHcmlkUmVmID0gdW5kZWZpbmVkLFxuICBoZWFkZXJDZWxsUmVuZGVyLFxuICBkYXRhQ2VsbFJlbmRlcixcbiAgc2Nyb2xsTGVmdCA9IDBcbn06IFRhYmxlU2VjdGlvblByb3BzKSA9PiB7XG4gIGNvbnN0IGhlYWRlckhlaWdodCA9IGhlYWRlckdyaWRQcm9wcy5oZWlnaHQ7XG5cbiAgY29uc3QgaGVhZGVyU3R5bGUgPSB1c2VNZW1vKFxuICAgICgpID0+ICh7XG4gICAgICBoZWlnaHQ6IGAke2hlYWRlckhlaWdodH1weGBcbiAgICB9KSxcbiAgICBbaGVhZGVySGVpZ2h0XVxuICApO1xuICBjb25zdCBjb250ZW50U3R5bGUgPSB1c2VNZW1vKFxuICAgICgpID0+ICh7XG4gICAgICB0b3A6IGAke2hlYWRlckhlaWdodH1weGBcbiAgICB9KSxcbiAgICBbaGVhZGVySGVpZ2h0XVxuICApO1xuXG4gIHJldHVybiAoXG4gICAgPEF1dG9TaXplcj5cbiAgICAgIHsoe3dpZHRoLCBoZWlnaHR9KSA9PiB7XG4gICAgICAgIGNvbnN0IGdyaWREaW1lbnNpb24gPSB7XG4gICAgICAgICAgY29sdW1uQ291bnQ6IGNvbHVtbnMubGVuZ3RoLFxuICAgICAgICAgIGNvbHVtbldpZHRoLFxuICAgICAgICAgIHdpZHRoOiBmaXhlZFdpZHRoIHx8IHdpZHRoXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGhlYWRlckdyaWRXaWR0aCA9IGZpeGVkV2lkdGggfHwgd2lkdGg7XG4gICAgICAgIGNvbnN0IGRhdGFHcmlkSGVpZ2h0ID0gZml4ZWRIZWlnaHQgfHwgaGVpZ2h0O1xuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc25hbWVzKCdzY3JvbGwtaW4tdWktdGhyZWFkJywgY2xhc3NMaXN0Py5oZWFkZXIpfVxuICAgICAgICAgICAgICBzdHlsZT17aGVhZGVyU3R5bGV9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxHcmlkXG4gICAgICAgICAgICAgICAgY2VsbFJlbmRlcmVyPXtoZWFkZXJDZWxsUmVuZGVyfVxuICAgICAgICAgICAgICAgIHsuLi5oZWFkZXJHcmlkUHJvcHN9XG4gICAgICAgICAgICAgICAgey4uLmdyaWREaW1lbnNpb259XG4gICAgICAgICAgICAgICAgaGVpZ2h0PXtoZWFkZXJHcmlkUHJvcHMuaGVpZ2h0ICsgYnJvd3NlclNjcm9sbEJhcldpZHRofVxuICAgICAgICAgICAgICAgIHdpZHRoPXtoZWFkZXJHcmlkV2lkdGh9XG4gICAgICAgICAgICAgICAgc2Nyb2xsTGVmdD17c2Nyb2xsTGVmdH1cbiAgICAgICAgICAgICAgICBvblNjcm9sbD17YXJncyA9PiBvblNjcm9sbD8uKHsuLi5hcmdzLCBzY3JvbGxUb3A6c2Nyb2xsVG9wID8/IDAgfSl9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc25hbWVzKCdzY3JvbGwtaW4tdWktdGhyZWFkJywgY2xhc3NMaXN0Py5yb3dzKX1cbiAgICAgICAgICAgICAgc3R5bGU9e2NvbnRlbnRTdHlsZX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPEdyaWRcbiAgICAgICAgICAgICAgICBjZWxsUmVuZGVyZXI9e2RhdGFDZWxsUmVuZGVyfVxuICAgICAgICAgICAgICAgIHsuLi5kYXRhR3JpZFByb3BzfVxuICAgICAgICAgICAgICAgIHsuLi5ncmlkRGltZW5zaW9ufVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17aXNQaW5uZWQgPyAncGlubmVkLWdyaWQnIDogJ2JvZHktZ3JpZCd9XG4gICAgICAgICAgICAgICAgaGVpZ2h0PXtkYXRhR3JpZEhlaWdodCAtIGhlYWRlckdyaWRQcm9wcy5oZWlnaHR9XG4gICAgICAgICAgICAgICAgb25TY3JvbGw9e29uU2Nyb2xsfVxuICAgICAgICAgICAgICAgIHNjcm9sbExlZnQ9e3Njcm9sbExlZnR9XG4gICAgICAgICAgICAgICAgc2Nyb2xsVG9wPXtzY3JvbGxUb3B9XG4gICAgICAgICAgICAgICAgc2V0R3JpZFJlZj17c2V0R3JpZFJlZn1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvPlxuICAgICAgICApO1xuICAgICAgfX1cbiAgICA8L0F1dG9TaXplcj5cbiAgKTtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YVRhYmxlUHJvcHMge1xuICBkYXRhSWQ/OiBzdHJpbmc7XG4gIGhhc1N0YXRzPzogYm9vbGVhbjtcbiAgY2VsbFNpemVDYWNoZT86IENlbGxTaXplQ2FjaGU7XG4gIHBpbm5lZENvbHVtbnM/OiBzdHJpbmdbXTtcbiAgY29sdW1uczogKHN0cmluZyAmIHtnaG9zdD86IGJvb2xlYW59KVtdO1xuICBmaXhlZFdpZHRoPzogbnVtYmVyIHwgbnVsbDtcbiAgdGhlbWU/OiBhbnk7XG4gIGRhdGFDb250YWluZXI6IERhdGFDb250YWluZXJJbnRlcmZhY2UgfCBudWxsO1xuICBmaXhlZEhlaWdodD86IG51bWJlciB8IG51bGw7XG4gIGNvbE1ldGE6IENvbE1ldGE7XG4gIHNvcnRDb2x1bW46IFNvcnRDb2x1bW47XG4gIHNvcnRUYWJsZUNvbHVtbjogKGNvbHVtbjogc3RyaW5nLCBtb2RlPzogc3RyaW5nKSA9PiB2b2lkO1xuICBwaW5UYWJsZUNvbHVtbjogKGNvbHVtbjogc3RyaW5nKSA9PiB2b2lkO1xuICBzZXRDb2x1bW5EaXNwbGF5Rm9ybWF0PzogKGZvcm1hdHM6IHtba2V5OiBzdHJpbmddOiBzdHJpbmd9KSA9PiB2b2lkO1xuICBjb3B5VGFibGVDb2x1bW46IChjb2x1bW46IHN0cmluZykgPT4gdm9pZDtcbiAgc29ydE9yZGVyPzogbnVtYmVyW10gfCBudWxsO1xuICBzaG93U3RhdHM/OiBib29sZWFuO1xuICBoYXNDdXN0b21TY3JvbGxCYXJTdHlsZT86IGJvb2xlYW47XG4gIGdldFJvd0NlbGw/OiAocmVuZGVyRGF0YUNlbGxQcm9wczogR2V0Um93Q2VsbFByb3BzLCBmb3JtYXR0ZXI6IGFueSkgPT4gc3RyaW5nIHwgbnVtYmVyO1xufVxuXG5pbnRlcmZhY2UgRGF0YVRhYmxlU3RhdGUge1xuICBjZWxsU2l6ZUNhY2hlPzogQ2VsbFNpemVDYWNoZTtcbiAgbW9yZU9wdGlvbnNDb2x1bW4/O1xuICBnaG9zdD87XG4gIHNob3dTdGF0cz86IGJvb2xlYW47XG59XG5cbmNvbnN0IERVTU1ZX1NUWUxFID0ge307XG5cbkRhdGFUYWJsZUZhY3RvcnkuZGVwcyA9IFtIZWFkZXJDZWxsRmFjdG9yeV07XG5mdW5jdGlvbiBEYXRhVGFibGVGYWN0b3J5KFxuICBIZWFkZXJDZWxsOiBSZXR1cm5UeXBlPHR5cGVvZiBIZWFkZXJDZWxsRmFjdG9yeT5cbik6IFJlYWN0LkNvbXBvbmVudFR5cGU8RGF0YVRhYmxlUHJvcHM+IHtcbiAgY2xhc3MgRGF0YVRhYmxlIGV4dGVuZHMgQ29tcG9uZW50PERhdGFUYWJsZVByb3BzLCBEYXRhVGFibGVTdGF0ZT4ge1xuICAgIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgICBkYXRhQ29udGFpbmVyOiBudWxsLFxuICAgICAgcGlubmVkQ29sdW1uczogW10sXG4gICAgICBjb2xNZXRhOiB7fSxcbiAgICAgIGNlbGxTaXplQ2FjaGU6IHt9LFxuICAgICAgc29ydENvbHVtbjoge30sXG4gICAgICBmaXhlZFdpZHRoOiBudWxsLFxuICAgICAgZml4ZWRIZWlnaHQ6IG51bGwsXG4gICAgICB0aGVtZToge30sXG4gICAgICBoYXNTdGF0czogZmFsc2UsXG4gICAgICBoYXNDdXN0b21TY3JvbGxCYXJTdHlsZTogdHJ1ZVxuICAgIH07XG5cbiAgICBwaW5uZWRHcmlkOiBIVE1MRGl2RWxlbWVudCB8IG51bGwgPSBudWxsO1xuICAgIHVucGlubmVkR3JpZDogSFRNTERpdkVsZW1lbnQgfCBudWxsID0gbnVsbDtcbiAgICBoYXNNb3VudGVkID0gZmFsc2U7XG5cbiAgICBzdGF0ZTogRGF0YVRhYmxlU3RhdGUgPSB7XG4gICAgICBjZWxsU2l6ZUNhY2hlOiB7fSxcbiAgICAgIG1vcmVPcHRpb25zQ29sdW1uOiBudWxsLFxuICAgICAgc2hvd1N0YXRzOiB0cnVlXG4gICAgfTtcblxuICAgIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgICAgdGhpcy5oYXNNb3VudGVkID0gdHJ1ZTtcbiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCB0aGlzLnNjYWxlQ2VsbHNUb1dpZHRoKTtcbiAgICAgIHRoaXMuc2NhbGVDZWxsc1RvV2lkdGgoKTtcbiAgICB9XG5cbiAgICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgICBpZiAoXG4gICAgICAgIHRoaXMucHJvcHMuY2VsbFNpemVDYWNoZSAhPT0gcHJldlByb3BzLmNlbGxTaXplQ2FjaGUgfHxcbiAgICAgICAgdGhpcy5wcm9wcy5waW5uZWRDb2x1bW5zICE9PSBwcmV2UHJvcHMucGlubmVkQ29sdW1uc1xuICAgICAgKSB7XG4gICAgICAgIHRoaXMuc2NhbGVDZWxsc1RvV2lkdGgoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICAgIHRoaXMuaGFzTW91bnRlZCA9IGZhbHNlO1xuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMuc2NhbGVDZWxsc1RvV2lkdGgpO1xuICAgIH1cblxuICAgIHJvb3QgPSBjcmVhdGVSZWY8SFRNTERpdkVsZW1lbnQ+KCk7XG4gICAgY29sdW1ucyA9IChwcm9wczogRGF0YVRhYmxlUHJvcHMpID0+IHByb3BzLmNvbHVtbnM7XG4gICAgcGlubmVkQ29sdW1ucyA9IChwcm9wczogRGF0YVRhYmxlUHJvcHMpID0+IHByb3BzLnBpbm5lZENvbHVtbnM7XG4gICAgdW5waW5uZWRDb2x1bW5zID0gY3JlYXRlU2VsZWN0b3IodGhpcy5jb2x1bW5zLCB0aGlzLnBpbm5lZENvbHVtbnMsIChjb2x1bW5zLCBwaW5uZWRDb2x1bW5zKSA9PlxuICAgICAgIUFycmF5LmlzQXJyYXkocGlubmVkQ29sdW1ucykgPyBjb2x1bW5zIDogY29sdW1ucy5maWx0ZXIoYyA9PiAhcGlubmVkQ29sdW1ucy5pbmNsdWRlcyhjKSlcbiAgICApO1xuXG4gICAgdG9nZ2xlTW9yZU9wdGlvbnMgPSBtb3JlT3B0aW9uc0NvbHVtbiA9PiB7XG4gICAgICBpZiAodGhpcy5oYXNNb3VudGVkKVxuICAgICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICBtb3JlT3B0aW9uc0NvbHVtbjpcbiAgICAgICAgICAgIHRoaXMuc3RhdGUubW9yZU9wdGlvbnNDb2x1bW4gPT09IG1vcmVPcHRpb25zQ29sdW1uID8gbnVsbCA6IG1vcmVPcHRpb25zQ29sdW1uXG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgdG9nZ2xlU2hvd1N0YXRzID0gKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuaGFzTW91bnRlZCkgdGhpcy5zZXRTdGF0ZSh7c2hvd1N0YXRzOiAhdGhpcy5zdGF0ZS5zaG93U3RhdHN9KTtcbiAgICB9O1xuICAgIGdldENlbGxTaXplQ2FjaGUgPSAoKSA9PiB7XG4gICAgICBjb25zdCB7Y2VsbFNpemVDYWNoZTogcHJvcHNDYWNoZSA9IHt9LCBmaXhlZFdpZHRoLCBwaW5uZWRDb2x1bW5zID0gW119ID0gdGhpcy5wcm9wcztcbiAgICAgIGNvbnN0IHVucGlubmVkQ29sdW1ucyA9IHRoaXMudW5waW5uZWRDb2x1bW5zKHRoaXMucHJvcHMpO1xuXG4gICAgICBjb25zdCB3aWR0aCA9IGZpeGVkV2lkdGggPyBmaXhlZFdpZHRoIDogdGhpcy5yb290LmN1cnJlbnQgPyB0aGlzLnJvb3QuY3VycmVudC5jbGllbnRXaWR0aCA6IDA7XG5cbiAgICAgIC8vIHBpbiBjb2x1bW4gYm9yZGVyIGlzIDIgcGl4ZWwgdnMgMSBwaXhlbFxuICAgICAgY29uc3QgYWRqdXN0V2lkdGggPSBwaW5uZWRDb2x1bW5zLmxlbmd0aCA/IHdpZHRoIC0gMSA6IHdpZHRoO1xuICAgICAgY29uc3Qge2NlbGxTaXplQ2FjaGUsIGdob3N0fSA9IGFkanVzdENlbGxzVG9Db250YWluZXIoXG4gICAgICAgIGFkanVzdFdpZHRoLFxuICAgICAgICBwcm9wc0NhY2hlLFxuICAgICAgICBwaW5uZWRDb2x1bW5zLFxuICAgICAgICB1bnBpbm5lZENvbHVtbnNcbiAgICAgICkgYXMge2NlbGxTaXplQ2FjaGU6IENlbGxTaXplQ2FjaGU7IGdob3N0OiBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkfTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY2VsbFNpemVDYWNoZSxcbiAgICAgICAgZ2hvc3RcbiAgICAgIH07XG4gICAgfTtcblxuICAgIGRvU2NhbGVDZWxsc1RvV2lkdGggPSAoKSA9PiB7XG4gICAgICBpZiAodGhpcy5oYXNNb3VudGVkKSB0aGlzLnNldFN0YXRlKHRoaXMuZ2V0Q2VsbFNpemVDYWNoZSgpKTtcbiAgICB9O1xuXG4gICAgc2NhbGVDZWxsc1RvV2lkdGggPSBkZWJvdW5jZSh0aGlzLmRvU2NhbGVDZWxsc1RvV2lkdGgsIDMwMCk7XG5cbiAgICByZW5kZXJEYXRhQ2VsbCA9IChjb2x1bW5zLCBpc1Bpbm5lZCwgcHJvcHM6IERhdGFUYWJsZVByb3BzKSA9PiB7XG4gICAgICBjb25zdCBnZXRSb3dDZWxsID0gdGhpcy5wcm9wcy5nZXRSb3dDZWxsID8/IGRlZmF1bHRHZXRSb3dDZWxsO1xuICAgICAgY29uc3QgRGF0YUNlbGxSZW5kZXJlciA9IGNlbGxJbmZvID0+IHtcbiAgICAgICAgY29uc3Qge2NvbHVtbkluZGV4LCBrZXksIHN0eWxlLCByb3dJbmRleH0gPSBjZWxsSW5mbztcbiAgICAgICAgY29uc3Qge2RhdGFDb250YWluZXIsIGNvbE1ldGF9ID0gcHJvcHM7XG4gICAgICAgIGNvbnN0IGNvbHVtbiA9IGNvbHVtbnNbY29sdW1uSW5kZXhdO1xuICAgICAgICBjb25zdCBpc0dob3N0ID0gY29sdW1uLmdob3N0O1xuXG4gICAgICAgIGNvbnN0IGZvcm1hdHRlciA9IGlzR2hvc3QgPyBudWxsIDogZ2V0Q29sdW1uRm9ybWF0dGVyKGNvbE1ldGFbY29sdW1uXSk7XG4gICAgICAgIGNvbnN0IHJvd0NlbGwgPSBpc0dob3N0ID8gJycgOiBnZXRSb3dDZWxsKHsuLi5wcm9wcywgY29sdW1uLCByb3dJbmRleH0sIGZvcm1hdHRlcik7XG4gICAgICAgIGNvbnN0IHR5cGUgPSBpc0dob3N0ID8gbnVsbCA6IGNvbE1ldGFbY29sdW1uXS50eXBlO1xuXG4gICAgICAgIGNvbnN0IGxhc3RSb3dJbmRleCA9IGRhdGFDb250YWluZXIgPyBkYXRhQ29udGFpbmVyLm51bVJvd3MoKSAtIDEgOiAwO1xuXG4gICAgICAgIGNvbnN0IGVuZENlbGwgPSBjb2x1bW5JbmRleCA9PT0gY29sdW1ucy5sZW5ndGggLSAxO1xuICAgICAgICBjb25zdCBmaXJzdENlbGwgPSBjb2x1bW5JbmRleCA9PT0gMDtcbiAgICAgICAgY29uc3QgYm90dG9tQ2VsbCA9IHJvd0luZGV4ID09PSBsYXN0Um93SW5kZXg7XG4gICAgICAgIGNvbnN0IGFsaWduUmlnaHQgPSBmaWVsZFRvQWxpZ25SaWdodFtOdW1iZXIodHlwZSldO1xuXG4gICAgICAgIGNvbnN0IGNlbGwgPSAoXG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc25hbWVzKCdjZWxsJywge1xuICAgICAgICAgICAgICBbcm93SW5kZXggJSAyID09PSAwID8gJ2V2ZW4tcm93JyA6ICdvZGQtcm93J106IHRydWUsXG4gICAgICAgICAgICAgIFtgcm93LSR7cm93SW5kZXh9YF06IHRydWUsXG4gICAgICAgICAgICAgICdwaW5uZWQtY2VsbCc6IGlzUGlubmVkLFxuICAgICAgICAgICAgICAnZmlyc3QtY2VsbCc6IGZpcnN0Q2VsbCxcbiAgICAgICAgICAgICAgJ2VuZC1jZWxsJzogZW5kQ2VsbCxcbiAgICAgICAgICAgICAgJ2JvdHRvbS1jZWxsJzogYm90dG9tQ2VsbCxcbiAgICAgICAgICAgICAgJ2FsaWduLXJpZ2h0JzogYWxpZ25SaWdodFxuICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICBrZXk9e2tleX1cbiAgICAgICAgICAgIHN0eWxlPXtzdHlsZX1cbiAgICAgICAgICAgIHRpdGxlPXtpc0dob3N0ID8gdW5kZWZpbmVkIDogcm93Q2VsbH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7YCR7cm93Q2VsbH0ke2VuZENlbGwgPyAnXFxuJyA6ICdcXHQnfWB9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICk7XG5cbiAgICAgICAgcmV0dXJuIGNlbGw7XG4gICAgICB9O1xuICAgICAgcmV0dXJuIERhdGFDZWxsUmVuZGVyZXI7XG4gICAgfTtcblxuICAgIHJlbmRlckhlYWRlckNlbGwoY29sdW1ucywgaXNQaW5uZWQsIHByb3BzLCB0b2dnbGVNb3JlT3B0aW9ucywgbW9yZU9wdGlvbnNDb2x1bW4pIHtcbiAgICAgIGNvbnN0IEhlYWRlckNlbGxSZW5kZXJlciA9IGNlbGxJbmZvID0+IChcbiAgICAgICAgPEhlYWRlckNlbGxcbiAgICAgICAgICBjZWxsSW5mbz17Y2VsbEluZm99XG4gICAgICAgICAga2V5PXtjZWxsSW5mby5jb2x1bW5JbmRleH1cbiAgICAgICAgICBjb2x1bW5zPXtjb2x1bW5zfVxuICAgICAgICAgIGlzUGlubmVkPXtpc1Bpbm5lZH1cbiAgICAgICAgICBzaG93U3RhdHM9e3RoaXMuc3RhdGUuc2hvd1N0YXRzfVxuICAgICAgICAgIHByb3BzPXtwcm9wc31cbiAgICAgICAgICB0b2dnbGVNb3JlT3B0aW9ucz17dG9nZ2xlTW9yZU9wdGlvbnN9XG4gICAgICAgICAgbW9yZU9wdGlvbnNDb2x1bW49e21vcmVPcHRpb25zQ29sdW1ufVxuICAgICAgICAgIC8vIHBhc3MgZHVtbXkgc3R5bGUgdG8gcHJldmVudCB3YXJuaW5ncyBmcm9tIHJlYWN0LXZpcnR1YWxpemVkIEdyaWRcbiAgICAgICAgICBzdHlsZT17RFVNTVlfU1RZTEV9XG4gICAgICAgIC8+XG4gICAgICApO1xuICAgICAgcmV0dXJuIEhlYWRlckNlbGxSZW5kZXJlcjtcbiAgICB9XG4gICAgcmVuZGVyKCkge1xuICAgICAgY29uc3Qge1xuICAgICAgICBkYXRhQ29udGFpbmVyLFxuICAgICAgICBwaW5uZWRDb2x1bW5zID0gW10sXG4gICAgICAgIHRoZW1lID0ge30sXG4gICAgICAgIGZpeGVkV2lkdGgsXG4gICAgICAgIGZpeGVkSGVpZ2h0ID0gMCxcbiAgICAgICAgaGFzU3RhdHMsXG4gICAgICAgIGhhc0N1c3RvbVNjcm9sbEJhclN0eWxlXG4gICAgICB9ID0gdGhpcy5wcm9wcztcbiAgICAgIGNvbnN0IHVucGlubmVkQ29sdW1ucyA9IHRoaXMudW5waW5uZWRDb2x1bW5zKHRoaXMucHJvcHMpO1xuXG4gICAgICBjb25zdCB7Y2VsbFNpemVDYWNoZSA9IHt9LCBtb3JlT3B0aW9uc0NvbHVtbiwgZ2hvc3QsIHNob3dTdGF0c30gPSB0aGlzLnN0YXRlO1xuICAgICAgY29uc3QgdW5waW5uZWRDb2x1bW5zR2hvc3QgPSBnaG9zdFxuICAgICAgICA/IFsuLi51bnBpbm5lZENvbHVtbnMsIHtnaG9zdDogdHJ1ZX0gYXMgc3RyaW5nICYge2dob3N0OiBib29sZWFufV1cbiAgICAgICAgOiB1bnBpbm5lZENvbHVtbnM7XG4gICAgICBjb25zdCBwaW5uZWRDb2x1bW5zV2lkdGggPSBwaW5uZWRDb2x1bW5zLnJlZHVjZShcbiAgICAgICAgKGFjYywgdmFsKSA9PiBhY2MgKyAoZ2V0KGNlbGxTaXplQ2FjaGUsIHZhbCwgMCkgYXMgbnVtYmVyKSxcbiAgICAgICAgMFxuICAgICAgKTtcblxuICAgICAgY29uc3QgaGFzUGlubmVkQ29sdW1ucyA9IEJvb2xlYW4ocGlubmVkQ29sdW1ucy5sZW5ndGgpO1xuICAgICAgY29uc3Qge1xuICAgICAgICBoZWFkZXJSb3dIZWlnaHQgPSBkZWZhdWx0SGVhZGVyUm93SGVpZ2h0LFxuICAgICAgICBoZWFkZXJTdGF0c0NvbnRyb2xIZWlnaHQgPSBkZWZhdWx0SGVhZGVyU3RhdHNDb250cm9sSGVpZ2h0LFxuICAgICAgICBoZWFkZXJSb3dXU3RhdHNIZWlnaHQgPSBkZWZhdWx0SGVhZGVyUm93SGVpZ2h0LFxuICAgICAgICByb3dIZWlnaHQgPSBkZWZhdWx0Um93SGVpZ2h0XG4gICAgICB9ID0gdGhlbWU7XG5cbiAgICAgIGNvbnN0IGhlYWRlckdyaWRQcm9wcyA9IHtcbiAgICAgICAgY2VsbFNpemVDYWNoZSxcbiAgICAgICAgY2xhc3NOYW1lOiAnaGVhZGVyLWdyaWQnLFxuICAgICAgICBoZWlnaHQ6ICFoYXNTdGF0c1xuICAgICAgICAgID8gaGVhZGVyUm93SGVpZ2h0XG4gICAgICAgICAgOiBzaG93U3RhdHNcbiAgICAgICAgICA/IGhlYWRlclJvd1dTdGF0c0hlaWdodFxuICAgICAgICAgIDogaGVhZGVyUm93SGVpZ2h0ICsgaGVhZGVyU3RhdHNDb250cm9sSGVpZ2h0LFxuICAgICAgICByb3dDb3VudDogMSxcbiAgICAgICAgcm93SGVpZ2h0OiAhaGFzU3RhdHNcbiAgICAgICAgICA/IGhlYWRlclJvd0hlaWdodFxuICAgICAgICAgIDogc2hvd1N0YXRzXG4gICAgICAgICAgPyBoZWFkZXJSb3dXU3RhdHNIZWlnaHRcbiAgICAgICAgICA6IGhlYWRlclJvd0hlaWdodCArIGhlYWRlclN0YXRzQ29udHJvbEhlaWdodFxuICAgICAgfTtcblxuICAgICAgY29uc3QgZGF0YUdyaWRQcm9wcyA9IHtcbiAgICAgICAgY2VsbFNpemVDYWNoZSxcbiAgICAgICAgb3ZlcnNjYW5Db2x1bW5Db3VudCxcbiAgICAgICAgb3ZlcnNjYW5Sb3dDb3VudCxcbiAgICAgICAgcm93Q291bnQ6IGRhdGFDb250YWluZXIgPyBkYXRhQ29udGFpbmVyLm51bVJvd3MoKSA6IDAsXG4gICAgICAgIHJvd0hlaWdodFxuICAgICAgfTtcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPENvbnRhaW5lclxuICAgICAgICAgIGNsYXNzTmFtZT1cImRhdGEtdGFibGUtY29udGFpbmVyXCJcbiAgICAgICAgICByZWY9e3RoaXMucm9vdH1cbiAgICAgICAgICBoYXNDdXN0b21TY3JvbGxCYXJTdHlsZT17aGFzQ3VzdG9tU2Nyb2xsQmFyU3R5bGV9XG4gICAgICAgID5cbiAgICAgICAgICB7T2JqZWN0LmtleXMoY2VsbFNpemVDYWNoZSkubGVuZ3RoID8gKFxuICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgPFNjcm9sbFN5bmM+XG4gICAgICAgICAgICAgICAgeyh7b25TY3JvbGwsIHNjcm9sbExlZnQsIHNjcm9sbFRvcH0pID0+IHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicmVzdWx0cy10YWJsZS13cmFwcGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAge2hhc1Bpbm5lZENvbHVtbnMgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBrZXk9XCJwaW5uZWQtY29sdW1uc1wiIGNsYXNzTmFtZT1cInBpbm5lZC1jb2x1bW5zIGdyaWQtcm93XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxUYWJsZVNlY3Rpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc0xpc3Q9e3Bpbm5lZENsYXNzTGlzdH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1Bpbm5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbnM9e3Bpbm5lZENvbHVtbnN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyR3JpZFByb3BzPXtoZWFkZXJHcmlkUHJvcHN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZml4ZWRXaWR0aD17cGlubmVkQ29sdW1uc1dpZHRofVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uU2Nyb2xsPXthcmdzID0+IG9uU2Nyb2xsKHsuLi5hcmdzLCBzY3JvbGxMZWZ0fSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Nyb2xsVG9wPXtzY3JvbGxUb3B9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Nyb2xsTGVmdD17c2Nyb2xsTGVmdH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhR3JpZFByb3BzPXtkYXRhR3JpZFByb3BzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldEdyaWRSZWY9e3Bpbm5lZEdyaWQgPT4gKHRoaXMucGlubmVkR3JpZCA9IHBpbm5lZEdyaWQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbldpZHRoPXtjb2x1bW5XaWR0aEZ1bmN0aW9uKHBpbm5lZENvbHVtbnMsIGNlbGxTaXplQ2FjaGUpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlckNlbGxSZW5kZXI9e3RoaXMucmVuZGVySGVhZGVyQ2VsbChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBpbm5lZENvbHVtbnMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudG9nZ2xlTW9yZU9wdGlvbnMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb3JlT3B0aW9uc0NvbHVtblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YUNlbGxSZW5kZXI9e3RoaXMucmVuZGVyRGF0YUNlbGwocGlubmVkQ29sdW1ucywgdHJ1ZSwgdGhpcy5wcm9wcyl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleT1cInVucGlubmVkLWNvbHVtbnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luTGVmdDogYCR7aGFzUGlubmVkQ29sdW1ucyA/IGAke3Bpbm5lZENvbHVtbnNXaWR0aH1weGAgOiAnMCd9YFxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInVucGlubmVkLWNvbHVtbnMgZ3JpZC1jb2x1bW5cIlxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxUYWJsZVNlY3Rpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NMaXN0PXt1bnBpbm5lZENsYXNzTGlzdH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgaXNQaW5uZWQ9e2ZhbHNlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5zPXt1bnBpbm5lZENvbHVtbnNHaG9zdH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyR3JpZFByb3BzPXtoZWFkZXJHcmlkUHJvcHN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGZpeGVkV2lkdGg9e2ZpeGVkV2lkdGh9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGZpeGVkSGVpZ2h0PXtmaXhlZEhlaWdodH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25TY3JvbGw9e29uU2Nyb2xsfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGxUb3A9e3Njcm9sbFRvcH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2Nyb2xsTGVmdD17c2Nyb2xsTGVmdH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YUdyaWRQcm9wcz17ZGF0YUdyaWRQcm9wc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0R3JpZFJlZj17dW5waW5uZWRHcmlkID0+ICh0aGlzLnVucGlubmVkR3JpZCA9IHVucGlubmVkR3JpZCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbldpZHRoPXtjb2x1bW5XaWR0aEZ1bmN0aW9uKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVucGlubmVkQ29sdW1uc0dob3N0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbGxTaXplQ2FjaGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2hvc3RcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyQ2VsbFJlbmRlcj17dGhpcy5yZW5kZXJIZWFkZXJDZWxsKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVucGlubmVkQ29sdW1uc0dob3N0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50b2dnbGVNb3JlT3B0aW9ucyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb3JlT3B0aW9uc0NvbHVtblxuICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhQ2VsbFJlbmRlcj17dGhpcy5yZW5kZXJEYXRhQ2VsbChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnBpbm5lZENvbHVtbnNHaG9zdCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPC9TY3JvbGxTeW5jPlxuICAgICAgICAgICAgICB7aGFzU3RhdHMgPyAoXG4gICAgICAgICAgICAgICAgPFN0YXRzQ29udHJvbFxuICAgICAgICAgICAgICAgICAgdG9wPXtoZWFkZXJSb3dIZWlnaHR9XG4gICAgICAgICAgICAgICAgICBzaG93U3RhdHM9e3Nob3dTdGF0c31cbiAgICAgICAgICAgICAgICAgIHRvZ2dsZVNob3dTdGF0cz17dGhpcy50b2dnbGVTaG93U3RhdHN9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8Lz5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9Db250YWluZXI+XG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB3aXRoVGhlbWUoRGF0YVRhYmxlIGFzIFJlYWN0LkNvbXBvbmVudFR5cGU8RGF0YVRhYmxlUHJvcHM+KTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgRGF0YVRhYmxlRmFjdG9yeTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxpQkFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsaUJBQUEsR0FBQUgsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFHLFlBQUEsR0FBQUMsc0JBQUEsQ0FBQUosT0FBQTtBQUNBLElBQUFLLFNBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLElBQUEsR0FBQUYsc0JBQUEs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
|