@carto/kepler.gl 0.0.18-alpha.0 → 0.0.21
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/components/common/checkbox.js +2 -2
- package/dist/components/common/info-helper.js +4 -3
- package/dist/components/kepler-gl.js +9 -5
- package/dist/components/map-container.js +16 -2
- package/dist/components/plot-container.js +5 -3
- package/dist/components/side-panel/layer-panel/layer-config-group.js +21 -5
- package/dist/components/side-panel/layer-panel/layer-configurator.js +10 -4
- package/dist/components/side-panel/layer-panel/vis-config-switch.js +2 -1
- package/dist/constants/default-settings.js +5 -3
- package/dist/deckgl-layers/cluster-layer/cluster-layer.js +9 -4
- package/dist/layers/aggregation-layer.js +6 -3
- package/dist/layers/base-layer.js +9 -5
- package/dist/localization/en.js +3 -2
- package/dist/utils/layer-utils.js +17 -3
- package/package.json +14 -14
- package/src/components/common/checkbox.js +5 -1
- package/src/components/common/info-helper.js +2 -2
- package/src/components/kepler-gl.d.ts +1 -0
- package/src/components/kepler-gl.js +15 -3
- package/src/components/map-container.js +14 -1
- package/src/components/plot-container.js +3 -2
- package/src/components/side-panel/layer-panel/layer-config-group.js +19 -5
- package/src/components/side-panel/layer-panel/layer-configurator.js +9 -0
- package/src/components/side-panel/layer-panel/vis-config-switch.js +1 -0
- package/src/constants/default-settings.js +2 -0
- package/src/deckgl-layers/cluster-layer/cluster-layer.js +12 -2
- package/src/layers/aggregation-layer.js +5 -1
- package/src/layers/base-layer.js +6 -3
- package/src/localization/en.js +2 -1
- package/src/utils/layer-utils.d.ts +7 -0
- package/src/utils/layer-utils.js +15 -3
- package/umd/keplergl.min.js +180 -181
|
@@ -120,7 +120,7 @@ var Checkbox = /*#__PURE__*/function (_Component) {
|
|
|
120
120
|
var LabelElement = this.props.type === 'checkbox' ? StyledCheckboxInput : this.props.type === 'radio' ? StyledRadiuInput : StyledSwitchInput;
|
|
121
121
|
return /*#__PURE__*/_react["default"].createElement(StyledCheckbox, {
|
|
122
122
|
type: this.props.type,
|
|
123
|
-
className: (0, _classnames["default"])('kg-checkbox', this.props.className)
|
|
123
|
+
className: (0, _classnames["default"])('kg-checkbox', this.props.className, "kg-checkbox--".concat(this.props.type || 'switch'))
|
|
124
124
|
}, /*#__PURE__*/_react["default"].createElement(HiddenInput, inputProps), /*#__PURE__*/_react["default"].createElement(LabelElement, (0, _extends2["default"])({
|
|
125
125
|
className: "kg-checkbox__label"
|
|
126
126
|
}, labelProps), this.props.label));
|
|
@@ -152,4 +152,4 @@ exports["default"] = Checkbox;
|
|
|
152
152
|
onFocus: noop,
|
|
153
153
|
label: ''
|
|
154
154
|
});
|
|
155
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
155
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2NvbW1vbi9jaGVja2JveC5qcyJdLCJuYW1lcyI6WyJub29wIiwiU3R5bGVkU3dpdGNoSW5wdXQiLCJzdHlsZWQiLCJsYWJlbCIsInByb3BzIiwic2Vjb25kYXJ5IiwidGhlbWUiLCJzZWNvbmRhcnlTd2l0Y2giLCJpbnB1dFN3aXRjaCIsIlN0eWxlZENoZWNrYm94SW5wdXQiLCJpbnB1dENoZWNrYm94IiwiU3R5bGVkUmFkaXVJbnB1dCIsImlucHV0UmFkaW8iLCJIaWRkZW5JbnB1dCIsImlucHV0IiwiU3R5bGVkQ2hlY2tib3giLCJkaXYiLCJzd2l0Y2hIZWlnaHQiLCJ0eXBlIiwic3dpdGNoTGFiZWxNYXJnaW4iLCJDaGVja2JveCIsImZvY3VzZWQiLCJhcmdzIiwic2V0U3RhdGUiLCJvbkZvY3VzIiwib25CbHVyIiwiaW5wdXRQcm9wcyIsImhhbmRsZUZvY3VzIiwiaGFuZGxlQmx1ciIsImxhYmVsUHJvcHMiLCJodG1sRm9yIiwiaWQiLCJMYWJlbEVsZW1lbnQiLCJjbGFzc05hbWUiLCJDb21wb25lbnQiLCJQcm9wVHlwZXMiLCJzdHJpbmciLCJpc1JlcXVpcmVkIiwibm9kZSIsInZhbHVlIiwib25lT2YiLCJjaGVja2VkIiwiYm9vbCIsImRpc2FibGVkIiwiZXJyb3IiLCJhY3RpdmVDb2xvciIsImZ1bmMiLCJvbkNoYW5nZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFvQkE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7Ozs7Ozs7OztBQUVBLFNBQVNBLElBQVQsR0FBZ0IsQ0FBRTs7QUFFbEIsSUFBTUMsaUJBQWlCLEdBQUdDLDZCQUFPQyxLQUFWLGtHQUNuQixVQUFBQyxLQUFLO0FBQUEsU0FBS0EsS0FBSyxDQUFDQyxTQUFOLEdBQWtCRCxLQUFLLENBQUNFLEtBQU4sQ0FBWUMsZUFBOUIsR0FBZ0RILEtBQUssQ0FBQ0UsS0FBTixDQUFZRSxXQUFqRTtBQUFBLENB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QWhCLENBSFU7QUFJakJDLEVBQUFBLE9BQU8sRUFBRU4sc0JBQVVPLElBSkY7QUFLakJDLEVBQUFBLFFBQVEsRUFBRVIsc0JBQVVPLElBTEg7QUFPakJFLEVBQUFBLEtBQUssRUFBRVQsc0JBQVVDLE1BUEE7QUFRakIsWUFBUUQsc0JBQVVPLElBUkQ7QUFTakJHLEVBQUFBLFdBQVcsRUFBRVYsc0JBQVVDLE1BVE47QUFVakIvQixFQUFBQSxTQUFTLEVBQUU4QixzQkFBVU8sSUFWSjtBQVdqQmpCLEVBQUFBLE1BQU0sRUFBRVUsc0JBQVVXLElBWEQ7QUFZakJDLEVBQUFBLFFBQVEsRUFBRVosc0JBQVVXLElBWkg7QUFhakJ0QixFQUFBQSxPQUFPLEVBQUVXLHNCQUFVVztBQWJGLEM7aUNBREExQixRLGtCQWlCRztBQUNwQnVCLEVBQUFBLFFBQVEsRUFBRSxLQURVO0FBRXBCRixFQUFBQSxPQUFPLEVBQUUsS0FGVztBQUdwQmhCLEVBQUFBLE1BQU0sRUFBRXpCLElBSFk7QUFJcEIrQyxFQUFBQSxRQUFRLEVBQUUvQyxJQUpVO0FBS3BCd0IsRUFBQUEsT0FBTyxFQUFFeEIsSUFMVztBQU1wQkcsRUFBQUEsS0FBSyxFQUFFO0FBTmEsQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgMjAyMiBVYmVyIFRlY2hub2xvZ2llcywgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbmltcG9ydCBSZWFjdCwge0NvbXBvbmVudH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IHBpY2sgZnJvbSAnbG9kYXNoLnBpY2snO1xuaW1wb3J0IGNsYXNzbmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5cbmZ1bmN0aW9uIG5vb3AoKSB7fVxuXG5jb25zdCBTdHlsZWRTd2l0Y2hJbnB1dCA9IHN0eWxlZC5sYWJlbGBcbiAgJHtwcm9wcyA9PiAocHJvcHMuc2Vjb25kYXJ5ID8gcHJvcHMudGhlbWUuc2Vjb25kYXJ5U3dpdGNoIDogcHJvcHMudGhlbWUuaW5wdXRTd2l0Y2gpfTtcbmA7XG5cbmNvbnN0IFN0eWxlZENoZWNrYm94SW5wdXQgPSBzdHlsZWQubGFiZWxgXG4gICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuaW5wdXRDaGVja2JveH07XG5gO1xuXG5jb25zdCBTdHlsZWRSYWRpdUlucHV0ID0gc3R5bGVkLmxhYmVsYFxuICAke3Byb3BzID0+IHByb3BzLnRoZW1lLmlucHV0UmFkaW99O1xuYDtcblxuY29uc3QgSGlkZGVuSW5wdXQgPSBzdHlsZWQuaW5wdXRgXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgZGlzcGxheTogbm9uZTtcbmA7XG5cbmNvbnN0IFN0eWxlZENoZWNrYm94ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgbWluLWhlaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zd2l0Y2hIZWlnaHR9cHg7XG4gIG1hcmdpbi1sZWZ0OiAke3Byb3BzID0+IChwcm9wcy50eXBlID09PSAncmFkaW8nID8gMCA6IHByb3BzLnRoZW1lLnN3aXRjaExhYmVsTWFyZ2luKX1weDtcbmA7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENoZWNrYm94IGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBpZDogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgIGxhYmVsOiBQcm9wVHlwZXMubm9kZSxcbiAgICB2YWx1ZTogUHJvcFR5cGVzLm9uZU9mKFt0cnVlLCBmYWxzZSwgJ2luZGV0ZXJtaW5hdGUnXSksXG4gICAgY2hlY2tlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgZGlzYWJsZWQ6IFByb3BUeXBlcy5ib29sLFxuXG4gICAgZXJyb3I6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgc3dpdGNoOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBhY3RpdmVDb2xvcjogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBzZWNvbmRhcnk6IFByb3BUeXBlcy5ib29sLFxuICAgIG9uQmx1cjogUHJvcFR5cGVzLmZ1bmMsXG4gICAgb25DaGFuZ2U6IFByb3BUeXBlcy5mdW5jLFxuICAgIG9uRm9jdXM6IFByb3BUeXBlcy5mdW5jXG4gIH07XG5cbiAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcbiAgICBkaXNhYmxlZDogZmFsc2UsXG4gICAgY2hlY2tlZDogZmFsc2UsXG4gICAgb25CbHVyOiBub29wLFxuICAgIG9uQ2hhbmdlOiBub29wLFxuICAgIG9uRm9jdXM6IG5vb3AsXG4gICAgbGFiZWw6ICcnXG4gIH07XG5cbiAgc3RhdGUgPSB7XG4gICAgZm9jdXNlZDogZmFsc2VcbiAgfTtcblxuICBoYW5kbGVGb2N1cyA9IGFyZ3MgPT4ge1xuICAgIHRoaXMuc2V0U3RhdGUoe2ZvY3VzZWQ6IHRydWV9KTtcbiAgICB0aGlzLnByb3BzLm9uRm9jdXMoYXJncyk7XG4gIH07XG5cbiAgaGFuZGxlQmx1ciA9IGFyZ3MgPT4ge1xuICAgIHRoaXMuc2V0U3RhdGUoe2ZvY3VzZWQ6IGZhbHNlfSk7XG4gICAgdGhpcy5wcm9wcy5vbkJsdXIoYXJncyk7XG4gIH07XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IGlucHV0UHJvcHMgPSB7XG4gICAgICAuLi5waWNrKHRoaXMucHJvcHMsIFsnY2hlY2tlZCcsICdkaXNhYmxlZCcsICdpZCcsICdvbkNoYW5nZScsICd2YWx1ZSddKSxcbiAgICAgIHR5cGU6ICdjaGVja2JveCcsXG4gICAgICBvbkZvY3VzOiB0aGlzLmhhbmRsZUZvY3VzLFxuICAgICAgb25CbHVyOiB0aGlzLmhhbmRsZUJsdXJcbiAgICB9O1xuXG4gICAgY29uc3QgbGFiZWxQcm9wcyA9IHtcbiAgICAgIC4uLnBpY2sodGhpcy5wcm9wcywgWydjaGVja2VkJywgJ2Rpc2FibGVkJywgJ3NlY29uZGFyeSddKSxcbiAgICAgIGh0bWxGb3I6IHRoaXMucHJvcHMuaWRcbiAgICB9O1xuXG4gICAgY29uc3QgTGFiZWxFbGVtZW50ID1cbiAgICAgIHRoaXMucHJvcHMudHlwZSA9PT0gJ2NoZWNrYm94J1xuICAgICAgICA/IFN0eWxlZENoZWNrYm94SW5wdXRcbiAgICAgICAgOiB0aGlzLnByb3BzLnR5cGUgPT09ICdyYWRpbydcbiAgICAgICAgPyBTdHlsZWRSYWRpdUlucHV0XG4gICAgICAgIDogU3R5bGVkU3dpdGNoSW5wdXQ7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFN0eWxlZENoZWNrYm94XG4gICAgICAgIHR5cGU9e3RoaXMucHJvcHMudHlwZX1cbiAgICAgICAgY2xhc3NOYW1lPXtjbGFzc25hbWVzKFxuICAgICAgICAgICdrZy1jaGVja2JveCcsXG4gICAgICAgICAgdGhpcy5wcm9wcy5jbGFzc05hbWUsXG4gICAgICAgICAgYGtnLWNoZWNrYm94LS0ke3RoaXMucHJvcHMudHlwZSB8fCAnc3dpdGNoJ31gXG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIDxIaWRkZW5JbnB1dCB7Li4uaW5wdXRQcm9wc30gLz5cbiAgICAgICAgPExhYmVsRWxlbWVudCBjbGFzc05hbWU9XCJrZy1jaGVja2JveF9fbGFiZWxcIiB7Li4ubGFiZWxQcm9wc30+XG4gICAgICAgICAge3RoaXMucHJvcHMubGFiZWx9XG4gICAgICAgIDwvTGFiZWxFbGVtZW50PlxuICAgICAgPC9TdHlsZWRDaGVja2JveD5cbiAgICApO1xuICB9XG59XG4iXX0=
|
|
@@ -48,7 +48,8 @@ function InfoHelperFactory() {
|
|
|
48
48
|
property = _ref.property,
|
|
49
49
|
containerClass = _ref.containerClass,
|
|
50
50
|
width = _ref.width,
|
|
51
|
-
id = _ref.id
|
|
51
|
+
id = _ref.id,
|
|
52
|
+
children = _ref.children;
|
|
52
53
|
// TODO: move intl out
|
|
53
54
|
var intl = (0, _reactIntl.useIntl)();
|
|
54
55
|
return /*#__PURE__*/_react["default"].createElement(StyledInfoHelper, {
|
|
@@ -56,7 +57,7 @@ function InfoHelperFactory() {
|
|
|
56
57
|
width: width,
|
|
57
58
|
"data-tip": true,
|
|
58
59
|
"data-for": id
|
|
59
|
-
}, /*#__PURE__*/_react["default"].createElement(_icons.Docs, {
|
|
60
|
+
}, children ? children : /*#__PURE__*/_react["default"].createElement(_icons.Docs, {
|
|
60
61
|
height: "16px"
|
|
61
62
|
}), /*#__PURE__*/_react["default"].createElement(_styledComponents.Tooltip, {
|
|
62
63
|
id: id,
|
|
@@ -80,4 +81,4 @@ function InfoHelperFactory() {
|
|
|
80
81
|
|
|
81
82
|
var _default = InfoHelperFactory;
|
|
82
83
|
exports["default"] = _default;
|
|
83
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
84
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2NvbW1vbi9pbmZvLWhlbHBlci5qcyJdLCJuYW1lcyI6WyJTdHlsZWRJbmZvSGVscGVyIiwic3R5bGVkIiwiZGl2IiwicHJvcHMiLCJ0aGVtZSIsImxhYmVsQ29sb3IiLCJ3aWR0aCIsInRleHRDb2xvckhsIiwiSW5mb0hlbHBlckZhY3RvcnkiLCJwcm9wVHlwZXMiLCJkZXNjcmlwdGlvbiIsIlByb3BUeXBlcyIsInN0cmluZyIsImlzUmVxdWlyZWQiLCJjb250YWluZXJDbGFzcyIsIkluZm9IZWxwZXIiLCJwcm9wZXJ0eSIsImlkIiwiY2hpbGRyZW4iLCJpbnRsIiwiZm9ybWF0TWVzc2FnZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFvQkE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7QUFFQSxJQUFNQSxnQkFBZ0IsR0FBR0MsOEJBQU9DLEdBQVYsaVRBR1gsVUFBQUMsS0FBSztBQUFBLFNBQUlBLEtBQUssQ0FBQ0MsS0FBTixDQUFZQyxVQUFoQjtBQUFBLENBSE0sRUFNVCxVQUFBRixLQUFLO0FBQUEsU0FBS0EsS0FBSyxDQUFDRyxLQUFOLGFBQWlCSCxLQUFLLENBQUNHLEtBQXZCLFVBQW1DLE1BQXhDO0FBQUEsQ0FOSSxFQU9MLFVBQUFILEtBQUs7QUFBQSxTQUFLQSxLQUFLLENBQUNHLEtBQU4sR0FBYyxNQUFkLEdBQXVCLE9BQTVCO0FBQUEsQ0FQQSxFQVdULFVBQUFILEtBQUs7QUFBQSxTQUFJQSxLQUFLLENBQUNDLEtBQU4sQ0FBWUcsV0FBaEI7QUFBQSxDQVhJLENBQXRCOztBQWVBLFNBQVNDLGlCQUFULEdBQTZCO0FBQzNCLE1BQU1DLFNBQVMsR0FBRztBQUNoQkMsSUFBQUEsV0FBVyxFQUFFQyxzQkFBVUMsTUFBVixDQUFpQkMsVUFEZDtBQUVoQkMsSUFBQUEsY0FBYyxFQUFFSCxzQkFBVUM7QUFGVixHQUFsQjs7QUFJQSxNQUFNRyxVQUFVLEdBQUcsU0FBYkEsVUFBYSxPQUFrRTtBQUFBLFFBQWhFTCxXQUFnRSxRQUFoRUEsV0FBZ0U7QUFBQSxRQUFuRE0sUUFBbUQsUUFBbkRBLFFBQW1EO0FBQUEsUUFBekNGLGNBQXlDLFFBQXpDQSxjQUF5QztBQUFBLFFBQXpCUixLQUF5QixRQUF6QkEsS0FBeUI7QUFBQSxRQUFsQlcsRUFBa0IsUUFBbEJBLEVBQWtCO0FBQUEsUUFBZEMsUUFBYyxRQUFkQSxRQUFjO0FBQ25GO0FBQ0EsUUFBTUMsSUFBSSxHQUFHLHlCQUFiO0FBRUEsd0JBQ0UsZ0NBQUMsZ0JBQUQ7QUFDRSxNQUFBLFNBQVMsd0JBQWlCTCxjQUFjLElBQUksRUFBbkMsQ0FEWDtBQUVFLE1BQUEsS0FBSyxFQUFFUixLQUZUO0FBR0Usc0JBSEY7QUFJRSxrQkFBVVc7QUFKWixPQU1HQyxRQUFRLEdBQUdBLFFBQUgsZ0JBQWMsZ0NBQUMsV0FBRDtBQUFNLE1BQUEsTUFBTSxFQUFDO0FBQWIsTUFOekIsZUFPRSxnQ0FBQyx5QkFBRDtBQUFTLE1BQUEsRUFBRSxFQUFFRCxFQUFiO0FBQWlCLE1BQUEsTUFBTSxFQUFDO0FBQXhCLG9CQUNFO0FBQUssTUFBQSxTQUFTLEVBQUM7QUFBZixPQUNHUCxXQUFXLGlCQUNWLGdDQUFDLDhCQUFEO0FBQ0UsTUFBQSxFQUFFLEVBQUVBLFdBRE47QUFFRSxNQUFBLFlBQVksRUFBRUEsV0FGaEI7QUFHRSxNQUFBLE1BQU0sRUFBRTtBQUNOTSxRQUFBQSxRQUFRLEVBQUVHLElBQUksQ0FBQ0MsYUFBTCxDQUFtQjtBQUMzQkgsVUFBQUEsRUFBRSxFQUFFRCxRQUFRLHNCQUFlLHFCQUFTQSxRQUFULENBQWYsSUFBc0M7QUFEdkIsU0FBbkI7QUFESjtBQUhWLE1BRkosQ0FERixDQVBGLENBREY7QUF5QkQsR0E3QkQ7O0FBOEJBRCxFQUFBQSxVQUFVLENBQUNOLFNBQVgsR0FBdUJBLFNBQXZCO0FBQ0EsU0FBT00sVUFBUDtBQUNEOztlQUVjUCxpQiIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgMjAyMiBVYmVyIFRlY2hub2xvZ2llcywgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHt1c2VJbnRsfSBmcm9tICdyZWFjdC1pbnRsJztcbmltcG9ydCB7Rm9ybWF0dGVkTWVzc2FnZX0gZnJvbSAnbG9jYWxpemF0aW9uJztcbmltcG9ydCB7VG9vbHRpcH0gZnJvbSAnLi9zdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQge0RvY3N9IGZyb20gJ2NvbXBvbmVudHMvY29tbW9uL2ljb25zJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IHtjYW1lbGl6ZX0gZnJvbSAndXRpbHMvdXRpbHMnO1xuXG5jb25zdCBTdHlsZWRJbmZvSGVscGVyID0gc3R5bGVkLmRpdmBcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmxhYmVsQ29sb3J9O1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgLmluZm8taGVscGVyX19jb250ZW50IHtcbiAgICB3aWR0aDogJHtwcm9wcyA9PiAocHJvcHMud2lkdGggPyBgJHtwcm9wcy53aWR0aH1weGAgOiAnYXV0bycpfTtcbiAgICBtYXgtd2lkdGg6ICR7cHJvcHMgPT4gKHByb3BzLndpZHRoID8gJ2F1dG8nIDogJzEwMHB4Jyl9O1xuICB9XG4gIDpob3ZlciB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnRleHRDb2xvckhsfTtcbiAgfVxuYDtcblxuZnVuY3Rpb24gSW5mb0hlbHBlckZhY3RvcnkoKSB7XG4gIGNvbnN0IHByb3BUeXBlcyA9IHtcbiAgICBkZXNjcmlwdGlvbjogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgIGNvbnRhaW5lckNsYXNzOiBQcm9wVHlwZXMuc3RyaW5nXG4gIH07XG4gIGNvbnN0IEluZm9IZWxwZXIgPSAoe2Rlc2NyaXB0aW9uLCBwcm9wZXJ0eSwgY29udGFpbmVyQ2xhc3MsIHdpZHRoLCBpZCwgY2hpbGRyZW59KSA9PiB7XG4gICAgLy8gVE9ETzogbW92ZSBpbnRsIG91dFxuICAgIGNvbnN0IGludGwgPSB1c2VJbnRsKCk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFN0eWxlZEluZm9IZWxwZXJcbiAgICAgICAgY2xhc3NOYW1lPXtgaW5mby1oZWxwZXIgJHtjb250YWluZXJDbGFzcyB8fCAnJ31gfVxuICAgICAgICB3aWR0aD17d2lkdGh9XG4gICAgICAgIGRhdGEtdGlwXG4gICAgICAgIGRhdGEtZm9yPXtpZH1cbiAgICAgID5cbiAgICAgICAge2NoaWxkcmVuID8gY2hpbGRyZW4gOiA8RG9jcyBoZWlnaHQ9XCIxNnB4XCIgLz59XG4gICAgICAgIDxUb29sdGlwIGlkPXtpZH0gZWZmZWN0PVwic29saWRcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImluZm8taGVscGVyX19jb250ZW50XCI+XG4gICAgICAgICAgICB7ZGVzY3JpcHRpb24gJiYgKFxuICAgICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZVxuICAgICAgICAgICAgICAgIGlkPXtkZXNjcmlwdGlvbn1cbiAgICAgICAgICAgICAgICBkZWZhdWx0VmFsdWU9e2Rlc2NyaXB0aW9ufVxuICAgICAgICAgICAgICAgIHZhbHVlcz17e1xuICAgICAgICAgICAgICAgICAgcHJvcGVydHk6IGludGwuZm9ybWF0TWVzc2FnZSh7XG4gICAgICAgICAgICAgICAgICAgIGlkOiBwcm9wZXJ0eSA/IGBwcm9wZXJ0eS4ke2NhbWVsaXplKHByb3BlcnR5KX1gIDogJ21pc2MuZW1wdHknXG4gICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICA8L1N0eWxlZEluZm9IZWxwZXI+XG4gICAgKTtcbiAgfTtcbiAgSW5mb0hlbHBlci5wcm9wVHlwZXMgPSBwcm9wVHlwZXM7XG4gIHJldHVybiBJbmZvSGVscGVyO1xufVxuXG5leHBvcnQgZGVmYXVsdCBJbmZvSGVscGVyRmFjdG9yeTtcbiJdfQ==
|
|
@@ -194,7 +194,8 @@ var plotContainerSelector = function plotContainerSelector(props) {
|
|
|
194
194
|
setExportImageSetting: props.uiStateActions.setExportImageSetting,
|
|
195
195
|
setExportImageDataUri: props.uiStateActions.setExportImageDataUri,
|
|
196
196
|
setExportImageError: props.uiStateActions.setExportImageError,
|
|
197
|
-
splitMaps: props.visState.splitMaps
|
|
197
|
+
splitMaps: props.visState.splitMaps,
|
|
198
|
+
maskPolygon: props.maskPolygon
|
|
198
199
|
};
|
|
199
200
|
};
|
|
200
201
|
|
|
@@ -402,7 +403,8 @@ function KeplerGlFactory(BottomWidget, GeoCoderPanel, MapContainer, MapsLayout,
|
|
|
402
403
|
height = _this$props.height,
|
|
403
404
|
uiState = _this$props.uiState,
|
|
404
405
|
visState = _this$props.visState,
|
|
405
|
-
readOnly = _this$props.readOnly
|
|
406
|
+
readOnly = _this$props.readOnly,
|
|
407
|
+
maskPolygon = _this$props.maskPolygon;
|
|
406
408
|
var dimensions = this.state.dimensions || {
|
|
407
409
|
width: width,
|
|
408
410
|
height: height
|
|
@@ -426,14 +428,16 @@ function KeplerGlFactory(BottomWidget, GeoCoderPanel, MapContainer, MapsLayout,
|
|
|
426
428
|
key: 0,
|
|
427
429
|
index: 0
|
|
428
430
|
}, mapFields, {
|
|
429
|
-
mapLayers: null
|
|
431
|
+
mapLayers: null,
|
|
432
|
+
maskPolygon: maskPolygon
|
|
430
433
|
}))] : splitMaps.map(function (settings, index) {
|
|
431
434
|
return /*#__PURE__*/_react["default"].createElement(MapContainer, (0, _extends2["default"])({
|
|
432
435
|
key: index,
|
|
433
436
|
index: index,
|
|
434
437
|
primary: index === 1
|
|
435
438
|
}, mapFields, {
|
|
436
|
-
mapLayers: splitMaps[index].layers
|
|
439
|
+
mapLayers: splitMaps[index].layers,
|
|
440
|
+
maskPolygon: maskPolygon
|
|
437
441
|
}));
|
|
438
442
|
});
|
|
439
443
|
return /*#__PURE__*/_react["default"].createElement(_context.RootContext.Provider, {
|
|
@@ -554,4 +558,4 @@ function mergeActions(actions, userActions) {
|
|
|
554
558
|
|
|
555
559
|
var _default = KeplerGlFactory;
|
|
556
560
|
exports["default"] = _default;
|
|
557
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wb25lbnRzL2tlcGxlci1nbC5qcyJdLCJuYW1lcyI6WyJHbG9iYWxTdHlsZSIsInN0eWxlZCIsImRpdiIsInByb3BzIiwidGhlbWUiLCJmb250RmFtaWx5IiwiZm9udFdlaWdodCIsImZvbnRTaXplIiwibGluZUhlaWdodCIsImxhYmVsQ29sb3IiLCJCb3R0b21XaWRnZXRPdXRlciIsImFic29sdXRlIiwibWFwRmllbGRzU2VsZWN0b3IiLCJnZXRNYXBib3hSZWYiLCJtYXBib3hBcGlBY2Nlc3NUb2tlbiIsIm1hcGJveEFwaVVybCIsIm1hcFN0YXRlIiwibWFwU3R5bGUiLCJvbkRlY2tJbml0aWFsaXplZCIsIm9uVmlld1N0YXRlQ2hhbmdlIiwiZGVja0dsUHJvcHMiLCJ1aVN0YXRlQWN0aW9ucyIsInZpc1N0YXRlQWN0aW9ucyIsIm1hcFN0YXRlQWN0aW9ucyIsImVkaXRvciIsInZpc1N0YXRlIiwiZGF0YXNldHMiLCJsYXllcnMiLCJsYXllck9yZGVyIiwibGF5ZXJEYXRhIiwibGF5ZXJCbGVuZGluZyIsImZpbHRlcnMiLCJpbnRlcmFjdGlvbkNvbmZpZyIsImhvdmVySW5mbyIsImNsaWNrZWQiLCJtb3VzZVBvcyIsImFuaW1hdGlvbkNvbmZpZyIsImFjdGl2ZVNpZGVQYW5lbCIsInVpU3RhdGUiLCJtYXBDb250cm9scyIsInJlYWRPbmx5IiwibG9jYWxlIiwic2lkZVBhbmVsU2VsZWN0b3IiLCJhdmFpbGFibGVQcm92aWRlcnMiLCJhcHBOYW1lIiwidmVyc2lvbiIsImFwcFdlYnNpdGUiLCJvblNhdmVNYXAiLCJtYXBTdHlsZUFjdGlvbnMiLCJsYXllckNsYXNzZXMiLCJtYXBJbmZvIiwid2lkdGgiLCJzaWRlUGFuZWxXaWR0aCIsIm1hcFNhdmVkIiwicHJvdmlkZXJTdGF0ZSIsInBsb3RDb250YWluZXJTZWxlY3RvciIsImhlaWdodCIsImV4cG9ydEltYWdlU2V0dGluZyIsImV4cG9ydEltYWdlIiwibWFwRmllbGRzIiwiYWRkTm90aWZpY2F0aW9uIiwic2V0RXhwb3J0SW1hZ2VTZXR0aW5nIiwic2V0RXhwb3J0SW1hZ2VEYXRhVXJpIiwic2V0RXhwb3J0SW1hZ2VFcnJvciIsInNwbGl0TWFwcyIsImlzU3BsaXRTZWxlY3RvciIsImxlbmd0aCIsImJvdHRvbVdpZGdldFNlbGVjdG9yIiwidG9nZ2xlTW9kYWwiLCJzaWRlUGFuZWwiLCJtYXJnaW4iLCJsZWZ0IiwibW9kYWxDb250YWluZXJTZWxlY3RvciIsInJvb3ROb2RlIiwicHJvdmlkZXJBY3Rpb25zIiwiY2xvdWRQcm92aWRlcnMiLCJvbkV4cG9ydFRvQ2xvdWRTdWNjZXNzIiwib25Mb2FkQ2xvdWRNYXBTdWNjZXNzIiwib25Mb2FkQ2xvdWRNYXBFcnJvciIsIm9uRXhwb3J0VG9DbG91ZEVycm9yIiwiZ2VvQ29kZXJQYW5lbFNlbGVjdG9yIiwiaXNHZW9jb2RlckVuYWJsZWQiLCJnZW9jb2RlciIsImVuYWJsZWQiLCJ1cGRhdGVWaXNEYXRhIiwicmVtb3ZlRGF0YXNldCIsInVwZGF0ZU1hcCIsIm5vdGlmaWNhdGlvblBhbmVsU2VsZWN0b3IiLCJyZW1vdmVOb3RpZmljYXRpb24iLCJub3RpZmljYXRpb25zIiwiREVGQVVMVF9LRVBMRVJfR0xfUFJPUFMiLCJtYXBTdHlsZXMiLCJtYXBTdHlsZXNSZXBsYWNlRGVmYXVsdCIsIkRFRkFVTFRfTUFQQk9YX0FQSV9VUkwiLCJLRVBMRVJfR0xfTkFNRSIsIktFUExFUl9HTF9WRVJTSU9OIiwiRElNRU5TSU9OUyIsIktlcGxlckdsRmFjdG9yeSIsImRlcHMiLCJCb3R0b21XaWRnZXRGYWN0b3J5IiwiR2VvQ29kZXJQYW5lbEZhY3RvcnkiLCJNYXBDb250YWluZXJGYWN0b3J5IiwiTWFwc0xheW91dEZhY3RvcnkiLCJNb2RhbENvbnRhaW5lckZhY3RvcnkiLCJTaWRlUGFuZWxGYWN0b3J5IiwiUGxvdENvbnRhaW5lckZhY3RvcnkiLCJOb3RpZmljYXRpb25QYW5lbEZhY3RvcnkiLCJCb3R0b21XaWRnZXQiLCJHZW9Db2RlclBhbmVsIiwiTWFwQ29udGFpbmVyIiwiTWFwc0xheW91dCIsIk1vZGFsQ29udGFpbmVyIiwiU2lkZVBhbmVsIiwiUGxvdENvbnRhaW5lciIsIk5vdGlmaWNhdGlvblBhbmVsIiwiS2VwbGVyR0wiLCJkaW1lbnNpb25zIiwic2V0U3RhdGUiLCJ0aGVtZVNlbGVjdG9yIiwiYmFzaWNUaGVtZSIsIlRIRU1FIiwibGlnaHQiLCJ0aGVtZUxUIiwiYmFzZSIsInRoZW1lQlMiLCJwcm92aWRlcnMiLCJBcnJheSIsImlzQXJyYXkiLCJoYXNTdG9yYWdlIiwic29tZSIsInAiLCJoYXNQcml2YXRlU3RvcmFnZSIsImhhc1NoYXJlIiwiaGFzU2hhcmluZ1VybCIsImxvY2FsZU1lc3NhZ2VzIiwiY3VzdG9tTWVzc2FnZXMiLCJtZXNzYWdlcyIsImRlZmF1bHRTdHlsZXMiLCJPYmplY3QiLCJ2YWx1ZXMiLCJjdXN0b21TdHlsZXMiLCJtYXAiLCJtcyIsImlkIiwiYWxsU3R5bGVzIiwicmVkdWNlIiwiYWNjdSIsInN0eWxlIiwiaGFzU3R5bGVPYmplY3QiLCJ0b0xvYWQiLCJ0b1JlcXVlc3QiLCJsb2FkTWFwU3R5bGVzIiwicmVxdWVzdE1hcFN0eWxlcyIsIl92YWxpZGF0ZU1hcGJveFRva2VuIiwiX2xvYWRNYXBTdHlsZSIsIm9uS2VwbGVyR2xJbml0aWFsaXplZCIsInJvb3QiLCJjdXJyZW50IiwiSFRNTEVsZW1lbnQiLCJfaGFuZGxlUmVzaXplIiwiQ29uc29sZSIsIndhcm4iLCJNSVNTSU5HX01BUEJPWF9UT0tFTiIsInN0YXRlIiwiaXNTcGxpdCIsImF2YWlsYWJsZVRoZW1lU2VsZWN0b3IiLCJsb2NhbGVNZXNzYWdlc1NlbGVjdG9yIiwiaXNFeHBvcnRpbmdJbWFnZSIsImV4cG9ydGluZyIsInNpZGVGaWVsZHMiLCJwbG90Q29udGFpbmVyRmllbGRzIiwiYm90dG9tV2lkZ2V0RmllbGRzIiwibW9kYWxDb250YWluZXJGaWVsZHMiLCJnZW9Db2RlclBhbmVsRmllbGRzIiwibm90aWZpY2F0aW9uUGFuZWxGaWVsZHMiLCJtYXBDb250YWluZXJzIiwic2V0dGluZ3MiLCJpbmRleCIsImRpc3BsYXkiLCJmbGV4RGlyZWN0aW9uIiwicG9zaXRpb24iLCJib3R0b21XaWRnZXRSZWYiLCJDb21wb25lbnQiLCJSb290Q29udGV4dCIsIm1hcFN0YXRlVG9Qcm9wcyIsIm1ha2VNYXBEaXNwYXRjaFRvUHJvcHMiLCJkZWZhdWx0VXNlckFjdGlvbnMiLCJnZXREaXNwYXRjaCIsImRpc3BhdGNoIiwiZ2V0VXNlckFjdGlvbnMiLCJhY3Rpb25zIiwibWFrZUdldEFjdGlvbkNyZWF0b3JzIiwidXNlckFjdGlvbnMiLCJWaXNTdGF0ZUFjdGlvbnMiLCJNYXBTdGF0ZUFjdGlvbnMiLCJNYXBTdHlsZUFjdGlvbnMiLCJVSVN0YXRlQWN0aW9ucyIsIlByb3ZpZGVyQWN0aW9ucyIsIm1lcmdlQWN0aW9ucyIsImdldEFjdGlvbkNyZWF0b3JzIiwibWFwRGlzcGF0Y2hUb1Byb3BzIiwib3duUHJvcHMiLCJncm91cGVkQWN0aW9uQ3JlYXRvcnMiLCJvdmVycmlkZXMiLCJrZXkiLCJoYXNPd25Qcm9wZXJ0eSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBb0JBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBOztBQU9BOztBQUVBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBOztBQUNBOztBQUNBOztBQUVBOztBQUNBOzs7Ozs7Ozs7Ozs7QUFFQTtBQUNBO0FBQ0EsSUFBTUEsV0FBVyxHQUFHQyw2QkFBT0MsR0FBVix3Z0JBQ0EsVUFBQUMsS0FBSztBQUFBLFNBQUlBLEtBQUssQ0FBQ0MsS0FBTixDQUFZQyxVQUFoQjtBQUFBLENBREwsRUFFQSxVQUFBRixLQUFLO0FBQUEsU0FBSUEsS0FBSyxDQUFDQyxLQUFOLENBQVlFLFVBQWhCO0FBQUEsQ0FGTCxFQUdGLFVB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cEQsTUFBQUEsZUFBZSxFQUFmQSxlQURLO0FBRUxDLE1BQUFBLGVBQWUsRUFBZkEsZUFGSztBQUdMeUIsTUFBQUEsZUFBZSxFQUFmQSxlQUhLO0FBSUwzQixNQUFBQSxjQUFjLEVBQWRBLGNBSks7QUFLTHFELE1BQUFBLGVBQWUsRUFBZkEsZUFMSztBQU1Ma0gsTUFBQUEsUUFBUSxFQUFSQTtBQU5LLEtBQVA7QUFRRCxHQWpCTSxDQUFQO0FBa0JEOztBQUVELFNBQVNILHNCQUFULEdBQWtDO0FBQ2hDLE1BQU1jLGlCQUFpQixHQUFHUixxQkFBcUIsRUFBL0M7O0FBQ0EsTUFBTVMsa0JBQWtCLEdBQUcsU0FBckJBLGtCQUFxQixDQUFDWixRQUFELEVBQVdhLFFBQVgsRUFBd0I7QUFDakQsUUFBTUMscUJBQXFCLEdBQUdILGlCQUFpQixDQUFDWCxRQUFELEVBQVdhLFFBQVgsQ0FBL0M7QUFFQSwyQ0FDS0MscUJBREw7QUFFRWQsTUFBQUEsUUFBUSxFQUFSQTtBQUZGO0FBSUQsR0FQRDs7QUFTQSxTQUFPWSxrQkFBUDtBQUNEO0FBRUQ7QUFDQTtBQUNBOzs7QUFDQSxTQUFTRixZQUFULENBQXNCUixPQUF0QixFQUErQkUsV0FBL0IsRUFBNEM7QUFDMUMsTUFBTVcsU0FBUyxHQUFHLEVBQWxCOztBQUNBLE9BQUssSUFBTUMsR0FBWCxJQUFrQlosV0FBbEIsRUFBK0I7QUFDN0IsUUFBSUEsV0FBVyxDQUFDYSxjQUFaLENBQTJCRCxHQUEzQixLQUFtQ2QsT0FBTyxDQUFDZSxjQUFSLENBQXVCRCxHQUF2QixDQUF2QyxFQUFvRTtBQUNsRUQsTUFBQUEsU0FBUyxDQUFDQyxHQUFELENBQVQsR0FBaUJaLFdBQVcsQ0FBQ1ksR0FBRCxDQUE1QjtBQUNEO0FBQ0Y7O0FBRUQseUNBQVdkLE9BQVgsR0FBdUJhLFNBQXZCO0FBQ0Q7O2VBRWMxRyxlIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDIyIFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuaW1wb3J0IFJlYWN0LCB7Q29tcG9uZW50LCBjcmVhdGVSZWZ9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBDb25zb2xlIGZyb20gJ2dsb2JhbC9jb25zb2xlJztcbmltcG9ydCB7YmluZEFjdGlvbkNyZWF0b3JzfSBmcm9tICdyZWR1eCc7XG5pbXBvcnQgc3R5bGVkLCB7VGhlbWVQcm92aWRlciwgd2l0aFRoZW1lfSBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQge2NyZWF0ZVNlbGVjdG9yfSBmcm9tICdyZXNlbGVjdCc7XG5pbXBvcnQge2Nvbm5lY3QgYXMga2VwbGVyR2xDb25uZWN0fSBmcm9tICdjb25uZWN0L2tlcGxlcmdsLWNvbm5lY3QnO1xuaW1wb3J0IHtJbnRsUHJvdmlkZXJ9IGZyb20gJ3JlYWN0LWludGwnO1xuaW1wb3J0IHttZXNzYWdlc30gZnJvbSAnLi4vbG9jYWxpemF0aW9uJztcbmltcG9ydCB7Um9vdENvbnRleHR9IGZyb20gJ2NvbXBvbmVudHMvY29udGV4dCc7XG5cbmltcG9ydCAqIGFzIFZpc1N0YXRlQWN0aW9ucyBmcm9tICdhY3Rpb25zL3Zpcy1zdGF0ZS1hY3Rpb25zJztcbmltcG9ydCAqIGFzIE1hcFN0YXRlQWN0aW9ucyBmcm9tICdhY3Rpb25zL21hcC1zdGF0ZS1hY3Rpb25zJztcbmltcG9ydCAqIGFzIE1hcFN0eWxlQWN0aW9ucyBmcm9tICdhY3Rpb25zL21hcC1zdHlsZS1hY3Rpb25zJztcbmltcG9ydCAqIGFzIFVJU3RhdGVBY3Rpb25zIGZyb20gJ2FjdGlvbnMvdWktc3RhdGUtYWN0aW9ucyc7XG5pbXBvcnQgKiBhcyBQcm92aWRlckFjdGlvbnMgZnJvbSAnYWN0aW9ucy9wcm92aWRlci1hY3Rpb25zJztcblxuaW1wb3J0IHtcbiAgRElNRU5TSU9OUyxcbiAgS0VQTEVSX0dMX05BTUUsXG4gIEtFUExFUl9HTF9WRVJTSU9OLFxuICBUSEVNRSxcbiAgREVGQVVMVF9NQVBCT1hfQVBJX1VSTFxufSBmcm9tICdjb25zdGFudHMvZGVmYXVsdC1zZXR0aW5ncyc7XG5pbXBvcnQge01JU1NJTkdfTUFQQk9YX1RPS0VOfSBmcm9tICdjb25zdGFudHMvdXNlci1mZWVkYmFja3MnO1xuXG5pbXBvcnQgU2lkZVBhbmVsRmFjdG9yeSBmcm9tICcuL3NpZGUtcGFuZWwnO1xuaW1wb3J0IE1hcENvbnRhaW5lckZhY3RvcnkgZnJvbSAnLi9tYXAtY29udGFpbmVyJztcbmltcG9ydCBNYXBzTGF5b3V0RmFjdG9yeSBmcm9tICcuL21hcHMtbGF5b3V0JztcbmltcG9ydCBCb3R0b21XaWRnZXRGYWN0b3J5IGZyb20gJy4vYm90dG9tLXdpZGdldCc7XG5pbXBvcnQgTW9kYWxDb250YWluZXJGYWN0b3J5IGZyb20gJy4vbW9kYWwtY29udGFpbmVyJztcbmltcG9ydCBQbG90Q29udGFpbmVyRmFjdG9yeSBmcm9tICcuL3Bsb3QtY29udGFpbmVyJztcbmltcG9ydCBOb3RpZmljYXRpb25QYW5lbEZhY3RvcnkgZnJvbSAnLi9ub3RpZmljYXRpb24tcGFuZWwnO1xuaW1wb3J0IEdlb0NvZGVyUGFuZWxGYWN0b3J5IGZyb20gJy4vZ2VvY29kZXItcGFuZWwnO1xuXG5pbXBvcnQge2dlbmVyYXRlSGFzaElkfSBmcm9tICd1dGlscy91dGlscyc7XG5pbXBvcnQge3ZhbGlkYXRlVG9rZW59IGZyb20gJ3V0aWxzL21hcGJveC11dGlscyc7XG5pbXBvcnQge21lcmdlTWVzc2FnZXN9IGZyb20gJ3V0aWxzL2xvY2FsZS11dGlscyc7XG5cbmltcG9ydCB7dGhlbWUgYXMgYmFzaWNUaGVtZSwgdGhlbWVMVCwgdGhlbWVCU30gZnJvbSAnc3R5bGVzL2Jhc2UnO1xuaW1wb3J0IHtvYnNlcnZlRGltZW5zaW9ucywgdW5vYnNlcnZlRGltZW5zaW9uc30gZnJvbSAnLi4vdXRpbHMvb2JzZXJ2ZS1kaW1lbnNpb25zJztcblxuLy8gTWF5YmUgd2Ugc2hvdWxkIHRoaW5rIGFib3V0IGV4cG9ydGluZyB0aGlzIG9yIGNyZWF0aW5nIGEgdmFyaWFibGVcbi8vIGFzIHBhcnQgb2YgdGhlIGJhc2UuanMgdGhlbWVcbmNvbnN0IEdsb2JhbFN0eWxlID0gc3R5bGVkLmRpdmBcbiAgZm9udC1mYW1pbHk6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZm9udEZhbWlseX07XG4gIGZvbnQtd2VpZ2h0OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmZvbnRXZWlnaHR9O1xuICBmb250LXNpemU6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZm9udFNpemV9O1xuICBsaW5lLWhlaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5saW5lSGVpZ2h0fTtcblxuICAqLFxuICAqOmJlZm9yZSxcbiAgKjphZnRlciB7XG4gICAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB9XG5cbiAgdWwge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG5cbiAgbGkge1xuICAgIG1hcmdpbjogMDtcbiAgfVxuXG4gIGEge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5sYWJlbENvbG9yfTtcbiAgfVxuXG4gIC5tYXBib3hnbC1jdHJsIC5tYXBib3hnbC1jdHJsLWxvZ28ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbmA7XG5cbmNvbnN0IEJvdHRvbVdpZGdldE91dGVyID0gc3R5bGVkLmRpdihcbiAgKHthYnNvbHV0ZX0pID0+IGBcbiAgJHthYnNvbHV0ZSA/ICdwb3NpdGlvbjogYWJzb2x1dGU7IGJvdHRvbTogMDsgcmlnaHQ6IDA7JyA6ICcnfVxuICBwb2ludGVyLWV2ZW50czogbm9uZTsgLyogcHJldmVudCBwYWRkaW5nIGZyb20gYmxvY2tpbmcgaW5wdXQgKi9cbiAgJiA+ICoge1xuICAgIC8qIGFsbCBjaGlsZHJlbiBzaG91bGQgYWxsb3cgaW5wdXQgKi9cbiAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuICB9YFxuKTtcblxuZXhwb3J0IGNvbnN0IG1hcEZpZWxkc1NlbGVjdG9yID0gcHJvcHMgPT4gKHtcbiAgZ2V0TWFwYm94UmVmOiBwcm9wcy5nZXRNYXBib3hSZWYsXG4gIG1hcGJveEFwaUFjY2Vzc1Rva2VuOiBwcm9wcy5tYXBib3hBcGlBY2Nlc3NUb2tlbixcbiAgbWFwYm94QXBpVXJsOiBwcm9wcy5tYXBib3hBcGlVcmwsXG4gIG1hcFN0YXRlOiBwcm9wcy5tYXBTdGF0ZSxcbiAgbWFwU3R5bGU6IHByb3BzLm1hcFN0eWxlLFxuICBvbkRlY2tJbml0aWFsaXplZDogcHJvcHMub25EZWNrSW5pdGlhbGl6ZWQsXG4gIG9uVmlld1N0YXRlQ2hhbmdlOiBwcm9wcy5vblZpZXdTdGF0ZUNoYW5nZSxcbiAgZGVja0dsUHJvcHM6IHByb3BzLmRlY2tHbFByb3BzLFxuICB1aVN0YXRlQWN0aW9uczogcHJvcHMudWlTdGF0ZUFjdGlvbnMsXG4gIHZpc1N0YXRlQWN0aW9uczogcHJvcHMudmlzU3RhdGVBY3Rpb25zLFxuICBtYXBTdGF0ZUFjdGlvbnM6IHByb3BzLm1hcFN0YXRlQWN0aW9ucyxcblxuICAvLyB2aXNTdGF0ZVxuICBlZGl0b3I6IHByb3BzLnZpc1N0YXRlLmVkaXRvcixcbiAgZGF0YXNldHM6IHByb3BzLnZpc1N0YXRlLmRhdGFzZXRzLFxuICBsYXllcnM6IHByb3BzLnZpc1N0YXRlLmxheWVycyxcbiAgbGF5ZXJPcmRlcjogcHJvcHMudmlzU3RhdGUubGF5ZXJPcmRlcixcbiAgbGF5ZXJEYXRhOiBwcm9wcy52aXNTdGF0ZS5sYXllckRhdGEsXG4gIGxheWVyQmxlbmRpbmc6IHByb3BzLnZpc1N0YXRlLmxheWVyQmxlbmRpbmcsXG4gIGZpbHRlcnM6IHByb3BzLnZpc1N0YXRlLmZpbHRlcnMsXG4gIGludGVyYWN0aW9uQ29uZmlnOiBwcm9wcy52aXNTdGF0ZS5pbnRlcmFjdGlvbkNvbmZpZyxcbiAgaG92ZXJJbmZvOiBwcm9wcy52aXNTdGF0ZS5ob3ZlckluZm8sXG4gIGNsaWNrZWQ6IHByb3BzLnZpc1N0YXRlLmNsaWNrZWQsXG4gIG1vdXNlUG9zOiBwcm9wcy52aXNTdGF0ZS5tb3VzZVBvcyxcbiAgYW5pbWF0aW9uQ29uZmlnOiBwcm9wcy52aXNTdGF0ZS5hbmltYXRpb25Db25maWcsXG5cbiAgLy8gdWlTdGF0ZVxuICBhY3RpdmVTaWRlUGFuZWw6IHByb3BzLnVpU3RhdGUuYWN0aXZlU2lkZVBhbmVsLFxuICBtYXBDb250cm9sczogcHJvcHMudWlTdGF0ZS5tYXBDb250cm9scyxcbiAgcmVhZE9ubHk6IHByb3BzLnVpU3RhdGUucmVhZE9ubHksXG4gIGxvY2FsZTogcHJvcHMudWlTdGF0ZS5sb2NhbGVcbn0pO1xuXG5leHBvcnQgY29uc3Qgc2lkZVBhbmVsU2VsZWN0b3IgPSAocHJvcHMsIGF2YWlsYWJsZVByb3ZpZGVycykgPT4gKHtcbiAgYXBwTmFtZTogcHJvcHMuYXBwTmFtZSxcbiAgdmVyc2lvbjogcHJvcHMudmVyc2lvbixcbiAgYXBwV2Vic2l0ZTogcHJvcHMuYXBwV2Vic2l0ZSxcbiAgbWFwU3R5bGU6IHByb3BzLm1hcFN0eWxlLFxuICBvblNhdmVNYXA6IHByb3BzLm9uU2F2ZU1hcCxcbiAgdWlTdGF0ZTogcHJvcHMudWlTdGF0ZSxcbiAgbWFwU3R5bGVBY3Rpb25zOiBwcm9wcy5tYXBTdHlsZUFjdGlvbnMsXG4gIHZpc1N0YXRlQWN0aW9uczogcHJvcHMudmlzU3RhdGVBY3Rpb25zLFxuICB1aVN0YXRlQWN0aW9uczogcHJvcHMudWlTdGF0ZUFjdGlvbnMsXG5cbiAgZGF0YXNldHM6IHByb3BzLnZpc1N0YXRlLmRhdGFzZXRzLFxuICBmaWx0ZXJzOiBwcm9wcy52aXNTdGF0ZS5maWx0ZXJzLFxuICBsYXllcnM6IHByb3BzLnZpc1N0YXRlLmxheWVycyxcbiAgbGF5ZXJPcmRlcjogcHJvcHMudmlzU3RhdGUubGF5ZXJPcmRlcixcbiAgbGF5ZXJDbGFzc2VzOiBwcm9wcy52aXNTdGF0ZS5sYXllckNsYXNzZXMsXG4gIGludGVyYWN0aW9uQ29uZmlnOiBwcm9wcy52aXNTdGF0ZS5pbnRlcmFjdGlvbkNvbmZpZyxcbiAgbWFwSW5mbzogcHJvcHMudmlzU3RhdGUubWFwSW5mbyxcbiAgbGF5ZXJCbGVuZGluZzogcHJvcHMudmlzU3RhdGUubGF5ZXJCbGVuZGluZyxcblxuICB3aWR0aDogcHJvcHMuc2lkZVBhbmVsV2lkdGgsXG4gIGF2YWlsYWJsZVByb3ZpZGVycyxcbiAgbWFwU2F2ZWQ6IHByb3BzLnByb3ZpZGVyU3RhdGUubWFwU2F2ZWRcbn0pO1xuXG5leHBvcnQgY29uc3QgcGxvdENvbnRhaW5lclNlbGVjdG9yID0gcHJvcHMgPT4gKHtcbiAgd2lkdGg6IHByb3BzLndpZHRoLFxuICBoZWlnaHQ6IHByb3BzLmhlaWdodCxcbiAgZXhwb3J0SW1hZ2VTZXR0aW5nOiBwcm9wcy51aVN0YXRlLmV4cG9ydEltYWdlLFxuICBtYXBGaWVsZHM6IG1hcEZpZWxkc1NlbGVjdG9yKHByb3BzKSxcbiAgYWRkTm90aWZpY2F0aW9uOiBwcm9wcy51aVN0YXRlQWN0aW9ucy5hZGROb3RpZmljYXRpb24sXG4gIHNldEV4cG9ydEltYWdlU2V0dGluZzogcHJvcHMudWlTdGF0ZUFjdGlvbnMuc2V0RXhwb3J0SW1hZ2VTZXR0aW5nLFxuICBzZXRFeHBvcnRJbWFnZURhdGFVcmk6IHByb3BzLnVpU3RhdGVBY3Rpb25zLnNldEV4cG9ydEltYWdlRGF0YVVyaSxcbiAgc2V0RXhwb3J0SW1hZ2VFcnJvcjogcHJvcHMudWlTdGF0ZUFjdGlvbnMuc2V0RXhwb3J0SW1hZ2VFcnJvcixcbiAgc3BsaXRNYXBzOiBwcm9wcy52aXNTdGF0ZS5zcGxpdE1hcHNcbn0pO1xuXG5leHBvcnQgY29uc3QgaXNTcGxpdFNlbGVjdG9yID0gcHJvcHMgPT5cbiAgcHJvcHMudmlzU3RhdGUuc3BsaXRNYXBzICYmIHByb3BzLnZpc1N0YXRlLnNwbGl0TWFwcy5sZW5ndGggPiAxO1xuXG5leHBvcnQgY29uc3QgYm90dG9tV2lkZ2V0U2VsZWN0b3IgPSAocHJvcHMsIHRoZW1lKSA9PiAoe1xuICBmaWx0ZXJzOiBwcm9wcy52aXNTdGF0ZS5maWx0ZXJzLFxuICBkYXRhc2V0czogcHJvcHMudmlzU3RhdGUuZGF0YXNldHMsXG4gIHVpU3RhdGU6IHByb3BzLnVpU3RhdGUsXG4gIGxheWVyczogcHJvcHMudmlzU3RhdGUubGF5ZXJzLFxuICBhbmltYXRpb25Db25maWc6IHByb3BzLnZpc1N0YXRlLmFuaW1hdGlvbkNvbmZpZyxcbiAgdmlzU3RhdGVBY3Rpb25zOiBwcm9wcy52aXNTdGF0ZUFjdGlvbnMsXG4gIHRvZ2dsZU1vZGFsOiBwcm9wcy51aVN0YXRlQWN0aW9ucy50b2dnbGVNb2RhbCxcbiAgc2lkZVBhbmVsV2lkdGg6IHByb3BzLnVpU3RhdGUucmVhZE9ubHkgPyAwIDogcHJvcHMuc2lkZVBhbmVsV2lkdGggKyB0aGVtZS5zaWRlUGFuZWwubWFyZ2luLmxlZnRcbn0pO1xuXG5leHBvcnQgY29uc3QgbW9kYWxDb250YWluZXJTZWxlY3RvciA9IChwcm9wcywgcm9vdE5vZGUpID0+ICh7XG4gIGFwcE5hbWU6IHByb3BzLmFwcE5hbWUsXG4gIG1hcFN0eWxlOiBwcm9wcy5tYXBTdHlsZSxcbiAgdmlzU3RhdGU6IHByb3BzLnZpc1N0YXRlLFxuICBtYXBTdGF0ZTogcHJvcHMubWFwU3RhdGUsXG4gIHVpU3RhdGU6IHByb3BzLnVpU3RhdGUsXG4gIHByb3ZpZGVyU3RhdGU6IHByb3BzLnByb3ZpZGVyU3RhdGUsXG5cbiAgbWFwYm94QXBpQWNjZXNzVG9rZW46IHByb3BzLm1hcGJveEFwaUFjY2Vzc1Rva2VuLFxuICBtYXBib3hBcGlVcmw6IHByb3BzLm1hcGJveEFwaVVybCxcbiAgdmlzU3RhdGVBY3Rpb25zOiBwcm9wcy52aXNTdGF0ZUFjdGlvbnMsXG4gIHVpU3RhdGVBY3Rpb25zOiBwcm9wcy51aVN0YXRlQWN0aW9ucyxcbiAgbWFwU3R5bGVBY3Rpb25zOiBwcm9wcy5tYXBTdHlsZUFjdGlvbnMsXG4gIHByb3ZpZGVyQWN0aW9uczogcHJvcHMucHJvdmlkZXJBY3Rpb25zLFxuXG4gIHJvb3ROb2RlLFxuICAvLyBVc2VyIGRlZmluZWQgY2xvdWQgcHJvdmlkZXIgcHJvcHNcbiAgY2xvdWRQcm92aWRlcnM6IHByb3BzLmNsb3VkUHJvdmlkZXJzLFxuICBvbkV4cG9ydFRvQ2xvdWRTdWNjZXNzOiBwcm9wcy5vbkV4cG9ydFRvQ2xvdWRTdWNjZXNzLFxuICBvbkxvYWRDbG91ZE1hcFN1Y2Nlc3M6IHByb3BzLm9uTG9hZENsb3VkTWFwU3VjY2VzcyxcbiAgb25Mb2FkQ2xvdWRNYXBFcnJvcjogcHJvcHMub25Mb2FkQ2xvdWRNYXBFcnJvcixcbiAgb25FeHBvcnRUb0Nsb3VkRXJyb3I6IHByb3BzLm9uRXhwb3J0VG9DbG91ZEVycm9yXG59KTtcblxuZXhwb3J0IGNvbnN0IGdlb0NvZGVyUGFuZWxTZWxlY3RvciA9IHByb3BzID0+ICh7XG4gIGlzR2VvY29kZXJFbmFibGVkOiBwcm9wcy52aXNTdGF0ZS5pbnRlcmFjdGlvbkNvbmZpZy5nZW9jb2Rlci5lbmFibGVkLFxuICBtYXBib3hBcGlBY2Nlc3NUb2tlbjogcHJvcHMubWFwYm94QXBpQWNjZXNzVG9rZW4sXG4gIG1hcFN0YXRlOiBwcm9wcy5tYXBTdGF0ZSxcbiAgdXBkYXRlVmlzRGF0YTogcHJvcHMudmlzU3RhdGVBY3Rpb25zLnVwZGF0ZVZpc0RhdGEsXG4gIHJlbW92ZURhdGFzZXQ6IHByb3BzLnZpc1N0YXRlQWN0aW9ucy5yZW1vdmVEYXRhc2V0LFxuICB1cGRhdGVNYXA6IHByb3BzLm1hcFN0YXRlQWN0aW9ucy51cGRhdGVNYXBcbn0pO1xuXG5leHBvcnQgY29uc3Qgbm90aWZpY2F0aW9uUGFuZWxTZWxlY3RvciA9IHByb3BzID0+ICh7XG4gIHJlbW92ZU5vdGlmaWNhdGlvbjogcHJvcHMudWlTdGF0ZUFjdGlvbnMucmVtb3ZlTm90aWZpY2F0aW9uLFxuICBub3RpZmljYXRpb25zOiBwcm9wcy51aVN0YXRlLm5vdGlmaWNhdGlvbnNcbn0pO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9LRVBMRVJfR0xfUFJPUFMgPSB7XG4gIG1hcFN0eWxlczogW10sXG4gIG1hcFN0eWxlc1JlcGxhY2VEZWZhdWx0OiBmYWxzZSxcbiAgbWFwYm94QXBpVXJsOiBERUZBVUxUX01BUEJPWF9BUElfVVJMLFxuICB3aWR0aDogODAwLFxuICBoZWlnaHQ6IDgwMCxcbiAgYXBwTmFtZTogS0VQTEVSX0dMX05BTUUsXG4gIHZlcnNpb246IEtFUExFUl9HTF9WRVJTSU9OLFxuICBzaWRlUGFuZWxXaWR0aDogRElNRU5TSU9OUy5zaWRlUGFuZWwud2lkdGgsXG4gIHRoZW1lOiB7fSxcbiAgY2xvdWRQcm92aWRlcnM6IFtdLFxuICByZWFkT25seTogZmFsc2Vcbn07XG5cbktlcGxlckdsRmFjdG9yeS5kZXBzID0gW1xuICBCb3R0b21XaWRnZXRGYWN0b3J5LFxuICBHZW9Db2RlclBhbmVsRmFjdG9yeSxcbiAgTWFwQ29udGFpbmVyRmFjdG9yeSxcbiAgTWFwc0xheW91dEZhY3RvcnksXG4gIE1vZGFsQ29udGFpbmVyRmFjdG9yeSxcbiAgU2lkZVBhbmVsRmFjdG9yeSxcbiAgUGxvdENvbnRhaW5lckZhY3RvcnksXG4gIE5vdGlmaWNhdGlvblBhbmVsRmFjdG9yeVxuXTtcblxuZnVuY3Rpb24gS2VwbGVyR2xGYWN0b3J5KFxuICBCb3R0b21XaWRnZXQsXG4gIEdlb0NvZGVyUGFuZWwsXG4gIE1hcENvbnRhaW5lcixcbiAgTWFwc0xheW91dCxcbiAgTW9kYWxDb250YWluZXIsXG4gIFNpZGVQYW5lbCxcbiAgUGxvdENvbnRhaW5lcixcbiAgTm90aWZpY2F0aW9uUGFuZWxcbikge1xuICAvKiogQHR5cGVkZWYge2ltcG9ydCgnLi9rZXBsZXItZ2wnKS5VbmNvbm5lY3RlZEtlcGxlckdsUHJvcHN9IEtlcGxlckdsUHJvcHMgKi9cbiAgLyoqIEBhdWdtZW50cyBSZWFjdC5Db21wb25lbnQ8S2VwbGVyR2xQcm9wcz4gKi9cbiAgY2xhc3MgS2VwbGVyR0wgZXh0ZW5kcyBDb21wb25lbnQge1xuICAgIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSBERUZBVUxUX0tFUExFUl9HTF9QUk9QUztcblxuICAgIHN0YXRlID0ge1xuICAgICAgZGltZW5zaW9uczogbnVsbFxuICAgIH07XG5cbiAgICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAgIHRoaXMuX3ZhbGlkYXRlTWFwYm94VG9rZW4oKTtcbiAgICAgIHRoaXMuX2xvYWRNYXBTdHlsZSgpO1xuICAgICAgaWYgKHR5cGVvZiB0aGlzLnByb3BzLm9uS2VwbGVyR2xJbml0aWFsaXplZCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB0aGlzLnByb3BzLm9uS2VwbGVyR2xJbml0aWFsaXplZCgpO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMucm9vdC5jdXJyZW50IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgb2JzZXJ2ZURpbWVuc2lvbnModGhpcy5yb290LmN1cnJlbnQsIHRoaXMuX2hhbmRsZVJlc2l6ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgICBpZiAodGhpcy5yb290LmN1cnJlbnQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkge1xuICAgICAgICB1bm9ic2VydmVEaW1lbnNpb25zKHRoaXMucm9vdC5jdXJyZW50KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBfaGFuZGxlUmVzaXplID0gZGltZW5zaW9ucyA9PiB7XG4gICAgICB0aGlzLnNldFN0YXRlKHtkaW1lbnNpb25zfSk7XG4gICAgfTtcblxuICAgIHN0YXRpYyBjb250ZXh0VHlwZSA9IFJvb3RDb250ZXh0O1xuXG4gICAgcm9vdCA9IGNyZWF0ZVJlZigpO1xuICAgIGJvdHRvbVdpZGdldFJlZiA9IGNyZWF0ZVJlZigpO1xuXG4gICAgLyogc2VsZWN0b3JzICovXG4gICAgdGhlbWVTZWxlY3RvciA9IHByb3BzID0+IHByb3BzLnRoZW1lO1xuICAgIGF2YWlsYWJsZVRoZW1lU2VsZWN0b3IgPSBjcmVhdGVTZWxlY3Rvcih0aGlzLnRoZW1lU2VsZWN0b3IsIHRoZW1lID0+XG4gICAgICB0eXBlb2YgdGhlbWUgPT09ICdvYmplY3QnXG4gICAgICAgID8ge1xuICAgICAgICAgICAgLi4uYmFzaWNUaGVtZSxcbiAgICAgICAgICAgIC4uLnRoZW1lXG4gICAgICAgICAgfVxuICAgICAgICA6IHRoZW1lID09PSBUSEVNRS5saWdodFxuICAgICAgICA/IHRoZW1lTFRcbiAgICAgICAgOiB0aGVtZSA9PT0gVEhFTUUuYmFzZVxuICAgICAgICA/IHRoZW1lQlNcbiAgICAgICAgOiB0aGVtZVxuICAgICk7XG5cbiAgICBhdmFpbGFibGVQcm92aWRlcnMgPSBjcmVhdGVTZWxlY3RvcihcbiAgICAgIHByb3BzID0+IHByb3BzLmNsb3VkUHJvdmlkZXJzLFxuICAgICAgcHJvdmlkZXJzID0+XG4gICAgICAgIEFycmF5LmlzQXJyYXkocHJvdmlkZXJzKSAmJiBwcm92aWRlcnMubGVuZ3RoXG4gICAgICAgICAgPyB7XG4gICAgICAgICAgICAgIGhhc1N0b3JhZ2U6IHByb3ZpZGVycy5zb21lKHAgPT4gcC5oYXNQcml2YXRlU3RvcmFnZSgpKSxcbiAgICAgICAgICAgICAgaGFzU2hhcmU6IHByb3ZpZGVycy5zb21lKHAgPT4gcC5oYXNTaGFyaW5nVXJsKCkpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgOiB7fVxuICAgICk7XG5cbiAgICBsb2NhbGVNZXNzYWdlc1NlbGVjdG9yID0gY3JlYXRlU2VsZWN0b3IoXG4gICAgICBwcm9wcyA9PiBwcm9wcy5sb2NhbGVNZXNzYWdlcyxcbiAgICAgIGN1c3RvbU1lc3NhZ2VzID0+IChjdXN0b21NZXNzYWdlcyA/IG1lcmdlTWVzc2FnZXMobWVzc2FnZXMsIGN1c3RvbU1lc3NhZ2VzKSA6IG1lc3NhZ2VzKVxuICAgICk7XG5cbiAgICAvKiBwcml2YXRlIG1ldGhvZHMgKi9cbiAgICBfdmFsaWRhdGVNYXBib3hUb2tlbigpIHtcbiAgICAgIGNvbnN0IHttYXBib3hBcGlBY2Nlc3NUb2tlbn0gPSB0aGlzLnByb3BzO1xuICAgICAgaWYgKCF2YWxpZGF0ZVRva2VuKG1hcGJveEFwaUFjY2Vzc1Rva2VuKSkge1xuICAgICAgICBDb25zb2xlLndhcm4oTUlTU0lOR19NQVBCT1hfVE9LRU4pO1xuICAgICAgfVxuICAgIH1cblxuICAgIF9sb2FkTWFwU3R5bGUgPSAoKSA9PiB7XG4gICAgICBjb25zdCBkZWZhdWx0U3R5bGVzID0gT2JqZWN0LnZhbHVlcyh0aGlzLnByb3BzLm1hcFN0eWxlLm1hcFN0eWxlcyk7XG4gICAgICAvLyBhZGQgaWQgdG8gY3VzdG9tIG1hcCBzdHlsZXMgaWYgbm90IGdpdmVuXG4gICAgICBjb25zdCBjdXN0b21TdHlsZXMgPSAodGhpcy5wcm9wcy5tYXBTdHlsZXMgfHwgW10pLm1hcChtcyA9PiAoe1xuICAgICAgICAuLi5tcyxcbiAgICAgICAgaWQ6IG1zLmlkIHx8IGdlbmVyYXRlSGFzaElkKClcbiAgICAgIH0pKTtcblxuICAgICAgY29uc3QgYWxsU3R5bGVzID0gWy4uLmN1c3RvbVN0eWxlcywgLi4uZGVmYXVsdFN0eWxlc10ucmVkdWNlKFxuICAgICAgICAoYWNjdSwgc3R5bGUpID0+IHtcbiAgICAgICAgICBjb25zdCBoYXNTdHlsZU9iamVjdCA9IHN0eWxlLnN0eWxlICYmIHR5cGVvZiBzdHlsZS5zdHlsZSA9PT0gJ29iamVjdCc7XG4gICAgICAgICAgYWNjdVtoYXNTdHlsZU9iamVjdCA/ICd0b0xvYWQnIDogJ3RvUmVxdWVzdCddW3N0eWxlLmlkXSA9IHN0eWxlO1xuXG4gICAgICAgICAgcmV0dXJuIGFjY3U7XG4gICAgICAgIH0sXG4gICAgICAgIHt0b0xvYWQ6IHt9LCB0b1JlcXVlc3Q6IHt9fVxuICAgICAgKTtcblxuICAgICAgdGhpcy5wcm9wcy5tYXBTdHlsZUFjdGlvbnMubG9hZE1hcFN0eWxlcyhhbGxTdHlsZXMudG9Mb2FkKTtcbiAgICAgIHRoaXMucHJvcHMubWFwU3R5bGVBY3Rpb25zLnJlcXVlc3RNYXBTdHlsZXMoYWxsU3R5bGVzLnRvUmVxdWVzdCk7XG4gICAgfTtcblxuICAgIHJlbmRlcigpIHtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgaWQsXG4gICAgICAgIHdpZHRoLFxuICAgICAgICBoZWlnaHQsXG4gICAgICAgIHVpU3RhdGUsXG4gICAgICAgIHZpc1N0YXRlLFxuICAgICAgICAvLyByZWFkT25seSBvdmVycmlkZVxuICAgICAgICByZWFkT25seVxuICAgICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICAgIGNvbnN0IGRpbWVuc2lvbnMgPSB0aGlzLnN0YXRlLmRpbWVuc2lvbnMgfHwge3dpZHRoLCBoZWlnaHR9O1xuICAgICAgY29uc3Qge1xuICAgICAgICBzcGxpdE1hcHMsIC8vIHRoaXMgd2lsbCBzdG9yZSBzdXBwb3J0IGZvciBzcGxpdCBtYXAgdmlldyBpcyBuZWNlc3NhcnlcbiAgICAgICAgaW50ZXJhY3Rpb25Db25maWdcbiAgICAgIH0gPSB2aXNTdGF0ZTtcblxuICAgICAgY29uc3QgaXNTcGxpdCA9IGlzU3BsaXRTZWxlY3Rvcih0aGlzLnByb3BzKTtcbiAgICAgIGNvbnN0IHRoZW1lID0gdGhpcy5hdmFpbGFibGVUaGVtZVNlbGVjdG9yKHRoaXMucHJvcHMpO1xuICAgICAgY29uc3QgbG9jYWxlTWVzc2FnZXMgPSB0aGlzLmxvY2FsZU1lc3NhZ2VzU2VsZWN0b3IodGhpcy5wcm9wcyk7XG4gICAgICBjb25zdCBpc0V4cG9ydGluZ0ltYWdlID0gdWlTdGF0ZS5leHBvcnRJbWFnZS5leHBvcnRpbmc7XG4gICAgICBjb25zdCBhdmFpbGFibGVQcm92aWRlcnMgPSB0aGlzLmF2YWlsYWJsZVByb3ZpZGVycyh0aGlzLnByb3BzKTtcblxuICAgICAgY29uc3QgbWFwRmllbGRzID0gbWFwRmllbGRzU2VsZWN0b3IodGhpcy5wcm9wcyk7XG4gICAgICBjb25zdCBzaWRlRmllbGRzID0gc2lkZVBhbmVsU2VsZWN0b3IodGhpcy5wcm9wcywgYXZhaWxhYmxlUHJvdmlkZXJzKTtcbiAgICAgIGNvbnN0IHBsb3RDb250YWluZXJGaWVsZHMgPSBwbG90Q29udGFpbmVyU2VsZWN0b3IodGhpcy5wcm9wcyk7XG4gICAgICBjb25zdCBib3R0b21XaWRnZXRGaWVsZHMgPSBib3R0b21XaWRnZXRTZWxlY3Rvcih0aGlzLnByb3BzLCB0aGVtZSk7XG4gICAgICBjb25zdCBtb2RhbENvbnRhaW5lckZpZWxkcyA9IG1vZGFsQ29udGFpbmVyU2VsZWN0b3IodGhpcy5wcm9wcywgdGhpcy5yb290LmN1cnJlbnQpO1xuICAgICAgY29uc3QgZ2VvQ29kZXJQYW5lbEZpZWxkcyA9IGdlb0NvZGVyUGFuZWxTZWxlY3Rvcih0aGlzLnByb3BzKTtcbiAgICAgIGNvbnN0IG5vdGlmaWNhdGlvblBhbmVsRmllbGRzID0gbm90aWZpY2F0aW9uUGFuZWxTZWxlY3Rvcih0aGlzLnByb3BzKTtcblxuICAgICAgY29uc3QgbWFwQ29udGFpbmVycyA9ICFpc1NwbGl0XG4gICAgICAgID8gWzxNYXBDb250YWluZXIgcHJpbWFyeT17dHJ1ZX0ga2V5PXswfSBpbmRleD17MH0gey4uLm1hcEZpZWxkc30gbWFwTGF5ZXJzPXtudWxsfSAvPl1cbiAgICAgICAgOiBzcGxpdE1hcHMubWFwKChzZXR0aW5ncywgaW5kZXgpID0+IChcbiAgICAgICAgICAgIDxNYXBDb250YWluZXJcbiAgICAgICAgICAgICAga2V5PXtpbmRleH1cbiAgICAgICAgICAgICAgaW5kZXg9e2luZGV4fVxuICAgICAgICAgICAgICBwcmltYXJ5PXtpbmRleCA9PT0gMX1cbiAgICAgICAgICAgICAgey4uLm1hcEZpZWxkc31cbiAgICAgICAgICAgICAgbWFwTGF5ZXJzPXtzcGxpdE1hcHNbaW5kZXhdLmxheWVyc31cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKSk7XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxSb290Q29udGV4dC5Qcm92aWRlciB2YWx1ZT17dGhpcy5yb290fT5cbiAgICAgICAgICA8SW50bFByb3ZpZGVyIGxvY2FsZT17dWlTdGF0ZS5sb2NhbGV9IG1lc3NhZ2VzPXtsb2NhbGVNZXNzYWdlc1t1aVN0YXRlLmxvY2FsZV19PlxuICAgICAgICAgICAgPFRoZW1lUHJvdmlkZXIgdGhlbWU9e3RoZW1lfT5cbiAgICAgICAgICAgICAgPEdsb2JhbFN0eWxlXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwia2VwbGVyLWdsXCJcbiAgICAgICAgICAgICAgICBpZD17YGtlcGxlci1nbF9fJHtpZH1gfVxuICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAgICAgICAgICBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJyxcbiAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiAncmVsYXRpdmUnLFxuICAgICAgICAgICAgICAgICAgd2lkdGg6IGAke3dpZHRofXB4YCxcbiAgICAgICAgICAgICAgICAgIGhlaWdodDogYCR7aGVpZ2h0fXB4YFxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgcmVmPXt0aGlzLnJvb3R9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8Tm90aWZpY2F0aW9uUGFuZWwgey4uLm5vdGlmaWNhdGlvblBhbmVsRmllbGRzfSAvPlxuICAgICAgICAgICAgICAgIHshdWlTdGF0ZS5yZWFkT25seSAmJiAhcmVhZE9ubHkgJiYgPFNpZGVQYW5lbCB7Li4uc2lkZUZpZWxkc30gLz59XG4gICAgICAgICAgICAgICAgPE1hcHNMYXlvdXQgY2xhc3NOYW1lPVwibWFwc1wiPnttYXBDb250YWluZXJzfTwvTWFwc0xheW91dD5cbiAgICAgICAgICAgICAgICB7aXNFeHBvcnRpbmdJbWFnZSAmJiA8UGxvdENvbnRhaW5lciB7Li4ucGxvdENvbnRhaW5lckZpZWxkc30gLz59XG4gICAgICAgICAgICAgICAge2ludGVyYWN0aW9uQ29uZmlnLmdlb2NvZGVyLmVuYWJsZWQgJiYgPEdlb0NvZGVyUGFuZWwgey4uLmdlb0NvZGVyUGFuZWxGaWVsZHN9IC8+fVxuICAgICAgICAgICAgICAgIDxCb3R0b21XaWRnZXRPdXRlciBhYnNvbHV0ZT5cbiAgICAgICAgICAgICAgICAgIDxCb3R0b21XaWRnZXRcbiAgICAgICAgICAgICAgICAgICAgcmVmPXt0aGlzLmJvdHRvbVdpZGdldFJlZn1cbiAgICAgICAgICAgICAgICAgICAgey4uLmJvdHRvbVdpZGdldEZpZWxkc31cbiAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyVz17ZGltZW5zaW9ucy53aWR0aH1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9Cb3R0b21XaWRnZXRPdXRlcj5cbiAgICAgICAgICAgICAgICA8TW9kYWxDb250YWluZXJcbiAgICAgICAgICAgICAgICAgIHsuLi5tb2RhbENvbnRhaW5lckZpZWxkc31cbiAgICAgICAgICAgICAgICAgIGNvbnRhaW5lclc9e2RpbWVuc2lvbnMud2lkdGh9XG4gICAgICAgICAgICAgICAgICBjb250YWluZXJIPXtkaW1lbnNpb25zLmhlaWdodH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L0dsb2JhbFN0eWxlPlxuICAgICAgICAgICAgPC9UaGVtZVByb3ZpZGVyPlxuICAgICAgICAgIDwvSW50bFByb3ZpZGVyPlxuICAgICAgICA8L1Jvb3RDb250ZXh0LlByb3ZpZGVyPlxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4ga2VwbGVyR2xDb25uZWN0KG1hcFN0YXRlVG9Qcm9wcywgbWFrZU1hcERpc3BhdGNoVG9Qcm9wcykod2l0aFRoZW1lKEtlcGxlckdMKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtYXBTdGF0ZVRvUHJvcHMoc3RhdGUgPSB7fSwgcHJvcHMpIHtcbiAgcmV0dXJuIHtcbiAgICAuLi5wcm9wcyxcbiAgICB2aXNTdGF0ZTogc3RhdGUudmlzU3RhdGUsXG4gICAgbWFwU3R5bGU6IHN0YXRlLm1hcFN0eWxlLFxuICAgIG1hcFN0YXRlOiBzdGF0ZS5tYXBTdGF0ZSxcbiAgICB1aVN0YXRlOiBzdGF0ZS51aVN0YXRlLFxuICAgIHByb3ZpZGVyU3RhdGU6IHN0YXRlLnByb3ZpZGVyU3RhdGVcbiAgfTtcbn1cblxuY29uc3QgZGVmYXVsdFVzZXJBY3Rpb25zID0ge307XG5cbmNvbnN0IGdldERpc3BhdGNoID0gKGRpc3BhdGNoLCBwcm9wcykgPT4gZGlzcGF0Y2g7XG5jb25zdCBnZXRVc2VyQWN0aW9ucyA9IChkaXNwYXRjaCwgcHJvcHMpID0+IHByb3BzLmFjdGlvbnMgfHwgZGVmYXVsdFVzZXJBY3Rpb25zO1xuXG4vKiogQHR5cGUgeygpID0+IGltcG9ydCgncmVzZWxlY3QnKS5PdXRwdXRQYXJhbWV0cmljU2VsZWN0b3I8YW55LCBhbnksIGFueSwgYW55Pn0gKi9cbmZ1bmN0aW9uIG1ha2VHZXRBY3Rpb25DcmVhdG9ycygpIHtcbiAgcmV0dXJuIGNyZWF0ZVNlbGVjdG9yKFtnZXREaXNwYXRjaCwgZ2V0VXNlckFjdGlvbnNdLCAoZGlzcGF0Y2gsIHVzZXJBY3Rpb25zKSA9PiB7XG4gICAgY29uc3QgW3Zpc1N0YXRlQWN0aW9ucywgbWFwU3RhdGVBY3Rpb25zLCBtYXBTdHlsZUFjdGlvbnMsIHVpU3RhdGVBY3Rpb25zLCBwcm92aWRlckFjdGlvbnNdID0gW1xuICAgICAgVmlzU3RhdGVBY3Rpb25zLFxuICAgICAgTWFwU3RhdGVBY3Rpb25zLFxuICAgICAgTWFwU3R5bGVBY3Rpb25zLFxuICAgICAgVUlTdGF0ZUFjdGlvbnMsXG4gICAgICBQcm92aWRlckFjdGlvbnNcbiAgICBdLm1hcChhY3Rpb25zID0+IGJpbmRBY3Rpb25DcmVhdG9ycyhtZXJnZUFjdGlvbnMoYWN0aW9ucywgdXNlckFjdGlvbnMpLCBkaXNwYXRjaCkpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHZpc1N0YXRlQWN0aW9ucyxcbiAgICAgIG1hcFN0YXRlQWN0aW9ucyxcbiAgICAgIG1hcFN0eWxlQWN0aW9ucyxcbiAgICAgIHVpU3RhdGVBY3Rpb25zLFxuICAgICAgcHJvdmlkZXJBY3Rpb25zLFxuICAgICAgZGlzcGF0Y2hcbiAgICB9O1xuICB9KTtcbn1cblxuZnVuY3Rpb24gbWFrZU1hcERpc3BhdGNoVG9Qcm9wcygpIHtcbiAgY29uc3QgZ2V0QWN0aW9uQ3JlYXRvcnMgPSBtYWtlR2V0QWN0aW9uQ3JlYXRvcnMoKTtcbiAgY29uc3QgbWFwRGlzcGF0Y2hUb1Byb3BzID0gKGRpc3BhdGNoLCBvd25Qcm9wcykgPT4ge1xuICAgIGNvbnN0IGdyb3VwZWRBY3Rpb25DcmVhdG9ycyA9IGdldEFjdGlvbkNyZWF0b3JzKGRpc3BhdGNoLCBvd25Qcm9wcyk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uZ3JvdXBlZEFjdGlvbkNyZWF0b3JzLFxuICAgICAgZGlzcGF0Y2hcbiAgICB9O1xuICB9O1xuXG4gIHJldHVybiBtYXBEaXNwYXRjaFRvUHJvcHM7XG59XG5cbi8qKlxuICogT3ZlcnJpZGUgZGVmYXVsdCBrZXBsZXIuZ2wgYWN0aW9ucyB3aXRoIHVzZXIgZGVmaW5lZCBhY3Rpb25zIHVzaW5nIHRoZSBzYW1lIGtleVxuICovXG5mdW5jdGlvbiBtZXJnZUFjdGlvbnMoYWN0aW9ucywgdXNlckFjdGlvbnMpIHtcbiAgY29uc3Qgb3ZlcnJpZGVzID0ge307XG4gIGZvciAoY29uc3Qga2V5IGluIHVzZXJBY3Rpb25zKSB7XG4gICAgaWYgKHVzZXJBY3Rpb25zLmhhc093blByb3BlcnR5KGtleSkgJiYgYWN0aW9ucy5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICBvdmVycmlkZXNba2V5XSA9IHVzZXJBY3Rpb25zW2tleV07XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHsuLi5hY3Rpb25zLCAuLi5vdmVycmlkZXN9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBLZXBsZXJHbEZhY3Rvcnk7XG4iXX0=
|
|
561
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wb25lbnRzL2tlcGxlci1nbC5qcyJdLCJuYW1lcyI6WyJHbG9iYWxTdHlsZSIsInN0eWxlZCIsImRpdiIsInByb3BzIiwidGhlbWUiLCJmb250RmFtaWx5IiwiZm9udFdlaWdodCIsImZvbnRTaXplIiwibGluZUhlaWdodCIsImxhYmVsQ29sb3IiLCJCb3R0b21XaWRnZXRPdXRlciIsImFic29sdXRlIiwibWFwRmllbGRzU2VsZWN0b3IiLCJnZXRNYXBib3hSZWYiLCJtYXBib3hBcGlBY2Nlc3NUb2tlbiIsIm1hcGJveEFwaVVybCIsIm1hcFN0YXRlIiwibWFwU3R5bGUiLCJvbkRlY2tJbml0aWFsaXplZCIsIm9uVmlld1N0YXRlQ2hhbmdlIiwiZGVja0dsUHJvcHMiLCJ1aVN0YXRlQWN0aW9ucyIsInZpc1N0YXRlQWN0aW9ucyIsIm1hcFN0YXRlQWN0aW9ucyIsImVkaXRvciIsInZpc1N0YXRlIiwiZGF0YXNldHMiLCJsYXllcnMiLCJsYXllck9yZGVyIiwibGF5ZXJEYXRhIiwibGF5ZXJCbGVuZGluZyIsImZpbHRlcnMiLCJpbnRlcmFjdGlvbkNvbmZpZyIsImhvdmVySW5mbyIsImNsaWNrZWQiLCJtb3VzZVBvcyIsImFuaW1hdGlvbkNvbmZpZyIsImFjdGl2ZVNpZGVQYW5lbCIsInVpU3RhdGUiLCJtYXBDb250cm9scyIsInJlYWRPbmx5IiwibG9jYWxlIiwic2lkZVBhbmVsU2VsZWN0b3IiLCJhdmFpbGFibGVQcm92aWRlcnMiLCJhcHBOYW1lIiwidmVyc2lvbiIsImFwcFdlYnNpdGUiLCJvblNhdmVNYXAiLCJtYXBTdHlsZUFjdGlvbnMiLCJsYXllckNsYXNzZXMiLCJtYXBJbmZvIiwid2lkdGgiLCJzaWRlUGFuZWxXaWR0aCIsIm1hcFNhdmVkIiwicHJvdmlkZXJTdGF0ZSIsInBsb3RDb250YWluZXJTZWxlY3RvciIsImhlaWdodCIsImV4cG9ydEltYWdlU2V0dGluZyIsImV4cG9ydEltYWdlIiwibWFwRmllbGRzIiwiYWRkTm90aWZpY2F0aW9uIiwic2V0RXhwb3J0SW1hZ2VTZXR0aW5nIiwic2V0RXhwb3J0SW1hZ2VEYXRhVXJpIiwic2V0RXhwb3J0SW1hZ2VFcnJvciIsInNwbGl0TWFwcyIsIm1hc2tQb2x5Z29uIiwiaXNTcGxpdFNlbGVjdG9yIiwibGVuZ3RoIiwiYm90dG9tV2lkZ2V0U2VsZWN0b3IiLCJ0b2dnbGVNb2RhbCIsInNpZGVQYW5lbCIsIm1hcmdpbiIsImxlZnQiLCJtb2RhbENvbnRhaW5lclNlbGVjdG9yIiwicm9vdE5vZGUiLCJwcm92aWRlckFjdGlvbnMiLCJjbG91ZFByb3ZpZGVycyIsIm9uRXhwb3J0VG9DbG91ZFN1Y2Nlc3MiLCJvbkxvYWRDbG91ZE1hcFN1Y2Nlc3MiLCJvbkxvYWRDbG91ZE1hcEVycm9yIiwib25FeHBvcnRUb0Nsb3VkRXJyb3IiLCJnZW9Db2RlclBhbmVsU2VsZWN0b3IiLCJpc0dlb2NvZGVyRW5hYmxlZCIsImdlb2NvZGVyIiwiZW5hYmxlZCIsInVwZGF0ZVZpc0RhdGEiLCJyZW1vdmVEYXRhc2V0IiwidXBkYXRlTWFwIiwibm90aWZpY2F0aW9uUGFuZWxTZWxlY3RvciIsInJlbW92ZU5vdGlmaWNhdGlvbiIsIm5vdGlmaWNhdGlvbnMiLCJERUZBVUxUX0tFUExFUl9HTF9QUk9QUyIsIm1hcFN0eWxlcyIsIm1hcFN0eWxlc1JlcGxhY2VEZWZhdWx0IiwiREVGQVVMVF9NQVBCT1hfQVBJX1VSTCIsIktFUExFUl9HTF9OQU1FIiwiS0VQTEVSX0dMX1ZFUlNJT04iLCJESU1FTlNJT05TIiwiS2VwbGVyR2xGYWN0b3J5IiwiZGVwcyIsIkJvdHRvbVdpZGdldEZhY3RvcnkiLCJHZW9Db2RlclBhbmVsRmFjdG9yeSIsIk1hcENvbnRhaW5lckZhY3RvcnkiLCJNYXBzTGF5b3V0RmFjdG9yeSIsIk1vZGFsQ29udGFpbmVyRmFjdG9yeSIsIlNpZGVQYW5lbEZhY3RvcnkiLCJQbG90Q29udGFpbmVyRmFjdG9yeSIsIk5vdGlmaWNhdGlvblBhbmVsRmFjdG9yeSIsIkJvdHRvbVdpZGdldCIsIkdlb0NvZGVyUGFuZWwiLCJNYXBDb250YWluZXIiLCJNYXBzTGF5b3V0IiwiTW9kYWxDb250YWluZXIiLCJTaWRlUGFuZWwiLCJQbG90Q29udGFpbmVyIiwiTm90aWZpY2F0aW9uUGFuZWwiLCJLZXBsZXJHTCIsImRpbWVuc2lvbnMiLCJzZXRTdGF0ZSIsInRoZW1lU2VsZWN0b3IiLCJiYXNpY1RoZW1lIiwiVEhFTUUiLCJsaWdodCIsInRoZW1lTFQiLCJiYXNlIiwidGhlbWVCUyIsInByb3ZpZGVycyIsIkFycmF5IiwiaXNBcnJheSIsImhhc1N0b3JhZ2UiLCJzb21lIiwicCIsImhhc1ByaXZhdGVTdG9yYWdlIiwiaGFzU2hhcmUiLCJoYXNTaGFyaW5nVXJsIiwibG9jYWxlTWVzc2FnZXMiLCJjdXN0b21NZXNzYWdlcyIsIm1lc3NhZ2VzIiwiZGVmYXVsdFN0eWxlcyIsIk9iamVjdCIsInZhbHVlcyIsImN1c3RvbVN0eWxlcyIsIm1hcCIsIm1zIiwiaWQiLCJhbGxTdHlsZXMiLCJyZWR1Y2UiLCJhY2N1Iiwic3R5bGUiLCJoYXNTdHlsZU9iamVjdCIsInRvTG9hZCIsInRvUmVxdWVzdCIsImxvYWRNYXBTdHlsZXMiLCJyZXF1ZXN0TWFwU3R5bGVzIiwiX3ZhbGlkYXRlTWFwYm94VG9rZW4iLCJfbG9hZE1hcFN0eWxlIiwib25LZXBsZXJHbEluaXRpYWxpemVkIiwicm9vdCIsImN1cnJlbnQiLCJIVE1MRWxlbWVudCIsIl9oYW5kbGVSZXNpemUiLCJDb25zb2xlIiwid2FybiIsIk1JU1NJTkdfTUFQQk9YX1RPS0VOIiwic3RhdGUiLCJpc1NwbGl0IiwiYXZhaWxhYmxlVGhlbWVTZWxlY3RvciIsImxvY2FsZU1lc3NhZ2VzU2VsZWN0b3IiLCJpc0V4cG9ydGluZ0ltYWdlIiwiZXhwb3J0aW5nIiwic2lkZUZpZWxkcyIsInBsb3RDb250YWluZXJGaWVsZHMiLCJib3R0b21XaWRnZXRGaWVsZHMiLCJtb2RhbENvbnRhaW5lckZpZWxkcyIsImdlb0NvZGVyUGFuZWxGaWVsZHMiLCJub3RpZmljYXRpb25QYW5lbEZpZWxkcyIsIm1hcENvbnRhaW5lcnMiLCJzZXR0aW5ncyIsImluZGV4IiwiZGlzcGxheSIsImZsZXhEaXJlY3Rpb24iLCJwb3NpdGlvbiIsImJvdHRvbVdpZGdldFJlZiIsIkNvbXBvbmVudCIsIlJvb3RDb250ZXh0IiwibWFwU3RhdGVUb1Byb3BzIiwibWFrZU1hcERpc3BhdGNoVG9Qcm9wcyIsImRlZmF1bHRVc2VyQWN0aW9ucyIsImdldERpc3BhdGNoIiwiZGlzcGF0Y2giLCJnZXRVc2VyQWN0aW9ucyIsImFjdGlvbnMiLCJtYWtlR2V0QWN0aW9uQ3JlYXRvcnMiLCJ1c2VyQWN0aW9ucyIsIlZpc1N0YXRlQWN0aW9ucyIsIk1hcFN0YXRlQWN0aW9ucyIsIk1hcFN0eWxlQWN0aW9ucyIsIlVJU3RhdGVBY3Rpb25zIiwiUHJvdmlkZXJBY3Rpb25zIiwibWVyZ2VBY3Rpb25zIiwiZ2V0QWN0aW9uQ3JlYXRvcnMiLCJtYXBEaXNwYXRjaFRvUHJvcHMiLCJvd25Qcm9wcyIsImdyb3VwZWRBY3Rpb25DcmVhdG9ycyIsIm92ZXJyaWRlcyIsImtleSIsImhhc093blByb3BlcnR5Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFvQkE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBT0E7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBQ0E7Ozs7Ozs7Ozs7OztBQUVBO0FBQ0E7QUFDQSxJQUFNQSxXQUFXLEdBQUdDLDZCQUFPQyxHQUFWLHdnQkFDQSxVQUFBQyxLQUFLO0FBQUEsU0FBSUEsS0FBSyxDQUFDQyxLQUFOLENBQVlDLFVBQWhCO0FBQUEsQ0FETCxFQUVBLFVBQUFGLEtBQUs7QUFBQSxTQUFJQSxLQUFLLENBQUNDLEtBQU4sQ0FBWUUsVUFBaEI7QUFB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Q0FBV2QsT0FBWCxHQUF1QmEsU0FBdkI7QUFDRDs7ZUFFYzFHLGUiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIDIwMjIgVWJlciBUZWNobm9sb2dpZXMsIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuXG5pbXBvcnQgUmVhY3QsIHtDb21wb25lbnQsIGNyZWF0ZVJlZn0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IENvbnNvbGUgZnJvbSAnZ2xvYmFsL2NvbnNvbGUnO1xuaW1wb3J0IHtiaW5kQWN0aW9uQ3JlYXRvcnN9IGZyb20gJ3JlZHV4JztcbmltcG9ydCBzdHlsZWQsIHtUaGVtZVByb3ZpZGVyLCB3aXRoVGhlbWV9IGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCB7Y3JlYXRlU2VsZWN0b3J9IGZyb20gJ3Jlc2VsZWN0JztcbmltcG9ydCB7Y29ubmVjdCBhcyBrZXBsZXJHbENvbm5lY3R9IGZyb20gJ2Nvbm5lY3Qva2VwbGVyZ2wtY29ubmVjdCc7XG5pbXBvcnQge0ludGxQcm92aWRlcn0gZnJvbSAncmVhY3QtaW50bCc7XG5pbXBvcnQge21lc3NhZ2VzfSBmcm9tICcuLi9sb2NhbGl6YXRpb24nO1xuaW1wb3J0IHtSb290Q29udGV4dH0gZnJvbSAnY29tcG9uZW50cy9jb250ZXh0JztcblxuaW1wb3J0ICogYXMgVmlzU3RhdGVBY3Rpb25zIGZyb20gJ2FjdGlvbnMvdmlzLXN0YXRlLWFjdGlvbnMnO1xuaW1wb3J0ICogYXMgTWFwU3RhdGVBY3Rpb25zIGZyb20gJ2FjdGlvbnMvbWFwLXN0YXRlLWFjdGlvbnMnO1xuaW1wb3J0ICogYXMgTWFwU3R5bGVBY3Rpb25zIGZyb20gJ2FjdGlvbnMvbWFwLXN0eWxlLWFjdGlvbnMnO1xuaW1wb3J0ICogYXMgVUlTdGF0ZUFjdGlvbnMgZnJvbSAnYWN0aW9ucy91aS1zdGF0ZS1hY3Rpb25zJztcbmltcG9ydCAqIGFzIFByb3ZpZGVyQWN0aW9ucyBmcm9tICdhY3Rpb25zL3Byb3ZpZGVyLWFjdGlvbnMnO1xuXG5pbXBvcnQge1xuICBESU1FTlNJT05TLFxuICBLRVBMRVJfR0xfTkFNRSxcbiAgS0VQTEVSX0dMX1ZFUlNJT04sXG4gIFRIRU1FLFxuICBERUZBVUxUX01BUEJPWF9BUElfVVJMXG59IGZyb20gJ2NvbnN0YW50cy9kZWZhdWx0LXNldHRpbmdzJztcbmltcG9ydCB7TUlTU0lOR19NQVBCT1hfVE9LRU59IGZyb20gJ2NvbnN0YW50cy91c2VyLWZlZWRiYWNrcyc7XG5cbmltcG9ydCBTaWRlUGFuZWxGYWN0b3J5IGZyb20gJy4vc2lkZS1wYW5lbCc7XG5pbXBvcnQgTWFwQ29udGFpbmVyRmFjdG9yeSBmcm9tICcuL21hcC1jb250YWluZXInO1xuaW1wb3J0IE1hcHNMYXlvdXRGYWN0b3J5IGZyb20gJy4vbWFwcy1sYXlvdXQnO1xuaW1wb3J0IEJvdHRvbVdpZGdldEZhY3RvcnkgZnJvbSAnLi9ib3R0b20td2lkZ2V0JztcbmltcG9ydCBNb2RhbENvbnRhaW5lckZhY3RvcnkgZnJvbSAnLi9tb2RhbC1jb250YWluZXInO1xuaW1wb3J0IFBsb3RDb250YWluZXJGYWN0b3J5IGZyb20gJy4vcGxvdC1jb250YWluZXInO1xuaW1wb3J0IE5vdGlmaWNhdGlvblBhbmVsRmFjdG9yeSBmcm9tICcuL25vdGlmaWNhdGlvbi1wYW5lbCc7XG5pbXBvcnQgR2VvQ29kZXJQYW5lbEZhY3RvcnkgZnJvbSAnLi9nZW9jb2Rlci1wYW5lbCc7XG5cbmltcG9ydCB7Z2VuZXJhdGVIYXNoSWR9IGZyb20gJ3V0aWxzL3V0aWxzJztcbmltcG9ydCB7dmFsaWRhdGVUb2tlbn0gZnJvbSAndXRpbHMvbWFwYm94LXV0aWxzJztcbmltcG9ydCB7bWVyZ2VNZXNzYWdlc30gZnJvbSAndXRpbHMvbG9jYWxlLXV0aWxzJztcblxuaW1wb3J0IHt0aGVtZSBhcyBiYXNpY1RoZW1lLCB0aGVtZUxULCB0aGVtZUJTfSBmcm9tICdzdHlsZXMvYmFzZSc7XG5pbXBvcnQge29ic2VydmVEaW1lbnNpb25zLCB1bm9ic2VydmVEaW1lbnNpb25zfSBmcm9tICcuLi91dGlscy9vYnNlcnZlLWRpbWVuc2lvbnMnO1xuXG4vLyBNYXliZSB3ZSBzaG91bGQgdGhpbmsgYWJvdXQgZXhwb3J0aW5nIHRoaXMgb3IgY3JlYXRpbmcgYSB2YXJpYWJsZVxuLy8gYXMgcGFydCBvZiB0aGUgYmFzZS5qcyB0aGVtZVxuY29uc3QgR2xvYmFsU3R5bGUgPSBzdHlsZWQuZGl2YFxuICBmb250LWZhbWlseTogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5mb250RmFtaWx5fTtcbiAgZm9udC13ZWlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZm9udFdlaWdodH07XG4gIGZvbnQtc2l6ZTogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5mb250U2l6ZX07XG4gIGxpbmUtaGVpZ2h0OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmxpbmVIZWlnaHR9O1xuXG4gICosXG4gICo6YmVmb3JlLFxuICAqOmFmdGVyIHtcbiAgICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgLW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIH1cblxuICB1bCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cblxuICBsaSB7XG4gICAgbWFyZ2luOiAwO1xuICB9XG5cbiAgYSB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmxhYmVsQ29sb3J9O1xuICB9XG5cbiAgLm1hcGJveGdsLWN0cmwgLm1hcGJveGdsLWN0cmwtbG9nbyB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuYDtcblxuY29uc3QgQm90dG9tV2lkZ2V0T3V0ZXIgPSBzdHlsZWQuZGl2KFxuICAoe2Fic29sdXRlfSkgPT4gYFxuICAke2Fic29sdXRlID8gJ3Bvc2l0aW9uOiBhYnNvbHV0ZTsgYm90dG9tOiAwOyByaWdodDogMDsnIDogJyd9XG4gIHBvaW50ZXItZXZlbnRzOiBub25lOyAvKiBwcmV2ZW50IHBhZGRpbmcgZnJvbSBibG9ja2luZyBpbnB1dCAqL1xuICAmID4gKiB7XG4gICAgLyogYWxsIGNoaWxkcmVuIHNob3VsZCBhbGxvdyBpbnB1dCAqL1xuICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG4gIH1gXG4pO1xuXG5leHBvcnQgY29uc3QgbWFwRmllbGRzU2VsZWN0b3IgPSBwcm9wcyA9PiAoe1xuICBnZXRNYXBib3hSZWY6IHByb3BzLmdldE1hcGJveFJlZixcbiAgbWFwYm94QXBpQWNjZXNzVG9rZW46IHByb3BzLm1hcGJveEFwaUFjY2Vzc1Rva2VuLFxuICBtYXBib3hBcGlVcmw6IHByb3BzLm1hcGJveEFwaVVybCxcbiAgbWFwU3RhdGU6IHByb3BzLm1hcFN0YXRlLFxuICBtYXBTdHlsZTogcHJvcHMubWFwU3R5bGUsXG4gIG9uRGVja0luaXRpYWxpemVkOiBwcm9wcy5vbkRlY2tJbml0aWFsaXplZCxcbiAgb25WaWV3U3RhdGVDaGFuZ2U6IHByb3BzLm9uVmlld1N0YXRlQ2hhbmdlLFxuICBkZWNrR2xQcm9wczogcHJvcHMuZGVja0dsUHJvcHMsXG4gIHVpU3RhdGVBY3Rpb25zOiBwcm9wcy51aVN0YXRlQWN0aW9ucyxcbiAgdmlzU3RhdGVBY3Rpb25zOiBwcm9wcy52aXNTdGF0ZUFjdGlvbnMsXG4gIG1hcFN0YXRlQWN0aW9uczogcHJvcHMubWFwU3RhdGVBY3Rpb25zLFxuXG4gIC8vIHZpc1N0YXRlXG4gIGVkaXRvcjogcHJvcHMudmlzU3RhdGUuZWRpdG9yLFxuICBkYXRhc2V0czogcHJvcHMudmlzU3RhdGUuZGF0YXNldHMsXG4gIGxheWVyczogcHJvcHMudmlzU3RhdGUubGF5ZXJzLFxuICBsYXllck9yZGVyOiBwcm9wcy52aXNTdGF0ZS5sYXllck9yZGVyLFxuICBsYXllckRhdGE6IHByb3BzLnZpc1N0YXRlLmxheWVyRGF0YSxcbiAgbGF5ZXJCbGVuZGluZzogcHJvcHMudmlzU3RhdGUubGF5ZXJCbGVuZGluZyxcbiAgZmlsdGVyczogcHJvcHMudmlzU3RhdGUuZmlsdGVycyxcbiAgaW50ZXJhY3Rpb25Db25maWc6IHByb3BzLnZpc1N0YXRlLmludGVyYWN0aW9uQ29uZmlnLFxuICBob3ZlckluZm86IHByb3BzLnZpc1N0YXRlLmhvdmVySW5mbyxcbiAgY2xpY2tlZDogcHJvcHMudmlzU3RhdGUuY2xpY2tlZCxcbiAgbW91c2VQb3M6IHByb3BzLnZpc1N0YXRlLm1vdXNlUG9zLFxuICBhbmltYXRpb25Db25maWc6IHByb3BzLnZpc1N0YXRlLmFuaW1hdGlvbkNvbmZpZyxcblxuICAvLyB1aVN0YXRlXG4gIGFjdGl2ZVNpZGVQYW5lbDogcHJvcHMudWlTdGF0ZS5hY3RpdmVTaWRlUGFuZWwsXG4gIG1hcENvbnRyb2xzOiBwcm9wcy51aVN0YXRlLm1hcENvbnRyb2xzLFxuICByZWFkT25seTogcHJvcHMudWlTdGF0ZS5yZWFkT25seSxcbiAgbG9jYWxlOiBwcm9wcy51aVN0YXRlLmxvY2FsZVxufSk7XG5cbmV4cG9ydCBjb25zdCBzaWRlUGFuZWxTZWxlY3RvciA9IChwcm9wcywgYXZhaWxhYmxlUHJvdmlkZXJzKSA9PiAoe1xuICBhcHBOYW1lOiBwcm9wcy5hcHBOYW1lLFxuICB2ZXJzaW9uOiBwcm9wcy52ZXJzaW9uLFxuICBhcHBXZWJzaXRlOiBwcm9wcy5hcHBXZWJzaXRlLFxuICBtYXBTdHlsZTogcHJvcHMubWFwU3R5bGUsXG4gIG9uU2F2ZU1hcDogcHJvcHMub25TYXZlTWFwLFxuICB1aVN0YXRlOiBwcm9wcy51aVN0YXRlLFxuICBtYXBTdHlsZUFjdGlvbnM6IHByb3BzLm1hcFN0eWxlQWN0aW9ucyxcbiAgdmlzU3RhdGVBY3Rpb25zOiBwcm9wcy52aXNTdGF0ZUFjdGlvbnMsXG4gIHVpU3RhdGVBY3Rpb25zOiBwcm9wcy51aVN0YXRlQWN0aW9ucyxcblxuICBkYXRhc2V0czogcHJvcHMudmlzU3RhdGUuZGF0YXNldHMsXG4gIGZpbHRlcnM6IHByb3BzLnZpc1N0YXRlLmZpbHRlcnMsXG4gIGxheWVyczogcHJvcHMudmlzU3RhdGUubGF5ZXJzLFxuICBsYXllck9yZGVyOiBwcm9wcy52aXNTdGF0ZS5sYXllck9yZGVyLFxuICBsYXllckNsYXNzZXM6IHByb3BzLnZpc1N0YXRlLmxheWVyQ2xhc3NlcyxcbiAgaW50ZXJhY3Rpb25Db25maWc6IHByb3BzLnZpc1N0YXRlLmludGVyYWN0aW9uQ29uZmlnLFxuICBtYXBJbmZvOiBwcm9wcy52aXNTdGF0ZS5tYXBJbmZvLFxuICBsYXllckJsZW5kaW5nOiBwcm9wcy52aXNTdGF0ZS5sYXllckJsZW5kaW5nLFxuXG4gIHdpZHRoOiBwcm9wcy5zaWRlUGFuZWxXaWR0aCxcbiAgYXZhaWxhYmxlUHJvdmlkZXJzLFxuICBtYXBTYXZlZDogcHJvcHMucHJvdmlkZXJTdGF0ZS5tYXBTYXZlZFxufSk7XG5cbmV4cG9ydCBjb25zdCBwbG90Q29udGFpbmVyU2VsZWN0b3IgPSBwcm9wcyA9PiAoe1xuICB3aWR0aDogcHJvcHMud2lkdGgsXG4gIGhlaWdodDogcHJvcHMuaGVpZ2h0LFxuICBleHBvcnRJbWFnZVNldHRpbmc6IHByb3BzLnVpU3RhdGUuZXhwb3J0SW1hZ2UsXG4gIG1hcEZpZWxkczogbWFwRmllbGRzU2VsZWN0b3IocHJvcHMpLFxuICBhZGROb3RpZmljYXRpb246IHByb3BzLnVpU3RhdGVBY3Rpb25zLmFkZE5vdGlmaWNhdGlvbixcbiAgc2V0RXhwb3J0SW1hZ2VTZXR0aW5nOiBwcm9wcy51aVN0YXRlQWN0aW9ucy5zZXRFeHBvcnRJbWFnZVNldHRpbmcsXG4gIHNldEV4cG9ydEltYWdlRGF0YVVyaTogcHJvcHMudWlTdGF0ZUFjdGlvbnMuc2V0RXhwb3J0SW1hZ2VEYXRhVXJpLFxuICBzZXRFeHBvcnRJbWFnZUVycm9yOiBwcm9wcy51aVN0YXRlQWN0aW9ucy5zZXRFeHBvcnRJbWFnZUVycm9yLFxuICBzcGxpdE1hcHM6IHByb3BzLnZpc1N0YXRlLnNwbGl0TWFwcyxcbiAgbWFza1BvbHlnb246IHByb3BzLm1hc2tQb2x5Z29uXG59KTtcblxuZXhwb3J0IGNvbnN0IGlzU3BsaXRTZWxlY3RvciA9IHByb3BzID0+XG4gIHByb3BzLnZpc1N0YXRlLnNwbGl0TWFwcyAmJiBwcm9wcy52aXNTdGF0ZS5zcGxpdE1hcHMubGVuZ3RoID4gMTtcblxuZXhwb3J0IGNvbnN0IGJvdHRvbVdpZGdldFNlbGVjdG9yID0gKHByb3BzLCB0aGVtZSkgPT4gKHtcbiAgZmlsdGVyczogcHJvcHMudmlzU3RhdGUuZmlsdGVycyxcbiAgZGF0YXNldHM6IHByb3BzLnZpc1N0YXRlLmRhdGFzZXRzLFxuICB1aVN0YXRlOiBwcm9wcy51aVN0YXRlLFxuICBsYXllcnM6IHByb3BzLnZpc1N0YXRlLmxheWVycyxcbiAgYW5pbWF0aW9uQ29uZmlnOiBwcm9wcy52aXNTdGF0ZS5hbmltYXRpb25Db25maWcsXG4gIHZpc1N0YXRlQWN0aW9uczogcHJvcHMudmlzU3RhdGVBY3Rpb25zLFxuICB0b2dnbGVNb2RhbDogcHJvcHMudWlTdGF0ZUFjdGlvbnMudG9nZ2xlTW9kYWwsXG4gIHNpZGVQYW5lbFdpZHRoOiBwcm9wcy51aVN0YXRlLnJlYWRPbmx5ID8gMCA6IHByb3BzLnNpZGVQYW5lbFdpZHRoICsgdGhlbWUuc2lkZVBhbmVsLm1hcmdpbi5sZWZ0XG59KTtcblxuZXhwb3J0IGNvbnN0IG1vZGFsQ29udGFpbmVyU2VsZWN0b3IgPSAocHJvcHMsIHJvb3ROb2RlKSA9PiAoe1xuICBhcHBOYW1lOiBwcm9wcy5hcHBOYW1lLFxuICBtYXBTdHlsZTogcHJvcHMubWFwU3R5bGUsXG4gIHZpc1N0YXRlOiBwcm9wcy52aXNTdGF0ZSxcbiAgbWFwU3RhdGU6IHByb3BzLm1hcFN0YXRlLFxuICB1aVN0YXRlOiBwcm9wcy51aVN0YXRlLFxuICBwcm92aWRlclN0YXRlOiBwcm9wcy5wcm92aWRlclN0YXRlLFxuXG4gIG1hcGJveEFwaUFjY2Vzc1Rva2VuOiBwcm9wcy5tYXBib3hBcGlBY2Nlc3NUb2tlbixcbiAgbWFwYm94QXBpVXJsOiBwcm9wcy5tYXBib3hBcGlVcmwsXG4gIHZpc1N0YXRlQWN0aW9uczogcHJvcHMudmlzU3RhdGVBY3Rpb25zLFxuICB1aVN0YXRlQWN0aW9uczogcHJvcHMudWlTdGF0ZUFjdGlvbnMsXG4gIG1hcFN0eWxlQWN0aW9uczogcHJvcHMubWFwU3R5bGVBY3Rpb25zLFxuICBwcm92aWRlckFjdGlvbnM6IHByb3BzLnByb3ZpZGVyQWN0aW9ucyxcblxuICByb290Tm9kZSxcbiAgLy8gVXNlciBkZWZpbmVkIGNsb3VkIHByb3ZpZGVyIHByb3BzXG4gIGNsb3VkUHJvdmlkZXJzOiBwcm9wcy5jbG91ZFByb3ZpZGVycyxcbiAgb25FeHBvcnRUb0Nsb3VkU3VjY2VzczogcHJvcHMub25FeHBvcnRUb0Nsb3VkU3VjY2VzcyxcbiAgb25Mb2FkQ2xvdWRNYXBTdWNjZXNzOiBwcm9wcy5vbkxvYWRDbG91ZE1hcFN1Y2Nlc3MsXG4gIG9uTG9hZENsb3VkTWFwRXJyb3I6IHByb3BzLm9uTG9hZENsb3VkTWFwRXJyb3IsXG4gIG9uRXhwb3J0VG9DbG91ZEVycm9yOiBwcm9wcy5vbkV4cG9ydFRvQ2xvdWRFcnJvclxufSk7XG5cbmV4cG9ydCBjb25zdCBnZW9Db2RlclBhbmVsU2VsZWN0b3IgPSBwcm9wcyA9PiAoe1xuICBpc0dlb2NvZGVyRW5hYmxlZDogcHJvcHMudmlzU3RhdGUuaW50ZXJhY3Rpb25Db25maWcuZ2VvY29kZXIuZW5hYmxlZCxcbiAgbWFwYm94QXBpQWNjZXNzVG9rZW46IHByb3BzLm1hcGJveEFwaUFjY2Vzc1Rva2VuLFxuICBtYXBTdGF0ZTogcHJvcHMubWFwU3RhdGUsXG4gIHVwZGF0ZVZpc0RhdGE6IHByb3BzLnZpc1N0YXRlQWN0aW9ucy51cGRhdGVWaXNEYXRhLFxuICByZW1vdmVEYXRhc2V0OiBwcm9wcy52aXNTdGF0ZUFjdGlvbnMucmVtb3ZlRGF0YXNldCxcbiAgdXBkYXRlTWFwOiBwcm9wcy5tYXBTdGF0ZUFjdGlvbnMudXBkYXRlTWFwXG59KTtcblxuZXhwb3J0IGNvbnN0IG5vdGlmaWNhdGlvblBhbmVsU2VsZWN0b3IgPSBwcm9wcyA9PiAoe1xuICByZW1vdmVOb3RpZmljYXRpb246IHByb3BzLnVpU3RhdGVBY3Rpb25zLnJlbW92ZU5vdGlmaWNhdGlvbixcbiAgbm90aWZpY2F0aW9uczogcHJvcHMudWlTdGF0ZS5ub3RpZmljYXRpb25zXG59KTtcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfS0VQTEVSX0dMX1BST1BTID0ge1xuICBtYXBTdHlsZXM6IFtdLFxuICBtYXBTdHlsZXNSZXBsYWNlRGVmYXVsdDogZmFsc2UsXG4gIG1hcGJveEFwaVVybDogREVGQVVMVF9NQVBCT1hfQVBJX1VSTCxcbiAgd2lkdGg6IDgwMCxcbiAgaGVpZ2h0OiA4MDAsXG4gIGFwcE5hbWU6IEtFUExFUl9HTF9OQU1FLFxuICB2ZXJzaW9uOiBLRVBMRVJfR0xfVkVSU0lPTixcbiAgc2lkZVBhbmVsV2lkdGg6IERJTUVOU0lPTlMuc2lkZVBhbmVsLndpZHRoLFxuICB0aGVtZToge30sXG4gIGNsb3VkUHJvdmlkZXJzOiBbXSxcbiAgcmVhZE9ubHk6IGZhbHNlXG59O1xuXG5LZXBsZXJHbEZhY3RvcnkuZGVwcyA9IFtcbiAgQm90dG9tV2lkZ2V0RmFjdG9yeSxcbiAgR2VvQ29kZXJQYW5lbEZhY3RvcnksXG4gIE1hcENvbnRhaW5lckZhY3RvcnksXG4gIE1hcHNMYXlvdXRGYWN0b3J5LFxuICBNb2RhbENvbnRhaW5lckZhY3RvcnksXG4gIFNpZGVQYW5lbEZhY3RvcnksXG4gIFBsb3RDb250YWluZXJGYWN0b3J5LFxuICBOb3RpZmljYXRpb25QYW5lbEZhY3Rvcnlcbl07XG5cbmZ1bmN0aW9uIEtlcGxlckdsRmFjdG9yeShcbiAgQm90dG9tV2lkZ2V0LFxuICBHZW9Db2RlclBhbmVsLFxuICBNYXBDb250YWluZXIsXG4gIE1hcHNMYXlvdXQsXG4gIE1vZGFsQ29udGFpbmVyLFxuICBTaWRlUGFuZWwsXG4gIFBsb3RDb250YWluZXIsXG4gIE5vdGlmaWNhdGlvblBhbmVsXG4pIHtcbiAgLyoqIEB0eXBlZGVmIHtpbXBvcnQoJy4va2VwbGVyLWdsJykuVW5jb25uZWN0ZWRLZXBsZXJHbFByb3BzfSBLZXBsZXJHbFByb3BzICovXG4gIC8qKiBAYXVnbWVudHMgUmVhY3QuQ29tcG9uZW50PEtlcGxlckdsUHJvcHM+ICovXG4gIGNsYXNzIEtlcGxlckdMIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgICBzdGF0aWMgZGVmYXVsdFByb3BzID0gREVGQVVMVF9LRVBMRVJfR0xfUFJPUFM7XG5cbiAgICBzdGF0ZSA9IHtcbiAgICAgIGRpbWVuc2lvbnM6IG51bGxcbiAgICB9O1xuXG4gICAgY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgICB0aGlzLl92YWxpZGF0ZU1hcGJveFRva2VuKCk7XG4gICAgICB0aGlzLl9sb2FkTWFwU3R5bGUoKTtcbiAgICAgIGlmICh0eXBlb2YgdGhpcy5wcm9wcy5vbktlcGxlckdsSW5pdGlhbGl6ZWQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgdGhpcy5wcm9wcy5vbktlcGxlckdsSW5pdGlhbGl6ZWQoKTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLnJvb3QuY3VycmVudCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSB7XG4gICAgICAgIG9ic2VydmVEaW1lbnNpb25zKHRoaXMucm9vdC5jdXJyZW50LCB0aGlzLl9oYW5kbGVSZXNpemUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgICAgaWYgKHRoaXMucm9vdC5jdXJyZW50IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgdW5vYnNlcnZlRGltZW5zaW9ucyh0aGlzLnJvb3QuY3VycmVudCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgX2hhbmRsZVJlc2l6ZSA9IGRpbWVuc2lvbnMgPT4ge1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7ZGltZW5zaW9uc30pO1xuICAgIH07XG5cbiAgICBzdGF0aWMgY29udGV4dFR5cGUgPSBSb290Q29udGV4dDtcblxuICAgIHJvb3QgPSBjcmVhdGVSZWYoKTtcbiAgICBib3R0b21XaWRnZXRSZWYgPSBjcmVhdGVSZWYoKTtcblxuICAgIC8qIHNlbGVjdG9ycyAqL1xuICAgIHRoZW1lU2VsZWN0b3IgPSBwcm9wcyA9PiBwcm9wcy50aGVtZTtcbiAgICBhdmFpbGFibGVUaGVtZVNlbGVjdG9yID0gY3JlYXRlU2VsZWN0b3IodGhpcy50aGVtZVNlbGVjdG9yLCB0aGVtZSA9PlxuICAgICAgdHlwZW9mIHRoZW1lID09PSAnb2JqZWN0J1xuICAgICAgICA/IHtcbiAgICAgICAgICAgIC4uLmJhc2ljVGhlbWUsXG4gICAgICAgICAgICAuLi50aGVtZVxuICAgICAgICAgIH1cbiAgICAgICAgOiB0aGVtZSA9PT0gVEhFTUUubGlnaHRcbiAgICAgICAgPyB0aGVtZUxUXG4gICAgICAgIDogdGhlbWUgPT09IFRIRU1FLmJhc2VcbiAgICAgICAgPyB0aGVtZUJTXG4gICAgICAgIDogdGhlbWVcbiAgICApO1xuXG4gICAgYXZhaWxhYmxlUHJvdmlkZXJzID0gY3JlYXRlU2VsZWN0b3IoXG4gICAgICBwcm9wcyA9PiBwcm9wcy5jbG91ZFByb3ZpZGVycyxcbiAgICAgIHByb3ZpZGVycyA9PlxuICAgICAgICBBcnJheS5pc0FycmF5KHByb3ZpZGVycykgJiYgcHJvdmlkZXJzLmxlbmd0aFxuICAgICAgICAgID8ge1xuICAgICAgICAgICAgICBoYXNTdG9yYWdlOiBwcm92aWRlcnMuc29tZShwID0+IHAuaGFzUHJpdmF0ZVN0b3JhZ2UoKSksXG4gICAgICAgICAgICAgIGhhc1NoYXJlOiBwcm92aWRlcnMuc29tZShwID0+IHAuaGFzU2hhcmluZ1VybCgpKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIDoge31cbiAgICApO1xuXG4gICAgbG9jYWxlTWVzc2FnZXNTZWxlY3RvciA9IGNyZWF0ZVNlbGVjdG9yKFxuICAgICAgcHJvcHMgPT4gcHJvcHMubG9jYWxlTWVzc2FnZXMsXG4gICAgICBjdXN0b21NZXNzYWdlcyA9PiAoY3VzdG9tTWVzc2FnZXMgPyBtZXJnZU1lc3NhZ2VzKG1lc3NhZ2VzLCBjdXN0b21NZXNzYWdlcykgOiBtZXNzYWdlcylcbiAgICApO1xuXG4gICAgLyogcHJpdmF0ZSBtZXRob2RzICovXG4gICAgX3ZhbGlkYXRlTWFwYm94VG9rZW4oKSB7XG4gICAgICBjb25zdCB7bWFwYm94QXBpQWNjZXNzVG9rZW59ID0gdGhpcy5wcm9wcztcbiAgICAgIGlmICghdmFsaWRhdGVUb2tlbihtYXBib3hBcGlBY2Nlc3NUb2tlbikpIHtcbiAgICAgICAgQ29uc29sZS53YXJuKE1JU1NJTkdfTUFQQk9YX1RPS0VOKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBfbG9hZE1hcFN0eWxlID0gKCkgPT4ge1xuICAgICAgY29uc3QgZGVmYXVsdFN0eWxlcyA9IE9iamVjdC52YWx1ZXModGhpcy5wcm9wcy5tYXBTdHlsZS5tYXBTdHlsZXMpO1xuICAgICAgLy8gYWRkIGlkIHRvIGN1c3RvbSBtYXAgc3R5bGVzIGlmIG5vdCBnaXZlblxuICAgICAgY29uc3QgY3VzdG9tU3R5bGVzID0gKHRoaXMucHJvcHMubWFwU3R5bGVzIHx8IFtdKS5tYXAobXMgPT4gKHtcbiAgICAgICAgLi4ubXMsXG4gICAgICAgIGlkOiBtcy5pZCB8fCBnZW5lcmF0ZUhhc2hJZCgpXG4gICAgICB9KSk7XG5cbiAgICAgIGNvbnN0IGFsbFN0eWxlcyA9IFsuLi5jdXN0b21TdHlsZXMsIC4uLmRlZmF1bHRTdHlsZXNdLnJlZHVjZShcbiAgICAgICAgKGFjY3UsIHN0eWxlKSA9PiB7XG4gICAgICAgICAgY29uc3QgaGFzU3R5bGVPYmplY3QgPSBzdHlsZS5zdHlsZSAmJiB0eXBlb2Ygc3R5bGUuc3R5bGUgPT09ICdvYmplY3QnO1xuICAgICAgICAgIGFjY3VbaGFzU3R5bGVPYmplY3QgPyAndG9Mb2FkJyA6ICd0b1JlcXVlc3QnXVtzdHlsZS5pZF0gPSBzdHlsZTtcblxuICAgICAgICAgIHJldHVybiBhY2N1O1xuICAgICAgICB9LFxuICAgICAgICB7dG9Mb2FkOiB7fSwgdG9SZXF1ZXN0OiB7fX1cbiAgICAgICk7XG5cbiAgICAgIHRoaXMucHJvcHMubWFwU3R5bGVBY3Rpb25zLmxvYWRNYXBTdHlsZXMoYWxsU3R5bGVzLnRvTG9hZCk7XG4gICAgICB0aGlzLnByb3BzLm1hcFN0eWxlQWN0aW9ucy5yZXF1ZXN0TWFwU3R5bGVzKGFsbFN0eWxlcy50b1JlcXVlc3QpO1xuICAgIH07XG5cbiAgICByZW5kZXIoKSB7XG4gICAgICBjb25zdCB7XG4gICAgICAgIGlkLFxuICAgICAgICB3aWR0aCxcbiAgICAgICAgaGVpZ2h0LFxuICAgICAgICB1aVN0YXRlLFxuICAgICAgICB2aXNTdGF0ZSxcbiAgICAgICAgLy8gcmVhZE9ubHkgb3ZlcnJpZGVcbiAgICAgICAgcmVhZE9ubHksXG4gICAgICAgIG1hc2tQb2x5Z29uXG4gICAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgICAgY29uc3QgZGltZW5zaW9ucyA9IHRoaXMuc3RhdGUuZGltZW5zaW9ucyB8fCB7d2lkdGgsIGhlaWdodH07XG4gICAgICBjb25zdCB7XG4gICAgICAgIHNwbGl0TWFwcywgLy8gdGhpcyB3aWxsIHN0b3JlIHN1cHBvcnQgZm9yIHNwbGl0IG1hcCB2aWV3IGlzIG5lY2Vzc2FyeVxuICAgICAgICBpbnRlcmFjdGlvbkNvbmZpZ1xuICAgICAgfSA9IHZpc1N0YXRlO1xuXG4gICAgICBjb25zdCBpc1NwbGl0ID0gaXNTcGxpdFNlbGVjdG9yKHRoaXMucHJvcHMpO1xuICAgICAgY29uc3QgdGhlbWUgPSB0aGlzLmF2YWlsYWJsZVRoZW1lU2VsZWN0b3IodGhpcy5wcm9wcyk7XG4gICAgICBjb25zdCBsb2NhbGVNZXNzYWdlcyA9IHRoaXMubG9jYWxlTWVzc2FnZXNTZWxlY3Rvcih0aGlzLnByb3BzKTtcbiAgICAgIGNvbnN0IGlzRXhwb3J0aW5nSW1hZ2UgPSB1aVN0YXRlLmV4cG9ydEltYWdlLmV4cG9ydGluZztcbiAgICAgIGNvbnN0IGF2YWlsYWJsZVByb3ZpZGVycyA9IHRoaXMuYXZhaWxhYmxlUHJvdmlkZXJzKHRoaXMucHJvcHMpO1xuXG4gICAgICBjb25zdCBtYXBGaWVsZHMgPSBtYXBGaWVsZHNTZWxlY3Rvcih0aGlzLnByb3BzKTtcbiAgICAgIGNvbnN0IHNpZGVGaWVsZHMgPSBzaWRlUGFuZWxTZWxlY3Rvcih0aGlzLnByb3BzLCBhdmFpbGFibGVQcm92aWRlcnMpO1xuICAgICAgY29uc3QgcGxvdENvbnRhaW5lckZpZWxkcyA9IHBsb3RDb250YWluZXJTZWxlY3Rvcih0aGlzLnByb3BzKTtcbiAgICAgIGNvbnN0IGJvdHRvbVdpZGdldEZpZWxkcyA9IGJvdHRvbVdpZGdldFNlbGVjdG9yKHRoaXMucHJvcHMsIHRoZW1lKTtcbiAgICAgIGNvbnN0IG1vZGFsQ29udGFpbmVyRmllbGRzID0gbW9kYWxDb250YWluZXJTZWxlY3Rvcih0aGlzLnByb3BzLCB0aGlzLnJvb3QuY3VycmVudCk7XG4gICAgICBjb25zdCBnZW9Db2RlclBhbmVsRmllbGRzID0gZ2VvQ29kZXJQYW5lbFNlbGVjdG9yKHRoaXMucHJvcHMpO1xuICAgICAgY29uc3Qgbm90aWZpY2F0aW9uUGFuZWxGaWVsZHMgPSBub3RpZmljYXRpb25QYW5lbFNlbGVjdG9yKHRoaXMucHJvcHMpO1xuXG4gICAgICBjb25zdCBtYXBDb250YWluZXJzID0gIWlzU3BsaXRcbiAgICAgICAgPyBbXG4gICAgICAgICAgICA8TWFwQ29udGFpbmVyXG4gICAgICAgICAgICAgIHByaW1hcnk9e3RydWV9XG4gICAgICAgICAgICAgIGtleT17MH1cbiAgICAgICAgICAgICAgaW5kZXg9ezB9XG4gICAgICAgICAgICAgIHsuLi5tYXBGaWVsZHN9XG4gICAgICAgICAgICAgIG1hcExheWVycz17bnVsbH1cbiAgICAgICAgICAgICAgbWFza1BvbHlnb249e21hc2tQb2x5Z29ufVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICBdXG4gICAgICAgIDogc3BsaXRNYXBzLm1hcCgoc2V0dGluZ3MsIGluZGV4KSA9PiAoXG4gICAgICAgICAgICA8TWFwQ29udGFpbmVyXG4gICAgICAgICAgICAgIGtleT17aW5kZXh9XG4gICAgICAgICAgICAgIGluZGV4PXtpbmRleH1cbiAgICAgICAgICAgICAgcHJpbWFyeT17aW5kZXggPT09IDF9XG4gICAgICAgICAgICAgIHsuLi5tYXBGaWVsZHN9XG4gICAgICAgICAgICAgIG1hcExheWVycz17c3BsaXRNYXBzW2luZGV4XS5sYXllcnN9XG4gICAgICAgICAgICAgIG1hc2tQb2x5Z29uPXttYXNrUG9seWdvbn1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKSk7XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxSb290Q29udGV4dC5Qcm92aWRlciB2YWx1ZT17dGhpcy5yb290fT5cbiAgICAgICAgICA8SW50bFByb3ZpZGVyIGxvY2FsZT17dWlTdGF0ZS5sb2NhbGV9IG1lc3NhZ2VzPXtsb2NhbGVNZXNzYWdlc1t1aVN0YXRlLmxvY2FsZV19PlxuICAgICAgICAgICAgPFRoZW1lUHJvdmlkZXIgdGhlbWU9e3RoZW1lfT5cbiAgICAgICAgICAgICAgPEdsb2JhbFN0eWxlXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwia2VwbGVyLWdsXCJcbiAgICAgICAgICAgICAgICBpZD17YGtlcGxlci1nbF9fJHtpZH1gfVxuICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAgICAgICAgICBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJyxcbiAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiAncmVsYXRpdmUnLFxuICAgICAgICAgICAgICAgICAgd2lkdGg6IGAke3dpZHRofXB4YCxcbiAgICAgICAgICAgICAgICAgIGhlaWdodDogYCR7aGVpZ2h0fXB4YFxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgcmVmPXt0aGlzLnJvb3R9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8Tm90aWZpY2F0aW9uUGFuZWwgey4uLm5vdGlmaWNhdGlvblBhbmVsRmllbGRzfSAvPlxuICAgICAgICAgICAgICAgIHshdWlTdGF0ZS5yZWFkT25seSAmJiAhcmVhZE9ubHkgJiYgPFNpZGVQYW5lbCB7Li4uc2lkZUZpZWxkc30gLz59XG4gICAgICAgICAgICAgICAgPE1hcHNMYXlvdXQgY2xhc3NOYW1lPVwibWFwc1wiPnttYXBDb250YWluZXJzfTwvTWFwc0xheW91dD5cbiAgICAgICAgICAgICAgICB7aXNFeHBvcnRpbmdJbWFnZSAmJiA8UGxvdENvbnRhaW5lciB7Li4ucGxvdENvbnRhaW5lckZpZWxkc30gLz59XG4gICAgICAgICAgICAgICAge2ludGVyYWN0aW9uQ29uZmlnLmdlb2NvZGVyLmVuYWJsZWQgJiYgPEdlb0NvZGVyUGFuZWwgey4uLmdlb0NvZGVyUGFuZWxGaWVsZHN9IC8+fVxuICAgICAgICAgICAgICAgIDxCb3R0b21XaWRnZXRPdXRlciBhYnNvbHV0ZT5cbiAgICAgICAgICAgICAgICAgIDxCb3R0b21XaWRnZXRcbiAgICAgICAgICAgICAgICAgICAgcmVmPXt0aGlzLmJvdHRvbVdpZGdldFJlZn1cbiAgICAgICAgICAgICAgICAgICAgey4uLmJvdHRvbVdpZGdldEZpZWxkc31cbiAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyVz17ZGltZW5zaW9ucy53aWR0aH1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9Cb3R0b21XaWRnZXRPdXRlcj5cbiAgICAgICAgICAgICAgICA8TW9kYWxDb250YWluZXJcbiAgICAgICAgICAgICAgICAgIHsuLi5tb2RhbENvbnRhaW5lckZpZWxkc31cbiAgICAgICAgICAgICAgICAgIGNvbnRhaW5lclc9e2RpbWVuc2lvbnMud2lkdGh9XG4gICAgICAgICAgICAgICAgICBjb250YWluZXJIPXtkaW1lbnNpb25zLmhlaWdodH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L0dsb2JhbFN0eWxlPlxuICAgICAgICAgICAgPC9UaGVtZVByb3ZpZGVyPlxuICAgICAgICAgIDwvSW50bFByb3ZpZGVyPlxuICAgICAgICA8L1Jvb3RDb250ZXh0LlByb3ZpZGVyPlxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4ga2VwbGVyR2xDb25uZWN0KG1hcFN0YXRlVG9Qcm9wcywgbWFrZU1hcERpc3BhdGNoVG9Qcm9wcykod2l0aFRoZW1lKEtlcGxlckdMKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtYXBTdGF0ZVRvUHJvcHMoc3RhdGUgPSB7fSwgcHJvcHMpIHtcbiAgcmV0dXJuIHtcbiAgICAuLi5wcm9wcyxcbiAgICB2aXNTdGF0ZTogc3RhdGUudmlzU3RhdGUsXG4gICAgbWFwU3R5bGU6IHN0YXRlLm1hcFN0eWxlLFxuICAgIG1hcFN0YXRlOiBzdGF0ZS5tYXBTdGF0ZSxcbiAgICB1aVN0YXRlOiBzdGF0ZS51aVN0YXRlLFxuICAgIHByb3ZpZGVyU3RhdGU6IHN0YXRlLnByb3ZpZGVyU3RhdGVcbiAgfTtcbn1cblxuY29uc3QgZGVmYXVsdFVzZXJBY3Rpb25zID0ge307XG5cbmNvbnN0IGdldERpc3BhdGNoID0gKGRpc3BhdGNoLCBwcm9wcykgPT4gZGlzcGF0Y2g7XG5jb25zdCBnZXRVc2VyQWN0aW9ucyA9IChkaXNwYXRjaCwgcHJvcHMpID0+IHByb3BzLmFjdGlvbnMgfHwgZGVmYXVsdFVzZXJBY3Rpb25zO1xuXG4vKiogQHR5cGUgeygpID0+IGltcG9ydCgncmVzZWxlY3QnKS5PdXRwdXRQYXJhbWV0cmljU2VsZWN0b3I8YW55LCBhbnksIGFueSwgYW55Pn0gKi9cbmZ1bmN0aW9uIG1ha2VHZXRBY3Rpb25DcmVhdG9ycygpIHtcbiAgcmV0dXJuIGNyZWF0ZVNlbGVjdG9yKFtnZXREaXNwYXRjaCwgZ2V0VXNlckFjdGlvbnNdLCAoZGlzcGF0Y2gsIHVzZXJBY3Rpb25zKSA9PiB7XG4gICAgY29uc3QgW3Zpc1N0YXRlQWN0aW9ucywgbWFwU3RhdGVBY3Rpb25zLCBtYXBTdHlsZUFjdGlvbnMsIHVpU3RhdGVBY3Rpb25zLCBwcm92aWRlckFjdGlvbnNdID0gW1xuICAgICAgVmlzU3RhdGVBY3Rpb25zLFxuICAgICAgTWFwU3RhdGVBY3Rpb25zLFxuICAgICAgTWFwU3R5bGVBY3Rpb25zLFxuICAgICAgVUlTdGF0ZUFjdGlvbnMsXG4gICAgICBQcm92aWRlckFjdGlvbnNcbiAgICBdLm1hcChhY3Rpb25zID0+IGJpbmRBY3Rpb25DcmVhdG9ycyhtZXJnZUFjdGlvbnMoYWN0aW9ucywgdXNlckFjdGlvbnMpLCBkaXNwYXRjaCkpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHZpc1N0YXRlQWN0aW9ucyxcbiAgICAgIG1hcFN0YXRlQWN0aW9ucyxcbiAgICAgIG1hcFN0eWxlQWN0aW9ucyxcbiAgICAgIHVpU3RhdGVBY3Rpb25zLFxuICAgICAgcHJvdmlkZXJBY3Rpb25zLFxuICAgICAgZGlzcGF0Y2hcbiAgICB9O1xuICB9KTtcbn1cblxuZnVuY3Rpb24gbWFrZU1hcERpc3BhdGNoVG9Qcm9wcygpIHtcbiAgY29uc3QgZ2V0QWN0aW9uQ3JlYXRvcnMgPSBtYWtlR2V0QWN0aW9uQ3JlYXRvcnMoKTtcbiAgY29uc3QgbWFwRGlzcGF0Y2hUb1Byb3BzID0gKGRpc3BhdGNoLCBvd25Qcm9wcykgPT4ge1xuICAgIGNvbnN0IGdyb3VwZWRBY3Rpb25DcmVhdG9ycyA9IGdldEFjdGlvbkNyZWF0b3JzKGRpc3BhdGNoLCBvd25Qcm9wcyk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uZ3JvdXBlZEFjdGlvbkNyZWF0b3JzLFxuICAgICAgZGlzcGF0Y2hcbiAgICB9O1xuICB9O1xuXG4gIHJldHVybiBtYXBEaXNwYXRjaFRvUHJvcHM7XG59XG5cbi8qKlxuICogT3ZlcnJpZGUgZGVmYXVsdCBrZXBsZXIuZ2wgYWN0aW9ucyB3aXRoIHVzZXIgZGVmaW5lZCBhY3Rpb25zIHVzaW5nIHRoZSBzYW1lIGtleVxuICovXG5mdW5jdGlvbiBtZXJnZUFjdGlvbnMoYWN0aW9ucywgdXNlckFjdGlvbnMpIHtcbiAgY29uc3Qgb3ZlcnJpZGVzID0ge307XG4gIGZvciAoY29uc3Qga2V5IGluIHVzZXJBY3Rpb25zKSB7XG4gICAgaWYgKHVzZXJBY3Rpb25zLmhhc093blByb3BlcnR5KGtleSkgJiYgYWN0aW9ucy5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICBvdmVycmlkZXNba2V5XSA9IHVzZXJBY3Rpb25zW2tleV07XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHsuLi5hY3Rpb25zLCAuLi5vdmVycmlkZXN9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBLZXBsZXJHbEZhY3Rvcnk7XG4iXX0=
|