@kepler.gl/components 3.3.0-alpha.8 → 3.3.0-alpha.9
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/cjs/common/file-uploader/file-upload.js +2 -1
- package/dist/cjs/effects/effect-configurator.js +2 -2
- package/dist/cjs/effects/effect-manager.js +32 -17
- package/dist/cjs/effects/effect-time-configurator.js +110 -42
- package/dist/cjs/kepler-gl.js +6 -2
- package/dist/cjs/modals/export-map-modal/components.js +16 -7
- package/dist/cjs/modals/export-map-modal/export-html-map.js +5 -9
- package/dist/cjs/modals/export-map-modal/export-json-map.js +4 -8
- package/dist/cjs/modals/export-map-modal/export-map-modal.js +21 -16
- package/dist/cjs/notification-panel/notification-item.js +58 -12
- package/dist/cjs/remote-dataset-refresh-controller.js +50 -0
- package/dist/cjs/side-panel/common/dataset-info.js +187 -8
- package/dist/cjs/side-panel/common/dataset-refresh-progress.js +63 -0
- package/dist/cjs/side-panel/common/dataset-title.js +76 -13
- package/dist/cjs/side-panel/common/source-data-catalog.js +31 -6
- package/dist/cjs/side-panel/filter-manager.js +7 -3
- package/dist/cjs/side-panel/layer-manager.js +14 -4
- package/dist/cjs/side-panel/layer-panel/dataset-layer-section.js +14 -4
- package/dist/cjs/side-panel/layer-panel/dataset-section.js +7 -3
- package/dist/cjs/side-panel/layer-panel/layer-configurator.js +49 -35
- package/dist/cjs/side-panel/layer-panel/vector-tile-layer-configurator.js +4 -3
- package/dist/effects/effect-manager.d.ts +1 -1
- package/dist/esm/common/file-uploader/file-upload.js +2 -1
- package/dist/esm/effects/effect-configurator.js +2 -2
- package/dist/esm/effects/effect-manager.js +34 -19
- package/dist/esm/effects/effect-time-configurator.js +111 -43
- package/dist/esm/kepler-gl.js +6 -2
- package/dist/esm/modals/export-map-modal/components.js +16 -7
- package/dist/esm/modals/export-map-modal/export-html-map.js +6 -10
- package/dist/esm/modals/export-map-modal/export-json-map.js +5 -9
- package/dist/esm/modals/export-map-modal/export-map-modal.js +21 -14
- package/dist/esm/notification-panel/notification-item.js +60 -14
- package/dist/esm/remote-dataset-refresh-controller.js +44 -0
- package/dist/esm/side-panel/common/dataset-info.js +186 -9
- package/dist/esm/side-panel/common/dataset-refresh-progress.js +56 -0
- package/dist/esm/side-panel/common/dataset-title.js +77 -14
- package/dist/esm/side-panel/common/source-data-catalog.js +29 -6
- package/dist/esm/side-panel/filter-manager.js +7 -3
- package/dist/esm/side-panel/layer-manager.js +14 -4
- package/dist/esm/side-panel/layer-panel/dataset-layer-section.js +14 -4
- package/dist/esm/side-panel/layer-panel/dataset-section.js +7 -3
- package/dist/esm/side-panel/layer-panel/layer-configurator.js +49 -35
- package/dist/esm/side-panel/layer-panel/vector-tile-layer-configurator.js +4 -3
- package/dist/kepler-gl.d.ts +1 -0
- package/dist/modals/export-map-modal/components.d.ts +14 -0
- package/dist/remote-dataset-refresh-controller.d.ts +11 -0
- package/dist/side-panel/common/dataset-info.d.ts +10 -0
- package/dist/side-panel/common/dataset-refresh-progress.d.ts +11 -0
- package/dist/side-panel/common/dataset-title.d.ts +5 -0
- package/dist/side-panel/common/source-data-catalog.d.ts +3 -0
- package/dist/side-panel/layer-panel/dataset-section.d.ts +2 -0
- package/package.json +16 -16
package/dist/cjs/kepler-gl.js
CHANGED
|
@@ -47,6 +47,7 @@ var _geocoderPanel = _interopRequireDefault(require("./geocoder-panel"));
|
|
|
47
47
|
var _effectManager = _interopRequireDefault(require("./effects/effect-manager"));
|
|
48
48
|
var _dndContext = _interopRequireDefault(require("./dnd-context"));
|
|
49
49
|
var _useCloudListProvider = require("./hooks/use-cloud-list-provider");
|
|
50
|
+
var _remoteDatasetRefreshController = _interopRequireDefault(require("./remote-dataset-refresh-controller"));
|
|
50
51
|
var _utils = require("@kepler.gl/utils");
|
|
51
52
|
var _styles = require("@kepler.gl/styles");
|
|
52
53
|
var _templateObject; // SPDX-License-Identifier: MIT
|
|
@@ -581,7 +582,10 @@ function KeplerGlFactory(BottomWidget, GeoCoderPanel, MapContainer, MapsLayout,
|
|
|
581
582
|
height: "".concat(height, "px")
|
|
582
583
|
},
|
|
583
584
|
ref: this.root
|
|
584
|
-
}, /*#__PURE__*/_react["default"].createElement(NotificationPanel, notificationPanelFields), /*#__PURE__*/_react["default"].createElement(
|
|
585
|
+
}, /*#__PURE__*/_react["default"].createElement(NotificationPanel, notificationPanelFields), /*#__PURE__*/_react["default"].createElement(_remoteDatasetRefreshController["default"], {
|
|
586
|
+
datasets: visState.datasets,
|
|
587
|
+
refreshDataset: this.props.visStateActions.refreshDataset
|
|
588
|
+
}), /*#__PURE__*/_react["default"].createElement(DndContext, {
|
|
585
589
|
visState: visState
|
|
586
590
|
}, !uiState.readOnly && !readOnly && /*#__PURE__*/_react["default"].createElement(SidePanel, sideFields), /*#__PURE__*/_react["default"].createElement(MapsLayout, {
|
|
587
591
|
className: "maps",
|
|
@@ -678,4 +682,4 @@ function mergeActions(actions, userActions) {
|
|
|
678
682
|
return _objectSpread(_objectSpread({}, actions), overrides);
|
|
679
683
|
}
|
|
680
684
|
var _default = exports["default"] = KeplerGlFactory;
|
|
681
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfY29uc29sZSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfcmVkdXgiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9yZXNlbGVjdCIsIl9rZXBsZXJnbENvbm5lY3QiLCJfcmVhY3RJbnRsIiwiX2xvY2FsaXphdGlvbiIsIl9jb250ZXh0IiwiX2FjdGlvbnMiLCJfY29tbW9uVXRpbHMiLCJfc3R5bGVkQ29tcG9uZW50czIiLCJfY29uc3RhbnRzIiwiX3NpZGVQYW5lbCIsIl9tYXBDb250YWluZXIyIiwiX21hcHNMYXlvdXQiLCJfYm90dG9tV2lkZ2V0IiwiX21vZGFsQ29udGFpbmVyIiwiX3Bsb3RDb250YWluZXIiLCJfbm90aWZpY2F0aW9uUGFuZWwiLCJfZ2VvY29kZXJQYW5lbCIsIl9lZmZlY3RNYW5hZ2VyIiwiX2RuZENvbnRleHQiLCJfdXNlQ2xvdWRMaXN0UHJvdmlkZXIiLCJfdXRpbHMiLCJfc3R5bGVzIiwiX3RlbXBsYXRlT2JqZWN0IiwiZSIsInQiLCJXZWFrTWFwIiwiciIsIm4iLCJfX2VzTW9kdWxlIiwibyIsImkiLCJmIiwiX19wcm90b19fIiwiX3R5cGVvZjMiLCJoYXMiLCJnZXQiLCJzZXQiLCJfdCIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiX2NhbGxTdXBlciIsIl9nZXRQcm90b3R5cGVPZjIiLCJfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybjIiLCJfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0IiwiUmVmbGVjdCIsImNvbnN0cnVjdCIsImNvbnN0cnVjdG9yIiwiYXBwbHkiLCJCb29sZWFuIiwicHJvdG90eXBlIiwidmFsdWVPZiIsIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwiU3ltYm9sIiwiaXRlcmF0b3IiLCJBcnJheSIsImlzQXJyYXkiLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiLCJsZW5ndGgiLCJfbiIsIkYiLCJzIiwiZG9uZSIsInZhbHVlIiwiVHlwZUVycm9yIiwiYSIsInUiLCJuZXh0IiwiX2FycmF5TGlrZVRvQXJyYXkiLCJ0b1N0cmluZyIsInNsaWNlIiwibmFtZSIsImZyb20iLCJ0ZXN0Iiwib3duS2V5cyIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJmaWx0ZXIiLCJlbnVtZXJhYmxlIiwicHVzaCIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiR2xvYmFsU3R5bGUiLCJzdHlsZWQiLCJkaXYiLCJfdGFnZ2VkVGVtcGxhdGVMaXRlcmFsMiIsInByb3BzIiwidGhlbWUiLCJmb250RmFtaWx5IiwiZm9udFdlaWdodCIsImZvbnRTaXplIiwibGluZUhlaWdodCIsImxhYmVsQ29sb3IiLCJCb3R0b21XaWRnZXRPdXRlciIsIl9yZWYiLCJhYnNvbHV0ZSIsImNvbmNhdCIsImlzVmlld3BvcnREaXNqb2ludGVkIiwiZXhwb3J0cyIsIm1hcFN0YXRlIiwiaXNTcGxpdCIsImlzVmlld3BvcnRTeW5jZWQiLCJzcGxpdE1hcFZpZXdwb3J0cyIsIm1hcFN0YXRlU2VsZWN0b3IiLCJjcmVhdGVTZWxlY3RvciIsIl8iLCJpbmRleCIsIk51bWJlciIsImlzRmluaXRlIiwibWFwRmllbGRzU2VsZWN0b3IiLCJ1bmRlZmluZWQiLCJhdHRyaWJ1dGlvbiIsImF0dHJpYnV0aW9uU2VsZWN0b3IiLCJnZXRNYXBib3hSZWYiLCJtYXBib3hBcGlBY2Nlc3NUb2tlbiIsIm1hcGJveEFwaVVybCIsIkRFRkFVTFRfS0VQTEVSX0dMX1BST1BTIiwiZGF0YXNldEF0dHJpYnV0aW9ucyIsInNvdXJjZXMiLCJhdHRyaWJ1dGlvbkxvZ29zIiwibG9nb3MiLCJtYXBTdHlsZSIsIm9uRGVja0luaXRpYWxpemVkIiwib25WaWV3U3RhdGVDaGFuZ2UiLCJvbk1vdXNlTW92ZSIsImRlY2tHbFByb3BzIiwidWlTdGF0ZUFjdGlvbnMiLCJ2aXNTdGF0ZUFjdGlvbnMiLCJtYXBTdGF0ZUFjdGlvbnMiLCJ2aXNTdGF0ZSIsImFjdGl2ZVNpZGVQYW5lbCIsInVpU3RhdGUiLCJtYXBDb250cm9scyIsInJlYWRPbmx5IiwibG9jYWxlIiwidWlUaGVtZSIsImlzTG9hZGluZ0luZGljYXRvclZpc2libGUiLCJsb2FkaW5nSW5kaWNhdG9yVmFsdWUiLCJzaWRlUGFuZWxXaWR0aCIsIndpZHRoIiwidG9wTWFwQ29udGFpbmVyUHJvcHMiLCJib3R0b21NYXBDb250YWluZXJQcm9wcyIsInRyYW5zZm9ybVJlcXVlc3QiLCJSVExUZXh0UGx1Z2luIiwiZ2V0VmlzaWJsZURhdGFzZXRzIiwiZGF0YXNldHMiLCJmaWx0ZXJPYmplY3RCeVByZWRpY2F0ZSIsImtleSIsIkdFT0NPREVSX0RBVEFTRVRfTkFNRSIsInNpZGVQYW5lbFNlbGVjdG9yIiwiYXZhaWxhYmxlUHJvdmlkZXJzIiwiZmlsdGVyZWREYXRhc2V0cyIsImFwcE5hbWUiLCJ2ZXJzaW9uIiwiYXBwV2Vic2l0ZSIsIm9uU2F2ZU1hcCIsIm1hcFN0eWxlQWN0aW9ucyIsImZpbHRlcnMiLCJsYXllcnMiLCJsYXllck9yZGVyIiwibGF5ZXJDbGFzc2VzIiwiaW50ZXJhY3Rpb25Db25maWciLCJtYXBJbmZvIiwibGF5ZXJCbGVuZGluZyIsIm92ZXJsYXlCbGVuZGluZyIsIm1hcFNhdmVkIiwicHJvdmlkZXJTdGF0ZSIsInBsb3RDb250YWluZXJTZWxlY3RvciIsImhlaWdodCIsInJhdGlvIiwiZXhwb3J0SW1hZ2UiLCJyZXNvbHV0aW9uIiwibGVnZW5kIiwiY2VudGVyIiwiaW1hZ2VTaXplIiwiZXNjYXBlWGh0bWxGb3JXZWJwYWNrIiwibWFwRmllbGRzIiwiYWRkTm90aWZpY2F0aW9uIiwic2V0RXhwb3J0SW1hZ2VTZXR0aW5nIiwic2V0RXhwb3J0SW1hZ2VEYXRhVXJpIiwic2V0RXhwb3J0SW1hZ2VFcnJvciIsInNwbGl0TWFwcyIsImlzU3BsaXRTZWxlY3RvciIsImJvdHRvbVdpZGdldFNlbGVjdG9yIiwiYW5pbWF0aW9uQ29uZmlnIiwidG9nZ2xlTW9kYWwiLCJzaWRlUGFuZWwiLCJtYXJnaW4iLCJsZWZ0IiwibW9kYWxDb250YWluZXJTZWxlY3RvciIsInJvb3ROb2RlIiwicHJvdmlkZXJBY3Rpb25zIiwiY2xvdWRQcm92aWRlcnMiLCJvbkV4cG9ydFRvQ2xvdWRTdWNjZXNzIiwib25Mb2FkQ2xvdWRNYXBTdWNjZXNzIiwib25Mb2FkQ2xvdWRNYXBFcnJvciIsIm9uRXhwb3J0VG9DbG91ZEVycm9yIiwiZ2VvQ29kZXJQYW5lbFNlbGVjdG9yIiwiZGltZW5zaW9ucyIsIl9wcm9wcyR2aXNTdGF0ZSRpbnRlciIsIl9wcm9wcyR2aXNTdGF0ZSRpbnRlcjIiLCJpc0dlb2NvZGVyRW5hYmxlZCIsImdlb2NvZGVyIiwiZW5hYmxlZCIsInVwZGF0ZVZpc0RhdGEiLCJyZW1vdmVEYXRhc2V0IiwidXBkYXRlTWFwIiwiYXBwV2lkdGgiLCJsaW1pdFNlYXJjaCIsImNvbmZpZyIsImRhdGFzZXRBdHRyaWJ1dGlvblNlbGVjdG9yIiwic3RhdGUiLCJ1bmlxdWVBdHRyaWJ1dGlvbnMiLCJfZHMkbWV0YWRhdGEiLCJkcyIsImF0dHJpYnV0aW9ucyIsIm1ldGFkYXRhIiwibGlua3MiLCJtYXRjaCIsImxpbmsiLCJfbGluayRtYXRjaCIsIl9saW5rJG1hdGNoMiIsImhyZWYiLCJ0aXRsZSIsImluZGV4T2YiLCJ1cmwiLCJlcnJvciIsImxheWVyQXR0cmlidXRpb25LZXlTZWxlY3RvciIsIl9zdGF0ZSR2aXNTdGF0ZSIsIl9pdGVyYXRvciIsIl9zdGVwIiwiX2xheWVyJGNvbmZpZyIsIl9sYXllciRtZXRhIiwibGF5ZXIiLCJpc1Zpc2libGUiLCJtZXRhIiwiX2EkbG9nb1VybCIsImxvZ29VcmwiLCJlcnIiLCJsYXllckF0dHJpYnV0aW9uU2VsZWN0b3IiLCJfc3RhdGUkdmlzU3RhdGUyIiwiX2l0ZXJhdG9yMiIsIl9zdGVwMiIsIl9sb29wIiwiX2xheWVyJGNvbmZpZzIiLCJfbGF5ZXIkbWV0YTIiLCJhdHRyIiwiZmluZCIsImxheWVyQXR0cmlidXRpb25zIiwidW5pcXVlVGV4dEF0dHJpYnV0aW9ucyIsIl90b0NvbnN1bWFibGVBcnJheTIiLCJsYXllckF0dHJpYnV0aW9uIiwibm90aWZpY2F0aW9uUGFuZWxTZWxlY3RvciIsInJlbW92ZU5vdGlmaWNhdGlvbiIsIm5vdGlmaWNhdGlvbnMiLCJtYXBTdHlsZXMiLCJtYXBTdHlsZXNSZXBsYWNlRGVmYXVsdCIsIkRFRkFVTFRfTUFQQk9YX0FQSV9VUkwiLCJLRVBMRVJfR0xfTkFNRSIsIktFUExFUl9HTF9WRVJTSU9OIiwiRElNRU5TSU9OUyIsImZlYXR1cmVGbGFncyIsIktlcGxlckdsRmFjdG9yeSIsImRlcHMiLCJCb3R0b21XaWRnZXRGYWN0b3J5IiwiR2VvQ29kZXJQYW5lbEZhY3RvcnkiLCJNYXBDb250YWluZXJGYWN0b3J5IiwiTWFwc0xheW91dEZhY3RvcnkiLCJNb2RhbENvbnRhaW5lckZhY3RvcnkiLCJTaWRlUGFuZWxGYWN0b3J5IiwiUGxvdENvbnRhaW5lckZhY3RvcnkiLCJOb3RpZmljYXRpb25QYW5lbEZhY3RvcnkiLCJEbmRDb250ZXh0RmFjdG9yeSIsIkVmZmVjdE1hbmFnZXJGYWN0b3J5IiwiQm90dG9tV2lkZ2V0IiwiR2VvQ29kZXJQYW5lbCIsIk1hcENvbnRhaW5lciIsIk1hcHNMYXlvdXQiLCJNb2RhbENvbnRhaW5lciIsIlNpZGVQYW5lbCIsIlBsb3RDb250YWluZXIiLCJOb3RpZmljYXRpb25QYW5lbCIsIkRuZENvbnRleHQiLCJLZXBsZXJHTCIsIl9Db21wb25lbnQiLCJfdGhpcyIsIl9jbGFzc0NhbGxDaGVjazIiLCJfbGVuIiwiYXJncyIsIl9rZXkiLCJzZXRTdGF0ZSIsImNyZWF0ZVJlZiIsIl9wcm9wcyR1aVN0YXRlIiwidGhlbWVTZWxlY3RvciIsInVpVGhlbWVTZWxlY3RvciIsInRoZW1lSW5wdXQiLCJnZXRBcHBsaWNhdGlvbkNvbmZpZyIsImVuYWJsZVRoZW1lVG9nZ2xlIiwiVEhFTUUiLCJkYXJrIiwiX3R5cGVvZjIiLCJiYXNpY1RoZW1lIiwibGlnaHQiLCJ0aGVtZUxUIiwiYmFzZSIsInRoZW1lQlMiLCJkYXRhc2V0c1NlbGVjdG9yIiwicHJvdmlkZXJzIiwiaGFzU3RvcmFnZSIsInNvbWUiLCJwIiwiaGFzUHJpdmF0ZVN0b3JhZ2UiLCJoYXNTaGFyZSIsImhhc1NoYXJpbmdVcmwiLCJsb2NhbGVNZXNzYWdlcyIsImN1c3RvbU1lc3NhZ2VzIiwibWVyZ2VNZXNzYWdlcyIsIm1lc3NhZ2VzIiwiZGVmYXVsdFN0eWxlcyIsInZhbHVlcyIsImN1c3RvbVN0eWxlcyIsIm1hcCIsIm1zIiwiaWQiLCJnZW5lcmF0ZUhhc2hJZCIsImFsbFN0eWxlcyIsInJlZHVjZSIsImFjY3UiLCJzdHlsZSIsImxvYWRNYXBTdHlsZXMiLCJjb250YWluZXJJZCIsImxheWVySWQiLCJ0b2dnbGVMYXllckZvck1hcCIsIl9pbmhlcml0czIiLCJfY3JlYXRlQ2xhc3MyIiwiY29tcG9uZW50RGlkTW91bnQiLCJfZ2V0QXBwbGljYXRpb25Db25maWciLCJiYXNlTWFwTGlicmFyeUNvbmZpZyIsIm1hcExpYk5hbWUiLCJfdmFsaWRhdGVNYXBib3hUb2tlbiIsIl9sb2FkTWFwU3R5bGUiLCJvbktlcGxlckdsSW5pdGlhbGl6ZWQiLCJyb290IiwiY3VycmVudCIsIkhUTUxFbGVtZW50Iiwib2JzZXJ2ZURpbWVuc2lvbnMiLCJfaGFuZGxlUmVzaXplIiwiY29tcG9uZW50V2lsbFVubW91bnQiLCJ1bm9ic2VydmVEaW1lbnNpb25zIiwidmFsaWRhdGVUb2tlbiIsIkNvbnNvbGUiLCJ3YXJuIiwiTUlTU0lOR19NQVBCT1hfVE9LRU4iLCJyZW5kZXIiLCJfdGhpczIiLCJfdGhpcyRwcm9wcyIsIl90aGlzJHByb3BzJGlkIiwiX3RoaXMkcHJvcHMkd2lkdGgiLCJfdGhpcyRwcm9wcyRoZWlnaHQiLCJfdGhpcyRwcm9wcyRjbG91ZFByb3YiLCJhdmFpbGFibGVUaGVtZVNlbGVjdG9yIiwibG9jYWxlTWVzc2FnZXNTZWxlY3RvciIsImlzRXhwb3J0aW5nSW1hZ2UiLCJleHBvcnRpbmciLCJmaWx0ZXJlZERhdGFzZXRzU2VsZWN0b3IiLCJzaWRlRmllbGRzIiwicGxvdENvbnRhaW5lckZpZWxkcyIsImJvdHRvbVdpZGdldEZpZWxkcyIsIm1vZGFsQ29udGFpbmVyRmllbGRzIiwiZ2VvQ29kZXJQYW5lbEZpZWxkcyIsIm5vdGlmaWNhdGlvblBhbmVsRmllbGRzIiwibWFwQ29udGFpbmVycyIsImNyZWF0ZUVsZW1lbnQiLCJfZXh0ZW5kczIiLCJwcmltYXJ5IiwiZGVsZXRlTWFwTGFiZWxzIiwiX2RlbGV0ZU1hcExhYmVscyIsInNldHRpbmdzIiwiUm9vdENvbnRleHQiLCJQcm92aWRlciIsIkZlYXR1cmVGbGFnc0NvbnRleHRQcm92aWRlciIsIkludGxQcm92aWRlciIsIlN0eWxlU2hlZXRNYW5hZ2VyIiwic2hvdWxkRm9yd2FyZFByb3AiLCJUaGVtZVByb3ZpZGVyIiwiQ2xvdWRMaXN0UHJvdmlkZXIiLCJjbGFzc05hbWUiLCJkaXNwbGF5IiwiZmxleERpcmVjdGlvbiIsInBvc2l0aW9uIiwicmVmIiwib25TZXRTd2lwZUNvbXBhcmVQZXJjZW50YWdlIiwic2V0U3dpcGVDb21wYXJlUGVyY2VudGFnZSIsInVuc3luY2VkVmlld3BvcnRzIiwiX21hcENvbnRhaW5lciIsImhhc1BvcnRhYmxlV2lkdGgiLCJicmVha1BvaW50VmFsdWVzIiwicm9vdFJlZiIsImJvdHRvbVdpZGdldFJlZiIsImNvbnRhaW5lclciLCJjb250YWluZXJIIiwiQ29tcG9uZW50Iiwia2VwbGVyR2xDb25uZWN0IiwibWFwU3RhdGVUb1Byb3BzIiwibWFrZU1hcERpc3BhdGNoVG9Qcm9wcyIsIndpdGhUaGVtZSIsImRlZmF1bHRVc2VyQWN0aW9ucyIsImdldERpc3BhdGNoIiwiZGlzcGF0Y2giLCJnZXRVc2VyQWN0aW9ucyIsImFjdGlvbnMiLCJtYWtlR2V0QWN0aW9uQ3JlYXRvcnMiLCJ1c2VyQWN0aW9ucyIsIl9tYXAiLCJWaXNTdGF0ZUFjdGlvbnMiLCJNYXBTdGF0ZUFjdGlvbnMiLCJNYXBTdHlsZUFjdGlvbnMiLCJVSVN0YXRlQWN0aW9ucyIsIlByb3ZpZGVyQWN0aW9ucyIsImJpbmRBY3Rpb25DcmVhdG9ycyIsIm1lcmdlQWN0aW9ucyIsIl9tYXAyIiwiX3NsaWNlZFRvQXJyYXkyIiwiZ2V0QWN0aW9uQ3JlYXRvcnMiLCJtYXBEaXNwYXRjaFRvUHJvcHMiLCJvd25Qcm9wcyIsImdyb3VwZWRBY3Rpb25DcmVhdG9ycyIsIm92ZXJyaWRlcyIsIl9kZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2tlcGxlci1nbC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IFJlYWN0LCB7Q29tcG9uZW50LCBjcmVhdGVSZWYsIERpc3BhdGNofSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgQ29uc29sZSBmcm9tICdnbG9iYWwvY29uc29sZSc7XG5pbXBvcnQge2JpbmRBY3Rpb25DcmVhdG9yc30gZnJvbSAncmVkdXgnO1xuaW1wb3J0IHN0eWxlZCwge3dpdGhUaGVtZSwgU3R5bGVTaGVldE1hbmFnZXIsIFRoZW1lUHJvdmlkZXJ9IGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCB7Y3JlYXRlU2VsZWN0b3J9IGZyb20gJ3Jlc2VsZWN0JztcbmltcG9ydCB7Y29ubmVjdCBhcyBrZXBsZXJHbENvbm5lY3R9IGZyb20gJy4vY29ubmVjdC9rZXBsZXJnbC1jb25uZWN0JztcbmltcG9ydCB7SW50bFByb3ZpZGVyfSBmcm9tICdyZWFjdC1pbnRsJztcbmltcG9ydCB7bWVzc2FnZXN9IGZyb20gJ0BrZXBsZXIuZ2wvbG9jYWxpemF0aW9uJztcbmltcG9ydCB7Um9vdENvbnRleHQsIEZlYXR1cmVGbGFnc0NvbnRleHRQcm92aWRlciwgRmVhdHVyZUZsYWdzfSBmcm9tICcuL2NvbnRleHQnO1xuaW1wb3J0IHtcbiAgQXR0cmlidXRpb25XaXRoU3R5bGUsXG4gIERhdGFzZXRBdHRyaWJ1dGlvbixcbiAgT25FcnJvckNhbGxCYWNrLFxuICBPblN1Y2Nlc3NDYWxsQmFjayxcbiAgVmlld3BvcnQsXG4gIE1hcFN0YXRlXG59IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuXG5pbXBvcnQge1xuICBNYXBTdGF0ZUFjdGlvbnMsXG4gIE1hcFN0eWxlQWN0aW9ucyxcbiAgUHJvdmlkZXJBY3Rpb25zLFxuICBVSVN0YXRlQWN0aW9ucyxcbiAgVmlzU3RhdGVBY3Rpb25zXG59IGZyb20gJ0BrZXBsZXIuZ2wvYWN0aW9ucyc7XG5cbmltcG9ydCB7Z2VuZXJhdGVIYXNoSWR9IGZyb20gJ0BrZXBsZXIuZ2wvY29tbW9uLXV0aWxzJztcblxuaW1wb3J0IHtzaG91bGRGb3J3YXJkUHJvcH0gZnJvbSAnLi9jb21tb24vc3R5bGVkLWNvbXBvbmVudHMnO1xuXG50eXBlIEtlcGxlckdsQWN0aW9ucyA9IHtcbiAgdmlzU3RhdGVBY3Rpb25zOiB0eXBlb2YgVmlzU3RhdGVBY3Rpb25zO1xuICBtYXBTdGF0ZUFjdGlvbnM6IHR5cGVvZiBNYXBTdGF0ZUFjdGlvbnM7XG4gIG1hcFN0eWxlQWN0aW9uczogdHlwZW9mIE1hcFN0eWxlQWN0aW9ucztcbiAgdWlTdGF0ZUFjdGlvbnM6IHR5cGVvZiBVSVN0YXRlQWN0aW9ucztcbiAgcHJvdmlkZXJBY3Rpb25zOiB0eXBlb2YgUHJvdmlkZXJBY3Rpb25zO1xufTtcblxuaW1wb3J0IHtcbiAgRElNRU5TSU9OUyxcbiAgS0VQTEVSX0dMX05BTUUsXG4gIEtFUExFUl9HTF9WRVJTSU9OLFxuICBUSEVNRSxcbiAgREVGQVVMVF9NQVBCT1hfQVBJX1VSTCxcbiAgR0VPQ09ERVJfREFUQVNFVF9OQU1FLFxuICBNSVNTSU5HX01BUEJPWF9UT0tFTlxufSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5cbmltcG9ydCBTaWRlUGFuZWxGYWN0b3J5IGZyb20gJy4vc2lkZS1wYW5lbCc7XG5pbXBvcnQgTWFwQ29udGFpbmVyRmFjdG9yeSBmcm9tICcuL21hcC1jb250YWluZXInO1xuaW1wb3J0IE1hcHNMYXlvdXRGYWN0b3J5IGZyb20gJy4vbWFwcy1sYXlvdXQnO1xuaW1wb3J0IEJvdHRvbVdpZGdldEZhY3RvcnkgZnJvbSAnLi9ib3R0b20td2lkZ2V0JztcbmltcG9ydCBNb2RhbENvbnRhaW5lckZhY3RvcnkgZnJvbSAnLi9tb2RhbC1jb250YWluZXInO1xuaW1wb3J0IFBsb3RDb250YWluZXJGYWN0b3J5IGZyb20gJy4vcGxvdC1jb250YWluZXInO1xuaW1wb3J0IE5vdGlmaWNhdGlvblBhbmVsRmFjdG9yeSBmcm9tICcuL25vdGlmaWNhdGlvbi1wYW5lbCc7XG5pbXBvcnQgR2VvQ29kZXJQYW5lbEZhY3RvcnkgZnJvbSAnLi9nZW9jb2Rlci1wYW5lbCc7XG5pbXBvcnQgRWZmZWN0TWFuYWdlckZhY3RvcnkgZnJvbSAnLi9lZmZlY3RzL2VmZmVjdC1tYW5hZ2VyJztcbmltcG9ydCBEbmRDb250ZXh0RmFjdG9yeSBmcm9tICcuL2RuZC1jb250ZXh0JztcbmltcG9ydCB7Q2xvdWRMaXN0UHJvdmlkZXJ9IGZyb20gJy4vaG9va3MvdXNlLWNsb3VkLWxpc3QtcHJvdmlkZXInO1xuXG5pbXBvcnQge1xuICBmaWx0ZXJPYmplY3RCeVByZWRpY2F0ZSxcbiAgdmFsaWRhdGVUb2tlbixcbiAgbWVyZ2VNZXNzYWdlcyxcbiAgb2JzZXJ2ZURpbWVuc2lvbnMsXG4gIHVub2JzZXJ2ZURpbWVuc2lvbnMsXG4gIGhhc1BvcnRhYmxlV2lkdGgsXG4gIGdldEFwcGxpY2F0aW9uQ29uZmlnXG59IGZyb20gJ0BrZXBsZXIuZ2wvdXRpbHMnO1xuXG5pbXBvcnQge3RoZW1lIGFzIGJhc2ljVGhlbWUsIHRoZW1lTFQsIHRoZW1lQlMsIGJyZWFrUG9pbnRWYWx1ZXN9IGZyb20gJ0BrZXBsZXIuZ2wvc3R5bGVzJztcbmltcG9ydCB7S2VwbGVyR2xTdGF0ZX0gZnJvbSAnQGtlcGxlci5nbC9yZWR1Y2Vycyc7XG5pbXBvcnQge1Byb3ZpZGVyfSBmcm9tICdAa2VwbGVyLmdsL2Nsb3VkLXByb3ZpZGVycyc7XG5cbi8vIE1heWJlIHdlIHNob3VsZCB0aGluayBhYm91dCBleHBvcnRpbmcgdGhpcyBvciBjcmVhdGluZyBhIHZhcmlhYmxlXG4vLyBhcyBwYXJ0IG9mIHRoZSBiYXNlLmpzIHRoZW1lXG5jb25zdCBHbG9iYWxTdHlsZSA9IHN0eWxlZC5kaXZgXG4gIGZvbnQtZmFtaWx5OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmZvbnRGYW1pbHl9O1xuICBmb250LXdlaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5mb250V2VpZ2h0fTtcbiAgZm9udC1zaXplOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmZvbnRTaXplfTtcbiAgbGluZS1oZWlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUubGluZUhlaWdodH07XG5cbiAgKixcbiAgKjpiZWZvcmUsXG4gICo6YWZ0ZXIge1xuICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAtbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgfVxuXG4gIHVsIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gIGxpIHtcbiAgICBtYXJnaW46IDA7XG4gIH1cblxuICBhIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUubGFiZWxDb2xvcn07XG4gIH1cblxuICA6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gIH1cblxuICAubWFwbGlicmVnbC1jdHJsIC5tYXBsaWJyZWdsLWN0cmwtbG9nbyB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC5tYXBib3hnbC1jdHJsIC5tYXBib3hnbC1jdHJsLWxvZ28ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbmA7XG5cbnR5cGUgQm90dG9tV2lkZ2V0T3V0ZXJQcm9wcyA9IHtcbiAgYWJzb2x1dGU/OiBib29sZWFuO1xufTtcblxuY29uc3QgQm90dG9tV2lkZ2V0T3V0ZXIgPSBzdHlsZWQuZGl2PEJvdHRvbVdpZGdldE91dGVyUHJvcHM+KFxuICAoe2Fic29sdXRlfSkgPT4gYFxuICAke2Fic29sdXRlID8gJ3Bvc2l0aW9uOiBhYnNvbHV0ZTsgYm90dG9tOiAwOyByaWdodDogMDsnIDogJyd9XG4gIHBvaW50ZXItZXZlbnRzOiBub25lOyAvKiBwcmV2ZW50IHBhZGRpbmcgZnJvbSBibG9ja2luZyBpbnB1dCAqL1xuICAmID4gKiB7XG4gICAgLyogYWxsIGNoaWxkcmVuIHNob3VsZCBhbGxvdyBpbnB1dCAqL1xuICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG4gIH1gXG4pO1xuXG5leHBvcnQgY29uc3QgaXNWaWV3cG9ydERpc2pvaW50ZWQgPSBwcm9wcyA9PiB7XG4gIHJldHVybiAoXG4gICAgcHJvcHMubWFwU3RhdGUuaXNTcGxpdCAmJlxuICAgICFwcm9wcy5tYXBTdGF0ZS5pc1ZpZXdwb3J0U3luY2VkICYmXG4gICAgcHJvcHMubWFwU3RhdGUuc3BsaXRNYXBWaWV3cG9ydHMubGVuZ3RoID4gMVxuICApO1xufTtcblxudHlwZSBNYXBTdGF0ZVByb3BzID0ge1xuICBtYXBTdGF0ZTogTWFwU3RhdGU7XG59O1xuXG5leHBvcnQgY29uc3QgbWFwU3RhdGVTZWxlY3RvciA9IGNyZWF0ZVNlbGVjdG9yKFxuICBbKHByb3BzOiBNYXBTdGF0ZVByb3BzKSA9PiBwcm9wcy5tYXBTdGF0ZSwgKF86IE1hcFN0YXRlUHJvcHMsIGluZGV4PzogbnVtYmVyKSA9PiBpbmRleF0sXG4gIChtYXBTdGF0ZTogTWFwU3RhdGUsIGluZGV4PzogbnVtYmVyKTogTWFwU3RhdGUgPT4ge1xuICAgIGlmICghTnVtYmVyLmlzRmluaXRlKGluZGV4KSkge1xuICAgICAgLy8gZWl0aGVyIG5vIGluZGV4IGFyZyBvciBhbiBpbnZhbGlkIGluZGV4IHdhcyBwcm92aWRlZFxuICAgICAgLy8gaXQgaXMgZXhwZWN0ZWQgdG8gYmUgZWl0aGVyIDAgb3IgMSB3aGVuIGluIHNwbGl0IG1vZGVcbiAgICAgIC8vIG9ubHkgdXNlIHRoZSBtYXBTdGF0ZVxuICAgICAgcmV0dXJuIG1hcFN0YXRlO1xuICAgIH1cblxuICAgIHJldHVybiBpc1ZpZXdwb3J0RGlzam9pbnRlZCh7bWFwU3RhdGV9KVxuICAgICAgPyAvLyBtaXggdG9nZXRoZXIgdGhlIHZpZXdwb3J0IHByb3BlcnRpZXMgaW50ZW5kZWQgZm9yIHRoaXMgZGlzam9pbnRlZCA8TWFwQ29udGFpbmVyPiB3aXRoIHRoZSBvdGhlciBuZWNlc3NhcnkgbWFwU3RhdGUgcHJvcGVydGllc1xuICAgICAgICB7Li4ubWFwU3RhdGUsIC4uLm1hcFN0YXRlLnNwbGl0TWFwVmlld3BvcnRzW2luZGV4IHx8IDBdfVxuICAgICAgOiAvLyBvdGhlcndpc2Ugb25seSB1c2UgdGhlIG1hcFN0YXRlXG4gICAgICAgIG1hcFN0YXRlO1xuICB9XG4pO1xuXG5leHBvcnQgY29uc3QgbWFwRmllbGRzU2VsZWN0b3IgPSAocHJvcHM6IEtlcGxlckdMUHJvcHMsIGluZGV4ID0gMCkgPT4ge1xuICBjb25zdCBhdHRyaWJ1dGlvbiA9IGF0dHJpYnV0aW9uU2VsZWN0b3IocHJvcHMpO1xuICByZXR1cm4ge1xuICAgIGdldE1hcGJveFJlZjogcHJvcHMuZ2V0TWFwYm94UmVmLFxuICAgIG1hcGJveEFwaUFjY2Vzc1Rva2VuOiBwcm9wcy5tYXBib3hBcGlBY2Nlc3NUb2tlbixcbiAgICBtYXBib3hBcGlVcmw6IHByb3BzLm1hcGJveEFwaVVybCA/IHByb3BzLm1hcGJveEFwaVVybCA6IERFRkFVTFRfS0VQTEVSX0dMX1BST1BTLm1hcGJveEFwaVVybCxcbiAgICBtYXBTdGF0ZTogbWFwU3RhdGVTZWxlY3Rvcihwcm9wcywgaW5kZXgpLFxuICAgIGRhdGFzZXRBdHRyaWJ1dGlvbnM6IGF0dHJpYnV0aW9uLnNvdXJjZXMsXG4gICAgYXR0cmlidXRpb25Mb2dvczogYXR0cmlidXRpb24ubG9nb3MsXG4gICAgbWFwU3R5bGU6IHByb3BzLm1hcFN0eWxlLFxuICAgIG9uRGVja0luaXRpYWxpemVkOiBwcm9wcy5vbkRlY2tJbml0aWFsaXplZCxcbiAgICBvblZpZXdTdGF0ZUNoYW5nZTogcHJvcHMub25WaWV3U3RhdGVDaGFuZ2UsXG4gICAgb25Nb3VzZU1vdmU6IHByb3BzLm9uTW91c2VNb3ZlLFxuICAgIGRlY2tHbFByb3BzOiBwcm9wcy5kZWNrR2xQcm9wcyxcbiAgICB1aVN0YXRlQWN0aW9uczogcHJvcHMudWlTdGF0ZUFjdGlvbnMsXG4gICAgdmlzU3RhdGVBY3Rpb25zOiBwcm9wcy52aXNTdGF0ZUFjdGlvbnMsXG4gICAgbWFwU3RhdGVBY3Rpb25zOiBwcm9wcy5tYXBTdGF0ZUFjdGlvbnMsXG5cbiAgICAvLyB2aXNTdGF0ZVxuICAgIHZpc1N0YXRlOiBwcm9wcy52aXNTdGF0ZSxcblxuICAgIC8vIHVpU3RhdGVcbiAgICBhY3RpdmVTaWRlUGFuZWw6IHByb3BzLnVpU3RhdGUuYWN0aXZlU2lkZVBhbmVsLFxuICAgIG1hcENvbnRyb2xzOiBwcm9wcy51aVN0YXRlLm1hcENvbnRyb2xzLFxuICAgIHJlYWRPbmx5OiBwcm9wcy51aVN0YXRlLnJlYWRPbmx5LFxuICAgIGxvY2FsZTogcHJvcHMudWlTdGF0ZS5sb2NhbGUsXG4gICAgdWlUaGVtZTogcHJvcHMudWlTdGF0ZS50aGVtZSxcbiAgICBpc0xvYWRpbmdJbmRpY2F0b3JWaXNpYmxlOiBOdW1iZXIocHJvcHMudmlzU3RhdGUubG9hZGluZ0luZGljYXRvclZhbHVlKSA+IDAsXG4gICAgc2lkZVBhbmVsV2lkdGg6IHByb3BzLnNpZGVQYW5lbFdpZHRoID8gcHJvcHMuc2lkZVBhbmVsV2lkdGggOiBERUZBVUxUX0tFUExFUl9HTF9QUk9QUy53aWR0aCxcblxuICAgIC8vIG1hcFN0eWxlXG4gICAgdG9wTWFwQ29udGFpbmVyUHJvcHM6IHByb3BzLnRvcE1hcENvbnRhaW5lclByb3BzLFxuICAgIGJvdHRvbU1hcENvbnRhaW5lclByb3BzOiBwcm9wcy5ib3R0b21NYXBDb250YWluZXJQcm9wcyxcblxuICAgIC8vIHRyYW5zZm9ybVJlcXVlc3QgZm9yIE1hcGJveCBiYXNlbWFwc1xuICAgIHRyYW5zZm9ybVJlcXVlc3Q6IHByb3BzLnRyYW5zZm9ybVJlcXVlc3QsXG5cbiAgICBSVExUZXh0UGx1Z2luOiBwcm9wcy5SVExUZXh0UGx1Z2luXG4gIH07XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VmlzaWJsZURhdGFzZXRzKGRhdGFzZXRzKSB7XG4gIC8vIFdlIGRvbid0IHdhbnQgR2VvY29kZXIgZGF0YXNldCB0byBiZSBwcmVzZW50IGluIFNpZGVQYW5lbCBkYXRhc2V0IGxpc3RcbiAgcmV0dXJuIGZpbHRlck9iamVjdEJ5UHJlZGljYXRlKGRhdGFzZXRzLCBrZXkgPT4ga2V5ICE9PSBHRU9DT0RFUl9EQVRBU0VUX05BTUUpO1xufVxuXG5leHBvcnQgY29uc3Qgc2lkZVBhbmVsU2VsZWN0b3IgPSAocHJvcHM6IEtlcGxlckdMUHJvcHMsIGF2YWlsYWJsZVByb3ZpZGVycywgZmlsdGVyZWREYXRhc2V0cykgPT4gKHtcbiAgYXBwTmFtZTogcHJvcHMuYXBwTmFtZSA/IHByb3BzLmFwcE5hbWUgOiBERUZBVUxUX0tFUExFUl9HTF9QUk9QUy5hcHBOYW1lLFxuICB2ZXJzaW9uOiBwcm9wcy52ZXJzaW9uID8gcHJvcHMudmVyc2lvbiA6IERFRkFVTFRfS0VQTEVSX0dMX1BST1BTLnZlcnNpb24sXG4gIGFwcFdlYnNpdGU6IHByb3BzLmFwcFdlYnNpdGUsXG4gIG1hcFN0eWxlOiBwcm9wcy5tYXBTdHlsZSxcbiAgbWFwU3RhdGU6IHByb3BzLm1hcFN0YXRlLFxuICBvblNhdmVNYXA6IHByb3BzLm9uU2F2ZU1hcCxcbiAgdWlTdGF0ZTogcHJvcHMudWlTdGF0ZSxcbiAgbWFwU3R5bGVBY3Rpb25zOiBwcm9wcy5tYXBTdHlsZUFjdGlvbnMsXG4gIHZpc1N0YXRlQWN0aW9uczogcHJvcHMudmlzU3RhdGVBY3Rpb25zLFxuICB1aVN0YXRlQWN0aW9uczogcHJvcHMudWlTdGF0ZUFjdGlvbnMsXG4gIG1hcFN0YXRlQWN0aW9uczogcHJvcHMubWFwU3RhdGVBY3Rpb25zLFxuXG4gIGRhdGFzZXRzOiBmaWx0ZXJlZERhdGFzZXRzLFxuICBmaWx0ZXJzOiBwcm9wcy52aXNTdGF0ZS5maWx0ZXJzLFxuICBsYXllcnM6IHByb3BzLnZpc1N0YXRlLmxheWVycyxcbiAgbGF5ZXJPcmRlcjogcHJvcHMudmlzU3RhdGUubGF5ZXJPcmRlcixcbiAgbGF5ZXJDbGFzc2VzOiBwcm9wcy52aXNTdGF0ZS5sYXllckNsYXNzZXMsXG4gIGludGVyYWN0aW9uQ29uZmlnOiBwcm9wcy52aXNTdGF0ZS5pbnRlcmFjdGlvbkNvbmZpZyxcbiAgbWFwSW5mbzogcHJvcHMudmlzU3RhdGUubWFwSW5mbyxcbiAgbGF5ZXJCbGVuZGluZzogcHJvcHMudmlzU3RhdGUubGF5ZXJCbGVuZGluZyxcbiAgb3ZlcmxheUJsZW5kaW5nOiBwcm9wcy52aXNTdGF0ZS5vdmVybGF5QmxlbmRpbmcsXG5cbiAgd2lkdGg6IHByb3BzLnNpZGVQYW5lbFdpZHRoID8gcHJvcHMuc2lkZVBhbmVsV2lkdGggOiBERUZBVUxUX0tFUExFUl9HTF9QUk9QUy53aWR0aCxcbiAgYXZhaWxhYmxlUHJvdmlkZXJzLFxuICBtYXBTYXZlZDogcHJvcHMucHJvdmlkZXJTdGF0ZS5tYXBTYXZlZFxufSk7XG5cbmV4cG9ydCBjb25zdCBwbG90Q29udGFpbmVyU2VsZWN0b3IgPSAocHJvcHM6IEtlcGxlckdMUHJvcHMpID0+ICh7XG4gIHdpZHRoOiBwcm9wcy53aWR0aCxcbiAgaGVpZ2h0OiBwcm9wcy5oZWlnaHQsXG4gIHJhdGlvOiBwcm9wcy51aVN0YXRlLmV4cG9ydEltYWdlLnJhdGlvLFxuICByZXNvbHV0aW9uOiBwcm9wcy51aVN0YXRlLmV4cG9ydEltYWdlLnJlc29sdXRpb24sXG4gIGxlZ2VuZDogcHJvcHMudWlTdGF0ZS5leHBvcnRJbWFnZS5sZWdlbmQsXG4gIGNlbnRlcjogcHJvcHMudWlTdGF0ZS5leHBvcnRJbWFnZS5jZW50ZXIsXG4gIGltYWdlU2l6ZTogcHJvcHMudWlTdGF0ZS5leHBvcnRJbWFnZS5pbWFnZVNpemUsXG4gIGVzY2FwZVhodG1sRm9yV2VicGFjazogcHJvcHMudWlTdGF0ZS5leHBvcnRJbWFnZS5lc2NhcGVYaHRtbEZvcldlYnBhY2ssXG5cbiAgbWFwRmllbGRzOiBtYXBGaWVsZHNTZWxlY3Rvcihwcm9wcyksXG4gIGFkZE5vdGlmaWNhdGlvbjogcHJvcHMudWlTdGF0ZUFjdGlvbnMuYWRkTm90aWZpY2F0aW9uLFxuICBzZXRFeHBvcnRJbWFnZVNldHRpbmc6IHByb3BzLnVpU3RhdGVBY3Rpb25zLnNldEV4cG9ydEltYWdlU2V0dGluZyxcbiAgc2V0RXhwb3J0SW1hZ2VEYXRhVXJpOiBwcm9wcy51aVN0YXRlQWN0aW9ucy5zZXRFeHBvcnRJbWFnZURhdGFVcmksXG4gIHNldEV4cG9ydEltYWdlRXJyb3I6IHByb3BzLnVpU3RhdGVBY3Rpb25zLnNldEV4cG9ydEltYWdlRXJyb3IsXG4gIHNwbGl0TWFwczogcHJvcHMudmlzU3RhdGUuc3BsaXRNYXBzXG59KTtcblxuZXhwb3J0IGNvbnN0IGlzU3BsaXRTZWxlY3RvciA9IChwcm9wczogS2VwbGVyR0xQcm9wcykgPT5cbiAgcHJvcHMudmlzU3RhdGUuc3BsaXRNYXBzICYmIHByb3BzLnZpc1N0YXRlLnNwbGl0TWFwcy5sZW5ndGggPiAxO1xuXG5leHBvcnQgY29uc3QgYm90dG9tV2lkZ2V0U2VsZWN0b3IgPSAocHJvcHM6IEtlcGxlckdMUHJvcHMsIHRoZW1lKSA9PiAoe1xuICBmaWx0ZXJzOiBwcm9wcy52aXNTdGF0ZS5maWx0ZXJzLFxuICBkYXRhc2V0czogcHJvcHMudmlzU3RhdGUuZGF0YXNldHMsXG4gIHVpU3RhdGU6IHByb3BzLnVpU3RhdGUsXG4gIGxheWVyczogcHJvcHMudmlzU3RhdGUubGF5ZXJzLFxuICBhbmltYXRpb25Db25maWc6IHByb3BzLnZpc1N0YXRlLmFuaW1hdGlvbkNvbmZpZyxcbiAgdmlzU3RhdGVBY3Rpb25zOiBwcm9wcy52aXNTdGF0ZUFjdGlvbnMsXG4gIHRvZ2dsZU1vZGFsOiBwcm9wcy51aVN0YXRlQWN0aW9ucy50b2dnbGVNb2RhbCxcbiAgc2lkZVBhbmVsV2lkdGg6IHByb3BzLnVpU3RhdGUucmVhZE9ubHkgPyAwIDogcHJvcHMuc2lkZVBhbmVsV2lkdGggKyB0aGVtZS5zaWRlUGFuZWwubWFyZ2luLmxlZnRcbn0pO1xuXG5leHBvcnQgY29uc3QgbW9kYWxDb250YWluZXJTZWxlY3RvciA9IChwcm9wczogS2VwbGVyR0xQcm9wcywgcm9vdE5vZGUpID0+ICh7XG4gIGFwcE5hbWU6IHByb3BzLmFwcE5hbWUgPyBwcm9wcy5hcHBOYW1lIDogREVGQVVMVF9LRVBMRVJfR0xfUFJPUFMuYXBwTmFtZSxcbiAgbWFwU3R5bGU6IHByb3BzLm1hcFN0eWxlLFxuICB2aXNTdGF0ZTogcHJvcHMudmlzU3RhdGUsXG4gIG1hcFN0YXRlOiBwcm9wcy5tYXBTdGF0ZSxcbiAgdWlTdGF0ZTogcHJvcHMudWlTdGF0ZSxcbiAgcHJvdmlkZXJTdGF0ZTogcHJvcHMucHJvdmlkZXJTdGF0ZSxcblxuICBtYXBib3hBcGlBY2Nlc3NUb2tlbjogcHJvcHMubWFwYm94QXBpQWNjZXNzVG9rZW4sXG4gIG1hcGJveEFwaVVybDogcHJvcHMubWFwYm94QXBpVXJsLFxuICB2aXNTdGF0ZUFjdGlvbnM6IHByb3BzLnZpc1N0YXRlQWN0aW9ucyxcbiAgdWlTdGF0ZUFjdGlvbnM6IHByb3BzLnVpU3RhdGVBY3Rpb25zLFxuICBtYXBTdHlsZUFjdGlvbnM6IHByb3BzLm1hcFN0eWxlQWN0aW9ucyxcbiAgcHJvdmlkZXJBY3Rpb25zOiBwcm9wcy5wcm92aWRlckFjdGlvbnMsXG5cbiAgcm9vdE5vZGUsXG4gIC8vIFVzZXIgZGVmaW5lZCBjbG91ZCBwcm92aWRlciBwcm9wc1xuICBjbG91ZFByb3ZpZGVyczogcHJvcHMuY2xvdWRQcm92aWRlcnNcbiAgICA/IHByb3BzLmNsb3VkUHJvdmlkZXJzXG4gICAgOiBERUZBVUxUX0tFUExFUl9HTF9QUk9QUy5jbG91ZFByb3ZpZGVycyxcbiAgb25FeHBvcnRUb0Nsb3VkU3VjY2VzczogcHJvcHMub25FeHBvcnRUb0Nsb3VkU3VjY2VzcyxcbiAgb25Mb2FkQ2xvdWRNYXBTdWNjZXNzOiBwcm9wcy5vbkxvYWRDbG91ZE1hcFN1Y2Nlc3MsXG4gIG9uTG9hZENsb3VkTWFwRXJyb3I6IHByb3BzLm9uTG9hZENsb3VkTWFwRXJyb3IsXG4gIG9uRXhwb3J0VG9DbG91ZEVycm9yOiBwcm9wcy5vbkV4cG9ydFRvQ2xvdWRFcnJvclxufSk7XG5cbmV4cG9ydCBjb25zdCBnZW9Db2RlclBhbmVsU2VsZWN0b3IgPSAoXG4gIHByb3BzOiBLZXBsZXJHTFByb3BzLFxuICBkaW1lbnNpb25zOiB7d2lkdGg6IG51bWJlcjsgaGVpZ2h0OiBudW1iZXJ9XG4pID0+ICh7XG4gIGlzR2VvY29kZXJFbmFibGVkOiBwcm9wcy52aXNTdGF0ZS5pbnRlcmFjdGlvbkNvbmZpZy5nZW9jb2Rlci5lbmFibGVkLFxuICBtYXBib3hBcGlBY2Nlc3NUb2tlbjogcHJvcHMubWFwYm94QXBpQWNjZXNzVG9rZW4sXG4gIG1hcFN0YXRlOiBwcm9wcy5tYXBTdGF0ZSxcbiAgdWlTdGF0ZTogcHJvcHMudWlTdGF0ZSxcbiAgbGF5ZXJPcmRlcjogcHJvcHMudmlzU3RhdGUubGF5ZXJPcmRlcixcbiAgdXBkYXRlVmlzRGF0YTogcHJvcHMudmlzU3RhdGVBY3Rpb25zLnVwZGF0ZVZpc0RhdGEsXG4gIHJlbW92ZURhdGFzZXQ6IHByb3BzLnZpc1N0YXRlQWN0aW9ucy5yZW1vdmVEYXRhc2V0LFxuICB1cGRhdGVNYXA6IHByb3BzLm1hcFN0YXRlQWN0aW9ucy51cGRhdGVNYXAsXG4gIGFwcFdpZHRoOiBkaW1lbnNpb25zLndpZHRoLFxuICBsaW1pdFNlYXJjaDogcHJvcHMudmlzU3RhdGUuaW50ZXJhY3Rpb25Db25maWcuZ2VvY29kZXIuY29uZmlnPy5saW1pdFNlYXJjaCA/PyBmYWxzZVxufSk7XG5cbi8qKlxuICogUmV0dXJucyBhcnJheSBvZiB1bmlxdWUgZGF0YXNldCBhdHRyaWJ1dGlvbnMsIGVhY2ggd2l0aCB0aXRsZSBhbmQgdXJsIHByb3BlcnRpZXMuXG4gKi9cbmV4cG9ydCBjb25zdCBkYXRhc2V0QXR0cmlidXRpb25TZWxlY3RvciA9IGNyZWF0ZVNlbGVjdG9yKFxuICBbc3RhdGUgPT4gc3RhdGUudmlzU3RhdGUuZGF0YXNldHNdLFxuICBkYXRhc2V0cyA9PiB7XG4gICAgY29uc3QgdW5pcXVlQXR0cmlidXRpb25zOiBEYXRhc2V0QXR0cmlidXRpb25bXSA9IFtdO1xuICAgIE9iamVjdC5rZXlzKGRhdGFzZXRzKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICBjb25zdCBkcyA9IGRhdGFzZXRzW2tleV07XG4gICAgICBjb25zdCBhdHRyaWJ1dGlvbnMgPSBkcz8ubWV0YWRhdGE/LmF0dHJpYnV0aW9ucztcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KGF0dHJpYnV0aW9ucykpIHtcbiAgICAgICAgYXR0cmlidXRpb25zLmZvckVhY2goYXR0cmlidXRpb24gPT4ge1xuICAgICAgICAgIGlmICh0eXBlb2YgYXR0cmlidXRpb24gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAvLyBhdHRyaWJ1dGlvbiBjYW4gYmUgYSByYXcgc3RyaW5nIG9yIGEgc3RyaW5nIHdpdGggbGluayB0YWdzXG4gICAgICAgICAgICBjb25zdCBsaW5rcyA9IGF0dHJpYnV0aW9uLm1hdGNoKC88YVteXSs/YT4vZyk7XG4gICAgICAgICAgICBpZiAobGlua3MpIHtcbiAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsaW5rcz8uZm9yRWFjaChsaW5rID0+IHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGhyZWYgPSBsaW5rLm1hdGNoKC9ocmVmPVwiKFteXCJdKikvKT8uWzFdO1xuICAgICAgICAgICAgICAgICAgY29uc3QgdGl0bGUgPSBsaW5rLm1hdGNoKC90aXRsZT1cIihbXlwiXSopLyk/LlsxXTtcbiAgICAgICAgICAgICAgICAgIGlmIChocmVmICYmIHRpdGxlKSB7XG4gICAgICAgICAgICAgICAgICAgIHVuaXF1ZUF0dHJpYnV0aW9ucy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogYCR7bGluay5pbmRleE9mKCcmY29weTsnKSA+PSAwID8gJ8KpICcgOiAnJ30ke3RpdGxlfWAsXG4gICAgICAgICAgICAgICAgICAgICAgdXJsOiBocmVmXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgICAgIC8vIGp1c3QgaWdub3JlIGZvciBub3dcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgdW5pcXVlQXR0cmlidXRpb25zLnB1c2goe3RpdGxlOiBhdHRyaWJ1dGlvbiwgdXJsOiBudWxsfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gdW5pcXVlQXR0cmlidXRpb25zO1xuICB9XG4pO1xuXG4vKipcbiAqIENvbGxlY3QgdW5pcXVlIGxheWVyLWxldmVsIGF0dHJpYnV0aW9ucyBmcm9tIHZpc2libGUgbGF5ZXJzLlxuICogQnVpbGRzIGEgc2VyaWFsaXplZCBjYWNoZSBrZXkgZnJvbSBhdHRyaWJ1dGlvbiB2YWx1ZXMgc28gY3JlYXRlU2VsZWN0b3JcbiAqIGNhbiBkZXRlY3QgaW4tcGxhY2UgbXV0YXRpb25zIHRvIGxheWVyLm1ldGEuXG4gKi9cbmNvbnN0IGxheWVyQXR0cmlidXRpb25LZXlTZWxlY3RvciA9IChzdGF0ZTogYW55KTogc3RyaW5nID0+IHtcbiAgY29uc3QgbGF5ZXJzOiBhbnlbXSA9IHN0YXRlLnZpc1N0YXRlPy5sYXllcnM7XG4gIGlmICghbGF5ZXJzKSByZXR1cm4gJyc7XG4gIGxldCBrZXkgPSAnJztcbiAgZm9yIChjb25zdCBsYXllciBvZiBsYXllcnMpIHtcbiAgICBpZiAobGF5ZXIuY29uZmlnPy5pc1Zpc2libGUgJiYgbGF5ZXIubWV0YT8uYXR0cmlidXRpb24pIHtcbiAgICAgIGNvbnN0IGEgPSBsYXllci5tZXRhLmF0dHJpYnV0aW9uO1xuICAgICAga2V5ICs9IGAke2EudGl0bGV9XFwwJHthLnVybH1cXDAke2EubG9nb1VybCA/PyAnJ31cXDBgO1xuICAgIH1cbiAgfVxuICByZXR1cm4ga2V5O1xufTtcblxuZXhwb3J0IGNvbnN0IGxheWVyQXR0cmlidXRpb25TZWxlY3RvciA9IGNyZWF0ZVNlbGVjdG9yKFxuICBbKHN0YXRlOiBhbnkpID0+IHN0YXRlLnZpc1N0YXRlPy5sYXllcnMsIGxheWVyQXR0cmlidXRpb25LZXlTZWxlY3Rvcl0sXG4gIChsYXllcnM6IGFueVtdKTogQXR0cmlidXRpb25XaXRoU3R5bGVbXSA9PiB7XG4gICAgY29uc3QgYXR0cmlidXRpb25zOiBBdHRyaWJ1dGlvbldpdGhTdHlsZVtdID0gW107XG4gICAgaWYgKCFsYXllcnMpIHJldHVybiBhdHRyaWJ1dGlvbnM7XG4gICAgZm9yIChjb25zdCBsYXllciBvZiBsYXllcnMpIHtcbiAgICAgIGlmIChsYXllci5jb25maWc/LmlzVmlzaWJsZSAmJiBsYXllci5tZXRhPy5hdHRyaWJ1dGlvbikge1xuICAgICAgICBjb25zdCBhdHRyID0gbGF5ZXIubWV0YS5hdHRyaWJ1dGlvbjtcbiAgICAgICAgaWYgKGF0dHIudGl0bGUgJiYgIWF0dHJpYnV0aW9ucy5maW5kKGEgPT4gYS50aXRsZSA9PT0gYXR0ci50aXRsZSAmJiBhLnVybCA9PT0gYXR0ci51cmwpKSB7XG4gICAgICAgICAgYXR0cmlidXRpb25zLnB1c2goYXR0cik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGF0dHJpYnV0aW9ucztcbiAgfVxuKTtcblxuZXhwb3J0IGNvbnN0IGF0dHJpYnV0aW9uU2VsZWN0b3IgPSBjcmVhdGVTZWxlY3RvcihcbiAgW2RhdGFzZXRBdHRyaWJ1dGlvblNlbGVjdG9yLCBsYXllckF0dHJpYnV0aW9uU2VsZWN0b3JdLFxuICAoXG4gICAgZGF0YXNldEF0dHJpYnV0aW9uczogRGF0YXNldEF0dHJpYnV0aW9uW10sXG4gICAgbGF5ZXJBdHRyaWJ1dGlvbnM6IEF0dHJpYnV0aW9uV2l0aFN0eWxlW11cbiAgKToge1xuICAgIHNvdXJjZXM6IERhdGFzZXRBdHRyaWJ1dGlvbltdO1xuICAgIGxvZ29zOiBBdHRyaWJ1dGlvbldpdGhTdHlsZVtdO1xuICB9ID0+IHtcbiAgICBjb25zdCB1bmlxdWVUZXh0QXR0cmlidXRpb25zOiBEYXRhc2V0QXR0cmlidXRpb25bXSA9IFsuLi5kYXRhc2V0QXR0cmlidXRpb25zXTtcbiAgICBjb25zdCBsb2dvczogQXR0cmlidXRpb25XaXRoU3R5bGVbXSA9IFtdO1xuXG4gICAgbGF5ZXJBdHRyaWJ1dGlvbnMuZm9yRWFjaChsYXllckF0dHJpYnV0aW9uID0+IHtcbiAgICAgIGlmIChcbiAgICAgICAgIXVuaXF1ZVRleHRBdHRyaWJ1dGlvbnMuZmluZChcbiAgICAgICAgICBhID0+IGEudGl0bGUgPT09IGxheWVyQXR0cmlidXRpb24udGl0bGUgJiYgYS51cmwgPT09IGxheWVyQXR0cmlidXRpb24udXJsXG4gICAgICAgIClcbiAgICAgICkge1xuICAgICAgICB1bmlxdWVUZXh0QXR0cmlidXRpb25zLnB1c2goe3RpdGxlOiBsYXllckF0dHJpYnV0aW9uLnRpdGxlLCB1cmw6IGxheWVyQXR0cmlidXRpb24udXJsfSk7XG4gICAgICB9XG4gICAgICBpZiAobGF5ZXJBdHRyaWJ1dGlvbi5sb2dvVXJsICYmICFsb2dvcy5maW5kKGEgPT4gYS5sb2dvVXJsID09PSBsYXllckF0dHJpYnV0aW9uLmxvZ29VcmwpKSB7XG4gICAgICAgIGxvZ29zLnB1c2gobGF5ZXJBdHRyaWJ1dGlvbik7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4ge3NvdXJjZXM6IHVuaXF1ZVRleHRBdHRyaWJ1dGlvbnMsIGxvZ29zfTtcbiAgfVxuKTtcblxuZXhwb3J0IGNvbnN0IG5vdGlmaWNhdGlvblBhbmVsU2VsZWN0b3IgPSAocHJvcHM6IEtlcGxlckdMUHJvcHMpID0+ICh7XG4gIHJlbW92ZU5vdGlmaWNhdGlvbjogcHJvcHMudWlTdGF0ZUFjdGlvbnMucmVtb3ZlTm90aWZpY2F0aW9uLFxuICBub3RpZmljYXRpb25zOiBwcm9wcy51aVN0YXRlLm5vdGlmaWNhdGlvbnNcbn0pO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9LRVBMRVJfR0xfUFJPUFMgPSB7XG4gIG1hcFN0eWxlczogW10sXG4gIG1hcFN0eWxlc1JlcGxhY2VEZWZhdWx0OiBmYWxzZSxcbiAgbWFwYm94QXBpVXJsOiBERUZBVUxUX01BUEJPWF9BUElfVVJMLFxuICB3aWR0aDogODAwLFxuICBoZWlnaHQ6IDgwMCxcbiAgYXBwTmFtZTogS0VQTEVSX0dMX05BTUUsXG4gIHZlcnNpb246IEtFUExFUl9HTF9WRVJTSU9OLFxuICBzaWRlUGFuZWxXaWR0aDogRElNRU5TSU9OUy5zaWRlUGFuZWwud2lkdGgsXG4gIHRoZW1lOiB7fSxcbiAgY2xvdWRQcm92aWRlcnM6IFtdLFxuICByZWFkT25seTogZmFsc2UsXG4gIGZlYXR1cmVGbGFnczoge31cbn07XG5cbnR5cGUgS2VwbGVyR0xCYXNpY1Byb3BzID0ge1xuICBtYXBib3hBcGlBY2Nlc3NUb2tlbjogc3RyaW5nO1xuICBtYXBib3hBcGlVcmw/OiBzdHJpbmc7XG4gIGlkOiBzdHJpbmc7XG4gIHdpZHRoPzogbnVtYmVyO1xuICBoZWlnaHQ/OiBudW1iZXI7XG5cbiAgYXBwV2Vic2l0ZT86IGFueTtcbiAgb25TYXZlTWFwPzogKCkgPT4gdm9pZDtcbiAgb25WaWV3U3RhdGVDaGFuZ2U/OiAodmlld1N0YXRlOiBWaWV3cG9ydCkgPT4gdm9pZDtcbiAgb25EZWNrSW5pdGlhbGl6ZWQ/OiAoKSA9PiB2b2lkO1xuICBvbktlcGxlckdsSW5pdGlhbGl6ZWQ/OiAoKSA9PiB2b2lkO1xuICBnZXRNYXBib3hSZWY/OiAoKSA9PiBSZWFjdC5SZWZPYmplY3Q8YW55PjtcbiAgbWFwU3R5bGVzPzoge2lkOiBzdHJpbmc7IHN0eWxlPzogb2JqZWN0fVtdO1xuICBtYXBTdHlsZXNSZXBsYWNlRGVmYXVsdD86IGJvb2xlYW47XG4gIGFwcE5hbWU/OiBzdHJpbmc7XG4gIHZlcnNpb24/OiBzdHJpbmc7XG4gIHNpZGVQYW5lbFdpZHRoPzogbnVtYmVyO1xuICB0aGVtZT86IG9iamVjdDtcbiAgY2xvdWRQcm92aWRlcnM/OiBQcm92aWRlcltdO1xuICBkZWNrR2xQcm9wcz86IG9iamVjdDtcbiAgb25Mb2FkQ2xvdWRNYXBTdWNjZXNzPzogT25TdWNjZXNzQ2FsbEJhY2s7XG4gIG9uTG9hZENsb3VkTWFwRXJyb3I/OiBPbkVycm9yQ2FsbEJhY2s7XG4gIG9uTW91c2VNb3ZlPzogKGV2ZW50OiBSZWFjdC5Nb3VzZUV2ZW50ICYge2xuZ0xhdD86IFtudW1iZXIsIG51bWJlcl19KSA9PiB2b2lkO1xuICBvbkV4cG9ydFRvQ2xvdWRTdWNjZXNzPzogT25TdWNjZXNzQ2FsbEJhY2s7XG4gIG9uRXhwb3J0VG9DbG91ZEVycm9yPzogT25FcnJvckNhbGxCYWNrO1xuICByZWFkT25seT86IGJvb2xlYW47XG4gIGZlYXR1cmVGbGFncz86IEZlYXR1cmVGbGFncztcblxuICBsb2NhbGVNZXNzYWdlcz86IHtba2V5OiBzdHJpbmddOiB7W2tleTogc3RyaW5nXTogc3RyaW5nfX07XG4gIGRpc3BhdGNoOiBEaXNwYXRjaDxhbnk+O1xuXG4gIHRvcE1hcENvbnRhaW5lclByb3BzPzogb2JqZWN0O1xuICBib3R0b21NYXBDb250YWluZXJQcm9wcz86IG9iamVjdDtcblxuICB0cmFuc2Zvcm1SZXF1ZXN0PzogKHVybDogc3RyaW5nKSA9PiB7dXJsOiBzdHJpbmd9O1xuXG4gIC8qKiBQYXNzIGBmYWxzZWAgdG8gZGlzYWJsZSB0aGUgcmVtb3RlIFJUTCB0ZXh0IHBsdWdpbiwgb3IgYSBVUkwgc3RyaW5nIHRvIHNlbGYtaG9zdCBpdC4gKi9cbiAgUlRMVGV4dFBsdWdpbj86IHN0cmluZyB8IGZhbHNlO1xufTtcblxudHlwZSBLZXBsZXJHTFByb3BzID0gS2VwbGVyR2xTdGF0ZSAmIEtlcGxlckdsQWN0aW9ucyAmIEtlcGxlckdMQmFzaWNQcm9wcztcbnR5cGUgS2VwbGVyR0xDb21wU3RhdGUgPSB7XG4gIGRpbWVuc2lvbnM6IHt3aWR0aDogbnVtYmVyOyBoZWlnaHQ6IG51bWJlcn0gfCBudWxsO1xufTtcblxuS2VwbGVyR2xGYWN0b3J5LmRlcHMgPSBbXG4gIEJvdHRvbVdpZGdldEZhY3RvcnksXG4gIEdlb0NvZGVyUGFuZWxGYWN0b3J5LFxuICBNYXBDb250YWluZXJGYWN0b3J5LFxuICBNYXBzTGF5b3V0RmFjdG9yeSxcbiAgTW9kYWxDb250YWluZXJGYWN0b3J5LFxuICBTaWRlUGFuZWxGYWN0b3J5LFxuICBQbG90Q29udGFpbmVyRmFjdG9yeSxcbiAgTm90aWZpY2F0aW9uUGFuZWxGYWN0b3J5LFxuICBEbmRDb250ZXh0RmFjdG9yeSxcbiAgRWZmZWN0TWFuYWdlckZhY3Rvcnlcbl07XG5cbmZ1bmN0aW9uIEtlcGxlckdsRmFjdG9yeShcbiAgQm90dG9tV2lkZ2V0OiBSZXR1cm5UeXBlPHR5cGVvZiBCb3R0b21XaWRnZXRGYWN0b3J5PixcbiAgR2VvQ29kZXJQYW5lbDogUmV0dXJuVHlwZTx0eXBlb2YgR2VvQ29kZXJQYW5lbEZhY3Rvcnk+LFxuICBNYXBDb250YWluZXI6IFJldHVyblR5cGU8dHlwZW9mIE1hcENvbnRhaW5lckZhY3Rvcnk+LFxuICBNYXBzTGF5b3V0OiBSZXR1cm5UeXBlPHR5cGVvZiBNYXBzTGF5b3V0RmFjdG9yeT4sXG4gIE1vZGFsQ29udGFpbmVyOiBSZXR1cm5UeXBlPHR5cGVvZiBNb2RhbENvbnRhaW5lckZhY3Rvcnk+LFxuICBTaWRlUGFuZWw6IFJldHVyblR5cGU8dHlwZW9mIFNpZGVQYW5lbEZhY3Rvcnk+LFxuICBQbG90Q29udGFpbmVyOiBSZXR1cm5UeXBlPHR5cGVvZiBQbG90Q29udGFpbmVyRmFjdG9yeT4sXG4gIE5vdGlmaWNhdGlvblBhbmVsOiBSZXR1cm5UeXBlPHR5cGVvZiBOb3RpZmljYXRpb25QYW5lbEZhY3Rvcnk+LFxuICBEbmRDb250ZXh0OiBSZXR1cm5UeXBlPHR5cGVvZiBEbmRDb250ZXh0RmFjdG9yeT5cbik6IFJlYWN0LkNvbXBvbmVudFR5cGU8S2VwbGVyR0xCYXNpY1Byb3BzICYge3NlbGVjdG9yOiAoLi4uYXJnczogYW55W10pID0+IEtlcGxlckdsU3RhdGV9PiB7XG4gIC8qKiBAdHlwZWRlZiB7aW1wb3J0KCcuL2tlcGxlci1nbCcpLlVuY29ubmVjdGVkS2VwbGVyR2xQcm9wc30gS2VwbGVyR2xQcm9wcyAqL1xuICAvKiogQGF1Z21lbnRzIFJlYWN0LkNvbXBvbmVudDxLZXBsZXJHbFByb3BzPiAqL1xuICBjbGFzcyBLZXBsZXJHTCBleHRlbmRzIENvbXBvbmVudDxcbiAgICBLZXBsZXJHTFByb3BzICYge3NlbGVjdG9yOiAoLi4uYXJnczogYW55W10pID0+IEtlcGxlckdsU3RhdGV9LFxuICAgIEtlcGxlckdMQ29tcFN0YXRlXG4gID4ge1xuICAgIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSBERUZBVUxUX0tFUExFUl9HTF9QUk9QUztcblxuICAgIHN0YXRlOiBLZXBsZXJHTENvbXBTdGF0ZSA9IHtcbiAgICAgIGRpbWVuc2lvbnM6IG51bGxcbiAgICB9O1xuXG4gICAgY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgICBpZiAoZ2V0QXBwbGljYXRpb25Db25maWcoKS5iYXNlTWFwTGlicmFyeUNvbmZpZz8uWydtYXBib3gnXT8ubWFwTGliTmFtZSA9PT0gJ01hcGJveCcpIHtcbiAgICAgICAgdGhpcy5fdmFsaWRhdGVNYXBib3hUb2tlbigpO1xuICAgICAgfVxuICAgICAgdGhpcy5fbG9hZE1hcFN0eWxlKCk7XG4gICAgICBpZiAodHlwZW9mIHRoaXMucHJvcHMub25LZXBsZXJHbEluaXRpYWxpemVkID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHRoaXMucHJvcHMub25LZXBsZXJHbEluaXRpYWxpemVkKCk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5yb290LmN1cnJlbnQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkge1xuICAgICAgICBvYnNlcnZlRGltZW5zaW9ucyh0aGlzLnJvb3QuY3VycmVudCwgdGhpcy5faGFuZGxlUmVzaXplKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICAgIGlmICh0aGlzLnJvb3QuY3VycmVudCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSB7XG4gICAgICAgIHVub2JzZXJ2ZURpbWVuc2lvbnModGhpcy5yb290LmN1cnJlbnQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIF9oYW5kbGVSZXNpemUgPSBkaW1lbnNpb25zID0+IHtcbiAgICAgIHRoaXMuc2V0U3RhdGUoe2RpbWVuc2lvbnN9KTtcbiAgICB9O1xuXG4gICAgc3RhdGljIGNvbnRleHRUeXBlID0gUm9vdENvbnRleHQ7XG5cbiAgICByb290ID0gY3JlYXRlUmVmPEhUTUxEaXZFbGVtZW50IHwgbnVsbD4oKTtcbiAgICBib3R0b21XaWRnZXRSZWYgPSBjcmVhdGVSZWY8SFRNTERpdkVsZW1lbnQ+KCk7XG5cbiAgICAvKiBzZWxlY3RvcnMgKi9cbiAgICB0aGVtZVNlbGVjdG9yID0gcHJvcHMgPT4gcHJvcHMudGhlbWU7XG4gICAgdWlUaGVtZVNlbGVjdG9yID0gcHJvcHMgPT4gcHJvcHMudWlTdGF0ZT8udGhlbWU7XG4gICAgYXZhaWxhYmxlVGhlbWVTZWxlY3RvciA9IGNyZWF0ZVNlbGVjdG9yKFxuICAgICAgdGhpcy50aGVtZVNlbGVjdG9yLFxuICAgICAgdGhpcy51aVRoZW1lU2VsZWN0b3IsXG4gICAgICAodGhlbWUsIHVpVGhlbWUpID0+IHtcbiAgICAgICAgLy8gV2hlbiB0aGVtZSB0b2dnbGUgaXMgZW5hYmxlZCwgdWlTdGF0ZS50aGVtZSBkcml2ZXMgbGlnaHQvZGFyayBzd2l0Y2hpbmcuXG4gICAgICAgIGNvbnN0IHRoZW1lSW5wdXQgPSBnZXRBcHBsaWNhdGlvbkNvbmZpZygpLmVuYWJsZVRoZW1lVG9nZ2xlXG4gICAgICAgICAgPyB1aVRoZW1lIHx8IFRIRU1FLmRhcmtcbiAgICAgICAgICA6IHRoZW1lO1xuXG4gICAgICAgIGlmICh0eXBlb2YgdGhlbWVJbnB1dCA9PT0gJ29iamVjdCcgJiYgdGhlbWVJbnB1dCAhPT0gbnVsbCkge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi5iYXNpY1RoZW1lLFxuICAgICAgICAgICAgLi4udGhlbWVJbnB1dFxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoZW1lSW5wdXQgPT09IFRIRU1FLmxpZ2h0KSB7XG4gICAgICAgICAgcmV0dXJuIHRoZW1lTFQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoZW1lSW5wdXQgPT09IFRIRU1FLmJhc2UpIHtcbiAgICAgICAgICByZXR1cm4gdGhlbWVCUztcbiAgICAgICAgfVxuICAgICAgICAvLyBUSEVNRS5kYXJrIGFuZCB1bmtub3duIHZhbHVlcyBmYWxsIGJhY2sgdG8gdGhlIGRlZmF1bHQgZGFyayB0aGVtZVxuICAgICAgICByZXR1cm4gYmFzaWNUaGVtZTtcbiAgICAgIH1cbiAgICApO1xuXG4gICAgZGF0YXNldHNTZWxlY3RvciA9IHByb3BzID0+IHByb3BzLnZpc1N0YXRlLmRhdGFzZXRzO1xuICAgIGZpbHRlcmVkRGF0YXNldHNTZWxlY3RvciA9IGNyZWF0ZVNlbGVjdG9yKHRoaXMuZGF0YXNldHNTZWxlY3RvciwgZ2V0VmlzaWJsZURhdGFzZXRzKTtcblxuICAgIGF2YWlsYWJsZVByb3ZpZGVycyA9IGNyZWF0ZVNlbGVjdG9yKFxuICAgICAgKHByb3BzOiBLZXBsZXJHTFByb3BzKSA9PiBwcm9wcy5jbG91ZFByb3ZpZGVycyxcbiAgICAgIHByb3ZpZGVycyA9PlxuICAgICAgICBBcnJheS5pc0FycmF5KHByb3ZpZGVycykgJiYgcHJvdmlkZXJzLmxlbmd0aFxuICAgICAgICAgID8ge1xuICAgICAgICAgICAgICBoYXNTdG9yYWdlOiBwcm92aWRlcnMuc29tZShwID0+IHAuaGFzUHJpdmF0ZVN0b3JhZ2UoKSksXG4gICAgICAgICAgICAgIGhhc1NoYXJlOiBwcm92aWRlcnMuc29tZShwID0+IHAuaGFzU2hhcmluZ1VybCgpKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIDoge31cbiAgICApO1xuXG4gICAgbG9jYWxlTWVzc2FnZXNTZWxlY3RvciA9IGNyZWF0ZVNlbGVjdG9yKFxuICAgICAgKHByb3BzOiBLZXBsZXJHTFByb3BzKSA9PiBwcm9wcy5sb2NhbGVNZXNzYWdlcyxcbiAgICAgIGN1c3RvbU1lc3NhZ2VzID0+IChjdXN0b21NZXNzYWdlcyA/IG1lcmdlTWVzc2FnZXMobWVzc2FnZXMsIGN1c3RvbU1lc3NhZ2VzKSA6IG1lc3NhZ2VzKVxuICAgICk7XG5cbiAgICAvKiBwcml2YXRlIG1ldGhvZHMgKi9cbiAgICBfdmFsaWRhdGVNYXBib3hUb2tlbigpIHtcbiAgICAgIGNvbnN0IHttYXBib3hBcGlBY2Nlc3NUb2tlbn0gPSB0aGlzLnByb3BzO1xuICAgICAgaWYgKCF2YWxpZGF0ZVRva2VuKG1hcGJveEFwaUFjY2Vzc1Rva2VuKSkge1xuICAgICAgICBDb25zb2xlLndhcm4oTUlTU0lOR19NQVBCT1hfVE9LRU4pO1xuICAgICAgfVxuICAgIH1cblxuICAgIF9sb2FkTWFwU3R5bGUgPSAoKSA9PiB7XG4gICAgICBjb25zdCBkZWZhdWx0U3R5bGVzID0gT2JqZWN0LnZhbHVlcyh0aGlzLnByb3BzLm1hcFN0eWxlLm1hcFN0eWxlcyk7XG4gICAgICAvLyBhZGQgaWQgdG8gY3VzdG9tIG1hcCBzdHlsZXMgaWYgbm90IGdpdmVuXG4gICAgICBjb25zdCBjdXN0b21TdHlsZXMgPSAodGhpcy5wcm9wcy5tYXBTdHlsZXMgfHwgW10pLm1hcChtcyA9PiAoe1xuICAgICAgICAuLi5tcyxcbiAgICAgICAgaWQ6IG1zLmlkIHx8IGdlbmVyYXRlSGFzaElkKClcbiAgICAgIH0pKTtcblxuICAgICAgY29uc3QgYWxsU3R5bGVzID0gWy4uLmN1c3RvbVN0eWxlcywgLi4uZGVmYXVsdFN0eWxlc10ucmVkdWNlKChhY2N1LCBzdHlsZSkgPT4ge1xuICAgICAgICBhY2N1W3N0eWxlLmlkXSA9IHN0eWxlO1xuICAgICAgICByZXR1cm4gYWNjdTtcbiAgICAgIH0sIHt9KTtcblxuICAgICAgdGhpcy5wcm9wcy5tYXBTdHlsZUFjdGlvbnMubG9hZE1hcFN0eWxlcyhhbGxTdHlsZXMpO1xuICAgIH07XG5cbiAgICBfZGVsZXRlTWFwTGFiZWxzID0gKGNvbnRhaW5lcklkLCBsYXllcklkKSA9PiB7XG4gICAgICB0aGlzLnByb3BzLnZpc1N0YXRlQWN0aW9ucy50b2dnbGVMYXllckZvck1hcChjb250YWluZXJJZCwgbGF5ZXJJZCk7XG4gICAgfTtcblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBjb21wbGV4aXR5XG4gICAgcmVuZGVyKCkge1xuICAgICAgY29uc3Qge1xuICAgICAgICBpZCA9ICdtYXAnLFxuICAgICAgICB3aWR0aCA9IERFRkFVTFRfS0VQTEVSX0dMX1BST1BTLndpZHRoLFxuICAgICAgICBoZWlnaHQgPSBERUZBVUxUX0tFUExFUl9HTF9QUk9QUy5oZWlnaHQsXG4gICAgICAgIHVpU3RhdGUsXG4gICAgICAgIHZpc1N0YXRlLFxuICAgICAgICAvLyByZWFkT25seSBvdmVycmlkZVxuICAgICAgICByZWFkT25seSxcblxuICAgICAgICAvLyBmZWF0dXJlc1xuICAgICAgICBmZWF0dXJlRmxhZ3MsXG5cbiAgICAgICAgLy8gY2xvdWQgcHJvdmlkZXJzXG4gICAgICAgIGNsb3VkUHJvdmlkZXJzID0gW11cbiAgICAgIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgICBjb25zdCBkaW1lbnNpb25zID0gdGhpcy5zdGF0ZS5kaW1lbnNpb25zIHx8IHt3aWR0aCwgaGVpZ2h0fTtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgc3BsaXRNYXBzLCAvLyB0aGlzIHdpbGwgc3RvcmUgc3VwcG9ydCBmb3Igc3BsaXQgbWFwIHZpZXcgaXMgbmVjZXNzYXJ5XG4gICAgICAgIGludGVyYWN0aW9uQ29uZmlnXG4gICAgICB9ID0gdmlzU3RhdGU7XG5cbiAgICAgIGNvbnN0IGlzU3BsaXQgPSBpc1NwbGl0U2VsZWN0b3IodGhpcy5wcm9wcyk7XG4gICAgICBjb25zdCB0aGVtZSA9IHRoaXMuYXZhaWxhYmxlVGhlbWVTZWxlY3Rvcih0aGlzLnByb3BzKTtcbiAgICAgIGNvbnN0IGxvY2FsZU1lc3NhZ2VzID0gdGhpcy5sb2NhbGVNZXNzYWdlc1NlbGVjdG9yKHRoaXMucHJvcHMpO1xuICAgICAgY29uc3QgaXNFeHBvcnRpbmdJbWFnZSA9IHVpU3RhdGUuZXhwb3J0SW1hZ2UuZXhwb3J0aW5nO1xuICAgICAgY29uc3QgYXZhaWxhYmxlUHJvdmlkZXJzID0gdGhpcy5hdmFpbGFibGVQcm92aWRlcnModGhpcy5wcm9wcyk7XG5cbiAgICAgIGNvbnN0IGZpbHRlcmVkRGF0YXNldHMgPSB0aGlzLmZpbHRlcmVkRGF0YXNldHNTZWxlY3Rvcih0aGlzLnByb3BzKTtcbiAgICAgIGNvbnN0IHNpZGVGaWVsZHMgPSBzaWRlUGFuZWxTZWxlY3Rvcih0aGlzLnByb3BzLCBhdmFpbGFibGVQcm92aWRlcnMsIGZpbHRlcmVkRGF0YXNldHMpO1xuICAgICAgY29uc3QgcGxvdENvbnRhaW5lckZpZWxkcyA9IHBsb3RDb250YWluZXJTZWxlY3Rvcih0aGlzLnByb3BzKTtcbiAgICAgIGNvbnN0IGJvdHRvbVdpZGdldEZpZWxkcyA9IGJvdHRvbVdpZGdldFNlbGVjdG9yKHRoaXMucHJvcHMsIHRoZW1lKTtcbiAgICAgIGNvbnN0IG1vZGFsQ29udGFpbmVyRmllbGRzID0gbW9kYWxDb250YWluZXJTZWxlY3Rvcih0aGlzLnByb3BzLCB0aGlzLnJvb3QuY3VycmVudCk7XG4gICAgICBjb25zdCBnZW9Db2RlclBhbmVsRmllbGRzID0gZ2VvQ29kZXJQYW5lbFNlbGVjdG9yKHRoaXMucHJvcHMsIGRpbWVuc2lvbnMpO1xuICAgICAgY29uc3Qgbm90aWZpY2F0aW9uUGFuZWxGaWVsZHMgPSBub3RpZmljYXRpb25QYW5lbFNlbGVjdG9yKHRoaXMucHJvcHMpO1xuXG4gICAgICBjb25zdCBtYXBDb250YWluZXJzID0gIWlzU3BsaXRcbiAgICAgICAgPyBbXG4gICAgICAgICAgICA8TWFwQ29udGFpbmVyXG4gICAgICAgICAgICAgIHByaW1hcnk9e3RydWV9XG4gICAgICAgICAgICAgIGtleT17MH1cbiAgICAgICAgICAgICAgaW5kZXg9ezB9XG4gICAgICAgICAgICAgIHsuLi5tYXBGaWVsZHNTZWxlY3Rvcih0aGlzLnByb3BzKX1cbiAgICAgICAgICAgICAgY29udGFpbmVySWQ9ezB9XG4gICAgICAgICAgICAgIGRlbGV0ZU1hcExhYmVscz17dGhpcy5fZGVsZXRlTWFwTGFiZWxzfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICBdXG4gICAgICAgIDogc3BsaXRNYXBzLm1hcCgoc2V0dGluZ3MsIGluZGV4KSA9PiAoXG4gICAgICAgICAgICA8TWFwQ29udGFpbmVyXG4gICAgICAgICAgICAgIGtleT17aW5kZXh9XG4gICAgICAgICAgICAgIGluZGV4PXtpbmRleH1cbiAgICAgICAgICAgICAgcHJpbWFyeT17aW5kZXggPT09IDF9XG4gICAgICAgICAgICAgIHsuLi5tYXBGaWVsZHNTZWxlY3Rvcih0aGlzLnByb3BzLCBpbmRleCl9XG4gICAgICAgICAgICAgIGNvbnRhaW5lcklkPXtpbmRleH1cbiAgICAgICAgICAgICAgZGVsZXRlTWFwTGFiZWxzPXt0aGlzLl9kZWxldGVNYXBMYWJlbHN9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICkpO1xuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8Um9vdENvbnRleHQuUHJvdmlkZXIgdmFsdWU9e3RoaXMucm9vdH0+XG4gICAgICAgICAgPEZlYXR1cmVGbGFnc0NvbnRleHRQcm92aWRlciBmZWF0dXJlRmxhZ3M9e2ZlYXR1cmVGbGFnc30+XG4gICAgICAgICAgICA8SW50bFByb3ZpZGVyIGxvY2FsZT17dWlTdGF0ZS5sb2NhbGV9IG1lc3NhZ2VzPXtsb2NhbGVNZXNzYWdlc1t1aVN0YXRlLmxvY2FsZV19PlxuICAgICAgICAgICAgICA8U3R5bGVTaGVldE1hbmFnZXIgc2hvdWxkRm9yd2FyZFByb3A9e3Nob3VsZEZvcndhcmRQcm9wfT5cbiAgICAgICAgICAgICAgICA8VGhlbWVQcm92aWRlciB0aGVtZT17dGhlbWV9PlxuICAgICAgICAgICAgICAgICAgPENsb3VkTGlzdFByb3ZpZGVyIHByb3ZpZGVycz17Y2xvdWRQcm92aWRlcnN9PlxuICAgICAgICAgICAgICAgICAgICA8R2xvYmFsU3R5bGVcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJrZXBsZXItZ2xcIlxuICAgICAgICAgICAgICAgICAgICAgIGlkPXtga2VwbGVyLWdsX18ke2lkfWB9XG4gICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogYCR7d2lkdGh9cHhgLFxuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBgJHtoZWlnaHR9cHhgXG4gICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICByZWY9e3RoaXMucm9vdH1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxOb3RpZmljYXRpb25QYW5lbCB7Li4ubm90aWZpY2F0aW9uUGFuZWxGaWVsZHN9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgPERuZENvbnRleHQgdmlzU3RhdGU9e3Zpc1N0YXRlfT5cbiAgICAgICAgICAgICAgICAgICAgICAgIHshdWlTdGF0ZS5yZWFkT25seSAmJiAhcmVhZE9ubHkgJiYgPFNpZGVQYW5lbCB7Li4uc2lkZUZpZWxkc30gLz59XG4gICAgICAgICAgICAgICAgICAgICAgICA8TWFwc0xheW91dFxuICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJtYXBzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwU3RhdGU9e3RoaXMucHJvcHMubWFwU3RhdGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uU2V0U3dpcGVDb21wYXJlUGVyY2VudGFnZT17dGhpcy5wcm9wcy5tYXBTdGF0ZUFjdGlvbnMuc2V0U3dpcGVDb21wYXJlUGVyY2VudGFnZX1cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAge21hcENvbnRhaW5lcnN9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L01hcHNMYXlvdXQ+XG4gICAgICAgICAgICAgICAgICAgICAgPC9EbmRDb250ZXh0PlxuICAgICAgICAgICAgICAgICAgICAgIHtpc0V4cG9ydGluZ0ltYWdlICYmIDxQbG90Q29udGFpbmVyIHsuLi5wbG90Q29udGFpbmVyRmllbGRzfSAvPn1cbiAgICAgICAgICAgICAgICAgICAgICB7LyogMSBnZW9jb2Rlcjogc2luZ2xlIG1vZGUgT1Igc3BsaXQgbW9kZSBhbmQgc3luY2VkIHZpZXdwb3J0cyAqL31cbiAgICAgICAgICAgICAgICAgICAgICB7IWlzVmlld3BvcnREaXNqb2ludGVkKHRoaXMucHJvcHMpICYmIGludGVyYWN0aW9uQ29uZmlnLmdlb2NvZGVyLmVuYWJsZWQgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgPEdlb0NvZGVyUGFuZWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgey4uLmdlb0NvZGVyUGFuZWxGaWVsZHN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4PXswfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB1bnN5bmNlZFZpZXdwb3J0cz17ZmFsc2V9XG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgey8qIDIgZ2VvY29kZXJzOiBzcGxpdCBtb2RlIGFuZCB1bnN5bmNlZCB2aWV3cG9ydHMgKi99XG4gICAgICAgICAgICAgICAgICAgICAge2lzVmlld3BvcnREaXNqb2ludGVkKHRoaXMucHJvcHMpICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBpbnRlcmFjdGlvbkNvbmZpZy5nZW9jb2Rlci5lbmFibGVkICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXBDb250YWluZXJzLm1hcCgoX21hcENvbnRhaW5lciwgaW5kZXgpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPEdlb0NvZGVyUGFuZWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2luZGV4fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsuLi5nZW9Db2RlclBhbmVsRmllbGRzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4PXtpbmRleH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnN5bmNlZFZpZXdwb3J0cz17dHJ1ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgICAgICAgIDxCb3R0b21XaWRnZXRPdXRlciBhYnNvbHV0ZT17IWhhc1BvcnRhYmxlV2lkdGgoYnJlYWtQb2ludFZhbHVlcyl9PlxuICAgICAgICAgICAgICAgICAgICAgICAgPEJvdHRvbVdpZGdldFxuICAgICAgICAgICAgICAgICAgICAgICAgICByb290UmVmPXt0aGlzLmJvdHRvbVdpZGdldFJlZn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgey4uLmJvdHRvbVdpZGdldEZpZWxkc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyVz17ZGltZW5zaW9ucy53aWR0aH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlbWU9e3RoZW1lfVxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8L0JvdHRvbVdpZGdldE91dGVyPlxuICAgICAgICAgICAgICAgICAgICAgIDxNb2RhbENvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgey4uLm1vZGFsQ29udGFpbmVyRmllbGRzfVxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyVz17ZGltZW5zaW9ucy53aWR0aH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lckg9e2RpbWVuc2lvbnMuaGVpZ2h0fVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvR2xvYmFsU3R5bGU+XG4gICAgICAgICAgICAgICAgICA8L0Nsb3VkTGlzdFByb3ZpZGVyPlxuICAgICAgICAgICAgICAgIDwvVGhlbWVQcm92aWRlcj5cbiAgICAgICAgICAgICAgPC9TdHlsZVNoZWV0TWFuYWdlcj5cbiAgICAgICAgICAgIDwvSW50bFByb3ZpZGVyPlxuICAgICAgICAgIDwvRmVhdHVyZUZsYWdzQ29udGV4dFByb3ZpZGVyPlxuICAgICAgICA8L1Jvb3RDb250ZXh0LlByb3ZpZGVyPlxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4ga2VwbGVyR2xDb25uZWN0KFxuICAgIG1hcFN0YXRlVG9Qcm9wcyxcbiAgICBtYWtlTWFwRGlzcGF0Y2hUb1Byb3BzXG4gICkod2l0aFRoZW1lKEtlcGxlckdMKSkgYXMgUmV0dXJuVHlwZTx0eXBlb2YgS2VwbGVyR2xGYWN0b3J5Pjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1hcFN0YXRlVG9Qcm9wcyhzdGF0ZTogS2VwbGVyR2xTdGF0ZSwgcHJvcHM6IEtlcGxlckdMUHJvcHMpIHtcbiAgcmV0dXJuIHtcbiAgICAuLi5wcm9wcyxcbiAgICB2aXNTdGF0ZTogc3RhdGUudmlzU3RhdGUsXG4gICAgbWFwU3R5bGU6IHN0YXRlLm1hcFN0eWxlLFxuICAgIG1hcFN0YXRlOiBzdGF0ZS5tYXBTdGF0ZSxcbiAgICB1aVN0YXRlOiBzdGF0ZS51aVN0YXRlLFxuICAgIHByb3ZpZGVyU3RhdGU6IHN0YXRlLnByb3ZpZGVyU3RhdGVcbiAgfTtcbn1cblxuY29uc3QgZGVmYXVsdFVzZXJBY3Rpb25zID0ge307XG5cbmNvbnN0IGdldERpc3BhdGNoID0gZGlzcGF0Y2ggPT4gZGlzcGF0Y2g7XG5jb25zdCBnZXRVc2VyQWN0aW9ucyA9IChkaXNwYXRjaCwgcHJvcHMpID0+IHByb3BzLmFjdGlvbnMgfHwgZGVmYXVsdFVzZXJBY3Rpb25zO1xuXG4vKiogQHR5cGUgeygpID0+IGltcG9ydCgncmVzZWxlY3QnKS5PdXRwdXRQYXJhbWV0cmljU2VsZWN0b3I8YW55LCBhbnksIGFueSwgYW55Pn0gKi9cbmV4cG9ydCBmdW5jdGlvbiBtYWtlR2V0QWN0aW9uQ3JlYXRvcnMoKSB7XG4gIHJldHVybiBjcmVhdGVTZWxlY3RvcihbZ2V0RGlzcGF0Y2gsIGdldFVzZXJBY3Rpb25zXSwgKGRpc3BhdGNoLCB1c2VyQWN0aW9ucykgPT4ge1xuICAgIGNvbnN0IFt2aXNTdGF0ZUFjdGlvbnMsIG1hcFN0YXRlQWN0aW9ucywgbWFwU3R5bGVBY3Rpb25zLCB1aVN0YXRlQWN0aW9ucywgcHJvdmlkZXJBY3Rpb25zXSA9IFtcbiAgICAgIFZpc1N0YXRlQWN0aW9ucyxcbiAgICAgIE1hcFN0YXRlQWN0aW9ucyxcbiAgICAgIE1hcFN0eWxlQWN0aW9ucyxcbiAgICAgIFVJU3RhdGVBY3Rpb25zLFxuICAgICAgUHJvdmlkZXJBY3Rpb25zXG4gICAgXS5tYXAoYWN0aW9ucyA9PiBiaW5kQWN0aW9uQ3JlYXRvcnMobWVyZ2VBY3Rpb25zKGFjdGlvbnMsIHVzZXJBY3Rpb25zKSwgZGlzcGF0Y2gpKTtcblxuICAgIHJldHVybiB7XG4gICAgICB2aXNTdGF0ZUFjdGlvbnMsXG4gICAgICBtYXBTdGF0ZUFjdGlvbnMsXG4gICAgICBtYXBTdHlsZUFjdGlvbnMsXG4gICAgICB1aVN0YXRlQWN0aW9ucyxcbiAgICAgIHByb3ZpZGVyQWN0aW9ucyxcbiAgICAgIGRpc3BhdGNoXG4gICAgfTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIG1ha2VNYXBEaXNwYXRjaFRvUHJvcHMoKSB7XG4gIGNvbnN0IGdldEFjdGlvbkNyZWF0b3JzID0gbWFrZUdldEFjdGlvbkNyZWF0b3JzKCk7XG4gIGNvbnN0IG1hcERpc3BhdGNoVG9Qcm9wcyA9IChkaXNwYXRjaCwgb3duUHJvcHMpID0+IHtcbiAgICBjb25zdCBncm91cGVkQWN0aW9uQ3JlYXRvcnMgPSBnZXRBY3Rpb25DcmVhdG9ycyhkaXNwYXRjaCwgb3duUHJvcHMpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmdyb3VwZWRBY3Rpb25DcmVhdG9ycyxcbiAgICAgIGRpc3BhdGNoXG4gICAgfTtcbiAgfTtcblxuICByZXR1cm4gbWFwRGlzcGF0Y2hUb1Byb3BzO1xufVxuXG4vKipcbiAqIE92ZXJyaWRlIGRlZmF1bHQga2VwbGVyLmdsIGFjdGlvbnMgd2l0aCB1c2VyIGRlZmluZWQgYWN0aW9ucyB1c2luZyB0aGUgc2FtZSBrZXlcbiAqL1xuZnVuY3Rpb24gbWVyZ2VBY3Rpb25zKGFjdGlvbnMsIHVzZXJBY3Rpb25zKSB7XG4gIGNvbnN0IG92ZXJyaWRlcyA9IHt9O1xuICBmb3IgKGNvbnN0IGtleSBpbiB1c2VyQWN0aW9ucykge1xuICAgIGlmIChcbiAgICAgIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh1c2VyQWN0aW9ucywga2V5KSAmJlxuICAgICAgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGFjdGlvbnMsIGtleSlcbiAgICApIHtcbiAgICAgIG92ZXJyaWRlc1trZXldID0gdXNlckFjdGlvbnNba2V5XTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gey4uLmFjdGlvbnMsIC4uLm92ZXJyaWRlc307XG59XG5cbmV4cG9ydCBkZWZhdWx0IEtlcGxlckdsRmFjdG9yeTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUdBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLFFBQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLE1BQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLGlCQUFBLEdBQUFMLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSyxTQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxnQkFBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sVUFBQSxHQUFBUCxPQUFBO0FBQ0EsSUFBQVEsYUFBQSxHQUFBUixPQUFBO0FBQ0EsSUFBQVMsUUFBQSxHQUFBVCxPQUFBO0FBVUEsSUFBQVUsUUFBQSxHQUFBVixPQUFBO0FBUUEsSUFBQVcsWUFBQSxHQUFBWCxPQUFBO0FBRUEsSUFBQVksa0JBQUEsR0FBQVosT0FBQTtBQVVBLElBQUFhLFVBQUEsR0FBQWIsT0FBQTtBQVVBLElBQUFjLFVBQUEsR0FBQVosc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFlLGNBQUEsR0FBQWIsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFnQixXQUFBLEdBQUFkLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBaUIsYUFBQSxHQUFBZixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQWtCLGVBQUEsR0FBQWhCLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBbUIsY0FBQSxHQUFBakIsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFvQixrQkFBQSxHQUFBbEIsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFxQixjQUFBLEdBQUFuQixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQXNCLGNBQUEsR0FBQXBCLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBdUIsV0FBQSxHQUFBckIsc0JBQUEsQ0FBQUYs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
|
|
685
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfY29uc29sZSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfcmVkdXgiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9yZXNlbGVjdCIsIl9rZXBsZXJnbENvbm5lY3QiLCJfcmVhY3RJbnRsIiwiX2xvY2FsaXphdGlvbiIsIl9jb250ZXh0IiwiX2FjdGlvbnMiLCJfY29tbW9uVXRpbHMiLCJfc3R5bGVkQ29tcG9uZW50czIiLCJfY29uc3RhbnRzIiwiX3NpZGVQYW5lbCIsIl9tYXBDb250YWluZXIyIiwiX21hcHNMYXlvdXQiLCJfYm90dG9tV2lkZ2V0IiwiX21vZGFsQ29udGFpbmVyIiwiX3Bsb3RDb250YWluZXIiLCJfbm90aWZpY2F0aW9uUGFuZWwiLCJfZ2VvY29kZXJQYW5lbCIsIl9lZmZlY3RNYW5hZ2VyIiwiX2RuZENvbnRleHQiLCJfdXNlQ2xvdWRMaXN0UHJvdmlkZXIiLCJfcmVtb3RlRGF0YXNldFJlZnJlc2hDb250cm9sbGVyIiwiX3V0aWxzIiwiX3N0eWxlcyIsIl90ZW1wbGF0ZU9iamVjdCIsImUiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwiX19lc01vZHVsZSIsIm8iLCJpIiwiZiIsIl9fcHJvdG9fXyIsIl90eXBlb2YzIiwiaGFzIiwiZ2V0Iiwic2V0IiwiX3QiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIl9jYWxsU3VwZXIiLCJfZ2V0UHJvdG90eXBlT2YyIiwiX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4yIiwiX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCIsIlJlZmxlY3QiLCJjb25zdHJ1Y3QiLCJjb25zdHJ1Y3RvciIsImFwcGx5IiwiQm9vbGVhbiIsInByb3RvdHlwZSIsInZhbHVlT2YiLCJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiQXJyYXkiLCJpc0FycmF5IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwibGVuZ3RoIiwiX24iLCJGIiwicyIsImRvbmUiLCJ2YWx1ZSIsIlR5cGVFcnJvciIsImEiLCJ1IiwibmV4dCIsIl9hcnJheUxpa2VUb0FycmF5IiwidG9TdHJpbmciLCJzbGljZSIsIm5hbWUiLCJmcm9tIiwidGVzdCIsIm93bktleXMiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiZmlsdGVyIiwiZW51bWVyYWJsZSIsInB1c2giLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsIkdsb2JhbFN0eWxlIiwic3R5bGVkIiwiZGl2IiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbDIiLCJwcm9wcyIsInRoZW1lIiwiZm9udEZhbWlseSIsImZvbnRXZWlnaHQiLCJmb250U2l6ZSIsImxpbmVIZWlnaHQiLCJsYWJlbENvbG9yIiwiQm90dG9tV2lkZ2V0T3V0ZXIiLCJfcmVmIiwiYWJzb2x1dGUiLCJjb25jYXQiLCJpc1ZpZXdwb3J0RGlzam9pbnRlZCIsImV4cG9ydHMiLCJtYXBTdGF0ZSIsImlzU3BsaXQiLCJpc1ZpZXdwb3J0U3luY2VkIiwic3BsaXRNYXBWaWV3cG9ydHMiLCJtYXBTdGF0ZVNlbGVjdG9yIiwiY3JlYXRlU2VsZWN0b3IiLCJfIiwiaW5kZXgiLCJOdW1iZXIiLCJpc0Zpbml0ZSIsIm1hcEZpZWxkc1NlbGVjdG9yIiwidW5kZWZpbmVkIiwiYXR0cmlidXRpb24iLCJhdHRyaWJ1dGlvblNlbGVjdG9yIiwiZ2V0TWFwYm94UmVmIiwibWFwYm94QXBpQWNjZXNzVG9rZW4iLCJtYXBib3hBcGlVcmwiLCJERUZBVUxUX0tFUExFUl9HTF9QUk9QUyIsImRhdGFzZXRBdHRyaWJ1dGlvbnMiLCJzb3VyY2VzIiwiYXR0cmlidXRpb25Mb2dvcyIsImxvZ29zIiwibWFwU3R5bGUiLCJvbkRlY2tJbml0aWFsaXplZCIsIm9uVmlld1N0YXRlQ2hhbmdlIiwib25Nb3VzZU1vdmUiLCJkZWNrR2xQcm9wcyIsInVpU3RhdGVBY3Rpb25zIiwidmlzU3RhdGVBY3Rpb25zIiwibWFwU3RhdGVBY3Rpb25zIiwidmlzU3RhdGUiLCJhY3RpdmVTaWRlUGFuZWwiLCJ1aVN0YXRlIiwibWFwQ29udHJvbHMiLCJyZWFkT25seSIsImxvY2FsZSIsInVpVGhlbWUiLCJpc0xvYWRpbmdJbmRpY2F0b3JWaXNpYmxlIiwibG9hZGluZ0luZGljYXRvclZhbHVlIiwic2lkZVBhbmVsV2lkdGgiLCJ3aWR0aCIsInRvcE1hcENvbnRhaW5lclByb3BzIiwiYm90dG9tTWFwQ29udGFpbmVyUHJvcHMiLCJ0cmFuc2Zvcm1SZXF1ZXN0IiwiUlRMVGV4dFBsdWdpbiIsImdldFZpc2libGVEYXRhc2V0cyIsImRhdGFzZXRzIiwiZmlsdGVyT2JqZWN0QnlQcmVkaWNhdGUiLCJrZXkiLCJHRU9DT0RFUl9EQVRBU0VUX05BTUUiLCJzaWRlUGFuZWxTZWxlY3RvciIsImF2YWlsYWJsZVByb3ZpZGVycyIsImZpbHRlcmVkRGF0YXNldHMiLCJhcHBOYW1lIiwidmVyc2lvbiIsImFwcFdlYnNpdGUiLCJvblNhdmVNYXAiLCJtYXBTdHlsZUFjdGlvbnMiLCJmaWx0ZXJzIiwibGF5ZXJzIiwibGF5ZXJPcmRlciIsImxheWVyQ2xhc3NlcyIsImludGVyYWN0aW9uQ29uZmlnIiwibWFwSW5mbyIsImxheWVyQmxlbmRpbmciLCJvdmVybGF5QmxlbmRpbmciLCJtYXBTYXZlZCIsInByb3ZpZGVyU3RhdGUiLCJwbG90Q29udGFpbmVyU2VsZWN0b3IiLCJoZWlnaHQiLCJyYXRpbyIsImV4cG9ydEltYWdlIiwicmVzb2x1dGlvbiIsImxlZ2VuZCIsImNlbnRlciIsImltYWdlU2l6ZSIsImVzY2FwZVhodG1sRm9yV2VicGFjayIsIm1hcEZpZWxkcyIsImFkZE5vdGlmaWNhdGlvbiIsInNldEV4cG9ydEltYWdlU2V0dGluZyIsInNldEV4cG9ydEltYWdlRGF0YVVyaSIsInNldEV4cG9ydEltYWdlRXJyb3IiLCJzcGxpdE1hcHMiLCJpc1NwbGl0U2VsZWN0b3IiLCJib3R0b21XaWRnZXRTZWxlY3RvciIsImFuaW1hdGlvbkNvbmZpZyIsInRvZ2dsZU1vZGFsIiwic2lkZVBhbmVsIiwibWFyZ2luIiwibGVmdCIsIm1vZGFsQ29udGFpbmVyU2VsZWN0b3IiLCJyb290Tm9kZSIsInByb3ZpZGVyQWN0aW9ucyIsImNsb3VkUHJvdmlkZXJzIiwib25FeHBvcnRUb0Nsb3VkU3VjY2VzcyIsIm9uTG9hZENsb3VkTWFwU3VjY2VzcyIsIm9uTG9hZENsb3VkTWFwRXJyb3IiLCJvbkV4cG9ydFRvQ2xvdWRFcnJvciIsImdlb0NvZGVyUGFuZWxTZWxlY3RvciIsImRpbWVuc2lvbnMiLCJfcHJvcHMkdmlzU3RhdGUkaW50ZXIiLCJfcHJvcHMkdmlzU3RhdGUkaW50ZXIyIiwiaXNHZW9jb2RlckVuYWJsZWQiLCJnZW9jb2RlciIsImVuYWJsZWQiLCJ1cGRhdGVWaXNEYXRhIiwicmVtb3ZlRGF0YXNldCIsInVwZGF0ZU1hcCIsImFwcFdpZHRoIiwibGltaXRTZWFyY2giLCJjb25maWciLCJkYXRhc2V0QXR0cmlidXRpb25TZWxlY3RvciIsInN0YXRlIiwidW5pcXVlQXR0cmlidXRpb25zIiwiX2RzJG1ldGFkYXRhIiwiZHMiLCJhdHRyaWJ1dGlvbnMiLCJtZXRhZGF0YSIsImxpbmtzIiwibWF0Y2giLCJsaW5rIiwiX2xpbmskbWF0Y2giLCJfbGluayRtYXRjaDIiLCJocmVmIiwidGl0bGUiLCJpbmRleE9mIiwidXJsIiwiZXJyb3IiLCJsYXllckF0dHJpYnV0aW9uS2V5U2VsZWN0b3IiLCJfc3RhdGUkdmlzU3RhdGUiLCJfaXRlcmF0b3IiLCJfc3RlcCIsIl9sYXllciRjb25maWciLCJfbGF5ZXIkbWV0YSIsImxheWVyIiwiaXNWaXNpYmxlIiwibWV0YSIsIl9hJGxvZ29VcmwiLCJsb2dvVXJsIiwiZXJyIiwibGF5ZXJBdHRyaWJ1dGlvblNlbGVjdG9yIiwiX3N0YXRlJHZpc1N0YXRlMiIsIl9pdGVyYXRvcjIiLCJfc3RlcDIiLCJfbG9vcCIsIl9sYXllciRjb25maWcyIiwiX2xheWVyJG1ldGEyIiwiYXR0ciIsImZpbmQiLCJsYXllckF0dHJpYnV0aW9ucyIsInVuaXF1ZVRleHRBdHRyaWJ1dGlvbnMiLCJfdG9Db25zdW1hYmxlQXJyYXkyIiwibGF5ZXJBdHRyaWJ1dGlvbiIsIm5vdGlmaWNhdGlvblBhbmVsU2VsZWN0b3IiLCJyZW1vdmVOb3RpZmljYXRpb24iLCJub3RpZmljYXRpb25zIiwibWFwU3R5bGVzIiwibWFwU3R5bGVzUmVwbGFjZURlZmF1bHQiLCJERUZBVUxUX01BUEJPWF9BUElfVVJMIiwiS0VQTEVSX0dMX05BTUUiLCJLRVBMRVJfR0xfVkVSU0lPTiIsIkRJTUVOU0lPTlMiLCJmZWF0dXJlRmxhZ3MiLCJLZXBsZXJHbEZhY3RvcnkiLCJkZXBzIiwiQm90dG9tV2lkZ2V0RmFjdG9yeSIsIkdlb0NvZGVyUGFuZWxGYWN0b3J5IiwiTWFwQ29udGFpbmVyRmFjdG9yeSIsIk1hcHNMYXlvdXRGYWN0b3J5IiwiTW9kYWxDb250YWluZXJGYWN0b3J5IiwiU2lkZVBhbmVsRmFjdG9yeSIsIlBsb3RDb250YWluZXJGYWN0b3J5IiwiTm90aWZpY2F0aW9uUGFuZWxGYWN0b3J5IiwiRG5kQ29udGV4dEZhY3RvcnkiLCJFZmZlY3RNYW5hZ2VyRmFjdG9yeSIsIkJvdHRvbVdpZGdldCIsIkdlb0NvZGVyUGFuZWwiLCJNYXBDb250YWluZXIiLCJNYXBzTGF5b3V0IiwiTW9kYWxDb250YWluZXIiLCJTaWRlUGFuZWwiLCJQbG90Q29udGFpbmVyIiwiTm90aWZpY2F0aW9uUGFuZWwiLCJEbmRDb250ZXh0IiwiS2VwbGVyR0wiLCJfQ29tcG9uZW50IiwiX3RoaXMiLCJfY2xhc3NDYWxsQ2hlY2syIiwiX2xlbiIsImFyZ3MiLCJfa2V5Iiwic2V0U3RhdGUiLCJjcmVhdGVSZWYiLCJfcHJvcHMkdWlTdGF0ZSIsInRoZW1lU2VsZWN0b3IiLCJ1aVRoZW1lU2VsZWN0b3IiLCJ0aGVtZUlucHV0IiwiZ2V0QXBwbGljYXRpb25Db25maWciLCJlbmFibGVUaGVtZVRvZ2dsZSIsIlRIRU1FIiwiZGFyayIsIl90eXBlb2YyIiwiYmFzaWNUaGVtZSIsImxpZ2h0IiwidGhlbWVMVCIsImJhc2UiLCJ0aGVtZUJTIiwiZGF0YXNldHNTZWxlY3RvciIsInByb3ZpZGVycyIsImhhc1N0b3JhZ2UiLCJzb21lIiwicCIsImhhc1ByaXZhdGVTdG9yYWdlIiwiaGFzU2hhcmUiLCJoYXNTaGFyaW5nVXJsIiwibG9jYWxlTWVzc2FnZXMiLCJjdXN0b21NZXNzYWdlcyIsIm1lcmdlTWVzc2FnZXMiLCJtZXNzYWdlcyIsImRlZmF1bHRTdHlsZXMiLCJ2YWx1ZXMiLCJjdXN0b21TdHlsZXMiLCJtYXAiLCJtcyIsImlkIiwiZ2VuZXJhdGVIYXNoSWQiLCJhbGxTdHlsZXMiLCJyZWR1Y2UiLCJhY2N1Iiwic3R5bGUiLCJsb2FkTWFwU3R5bGVzIiwiY29udGFpbmVySWQiLCJsYXllcklkIiwidG9nZ2xlTGF5ZXJGb3JNYXAiLCJfaW5oZXJpdHMyIiwiX2NyZWF0ZUNsYXNzMiIsImNvbXBvbmVudERpZE1vdW50IiwiX2dldEFwcGxpY2F0aW9uQ29uZmlnIiwiYmFzZU1hcExpYnJhcnlDb25maWciLCJtYXBMaWJOYW1lIiwiX3ZhbGlkYXRlTWFwYm94VG9rZW4iLCJfbG9hZE1hcFN0eWxlIiwib25LZXBsZXJHbEluaXRpYWxpemVkIiwicm9vdCIsImN1cnJlbnQiLCJIVE1MRWxlbWVudCIsIm9ic2VydmVEaW1lbnNpb25zIiwiX2hhbmRsZVJlc2l6ZSIsImNvbXBvbmVudFdpbGxVbm1vdW50IiwidW5vYnNlcnZlRGltZW5zaW9ucyIsInZhbGlkYXRlVG9rZW4iLCJDb25zb2xlIiwid2FybiIsIk1JU1NJTkdfTUFQQk9YX1RPS0VOIiwicmVuZGVyIiwiX3RoaXMyIiwiX3RoaXMkcHJvcHMiLCJfdGhpcyRwcm9wcyRpZCIsIl90aGlzJHByb3BzJHdpZHRoIiwiX3RoaXMkcHJvcHMkaGVpZ2h0IiwiX3RoaXMkcHJvcHMkY2xvdWRQcm92IiwiYXZhaWxhYmxlVGhlbWVTZWxlY3RvciIsImxvY2FsZU1lc3NhZ2VzU2VsZWN0b3IiLCJpc0V4cG9ydGluZ0ltYWdlIiwiZXhwb3J0aW5nIiwiZmlsdGVyZWREYXRhc2V0c1NlbGVjdG9yIiwic2lkZUZpZWxkcyIsInBsb3RDb250YWluZXJGaWVsZHMiLCJib3R0b21XaWRnZXRGaWVsZHMiLCJtb2RhbENvbnRhaW5lckZpZWxkcyIsImdlb0NvZGVyUGFuZWxGaWVsZHMiLCJub3RpZmljYXRpb25QYW5lbEZpZWxkcyIsIm1hcENvbnRhaW5lcnMiLCJjcmVhdGVFbGVtZW50IiwiX2V4dGVuZHMyIiwicHJpbWFyeSIsImRlbGV0ZU1hcExhYmVscyIsIl9kZWxldGVNYXBMYWJlbHMiLCJzZXR0aW5ncyIsIlJvb3RDb250ZXh0IiwiUHJvdmlkZXIiLCJGZWF0dXJlRmxhZ3NDb250ZXh0UHJvdmlkZXIiLCJJbnRsUHJvdmlkZXIiLCJTdHlsZVNoZWV0TWFuYWdlciIsInNob3VsZEZvcndhcmRQcm9wIiwiVGhlbWVQcm92aWRlciIsIkNsb3VkTGlzdFByb3ZpZGVyIiwiY2xhc3NOYW1lIiwiZGlzcGxheSIsImZsZXhEaXJlY3Rpb24iLCJwb3NpdGlvbiIsInJlZiIsInJlZnJlc2hEYXRhc2V0Iiwib25TZXRTd2lwZUNvbXBhcmVQZXJjZW50YWdlIiwic2V0U3dpcGVDb21wYXJlUGVyY2VudGFnZSIsInVuc3luY2VkVmlld3BvcnRzIiwiX21hcENvbnRhaW5lciIsImhhc1BvcnRhYmxlV2lkdGgiLCJicmVha1BvaW50VmFsdWVzIiwicm9vdFJlZiIsImJvdHRvbVdpZGdldFJlZiIsImNvbnRhaW5lclciLCJjb250YWluZXJIIiwiQ29tcG9uZW50Iiwia2VwbGVyR2xDb25uZWN0IiwibWFwU3RhdGVUb1Byb3BzIiwibWFrZU1hcERpc3BhdGNoVG9Qcm9wcyIsIndpdGhUaGVtZSIsImRlZmF1bHRVc2VyQWN0aW9ucyIsImdldERpc3BhdGNoIiwiZGlzcGF0Y2giLCJnZXRVc2VyQWN0aW9ucyIsImFjdGlvbnMiLCJtYWtlR2V0QWN0aW9uQ3JlYXRvcnMiLCJ1c2VyQWN0aW9ucyIsIl9tYXAiLCJWaXNTdGF0ZUFjdGlvbnMiLCJNYXBTdGF0ZUFjdGlvbnMiLCJNYXBTdHlsZUFjdGlvbnMiLCJVSVN0YXRlQWN0aW9ucyIsIlByb3ZpZGVyQWN0aW9ucyIsImJpbmRBY3Rpb25DcmVhdG9ycyIsIm1lcmdlQWN0aW9ucyIsIl9tYXAyIiwiX3NsaWNlZFRvQXJyYXkyIiwiZ2V0QWN0aW9uQ3JlYXRvcnMiLCJtYXBEaXNwYXRjaFRvUHJvcHMiLCJvd25Qcm9wcyIsImdyb3VwZWRBY3Rpb25DcmVhdG9ycyIsIm92ZXJyaWRlcyIsIl9kZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2tlcGxlci1nbC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IFJlYWN0LCB7Q29tcG9uZW50LCBjcmVhdGVSZWYsIERpc3BhdGNofSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgQ29uc29sZSBmcm9tICdnbG9iYWwvY29uc29sZSc7XG5pbXBvcnQge2JpbmRBY3Rpb25DcmVhdG9yc30gZnJvbSAncmVkdXgnO1xuaW1wb3J0IHN0eWxlZCwge3dpdGhUaGVtZSwgU3R5bGVTaGVldE1hbmFnZXIsIFRoZW1lUHJvdmlkZXJ9IGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCB7Y3JlYXRlU2VsZWN0b3J9IGZyb20gJ3Jlc2VsZWN0JztcbmltcG9ydCB7Y29ubmVjdCBhcyBrZXBsZXJHbENvbm5lY3R9IGZyb20gJy4vY29ubmVjdC9rZXBsZXJnbC1jb25uZWN0JztcbmltcG9ydCB7SW50bFByb3ZpZGVyfSBmcm9tICdyZWFjdC1pbnRsJztcbmltcG9ydCB7bWVzc2FnZXN9IGZyb20gJ0BrZXBsZXIuZ2wvbG9jYWxpemF0aW9uJztcbmltcG9ydCB7Um9vdENvbnRleHQsIEZlYXR1cmVGbGFnc0NvbnRleHRQcm92aWRlciwgRmVhdHVyZUZsYWdzfSBmcm9tICcuL2NvbnRleHQnO1xuaW1wb3J0IHtcbiAgQXR0cmlidXRpb25XaXRoU3R5bGUsXG4gIERhdGFzZXRBdHRyaWJ1dGlvbixcbiAgT25FcnJvckNhbGxCYWNrLFxuICBPblN1Y2Nlc3NDYWxsQmFjayxcbiAgVmlld3BvcnQsXG4gIE1hcFN0YXRlXG59IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuXG5pbXBvcnQge1xuICBNYXBTdGF0ZUFjdGlvbnMsXG4gIE1hcFN0eWxlQWN0aW9ucyxcbiAgUHJvdmlkZXJBY3Rpb25zLFxuICBVSVN0YXRlQWN0aW9ucyxcbiAgVmlzU3RhdGVBY3Rpb25zXG59IGZyb20gJ0BrZXBsZXIuZ2wvYWN0aW9ucyc7XG5cbmltcG9ydCB7Z2VuZXJhdGVIYXNoSWR9IGZyb20gJ0BrZXBsZXIuZ2wvY29tbW9uLXV0aWxzJztcblxuaW1wb3J0IHtzaG91bGRGb3J3YXJkUHJvcH0gZnJvbSAnLi9jb21tb24vc3R5bGVkLWNvbXBvbmVudHMnO1xuXG50eXBlIEtlcGxlckdsQWN0aW9ucyA9IHtcbiAgdmlzU3RhdGVBY3Rpb25zOiB0eXBlb2YgVmlzU3RhdGVBY3Rpb25zO1xuICBtYXBTdGF0ZUFjdGlvbnM6IHR5cGVvZiBNYXBTdGF0ZUFjdGlvbnM7XG4gIG1hcFN0eWxlQWN0aW9uczogdHlwZW9mIE1hcFN0eWxlQWN0aW9ucztcbiAgdWlTdGF0ZUFjdGlvbnM6IHR5cGVvZiBVSVN0YXRlQWN0aW9ucztcbiAgcHJvdmlkZXJBY3Rpb25zOiB0eXBlb2YgUHJvdmlkZXJBY3Rpb25zO1xufTtcblxuaW1wb3J0IHtcbiAgRElNRU5TSU9OUyxcbiAgS0VQTEVSX0dMX05BTUUsXG4gIEtFUExFUl9HTF9WRVJTSU9OLFxuICBUSEVNRSxcbiAgREVGQVVMVF9NQVBCT1hfQVBJX1VSTCxcbiAgR0VPQ09ERVJfREFUQVNFVF9OQU1FLFxuICBNSVNTSU5HX01BUEJPWF9UT0tFTlxufSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5cbmltcG9ydCBTaWRlUGFuZWxGYWN0b3J5IGZyb20gJy4vc2lkZS1wYW5lbCc7XG5pbXBvcnQgTWFwQ29udGFpbmVyRmFjdG9yeSBmcm9tICcuL21hcC1jb250YWluZXInO1xuaW1wb3J0IE1hcHNMYXlvdXRGYWN0b3J5IGZyb20gJy4vbWFwcy1sYXlvdXQnO1xuaW1wb3J0IEJvdHRvbVdpZGdldEZhY3RvcnkgZnJvbSAnLi9ib3R0b20td2lkZ2V0JztcbmltcG9ydCBNb2RhbENvbnRhaW5lckZhY3RvcnkgZnJvbSAnLi9tb2RhbC1jb250YWluZXInO1xuaW1wb3J0IFBsb3RDb250YWluZXJGYWN0b3J5IGZyb20gJy4vcGxvdC1jb250YWluZXInO1xuaW1wb3J0IE5vdGlmaWNhdGlvblBhbmVsRmFjdG9yeSBmcm9tICcuL25vdGlmaWNhdGlvbi1wYW5lbCc7XG5pbXBvcnQgR2VvQ29kZXJQYW5lbEZhY3RvcnkgZnJvbSAnLi9nZW9jb2Rlci1wYW5lbCc7XG5pbXBvcnQgRWZmZWN0TWFuYWdlckZhY3RvcnkgZnJvbSAnLi9lZmZlY3RzL2VmZmVjdC1tYW5hZ2VyJztcbmltcG9ydCBEbmRDb250ZXh0RmFjdG9yeSBmcm9tICcuL2RuZC1jb250ZXh0JztcbmltcG9ydCB7Q2xvdWRMaXN0UHJvdmlkZXJ9IGZyb20gJy4vaG9va3MvdXNlLWNsb3VkLWxpc3QtcHJvdmlkZXInO1xuaW1wb3J0IFJlbW90ZURhdGFzZXRSZWZyZXNoQ29udHJvbGxlciBmcm9tICcuL3JlbW90ZS1kYXRhc2V0LXJlZnJlc2gtY29udHJvbGxlcic7XG5cbmltcG9ydCB7XG4gIGZpbHRlck9iamVjdEJ5UHJlZGljYXRlLFxuICB2YWxpZGF0ZVRva2VuLFxuICBtZXJnZU1lc3NhZ2VzLFxuICBvYnNlcnZlRGltZW5zaW9ucyxcbiAgdW5vYnNlcnZlRGltZW5zaW9ucyxcbiAgaGFzUG9ydGFibGVXaWR0aCxcbiAgZ2V0QXBwbGljYXRpb25Db25maWdcbn0gZnJvbSAnQGtlcGxlci5nbC91dGlscyc7XG5cbmltcG9ydCB7dGhlbWUgYXMgYmFzaWNUaGVtZSwgdGhlbWVMVCwgdGhlbWVCUywgYnJlYWtQb2ludFZhbHVlc30gZnJvbSAnQGtlcGxlci5nbC9zdHlsZXMnO1xuaW1wb3J0IHtLZXBsZXJHbFN0YXRlfSBmcm9tICdAa2VwbGVyLmdsL3JlZHVjZXJzJztcbmltcG9ydCB7UHJvdmlkZXJ9IGZyb20gJ0BrZXBsZXIuZ2wvY2xvdWQtcHJvdmlkZXJzJztcblxuLy8gTWF5YmUgd2Ugc2hvdWxkIHRoaW5rIGFib3V0IGV4cG9ydGluZyB0aGlzIG9yIGNyZWF0aW5nIGEgdmFyaWFibGVcbi8vIGFzIHBhcnQgb2YgdGhlIGJhc2UuanMgdGhlbWVcbmNvbnN0IEdsb2JhbFN0eWxlID0gc3R5bGVkLmRpdmBcbiAgZm9udC1mYW1pbHk6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZm9udEZhbWlseX07XG4gIGZvbnQtd2VpZ2h0OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmZvbnRXZWlnaHR9O1xuICBmb250LXNpemU6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZm9udFNpemV9O1xuICBsaW5lLWhlaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5saW5lSGVpZ2h0fTtcblxuICAqLFxuICAqOmJlZm9yZSxcbiAgKjphZnRlciB7XG4gICAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB9XG5cbiAgdWwge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG5cbiAgbGkge1xuICAgIG1hcmdpbjogMDtcbiAgfVxuXG4gIGEge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5sYWJlbENvbG9yfTtcbiAgfVxuXG4gIDpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgfVxuXG4gIC5tYXBsaWJyZWdsLWN0cmwgLm1hcGxpYnJlZ2wtY3RybC1sb2dvIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLm1hcGJveGdsLWN0cmwgLm1hcGJveGdsLWN0cmwtbG9nbyB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuYDtcblxudHlwZSBCb3R0b21XaWRnZXRPdXRlclByb3BzID0ge1xuICBhYnNvbHV0ZT86IGJvb2xlYW47XG59O1xuXG5jb25zdCBCb3R0b21XaWRnZXRPdXRlciA9IHN0eWxlZC5kaXY8Qm90dG9tV2lkZ2V0T3V0ZXJQcm9wcz4oXG4gICh7YWJzb2x1dGV9KSA9PiBgXG4gICR7YWJzb2x1dGUgPyAncG9zaXRpb246IGFic29sdXRlOyBib3R0b206IDA7IHJpZ2h0OiAwOycgOiAnJ31cbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7IC8qIHByZXZlbnQgcGFkZGluZyBmcm9tIGJsb2NraW5nIGlucHV0ICovXG4gICYgPiAqIHtcbiAgICAvKiBhbGwgY2hpbGRyZW4gc2hvdWxkIGFsbG93IGlucHV0ICovXG4gICAgcG9pbnRlci1ldmVudHM6IGFsbDtcbiAgfWBcbik7XG5cbmV4cG9ydCBjb25zdCBpc1ZpZXdwb3J0RGlzam9pbnRlZCA9IHByb3BzID0+IHtcbiAgcmV0dXJuIChcbiAgICBwcm9wcy5tYXBTdGF0ZS5pc1NwbGl0ICYmXG4gICAgIXByb3BzLm1hcFN0YXRlLmlzVmlld3BvcnRTeW5jZWQgJiZcbiAgICBwcm9wcy5tYXBTdGF0ZS5zcGxpdE1hcFZpZXdwb3J0cy5sZW5ndGggPiAxXG4gICk7XG59O1xuXG50eXBlIE1hcFN0YXRlUHJvcHMgPSB7XG4gIG1hcFN0YXRlOiBNYXBTdGF0ZTtcbn07XG5cbmV4cG9ydCBjb25zdCBtYXBTdGF0ZVNlbGVjdG9yID0gY3JlYXRlU2VsZWN0b3IoXG4gIFsocHJvcHM6IE1hcFN0YXRlUHJvcHMpID0+IHByb3BzLm1hcFN0YXRlLCAoXzogTWFwU3RhdGVQcm9wcywgaW5kZXg/OiBudW1iZXIpID0+IGluZGV4XSxcbiAgKG1hcFN0YXRlOiBNYXBTdGF0ZSwgaW5kZXg/OiBudW1iZXIpOiBNYXBTdGF0ZSA9PiB7XG4gICAgaWYgKCFOdW1iZXIuaXNGaW5pdGUoaW5kZXgpKSB7XG4gICAgICAvLyBlaXRoZXIgbm8gaW5kZXggYXJnIG9yIGFuIGludmFsaWQgaW5kZXggd2FzIHByb3ZpZGVkXG4gICAgICAvLyBpdCBpcyBleHBlY3RlZCB0byBiZSBlaXRoZXIgMCBvciAxIHdoZW4gaW4gc3BsaXQgbW9kZVxuICAgICAgLy8gb25seSB1c2UgdGhlIG1hcFN0YXRlXG4gICAgICByZXR1cm4gbWFwU3RhdGU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGlzVmlld3BvcnREaXNqb2ludGVkKHttYXBTdGF0ZX0pXG4gICAgICA/IC8vIG1peCB0b2dldGhlciB0aGUgdmlld3BvcnQgcHJvcGVydGllcyBpbnRlbmRlZCBmb3IgdGhpcyBkaXNqb2ludGVkIDxNYXBDb250YWluZXI+IHdpdGggdGhlIG90aGVyIG5lY2Vzc2FyeSBtYXBTdGF0ZSBwcm9wZXJ0aWVzXG4gICAgICAgIHsuLi5tYXBTdGF0ZSwgLi4ubWFwU3RhdGUuc3BsaXRNYXBWaWV3cG9ydHNbaW5kZXggfHwgMF19XG4gICAgICA6IC8vIG90aGVyd2lzZSBvbmx5IHVzZSB0aGUgbWFwU3RhdGVcbiAgICAgICAgbWFwU3RhdGU7XG4gIH1cbik7XG5cbmV4cG9ydCBjb25zdCBtYXBGaWVsZHNTZWxlY3RvciA9IChwcm9wczogS2VwbGVyR0xQcm9wcywgaW5kZXggPSAwKSA9PiB7XG4gIGNvbnN0IGF0dHJpYnV0aW9uID0gYXR0cmlidXRpb25TZWxlY3Rvcihwcm9wcyk7XG4gIHJldHVybiB7XG4gICAgZ2V0TWFwYm94UmVmOiBwcm9wcy5nZXRNYXBib3hSZWYsXG4gICAgbWFwYm94QXBpQWNjZXNzVG9rZW46IHByb3BzLm1hcGJveEFwaUFjY2Vzc1Rva2VuLFxuICAgIG1hcGJveEFwaVVybDogcHJvcHMubWFwYm94QXBpVXJsID8gcHJvcHMubWFwYm94QXBpVXJsIDogREVGQVVMVF9LRVBMRVJfR0xfUFJPUFMubWFwYm94QXBpVXJsLFxuICAgIG1hcFN0YXRlOiBtYXBTdGF0ZVNlbGVjdG9yKHByb3BzLCBpbmRleCksXG4gICAgZGF0YXNldEF0dHJpYnV0aW9uczogYXR0cmlidXRpb24uc291cmNlcyxcbiAgICBhdHRyaWJ1dGlvbkxvZ29zOiBhdHRyaWJ1dGlvbi5sb2dvcyxcbiAgICBtYXBTdHlsZTogcHJvcHMubWFwU3R5bGUsXG4gICAgb25EZWNrSW5pdGlhbGl6ZWQ6IHByb3BzLm9uRGVja0luaXRpYWxpemVkLFxuICAgIG9uVmlld1N0YXRlQ2hhbmdlOiBwcm9wcy5vblZpZXdTdGF0ZUNoYW5nZSxcbiAgICBvbk1vdXNlTW92ZTogcHJvcHMub25Nb3VzZU1vdmUsXG4gICAgZGVja0dsUHJvcHM6IHByb3BzLmRlY2tHbFByb3BzLFxuICAgIHVpU3RhdGVBY3Rpb25zOiBwcm9wcy51aVN0YXRlQWN0aW9ucyxcbiAgICB2aXNTdGF0ZUFjdGlvbnM6IHByb3BzLnZpc1N0YXRlQWN0aW9ucyxcbiAgICBtYXBTdGF0ZUFjdGlvbnM6IHByb3BzLm1hcFN0YXRlQWN0aW9ucyxcblxuICAgIC8vIHZpc1N0YXRlXG4gICAgdmlzU3RhdGU6IHByb3BzLnZpc1N0YXRlLFxuXG4gICAgLy8gdWlTdGF0ZVxuICAgIGFjdGl2ZVNpZGVQYW5lbDogcHJvcHMudWlTdGF0ZS5hY3RpdmVTaWRlUGFuZWwsXG4gICAgbWFwQ29udHJvbHM6IHByb3BzLnVpU3RhdGUubWFwQ29udHJvbHMsXG4gICAgcmVhZE9ubHk6IHByb3BzLnVpU3RhdGUucmVhZE9ubHksXG4gICAgbG9jYWxlOiBwcm9wcy51aVN0YXRlLmxvY2FsZSxcbiAgICB1aVRoZW1lOiBwcm9wcy51aVN0YXRlLnRoZW1lLFxuICAgIGlzTG9hZGluZ0luZGljYXRvclZpc2libGU6IE51bWJlcihwcm9wcy52aXNTdGF0ZS5sb2FkaW5nSW5kaWNhdG9yVmFsdWUpID4gMCxcbiAgICBzaWRlUGFuZWxXaWR0aDogcHJvcHMuc2lkZVBhbmVsV2lkdGggPyBwcm9wcy5zaWRlUGFuZWxXaWR0aCA6IERFRkFVTFRfS0VQTEVSX0dMX1BST1BTLndpZHRoLFxuXG4gICAgLy8gbWFwU3R5bGVcbiAgICB0b3BNYXBDb250YWluZXJQcm9wczogcHJvcHMudG9wTWFwQ29udGFpbmVyUHJvcHMsXG4gICAgYm90dG9tTWFwQ29udGFpbmVyUHJvcHM6IHByb3BzLmJvdHRvbU1hcENvbnRhaW5lclByb3BzLFxuXG4gICAgLy8gdHJhbnNmb3JtUmVxdWVzdCBmb3IgTWFwYm94IGJhc2VtYXBzXG4gICAgdHJhbnNmb3JtUmVxdWVzdDogcHJvcHMudHJhbnNmb3JtUmVxdWVzdCxcblxuICAgIFJUTFRleHRQbHVnaW46IHByb3BzLlJUTFRleHRQbHVnaW5cbiAgfTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRWaXNpYmxlRGF0YXNldHMoZGF0YXNldHMpIHtcbiAgLy8gV2UgZG9uJ3Qgd2FudCBHZW9jb2RlciBkYXRhc2V0IHRvIGJlIHByZXNlbnQgaW4gU2lkZVBhbmVsIGRhdGFzZXQgbGlzdFxuICByZXR1cm4gZmlsdGVyT2JqZWN0QnlQcmVkaWNhdGUoZGF0YXNldHMsIGtleSA9PiBrZXkgIT09IEdFT0NPREVSX0RBVEFTRVRfTkFNRSk7XG59XG5cbmV4cG9ydCBjb25zdCBzaWRlUGFuZWxTZWxlY3RvciA9IChwcm9wczogS2VwbGVyR0xQcm9wcywgYXZhaWxhYmxlUHJvdmlkZXJzLCBmaWx0ZXJlZERhdGFzZXRzKSA9PiAoe1xuICBhcHBOYW1lOiBwcm9wcy5hcHBOYW1lID8gcHJvcHMuYXBwTmFtZSA6IERFRkFVTFRfS0VQTEVSX0dMX1BST1BTLmFwcE5hbWUsXG4gIHZlcnNpb246IHByb3BzLnZlcnNpb24gPyBwcm9wcy52ZXJzaW9uIDogREVGQVVMVF9LRVBMRVJfR0xfUFJPUFMudmVyc2lvbixcbiAgYXBwV2Vic2l0ZTogcHJvcHMuYXBwV2Vic2l0ZSxcbiAgbWFwU3R5bGU6IHByb3BzLm1hcFN0eWxlLFxuICBtYXBTdGF0ZTogcHJvcHMubWFwU3RhdGUsXG4gIG9uU2F2ZU1hcDogcHJvcHMub25TYXZlTWFwLFxuICB1aVN0YXRlOiBwcm9wcy51aVN0YXRlLFxuICBtYXBTdHlsZUFjdGlvbnM6IHByb3BzLm1hcFN0eWxlQWN0aW9ucyxcbiAgdmlzU3RhdGVBY3Rpb25zOiBwcm9wcy52aXNTdGF0ZUFjdGlvbnMsXG4gIHVpU3RhdGVBY3Rpb25zOiBwcm9wcy51aVN0YXRlQWN0aW9ucyxcbiAgbWFwU3RhdGVBY3Rpb25zOiBwcm9wcy5tYXBTdGF0ZUFjdGlvbnMsXG5cbiAgZGF0YXNldHM6IGZpbHRlcmVkRGF0YXNldHMsXG4gIGZpbHRlcnM6IHByb3BzLnZpc1N0YXRlLmZpbHRlcnMsXG4gIGxheWVyczogcHJvcHMudmlzU3RhdGUubGF5ZXJzLFxuICBsYXllck9yZGVyOiBwcm9wcy52aXNTdGF0ZS5sYXllck9yZGVyLFxuICBsYXllckNsYXNzZXM6IHByb3BzLnZpc1N0YXRlLmxheWVyQ2xhc3NlcyxcbiAgaW50ZXJhY3Rpb25Db25maWc6IHByb3BzLnZpc1N0YXRlLmludGVyYWN0aW9uQ29uZmlnLFxuICBtYXBJbmZvOiBwcm9wcy52aXNTdGF0ZS5tYXBJbmZvLFxuICBsYXllckJsZW5kaW5nOiBwcm9wcy52aXNTdGF0ZS5sYXllckJsZW5kaW5nLFxuICBvdmVybGF5QmxlbmRpbmc6IHByb3BzLnZpc1N0YXRlLm92ZXJsYXlCbGVuZGluZyxcblxuICB3aWR0aDogcHJvcHMuc2lkZVBhbmVsV2lkdGggPyBwcm9wcy5zaWRlUGFuZWxXaWR0aCA6IERFRkFVTFRfS0VQTEVSX0dMX1BST1BTLndpZHRoLFxuICBhdmFpbGFibGVQcm92aWRlcnMsXG4gIG1hcFNhdmVkOiBwcm9wcy5wcm92aWRlclN0YXRlLm1hcFNhdmVkXG59KTtcblxuZXhwb3J0IGNvbnN0IHBsb3RDb250YWluZXJTZWxlY3RvciA9IChwcm9wczogS2VwbGVyR0xQcm9wcykgPT4gKHtcbiAgd2lkdGg6IHByb3BzLndpZHRoLFxuICBoZWlnaHQ6IHByb3BzLmhlaWdodCxcbiAgcmF0aW86IHByb3BzLnVpU3RhdGUuZXhwb3J0SW1hZ2UucmF0aW8sXG4gIHJlc29sdXRpb246IHByb3BzLnVpU3RhdGUuZXhwb3J0SW1hZ2UucmVzb2x1dGlvbixcbiAgbGVnZW5kOiBwcm9wcy51aVN0YXRlLmV4cG9ydEltYWdlLmxlZ2VuZCxcbiAgY2VudGVyOiBwcm9wcy51aVN0YXRlLmV4cG9ydEltYWdlLmNlbnRlcixcbiAgaW1hZ2VTaXplOiBwcm9wcy51aVN0YXRlLmV4cG9ydEltYWdlLmltYWdlU2l6ZSxcbiAgZXNjYXBlWGh0bWxGb3JXZWJwYWNrOiBwcm9wcy51aVN0YXRlLmV4cG9ydEltYWdlLmVzY2FwZVhodG1sRm9yV2VicGFjayxcblxuICBtYXBGaWVsZHM6IG1hcEZpZWxkc1NlbGVjdG9yKHByb3BzKSxcbiAgYWRkTm90aWZpY2F0aW9uOiBwcm9wcy51aVN0YXRlQWN0aW9ucy5hZGROb3RpZmljYXRpb24sXG4gIHNldEV4cG9ydEltYWdlU2V0dGluZzogcHJvcHMudWlTdGF0ZUFjdGlvbnMuc2V0RXhwb3J0SW1hZ2VTZXR0aW5nLFxuICBzZXRFeHBvcnRJbWFnZURhdGFVcmk6IHByb3BzLnVpU3RhdGVBY3Rpb25zLnNldEV4cG9ydEltYWdlRGF0YVVyaSxcbiAgc2V0RXhwb3J0SW1hZ2VFcnJvcjogcHJvcHMudWlTdGF0ZUFjdGlvbnMuc2V0RXhwb3J0SW1hZ2VFcnJvcixcbiAgc3BsaXRNYXBzOiBwcm9wcy52aXNTdGF0ZS5zcGxpdE1hcHNcbn0pO1xuXG5leHBvcnQgY29uc3QgaXNTcGxpdFNlbGVjdG9yID0gKHByb3BzOiBLZXBsZXJHTFByb3BzKSA9PlxuICBwcm9wcy52aXNTdGF0ZS5zcGxpdE1hcHMgJiYgcHJvcHMudmlzU3RhdGUuc3BsaXRNYXBzLmxlbmd0aCA+IDE7XG5cbmV4cG9ydCBjb25zdCBib3R0b21XaWRnZXRTZWxlY3RvciA9IChwcm9wczogS2VwbGVyR0xQcm9wcywgdGhlbWUpID0+ICh7XG4gIGZpbHRlcnM6IHByb3BzLnZpc1N0YXRlLmZpbHRlcnMsXG4gIGRhdGFzZXRzOiBwcm9wcy52aXNTdGF0ZS5kYXRhc2V0cyxcbiAgdWlTdGF0ZTogcHJvcHMudWlTdGF0ZSxcbiAgbGF5ZXJzOiBwcm9wcy52aXNTdGF0ZS5sYXllcnMsXG4gIGFuaW1hdGlvbkNvbmZpZzogcHJvcHMudmlzU3RhdGUuYW5pbWF0aW9uQ29uZmlnLFxuICB2aXNTdGF0ZUFjdGlvbnM6IHByb3BzLnZpc1N0YXRlQWN0aW9ucyxcbiAgdG9nZ2xlTW9kYWw6IHByb3BzLnVpU3RhdGVBY3Rpb25zLnRvZ2dsZU1vZGFsLFxuICBzaWRlUGFuZWxXaWR0aDogcHJvcHMudWlTdGF0ZS5yZWFkT25seSA/IDAgOiBwcm9wcy5zaWRlUGFuZWxXaWR0aCArIHRoZW1lLnNpZGVQYW5lbC5tYXJnaW4ubGVmdFxufSk7XG5cbmV4cG9ydCBjb25zdCBtb2RhbENvbnRhaW5lclNlbGVjdG9yID0gKHByb3BzOiBLZXBsZXJHTFByb3BzLCByb290Tm9kZSkgPT4gKHtcbiAgYXBwTmFtZTogcHJvcHMuYXBwTmFtZSA/IHByb3BzLmFwcE5hbWUgOiBERUZBVUxUX0tFUExFUl9HTF9QUk9QUy5hcHBOYW1lLFxuICBtYXBTdHlsZTogcHJvcHMubWFwU3R5bGUsXG4gIHZpc1N0YXRlOiBwcm9wcy52aXNTdGF0ZSxcbiAgbWFwU3RhdGU6IHByb3BzLm1hcFN0YXRlLFxuICB1aVN0YXRlOiBwcm9wcy51aVN0YXRlLFxuICBwcm92aWRlclN0YXRlOiBwcm9wcy5wcm92aWRlclN0YXRlLFxuXG4gIG1hcGJveEFwaUFjY2Vzc1Rva2VuOiBwcm9wcy5tYXBib3hBcGlBY2Nlc3NUb2tlbixcbiAgbWFwYm94QXBpVXJsOiBwcm9wcy5tYXBib3hBcGlVcmwsXG4gIHZpc1N0YXRlQWN0aW9uczogcHJvcHMudmlzU3RhdGVBY3Rpb25zLFxuICB1aVN0YXRlQWN0aW9uczogcHJvcHMudWlTdGF0ZUFjdGlvbnMsXG4gIG1hcFN0eWxlQWN0aW9uczogcHJvcHMubWFwU3R5bGVBY3Rpb25zLFxuICBwcm92aWRlckFjdGlvbnM6IHByb3BzLnByb3ZpZGVyQWN0aW9ucyxcblxuICByb290Tm9kZSxcbiAgLy8gVXNlciBkZWZpbmVkIGNsb3VkIHByb3ZpZGVyIHByb3BzXG4gIGNsb3VkUHJvdmlkZXJzOiBwcm9wcy5jbG91ZFByb3ZpZGVyc1xuICAgID8gcHJvcHMuY2xvdWRQcm92aWRlcnNcbiAgICA6IERFRkFVTFRfS0VQTEVSX0dMX1BST1BTLmNsb3VkUHJvdmlkZXJzLFxuICBvbkV4cG9ydFRvQ2xvdWRTdWNjZXNzOiBwcm9wcy5vbkV4cG9ydFRvQ2xvdWRTdWNjZXNzLFxuICBvbkxvYWRDbG91ZE1hcFN1Y2Nlc3M6IHByb3BzLm9uTG9hZENsb3VkTWFwU3VjY2VzcyxcbiAgb25Mb2FkQ2xvdWRNYXBFcnJvcjogcHJvcHMub25Mb2FkQ2xvdWRNYXBFcnJvcixcbiAgb25FeHBvcnRUb0Nsb3VkRXJyb3I6IHByb3BzLm9uRXhwb3J0VG9DbG91ZEVycm9yXG59KTtcblxuZXhwb3J0IGNvbnN0IGdlb0NvZGVyUGFuZWxTZWxlY3RvciA9IChcbiAgcHJvcHM6IEtlcGxlckdMUHJvcHMsXG4gIGRpbWVuc2lvbnM6IHt3aWR0aDogbnVtYmVyOyBoZWlnaHQ6IG51bWJlcn1cbikgPT4gKHtcbiAgaXNHZW9jb2RlckVuYWJsZWQ6IHByb3BzLnZpc1N0YXRlLmludGVyYWN0aW9uQ29uZmlnLmdlb2NvZGVyLmVuYWJsZWQsXG4gIG1hcGJveEFwaUFjY2Vzc1Rva2VuOiBwcm9wcy5tYXBib3hBcGlBY2Nlc3NUb2tlbixcbiAgbWFwU3RhdGU6IHByb3BzLm1hcFN0YXRlLFxuICB1aVN0YXRlOiBwcm9wcy51aVN0YXRlLFxuICBsYXllck9yZGVyOiBwcm9wcy52aXNTdGF0ZS5sYXllck9yZGVyLFxuICB1cGRhdGVWaXNEYXRhOiBwcm9wcy52aXNTdGF0ZUFjdGlvbnMudXBkYXRlVmlzRGF0YSxcbiAgcmVtb3ZlRGF0YXNldDogcHJvcHMudmlzU3RhdGVBY3Rpb25zLnJlbW92ZURhdGFzZXQsXG4gIHVwZGF0ZU1hcDogcHJvcHMubWFwU3RhdGVBY3Rpb25zLnVwZGF0ZU1hcCxcbiAgYXBwV2lkdGg6IGRpbWVuc2lvbnMud2lkdGgsXG4gIGxpbWl0U2VhcmNoOiBwcm9wcy52aXNTdGF0ZS5pbnRlcmFjdGlvbkNvbmZpZy5nZW9jb2Rlci5jb25maWc/LmxpbWl0U2VhcmNoID8/IGZhbHNlXG59KTtcblxuLyoqXG4gKiBSZXR1cm5zIGFycmF5IG9mIHVuaXF1ZSBkYXRhc2V0IGF0dHJpYnV0aW9ucywgZWFjaCB3aXRoIHRpdGxlIGFuZCB1cmwgcHJvcGVydGllcy5cbiAqL1xuZXhwb3J0IGNvbnN0IGRhdGFzZXRBdHRyaWJ1dGlvblNlbGVjdG9yID0gY3JlYXRlU2VsZWN0b3IoXG4gIFtzdGF0ZSA9PiBzdGF0ZS52aXNTdGF0ZS5kYXRhc2V0c10sXG4gIGRhdGFzZXRzID0+IHtcbiAgICBjb25zdCB1bmlxdWVBdHRyaWJ1dGlvbnM6IERhdGFzZXRBdHRyaWJ1dGlvbltdID0gW107XG4gICAgT2JqZWN0LmtleXMoZGF0YXNldHMpLmZvckVhY2goa2V5ID0+IHtcbiAgICAgIGNvbnN0IGRzID0gZGF0YXNldHNba2V5XTtcbiAgICAgIGNvbnN0IGF0dHJpYnV0aW9ucyA9IGRzPy5tZXRhZGF0YT8uYXR0cmlidXRpb25zO1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoYXR0cmlidXRpb25zKSkge1xuICAgICAgICBhdHRyaWJ1dGlvbnMuZm9yRWFjaChhdHRyaWJ1dGlvbiA9PiB7XG4gICAgICAgICAgaWYgKHR5cGVvZiBhdHRyaWJ1dGlvbiA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIC8vIGF0dHJpYnV0aW9uIGNhbiBiZSBhIHJhdyBzdHJpbmcgb3IgYSBzdHJpbmcgd2l0aCBsaW5rIHRhZ3NcbiAgICAgICAgICAgIGNvbnN0IGxpbmtzID0gYXR0cmlidXRpb24ubWF0Y2goLzxhW15dKz9hPi9nKTtcbiAgICAgICAgICAgIGlmIChsaW5rcykge1xuICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxpbmtzPy5mb3JFYWNoKGxpbmsgPT4ge1xuICAgICAgICAgICAgICAgICAgY29uc3QgaHJlZiA9IGxpbmsubWF0Y2goL2hyZWY9XCIoW15cIl0qKS8pPy5bMV07XG4gICAgICAgICAgICAgICAgICBjb25zdCB0aXRsZSA9IGxpbmsubWF0Y2goL3RpdGxlPVwiKFteXCJdKikvKT8uWzFdO1xuICAgICAgICAgICAgICAgICAgaWYgKGhyZWYgJiYgdGl0bGUpIHtcbiAgICAgICAgICAgICAgICAgICAgdW5pcXVlQXR0cmlidXRpb25zLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBgJHtsaW5rLmluZGV4T2YoJyZjb3B5OycpID49IDAgPyAnwqkgJyA6ICcnfSR7dGl0bGV9YCxcbiAgICAgICAgICAgICAgICAgICAgICB1cmw6IGhyZWZcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgLy8ganVzdCBpZ25vcmUgZm9yIG5vd1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB1bmlxdWVBdHRyaWJ1dGlvbnMucHVzaCh7dGl0bGU6IGF0dHJpYnV0aW9uLCB1cmw6IG51bGx9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiB1bmlxdWVBdHRyaWJ1dGlvbnM7XG4gIH1cbik7XG5cbi8qKlxuICogQ29sbGVjdCB1bmlxdWUgbGF5ZXItbGV2ZWwgYXR0cmlidXRpb25zIGZyb20gdmlzaWJsZSBsYXllcnMuXG4gKiBCdWlsZHMgYSBzZXJpYWxpemVkIGNhY2hlIGtleSBmcm9tIGF0dHJpYnV0aW9uIHZhbHVlcyBzbyBjcmVhdGVTZWxlY3RvclxuICogY2FuIGRldGVjdCBpbi1wbGFjZSBtdXRhdGlvbnMgdG8gbGF5ZXIubWV0YS5cbiAqL1xuY29uc3QgbGF5ZXJBdHRyaWJ1dGlvbktleVNlbGVjdG9yID0gKHN0YXRlOiBhbnkpOiBzdHJpbmcgPT4ge1xuICBjb25zdCBsYXllcnM6IGFueVtdID0gc3RhdGUudmlzU3RhdGU/LmxheWVycztcbiAgaWYgKCFsYXllcnMpIHJldHVybiAnJztcbiAgbGV0IGtleSA9ICcnO1xuICBmb3IgKGNvbnN0IGxheWVyIG9mIGxheWVycykge1xuICAgIGlmIChsYXllci5jb25maWc/LmlzVmlzaWJsZSAmJiBsYXllci5tZXRhPy5hdHRyaWJ1dGlvbikge1xuICAgICAgY29uc3QgYSA9IGxheWVyLm1ldGEuYXR0cmlidXRpb247XG4gICAgICBrZXkgKz0gYCR7YS50aXRsZX1cXDAke2EudXJsfVxcMCR7YS5sb2dvVXJsID8/ICcnfVxcMGA7XG4gICAgfVxuICB9XG4gIHJldHVybiBrZXk7XG59O1xuXG5leHBvcnQgY29uc3QgbGF5ZXJBdHRyaWJ1dGlvblNlbGVjdG9yID0gY3JlYXRlU2VsZWN0b3IoXG4gIFsoc3RhdGU6IGFueSkgPT4gc3RhdGUudmlzU3RhdGU/LmxheWVycywgbGF5ZXJBdHRyaWJ1dGlvbktleVNlbGVjdG9yXSxcbiAgKGxheWVyczogYW55W10pOiBBdHRyaWJ1dGlvbldpdGhTdHlsZVtdID0+IHtcbiAgICBjb25zdCBhdHRyaWJ1dGlvbnM6IEF0dHJpYnV0aW9uV2l0aFN0eWxlW10gPSBbXTtcbiAgICBpZiAoIWxheWVycykgcmV0dXJuIGF0dHJpYnV0aW9ucztcbiAgICBmb3IgKGNvbnN0IGxheWVyIG9mIGxheWVycykge1xuICAgICAgaWYgKGxheWVyLmNvbmZpZz8uaXNWaXNpYmxlICYmIGxheWVyLm1ldGE/LmF0dHJpYnV0aW9uKSB7XG4gICAgICAgIGNvbnN0IGF0dHIgPSBsYXllci5tZXRhLmF0dHJpYnV0aW9uO1xuICAgICAgICBpZiAoYXR0ci50aXRsZSAmJiAhYXR0cmlidXRpb25zLmZpbmQoYSA9PiBhLnRpdGxlID09PSBhdHRyLnRpdGxlICYmIGEudXJsID09PSBhdHRyLnVybCkpIHtcbiAgICAgICAgICBhdHRyaWJ1dGlvbnMucHVzaChhdHRyKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gYXR0cmlidXRpb25zO1xuICB9XG4pO1xuXG5leHBvcnQgY29uc3QgYXR0cmlidXRpb25TZWxlY3RvciA9IGNyZWF0ZVNlbGVjdG9yKFxuICBbZGF0YXNldEF0dHJpYnV0aW9uU2VsZWN0b3IsIGxheWVyQXR0cmlidXRpb25TZWxlY3Rvcl0sXG4gIChcbiAgICBkYXRhc2V0QXR0cmlidXRpb25zOiBEYXRhc2V0QXR0cmlidXRpb25bXSxcbiAgICBsYXllckF0dHJpYnV0aW9uczogQXR0cmlidXRpb25XaXRoU3R5bGVbXVxuICApOiB7XG4gICAgc291cmNlczogRGF0YXNldEF0dHJpYnV0aW9uW107XG4gICAgbG9nb3M6IEF0dHJpYnV0aW9uV2l0aFN0eWxlW107XG4gIH0gPT4ge1xuICAgIGNvbnN0IHVuaXF1ZVRleHRBdHRyaWJ1dGlvbnM6IERhdGFzZXRBdHRyaWJ1dGlvbltdID0gWy4uLmRhdGFzZXRBdHRyaWJ1dGlvbnNdO1xuICAgIGNvbnN0IGxvZ29zOiBBdHRyaWJ1dGlvbldpdGhTdHlsZVtdID0gW107XG5cbiAgICBsYXllckF0dHJpYnV0aW9ucy5mb3JFYWNoKGxheWVyQXR0cmlidXRpb24gPT4ge1xuICAgICAgaWYgKFxuICAgICAgICAhdW5pcXVlVGV4dEF0dHJpYnV0aW9ucy5maW5kKFxuICAgICAgICAgIGEgPT4gYS50aXRsZSA9PT0gbGF5ZXJBdHRyaWJ1dGlvbi50aXRsZSAmJiBhLnVybCA9PT0gbGF5ZXJBdHRyaWJ1dGlvbi51cmxcbiAgICAgICAgKVxuICAgICAgKSB7XG4gICAgICAgIHVuaXF1ZVRleHRBdHRyaWJ1dGlvbnMucHVzaCh7dGl0bGU6IGxheWVyQXR0cmlidXRpb24udGl0bGUsIHVybDogbGF5ZXJBdHRyaWJ1dGlvbi51cmx9KTtcbiAgICAgIH1cbiAgICAgIGlmIChsYXllckF0dHJpYnV0aW9uLmxvZ29VcmwgJiYgIWxvZ29zLmZpbmQoYSA9PiBhLmxvZ29VcmwgPT09IGxheWVyQXR0cmlidXRpb24ubG9nb1VybCkpIHtcbiAgICAgICAgbG9nb3MucHVzaChsYXllckF0dHJpYnV0aW9uKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiB7c291cmNlczogdW5pcXVlVGV4dEF0dHJpYnV0aW9ucywgbG9nb3N9O1xuICB9XG4pO1xuXG5leHBvcnQgY29uc3Qgbm90aWZpY2F0aW9uUGFuZWxTZWxlY3RvciA9IChwcm9wczogS2VwbGVyR0xQcm9wcykgPT4gKHtcbiAgcmVtb3ZlTm90aWZpY2F0aW9uOiBwcm9wcy51aVN0YXRlQWN0aW9ucy5yZW1vdmVOb3RpZmljYXRpb24sXG4gIG5vdGlmaWNhdGlvbnM6IHByb3BzLnVpU3RhdGUubm90aWZpY2F0aW9uc1xufSk7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0tFUExFUl9HTF9QUk9QUyA9IHtcbiAgbWFwU3R5bGVzOiBbXSxcbiAgbWFwU3R5bGVzUmVwbGFjZURlZmF1bHQ6IGZhbHNlLFxuICBtYXBib3hBcGlVcmw6IERFRkFVTFRfTUFQQk9YX0FQSV9VUkwsXG4gIHdpZHRoOiA4MDAsXG4gIGhlaWdodDogODAwLFxuICBhcHBOYW1lOiBLRVBMRVJfR0xfTkFNRSxcbiAgdmVyc2lvbjogS0VQTEVSX0dMX1ZFUlNJT04sXG4gIHNpZGVQYW5lbFdpZHRoOiBESU1FTlNJT05TLnNpZGVQYW5lbC53aWR0aCxcbiAgdGhlbWU6IHt9LFxuICBjbG91ZFByb3ZpZGVyczogW10sXG4gIHJlYWRPbmx5OiBmYWxzZSxcbiAgZmVhdHVyZUZsYWdzOiB7fVxufTtcblxudHlwZSBLZXBsZXJHTEJhc2ljUHJvcHMgPSB7XG4gIG1hcGJveEFwaUFjY2Vzc1Rva2VuOiBzdHJpbmc7XG4gIG1hcGJveEFwaVVybD86IHN0cmluZztcbiAgaWQ6IHN0cmluZztcbiAgd2lkdGg/OiBudW1iZXI7XG4gIGhlaWdodD86IG51bWJlcjtcblxuICBhcHBXZWJzaXRlPzogYW55O1xuICBvblNhdmVNYXA/OiAoKSA9PiB2b2lkO1xuICBvblZpZXdTdGF0ZUNoYW5nZT86ICh2aWV3U3RhdGU6IFZpZXdwb3J0KSA9PiB2b2lkO1xuICBvbkRlY2tJbml0aWFsaXplZD86ICgpID0+IHZvaWQ7XG4gIG9uS2VwbGVyR2xJbml0aWFsaXplZD86ICgpID0+IHZvaWQ7XG4gIGdldE1hcGJveFJlZj86ICgpID0+IFJlYWN0LlJlZk9iamVjdDxhbnk+O1xuICBtYXBTdHlsZXM/OiB7aWQ6IHN0cmluZzsgc3R5bGU/OiBvYmplY3R9W107XG4gIG1hcFN0eWxlc1JlcGxhY2VEZWZhdWx0PzogYm9vbGVhbjtcbiAgYXBwTmFtZT86IHN0cmluZztcbiAgdmVyc2lvbj86IHN0cmluZztcbiAgc2lkZVBhbmVsV2lkdGg/OiBudW1iZXI7XG4gIHRoZW1lPzogb2JqZWN0O1xuICBjbG91ZFByb3ZpZGVycz86IFByb3ZpZGVyW107XG4gIGRlY2tHbFByb3BzPzogb2JqZWN0O1xuICBvbkxvYWRDbG91ZE1hcFN1Y2Nlc3M/OiBPblN1Y2Nlc3NDYWxsQmFjaztcbiAgb25Mb2FkQ2xvdWRNYXBFcnJvcj86IE9uRXJyb3JDYWxsQmFjaztcbiAgb25Nb3VzZU1vdmU/OiAoZXZlbnQ6IFJlYWN0Lk1vdXNlRXZlbnQgJiB7bG5nTGF0PzogW251bWJlciwgbnVtYmVyXX0pID0+IHZvaWQ7XG4gIG9uRXhwb3J0VG9DbG91ZFN1Y2Nlc3M/OiBPblN1Y2Nlc3NDYWxsQmFjaztcbiAgb25FeHBvcnRUb0Nsb3VkRXJyb3I/OiBPbkVycm9yQ2FsbEJhY2s7XG4gIHJlYWRPbmx5PzogYm9vbGVhbjtcbiAgZmVhdHVyZUZsYWdzPzogRmVhdHVyZUZsYWdzO1xuXG4gIGxvY2FsZU1lc3NhZ2VzPzoge1trZXk6IHN0cmluZ106IHtba2V5OiBzdHJpbmddOiBzdHJpbmd9fTtcbiAgZGlzcGF0Y2g6IERpc3BhdGNoPGFueT47XG5cbiAgdG9wTWFwQ29udGFpbmVyUHJvcHM/OiBvYmplY3Q7XG4gIGJvdHRvbU1hcENvbnRhaW5lclByb3BzPzogb2JqZWN0O1xuXG4gIHRyYW5zZm9ybVJlcXVlc3Q/OiAodXJsOiBzdHJpbmcpID0+IHt1cmw6IHN0cmluZ307XG5cbiAgLyoqIFBhc3MgYGZhbHNlYCB0byBkaXNhYmxlIHRoZSByZW1vdGUgUlRMIHRleHQgcGx1Z2luLCBvciBhIFVSTCBzdHJpbmcgdG8gc2VsZi1ob3N0IGl0LiAqL1xuICBSVExUZXh0UGx1Z2luPzogc3RyaW5nIHwgZmFsc2U7XG59O1xuXG50eXBlIEtlcGxlckdMUHJvcHMgPSBLZXBsZXJHbFN0YXRlICYgS2VwbGVyR2xBY3Rpb25zICYgS2VwbGVyR0xCYXNpY1Byb3BzO1xudHlwZSBLZXBsZXJHTENvbXBTdGF0ZSA9IHtcbiAgZGltZW5zaW9uczoge3dpZHRoOiBudW1iZXI7IGhlaWdodDogbnVtYmVyfSB8IG51bGw7XG59O1xuXG5LZXBsZXJHbEZhY3RvcnkuZGVwcyA9IFtcbiAgQm90dG9tV2lkZ2V0RmFjdG9yeSxcbiAgR2VvQ29kZXJQYW5lbEZhY3RvcnksXG4gIE1hcENvbnRhaW5lckZhY3RvcnksXG4gIE1hcHNMYXlvdXRGYWN0b3J5LFxuICBNb2RhbENvbnRhaW5lckZhY3RvcnksXG4gIFNpZGVQYW5lbEZhY3RvcnksXG4gIFBsb3RDb250YWluZXJGYWN0b3J5LFxuICBOb3RpZmljYXRpb25QYW5lbEZhY3RvcnksXG4gIERuZENvbnRleHRGYWN0b3J5LFxuICBFZmZlY3RNYW5hZ2VyRmFjdG9yeVxuXTtcblxuZnVuY3Rpb24gS2VwbGVyR2xGYWN0b3J5KFxuICBCb3R0b21XaWRnZXQ6IFJldHVyblR5cGU8dHlwZW9mIEJvdHRvbVdpZGdldEZhY3Rvcnk+LFxuICBHZW9Db2RlclBhbmVsOiBSZXR1cm5UeXBlPHR5cGVvZiBHZW9Db2RlclBhbmVsRmFjdG9yeT4sXG4gIE1hcENvbnRhaW5lcjogUmV0dXJuVHlwZTx0eXBlb2YgTWFwQ29udGFpbmVyRmFjdG9yeT4sXG4gIE1hcHNMYXlvdXQ6IFJldHVyblR5cGU8dHlwZW9mIE1hcHNMYXlvdXRGYWN0b3J5PixcbiAgTW9kYWxDb250YWluZXI6IFJldHVyblR5cGU8dHlwZW9mIE1vZGFsQ29udGFpbmVyRmFjdG9yeT4sXG4gIFNpZGVQYW5lbDogUmV0dXJuVHlwZTx0eXBlb2YgU2lkZVBhbmVsRmFjdG9yeT4sXG4gIFBsb3RDb250YWluZXI6IFJldHVyblR5cGU8dHlwZW9mIFBsb3RDb250YWluZXJGYWN0b3J5PixcbiAgTm90aWZpY2F0aW9uUGFuZWw6IFJldHVyblR5cGU8dHlwZW9mIE5vdGlmaWNhdGlvblBhbmVsRmFjdG9yeT4sXG4gIERuZENvbnRleHQ6IFJldHVyblR5cGU8dHlwZW9mIERuZENvbnRleHRGYWN0b3J5PlxuKTogUmVhY3QuQ29tcG9uZW50VHlwZTxLZXBsZXJHTEJhc2ljUHJvcHMgJiB7c2VsZWN0b3I6ICguLi5hcmdzOiBhbnlbXSkgPT4gS2VwbGVyR2xTdGF0ZX0+IHtcbiAgLyoqIEB0eXBlZGVmIHtpbXBvcnQoJy4va2VwbGVyLWdsJykuVW5jb25uZWN0ZWRLZXBsZXJHbFByb3BzfSBLZXBsZXJHbFByb3BzICovXG4gIC8qKiBAYXVnbWVudHMgUmVhY3QuQ29tcG9uZW50PEtlcGxlckdsUHJvcHM+ICovXG4gIGNsYXNzIEtlcGxlckdMIGV4dGVuZHMgQ29tcG9uZW50PFxuICAgIEtlcGxlckdMUHJvcHMgJiB7c2VsZWN0b3I6ICguLi5hcmdzOiBhbnlbXSkgPT4gS2VwbGVyR2xTdGF0ZX0sXG4gICAgS2VwbGVyR0xDb21wU3RhdGVcbiAgPiB7XG4gICAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IERFRkFVTFRfS0VQTEVSX0dMX1BST1BTO1xuXG4gICAgc3RhdGU6IEtlcGxlckdMQ29tcFN0YXRlID0ge1xuICAgICAgZGltZW5zaW9uczogbnVsbFxuICAgIH07XG5cbiAgICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAgIGlmIChnZXRBcHBsaWNhdGlvbkNvbmZpZygpLmJhc2VNYXBMaWJyYXJ5Q29uZmlnPy5bJ21hcGJveCddPy5tYXBMaWJOYW1lID09PSAnTWFwYm94Jykge1xuICAgICAgICB0aGlzLl92YWxpZGF0ZU1hcGJveFRva2VuKCk7XG4gICAgICB9XG4gICAgICB0aGlzLl9sb2FkTWFwU3R5bGUoKTtcbiAgICAgIGlmICh0eXBlb2YgdGhpcy5wcm9wcy5vbktlcGxlckdsSW5pdGlhbGl6ZWQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgdGhpcy5wcm9wcy5vbktlcGxlckdsSW5pdGlhbGl6ZWQoKTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLnJvb3QuY3VycmVudCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSB7XG4gICAgICAgIG9ic2VydmVEaW1lbnNpb25zKHRoaXMucm9vdC5jdXJyZW50LCB0aGlzLl9oYW5kbGVSZXNpemUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgICAgaWYgKHRoaXMucm9vdC5jdXJyZW50IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgdW5vYnNlcnZlRGltZW5zaW9ucyh0aGlzLnJvb3QuY3VycmVudCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgX2hhbmRsZVJlc2l6ZSA9IGRpbWVuc2lvbnMgPT4ge1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7ZGltZW5zaW9uc30pO1xuICAgIH07XG5cbiAgICBzdGF0aWMgY29udGV4dFR5cGUgPSBSb290Q29udGV4dDtcblxuICAgIHJvb3QgPSBjcmVhdGVSZWY8SFRNTERpdkVsZW1lbnQgfCBudWxsPigpO1xuICAgIGJvdHRvbVdpZGdldFJlZiA9IGNyZWF0ZVJlZjxIVE1MRGl2RWxlbWVudD4oKTtcblxuICAgIC8qIHNlbGVjdG9ycyAqL1xuICAgIHRoZW1lU2VsZWN0b3IgPSBwcm9wcyA9PiBwcm9wcy50aGVtZTtcbiAgICB1aVRoZW1lU2VsZWN0b3IgPSBwcm9wcyA9PiBwcm9wcy51aVN0YXRlPy50aGVtZTtcbiAgICBhdmFpbGFibGVUaGVtZVNlbGVjdG9yID0gY3JlYXRlU2VsZWN0b3IoXG4gICAgICB0aGlzLnRoZW1lU2VsZWN0b3IsXG4gICAgICB0aGlzLnVpVGhlbWVTZWxlY3RvcixcbiAgICAgICh0aGVtZSwgdWlUaGVtZSkgPT4ge1xuICAgICAgICAvLyBXaGVuIHRoZW1lIHRvZ2dsZSBpcyBlbmFibGVkLCB1aVN0YXRlLnRoZW1lIGRyaXZlcyBsaWdodC9kYXJrIHN3aXRjaGluZy5cbiAgICAgICAgY29uc3QgdGhlbWVJbnB1dCA9IGdldEFwcGxpY2F0aW9uQ29uZmlnKCkuZW5hYmxlVGhlbWVUb2dnbGUgPyB1aVRoZW1lIHx8IFRIRU1FLmRhcmsgOiB0aGVtZTtcblxuICAgICAgICBpZiAodHlwZW9mIHRoZW1lSW5wdXQgPT09ICdvYmplY3QnICYmIHRoZW1lSW5wdXQgIT09IG51bGwpIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4uYmFzaWNUaGVtZSxcbiAgICAgICAgICAgIC4uLnRoZW1lSW5wdXRcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGVtZUlucHV0ID09PSBUSEVNRS5saWdodCkge1xuICAgICAgICAgIHJldHVybiB0aGVtZUxUO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGVtZUlucHV0ID09PSBUSEVNRS5iYXNlKSB7XG4gICAgICAgICAgcmV0dXJuIHRoZW1lQlM7XG4gICAgICAgIH1cbiAgICAgICAgLy8gVEhFTUUuZGFyayBhbmQgdW5rbm93biB2YWx1ZXMgZmFsbCBiYWNrIHRvIHRoZSBkZWZhdWx0IGRhcmsgdGhlbWVcbiAgICAgICAgcmV0dXJuIGJhc2ljVGhlbWU7XG4gICAgICB9XG4gICAgKTtcblxuICAgIGRhdGFzZXRzU2VsZWN0b3IgPSBwcm9wcyA9PiBwcm9wcy52aXNTdGF0ZS5kYXRhc2V0cztcbiAgICBmaWx0ZXJlZERhdGFzZXRzU2VsZWN0b3IgPSBjcmVhdGVTZWxlY3Rvcih0aGlzLmRhdGFzZXRzU2VsZWN0b3IsIGdldFZpc2libGVEYXRhc2V0cyk7XG5cbiAgICBhdmFpbGFibGVQcm92aWRlcnMgPSBjcmVhdGVTZWxlY3RvcihcbiAgICAgIChwcm9wczogS2VwbGVyR0xQcm9wcykgPT4gcHJvcHMuY2xvdWRQcm92aWRlcnMsXG4gICAgICBwcm92aWRlcnMgPT5cbiAgICAgICAgQXJyYXkuaXNBcnJheShwcm92aWRlcnMpICYmIHByb3ZpZGVycy5sZW5ndGhcbiAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgaGFzU3RvcmFnZTogcHJvdmlkZXJzLnNvbWUocCA9PiBwLmhhc1ByaXZhdGVTdG9yYWdlKCkpLFxuICAgICAgICAgICAgICBoYXNTaGFyZTogcHJvdmlkZXJzLnNvbWUocCA9PiBwLmhhc1NoYXJpbmdVcmwoKSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICA6IHt9XG4gICAgKTtcblxuICAgIGxvY2FsZU1lc3NhZ2VzU2VsZWN0b3IgPSBjcmVhdGVTZWxlY3RvcihcbiAgICAgIChwcm9wczogS2VwbGVyR0xQcm9wcykgPT4gcHJvcHMubG9jYWxlTWVzc2FnZXMsXG4gICAgICBjdXN0b21NZXNzYWdlcyA9PiAoY3VzdG9tTWVzc2FnZXMgPyBtZXJnZU1lc3NhZ2VzKG1lc3NhZ2VzLCBjdXN0b21NZXNzYWdlcykgOiBtZXNzYWdlcylcbiAgICApO1xuXG4gICAgLyogcHJpdmF0ZSBtZXRob2RzICovXG4gICAgX3ZhbGlkYXRlTWFwYm94VG9rZW4oKSB7XG4gICAgICBjb25zdCB7bWFwYm94QXBpQWNjZXNzVG9rZW59ID0gdGhpcy5wcm9wcztcbiAgICAgIGlmICghdmFsaWRhdGVUb2tlbihtYXBib3hBcGlBY2Nlc3NUb2tlbikpIHtcbiAgICAgICAgQ29uc29sZS53YXJuKE1JU1NJTkdfTUFQQk9YX1RPS0VOKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBfbG9hZE1hcFN0eWxlID0gKCkgPT4ge1xuICAgICAgY29uc3QgZGVmYXVsdFN0eWxlcyA9IE9iamVjdC52YWx1ZXModGhpcy5wcm9wcy5tYXBTdHlsZS5tYXBTdHlsZXMpO1xuICAgICAgLy8gYWRkIGlkIHRvIGN1c3RvbSBtYXAgc3R5bGVzIGlmIG5vdCBnaXZlblxuICAgICAgY29uc3QgY3VzdG9tU3R5bGVzID0gKHRoaXMucHJvcHMubWFwU3R5bGVzIHx8IFtdKS5tYXAobXMgPT4gKHtcbiAgICAgICAgLi4ubXMsXG4gICAgICAgIGlkOiBtcy5pZCB8fCBnZW5lcmF0ZUhhc2hJZCgpXG4gICAgICB9KSk7XG5cbiAgICAgIGNvbnN0IGFsbFN0eWxlcyA9IFsuLi5jdXN0b21TdHlsZXMsIC4uLmRlZmF1bHRTdHlsZXNdLnJlZHVjZSgoYWNjdSwgc3R5bGUpID0+IHtcbiAgICAgICAgYWNjdVtzdHlsZS5pZF0gPSBzdHlsZTtcbiAgICAgICAgcmV0dXJuIGFjY3U7XG4gICAgICB9LCB7fSk7XG5cbiAgICAgIHRoaXMucHJvcHMubWFwU3R5bGVBY3Rpb25zLmxvYWRNYXBTdHlsZXMoYWxsU3R5bGVzKTtcbiAgICB9O1xuXG4gICAgX2RlbGV0ZU1hcExhYmVscyA9IChjb250YWluZXJJZCwgbGF5ZXJJZCkgPT4ge1xuICAgICAgdGhpcy5wcm9wcy52aXNTdGF0ZUFjdGlvbnMudG9nZ2xlTGF5ZXJGb3JNYXAoY29udGFpbmVySWQsIGxheWVySWQpO1xuICAgIH07XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgY29tcGxleGl0eVxuICAgIHJlbmRlcigpIHtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgaWQgPSAnbWFwJyxcbiAgICAgICAgd2lkdGggPSBERUZBVUxUX0tFUExFUl9HTF9QUk9QUy53aWR0aCxcbiAgICAgICAgaGVpZ2h0ID0gREVGQVVMVF9LRVBMRVJfR0xfUFJPUFMuaGVpZ2h0LFxuICAgICAgICB1aVN0YXRlLFxuICAgICAgICB2aXNTdGF0ZSxcbiAgICAgICAgLy8gcmVhZE9ubHkgb3ZlcnJpZGVcbiAgICAgICAgcmVhZE9ubHksXG5cbiAgICAgICAgLy8gZmVhdHVyZXNcbiAgICAgICAgZmVhdHVyZUZsYWdzLFxuXG4gICAgICAgIC8vIGNsb3VkIHByb3ZpZGVyc1xuICAgICAgICBjbG91ZFByb3ZpZGVycyA9IFtdXG4gICAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgICAgY29uc3QgZGltZW5zaW9ucyA9IHRoaXMuc3RhdGUuZGltZW5zaW9ucyB8fCB7d2lkdGgsIGhlaWdodH07XG4gICAgICBjb25zdCB7XG4gICAgICAgIHNwbGl0TWFwcywgLy8gdGhpcyB3aWxsIHN0b3JlIHN1cHBvcnQgZm9yIHNwbGl0IG1hcCB2aWV3IGlzIG5lY2Vzc2FyeVxuICAgICAgICBpbnRlcmFjdGlvbkNvbmZpZ1xuICAgICAgfSA9IHZpc1N0YXRlO1xuXG4gICAgICBjb25zdCBpc1NwbGl0ID0gaXNTcGxpdFNlbGVjdG9yKHRoaXMucHJvcHMpO1xuICAgICAgY29uc3QgdGhlbWUgPSB0aGlzLmF2YWlsYWJsZVRoZW1lU2VsZWN0b3IodGhpcy5wcm9wcyk7XG4gICAgICBjb25zdCBsb2NhbGVNZXNzYWdlcyA9IHRoaXMubG9jYWxlTWVzc2FnZXNTZWxlY3Rvcih0aGlzLnByb3BzKTtcbiAgICAgIGNvbnN0IGlzRXhwb3J0aW5nSW1hZ2UgPSB1aVN0YXRlLmV4cG9ydEltYWdlLmV4cG9ydGluZztcbiAgICAgIGNvbnN0IGF2YWlsYWJsZVByb3ZpZGVycyA9IHRoaXMuYXZhaWxhYmxlUHJvdmlkZXJzKHRoaXMucHJvcHMpO1xuXG4gICAgICBjb25zdCBmaWx0ZXJlZERhdGFzZXRzID0gdGhpcy5maWx0ZXJlZERhdGFzZXRzU2VsZWN0b3IodGhpcy5wcm9wcyk7XG4gICAgICBjb25zdCBzaWRlRmllbGRzID0gc2lkZVBhbmVsU2VsZWN0b3IodGhpcy5wcm9wcywgYXZhaWxhYmxlUHJvdmlkZXJzLCBmaWx0ZXJlZERhdGFzZXRzKTtcbiAgICAgIGNvbnN0IHBsb3RDb250YWluZXJGaWVsZHMgPSBwbG90Q29udGFpbmVyU2VsZWN0b3IodGhpcy5wcm9wcyk7XG4gICAgICBjb25zdCBib3R0b21XaWRnZXRGaWVsZHMgPSBib3R0b21XaWRnZXRTZWxlY3Rvcih0aGlzLnByb3BzLCB0aGVtZSk7XG4gICAgICBjb25zdCBtb2RhbENvbnRhaW5lckZpZWxkcyA9IG1vZGFsQ29udGFpbmVyU2VsZWN0b3IodGhpcy5wcm9wcywgdGhpcy5yb290LmN1cnJlbnQpO1xuICAgICAgY29uc3QgZ2VvQ29kZXJQYW5lbEZpZWxkcyA9IGdlb0NvZGVyUGFuZWxTZWxlY3Rvcih0aGlzLnByb3BzLCBkaW1lbnNpb25zKTtcbiAgICAgIGNvbnN0IG5vdGlmaWNhdGlvblBhbmVsRmllbGRzID0gbm90aWZpY2F0aW9uUGFuZWxTZWxlY3Rvcih0aGlzLnByb3BzKTtcblxuICAgICAgY29uc3QgbWFwQ29udGFpbmVycyA9ICFpc1NwbGl0XG4gICAgICAgID8gW1xuICAgICAgICAgICAgPE1hcENvbnRhaW5lclxuICAgICAgICAgICAgICBwcmltYXJ5PXt0cnVlfVxuICAgICAgICAgICAgICBrZXk9ezB9XG4gICAgICAgICAgICAgIGluZGV4PXswfVxuICAgICAgICAgICAgICB7Li4ubWFwRmllbGRzU2VsZWN0b3IodGhpcy5wcm9wcyl9XG4gICAgICAgICAgICAgIGNvbnRhaW5lcklkPXswfVxuICAgICAgICAgICAgICBkZWxldGVNYXBMYWJlbHM9e3RoaXMuX2RlbGV0ZU1hcExhYmVsc31cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgXVxuICAgICAgICA6IHNwbGl0TWFwcy5tYXAoKHNldHRpbmdzLCBpbmRleCkgPT4gKFxuICAgICAgICAgICAgPE1hcENvbnRhaW5lclxuICAgICAgICAgICAgICBrZXk9e2luZGV4fVxuICAgICAgICAgICAgICBpbmRleD17aW5kZXh9XG4gICAgICAgICAgICAgIHByaW1hcnk9e2luZGV4ID09PSAxfVxuICAgICAgICAgICAgICB7Li4ubWFwRmllbGRzU2VsZWN0b3IodGhpcy5wcm9wcywgaW5kZXgpfVxuICAgICAgICAgICAgICBjb250YWluZXJJZD17aW5kZXh9XG4gICAgICAgICAgICAgIGRlbGV0ZU1hcExhYmVscz17dGhpcy5fZGVsZXRlTWFwTGFiZWxzfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApKTtcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFJvb3RDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXt0aGlzLnJvb3R9PlxuICAgICAgICAgIDxGZWF0dXJlRmxhZ3NDb250ZXh0UHJvdmlkZXIgZmVhdHVyZUZsYWdzPXtmZWF0dXJlRmxhZ3N9PlxuICAgICAgICAgICAgPEludGxQcm92aWRlciBsb2NhbGU9e3VpU3RhdGUubG9jYWxlfSBtZXNzYWdlcz17bG9jYWxlTWVzc2FnZXNbdWlTdGF0ZS5sb2NhbGVdfT5cbiAgICAgICAgICAgICAgPFN0eWxlU2hlZXRNYW5hZ2VyIHNob3VsZEZvcndhcmRQcm9wPXtzaG91bGRGb3J3YXJkUHJvcH0+XG4gICAgICAgICAgICAgICAgPFRoZW1lUHJvdmlkZXIgdGhlbWU9e3RoZW1lfT5cbiAgICAgICAgICAgICAgICAgIDxDbG91ZExpc3RQcm92aWRlciBwcm92aWRlcnM9e2Nsb3VkUHJvdmlkZXJzfT5cbiAgICAgICAgICAgICAgICAgICAgPEdsb2JhbFN0eWxlXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwia2VwbGVyLWdsXCJcbiAgICAgICAgICAgICAgICAgICAgICBpZD17YGtlcGxlci1nbF9fJHtpZH1gfVxuICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiAncmVsYXRpdmUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGAke3dpZHRofXB4YCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogYCR7aGVpZ2h0fXB4YFxuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgcmVmPXt0aGlzLnJvb3R9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8Tm90aWZpY2F0aW9uUGFuZWwgey4uLm5vdGlmaWNhdGlvblBhbmVsRmllbGRzfSAvPlxuICAgICAgICAgICAgICAgICAgICAgIDxSZW1vdGVEYXRhc2V0UmVmcmVzaENvbnRyb2xsZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFzZXRzPXt2aXNTdGF0ZS5kYXRhc2V0c31cbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZnJlc2hEYXRhc2V0PXt0aGlzLnByb3BzLnZpc1N0YXRlQWN0aW9ucy5yZWZyZXNoRGF0YXNldH1cbiAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgIDxEbmRDb250ZXh0IHZpc1N0YXRlPXt2aXNTdGF0ZX0+XG4gICAgICAgICAgICAgICAgICAgICAgICB7IXVpU3RhdGUucmVhZE9ubHkgJiYgIXJlYWRPbmx5ICYmIDxTaWRlUGFuZWwgey4uLnNpZGVGaWVsZHN9IC8+fVxuICAgICAgICAgICAgICAgICAgICAgICAgPE1hcHNMYXlvdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwibWFwc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG1hcFN0YXRlPXt0aGlzLnByb3BzLm1hcFN0YXRlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvblNldFN3aXBlQ29tcGFyZVBlcmNlbnRhZ2U9e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHMubWFwU3RhdGVBY3Rpb25zLnNldFN3aXBlQ29tcGFyZVBlcmNlbnRhZ2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICB7bWFwQ29udGFpbmVyc31cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvTWFwc0xheW91dD5cbiAgICAgICAgICAgICAgICAgICAgICA8L0RuZENvbnRleHQ+XG4gICAgICAgICAgICAgICAgICAgICAge2lzRXhwb3J0aW5nSW1hZ2UgJiYgPFBsb3RDb250YWluZXIgey4uLnBsb3RDb250YWluZXJGaWVsZHN9IC8+fVxuICAgICAgICAgICAgICAgICAgICAgIHsvKiAxIGdlb2NvZGVyOiBzaW5nbGUgbW9kZSBPUiBzcGxpdCBtb2RlIGFuZCBzeW5jZWQgdmlld3BvcnRzICovfVxuICAgICAgICAgICAgICAgICAgICAgIHshaXNWaWV3cG9ydERpc2pvaW50ZWQodGhpcy5wcm9wcykgJiYgaW50ZXJhY3Rpb25Db25maWcuZ2VvY29kZXIuZW5hYmxlZCAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8R2VvQ29kZXJQYW5lbFxuICAgICAgICAgICAgICAgICAgICAgICAgICB7Li4uZ2VvQ29kZXJQYW5lbEZpZWxkc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg9ezB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHVuc3luY2VkVmlld3BvcnRzPXtmYWxzZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICB7LyogMiBnZW9jb2RlcnM6IHNwbGl0IG1vZGUgYW5kIHVuc3luY2VkIHZpZXdwb3J0cyAqL31cbiAgICAgICAgICAgICAgICAgICAgICB7aXNWaWV3cG9ydERpc2pvaW50ZWQodGhpcy5wcm9wcykgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGludGVyYWN0aW9uQ29uZmlnLmdlb2NvZGVyLmVuYWJsZWQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcENvbnRhaW5lcnMubWFwKChfbWFwQ29udGFpbmVyLCBpbmRleCkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICA8R2VvQ29kZXJQYW5lbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17aW5kZXh9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgey4uLmdlb0NvZGVyUGFuZWxGaWVsZHN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg9e2luZGV4fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc3luY2VkVmlld3BvcnRzPXt0cnVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgICAgICAgPEJvdHRvbVdpZGdldE91dGVyIGFic29sdXRlPXshaGFzUG9ydGFibGVXaWR0aChicmVha1BvaW50VmFsdWVzKX0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8Qm90dG9tV2lkZ2V0XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJvb3RSZWY9e3RoaXMuYm90dG9tV2lkZ2V0UmVmfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB7Li4uYm90dG9tV2lkZ2V0RmllbGRzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXJXPXtkaW1lbnNpb25zLndpZHRofVxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVtZT17dGhlbWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgIDwvQm90dG9tV2lkZ2V0T3V0ZXI+XG4gICAgICAgICAgICAgICAgICAgICAgPE1vZGFsQ29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICB7Li4ubW9kYWxDb250YWluZXJGaWVsZHN9XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXJXPXtkaW1lbnNpb25zLndpZHRofVxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVySD17ZGltZW5zaW9ucy5oZWlnaHR9XG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9HbG9iYWxTdHlsZT5cbiAgICAgICAgICAgICAgICAgIDwvQ2xvdWRMaXN0UHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgPC9UaGVtZVByb3ZpZGVyPlxuICAgICAgICAgICAgICA8L1N0eWxlU2hlZXRNYW5hZ2VyPlxuICAgICAgICAgICAgPC9JbnRsUHJvdmlkZXI+XG4gICAgICAgICAgPC9GZWF0dXJlRmxhZ3NDb250ZXh0UHJvdmlkZXI+XG4gICAgICAgIDwvUm9vdENvbnRleHQuUHJvdmlkZXI+XG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBrZXBsZXJHbENvbm5lY3QoXG4gICAgbWFwU3RhdGVUb1Byb3BzLFxuICAgIG1ha2VNYXBEaXNwYXRjaFRvUHJvcHNcbiAgKSh3aXRoVGhlbWUoS2VwbGVyR0wpKSBhcyBSZXR1cm5UeXBlPHR5cGVvZiBLZXBsZXJHbEZhY3Rvcnk+O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWFwU3RhdGVUb1Byb3BzKHN0YXRlOiBLZXBsZXJHbFN0YXRlLCBwcm9wczogS2VwbGVyR0xQcm9wcykge1xuICByZXR1cm4ge1xuICAgIC4uLnByb3BzLFxuICAgIHZpc1N0YXRlOiBzdGF0ZS52aXNTdGF0ZSxcbiAgICBtYXBTdHlsZTogc3RhdGUubWFwU3R5bGUsXG4gICAgbWFwU3RhdGU6IHN0YXRlLm1hcFN0YXRlLFxuICAgIHVpU3RhdGU6IHN0YXRlLnVpU3RhdGUsXG4gICAgcHJvdmlkZXJTdGF0ZTogc3RhdGUucHJvdmlkZXJTdGF0ZVxuICB9O1xufVxuXG5jb25zdCBkZWZhdWx0VXNlckFjdGlvbnMgPSB7fTtcblxuY29uc3QgZ2V0RGlzcGF0Y2ggPSBkaXNwYXRjaCA9PiBkaXNwYXRjaDtcbmNvbnN0IGdldFVzZXJBY3Rpb25zID0gKGRpc3BhdGNoLCBwcm9wcykgPT4gcHJvcHMuYWN0aW9ucyB8fCBkZWZhdWx0VXNlckFjdGlvbnM7XG5cbi8qKiBAdHlwZSB7KCkgPT4gaW1wb3J0KCdyZXNlbGVjdCcpLk91dHB1dFBhcmFtZXRyaWNTZWxlY3RvcjxhbnksIGFueSwgYW55LCBhbnk+fSAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1ha2VHZXRBY3Rpb25DcmVhdG9ycygpIHtcbiAgcmV0dXJuIGNyZWF0ZVNlbGVjdG9yKFtnZXREaXNwYXRjaCwgZ2V0VXNlckFjdGlvbnNdLCAoZGlzcGF0Y2gsIHVzZXJBY3Rpb25zKSA9PiB7XG4gICAgY29uc3QgW3Zpc1N0YXRlQWN0aW9ucywgbWFwU3RhdGVBY3Rpb25zLCBtYXBTdHlsZUFjdGlvbnMsIHVpU3RhdGVBY3Rpb25zLCBwcm92aWRlckFjdGlvbnNdID0gW1xuICAgICAgVmlzU3RhdGVBY3Rpb25zLFxuICAgICAgTWFwU3RhdGVBY3Rpb25zLFxuICAgICAgTWFwU3R5bGVBY3Rpb25zLFxuICAgICAgVUlTdGF0ZUFjdGlvbnMsXG4gICAgICBQcm92aWRlckFjdGlvbnNcbiAgICBdLm1hcChhY3Rpb25zID0+IGJpbmRBY3Rpb25DcmVhdG9ycyhtZXJnZUFjdGlvbnMoYWN0aW9ucywgdXNlckFjdGlvbnMpLCBkaXNwYXRjaCkpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHZpc1N0YXRlQWN0aW9ucyxcbiAgICAgIG1hcFN0YXRlQWN0aW9ucyxcbiAgICAgIG1hcFN0eWxlQWN0aW9ucyxcbiAgICAgIHVpU3RhdGVBY3Rpb25zLFxuICAgICAgcHJvdmlkZXJBY3Rpb25zLFxuICAgICAgZGlzcGF0Y2hcbiAgICB9O1xuICB9KTtcbn1cblxuZnVuY3Rpb24gbWFrZU1hcERpc3BhdGNoVG9Qcm9wcygpIHtcbiAgY29uc3QgZ2V0QWN0aW9uQ3JlYXRvcnMgPSBtYWtlR2V0QWN0aW9uQ3JlYXRvcnMoKTtcbiAgY29uc3QgbWFwRGlzcGF0Y2hUb1Byb3BzID0gKGRpc3BhdGNoLCBvd25Qcm9wcykgPT4ge1xuICAgIGNvbnN0IGdyb3VwZWRBY3Rpb25DcmVhdG9ycyA9IGdldEFjdGlvbkNyZWF0b3JzKGRpc3BhdGNoLCBvd25Qcm9wcyk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uZ3JvdXBlZEFjdGlvbkNyZWF0b3JzLFxuICAgICAgZGlzcGF0Y2hcbiAgICB9O1xuICB9O1xuXG4gIHJldHVybiBtYXBEaXNwYXRjaFRvUHJvcHM7XG59XG5cbi8qKlxuICogT3ZlcnJpZGUgZGVmYXVsdCBrZXBsZXIuZ2wgYWN0aW9ucyB3aXRoIHVzZXIgZGVmaW5lZCBhY3Rpb25zIHVzaW5nIHRoZSBzYW1lIGtleVxuICovXG5mdW5jdGlvbiBtZXJnZUFjdGlvbnMoYWN0aW9ucywgdXNlckFjdGlvbnMpIHtcbiAgY29uc3Qgb3ZlcnJpZGVzID0ge307XG4gIGZvciAoY29uc3Qga2V5IGluIHVzZXJBY3Rpb25zKSB7XG4gICAgaWYgKFxuICAgICAgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHVzZXJBY3Rpb25zLCBrZXkpICYmXG4gICAgICBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYWN0aW9ucywga2V5KVxuICAgICkge1xuICAgICAgb3ZlcnJpZGVzW2tleV0gPSB1c2VyQWN0aW9uc1trZXldO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7Li4uYWN0aW9ucywgLi4ub3ZlcnJpZGVzfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgS2VwbGVyR2xGYWN0b3J5O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBR0EsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsUUFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsTUFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksaUJBQUEsR0FBQUwsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFLLFNBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLGdCQUFBLEdBQUFOLE9BQUE7QUFDQSxJQUFBTyxVQUFBLEdBQUFQLE9BQUE7QUFDQSxJQUFBUSxhQUFBLEdBQUFSLE9BQUE7QUFDQSxJQUFBUyxRQUFBLEdBQUFULE9BQUE7QUFVQSxJQUFBVSxRQUFBLEdBQUFWLE9BQUE7QUFRQSxJQUFBVyxZQUFBLEdBQUFYLE9BQUE7QUFFQSxJQUFBWSxrQkFBQSxHQUFBWixPQUFBO0FBVUEsSUFBQWEsVUFBQSxHQUFBYixPQUFBO0FBVUEsSUFBQWMs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
|
|
@@ -4,25 +4,34 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.StyledWarning = exports.StyledExportMapSection = exports.StyledExportLink = exports.ExportMapLink = void 0;
|
|
7
|
+
exports.StyledWarning = exports.StyledExportMapSection = exports.StyledExportMapNote = exports.StyledExportMapModalContent = exports.StyledExportMapFormatPanels = exports.StyledExportMapFormatPanel = exports.StyledExportLink = exports.ExportMapLink = void 0;
|
|
8
8
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
9
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
10
10
|
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
11
11
|
var _react = _interopRequireDefault(require("react"));
|
|
12
12
|
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
13
|
+
var _styles = require("@kepler.gl/styles");
|
|
13
14
|
var _styledComponents2 = require("../../common/styled-components");
|
|
14
15
|
var _excluded = ["children"];
|
|
15
|
-
var _templateObject, _templateObject2, _templateObject3; // SPDX-License-Identifier: MIT
|
|
16
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8; // SPDX-License-Identifier: MIT
|
|
16
17
|
// Copyright contributors to the kepler.gl project
|
|
17
|
-
var
|
|
18
|
-
|
|
18
|
+
var StyledExportMapModalContent = exports.StyledExportMapModalContent = (0, _styledComponents["default"])(_styledComponents2.StyledModalContent)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n padding-top: 12px;\n padding-bottom: 12px;\n\n ", ";\n"])), _styles.media.portable(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n padding-top: 8px;\n padding-bottom: 8px;\n "]))));
|
|
19
|
+
var StyledExportMapSection = exports.StyledExportMapSection = (0, _styledComponents["default"])(_styledComponents2.StyledExportSection)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n margin: 8px 0 12px;\n"])));
|
|
20
|
+
var StyledExportMapNote = exports.StyledExportMapNote = _styledComponents["default"].p(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n font-size: 12px;\n line-height: 1.4;\n margin: 0 0 8px;\n"])), function (props) {
|
|
21
|
+
return props.theme.textColorLT;
|
|
19
22
|
});
|
|
20
|
-
var
|
|
23
|
+
var StyledExportMapFormatPanels = exports.StyledExportMapFormatPanels = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n display: grid;\n"])));
|
|
24
|
+
var StyledExportMapFormatPanel = exports.StyledExportMapFormatPanel = _styledComponents["default"].div(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n grid-area: 1 / 1;\n overflow: hidden;\n visibility: ", ";\n pointer-events: ", ";\n"])), function (props) {
|
|
25
|
+
return props.$active ? 'visible' : 'hidden';
|
|
26
|
+
}, function (props) {
|
|
27
|
+
return props.$active ? 'auto' : 'none';
|
|
28
|
+
});
|
|
29
|
+
var StyledWarning = exports.StyledWarning = _styledComponents["default"].span(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n font-weight: ", ";\n"])), function (props) {
|
|
21
30
|
return props.theme.errorColor;
|
|
22
31
|
}, function (props) {
|
|
23
32
|
return props.theme.selectFontWeightBold;
|
|
24
33
|
});
|
|
25
|
-
var StyledExportLink = exports.StyledExportLink = _styledComponents["default"].a(
|
|
34
|
+
var StyledExportLink = exports.StyledExportLink = _styledComponents["default"].a(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["\n text-decoration-line: underline !important;\n"])));
|
|
26
35
|
var ExportMapLink = exports.ExportMapLink = function ExportMapLink(_ref) {
|
|
27
36
|
var children = _ref.children,
|
|
28
37
|
props = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
|
|
@@ -31,4 +40,4 @@ var ExportMapLink = exports.ExportMapLink = function ExportMapLink(_ref) {
|
|
|
31
40
|
rel: "noopener noreferrer"
|
|
32
41
|
}, props), children);
|
|
33
42
|
};
|
|
34
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
43
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9zdHlsZWRDb21wb25lbnRzIiwiX3N0eWxlcyIsIl9zdHlsZWRDb21wb25lbnRzMiIsIl9leGNsdWRlZCIsIl90ZW1wbGF0ZU9iamVjdCIsIl90ZW1wbGF0ZU9iamVjdDIiLCJfdGVtcGxhdGVPYmplY3QzIiwiX3RlbXBsYXRlT2JqZWN0NCIsIl90ZW1wbGF0ZU9iamVjdDUiLCJfdGVtcGxhdGVPYmplY3Q2IiwiX3RlbXBsYXRlT2JqZWN0NyIsIl90ZW1wbGF0ZU9iamVjdDgiLCJTdHlsZWRFeHBvcnRNYXBNb2RhbENvbnRlbnQiLCJleHBvcnRzIiwic3R5bGVkIiwiU3R5bGVkTW9kYWxDb250ZW50IiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbDIiLCJtZWRpYSIsInBvcnRhYmxlIiwiU3R5bGVkRXhwb3J0TWFwU2VjdGlvbiIsIlN0eWxlZEV4cG9ydFNlY3Rpb24iLCJTdHlsZWRFeHBvcnRNYXBOb3RlIiwicCIsInByb3BzIiwidGhlbWUiLCJ0ZXh0Q29sb3JMVCIsIlN0eWxlZEV4cG9ydE1hcEZvcm1hdFBhbmVscyIsImRpdiIsIlN0eWxlZEV4cG9ydE1hcEZvcm1hdFBhbmVsIiwiJGFjdGl2ZSIsIlN0eWxlZFdhcm5pbmciLCJzcGFuIiwiZXJyb3JDb2xvciIsInNlbGVjdEZvbnRXZWlnaHRCb2xkIiwiU3R5bGVkRXhwb3J0TGluayIsImEiLCJFeHBvcnRNYXBMaW5rIiwiX3JlZiIsImNoaWxkcmVuIiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzMiIsImNyZWF0ZUVsZW1lbnQiLCJfZXh0ZW5kczIiLCJ0YXJnZXQiLCJyZWwiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbW9kYWxzL2V4cG9ydC1tYXAtbW9kYWwvY29tcG9uZW50cy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IHttZWRpYX0gZnJvbSAnQGtlcGxlci5nbC9zdHlsZXMnO1xuaW1wb3J0IHtTdHlsZWRFeHBvcnRTZWN0aW9uLCBTdHlsZWRNb2RhbENvbnRlbnR9IGZyb20gJy4uLy4uL2NvbW1vbi9zdHlsZWQtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBjb25zdCBTdHlsZWRFeHBvcnRNYXBNb2RhbENvbnRlbnQgPSBzdHlsZWQoU3R5bGVkTW9kYWxDb250ZW50KWBcbiAgcGFkZGluZy10b3A6IDEycHg7XG4gIHBhZGRpbmctYm90dG9tOiAxMnB4O1xuXG4gICR7bWVkaWEucG9ydGFibGVgXG4gICAgcGFkZGluZy10b3A6IDhweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogOHB4O1xuICBgfTtcbmA7XG5cbmV4cG9ydCBjb25zdCBTdHlsZWRFeHBvcnRNYXBTZWN0aW9uID0gc3R5bGVkKFN0eWxlZEV4cG9ydFNlY3Rpb24pYFxuICBtYXJnaW46IDhweCAwIDEycHg7XG5gO1xuXG5leHBvcnQgY29uc3QgU3R5bGVkRXhwb3J0TWFwTm90ZSA9IHN0eWxlZC5wYFxuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS50ZXh0Q29sb3JMVH07XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgbWFyZ2luOiAwIDAgOHB4O1xuYDtcblxuZXhwb3J0IGNvbnN0IFN0eWxlZEV4cG9ydE1hcEZvcm1hdFBhbmVscyA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGdyaWQ7XG5gO1xuXG5leHBvcnQgY29uc3QgU3R5bGVkRXhwb3J0TWFwRm9ybWF0UGFuZWwgPSBzdHlsZWQuZGl2PHskYWN0aXZlOiBib29sZWFufT5gXG4gIGdyaWQtYXJlYTogMSAvIDE7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHZpc2liaWxpdHk6ICR7cHJvcHMgPT4gKHByb3BzLiRhY3RpdmUgPyAndmlzaWJsZScgOiAnaGlkZGVuJyl9O1xuICBwb2ludGVyLWV2ZW50czogJHtwcm9wcyA9PiAocHJvcHMuJGFjdGl2ZSA/ICdhdXRvJyA6ICdub25lJyl9O1xuYDtcblxuZXhwb3J0IGNvbnN0IFN0eWxlZFdhcm5pbmcgPSBzdHlsZWQuc3BhbmBcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZXJyb3JDb2xvcn07XG4gIGZvbnQtd2VpZ2h0OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnNlbGVjdEZvbnRXZWlnaHRCb2xkfTtcbmA7XG5cbmV4cG9ydCBjb25zdCBTdHlsZWRFeHBvcnRMaW5rID0gc3R5bGVkLmFgXG4gIHRleHQtZGVjb3JhdGlvbi1saW5lOiB1bmRlcmxpbmUgIWltcG9ydGFudDtcbmA7XG5cbmV4cG9ydCBjb25zdCBFeHBvcnRNYXBMaW5rID0gKHtjaGlsZHJlbiwgLi4ucHJvcHN9KSA9PiAoXG4gIDxTdHlsZWRFeHBvcnRMaW5rIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIiB7Li4ucHJvcHN9PlxuICAgIHtjaGlsZHJlbn1cbiAgPC9TdHlsZWRFeHBvcnRMaW5rPlxuKTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUdBLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLGlCQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRSxPQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxrQkFBQSxHQUFBSCxPQUFBO0FBQXVGLElBQUFJLFNBQUE7QUFBQSxJQUFBQyxlQUFBLEVBQUFDLGdCQUFBLEVBQUFDLGdCQUFBLEVBQUFDLGdCQUFBLEVBQUFDLGdCQUFBLEVBQUFDLGdCQUFBLEVBQUFDLGdCQUFBLEVBQUFDLGdCQUFBLEVBTnZGO0FBQ0E7QUFPTyxJQUFNQywyQkFBMkIsR0FBQUMsT0FBQSxDQUFBRCwyQkFBQSxHQUFHLElBQUFFLDRCQUFNLEVBQUNDLHFDQUFrQixDQUFDLENBQUFYLGVBQUEsS0FBQUEsZUFBQSxPQUFBWSx1QkFBQSxpRkFJakVDLGFBQUssQ0FBQ0MsUUFBUSxDQUFBYixnQkFBQSxLQUFBQSxnQkFBQSxPQUFBVyx1QkFBQSwwRUFJakI7QUFFTSxJQUFNRyxzQkFBc0IsR0FBQU4sT0FBQSxDQUFBTSxzQkFBQSxHQUFHLElBQUFMLDRCQUFNLEVBQUNNLHNDQUFtQixDQUFDLENBQUFkLGdCQUFBLEtBQUFBLGdCQUFBLE9BQUFVLHVCQUFBLDZDQUVoRTtBQUVNLElBQU1LLG1CQUFtQixHQUFBUixPQUFBLENBQUFRLG1CQUFBLEdBQUdQLDRCQUFNLENBQUNRLENBQUMsQ0FBQWYsZ0JBQUEsS0FBQUEsZ0JBQUEsT0FBQVMsdUJBQUEsb0dBQ2hDLFVBQUFPLEtBQUs7RUFBQSxPQUFJQSxLQUFLLENBQUNDLEtBQUssQ0FBQ0MsV0FBVztBQUFBLEVBSTFDO0FBRU0sSUFBTUMsMkJBQTJCLEdBQUFiLE9BQUEsQ0FBQWEsMkJBQUEsR0FBR1osNEJBQU0sQ0FBQ2EsR0FBRyxDQUFBbkIsZ0JBQUEsS0FBQUEsZ0JBQUEsT0FBQVEsdUJBQUEsd0NBRXBEO0FBRU0sSUFBTVksMEJBQTBCLEdBQUFmLE9BQUEsQ0FBQWUsMEJBQUEsR0FBR2QsNEJBQU0sQ0FBQ2EsR0FBRyxDQUFBbEIsZ0JBQUEsS0FBQUEsZ0JBQUEsT0FBQU8sdUJBQUEsK0dBR3BDLFVBQUFPLEtBQUs7RUFBQSxPQUFLQSxLQUFLLENBQUNNLE9BQU8sR0FBRyxTQUFTLEdBQUcsUUFBUTtBQUFBLENBQUMsRUFDM0MsVUFBQU4sS0FBSztFQUFBLE9BQUtBLEtBQUssQ0FBQ00sT0FBTyxHQUFHLE1BQU0sR0FBRyxNQUFNO0FBQUEsQ0FBQyxDQUM3RDtBQUVNLElBQU1DLGFBQWEsR0FBQWpCLE9BQUEsQ0FBQWlCLGFBQUEsR0FBR2hCLDRCQUFNLENBQUNpQixJQUFJLENBQUFyQixnQkFBQSxLQUFBQSxnQkFBQSxPQUFBTSx1QkFBQSw2REFDN0IsVUFBQU8sS0FBSztFQUFBLE9BQUlBLEtBQUssQ0FBQ0MsS0FBSyxDQUFDUSxVQUFVO0FBQUEsR0FDekIsVUFBQVQsS0FBSztFQUFBLE9BQUlBLEtBQUssQ0FBQ0MsS0FBSyxDQUFDUyxvQkFBb0I7QUFBQSxFQUN6RDtBQUVNLElBQU1DLGdCQUFnQixHQUFBckIsT0FBQSxDQUFBcUIsZ0JBQUEsR0FBR3BCLDRCQUFNLENBQUNxQixDQUFDLENBQUF4QixnQkFBQSxLQUFBQSxnQkFBQSxPQUFBSyx1QkFBQSxxRUFFdkM7QUFFTSxJQUFNb0IsYUFBYSxHQUFBdkIsT0FBQSxDQUFBdUIsYUFBQSxHQUFHLFNBQWhCQSxhQUFhQSxDQUFBQyxJQUFBO0VBQUEsSUFBS0MsUUFBUSxHQUFBRCxJQUFBLENBQVJDLFFBQVE7SUFBS2YsS0FBSyxPQUFBZ0IseUJBQUEsYUFBQUYsSUFBQSxFQUFBbEMsU0FBQTtFQUFBLG9CQUMvQ04sTUFBQSxZQUFBMkMsYUFBQSxDQUFDTixnQkFBZ0IsTUFBQU8sU0FBQTtJQUFDQyxNQUFNLEVBQUMsUUFBUTtJQUFDQyxHQUFHLEVBQUM7RUFBcUIsR0FBS3BCLEtBQUssR0FDbEVlLFFBQ2UsQ0FBQztBQUFBLENBQ3BCIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -15,7 +15,7 @@ var _reactIntl = require("react-intl");
|
|
|
15
15
|
var _localization = require("@kepler.gl/localization");
|
|
16
16
|
var _templateObject, _templateObject2, _templateObject3; // SPDX-License-Identifier: MIT
|
|
17
17
|
// Copyright contributors to the kepler.gl project
|
|
18
|
-
var ExportMapStyledExportSection = (0, _styledComponents2["default"])(_styledComponents.StyledExportSection)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n .disclaimer {\n font-size: ", ";\n color: ", ";\n margin-top:
|
|
18
|
+
var ExportMapStyledExportSection = (0, _styledComponents2["default"])(_styledComponents.StyledExportSection)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n margin: 8px 0 12px;\n\n &.export-map-modal__html-options {\n margin-top: 20px;\n }\n\n .disclaimer {\n font-size: ", ";\n color: ", ";\n line-height: 1.35;\n margin-top: 8px;\n }\n"])), function (props) {
|
|
19
19
|
return props.theme.inputFontSize;
|
|
20
20
|
}, function (props) {
|
|
21
21
|
return props.theme.inputColor;
|
|
@@ -29,7 +29,7 @@ var StyledInput = _styledComponents2["default"].input(_templateObject2 || (_temp
|
|
|
29
29
|
}, function (props) {
|
|
30
30
|
return props.theme.inputFontSize;
|
|
31
31
|
});
|
|
32
|
-
var BigStyledTile = (0, _styledComponents2["default"])(_styledComponents.StyledType)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n height: unset;\n width: unset;\n img {\n width:
|
|
32
|
+
var BigStyledTile = (0, _styledComponents2["default"])(_styledComponents.StyledType)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n height: unset;\n width: unset;\n padding: 6px;\n img {\n width: 120px;\n height: 80px;\n }\n p {\n font-size: 11px;\n line-height: 1.3;\n margin: 6px 0 0;\n }\n"])));
|
|
33
33
|
function ExportHtmlMapFactory() {
|
|
34
34
|
/** @type {typeof import('./export-html-map').ExportHtmlMap} */
|
|
35
35
|
var ExportHtmlMap = function ExportHtmlMap(_ref) {
|
|
@@ -44,13 +44,9 @@ function ExportHtmlMapFactory() {
|
|
|
44
44
|
_ref$options = _ref.options,
|
|
45
45
|
options = _ref$options === void 0 ? {} : _ref$options,
|
|
46
46
|
intl = _ref.intl;
|
|
47
|
-
return /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(_components.
|
|
48
|
-
className: "description"
|
|
49
|
-
}), /*#__PURE__*/_react["default"].createElement("div", {
|
|
50
|
-
className: "selection"
|
|
51
|
-
}, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
|
|
47
|
+
return /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(_components.StyledExportMapNote, null, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
|
|
52
48
|
id: 'modal.exportMap.html.selection'
|
|
53
|
-
}))
|
|
49
|
+
})), /*#__PURE__*/_react["default"].createElement(ExportMapStyledExportSection, {
|
|
54
50
|
className: "export-map-modal__html-options"
|
|
55
51
|
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
56
52
|
className: "description"
|
|
@@ -125,4 +121,4 @@ function ExportHtmlMapFactory() {
|
|
|
125
121
|
return (0, _reactIntl.injectIntl)(ExportHtmlMap);
|
|
126
122
|
}
|
|
127
123
|
var _default = exports["default"] = ExportHtmlMapFactory;
|
|
128
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9zdHlsZWRDb21wb25lbnRzIiwiX2NvbXBvbmVudHMiLCJfY29uc3RhbnRzIiwiX3N0eWxlZENvbXBvbmVudHMyIiwiX3JlYWN0SW50bCIsIl9sb2NhbGl6YXRpb24iLCJfdGVtcGxhdGVPYmplY3QiLCJfdGVtcGxhdGVPYmplY3QyIiwiX3RlbXBsYXRlT2JqZWN0MyIsIkV4cG9ydE1hcFN0eWxlZEV4cG9ydFNlY3Rpb24iLCJzdHlsZWQiLCJTdHlsZWRFeHBvcnRTZWN0aW9uIiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbDIiLCJwcm9wcyIsInRoZW1lIiwiaW5wdXRGb250U2l6ZSIsImlucHV0Q29sb3IiLCJTdHlsZWRJbnB1dCIsImlucHV0IiwiaW5wdXRQYWRkaW5nIiwiZXJyb3IiLCJ0aXRsZUNvbG9yTFQiLCJpbnB1dEJveEhlaWdodCIsIkJpZ1N0eWxlZFRpbGUiLCJTdHlsZWRUeXBlIiwiRXhwb3J0SHRtbE1hcEZhY3RvcnkiLCJFeHBvcnRIdG1sTWFwIiwiX3JlZiIsIl9yZWYkb25DaGFuZ2VFeHBvcnRNYSIsIm9uQ2hhbmdlRXhwb3J0TWFwSFRNTE1vZGUiLCJfcmVmJG9uRWRpdFVzZXJNYXBib3giLCJvbkVkaXRVc2VyTWFwYm94QWNjZXNzVG9rZW4iLCJfcmVmJG9wdGlvbnMiLCJvcHRpb25zIiwiaW50bCIsImNyZWF0ZUVsZW1lbnQiLCJTdHlsZWRFeHBvcnRNYXBTZWN0aW9uIiwiY2xhc3NOYW1lIiwiRm9ybWF0dGVkTWVzc2FnZSIsImlkIiwib25DaGFuZ2UiLCJlIiwidGFyZ2V0IiwidmFsdWUiLCJ0eXBlIiwicGxhY2Vob2xkZXIiLCJmb3JtYXRNZXNzYWdlIiwidXNlck1hcGJveFRva2VuIiwiU3R5bGVkV2FybmluZyIsIkV4cG9ydE1hcExpbmsiLCJocmVmIiwiRVhQT1JUX0hUTUxfTUFQX0RPQyIsIkVYUE9SVF9IVE1MX01BUF9NT0RFU19ET0MiLCJFWFBPUlRfSFRNTF9NQVBfTU9ERV9PUFRJT05TIiwibWFwIiwibW9kZSIsImtleSIsInNlbGVjdGVkIiwib25DbGljayIsImF2YWlsYWJsZSIsInNyYyIsInVybCIsImFsdCIsInZhbHVlcyIsImxhYmVsIiwiQ2hlY2tNYXJrIiwiZGlzcGxheU5hbWUiLCJpbmplY3RJbnRsIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL21vZGFscy9leHBvcnQtbWFwLW1vZGFsL2V4cG9ydC1odG1sLW1hcC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7U3R5bGVkRXhwb3J0U2VjdGlvbiwgU3R5bGVkVHlwZSwgQ2hlY2tNYXJrfSBmcm9tICcuLi8uLi9jb21tb24vc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IHtTdHlsZWRFeHBvcnRNYXBTZWN0aW9uLCBTdHlsZWRXYXJuaW5nLCBFeHBvcnRNYXBMaW5rfSBmcm9tICcuL2NvbXBvbmVudHMnO1xuaW1wb3J0IHtcbiAgRVhQT1JUX0hUTUxfTUFQX01PREVfT1BUSU9OUyxcbiAgRVhQT1JUX0hUTUxfTUFQX0RPQyxcbiAgRVhQT1JUX0hUTUxfTUFQX01PREVTX0RPQ1xufSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCB7aW5qZWN0SW50bH0gZnJvbSAncmVhY3QtaW50bCc7XG5pbXBvcnQge0Zvcm1hdHRlZE1lc3NhZ2V9IGZyb20gJ0BrZXBsZXIuZ2wvbG9jYWxpemF0aW9uJztcbmltcG9ydCB7SW50bFNoYXBlfSBmcm9tICdyZWFjdC1pbnRsJztcblxuaW1wb3J0IHtzZXRVc2VyTWFwYm94QWNjZXNzVG9rZW4sIHNldEV4cG9ydEhUTUxNYXBNb2RlLCBBY3Rpb25IYW5kbGVyfSBmcm9tICdAa2VwbGVyLmdsL2FjdGlvbnMnO1xuXG5jb25zdCBFeHBvcnRNYXBTdHlsZWRFeHBvcnRTZWN0aW9uID0gc3R5bGVkKFN0eWxlZEV4cG9ydFNlY3Rpb24pYFxuICAuZGlzY2xhaW1lciB7XG4gICAgZm9udC1zaXplOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmlucHV0Rm9udFNpemV9O1xuICAgIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmlucHV0Q29sb3J9O1xuICAgIG1hcmdpbi10b3A6IDEycHg7XG4gIH1cbmA7XG5cbmludGVyZmFjZSBTdHlsZWRJbnB1dFByb3BzIHtcbiAgZXJyb3I/OiBib29sZWFuO1xufVxuXG5jb25zdCBTdHlsZWRJbnB1dCA9IHN0eWxlZC5pbnB1dDxTdHlsZWRJbnB1dFByb3BzPmBcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuaW5wdXRQYWRkaW5nfTtcbiAgY29sb3I6ICR7cHJvcHMgPT4gKHByb3BzLmVycm9yID8gJ3JlZCcgOiBwcm9wcy50aGVtZS50aXRsZUNvbG9yTFQpfTtcbiAgaGVpZ2h0OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmlucHV0Qm94SGVpZ2h0fTtcbiAgb3V0bGluZTogMDtcbiAgZm9udC1zaXplOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmlucHV0Rm9udFNpemV9O1xuXG4gICY6YWN0aXZlLFxuICAmOmZvY3VzLFxuICAmLmZvY3VzLFxuICAmLmFjdGl2ZSB7XG4gICAgb3V0bGluZTogMDtcbiAgfVxuYDtcblxuY29uc3QgQmlnU3R5bGVkVGlsZSA9IHN0eWxlZChTdHlsZWRUeXBlKWBcbiAgaGVpZ2h0OiB1bnNldDtcbiAgd2lkdGg6IHVuc2V0O1xuICBpbWcge1xuICAgIHdpZHRoOiAxODBweDtcbiAgICBoZWlnaHQ6IDEyMHB4O1xuICB9XG5gO1xuXG50eXBlIEV4cG9ydEh0bWxNYXBQcm9wcyA9IHtcbiAgb25DaGFuZ2VFeHBvcnRNYXBIVE1MTW9kZTogQWN0aW9uSGFuZGxlcjx0eXBlb2Ygc2V0RXhwb3J0SFRNTE1hcE1vZGU+O1xuICBvbkVkaXRVc2VyTWFwYm94QWNjZXNzVG9rZW46IEFjdGlvbkhhbmRsZXI8dHlwZW9mIHNldFVzZXJNYXBib3hBY2Nlc3NUb2tlbj47XG4gIG9wdGlvbnM6IHtcbiAgICB1c2VyTWFwYm94VG9rZW4/OiBzdHJpbmc7XG4gICAgbW9kZT86IHN0cmluZztcbiAgfTtcbn07XG5cbnR5cGUgSW50bFByb3BzID0ge1xuICBpbnRsOiBJbnRsU2hhcGU7XG59O1xuXG5mdW5jdGlvbiBFeHBvcnRIdG1sTWFwRmFjdG9yeSgpOiBSZWFjdC5Db21wb25lbnRUeXBlPEV4cG9ydEh0bWxNYXBQcm9wcz4ge1xuICAvKiogQHR5cGUge3R5cGVvZiBpbXBvcnQoJy4vZXhwb3J0LWh0bWwtbWFwJykuRXhwb3J0SHRtbE1hcH0gKi9cbiAgY29uc3QgRXhwb3J0SHRtbE1hcDogUmVhY3QuRkM8RXhwb3J0SHRtbE1hcFByb3BzICYgSW50bFByb3BzPiA9ICh7XG4gICAgb25DaGFuZ2VFeHBvcnRNYXBIVE1MTW9kZSA9ICgpID0+IHtcbiAgICAgIHJldHVybjtcbiAgICB9LFxuICAgIG9uRWRpdFVzZXJNYXBib3hBY2Nlc3NUb2tlbiA9ICgpID0+IHtcbiAgICAgIHJldHVybjtcbiAgICB9LFxuICAgIG9wdGlvbnMgPSB7fSxcbiAgICBpbnRsXG4gIH0pID0+IChcbiAgICA8ZGl2PlxuICAgICAgPFN0eWxlZEV4cG9ydE1hcFNlY3Rpb24+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZGVzY3JpcHRpb25cIiAvPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInNlbGVjdGlvblwiPlxuICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPXsnbW9kYWwuZXhwb3J0TWFwLmh0bWwuc2VsZWN0aW9uJ30gLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L1N0eWxlZEV4cG9ydE1hcFNlY3Rpb24+XG4gICAgICA8RXhwb3J0TWFwU3R5bGVkRXhwb3J0U2VjdGlvbiBjbGFzc05hbWU9XCJleHBvcnQtbWFwLW1vZGFsX19odG1sLW9wdGlvbnNcIj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJkZXNjcmlwdGlvblwiPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGl0bGVcIj5cbiAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPXsnbW9kYWwuZXhwb3J0TWFwLmh0bWwudG9rZW5UaXRsZSd9IC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzdWJ0aXRsZVwiPlxuICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9eydtb2RhbC5leHBvcnRNYXAuaHRtbC50b2tlblN1YnRpdGxlJ30gLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic2VsZWN0aW9uXCI+XG4gICAgICAgICAgPFN0eWxlZElucHV0XG4gICAgICAgICAgICBvbkNoYW5nZT17ZSA9PiBvbkVkaXRVc2VyTWFwYm94QWNjZXNzVG9rZW4oZS50YXJnZXQudmFsdWUpfVxuICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9e2ludGwuZm9ybWF0TWVzc2FnZSh7aWQ6ICdtb2RhbC5leHBvcnRNYXAuaHRtbC50b2tlblBsYWNlaG9sZGVyJ30pfVxuICAgICAgICAgICAgdmFsdWU9e29wdGlvbnMgPyBvcHRpb25zLnVzZXJNYXBib3hUb2tlbiA6ICcnfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJkaXNjbGFpbWVyXCI+XG4gICAgICAgICAgICA8U3R5bGVkV2FybmluZz5cbiAgICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9eydtb2RhbC5leHBvcnRNYXAuaHRtbC50b2tlbk1pc3VzZVdhcm5pbmcnfSAvPlxuICAgICAgICAgICAgPC9TdHlsZWRXYXJuaW5nPlxuICAgICAgICAgICAgPFN0eWxlZFdhcm5pbmc+XG4gICAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPXsnbW9kYWwuZXhwb3J0TWFwLmh0bWwudG9rZW5TZWN1cml0eVdhcm5pbmcnfSAvPlxuICAgICAgICAgICAgPC9TdHlsZWRXYXJuaW5nPlxuICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9eydtb2RhbC5leHBvcnRNYXAuaHRtbC50b2tlbkRpc2NsYWltZXInfSAvPlxuICAgICAgICAgICAgPEV4cG9ydE1hcExpbmsgaHJlZj17RVhQT1JUX0hUTUxfTUFQX0RPQ30+XG4gICAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPXsnbW9kYWwuZXhwb3J0TWFwLmh0bWwudG9rZW5VcGRhdGUnfSAvPlxuICAgICAgICAgICAgPC9FeHBvcnRNYXBMaW5rPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvRXhwb3J0TWFwU3R5bGVkRXhwb3J0U2VjdGlvbj5cbiAgICAgIDxFeHBvcnRNYXBTdHlsZWRFeHBvcnRTZWN0aW9uPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0aXRsZVwiPlxuICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9eydtb2RhbC5leHBvcnRNYXAuaHRtbC5tb2RlVGl0bGUnfSAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic3VidGl0bGVcIj5cbiAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPXsnbW9kYWwuZXhwb3J0TWFwLmh0bWwubW9kZVN1YnRpdGxlMSd9IC8+XG4gICAgICAgICAgICA8YSBocmVmPXtFWFBPUlRfSFRNTF9NQVBfTU9ERVNfRE9DfT5cbiAgICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9eydtb2RhbC5leHBvcnRNYXAuaHRtbC5tb2RlU3VidGl0bGUyJ30gLz5cbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic2VsZWN0aW9uXCI+XG4gICAgICAgICAge0VYUE9SVF9IVE1MX01BUF9NT0RFX09QVElPTlMubWFwKG1vZGUgPT4gKFxuICAgICAgICAgICAgPEJpZ1N0eWxlZFRpbGVcbiAgICAgICAgICAgICAga2V5PXttb2RlLmlkfVxuICAgICAgICAgICAgICBzZWxlY3RlZD17b3B0aW9ucy5tb2RlID09PSBtb2RlLmlkfVxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBtb2RlLmF2YWlsYWJsZSAmJiBvbkNoYW5nZUV4cG9ydE1hcEhUTUxNb2RlKG1vZGUuaWQpfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8aW1nIHNyYz17bW9kZS51cmx9IGFsdD1cIlwiIC8+XG4gICAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlXG4gICAgICAgICAgICAgICAgICBpZD17J21vZGFsLmV4cG9ydE1hcC5odG1sLm1vZGVEZXNjcmlwdGlvbid9XG4gICAgICAgICAgICAgICAgICB2YWx1ZXM9e3ttb2RlOiBpbnRsLmZvcm1hdE1lc3NhZ2Uoe2lkOiBtb2RlLmxhYmVsfSl9fVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAge29wdGlvbnMubW9kZSA9PT0gbW9kZS5pZCAmJiA8Q2hlY2tNYXJrIC8+fVxuICAgICAgICAgICAgPC9CaWdTdHlsZWRUaWxlPlxuICAgICAgICAgICkpfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvRXhwb3J0TWFwU3R5bGVkRXhwb3J0U2VjdGlvbj5cbiAgICA8L2Rpdj5cbiAgKTtcblxuICBFeHBvcnRIdG1sTWFwLmRpc3BsYXlOYW1lID0gJ0V4cG9ydEh0bWxNYXAnO1xuXG4gIHJldHVybiBpbmplY3RJbnRsKEV4cG9ydEh0bWxNYXApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBFeHBvcnRIdG1sTWFwRmFjdG9yeTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFHQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxpQkFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsV0FBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsVUFBQSxHQUFBSCxPQUFBO0FBS0EsSUFBQUksa0JBQUEsR0FBQUwsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFLLFVBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLGFBQUEsR0FBQU4sT0FBQTtBQUF5RCxJQUFBTyxlQUFBLEVBQUFDLGdCQUFBLEVBQUFDLGdCQUFBLEVBYnpEO0FBQ0E7QUFpQkEsSUFBTUMsNEJBQTRCLEdBQUcsSUFBQUMsNkJBQU0sRUFBQ0MscUNBQW1CLENBQUMsQ0FBQUwsZUFBQSxLQUFBQSxlQUFBLE9BQUFNLHVCQUFBLDRHQUUvQyxVQUFBQyxLQUFLO0VBQUEsT0FBSUEsS0FBSyxDQUFDQyxLQUFLLENBQUNDLGFBQWE7QUFBQSxHQUN0QyxVQUFBRixLQUFLO0VBQUEsT0FBSUEsS0FBSyxDQUFDQyxLQUFLLENBQUNFLFVBQVU7QUFBQSxFQUczQztBQU1ELElBQU1DLFdBQVcsR0FBR1AsNkJBQU0sQ0FBQ1EsS0FBSyxDQUFBWCxnQkFBQSxLQUFBQSxnQkFBQSxPQUFBSyx1QkFBQSx3TUFFbkIsVUFBQUMsS0FBSztFQUFBLE9BQUlBLEtBQUssQ0FBQ0MsS0FBSyxDQUFDSyxZQUFZO0FBQUEsR0FDbkMsVUFBQU4sS0FBSztFQUFBLE9BQUtBLEtBQUssQ0FBQ08sS0FBSyxHQUFHLEtBQUssR0FBR1AsS0FBSyxDQUFDQyxLQUFLLENBQUNPLFlBQVk7QUFBQSxDQUFDLEVBQ3hELFVBQUFSLEtBQUs7RUFBQSxPQUFJQSxLQUFLLENBQUNDLEtBQUssQ0FBQ1EsY0FBYztBQUFBLEdBRWhDLFVBQUFULEtBQUs7RUFBQSxPQUFJQSxLQUFLLENB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
|
|
124
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9zdHlsZWRDb21wb25lbnRzIiwiX2NvbXBvbmVudHMiLCJfY29uc3RhbnRzIiwiX3N0eWxlZENvbXBvbmVudHMyIiwiX3JlYWN0SW50bCIsIl9sb2NhbGl6YXRpb24iLCJfdGVtcGxhdGVPYmplY3QiLCJfdGVtcGxhdGVPYmplY3QyIiwiX3RlbXBsYXRlT2JqZWN0MyIsIkV4cG9ydE1hcFN0eWxlZEV4cG9ydFNlY3Rpb24iLCJzdHlsZWQiLCJTdHlsZWRFeHBvcnRTZWN0aW9uIiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbDIiLCJwcm9wcyIsInRoZW1lIiwiaW5wdXRGb250U2l6ZSIsImlucHV0Q29sb3IiLCJTdHlsZWRJbnB1dCIsImlucHV0IiwiaW5wdXRQYWRkaW5nIiwiZXJyb3IiLCJ0aXRsZUNvbG9yTFQiLCJpbnB1dEJveEhlaWdodCIsIkJpZ1N0eWxlZFRpbGUiLCJTdHlsZWRUeXBlIiwiRXhwb3J0SHRtbE1hcEZhY3RvcnkiLCJFeHBvcnRIdG1sTWFwIiwiX3JlZiIsIl9yZWYkb25DaGFuZ2VFeHBvcnRNYSIsIm9uQ2hhbmdlRXhwb3J0TWFwSFRNTE1vZGUiLCJfcmVmJG9uRWRpdFVzZXJNYXBib3giLCJvbkVkaXRVc2VyTWFwYm94QWNjZXNzVG9rZW4iLCJfcmVmJG9wdGlvbnMiLCJvcHRpb25zIiwiaW50bCIsImNyZWF0ZUVsZW1lbnQiLCJTdHlsZWRFeHBvcnRNYXBOb3RlIiwiRm9ybWF0dGVkTWVzc2FnZSIsImlkIiwiY2xhc3NOYW1lIiwib25DaGFuZ2UiLCJlIiwidGFyZ2V0IiwidmFsdWUiLCJ0eXBlIiwicGxhY2Vob2xkZXIiLCJmb3JtYXRNZXNzYWdlIiwidXNlck1hcGJveFRva2VuIiwiU3R5bGVkV2FybmluZyIsIkV4cG9ydE1hcExpbmsiLCJocmVmIiwiRVhQT1JUX0hUTUxfTUFQX0RPQyIsIkVYUE9SVF9IVE1MX01BUF9NT0RFU19ET0MiLCJFWFBPUlRfSFRNTF9NQVBfTU9ERV9PUFRJT05TIiwibWFwIiwibW9kZSIsImtleSIsInNlbGVjdGVkIiwib25DbGljayIsImF2YWlsYWJsZSIsInNyYyIsInVybCIsImFsdCIsInZhbHVlcyIsImxhYmVsIiwiQ2hlY2tNYXJrIiwiZGlzcGxheU5hbWUiLCJpbmplY3RJbnRsIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL21vZGFscy9leHBvcnQtbWFwLW1vZGFsL2V4cG9ydC1odG1sLW1hcC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7U3R5bGVkRXhwb3J0U2VjdGlvbiwgU3R5bGVkVHlwZSwgQ2hlY2tNYXJrfSBmcm9tICcuLi8uLi9jb21tb24vc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IHtTdHlsZWRFeHBvcnRNYXBOb3RlLCBTdHlsZWRXYXJuaW5nLCBFeHBvcnRNYXBMaW5rfSBmcm9tICcuL2NvbXBvbmVudHMnO1xuaW1wb3J0IHtcbiAgRVhQT1JUX0hUTUxfTUFQX01PREVfT1BUSU9OUyxcbiAgRVhQT1JUX0hUTUxfTUFQX0RPQyxcbiAgRVhQT1JUX0hUTUxfTUFQX01PREVTX0RPQ1xufSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCB7aW5qZWN0SW50bH0gZnJvbSAncmVhY3QtaW50bCc7XG5pbXBvcnQge0Zvcm1hdHRlZE1lc3NhZ2V9IGZyb20gJ0BrZXBsZXIuZ2wvbG9jYWxpemF0aW9uJztcbmltcG9ydCB7SW50bFNoYXBlfSBmcm9tICdyZWFjdC1pbnRsJztcblxuaW1wb3J0IHtzZXRVc2VyTWFwYm94QWNjZXNzVG9rZW4sIHNldEV4cG9ydEhUTUxNYXBNb2RlLCBBY3Rpb25IYW5kbGVyfSBmcm9tICdAa2VwbGVyLmdsL2FjdGlvbnMnO1xuXG5jb25zdCBFeHBvcnRNYXBTdHlsZWRFeHBvcnRTZWN0aW9uID0gc3R5bGVkKFN0eWxlZEV4cG9ydFNlY3Rpb24pYFxuICBtYXJnaW46IDhweCAwIDEycHg7XG5cbiAgJi5leHBvcnQtbWFwLW1vZGFsX19odG1sLW9wdGlvbnMge1xuICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gIH1cblxuICAuZGlzY2xhaW1lciB7XG4gICAgZm9udC1zaXplOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmlucHV0Rm9udFNpemV9O1xuICAgIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmlucHV0Q29sb3J9O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM1O1xuICAgIG1hcmdpbi10b3A6IDhweDtcbiAgfVxuYDtcblxuaW50ZXJmYWNlIFN0eWxlZElucHV0UHJvcHMge1xuICBlcnJvcj86IGJvb2xlYW47XG59XG5cbmNvbnN0IFN0eWxlZElucHV0ID0gc3R5bGVkLmlucHV0PFN0eWxlZElucHV0UHJvcHM+YFxuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5pbnB1dFBhZGRpbmd9O1xuICBjb2xvcjogJHtwcm9wcyA9PiAocHJvcHMuZXJyb3IgPyAncmVkJyA6IHByb3BzLnRoZW1lLnRpdGxlQ29sb3JMVCl9O1xuICBoZWlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuaW5wdXRCb3hIZWlnaHR9O1xuICBvdXRsaW5lOiAwO1xuICBmb250LXNpemU6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuaW5wdXRGb250U2l6ZX07XG5cbiAgJjphY3RpdmUsXG4gICY6Zm9jdXMsXG4gICYuZm9jdXMsXG4gICYuYWN0aXZlIHtcbiAgICBvdXRsaW5lOiAwO1xuICB9XG5gO1xuXG5jb25zdCBCaWdTdHlsZWRUaWxlID0gc3R5bGVkKFN0eWxlZFR5cGUpYFxuICBoZWlnaHQ6IHVuc2V0O1xuICB3aWR0aDogdW5zZXQ7XG4gIHBhZGRpbmc6IDZweDtcbiAgaW1nIHtcbiAgICB3aWR0aDogMTIwcHg7XG4gICAgaGVpZ2h0OiA4MHB4O1xuICB9XG4gIHAge1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBsaW5lLWhlaWdodDogMS4zO1xuICAgIG1hcmdpbjogNnB4IDAgMDtcbiAgfVxuYDtcblxudHlwZSBFeHBvcnRIdG1sTWFwUHJvcHMgPSB7XG4gIG9uQ2hhbmdlRXhwb3J0TWFwSFRNTE1vZGU6IEFjdGlvbkhhbmRsZXI8dHlwZW9mIHNldEV4cG9ydEhUTUxNYXBNb2RlPjtcbiAgb25FZGl0VXNlck1hcGJveEFjY2Vzc1Rva2VuOiBBY3Rpb25IYW5kbGVyPHR5cGVvZiBzZXRVc2VyTWFwYm94QWNjZXNzVG9rZW4+O1xuICBvcHRpb25zOiB7XG4gICAgdXNlck1hcGJveFRva2VuPzogc3RyaW5nO1xuICAgIG1vZGU/OiBzdHJpbmc7XG4gIH07XG59O1xuXG50eXBlIEludGxQcm9wcyA9IHtcbiAgaW50bDogSW50bFNoYXBlO1xufTtcblxuZnVuY3Rpb24gRXhwb3J0SHRtbE1hcEZhY3RvcnkoKTogUmVhY3QuQ29tcG9uZW50VHlwZTxFeHBvcnRIdG1sTWFwUHJvcHM+IHtcbiAgLyoqIEB0eXBlIHt0eXBlb2YgaW1wb3J0KCcuL2V4cG9ydC1odG1sLW1hcCcpLkV4cG9ydEh0bWxNYXB9ICovXG4gIGNvbnN0IEV4cG9ydEh0bWxNYXA6IFJlYWN0LkZDPEV4cG9ydEh0bWxNYXBQcm9wcyAmIEludGxQcm9wcz4gPSAoe1xuICAgIG9uQ2hhbmdlRXhwb3J0TWFwSFRNTE1vZGUgPSAoKSA9PiB7XG4gICAgICByZXR1cm47XG4gICAgfSxcbiAgICBvbkVkaXRVc2VyTWFwYm94QWNjZXNzVG9rZW4gPSAoKSA9PiB7XG4gICAgICByZXR1cm47XG4gICAgfSxcbiAgICBvcHRpb25zID0ge30sXG4gICAgaW50bFxuICB9KSA9PiAoXG4gICAgPGRpdj5cbiAgICAgIDxTdHlsZWRFeHBvcnRNYXBOb3RlPlxuICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17J21vZGFsLmV4cG9ydE1hcC5odG1sLnNlbGVjdGlvbid9IC8+XG4gICAgICA8L1N0eWxlZEV4cG9ydE1hcE5vdGU+XG4gICAgICA8RXhwb3J0TWFwU3R5bGVkRXhwb3J0U2VjdGlvbiBjbGFzc05hbWU9XCJleHBvcnQtbWFwLW1vZGFsX19odG1sLW9wdGlvbnNcIj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJkZXNjcmlwdGlvblwiPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGl0bGVcIj5cbiAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPXsnbW9kYWwuZXhwb3J0TWFwLmh0bWwudG9rZW5UaXRsZSd9IC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzdWJ0aXRsZVwiPlxuICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9eydtb2RhbC5leHBvcnRNYXAuaHRtbC50b2tlblN1YnRpdGxlJ30gLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic2VsZWN0aW9uXCI+XG4gICAgICAgICAgPFN0eWxlZElucHV0XG4gICAgICAgICAgICBvbkNoYW5nZT17ZSA9PiBvbkVkaXRVc2VyTWFwYm94QWNjZXNzVG9rZW4oZS50YXJnZXQudmFsdWUpfVxuICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9e2ludGwuZm9ybWF0TWVzc2FnZSh7aWQ6ICdtb2RhbC5leHBvcnRNYXAuaHRtbC50b2tlblBsYWNlaG9sZGVyJ30pfVxuICAgICAgICAgICAgdmFsdWU9e29wdGlvbnMgPyBvcHRpb25zLnVzZXJNYXBib3hUb2tlbiA6ICcnfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJkaXNjbGFpbWVyXCI+XG4gICAgICAgICAgICA8U3R5bGVkV2FybmluZz5cbiAgICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9eydtb2RhbC5leHBvcnRNYXAuaHRtbC50b2tlbk1pc3VzZVdhcm5pbmcnfSAvPlxuICAgICAgICAgICAgPC9TdHlsZWRXYXJuaW5nPlxuICAgICAgICAgICAgPFN0eWxlZFdhcm5pbmc+XG4gICAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPXsnbW9kYWwuZXhwb3J0TWFwLmh0bWwudG9rZW5TZWN1cml0eVdhcm5pbmcnfSAvPlxuICAgICAgICAgICAgPC9TdHlsZWRXYXJuaW5nPlxuICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9eydtb2RhbC5leHBvcnRNYXAuaHRtbC50b2tlbkRpc2NsYWltZXInfSAvPlxuICAgICAgICAgICAgPEV4cG9ydE1hcExpbmsgaHJlZj17RVhQT1JUX0hUTUxfTUFQX0RPQ30+XG4gICAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPXsnbW9kYWwuZXhwb3J0TWFwLmh0bWwudG9rZW5VcGRhdGUnfSAvPlxuICAgICAgICAgICAgPC9FeHBvcnRNYXBMaW5rPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvRXhwb3J0TWFwU3R5bGVkRXhwb3J0U2VjdGlvbj5cbiAgICAgIDxFeHBvcnRNYXBTdHlsZWRFeHBvcnRTZWN0aW9uPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0aXRsZVwiPlxuICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9eydtb2RhbC5leHBvcnRNYXAuaHRtbC5tb2RlVGl0bGUnfSAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic3VidGl0bGVcIj5cbiAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPXsnbW9kYWwuZXhwb3J0TWFwLmh0bWwubW9kZVN1YnRpdGxlMSd9IC8+XG4gICAgICAgICAgICA8YSBocmVmPXtFWFBPUlRfSFRNTF9NQVBfTU9ERVNfRE9DfT5cbiAgICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9eydtb2RhbC5leHBvcnRNYXAuaHRtbC5tb2RlU3VidGl0bGUyJ30gLz5cbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic2VsZWN0aW9uXCI+XG4gICAgICAgICAge0VYUE9SVF9IVE1MX01BUF9NT0RFX09QVElPTlMubWFwKG1vZGUgPT4gKFxuICAgICAgICAgICAgPEJpZ1N0eWxlZFRpbGVcbiAgICAgICAgICAgICAga2V5PXttb2RlLmlkfVxuICAgICAgICAgICAgICBzZWxlY3RlZD17b3B0aW9ucy5tb2RlID09PSBtb2RlLmlkfVxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBtb2RlLmF2YWlsYWJsZSAmJiBvbkNoYW5nZUV4cG9ydE1hcEhUTUxNb2RlKG1vZGUuaWQpfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8aW1nIHNyYz17bW9kZS51cmx9IGFsdD1cIlwiIC8+XG4gICAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlXG4gICAgICAgICAgICAgICAgICBpZD17J21vZGFsLmV4cG9ydE1hcC5odG1sLm1vZGVEZXNjcmlwdGlvbid9XG4gICAgICAgICAgICAgICAgICB2YWx1ZXM9e3ttb2RlOiBpbnRsLmZvcm1hdE1lc3NhZ2Uoe2lkOiBtb2RlLmxhYmVsfSl9fVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAge29wdGlvbnMubW9kZSA9PT0gbW9kZS5pZCAmJiA8Q2hlY2tNYXJrIC8+fVxuICAgICAgICAgICAgPC9CaWdTdHlsZWRUaWxlPlxuICAgICAgICAgICkpfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvRXhwb3J0TWFwU3R5bGVkRXhwb3J0U2VjdGlvbj5cbiAgICA8L2Rpdj5cbiAgKTtcblxuICBFeHBvcnRIdG1sTWFwLmRpc3BsYXlOYW1lID0gJ0V4cG9ydEh0bWxNYXAnO1xuXG4gIHJldHVybiBpbmplY3RJbnRsKEV4cG9ydEh0bWxNYXApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBFeHBvcnRIdG1sTWFwRmFjdG9yeTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFHQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxpQkFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsV0FBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsVUFBQSxHQUFBSCxPQUFBO0FBS0EsSUFBQUksa0JBQUEsR0FBQUwsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFLLFVBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLGFBQUEsR0FBQU4sT0FBQTtBQUF5RCxJQUFBTyxlQUFBLEVBQUFDLGdCQUFBLEVBQUFDLGdCQUFBLEVBYnpEO0FBQ0E7QUFpQkEsSUFBTUMsNEJBQTRCLEdBQUcsSUFBQUMsNkJBQU0sRUFBQ0MscUNBQW1CLENBQUMsQ0FBQUwsZUFBQSxLQUFBQSxlQUFBLE9BQUFNLHVCQUFBLGdPQVEvQyxVQUFBQyxLQUFLO0VBQUEsT0FBSUEsS0FBSyxDQUFDQyxLQUFLLENBQUNDLGFBQWE7QUFBQSxHQUN0QyxVQUFBRixLQUFLO0VBQUEsT0FBSUEsS0FBSyxDQUFDQyxLQUFLLENBQUNFLFVBQVU7QUFBQSxFQUkzQztBQU1ELElBQU1DLFdBQVcsR0FBR1AsNkJBQU0sQ0FBQ1EsS0FBSyxDQUFBWCxnQkFBQSxLQUFBQSxnQkFBQSxPQUFBSyx1QkFBQSx3TUFFbkIsVUFBQUMsS0FBSztFQUFBLE9BQUlBLEtBQUssQ0FBQ0MsS0FBSyxDQUFDSyxZQUFZO0FBQUEsR0FDbkMsVUFBQU4sS0FBSztFQUFBLE9BQUtBLEtBQUssQ0FBQ08sS0FBSyxHQUFHLEtBQUssR0FBR1AsS0FBSyxDQUFDQyxLQUFLLENBQUNPLFlBQVk7QUFBQSxD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
|