nsc-react-component 2.6.5 → 2.6.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/base/table/index.js
CHANGED
|
@@ -593,8 +593,9 @@ var NSCTable = /*#__PURE__*/function (_React$Component) {
|
|
|
593
593
|
searchKey = _item$filterProps.searchKey;
|
|
594
594
|
var Div = null;
|
|
595
595
|
var text = item.title;
|
|
596
|
-
Div = getNode(type, _objectSpread(_objectSpread({
|
|
597
|
-
placeholder: "\u641C\u7D22".concat(text)
|
|
596
|
+
Div = getNode(type, _objectSpread(_objectSpread({
|
|
597
|
+
placeholder: "\u641C\u7D22".concat(text)
|
|
598
|
+
}, props), {}, {
|
|
598
599
|
ref: _this5.tableSearchRef
|
|
599
600
|
}));
|
|
600
601
|
obj = _objectSpread({
|
|
@@ -954,4 +955,4 @@ _defineProperty(NSCTable, "defaultProps", {
|
|
|
954
955
|
});
|
|
955
956
|
|
|
956
957
|
export default withZhLocale(NSCTable);
|
|
957
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2Jhc2UvdGFibGUvaW5kZXgudHN4Il0sIm5hbWVzIjpbIkFwcHN0b3JlT3V0bGluZWQiLCJDaGVja091dGxpbmVkIiwiQ29sdW1uSGVpZ2h0T3V0bGluZWQiLCJTZWFyY2hPdXRsaW5lZCIsIlNvcnRBc2NlbmRpbmdPdXRsaW5lZCIsIlNvcnREZXNjZW5kaW5nT3V0bGluZWQiLCJpc0VtcHR5T2JqIiwiU3RvcmUiLCJQYWdlU3RvcmUiLCJ1dGlscyIsIlJlYWN0IiwiRG5kUHJvdmlkZXIiLCJCb2R5Um93IiwiRG5kQ29udGV4dFR5cGUiLCJJQm9keVJvd1Byb3BzIiwidHJlZVV0aWxzIiwic3R5bGVzIiwiQm9keVJvd0NvbXBvbmVudCIsIkhUTUw1QmFja2VuZCIsIndpdGhaaExvY2FsZSIsIlJlc2l6YWJsZSIsImdldExlc3MiLCJnZXROb2RlIiwiTm9EYXRhIiwiZ2V0U3RvcmFnZSIsIlJlc2l6ZWFibGVUaXRsZSIsInByb3BzIiwib25SZXNpemUiLCJ3aWR0aCIsInJlc3RQcm9wcyIsImVuYWJsZVVzZXJTZWxlY3RIYWNrIiwiTlNDVGFibGUiLCJjcmVhdGVSZWYiLCJvbkJlZm9yZUxvYWQiLCJsb2FkIiwiaGVhZGVyIiwiY2VsbCIsImluZGV4IiwiZSIsInNpemUiLCJjb2xzIiwic3RhdGUiLCJuZXh0Q29sdW1ucyIsInNldFN0YXRlIiwiZXYiLCJkYXRhIiwiSlNPTiIsInBhcnNlIiwiX3RoaXMiLCJldmVudFR5cGUiLCJwYXlsb2FkIiwidGFibGVTaXplIiwiZHJhZ0luZGV4IiwiaG92ZXJJbmRleCIsImRyYWciLCJ0YXJnZXQiLCJkcmFnTm9kZSIsInJlY29yZCIsInRhcmdldE5vZGUiLCJtb3ZlQXJyYXkiLCJpZHMiLCJwYXJlbnROb2RlIiwiZ2V0Q2hpbGROb2RlSWRzIiwicGFyYW1zIiwiaWQiLCJwYXJlbnRJZCIsImF0dHJpYnV0ZSIsIm1vdmVSb3ciLCJzdG9yZSIsInJlbG9hZCIsIm1vZGFsIiwidHlwZSIsInN0b3JlUHJlZml4IiwiYXV0b1R5cGUiLCJjb250ZW50IiwiZGF0YVNvdXJjZSIsImNvbHVtbnMiLCJsb2FkaW5nIiwicGFnaW5hdGlvbiIsImFjdGl2ZUluZGV4Iiwic2VhcmNoVGV4dCIsImZpZWxkT3B0aW9uIiwic2VhcmNoQ29sb3IiLCJzb3J0cyIsImZpbHRlclBhcmFtcyIsInNvcnRUeXBlIiwic29ydGVyIiwic29ydEluZm8iLCJkZWZhdWx0U29ydCIsImNoZWNrQ29sdW1uIiwiZGVmYXVsdENoZWNrIiwibGlzdGVuZXJzIiwibGlzdGVuZXJzUHJvcHMiLCJyZXN0U3RvcmUiLCJzdG9yZVByb3BzIiwibW9kZWwiLCJjb21wb25lbnQiLCJvcHRpb25zIiwiY2FsbGJhY2siLCJkYXRhQ2hhbmdlZCIsIm1vZGVsRGF0YSIsInBhZ2luZyIsImdldFBhZ2luYXRpb24iLCJvbkVycm9yTG9hZCIsImVyciIsInJlc3BvbnNlIiwiYXV0b0xvYWQiLCJPYmplY3QiLCJhc3NpZ24iLCJjdXJyZW50IiwicmVzaXplQ29sdW1uIiwic2V0RGF0YSIsIndpbmRvdyIsImFkZEV2ZW50TGlzdGVuZXIiLCJsaXN0ZW5NZXNzYWdlIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsInByZXZQcm9wcyIsInByZVN0YXRlIiwicmVzZXRDb2x1bW4iLCJuZXdDb2xzIiwiY29sc3MiLCJtYXAiLCJjb2wiLCJ0ZW1wIiwib25IZWFkZXJDZWxsIiwiY29sdW1uIiwiaGFuZGxlUmVzaXplIiwicHVzaCIsImZpbHRlcnMiLCJleHRyYSIsImF1dG9PbkNoYW5nZSIsImF1dG9Tb3J0IiwiYXV0b1BhZ2luYXRpb24iLCJvbkNoYW5nZSIsImlzTXVsdGlwbGUiLCJBcnJheSIsImlzQXJyYXkiLCJoYW5kbGVQYWdpbmF0aW9uIiwiZ2V0UGFnaW5hdGlvbkJ5U3RvcmUiLCJwIiwiY3VycmVudEtleSIsInBhZ2VTaXplS2V5IiwicGFnZVNpemUiLCJhc2NQYXJhbXMiLCJnZXRTb3J0UGFyYW0iLCJvbkNoYW5nZUZuIiwiZ2V0TW9kZWwiLCJ2YWwiLCJjaGVja2VkVmFsdWUiLCJsZW5ndGgiLCJ3YXJuaW5nIiwiZmlsdGVyQ29sdW1ucyIsIm5ld0NvbCIsImluY2x1ZGVzIiwiZGF0YUluZGV4IiwiaW5pdFNob3ciLCJzb3J0U3RhdGUiLCJvcmRlckl0ZW1zIiwiZmllbGQiLCJhc2MiLCJvcmRlciIsImZvckVhY2giLCJ2Iiwic3RyaW5naWZ5Iiwic29ydEZpZWxkcyIsImRlZmF1bHRTaG93Q29scyIsImZpbHRlciIsImVsbGlwc2lzIiwicmVuZGVyIiwic2hvd1RpdGxlIiwidGV4dCIsImluZGV4T2YiLCJzb3J0T3JkZXIiLCJtdWx0aXBsZSIsIml0ZW0iLCJmaWx0ZXJQcm9wcyIsIm9iaiIsInNlYXJjaEtleSIsIkRpdiIsInRpdGxlIiwicGxhY2Vob2xkZXIiLCJyZWYiLCJ0YWJsZVNlYXJjaFJlZiIsImZpbHRlckRyb3Bkb3duIiwic2V0U2VsZWN0ZWRLZXlzIiwic2VsZWN0ZWRLZXlzIiwiY29uZmlybSIsImNsZWFyRmlsdGVycyIsIm5ld0ZpbHRlclBhcmFtcyIsImtleSIsImdldFZhbHVlIiwic29ydFBhcmFtIiwiZmlsdGVySWNvbiIsImZpbHRlckNvbHVtbiIsImNvbExpc3RzIiwic2l6ZUl0ZW0iLCJzb3J0SXRlbSIsInNvcnRDb250ZW50IiwiY3Vyc29yIiwiY29sb3IiLCJzaXplQ29udGVudCIsImJpbmQiLCJsYWJlbCIsInZhbHVlIiwiZGlzYWJsZWQiLCJmb250U2l6ZSIsIm1pbldpZHRoIiwibWF4V2lkdGgiLCJtYXJnaW5SaWdodCIsIm9taXQiLCJyb3dLZXkiLCJjbGlja0NoYW5nZUNvbG9yIiwicG9zaXRpb24iLCJzaG93U2l6ZUNoYW5nZXIiLCJzaG93UXVpY2tKdW1wZXIiLCJzaG93VG90YWwiLCJ0b3RhbCIsImZyb20iLCJ0byIsIm9uUm93Rm4iLCJvblJvdyIsImN1c3RvbSIsIm9uQ2xpY2tGbiIsIm9uQ2xpY2siLCJldmVudCIsInJvd0NsYXNzTmFtZSIsImNsaWNrUm93U3R5bGUiLCJuZXdEYXRhU291cmNlIiwiZ2V0U2VhcmNoTWVudURhdGFzIiwidHJlZURhdGFzIiwiZXhwYW5kZWRSb3dLZXlzIiwib3BlbktleXMiLCJkcmFnYWJsZSIsImRyYWdhYmxlUHJvcHMiLCJjb21wb25lbnRzIiwicmVzaXplUHJvcHMiLCJEZWZhdWx0VGFibGUiLCJ0b29sYmFyIiwicmVuZGVyVG9vbEJhciIsImdldENvbHVtbnMiLCJlbXB0eVRleHQiLCJ4IiwiQ29tcG9uZW50IiwiZHJhZ1VybCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FDRUEsZ0JBREYsRUFFRUMsYUFGRixFQUdFQyxvQkFIRixFQUlFQyxjQUpGLEVBS0VDLHFCQUxGLEVBTUVDLHNCQU5GLFFBT08sbUJBUFA7QUFRQSxTQUFTQyxVQUFULFFBQTJCLG1CQUEzQjtBQUNBLE9BQU9DLEtBQVAsSUFBZ0JDLFNBQWhCLFFBQTZDLGFBQTdDO0FBQ0EsU0FBU0MsS0FBVCxRQUFzQix1QkFBdEI7QUFjQSxPQUFPLEtBQUtDLEtBQVosTUFBdUIsT0FBdkI7QUFDQSxTQUFTQyxXQUFULFFBQTRCLFdBQTVCO0FBQ0EsT0FBT0MsT0FBUCxJQUFrQkMsY0FBbEIsRUFBa0NDLGFBQWxDLFFBQXVELG1CQUF2RDtBQUNBLE9BQU9DLFNBQVAsTUFBc0IsaUJBQXRCO0FBQ0EsT0FBT0MsTUFBUCxNQUFtQixxQkFBbkI7QUFDQSxJQUFRQyxnQkFBUixHQUEyQ0wsT0FBM0MsQ0FBUUssZ0JBQVI7QUFBQSxJQUEwQkMsWUFBMUIsR0FBMkNOLE9BQTNDLENBQTBCTSxZQUExQjtBQUNBLE9BQU9DLFlBQVAsTUFBeUIsd0JBQXpCO0FBQ0EsU0FBU0MsU0FBVCxRQUEwQixpQkFBMUI7QUFDQSxPQUFPLHNCQUFQO0FBQ0EsU0FBU0MsT0FBVCxFQUFrQkMsT0FBbEIsUUFBaUMsYUFBakM7QUFD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QUU7QUFBTDtBQVBWLFNBUU1OLFdBUk4sRUFTTWpOLEtBVE4sRUFVTStNLGFBVk47QUFXRSxRQUFBLElBQUksRUFBRXRMO0FBWFIsU0FGRixDQURGO0FBbUJBLGFBQU9xTCxRQUFRLEtBQUssSUFBYixnQkFDTCxvQkFBQyxXQUFEO0FBQWEsUUFBQSxPQUFPLEVBQUV0TjtBQUF0QixTQUFxQzBOLFlBQXJDLENBREssR0FHTEEsWUFIRjtBQUtEOzs7O0VBL3VCb0JsTyxLQUFLLENBQUN3TyxTOztnQkFBdkJuTixRLGtCQUNrQjtBQUNwQnlNLEVBQUFBLFFBQVEsRUFBRSxLQURVO0FBRXBCakIsRUFBQUEsU0FBUyxFQUFFLElBRlM7QUFHcEJ0QixFQUFBQSxZQUFZLEVBQUUsSUFITTtBQUlwQmtELEVBQUFBLE9BQU8sRUFBRSxFQUpXO0FBS3BCL0csRUFBQUEsY0FBYyxFQUFFLElBTEk7QUFNcEJELEVBQUFBLFFBQVEsRUFBRSxJQU5VO0FBT3BCRCxFQUFBQSxZQUFZLEVBQUUsSUFQTTtBQVFwQnBCLEVBQUFBLFlBQVksRUFBRSxJQVJNO0FBU3BCK0gsRUFBQUEsT0FBTyxFQUFFO0FBVFcsQzs7QUFpdkJ4QixlQUFlMU4sWUFBWSxDQUFDWSxRQUFELENBQTNCIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogQERlc2NyaXB0dGlvbjpcclxuICogQHZlcnNpb246XHJcbiAqIEBBdXRob3I6IHJ4emh1XHJcbiAqIEBEYXRlOiAyMDIxLTAzLTIzIDA4OjQ2OjIwXHJcbiAqIEBMYXN0RWRpdG9yczogcnh6aHVcclxuICogQExhc3RFZGl0VGltZTogMjAyMS0wMy0yMyAxMDozMDo0MlxyXG4gKi9cclxuaW1wb3J0IHtcclxuICBBcHBzdG9yZU91dGxpbmVkLFxyXG4gIENoZWNrT3V0bGluZWQsXHJcbiAgQ29sdW1uSGVpZ2h0T3V0bGluZWQsXHJcbiAgU2VhcmNoT3V0bGluZWQsXHJcbiAgU29ydEFzY2VuZGluZ091dGxpbmVkLFxyXG4gIFNvcnREZXNjZW5kaW5nT3V0bGluZWQsXHJcbn0gZnJvbSBcIkBhbnQtZGVzaWduL2ljb25zXCI7XHJcbmltcG9ydCB7IGlzRW1wdHlPYmogfSBmcm9tIFwiQGJqLW5zYy9mdW5jdGlvbnNcIjtcclxuaW1wb3J0IFN0b3JlLCB7IFBhZ2VTdG9yZSwgU3RvcmVQcm9wcyB9IGZyb20gXCJAYmotbnNjL21zblwiO1xyXG5pbXBvcnQgeyB1dGlscyB9IGZyb20gXCJAYmotbnNjL21zbi9saWIvdXRpbHNcIjtcclxuaW1wb3J0IHtcclxuICBCdXR0b24sXHJcbiAgQ2hlY2tib3gsXHJcbiAgQ2hlY2tib3hPcHRpb25UeXBlLFxyXG4gIE1lbnUsXHJcbiAgbWVzc2FnZSxcclxuICBQb3BvdmVyLFxyXG4gIFNwYWNlLFxyXG4gIFRhYmxlLFxyXG4gIFRhYmxlUHJvcHMsXHJcbiAgVG9vbHRpcCxcclxufSBmcm9tIFwiYW50ZFwiO1xyXG5pbXBvcnQgeyBDb2x1bW5UeXBlLCBUYWJsZVBhZ2luYXRpb25Db25maWcgfSBmcm9tIFwiYW50ZC9saWIvdGFibGVcIjtcclxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB7IERuZFByb3ZpZGVyIH0gZnJvbSBcInJlYWN0LWRuZFwiO1xyXG5pbXBvcnQgQm9keVJvdywgeyBEbmRDb250ZXh0VHlwZSwgSUJvZHlSb3dQcm9wcyB9IGZyb20gXCIuLi9jb21tb24vQm9keVJvd1wiO1xyXG5pbXBvcnQgdHJlZVV0aWxzIGZyb20gXCIuLi8uLi90cmVlVXRpbHNcIjtcclxuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9pbmRleC5tb2R1bGUubGVzc1wiO1xyXG5jb25zdCB7IEJvZHlSb3dDb21wb25lbnQsIEhUTUw1QmFja2VuZCB9ID0gQm9keVJvdztcclxuaW1wb3J0IHdpdGhaaExvY2FsZSBmcm9tIFwiLi4vY29tbW9uL3dpdGhaaExvY2FsZVwiO1xyXG5pbXBvcnQgeyBSZXNpemFibGUgfSBmcm9tIFwicmVhY3QtcmVzaXphYmxlXCI7XHJcbmltcG9ydCBcIi4vcmVzaXplLm1vZHVsZS5sZXNzXCI7XHJcbmltcG9ydCB7IGdldExlc3MsIGdldE5vZGUgfSBmcm9tIFwiLi4vLi4vdXRpbHNcIjtcclxuaW1wb3J0IE5vRGF0YSBmcm9tIFwiLi4vLi4vYmFzZS9jb21tb24vTm9EYXRhXCI7XHJcbmltcG9ydCB7IGdldFN0b3JhZ2UgfSBmcm9tIFwiQGJqLW5zYy9mdW5jdGlvbnNcIjtcclxuaW50ZXJmYWNlIElEcmFnUGFyYW1zIHtcclxuICBpZDogc3RyaW5nIHwgbnVtYmVyO1xyXG4gIGlkczogQXJyYXk8c3RyaW5nIHwgbnVtYmVyPjtcclxuICBwYXJlbnRJZDogc3RyaW5nIHwgbnVtYmVyO1xyXG59XHJcbi8vIGludGVyZmFjZSBTdG9yZVByb3BzIHt9XHJcblxyXG5leHBvcnQgdHlwZSBTdG9yZVR5cGUgPSBcIlBhZ2VTdG9yZVwiIHwgXCJUcmVlU3RvcmVcIiB8IFwiQmFzZVN0b3JlXCI7XHJcblxyXG5pbnRlcmZhY2UgTlNDVGFibGVQYWdpbmF0aW9uIGV4dGVuZHMgVGFibGVQYWdpbmF0aW9uQ29uZmlnIHtcclxuICB0b3RhbEtleT86IHN0cmluZztcclxuICBwYWdlU2l6ZUtleT86IHN0cmluZztcclxuICBjdXJyZW50S2V5Pzogc3RyaW5nO1xyXG59XHJcblxyXG5pbnRlcmZhY2UgTlNDVGFibGVQcm9wcyBleHRlbmRzIFRhYmxlUHJvcHM8YW55PiB7XHJcbiAgc3RvcmU/OiBTdG9yZVByb3BzO1xyXG4gIHNob3dUb3RhbD86IGJvb2xlYW47IC8vIOaYr+WQpuaYvuekuuaAu+adoeaVsOS/oeaBr++8jOm7mOiupHRydWVcclxuICBkcmFnYWJsZT86IGJvb2xlYW47IC8vIOaYr+WQpuWPr+aLluWKqCwg6buY6K6kZmFsc2VcclxuICBmaWx0ZXJDb2x1bW4/OiBib29sZWFuOyAvLyDmmK/lkKbmlK/mjIHov4fmu6TmmL7npLrooajmoLzliJcsIOm7mOiupHRydWVcclxuICBtb3ZlUm93PzogKHBhcmFtczogSURyYWdQYXJhbXMpID0+IHZvaWQ7IC8vIOaLluaLveWujOaIkOWQjueahOWbnuiwg1xyXG4gIGRyYWdVcmw/OiBzdHJpbmc7IC8vIOS/neWtmOaLluaLveaOkuW6j+eahOaOpeWPo1xyXG4gIHBhZ2luYXRpb24/OiBmYWxzZSB8IE5TQ1RhYmxlUGFnaW5hdGlvbjtcclxuICBhdXRvUGFnaW5hdGlvbj86IGJvb2xlYW47IC8vIOe7hOS7tuaYr+WQpuiHquWKqOWkhOeQhuWIhumhtVxyXG4gIGF1dG9Tb3J0PzogYm9vbGVhbjsgLy/nu4Tku7bmmK/lkKboh6rliqjlpITnkIbmjpLluo9cclxuICBhdXRvT25DaGFuZ2U/OiBib29sZWFuOyAvLyDnu4Tku7bmmK/lkKboh6rliqhvbkNoYW5nZSwgZmFsc2XliJnkuI3lgZrku7vkvZXlpITnkIblhajpg6jkuqTnu5nosIPnlKjmlrlcclxuICByZXNpemVDb2x1bW4/OiBib29sZWFuO1xyXG4gIHNvcnRGaWVsZHM/OiBBcnJheTxzdHJpbmc+OyAvL+mcgOimgeaOkuW6j+eahOWtl+autUluZGV4XHJcbiAgdG9vbGJhcj86IGJvb2xlYW47XHJcbiAgYXV0b1NpemU/OiBib29sZWFuO1xyXG4gIC8vIHRhYmxlU2l6ZT86IFwic21hbGxcIiB8IFwibWlkZGxlXCIgfCBcImRlZmF1bHRcIiB8IFwiYXV0b1wiO1xyXG4gIC8vIHNpemU/OiBcInNtYWxsXCIgfCBcIm1pZGRsZVwiIHwgXCJkZWZhdWx0XCIgfCBcImF1dG9cIjtcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgSU5TQ1RhYmxlUHJvcHMgPSB0eXBlb2YgTlNDVGFibGUuZGVmYXVsdFByb3BzICYgTlNDVGFibGVQcm9wcztcclxuZXhwb3J0IHsgRG5kQ29udGV4dFR5cGUsIElCb2R5Um93UHJvcHMgfTtcclxuXHJcbmNvbnN0IFJlc2l6ZWFibGVUaXRsZSA9IChwcm9wczogYW55KSA9PiB7XHJcbiAgY29uc3QgeyBvblJlc2l6ZSwgd2lkdGgsIC4uLnJlc3RQcm9wcyB9ID0gcHJvcHM7XHJcbiAgcmV0dXJuIChcclxuICAgIDxSZXNpemFibGVcclxuICAgICAgd2lkdGg9e3dpZHRoIHx8IDE1MH1cclxuICAgICAgaGVpZ2h0PXswfVxyXG4gICAgICBvblJlc2l6ZT17b25SZXNpemV9XHJcbiAgICAgIGRyYWdnYWJsZU9wdHM9e3sgZW5hYmxlVXNlclNlbGVjdEhhY2s6IGZhbHNlIH19XHJcbiAgICA+XHJcbiAgICAgIDx0aCB7Li4ucmVzdFByb3BzfSAvPlxyXG4gICAgPC9SZXNpemFibGU+XHJcbiAgKTtcclxufTtcclxuY2xhc3MgTlNDVGFibGUgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQ8SU5TQ1RhYmxlUHJvcHMsIGFueT4ge1xyXG4gIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XHJcbiAgICBkcmFnYWJsZTogZmFsc2UsXHJcbiAgICBzaG93VG90YWw6IHRydWUsXHJcbiAgICBmaWx0ZXJDb2x1bW46IHRydWUsXHJcbiAgICBkcmFnVXJsOiBcIlwiLFxyXG4gICAgYXV0b1BhZ2luYXRpb246IHRydWUsXHJcbiAgICBhdXRvU29ydDogdHJ1ZSxcclxuICAgIGF1dG9PbkNoYW5nZTogdHJ1ZSxcclxuICAgIHJlc2l6ZUNvbHVtbjogdHJ1ZSxcclxuICAgIHRvb2xiYXI6IHRydWUsXHJcbiAgfTtcclxuXHJcbiAgc3RvcmUgPSB7fSBhcyBTdG9yZVByb3BzO1xyXG4gIHRoSWNvblJlZiA9IFJlYWN0LmNyZWF0ZVJlZjxIVE1MRGl2RWxlbWVudD4oKTtcclxuICB0YWJsZVNlYXJjaFJlZiA9IFJlYWN0LmNyZWF0ZVJlZjxhbnk+KCk7XHJcblxyXG4gIGxpc3RlbmVycyA9IHtcclxuICAgIG9uQmVmb3JlTG9hZDogbnVsbCxcclxuICAgIGxvYWQ6IG51bGwsXHJcbiAgfTtcclxuXHJcbiAgY29tcG9uZW50cyA9IHtcclxuICAgIGhlYWRlcjoge1xyXG4gICAgICBjZWxsOiBSZXNpemVhYmxlVGl0bGUsXHJcbiAgICB9LFxyXG4gIH07XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XHJcbiAgICBzdXBlcihwcm9wcyk7XHJcbiAgICBsZXQgbW9kYWwgPSBwcm9wcy50eXBlIHx8IFwiYXV0b1wiO1xyXG4gICAgbGV0IHN0b3JlUHJlZml4ID0gZ2V0U3RvcmFnZShcInN0b3JlLXByZS1rZXlcIik7XHJcbiAgICBsZXQgYXV0b1R5cGUgPSBnZXRTdG9yYWdlKFxyXG4gICAgICBzdG9yZVByZWZpeCA/IHN0b3JlUHJlZml4ICsgXCJ0YWJsZVNpemVcIiA6IFwidGFibGVTaXplXCJcclxuICAgICk7XHJcbiAgICBhdXRvVHlwZSA9IGF1dG9UeXBlPy5jb250ZW50O1xyXG4gICAgdGhpcy5zdGF0ZSA9IHtcclxuICAgICAgZGF0YVNvdXJjZTogW10sXHJcbiAgICAgIGNvbHVtbnM6IFtdLFxyXG4gICAgICBsb2FkaW5nOiBmYWxzZSxcclxuICAgICAgcGFnaW5hdGlvbjoge30sXHJcbiAgICAgIGFjdGl2ZUluZGV4OiAtMSxcclxuICAgICAgLy/mkJzntKLmlofmnKxcclxuICAgICAgc2VhcmNoVGV4dDogbnVsbCxcclxuICAgICAgZmllbGRPcHRpb246IG51bGwsXHJcbiAgICAgIHNlYXJjaENvbG9yOiBudWxsLFxyXG4gICAgICBjb2xzOiBbXSxcclxuICAgICAgc29ydHM6IFtdLFxyXG4gICAgICBmaWx0ZXJQYXJhbXM6IHt9LFxyXG4gICAgICB0YWJsZVNpemU6IHRoaXMucHJvcHMuc2l6ZSB8fCBhdXRvVHlwZSB8fCBcImRlZmF1bHRcIixcclxuICAgICAgc29ydFR5cGU6IFwic2luZ2xlXCIsXHJcbiAgICAgIHNvcnRlcjogW10sIC8v6K6w5b2V5b2T5YmN5o6S5bqP5a2X5q61XHJcbiAgICAgIHNvcnRJbmZvOiB7fSxcclxuICAgICAgZGVmYXVsdFNvcnQ6IHRydWUsXHJcbiAgICAgIGNoZWNrQ29sdW1uOiBbXSxcclxuICAgICAgZGVmYXVsdENoZWNrOiB0cnVlLFxyXG4gICAgfTtcclxuICAgIGlmIChwcm9wcy5zdG9yZSBpbnN0YW5jZW9mIFN0b3JlKSB7XHJcbiAgICAgIHRoaXMuc3RvcmUgPSBwcm9wcy5zdG9yZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IHsgbGlzdGVuZXJzOiBsaXN0ZW5lcnNQcm9wcyA9IHt9LCAuLi5yZXN0U3RvcmUgfSA9XHJcbiAgICAgICAgcHJvcHMuc3RvcmUgfHwge307XHJcbiAgICAgIGNvbnN0IHN0b3JlUHJvcHMgPSB7XHJcbiAgICAgICAgbW9kZWw6IFwibW9kZWxcIixcclxuICAgICAgICBjb21wb25lbnQ6IHRoaXMsXHJcbiAgICAgICAgbGlzdGVuZXJzOiB7XHJcbiAgICAgICAgICBvbkJlZm9yZUxvYWQ6IChzdG9yZSwgb3B0aW9ucykgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgbG9hZGluZzogdHJ1ZSB9KTtcclxuICAgICAgICAgICAgdXRpbHMuY2FsbGJhY2sobGlzdGVuZXJzUHJvcHMub25CZWZvcmVMb2FkLCB0aGlzLCBbc3RvcmUsIG9wdGlvbnNdKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBkYXRhQ2hhbmdlZDogKGRhdGEsIG1vZGVsRGF0YSwgc3RvcmUpID0+IHtcclxuICAgICAgICAgICAgbGV0IHBhZ2luZyA9ICEodGhpcy5wcm9wcy5wYWdpbmF0aW9uID09PSBmYWxzZSk7XHJcbiAgICAgICAgICAgIGlmIChwYWdpbmcgJiYgIXRoaXMucHJvcHMuZGF0YVNvdXJjZSkge1xyXG4gICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgICAgZGF0YVNvdXJjZTogbW9kZWxEYXRhLFxyXG4gICAgICAgICAgICAgICAgcGFnaW5hdGlvbjogc3RvcmUuZ2V0UGFnaW5hdGlvbigpLFxyXG4gICAgICAgICAgICAgICAgbG9hZGluZzogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICBhY3RpdmVJbmRleDogLTEsXHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGRhdGFTb3VyY2U6IG1vZGVsRGF0YSwgbG9hZGluZzogZmFsc2UgfSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHV0aWxzLmNhbGxiYWNrKGxpc3RlbmVyc1Byb3BzLmRhdGFDaGFuZ2VkLCB0aGlzLCBbXHJcbiAgICAgICAgICAgICAgZGF0YSxcclxuICAgICAgICAgICAgICBtb2RlbERhdGEsXHJcbiAgICAgICAgICAgICAgc3RvcmUsXHJcbiAgICAgICAgICAgICAgcGFnaW5nLFxyXG4gICAgICAgICAgICBdKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBsb2FkOiAoZGF0YSwgbW9kZWxEYXRhLCBzdG9yZSkgPT4ge1xyXG4gICAgICAgICAgICB1dGlscy5jYWxsYmFjayhsaXN0ZW5lcnNQcm9wcy5sb2FkLCB0aGlzLCBbZGF0YSwgbW9kZWxEYXRhLCBzdG9yZV0pO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIG9uRXJyb3JMb2FkOiAoZXJyLCByZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgbG9hZGluZzogZmFsc2UgfSk7XHJcbiAgICAgICAgICAgIHV0aWxzLmNhbGxiYWNrKGxpc3RlbmVyc1Byb3BzLm9uRXJyb3JMb2FkLCB0aGlzLCBbZXJyLCByZXNwb25zZV0pO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIGRhdGE6IHJlc3RTdG9yZS5kYXRhXHJcbiAgICAgICAgICA/IHJlc3RTdG9yZS5kYXRhXHJcbiAgICAgICAgICA6IHByb3BzLmRhdGFTb3VyY2VcclxuICAgICAgICAgID8gcHJvcHMuZGF0YVNvdXJjZVxyXG4gICAgICAgICAgOiBudWxsLFxyXG4gICAgICAgIC4uLnJlc3RTdG9yZSxcclxuICAgICAgICBhdXRvTG9hZDogcmVzdFN0b3JlLmF1dG9Mb2FkID09PSBmYWxzZSA/IGZhbHNlIDogdHJ1ZSxcclxuICAgICAgfTtcclxuICAgICAgdGhpcy5zdG9yZSA9IG5ldyBQYWdlU3RvcmUoXHJcbiAgICAgICAgT2JqZWN0LmFzc2lnbih7fSwgc3RvcmVQcm9wcywge1xyXG4gICAgICAgICAgcGFnaW5hdGlvbjogeyBjdXJyZW50OiAxLCAuLi50aGlzLnByb3BzLnBhZ2luYXRpb24gfSxcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGFuZGxlUmVzaXplID1cclxuICAgIChpbmRleDogYW55KSA9PlxyXG4gICAgKGU6IGFueSwgeyBzaXplIH06IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCB7IGNvbHMgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICAgIGNvbnN0IG5leHRDb2x1bW5zID0gWy4uLmNvbHNdO1xyXG4gICAgICBuZXh0Q29sdW1uc1tpbmRleF0gPSB7XHJcbiAgICAgICAgLi4ubmV4dENvbHVtbnNbaW5kZXhdLFxyXG4gICAgICAgIHdpZHRoOiBzaXplLndpZHRoLFxyXG4gICAgICB9O1xyXG4gICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICBjb2xzOiBuZXh0Q29sdW1ucyxcclxuICAgICAgfSk7XHJcbiAgICB9O1xyXG5cclxuICBjb21wb25lbnREaWRNb3VudCgpIHtcclxuICAgIGNvbnN0IHsgcmVzaXplQ29sdW1uIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgaWYgKCFyZXNpemVDb2x1bW4pIHtcclxuICAgICAgdGhpcy5zZXRTdGF0ZSh7IGNvbHVtbnM6IFsuLi50aGlzLnByb3BzLmNvbHVtbnNdIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZXRTdGF0ZSh7IGNvbHM6IFsuLi50aGlzLnByb3BzLmNvbHVtbnNdIH0pO1xyXG4gICAgfVxyXG4gICAgY29uc3Qgc3RvcmUgPSB0aGlzLnByb3BzLnN0b3JlO1xyXG4gICAgaWYgKHN0b3JlICYmIHN0b3JlLmRhdGEpIHtcclxuICAgICAgdGhpcy5zdG9yZS5zZXREYXRhKHN0b3JlLmRhdGEpO1xyXG4gICAgfVxyXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJtZXNzYWdlXCIsIHRoaXMubGlzdGVuTWVzc2FnZSk7XHJcbiAgfVxyXG4gIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xyXG4gICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtZXNzYWdlXCIsIHRoaXMubGlzdGVuTWVzc2FnZSk7XHJcbiAgfVxyXG4gIGxpc3Rlbk1lc3NhZ2UgPSAoZXYpID0+IHtcclxuICAgIGNvbnN0IGRhdGEgPSB0eXBlb2YgZXYuZGF0YSA9PT0gXCJzdHJpbmdcIiA/IEpTT04ucGFyc2UoZXYuZGF0YSkgOiBldi5kYXRhO1xyXG4gICAgbGV0IF90aGlzID0gdGhpcztcclxuICAgIGlmIChkYXRhLmV2ZW50VHlwZSA9PSBcImNoYW5nZVRhYmxlU2l6ZVwiKSB7XHJcbiAgICAgIGNvbnN0IHsgcGF5bG9hZCB9ID0gZGF0YTtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIHBheWxvYWQuc2l6ZSA9PSBcImRlZmF1bHRcIiB8fFxyXG4gICAgICAgIHBheWxvYWQuc2l6ZSA9PSBcInNtYWxsXCIgfHxcclxuICAgICAgICBwYXlsb2FkLnNpemUgPT0gXCJtaWRkbGVcIlxyXG4gICAgICApIHtcclxuICAgICAgICBfdGhpcy5zZXRTdGF0ZSh7IHRhYmxlU2l6ZTogcGF5bG9hZC5zaXplIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfTtcclxuICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzLCBwcmVTdGF0ZSkge1xyXG4gICAgY29uc3QgeyByZXNpemVDb2x1bW4gfSA9IHRoaXMucHJvcHM7XHJcbiAgICBpZiAoIXJlc2l6ZUNvbHVtbikge1xyXG4gICAgICBpZiAodGhpcy5wcm9wcy5jb2x1bW5zICE9PSBwcmV2UHJvcHMuY29sdW1ucykge1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoeyBjb2x1bW5zOiB0aGlzLnByb3BzLmNvbHVtbnMgfSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmIChwcmVTdGF0ZS5jb2xzICE9PSB0aGlzLnN0YXRlLmNvbHMpIHtcclxuICAgICAgICB0aGlzLnJlc2V0Q29sdW1uKCk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHByZXZQcm9wcy5zaXplICE9PSB0aGlzLnByb3BzLnNpemUpIHtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHsgdGFibGVTaXplOiB0aGlzLnByb3BzLnNpemUgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlc2V0Q29sdW1uKCkge1xyXG4gICAgY29uc3QgeyBjb2xzIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3QgbmV3Q29sczogYW55ID0gW107XHJcbiAgICBsZXQgY29sc3MgPSBjb2xzIHx8IFtdO1xyXG4gICAgY29sc3MubWFwKChjb2w6IGFueSwgaW5kZXg6IGFueSkgPT4ge1xyXG4gICAgICBsZXQgdGVtcCA9IHtcclxuICAgICAgICAuLi5jb2wsXHJcbiAgICAgICAgb25IZWFkZXJDZWxsOiAoY29sdW1uOiB7IHdpZHRoOiBhbnkgfSkgPT4gKHtcclxuICAgICAgICAgIHdpZHRoOiBjb2x1bW4ud2lkdGgsXHJcbiAgICAgICAgICBvblJlc2l6ZTogdGhpcy5oYW5kbGVSZXNpemUoaW5kZXgpLFxyXG4gICAgICAgIH0pLFxyXG4gICAgICB9O1xyXG4gICAgICBuZXdDb2xzLnB1c2godGVtcCk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBjb2x1bW5zOiBuZXdDb2xzLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDmuIXpmaTpgInkuK3popzoibJcclxuICAgKi9cclxuICBjbGVhclNlbGVjdENvbG9yKCkge1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7IGFjdGl2ZUluZGV4OiAtMSB9KTtcclxuICAgIHJldHVybiB0aGlzO1xyXG4gIH1cclxuXHJcbiAgZ2V0UGFnaW5hdGlvbkJ5U3RvcmUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5nZXRQYWdpbmF0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBvbkNoYW5nZShwYWdpbmF0aW9uLCBmaWx0ZXJzLCBzb3J0ZXIsIGV4dHJhKSB7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIGF1dG9PbkNoYW5nZSA9IHRydWUsXHJcbiAgICAgIGF1dG9Tb3J0LFxyXG4gICAgICBhdXRvUGFnaW5hdGlvbixcclxuICAgICAgb25DaGFuZ2UsXHJcbiAgICB9ID0gdGhpcy5wcm9wcztcclxuXHJcbiAgICBjb25zdCB7IGZpbHRlclBhcmFtcyB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGNvbnN0IGlzTXVsdGlwbGUgPSBBcnJheS5pc0FycmF5KHNvcnRlcik7XHJcbiAgICBpZiAoYXV0b09uQ2hhbmdlID09PSBmYWxzZSkge1xyXG4gICAgICBvbkNoYW5nZSAmJiBvbkNoYW5nZShwYWdpbmF0aW9uLCBmaWx0ZXJzLCBzb3J0ZXIsIGV4dHJhKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgaGFuZGxlUGFnaW5hdGlvbiA9ICgpID0+IHtcclxuICAgICAgbGV0IHBhcmFtcyA9IHt9IGFzIHtcclxuICAgICAgICBzaXplPzogc3RyaW5nO1xyXG4gICAgICAgIHBhZ2VTaXplPzogc3RyaW5nO1xyXG4gICAgICAgIGFzY3M/OiBzdHJpbmc7XHJcbiAgICAgICAgZGVzY3M/OiBzdHJpbmc7XHJcbiAgICAgICAgW3Byb3BOYW1lOiBzdHJpbmddOiBzdHJpbmc7XHJcbiAgICAgIH07XHJcblxyXG4gICAgICBjb25zdCBwYWdpbmcgPSB0aGlzLmdldFBhZ2luYXRpb25CeVN0b3JlKCkgfHwge307XHJcblxyXG4gICAgICBpZiAoIWlzRW1wdHlPYmoocGFnaW5hdGlvbikpIHtcclxuICAgICAgICBjb25zdCBwID0ge1xyXG4gICAgICAgICAgW3BhZ2luZy5jdXJyZW50S2V5IHx8IFwiY3VycmVudFwiXTogcGFnaW5hdGlvbi5jdXJyZW50LFxyXG4gICAgICAgICAgW3BhZ2luZy5wYWdlU2l6ZUtleSB8fCBcInNpemVcIl06IHBhZ2luYXRpb24ucGFnZVNpemUsXHJcbiAgICAgICAgfTtcclxuICAgICAgICBPYmplY3QuYXNzaWduKHBhcmFtcywgcCk7XHJcbiAgICAgIH1cclxuICAgICAgbGV0IGFzY1BhcmFtcyA9IHRoaXMuZ2V0U29ydFBhcmFtKHNvcnRlciwgdHJ1ZSk7XHJcbiAgICAgIGlmIChpc011bHRpcGxlKSB7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IHNvcnRlciB9KTtcclxuICAgICAgfSBlbHNlIGlmICghaXNNdWx0aXBsZSAmJiAhaXNFbXB0eU9iaihzb3J0ZXIpKSB7XHJcbiAgICAgICAgc29ydGVyLmNvbHVtbiAmJlxyXG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IHNvcnRlcjogW3NvcnRlcl0sIGRlZmF1bHRTb3J0OiBmYWxzZSB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHsgc29ydGVyOiBbXSB9KTtcclxuICAgICAgfVxyXG4gICAgICBwYXJhbXMgPSB7IC4uLmZpbHRlclBhcmFtcywgLi4ucGFyYW1zLCAuLi5hc2NQYXJhbXMgfTtcclxuICAgICAgYXV0b1NvcnQgJiYgdGhpcy5zdG9yZS5yZWxvYWQoeyBwYXJhbXMgfSk7XHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IG9uQ2hhbmdlRm4gPSB0aGlzLnByb3BzLm9uQ2hhbmdlO1xyXG5cclxuICAgIGF1dG9QYWdpbmF0aW9uICYmIGhhbmRsZVBhZ2luYXRpb24oKTtcclxuICAgIC8vIOeUqOaIt+S8oOS6hm9uQ2hhbmdl5L+d55WZ55So5oi36Ieq5Li75aSE55CG6KGo5qC85Y+Y5YyW55qE5p2D5YqbXHJcbiAgICBpZiAob25DaGFuZ2VGbikge1xyXG4gICAgICB1dGlscy5jYWxsYmFjayhvbkNoYW5nZUZuLCB0aGlzLCBbcGFnaW5hdGlvbiwgZmlsdGVycywgc29ydGVyLCBleHRyYV0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0U3RvcmUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdG9yZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOiOt+WPluaVsOaNruaooeWei+WvueixoVxyXG4gICAqL1xyXG4gIGdldE1vZGVsKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuZ2V0TW9kZWwoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOiPnOWNleaQnOe0oui/h+a7pOaYvuekulxyXG4gICAqIEBwYXJhbSB7U3RyaW5nfSB2YWxcclxuICAgKi9cclxuICBoYW5kbGVTZWFyY2godmFsLCBmaWVsZE9wdGlvbiwgc2VhcmNoQ29sb3IpIHtcclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBzZWFyY2hUZXh0OiB2YWwsXHJcbiAgICAgIGZpZWxkT3B0aW9uOiBmaWVsZE9wdGlvbixcclxuICAgICAgc2VhcmNoQ29sb3I6IHNlYXJjaENvbG9yLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDmqKHlnZfliJfooajnp7vliqjmjpLluo9cclxuICAgKi9cclxuICBtb3ZlUm93ID0gKGRyYWdJbmRleCwgaG92ZXJJbmRleCwgZHJhZywgdGFyZ2V0KSA9PiB7XHJcbiAgICBjb25zdCBfdGhpcyA9IHRoaXM7XHJcbiAgICBsZXQgZHJhZ05vZGUgPSBkcmFnLnJlY29yZDtcclxuICAgIGxldCB0YXJnZXROb2RlID0gdGFyZ2V0LnJlY29yZDtcclxuICAgIGRyYWdOb2RlLm1vdmVBcnJheShkcmFnTm9kZSwgdGFyZ2V0Tm9kZSk7XHJcbiAgICBsZXQgaWRzID0gZHJhZ05vZGUucGFyZW50Tm9kZS5nZXRDaGlsZE5vZGVJZHMoKTtcclxuICAgIGxldCBwYXJhbXMgPSB7XHJcbiAgICAgIGlkOiBkcmFnTm9kZS5pZCxcclxuICAgICAgcGFyZW50SWQ6IGRyYWdOb2RlLmF0dHJpYnV0ZS5wYXJlbnRJZCxcclxuICAgICAgaWRzOiBpZHMsXHJcbiAgICB9O1xyXG5cclxuICAgIGlmICh0aGlzLnByb3BzLm1vdmVSb3cpIHtcclxuICAgICAgdGhpcy5wcm9wcy5tb3ZlUm93KHBhcmFtcyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnN0b3JlLnJlbG9hZCgpO1xyXG4gICAgfVxyXG4gIH07XHJcblxyXG4gIGZpbHRlckNvbHVtbihjaGVja2VkVmFsdWUpIHtcclxuICAgIGlmIChjaGVja2VkVmFsdWUubGVuZ3RoID09IDApIHtcclxuICAgICAgbWVzc2FnZS53YXJuaW5nKFwi6Iez5bCR5pi+56S65LiA5YiX77yBXCIpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCBmaWx0ZXJDb2x1bW5zID0gdGhpcy5wcm9wcy5jb2x1bW5zLm1hcCgoY29sOiBDb2x1bW5UeXBlPHt9PikgPT4ge1xyXG4gICAgICBjb25zdCBuZXdDb2wgPSB7IC4uLmNvbCB9IGFzIENvbHVtblR5cGU8e30+ICYgeyBpbml0U2hvdzogYm9vbGVhbiB9O1xyXG4gICAgICBpZiAoY2hlY2tlZFZhbHVlLmluY2x1ZGVzKGNvbC5kYXRhSW5kZXgpKSB7XHJcbiAgICAgICAgbmV3Q29sLmluaXRTaG93ID0gdHJ1ZTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBuZXdDb2wuaW5pdFNob3cgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gbmV3Q29sO1xyXG4gICAgfSk7XHJcbiAgICBjb25zdCB7IHJlc2l6ZUNvbHVtbiB9ID0gdGhpcy5wcm9wcztcclxuICAgIGlmICghcmVzaXplQ29sdW1uKSB7XHJcbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgIGNvbHVtbnM6IGZpbHRlckNvbHVtbnMsXHJcbiAgICAgICAgY2hlY2tDb2x1bW46IGNoZWNrZWRWYWx1ZSxcclxuICAgICAgICBkZWZhdWx0Q2hlY2s6IGZhbHNlLFxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgIGNvbHM6IGZpbHRlckNvbHVtbnMsXHJcbiAgICAgICAgY2hlY2tDb2x1bW46IGNoZWNrZWRWYWx1ZSxcclxuICAgICAgICBkZWZhdWx0Q2hlY2s6IGZhbHNlLFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbiAgZ2V0U29ydFBhcmFtKHNvcnRlciwgc29ydFN0YXRlID0gZmFsc2UpIHtcclxuICAgIGNvbnN0IGlzTXVsdGlwbGUgPSBBcnJheS5pc0FycmF5KHNvcnRlcik7XHJcbiAgICBsZXQgc29ydEluZm8gPSB7fTtcclxuICAgIGxldCBvcmRlckl0ZW1zID0gW107XHJcbiAgICBpZiAoIWlzRW1wdHlPYmooc29ydGVyKSAmJiAhaXNNdWx0aXBsZSkge1xyXG4gICAgICBvcmRlckl0ZW1zID0gW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIGNvbHVtbjogc29ydGVyLmNvbHVtbi5maWVsZCB8fCBzb3J0ZXIuY29sdW1uLmRhdGFJbmRleCxcclxuICAgICAgICAgIGFzYzogc29ydGVyLm9yZGVyID09IFwiYXNjZW5kXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgXTtcclxuICAgICAgaWYgKHNvcnRlci5jb2x1bW4pIHNvcnRJbmZvW3NvcnRlci5jb2x1bW4uZGF0YUluZGV4XSA9IHNvcnRlci5vcmRlcjtcclxuICAgIH0gZWxzZSBpZiAoaXNNdWx0aXBsZSkge1xyXG4gICAgICBzb3J0ZXIuZm9yRWFjaCgodikgPT4ge1xyXG4gICAgICAgIHNvcnRJbmZvW3YuY29sdW1uLmRhdGFJbmRleF0gPSB2Lm9yZGVyO1xyXG4gICAgICAgIGxldCBmaWVsZCA9IHYuY29sdW1uLmZpZWxkIHx8IHYuY29sdW1uLmRhdGFJbmRleDtcclxuICAgICAgICBvcmRlckl0ZW1zLnB1c2goe1xyXG4gICAgICAgICAgY29sdW1uOiBmaWVsZCxcclxuICAgICAgICAgIGFzYzogdi5vcmRlciA9PSBcImFzY2VuZFwiLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGlmIChzb3J0U3RhdGUpIHtcclxuICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgc29ydEluZm86IHNvcnRJbmZvLFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHJldHVybiB7IG9yZGVySXRlbXM6IEpTT04uc3RyaW5naWZ5KG9yZGVySXRlbXMpIH07XHJcbiAgfVxyXG4gIGdldENvbHVtbnMoKSB7XHJcbiAgICBjb25zdCB7IGNvbHVtbnMsIHNvcnRUeXBlLCBzb3J0SW5mbyB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGNvbnN0IHsgc29ydEZpZWxkcyA9IFtdIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgZGVmYXVsdFNob3dDb2xzID0gY29sdW1ucy5maWx0ZXIoKGNvbHMpID0+IGNvbHMuaW5pdFNob3cgIT09IGZhbHNlKTtcclxuICAgIGNvbnN0IGNvbHMgPSBkZWZhdWx0U2hvd0NvbHMubWFwKChjb2wsIGluZGV4KSA9PiB7XHJcbiAgICAgIGlmIChjb2wuZWxsaXBzaXMgJiYgIWNvbC5yZW5kZXIpIHtcclxuICAgICAgICBjb2wuZWxsaXBzaXMgPSB7XHJcbiAgICAgICAgICBzaG93VGl0bGU6IGZhbHNlLFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgY29sLnJlbmRlciA9ICh0ZXh0KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICA8VG9vbHRpcCBwbGFjZW1lbnQ9XCJ0b3BMZWZ0XCIgdGl0bGU9e3RleHR9PlxyXG4gICAgICAgICAgICAgIHt0ZXh0fVxyXG4gICAgICAgICAgICA8L1Rvb2x0aXA+XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChzb3J0RmllbGRzLmluZGV4T2YoY29sLmRhdGFJbmRleCkgPiAtMSkge1xyXG4gICAgICAgIGlmIChzb3J0VHlwZSA9PSBcInNpbmdsZVwiKSB7XHJcbiAgICAgICAgICBjb2wuc29ydGVyID0gdHJ1ZTtcclxuICAgICAgICAgIGNvbC5zb3J0T3JkZXIgPSBzb3J0SW5mb1tjb2wuZGF0YUluZGV4XVxyXG4gICAgICAgICAgICA/IHNvcnRJbmZvW2NvbC5kYXRhSW5kZXhdXHJcbiAgICAgICAgICAgIDogbnVsbDtcclxuICAgICAgICB9IGVsc2UgaWYgKHNvcnRUeXBlID09IFwibXVsdGlwbGVcIikge1xyXG4gICAgICAgICAgY29sLnNvcnRlciA9IHsgbXVsdGlwbGU6IGluZGV4IH07XHJcbiAgICAgICAgICBjb2wuc29ydE9yZGVyID0gc29ydEluZm9bY29sLmRhdGFJbmRleF1cclxuICAgICAgICAgICAgPyBzb3J0SW5mb1tjb2wuZGF0YUluZGV4XVxyXG4gICAgICAgICAgICA6IG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBjb2w7XHJcbiAgICB9KTtcclxuICAgIGNvbHMubWFwKChpdGVtLCBpbmRleCkgPT4ge1xyXG4gICAgICBpZiAoIWlzRW1wdHlPYmooaXRlbS5maWx0ZXJQcm9wcykpIHtcclxuICAgICAgICBsZXQgb2JqID0geyAuLi5pdGVtIH07XHJcbiAgICAgICAgY29uc3QgeyB0eXBlLCBwcm9wcywgc2VhcmNoS2V5IH0gPSBpdGVtLmZpbHRlclByb3BzO1xyXG4gICAgICAgIGxldCBEaXYgPSBudWxsO1xyXG4gICAgICAgIGxldCB0ZXh0ID0gaXRlbS50aXRsZTtcclxuICAgICAgICBEaXYgPSBnZXROb2RlKHR5cGUsIHtcclxuICAgICAgICAgIC4uLnByb3BzLFxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI6IGDmkJzntKIke3RleHR9YCxcclxuICAgICAgICAgIHJlZjogdGhpcy50YWJsZVNlYXJjaFJlZixcclxuICAgICAgICB9KTtcclxuICAgICAgICBvYmogPSB7XHJcbiAgICAgICAgICBmaWx0ZXJEcm9wZG93bjogKHtcclxuICAgICAgICAgICAgc2V0U2VsZWN0ZWRLZXlzLFxyXG4gICAgICAgICAgICBzZWxlY3RlZEtleXMsXHJcbiAgICAgICAgICAgIGNvbmZpcm0sXHJcbiAgICAgICAgICAgIGNsZWFyRmlsdGVycyxcclxuICAgICAgICAgIH0pID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwic2VhcmNoXCIpfT5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJzcGFjZVwiKX0+e0Rpdn08L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxTcGFjZT5cclxuICAgICAgICAgICAgICAgICAgPEJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJwcmltYXJ5XCJcclxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBjb25maXJtKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICBjb25zdCB7IGZpbHRlclBhcmFtcyB9ID0gdGhpcy5zdGF0ZTtcclxuICAgICAgICAgICAgICAgICAgICAgIGxldCBuZXdGaWx0ZXJQYXJhbXMgPSB7IC4uLmZpbHRlclBhcmFtcyB9O1xyXG4gICAgICAgICAgICAgICAgICAgICAgbGV0IGtleSA9IGl0ZW0uZmllbGQgfHwgaXRlbS5kYXRhSW5kZXg7XHJcbiAgICAgICAgICAgICAgICAgICAgICBuZXdGaWx0ZXJQYXJhbXNba2V5XSA9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudGFibGVTZWFyY2hSZWYuY3VycmVudD8uZ2V0VmFsdWUoKTtcclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJQYXJhbXM6IHsgLi4ubmV3RmlsdGVyUGFyYW1zIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNvcnRQYXJhbSA9IHRoaXMuZ2V0U29ydFBhcmFtKHRoaXMuc3RhdGUuc29ydGVyKTtcclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RvcmUubG9hZCh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtczogeyAuLi5uZXdGaWx0ZXJQYXJhbXMsIC4uLnNvcnRQYXJhbSB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiYnV0dG9uXCIpfVxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAg5p+l6K+iXHJcbiAgICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9TcGFjZT5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBmaWx0ZXJJY29uOiAoKSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiA8U2VhcmNoT3V0bGluZWQgLz47XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgLi4ub2JqLFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgY29sc1tpbmRleF0gPSBvYmo7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGNvbHM7XHJcbiAgfVxyXG4gIHJlbmRlclRvb2xCYXIoKSB7XHJcbiAgICBsZXQgeyB0YWJsZVNpemUsIGNvbHVtbnMsIHNvcnRUeXBlIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgbGV0IHsgZmlsdGVyQ29sdW1uLCBjb2x1bW5zOiBjb2xMaXN0cyB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHNpemVJdGVtID0gW1xyXG4gICAgICB7IHRpdGxlOiBcIuWuveadvlwiLCBrZXk6IFwiZGVmYXVsdFwiIH0sXHJcbiAgICAgIHsgdGl0bGU6IFwi5Lit562JXCIsIGtleTogXCJtaWRkbGVcIiB9LFxyXG4gICAgICB7IHRpdGxlOiBcIue0p+WHkVwiLCBrZXk6IFwic21hbGxcIiB9LFxyXG4gICAgXTtcclxuICAgIGNvbnN0IHNvcnRJdGVtID0gW1xyXG4gICAgICB7IHRpdGxlOiBcIuWNleWtl+auteaOkuW6j1wiLCBrZXk6IFwic2luZ2xlXCIgfSxcclxuICAgICAgeyB0aXRsZTogXCLlpJrlrZfmrrXmjpLluo9cIiwga2V5OiBcIm11bHRpcGxlXCIgfSxcclxuICAgIF07XHJcbiAgICBjb25zdCBzb3J0Q29udGVudCA9IChcclxuICAgICAgPD5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImNvdGVudC10aXRsZVwiKX1cclxuICAgICAgICAgIHN0eWxlPXt7XHJcbiAgICAgICAgICAgIGN1cnNvcjogdGhpcy5zdGF0ZS5kZWZhdWx0U29ydCA/IFwibm90LWFsbG93ZWRcIiA6IFwicG9pbnRlclwiLFxyXG4gICAgICAgICAgICBjb2xvcjogdGhpcy5zdGF0ZS5kZWZhdWx0U29ydCAmJiBcInJnYmEoMCwwLDAsLjQ1KVwiLFxyXG4gICAgICAgICAgfX1cclxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuc3RhdGUuZGVmYXVsdFNvcnQpIHtcclxuICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IHNvcnRlcjogW10sIHNvcnRJbmZvOiB7fSwgZGVmYXVsdFNvcnQ6IHRydWUgfSk7XHJcbiAgICAgICAgICAgIGNvbnN0IHBhcmFtcyA9IHsgLi4udGhpcy5zdGF0ZS5maWx0ZXJQYXJhbXMgfTtcclxuICAgICAgICAgICAgdGhpcy5zdG9yZS5yZWxvYWQoeyBwYXJhbXMgfSk7XHJcbiAgICAgICAgICB9fVxyXG4gICAgICAgID5cclxuICAgICAgICAgIOaBouWkjem7mOiupOaOkuW6j1xyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIHtzb3J0SXRlbS5tYXAoKGl0ZW0sIGluZGV4KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAga2V5PXtpdGVtLmtleX1cclxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgICAgICAgc29ydGVyOiBbXSxcclxuICAgICAgICAgICAgICAgICAgc29ydEluZm86IHt9LFxyXG4gICAgICAgICAgICAgICAgICBzb3J0VHlwZTogaXRlbS5rZXksXHJcbiAgICAgICAgICAgICAgICAgIGRlZmF1bHRTb3J0OiBmYWxzZSxcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcGFyYW1zID0geyAuLi50aGlzLnN0YXRlLmZpbHRlclBhcmFtcyB9O1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zdG9yZS5yZWxvYWQoeyBwYXJhbXMgfSk7XHJcbiAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIHtzb3J0VHlwZSA9PSBpdGVtLmtleSA/IChcclxuICAgICAgICAgICAgICAgIDxhPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiY29udGVudC10aWVtXCIpfT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPXt7IHdpZHRoOiAyMCB9fT5cclxuICAgICAgICAgICAgICAgICAgICAgIHtzb3J0VHlwZSA9PSBpdGVtLmtleSAmJiA8Q2hlY2tPdXRsaW5lZCAvPn1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2PiB7aXRlbS50aXRsZX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJjb250ZW50LXRpZW1cIil9PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPXt7IHdpZHRoOiAyMCB9fT48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdj4ge2l0ZW0udGl0bGV9PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfSl9XHJcbiAgICAgICAge3RoaXMuc3RhdGUuc29ydGVyLmxlbmd0aCA+IDAgJiYgKFxyXG4gICAgICAgICAgPD5cclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiY290ZW50LXRpdGxlXCIpfVxyXG4gICAgICAgICAgICAgIHN0eWxlPXt7IGNvbG9yOiBcInJnYmEoMCwwLDAsLjQ1KVwiIH19XHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICDlvZPliY3mjpLluo9cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIHt0aGlzLnN0YXRlLnNvcnRlci5tYXAoKGl0ZW0sIGluZGV4KSA9PiB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJjb250ZW50LXRpZW1cIil9IGtleT17aW5kZXh9PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPXt7IHdpZHRoOiAyMCB9fT5cclxuICAgICAgICAgICAgICAgICAgICB7aXRlbS5vcmRlciA9PSBcImFzY2VuZFwiID8gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgPFNvcnRBc2NlbmRpbmdPdXRsaW5lZCAvPlxyXG4gICAgICAgICAgICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICA8U29ydERlc2NlbmRpbmdPdXRsaW5lZCAvPlxyXG4gICAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2PiB7aXRlbS5jb2x1bW4udGl0bGV9PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9KX1cclxuICAgICAgICAgIDwvPlxyXG4gICAgICAgICl9XHJcbiAgICAgIDwvPlxyXG4gICAgKTtcclxuICAgIGNvbnN0IHNpemVDb250ZW50ID0gKFxyXG4gICAgICA8PlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJjb3RlbnQtdGl0bGVcIil9PuihqOagvOWvhuW6pjwvZGl2PlxyXG4gICAgICAgIHtzaXplSXRlbS5tYXAoKGl0ZW0sIGluZGV4KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAga2V5PXtpdGVtLmtleX1cclxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgICAgICAgdGFibGVTaXplOiBpdGVtLmtleSxcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICB7dGFibGVTaXplID09IGl0ZW0ua2V5ID8gKFxyXG4gICAgICAgICAgICAgICAgPGE+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJjb250ZW50LXRpZW1cIil9PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9e3sgd2lkdGg6IDIwIH19PlxyXG4gICAgICAgICAgICAgICAgICAgICAge3RhYmxlU2l6ZSA9PSBpdGVtLmtleSAmJiA8Q2hlY2tPdXRsaW5lZCAvPn1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2PiB7aXRlbS50aXRsZX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJjb250ZW50LXRpZW1cIil9PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPXt7IHdpZHRoOiAyMCB9fT48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdj4ge2l0ZW0udGl0bGV9PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfSl9XHJcbiAgICAgIDwvPlxyXG4gICAgKTtcclxuXHJcbiAgICBjb25zdCBkZWZhdWx0U2hvd0NvbHMgPSBjb2x1bW5zLmZpbHRlcigoY29scykgPT4gY29scy5pbml0U2hvdyAhPT0gZmFsc2UpO1xyXG5cclxuICAgIGNvbnN0IGNvbnRlbnQgPSAoXHJcbiAgICAgIDxDaGVja2JveC5Hcm91cFxyXG4gICAgICAgIG9uQ2hhbmdlPXt0aGlzLmZpbHRlckNvbHVtbi5iaW5kKHRoaXMpfVxyXG4gICAgICAgIG9wdGlvbnM9e2NvbExpc3RzLm1hcChcclxuICAgICAgICAgIChjb2w6IENvbHVtblR5cGU8e30+ICYgeyBmaWx0ZXJDb2x1bW46IGJvb2xlYW47IGRhdGFJbmRleDogYW55IH0pID0+IHtcclxuICAgICAgICAgICAgaWYgKCFjb2wuZGF0YUluZGV4KSB7XHJcbiAgICAgICAgICAgICAgY29sLmRhdGFJbmRleCA9IGNvbC50aXRsZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgIGxhYmVsOiBjb2wudGl0bGUsXHJcbiAgICAgICAgICAgICAgdmFsdWU6IGNvbC5kYXRhSW5kZXgsXHJcbiAgICAgICAgICAgICAgZGlzYWJsZWQ6IGNvbC5maWx0ZXJDb2x1bW4gPT09IGZhbHNlLFxyXG4gICAgICAgICAgICB9IGFzIENoZWNrYm94T3B0aW9uVHlwZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICApfVxyXG4gICAgICAgIC8vIGRlZmF1bHRWYWx1ZT17ZGVmYXVsdFNob3dDb2xzLm1hcCgoY29sKSA9PiBjb2wuZGF0YUluZGV4KX1cclxuICAgICAgICB2YWx1ZT17XHJcbiAgICAgICAgICB0aGlzLnN0YXRlLmRlZmF1bHRDaGVja1xyXG4gICAgICAgICAgICA/IGRlZmF1bHRTaG93Q29scy5tYXAoKGNvbCkgPT4gY29sLmRhdGFJbmRleClcclxuICAgICAgICAgICAgOiB0aGlzLnN0YXRlLmNoZWNrQ29sdW1uXHJcbiAgICAgICAgfVxyXG4gICAgICA+PC9DaGVja2JveC5Hcm91cD5cclxuICAgICk7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwidGFibGUtdG9vbC1iYXJcIil9PlxyXG4gICAgICAgIHtmaWx0ZXJDb2x1bW4gJiYgKFxyXG4gICAgICAgICAgPGRpdiBzdHlsZT17eyBmb250U2l6ZTogMTQgfX0+XHJcbiAgICAgICAgICAgIDxQb3BvdmVyXHJcbiAgICAgICAgICAgICAgdGl0bGU9XCLpgInmi6nmmL7npLrnmoTliJdcIlxyXG4gICAgICAgICAgICAgIGNvbnRlbnQ9e2NvbnRlbnR9XHJcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tUmlnaHRcIlxyXG4gICAgICAgICAgICAgIHRyaWdnZXI9XCJjbGlja1wiXHJcbiAgICAgICAgICAgICAgb3ZlcmxheVN0eWxlPXt7IG1pbldpZHRoOiA0MTAsIG1heFdpZHRoOiA0NTAgfX1cclxuICAgICAgICAgICAgICAvLyBnZXRQb3B1cENvbnRhaW5lcj17KCkgPT4gdGhpcy50aEljb25SZWYuY3VycmVudH1cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxBcHBzdG9yZU91dGxpbmVkIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiYXBwLXN0b3JlLWljb25cIil9IC8+XHJcbiAgICAgICAgICAgIDwvUG9wb3Zlcj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICl9XHJcbiAgICAgICAgPGRpdiBzdHlsZT17eyBtYXJnaW5SaWdodDogOCwgZm9udFNpemU6IDE0IH19PlxyXG4gICAgICAgICAgPFBvcG92ZXIgcGxhY2VtZW50PVwiYm90dG9tXCIgY29udGVudD17c29ydENvbnRlbnR9IHRyaWdnZXI9XCJjbGlja1wiPlxyXG4gICAgICAgICAgICA8U29ydEFzY2VuZGluZ091dGxpbmVkIC8+XHJcbiAgICAgICAgICA8L1BvcG92ZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBzdHlsZT17eyBtYXJnaW5SaWdodDogOCwgZm9udFNpemU6IDE0IH19PlxyXG4gICAgICAgICAgPFBvcG92ZXIgcGxhY2VtZW50PVwiYm90dG9tXCIgY29udGVudD17c2l6ZUNvbnRlbnR9IHRyaWdnZXI9XCJjbGlja1wiPlxyXG4gICAgICAgICAgICA8Q29sdW1uSGVpZ2h0T3V0bGluZWQgLz5cclxuICAgICAgICAgIDwvUG9wb3Zlcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICApO1xyXG4gIH1cclxuICByZW5kZXIoKSB7XHJcbiAgICBsZXQgX3RoaXMgPSB0aGlzLFxyXG4gICAgICB7XHJcbiAgICAgICAgbG9hZGluZyxcclxuICAgICAgICBkYXRhU291cmNlLFxyXG4gICAgICAgIHBhZ2luYXRpb24gPSB7fSxcclxuICAgICAgICBzZWFyY2hUZXh0LFxyXG4gICAgICAgIGZpZWxkT3B0aW9uLFxyXG4gICAgICAgIHNlYXJjaENvbG9yLFxyXG4gICAgICAgIHRhYmxlU2l6ZSxcclxuICAgICAgfSA9IHRoaXMuc3RhdGUsXHJcbiAgICAgIHByb3BzID0gdXRpbHMub21pdChcclxuICAgICAgICB0aGlzLnByb3BzLFxyXG4gICAgICAgIFtcclxuICAgICAgICAgIFwic3RvcmVcIixcclxuICAgICAgICAgIFwib25DaGFuZ2VcIixcclxuICAgICAgICAgIFwiY29sdW1uc1wiLFxyXG4gICAgICAgICAgXCJyZXNldENvbHVtblwiLFxyXG4gICAgICAgICAgXCJ0b29sYmFyXCIsXHJcbiAgICAgICAgICBcInNvcnRGaWVsZHNcIixcclxuICAgICAgICAgIFwiZmlsdGVyQ29sdW1uXCIsXHJcbiAgICAgICAgXSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICByb3dLZXk6IFwiaWRcIixcclxuICAgICAgICAgIGNsaWNrQ2hhbmdlQ29sb3I6IGZhbHNlLFxyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICAgIGlmIChwcm9wcy5wYWdpbmF0aW9uICE9PSBmYWxzZSkge1xyXG4gICAgICBwcm9wcy5wYWdpbmF0aW9uID0ge1xyXG4gICAgICAgIHBvc2l0aW9uOiBbXCJib3R0b21SaWdodFwiXSxcclxuICAgICAgICBzaG93U2l6ZUNoYW5nZXI6IHRydWUsXHJcbiAgICAgICAgc2hvd1F1aWNrSnVtcGVyOiB0cnVlLFxyXG4gICAgICAgIC4uLnByb3BzLnBhZ2luYXRpb24sXHJcbiAgICAgICAgLi4ucGFnaW5hdGlvbixcclxuICAgICAgfTtcclxuICAgICAgaWYgKHByb3BzLnNob3dUb3RhbCA9PSB0cnVlKSB7XHJcbiAgICAgICAgcHJvcHMucGFnaW5hdGlvbi5zaG93VG90YWwgPSBmdW5jdGlvbiAodG90YWwsIFtmcm9tLCB0b10pIHtcclxuICAgICAgICAgIC8vIHJldHVybiBcIuaYvuekuiBcIiArIGZyb20gKyBcIiAtIFwiICsgdG8gKyBcIuadoe+8jOWFsSBcIiArIHRvdGFsICsgXCIg5p2hXCI7XHJcbiAgICAgICAgICByZXR1cm4gXCLlhbEgXCIgKyB0b3RhbCArIFwiIOadoVwiO1xyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHByb3BzLm9uQ2hhbmdlID0gZnVuY3Rpb24gKHBhZ2luYXRpb24sIGZpbHRlcnMsIHNvcnRlciwgZXh0cmEpIHtcclxuICAgICAgX3RoaXMub25DaGFuZ2UocGFnaW5hdGlvbiwgZmlsdGVycywgc29ydGVyLCBleHRyYSk7XHJcbiAgICB9O1xyXG4gICAgaWYgKHByb3BzLmNsaWNrQ2hhbmdlQ29sb3IpIHtcclxuICAgICAgY29uc3Qgb25Sb3dGbiA9IHByb3BzLm9uUm93O1xyXG4gICAgICBwcm9wcy5vblJvdyA9IGZ1bmN0aW9uIChyZWNvcmQsIGluZGV4KSB7XHJcbiAgICAgICAgdmFyIGN1c3RvbSA9IG9uUm93Rm4gPyBvblJvd0ZuKHJlY29yZCwgaW5kZXgpIDoge307XHJcbiAgICAgICAgY29uc3Qgb25DbGlja0ZuID0gY3VzdG9tLm9uQ2xpY2s7XHJcbiAgICAgICAgY3VzdG9tLm9uQ2xpY2sgPSAoZXZlbnQpID0+IHtcclxuICAgICAgICAgIF90aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgYWN0aXZlSW5kZXg6IGluZGV4LCAvL+iOt+WPlueCueWHu+ihjOeahOe0ouW8lVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICB1dGlscy5jYWxsYmFjayhvbkNsaWNrRm4sIF90aGlzLCBbZXZlbnRdKTtcclxuICAgICAgICB9O1xyXG4gICAgICAgIHJldHVybiBjdXN0b207XHJcbiAgICAgIH07XHJcbiAgICAgIHByb3BzLnJvd0NsYXNzTmFtZSA9IGZ1bmN0aW9uIChyZWNvcmQsIGluZGV4KSB7XHJcbiAgICAgICAgcmV0dXJuIGluZGV4ID09PSBfdGhpcy5zdGF0ZS5hY3RpdmVJbmRleFxyXG4gICAgICAgICAgPyBgJHtzdHlsZXMuY2xpY2tSb3dTdHlsZX1gXHJcbiAgICAgICAgICA6IFwiXCI7XHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICBsZXQgbmV3RGF0YVNvdXJjZSA9IFtdO1xyXG4gICAgaWYgKHNlYXJjaFRleHQpIHtcclxuICAgICAgY29uc3QgZGF0YSA9IHRyZWVVdGlscy5nZXRTZWFyY2hNZW51RGF0YXMoXHJcbiAgICAgICAgdGhpcyxcclxuICAgICAgICBzZWFyY2hUZXh0LFxyXG4gICAgICAgIGZpZWxkT3B0aW9uLFxyXG4gICAgICAgIHNlYXJjaENvbG9yXHJcbiAgICAgICk7XHJcbiAgICAgIG5ld0RhdGFTb3VyY2UgPSBkYXRhLnRyZWVEYXRhcztcclxuICAgICAgcHJvcHMuZXhwYW5kZWRSb3dLZXlzID0gZGF0YS5vcGVuS2V5cztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIG5ld0RhdGFTb3VyY2UgPSBkYXRhU291cmNlO1xyXG4gICAgfVxyXG4gICAgcHJvcHMuc3RvcmUgPSBwcm9wcy5zdG9yZSB8fCB7fTtcclxuICAgIHByb3BzLnN0b3JlLmF1dG9Mb2FkID0gcHJvcHMuc3RvcmUuYXV0b0xvYWQgPT09IGZhbHNlID8gZmFsc2UgOiB0cnVlO1xyXG4gICAgY29uc3QgeyBkcmFnYWJsZSB9ID0gX3RoaXMucHJvcHM7XHJcbiAgICBjb25zdCBkcmFnYWJsZVByb3BzID1cclxuICAgICAgZHJhZ2FibGUgPT09IHRydWVcclxuICAgICAgICA/IHtcclxuICAgICAgICAgICAgY29tcG9uZW50czogQm9keVJvd0NvbXBvbmVudCxcclxuICAgICAgICAgICAgb25Sb3c6IChyZWNvcmQsIGluZGV4KSA9PiAoe1xyXG4gICAgICAgICAgICAgIGluZGV4LFxyXG4gICAgICAgICAgICAgIHJlY29yZCxcclxuICAgICAgICAgICAgICBtb3ZlUm93OiB0aGlzLm1vdmVSb3csXHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIDoge307XHJcbiAgICBsZXQgeyByZXNpemVDb2x1bW4gfSA9IHRoaXMucHJvcHM7XHJcblxyXG4gICAgY29uc3QgcmVzaXplUHJvcHMgPVxyXG4gICAgICByZXNpemVDb2x1bW4gPT09IHRydWUgPyB7IGNvbXBvbmVudHM6IHRoaXMuY29tcG9uZW50cyB9IDogbnVsbDtcclxuXHJcbiAgICBjb25zdCBEZWZhdWx0VGFibGUgPSAoXHJcbiAgICAgIDw+XHJcbiAgICAgICAge3RoaXMucHJvcHMudG9vbGJhciAmJiB0aGlzLnJlbmRlclRvb2xCYXIoKX1cclxuICAgICAgICA8VGFibGVcclxuICAgICAgICAgIGNoaWxkcmVuQ29sdW1uTmFtZT1cImNoaWxkTm9kZXNcIlxyXG4gICAgICAgICAgZGF0YVNvdXJjZT17bmV3RGF0YVNvdXJjZX1cclxuICAgICAgICAgIGNvbHVtbnM9e3RoaXMuZ2V0Q29sdW1ucygpfVxyXG4gICAgICAgICAgbG9hZGluZz17bG9hZGluZ31cclxuICAgICAgICAgIGNsYXNzTmFtZT17c3R5bGVzW1wibnNjLXRhYmxlXCJdfVxyXG4gICAgICAgICAgbG9jYWxlPXt7IGVtcHR5VGV4dDogPE5vRGF0YSAvPiB9fVxyXG4gICAgICAgICAgc2Nyb2xsPXt7IHg6IFwibWF4LWNvbnRlbnRcIiB9fVxyXG4gICAgICAgICAgey4uLnJlc2l6ZVByb3BzfVxyXG4gICAgICAgICAgey4uLnByb3BzfVxyXG4gICAgICAgICAgey4uLmRyYWdhYmxlUHJvcHN9XHJcbiAgICAgICAgICBzaXplPXt0YWJsZVNpemV9XHJcbiAgICAgICAgLz5cclxuICAgICAgPC8+XHJcbiAgICApO1xyXG5cclxuICAgIHJldHVybiBkcmFnYWJsZSA9PT0gdHJ1ZSA/IChcclxuICAgICAgPERuZFByb3ZpZGVyIGJhY2tlbmQ9e0hUTUw1QmFja2VuZH0+e0RlZmF1bHRUYWJsZX08L0RuZFByb3ZpZGVyPlxyXG4gICAgKSA6IChcclxuICAgICAgRGVmYXVsdFRhYmxlXHJcbiAgICApO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgd2l0aFpoTG9jYWxlKE5TQ1RhYmxlKTtcclxuIl19
|
|
958
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2Jhc2UvdGFibGUvaW5kZXgudHN4Il0sIm5hbWVzIjpbIkFwcHN0b3JlT3V0bGluZWQiLCJDaGVja091dGxpbmVkIiwiQ29sdW1uSGVpZ2h0T3V0bGluZWQiLCJTZWFyY2hPdXRsaW5lZCIsIlNvcnRBc2NlbmRpbmdPdXRsaW5lZCIsIlNvcnREZXNjZW5kaW5nT3V0bGluZWQiLCJpc0VtcHR5T2JqIiwiU3RvcmUiLCJQYWdlU3RvcmUiLCJ1dGlscyIsIlJlYWN0IiwiRG5kUHJvdmlkZXIiLCJCb2R5Um93IiwiRG5kQ29udGV4dFR5cGUiLCJJQm9keVJvd1Byb3BzIiwidHJlZVV0aWxzIiwic3R5bGVzIiwiQm9keVJvd0NvbXBvbmVudCIsIkhUTUw1QmFja2VuZCIsIndpdGhaaExvY2FsZSIsIlJlc2l6YWJsZSIsImdldExlc3MiLCJnZXROb2RlIiwiTm9EYXRhIiwiZ2V0U3RvcmFnZSIsIlJlc2l6ZWFibGVUaXRsZSIsInByb3BzIiwib25SZXNpemUiLCJ3aWR0aCIsInJlc3RQcm9wcyIsImVuYWJsZVVzZXJTZWxlY3RIYWNrIiwiTlNDVGFibGUiLCJjcmVhdGVSZWYiLCJvbkJlZm9yZUxvYWQiLCJsb2FkIiwiaGVhZGVyIiwiY2VsbCIsImluZGV4IiwiZSIsInNpemUiLCJjb2xzIiwic3RhdGUiLCJuZXh0Q29sdW1ucyIsInNldFN0YXRlIiwiZXYiLCJkYXRhIiwiSlNPTiIsInBhcnNlIiwiX3RoaXMiLCJldmVudFR5cGUiLCJwYXlsb2FkIiwidGFibGVTaXplIiwiZHJhZ0luZGV4IiwiaG92ZXJJbmRleCIsImRyYWciLCJ0YXJnZXQiLCJkcmFnTm9kZSIsInJlY29yZCIsInRhcmdldE5vZGUiLCJtb3ZlQXJyYXkiLCJpZHMiLCJwYXJlbnROb2RlIiwiZ2V0Q2hpbGROb2RlSWRzIiwicGFyYW1zIiwiaWQiLCJwYXJlbnRJZCIsImF0dHJpYnV0ZSIsIm1vdmVSb3ciLCJzdG9yZSIsInJlbG9hZCIsIm1vZGFsIiwidHlwZSIsInN0b3JlUHJlZml4IiwiYXV0b1R5cGUiLCJjb250ZW50IiwiZGF0YVNvdXJjZSIsImNvbHVtbnMiLCJsb2FkaW5nIiwicGFnaW5hdGlvbiIsImFjdGl2ZUluZGV4Iiwic2VhcmNoVGV4dCIsImZpZWxkT3B0aW9uIiwic2VhcmNoQ29sb3IiLCJzb3J0cyIsImZpbHRlclBhcmFtcyIsInNvcnRUeXBlIiwic29ydGVyIiwic29ydEluZm8iLCJkZWZhdWx0U29ydCIsImNoZWNrQ29sdW1uIiwiZGVmYXVsdENoZWNrIiwibGlzdGVuZXJzIiwibGlzdGVuZXJzUHJvcHMiLCJyZXN0U3RvcmUiLCJzdG9yZVByb3BzIiwibW9kZWwiLCJjb21wb25lbnQiLCJvcHRpb25zIiwiY2FsbGJhY2siLCJkYXRhQ2hhbmdlZCIsIm1vZGVsRGF0YSIsInBhZ2luZyIsImdldFBhZ2luYXRpb24iLCJvbkVycm9yTG9hZCIsImVyciIsInJlc3BvbnNlIiwiYXV0b0xvYWQiLCJPYmplY3QiLCJhc3NpZ24iLCJjdXJyZW50IiwicmVzaXplQ29sdW1uIiwic2V0RGF0YSIsIndpbmRvdyIsImFkZEV2ZW50TGlzdGVuZXIiLCJsaXN0ZW5NZXNzYWdlIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsInByZXZQcm9wcyIsInByZVN0YXRlIiwicmVzZXRDb2x1bW4iLCJuZXdDb2xzIiwiY29sc3MiLCJtYXAiLCJjb2wiLCJ0ZW1wIiwib25IZWFkZXJDZWxsIiwiY29sdW1uIiwiaGFuZGxlUmVzaXplIiwicHVzaCIsImZpbHRlcnMiLCJleHRyYSIsImF1dG9PbkNoYW5nZSIsImF1dG9Tb3J0IiwiYXV0b1BhZ2luYXRpb24iLCJvbkNoYW5nZSIsImlzTXVsdGlwbGUiLCJBcnJheSIsImlzQXJyYXkiLCJoYW5kbGVQYWdpbmF0aW9uIiwiZ2V0UGFnaW5hdGlvbkJ5U3RvcmUiLCJwIiwiY3VycmVudEtleSIsInBhZ2VTaXplS2V5IiwicGFnZVNpemUiLCJhc2NQYXJhbXMiLCJnZXRTb3J0UGFyYW0iLCJvbkNoYW5nZUZuIiwiZ2V0TW9kZWwiLCJ2YWwiLCJjaGVja2VkVmFsdWUiLCJsZW5ndGgiLCJ3YXJuaW5nIiwiZmlsdGVyQ29sdW1ucyIsIm5ld0NvbCIsImluY2x1ZGVzIiwiZGF0YUluZGV4IiwiaW5pdFNob3ciLCJzb3J0U3RhdGUiLCJvcmRlckl0ZW1zIiwiZmllbGQiLCJhc2MiLCJvcmRlciIsImZvckVhY2giLCJ2Iiwic3RyaW5naWZ5Iiwic29ydEZpZWxkcyIsImRlZmF1bHRTaG93Q29scyIsImZpbHRlciIsImVsbGlwc2lzIiwicmVuZGVyIiwic2hvd1RpdGxlIiwidGV4dCIsImluZGV4T2YiLCJzb3J0T3JkZXIiLCJtdWx0aXBsZSIsIml0ZW0iLCJmaWx0ZXJQcm9wcyIsIm9iaiIsInNlYXJjaEtleSIsIkRpdiIsInRpdGxlIiwicGxhY2Vob2xkZXIiLCJyZWYiLCJ0YWJsZVNlYXJjaFJlZiIsImZpbHRlckRyb3Bkb3duIiwic2V0U2VsZWN0ZWRLZXlzIiwic2VsZWN0ZWRLZXlzIiwiY29uZmlybSIsImNsZWFyRmlsdGVycyIsIm5ld0ZpbHRlclBhcmFtcyIsImtleSIsImdldFZhbHVlIiwic29ydFBhcmFtIiwiZmlsdGVySWNvbiIsImZpbHRlckNvbHVtbiIsImNvbExpc3RzIiwic2l6ZUl0ZW0iLCJzb3J0SXRlbSIsInNvcnRDb250ZW50IiwiY3Vyc29yIiwiY29sb3IiLCJzaXplQ29udGVudCIsImJpbmQiLCJsYWJlbCIsInZhbHVlIiwiZGlzYWJsZWQiLCJmb250U2l6ZSIsIm1pbldpZHRoIiwibWF4V2lkdGgiLCJtYXJnaW5SaWdodCIsIm9taXQiLCJyb3dLZXkiLCJjbGlja0NoYW5nZUNvbG9yIiwicG9zaXRpb24iLCJzaG93U2l6ZUNoYW5nZXIiLCJzaG93UXVpY2tKdW1wZXIiLCJzaG93VG90YWwiLCJ0b3RhbCIsImZyb20iLCJ0byIsIm9uUm93Rm4iLCJvblJvdyIsImN1c3RvbSIsIm9uQ2xpY2tGbiIsIm9uQ2xpY2siLCJldmVudCIsInJvd0NsYXNzTmFtZSIsImNsaWNrUm93U3R5bGUiLCJuZXdEYXRhU291cmNlIiwiZ2V0U2VhcmNoTWVudURhdGFzIiwidHJlZURhdGFzIiwiZXhwYW5kZWRSb3dLZXlzIiwib3BlbktleXMiLCJkcmFnYWJsZSIsImRyYWdhYmxlUHJvcHMiLCJjb21wb25lbnRzIiwicmVzaXplUHJvcHMiLCJEZWZhdWx0VGFibGUiLCJ0b29sYmFyIiwicmVuZGVyVG9vbEJhciIsImdldENvbHVtbnMiLCJlbXB0eVRleHQiLCJ4IiwiQ29tcG9uZW50IiwiZHJhZ1VybCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FDRUEsZ0JBREYsRUFFRUMsYUFGRixFQUdFQyxvQkFIRixFQUlFQyxjQUpGLEVBS0VDLHFCQUxGLEVBTUVDLHNCQU5GLFFBT08sbUJBUFA7QUFRQSxTQUFTQyxVQUFULFFBQTJCLG1CQUEzQjtBQUNBLE9BQU9DLEtBQVAsSUFBZ0JDLFNBQWhCLFFBQTZDLGFBQTdDO0FBQ0EsU0FBU0MsS0FBVCxRQUFzQix1QkFBdEI7QUFjQSxPQUFPLEtBQUtDLEtBQVosTUFBdUIsT0FBdkI7QUFDQSxTQUFTQyxXQUFULFFBQTRCLFdBQTVCO0FBQ0EsT0FBT0MsT0FBUCxJQUFrQkMsY0FBbEIsRUFBa0NDLGFBQWxDLFFBQXVELG1CQUF2RDtBQUNBLE9BQU9DLFNBQVAsTUFBc0IsaUJBQXRCO0FBQ0EsT0FBT0MsTUFBUCxNQUFtQixxQkFBbkI7QUFDQSxJQUFRQyxnQkFBUixHQUEyQ0wsT0FBM0MsQ0FBUUssZ0JBQVI7QUFBQSxJQUEwQkMsWUFBMUIsR0FBMkNOLE9BQTNDLENBQTBCTSxZQUExQjtBQUNBLE9BQU9DLFlBQVAsTUFBeUIsd0JBQXpCO0FBQ0EsU0FBU0MsU0FBVCxRQUEwQixpQkFBMUI7QUFDQSxPQUFPLHNCQUFQO0FBQ0EsU0FBU0MsT0FBVCxFQUFrQkMsT0FBbEIsUUFBaUMsYUFBakM7QUFD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QUU7QUFBTDtBQVBWLFNBUU1OLFdBUk4sRUFTTWpOLEtBVE4sRUFVTStNLGFBVk47QUFXRSxRQUFBLElBQUksRUFBRXRMO0FBWFIsU0FGRixDQURGO0FBbUJBLGFBQU9xTCxRQUFRLEtBQUssSUFBYixnQkFDTCxvQkFBQyxXQUFEO0FBQWEsUUFBQSxPQUFPLEVBQUV0TjtBQUF0QixTQUFxQzBOLFlBQXJDLENBREssR0FHTEEsWUFIRjtBQUtEOzs7O0VBL3VCb0JsTyxLQUFLLENBQUN3TyxTOztnQkFBdkJuTixRLGtCQUNrQjtBQUNwQnlNLEVBQUFBLFFBQVEsRUFBRSxLQURVO0FBRXBCakIsRUFBQUEsU0FBUyxFQUFFLElBRlM7QUFHcEJ0QixFQUFBQSxZQUFZLEVBQUUsSUFITTtBQUlwQmtELEVBQUFBLE9BQU8sRUFBRSxFQUpXO0FBS3BCL0csRUFBQUEsY0FBYyxFQUFFLElBTEk7QUFNcEJELEVBQUFBLFFBQVEsRUFBRSxJQU5VO0FBT3BCRCxFQUFBQSxZQUFZLEVBQUUsSUFQTTtBQVFwQnBCLEVBQUFBLFlBQVksRUFBRSxJQVJNO0FBU3BCK0gsRUFBQUEsT0FBTyxFQUFFO0FBVFcsQzs7QUFpdkJ4QixlQUFlMU4sWUFBWSxDQUFDWSxRQUFELENBQTNCIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogQERlc2NyaXB0dGlvbjpcclxuICogQHZlcnNpb246XHJcbiAqIEBBdXRob3I6IHJ4emh1XHJcbiAqIEBEYXRlOiAyMDIxLTAzLTIzIDA4OjQ2OjIwXHJcbiAqIEBMYXN0RWRpdG9yczogcnh6aHVcclxuICogQExhc3RFZGl0VGltZTogMjAyMS0wMy0yMyAxMDozMDo0MlxyXG4gKi9cclxuaW1wb3J0IHtcclxuICBBcHBzdG9yZU91dGxpbmVkLFxyXG4gIENoZWNrT3V0bGluZWQsXHJcbiAgQ29sdW1uSGVpZ2h0T3V0bGluZWQsXHJcbiAgU2VhcmNoT3V0bGluZWQsXHJcbiAgU29ydEFzY2VuZGluZ091dGxpbmVkLFxyXG4gIFNvcnREZXNjZW5kaW5nT3V0bGluZWQsXHJcbn0gZnJvbSBcIkBhbnQtZGVzaWduL2ljb25zXCI7XHJcbmltcG9ydCB7IGlzRW1wdHlPYmogfSBmcm9tIFwiQGJqLW5zYy9mdW5jdGlvbnNcIjtcclxuaW1wb3J0IFN0b3JlLCB7IFBhZ2VTdG9yZSwgU3RvcmVQcm9wcyB9IGZyb20gXCJAYmotbnNjL21zblwiO1xyXG5pbXBvcnQgeyB1dGlscyB9IGZyb20gXCJAYmotbnNjL21zbi9saWIvdXRpbHNcIjtcclxuaW1wb3J0IHtcclxuICBCdXR0b24sXHJcbiAgQ2hlY2tib3gsXHJcbiAgQ2hlY2tib3hPcHRpb25UeXBlLFxyXG4gIE1lbnUsXHJcbiAgbWVzc2FnZSxcclxuICBQb3BvdmVyLFxyXG4gIFNwYWNlLFxyXG4gIFRhYmxlLFxyXG4gIFRhYmxlUHJvcHMsXHJcbiAgVG9vbHRpcCxcclxufSBmcm9tIFwiYW50ZFwiO1xyXG5pbXBvcnQgeyBDb2x1bW5UeXBlLCBUYWJsZVBhZ2luYXRpb25Db25maWcgfSBmcm9tIFwiYW50ZC9saWIvdGFibGVcIjtcclxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB7IERuZFByb3ZpZGVyIH0gZnJvbSBcInJlYWN0LWRuZFwiO1xyXG5pbXBvcnQgQm9keVJvdywgeyBEbmRDb250ZXh0VHlwZSwgSUJvZHlSb3dQcm9wcyB9IGZyb20gXCIuLi9jb21tb24vQm9keVJvd1wiO1xyXG5pbXBvcnQgdHJlZVV0aWxzIGZyb20gXCIuLi8uLi90cmVlVXRpbHNcIjtcclxuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9pbmRleC5tb2R1bGUubGVzc1wiO1xyXG5jb25zdCB7IEJvZHlSb3dDb21wb25lbnQsIEhUTUw1QmFja2VuZCB9ID0gQm9keVJvdztcclxuaW1wb3J0IHdpdGhaaExvY2FsZSBmcm9tIFwiLi4vY29tbW9uL3dpdGhaaExvY2FsZVwiO1xyXG5pbXBvcnQgeyBSZXNpemFibGUgfSBmcm9tIFwicmVhY3QtcmVzaXphYmxlXCI7XHJcbmltcG9ydCBcIi4vcmVzaXplLm1vZHVsZS5sZXNzXCI7XHJcbmltcG9ydCB7IGdldExlc3MsIGdldE5vZGUgfSBmcm9tIFwiLi4vLi4vdXRpbHNcIjtcclxuaW1wb3J0IE5vRGF0YSBmcm9tIFwiLi4vLi4vYmFzZS9jb21tb24vTm9EYXRhXCI7XHJcbmltcG9ydCB7IGdldFN0b3JhZ2UgfSBmcm9tIFwiQGJqLW5zYy9mdW5jdGlvbnNcIjtcclxuaW50ZXJmYWNlIElEcmFnUGFyYW1zIHtcclxuICBpZDogc3RyaW5nIHwgbnVtYmVyO1xyXG4gIGlkczogQXJyYXk8c3RyaW5nIHwgbnVtYmVyPjtcclxuICBwYXJlbnRJZDogc3RyaW5nIHwgbnVtYmVyO1xyXG59XHJcbi8vIGludGVyZmFjZSBTdG9yZVByb3BzIHt9XHJcblxyXG5leHBvcnQgdHlwZSBTdG9yZVR5cGUgPSBcIlBhZ2VTdG9yZVwiIHwgXCJUcmVlU3RvcmVcIiB8IFwiQmFzZVN0b3JlXCI7XHJcblxyXG5pbnRlcmZhY2UgTlNDVGFibGVQYWdpbmF0aW9uIGV4dGVuZHMgVGFibGVQYWdpbmF0aW9uQ29uZmlnIHtcclxuICB0b3RhbEtleT86IHN0cmluZztcclxuICBwYWdlU2l6ZUtleT86IHN0cmluZztcclxuICBjdXJyZW50S2V5Pzogc3RyaW5nO1xyXG59XHJcblxyXG5pbnRlcmZhY2UgTlNDVGFibGVQcm9wcyBleHRlbmRzIFRhYmxlUHJvcHM8YW55PiB7XHJcbiAgc3RvcmU/OiBTdG9yZVByb3BzO1xyXG4gIHNob3dUb3RhbD86IGJvb2xlYW47IC8vIOaYr+WQpuaYvuekuuaAu+adoeaVsOS/oeaBr++8jOm7mOiupHRydWVcclxuICBkcmFnYWJsZT86IGJvb2xlYW47IC8vIOaYr+WQpuWPr+aLluWKqCwg6buY6K6kZmFsc2VcclxuICBmaWx0ZXJDb2x1bW4/OiBib29sZWFuOyAvLyDmmK/lkKbmlK/mjIHov4fmu6TmmL7npLrooajmoLzliJcsIOm7mOiupHRydWVcclxuICBtb3ZlUm93PzogKHBhcmFtczogSURyYWdQYXJhbXMpID0+IHZvaWQ7IC8vIOaLluaLveWujOaIkOWQjueahOWbnuiwg1xyXG4gIGRyYWdVcmw/OiBzdHJpbmc7IC8vIOS/neWtmOaLluaLveaOkuW6j+eahOaOpeWPo1xyXG4gIHBhZ2luYXRpb24/OiBmYWxzZSB8IE5TQ1RhYmxlUGFnaW5hdGlvbjtcclxuICBhdXRvUGFnaW5hdGlvbj86IGJvb2xlYW47IC8vIOe7hOS7tuaYr+WQpuiHquWKqOWkhOeQhuWIhumhtVxyXG4gIGF1dG9Tb3J0PzogYm9vbGVhbjsgLy/nu4Tku7bmmK/lkKboh6rliqjlpITnkIbmjpLluo9cclxuICBhdXRvT25DaGFuZ2U/OiBib29sZWFuOyAvLyDnu4Tku7bmmK/lkKboh6rliqhvbkNoYW5nZSwgZmFsc2XliJnkuI3lgZrku7vkvZXlpITnkIblhajpg6jkuqTnu5nosIPnlKjmlrlcclxuICByZXNpemVDb2x1bW4/OiBib29sZWFuO1xyXG4gIHNvcnRGaWVsZHM/OiBBcnJheTxzdHJpbmc+OyAvL+mcgOimgeaOkuW6j+eahOWtl+autUluZGV4XHJcbiAgdG9vbGJhcj86IGJvb2xlYW47XHJcbiAgYXV0b1NpemU/OiBib29sZWFuO1xyXG4gIC8vIHRhYmxlU2l6ZT86IFwic21hbGxcIiB8IFwibWlkZGxlXCIgfCBcImRlZmF1bHRcIiB8IFwiYXV0b1wiO1xyXG4gIC8vIHNpemU/OiBcInNtYWxsXCIgfCBcIm1pZGRsZVwiIHwgXCJkZWZhdWx0XCIgfCBcImF1dG9cIjtcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgSU5TQ1RhYmxlUHJvcHMgPSB0eXBlb2YgTlNDVGFibGUuZGVmYXVsdFByb3BzICYgTlNDVGFibGVQcm9wcztcclxuZXhwb3J0IHsgRG5kQ29udGV4dFR5cGUsIElCb2R5Um93UHJvcHMgfTtcclxuXHJcbmNvbnN0IFJlc2l6ZWFibGVUaXRsZSA9IChwcm9wczogYW55KSA9PiB7XHJcbiAgY29uc3QgeyBvblJlc2l6ZSwgd2lkdGgsIC4uLnJlc3RQcm9wcyB9ID0gcHJvcHM7XHJcbiAgcmV0dXJuIChcclxuICAgIDxSZXNpemFibGVcclxuICAgICAgd2lkdGg9e3dpZHRoIHx8IDE1MH1cclxuICAgICAgaGVpZ2h0PXswfVxyXG4gICAgICBvblJlc2l6ZT17b25SZXNpemV9XHJcbiAgICAgIGRyYWdnYWJsZU9wdHM9e3sgZW5hYmxlVXNlclNlbGVjdEhhY2s6IGZhbHNlIH19XHJcbiAgICA+XHJcbiAgICAgIDx0aCB7Li4ucmVzdFByb3BzfSAvPlxyXG4gICAgPC9SZXNpemFibGU+XHJcbiAgKTtcclxufTtcclxuY2xhc3MgTlNDVGFibGUgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQ8SU5TQ1RhYmxlUHJvcHMsIGFueT4ge1xyXG4gIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XHJcbiAgICBkcmFnYWJsZTogZmFsc2UsXHJcbiAgICBzaG93VG90YWw6IHRydWUsXHJcbiAgICBmaWx0ZXJDb2x1bW46IHRydWUsXHJcbiAgICBkcmFnVXJsOiBcIlwiLFxyXG4gICAgYXV0b1BhZ2luYXRpb246IHRydWUsXHJcbiAgICBhdXRvU29ydDogdHJ1ZSxcclxuICAgIGF1dG9PbkNoYW5nZTogdHJ1ZSxcclxuICAgIHJlc2l6ZUNvbHVtbjogdHJ1ZSxcclxuICAgIHRvb2xiYXI6IHRydWUsXHJcbiAgfTtcclxuXHJcbiAgc3RvcmUgPSB7fSBhcyBTdG9yZVByb3BzO1xyXG4gIHRoSWNvblJlZiA9IFJlYWN0LmNyZWF0ZVJlZjxIVE1MRGl2RWxlbWVudD4oKTtcclxuICB0YWJsZVNlYXJjaFJlZiA9IFJlYWN0LmNyZWF0ZVJlZjxhbnk+KCk7XHJcblxyXG4gIGxpc3RlbmVycyA9IHtcclxuICAgIG9uQmVmb3JlTG9hZDogbnVsbCxcclxuICAgIGxvYWQ6IG51bGwsXHJcbiAgfTtcclxuXHJcbiAgY29tcG9uZW50cyA9IHtcclxuICAgIGhlYWRlcjoge1xyXG4gICAgICBjZWxsOiBSZXNpemVhYmxlVGl0bGUsXHJcbiAgICB9LFxyXG4gIH07XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XHJcbiAgICBzdXBlcihwcm9wcyk7XHJcbiAgICBsZXQgbW9kYWwgPSBwcm9wcy50eXBlIHx8IFwiYXV0b1wiO1xyXG4gICAgbGV0IHN0b3JlUHJlZml4ID0gZ2V0U3RvcmFnZShcInN0b3JlLXByZS1rZXlcIik7XHJcbiAgICBsZXQgYXV0b1R5cGUgPSBnZXRTdG9yYWdlKFxyXG4gICAgICBzdG9yZVByZWZpeCA/IHN0b3JlUHJlZml4ICsgXCJ0YWJsZVNpemVcIiA6IFwidGFibGVTaXplXCJcclxuICAgICk7XHJcbiAgICBhdXRvVHlwZSA9IGF1dG9UeXBlPy5jb250ZW50O1xyXG4gICAgdGhpcy5zdGF0ZSA9IHtcclxuICAgICAgZGF0YVNvdXJjZTogW10sXHJcbiAgICAgIGNvbHVtbnM6IFtdLFxyXG4gICAgICBsb2FkaW5nOiBmYWxzZSxcclxuICAgICAgcGFnaW5hdGlvbjoge30sXHJcbiAgICAgIGFjdGl2ZUluZGV4OiAtMSxcclxuICAgICAgLy/mkJzntKLmlofmnKxcclxuICAgICAgc2VhcmNoVGV4dDogbnVsbCxcclxuICAgICAgZmllbGRPcHRpb246IG51bGwsXHJcbiAgICAgIHNlYXJjaENvbG9yOiBudWxsLFxyXG4gICAgICBjb2xzOiBbXSxcclxuICAgICAgc29ydHM6IFtdLFxyXG4gICAgICBmaWx0ZXJQYXJhbXM6IHt9LFxyXG4gICAgICB0YWJsZVNpemU6IHRoaXMucHJvcHMuc2l6ZSB8fCBhdXRvVHlwZSB8fCBcImRlZmF1bHRcIixcclxuICAgICAgc29ydFR5cGU6IFwic2luZ2xlXCIsXHJcbiAgICAgIHNvcnRlcjogW10sIC8v6K6w5b2V5b2T5YmN5o6S5bqP5a2X5q61XHJcbiAgICAgIHNvcnRJbmZvOiB7fSxcclxuICAgICAgZGVmYXVsdFNvcnQ6IHRydWUsXHJcbiAgICAgIGNoZWNrQ29sdW1uOiBbXSxcclxuICAgICAgZGVmYXVsdENoZWNrOiB0cnVlLFxyXG4gICAgfTtcclxuICAgIGlmIChwcm9wcy5zdG9yZSBpbnN0YW5jZW9mIFN0b3JlKSB7XHJcbiAgICAgIHRoaXMuc3RvcmUgPSBwcm9wcy5zdG9yZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IHsgbGlzdGVuZXJzOiBsaXN0ZW5lcnNQcm9wcyA9IHt9LCAuLi5yZXN0U3RvcmUgfSA9XHJcbiAgICAgICAgcHJvcHMuc3RvcmUgfHwge307XHJcbiAgICAgIGNvbnN0IHN0b3JlUHJvcHMgPSB7XHJcbiAgICAgICAgbW9kZWw6IFwibW9kZWxcIixcclxuICAgICAgICBjb21wb25lbnQ6IHRoaXMsXHJcbiAgICAgICAgbGlzdGVuZXJzOiB7XHJcbiAgICAgICAgICBvbkJlZm9yZUxvYWQ6IChzdG9yZSwgb3B0aW9ucykgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgbG9hZGluZzogdHJ1ZSB9KTtcclxuICAgICAgICAgICAgdXRpbHMuY2FsbGJhY2sobGlzdGVuZXJzUHJvcHMub25CZWZvcmVMb2FkLCB0aGlzLCBbc3RvcmUsIG9wdGlvbnNdKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBkYXRhQ2hhbmdlZDogKGRhdGEsIG1vZGVsRGF0YSwgc3RvcmUpID0+IHtcclxuICAgICAgICAgICAgbGV0IHBhZ2luZyA9ICEodGhpcy5wcm9wcy5wYWdpbmF0aW9uID09PSBmYWxzZSk7XHJcbiAgICAgICAgICAgIGlmIChwYWdpbmcgJiYgIXRoaXMucHJvcHMuZGF0YVNvdXJjZSkge1xyXG4gICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgICAgZGF0YVNvdXJjZTogbW9kZWxEYXRhLFxyXG4gICAgICAgICAgICAgICAgcGFnaW5hdGlvbjogc3RvcmUuZ2V0UGFnaW5hdGlvbigpLFxyXG4gICAgICAgICAgICAgICAgbG9hZGluZzogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICBhY3RpdmVJbmRleDogLTEsXHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGRhdGFTb3VyY2U6IG1vZGVsRGF0YSwgbG9hZGluZzogZmFsc2UgfSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHV0aWxzLmNhbGxiYWNrKGxpc3RlbmVyc1Byb3BzLmRhdGFDaGFuZ2VkLCB0aGlzLCBbXHJcbiAgICAgICAgICAgICAgZGF0YSxcclxuICAgICAgICAgICAgICBtb2RlbERhdGEsXHJcbiAgICAgICAgICAgICAgc3RvcmUsXHJcbiAgICAgICAgICAgICAgcGFnaW5nLFxyXG4gICAgICAgICAgICBdKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBsb2FkOiAoZGF0YSwgbW9kZWxEYXRhLCBzdG9yZSkgPT4ge1xyXG4gICAgICAgICAgICB1dGlscy5jYWxsYmFjayhsaXN0ZW5lcnNQcm9wcy5sb2FkLCB0aGlzLCBbZGF0YSwgbW9kZWxEYXRhLCBzdG9yZV0pO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIG9uRXJyb3JMb2FkOiAoZXJyLCByZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgbG9hZGluZzogZmFsc2UgfSk7XHJcbiAgICAgICAgICAgIHV0aWxzLmNhbGxiYWNrKGxpc3RlbmVyc1Byb3BzLm9uRXJyb3JMb2FkLCB0aGlzLCBbZXJyLCByZXNwb25zZV0pO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIGRhdGE6IHJlc3RTdG9yZS5kYXRhXHJcbiAgICAgICAgICA/IHJlc3RTdG9yZS5kYXRhXHJcbiAgICAgICAgICA6IHByb3BzLmRhdGFTb3VyY2VcclxuICAgICAgICAgID8gcHJvcHMuZGF0YVNvdXJjZVxyXG4gICAgICAgICAgOiBudWxsLFxyXG4gICAgICAgIC4uLnJlc3RTdG9yZSxcclxuICAgICAgICBhdXRvTG9hZDogcmVzdFN0b3JlLmF1dG9Mb2FkID09PSBmYWxzZSA/IGZhbHNlIDogdHJ1ZSxcclxuICAgICAgfTtcclxuICAgICAgdGhpcy5zdG9yZSA9IG5ldyBQYWdlU3RvcmUoXHJcbiAgICAgICAgT2JqZWN0LmFzc2lnbih7fSwgc3RvcmVQcm9wcywge1xyXG4gICAgICAgICAgcGFnaW5hdGlvbjogeyBjdXJyZW50OiAxLCAuLi50aGlzLnByb3BzLnBhZ2luYXRpb24gfSxcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGFuZGxlUmVzaXplID1cclxuICAgIChpbmRleDogYW55KSA9PlxyXG4gICAgKGU6IGFueSwgeyBzaXplIH06IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCB7IGNvbHMgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICAgIGNvbnN0IG5leHRDb2x1bW5zID0gWy4uLmNvbHNdO1xyXG4gICAgICBuZXh0Q29sdW1uc1tpbmRleF0gPSB7XHJcbiAgICAgICAgLi4ubmV4dENvbHVtbnNbaW5kZXhdLFxyXG4gICAgICAgIHdpZHRoOiBzaXplLndpZHRoLFxyXG4gICAgICB9O1xyXG4gICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICBjb2xzOiBuZXh0Q29sdW1ucyxcclxuICAgICAgfSk7XHJcbiAgICB9O1xyXG5cclxuICBjb21wb25lbnREaWRNb3VudCgpIHtcclxuICAgIGNvbnN0IHsgcmVzaXplQ29sdW1uIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgaWYgKCFyZXNpemVDb2x1bW4pIHtcclxuICAgICAgdGhpcy5zZXRTdGF0ZSh7IGNvbHVtbnM6IFsuLi50aGlzLnByb3BzLmNvbHVtbnNdIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZXRTdGF0ZSh7IGNvbHM6IFsuLi50aGlzLnByb3BzLmNvbHVtbnNdIH0pO1xyXG4gICAgfVxyXG4gICAgY29uc3Qgc3RvcmUgPSB0aGlzLnByb3BzLnN0b3JlO1xyXG4gICAgaWYgKHN0b3JlICYmIHN0b3JlLmRhdGEpIHtcclxuICAgICAgdGhpcy5zdG9yZS5zZXREYXRhKHN0b3JlLmRhdGEpO1xyXG4gICAgfVxyXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJtZXNzYWdlXCIsIHRoaXMubGlzdGVuTWVzc2FnZSk7XHJcbiAgfVxyXG4gIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xyXG4gICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtZXNzYWdlXCIsIHRoaXMubGlzdGVuTWVzc2FnZSk7XHJcbiAgfVxyXG4gIGxpc3Rlbk1lc3NhZ2UgPSAoZXYpID0+IHtcclxuICAgIGNvbnN0IGRhdGEgPSB0eXBlb2YgZXYuZGF0YSA9PT0gXCJzdHJpbmdcIiA/IEpTT04ucGFyc2UoZXYuZGF0YSkgOiBldi5kYXRhO1xyXG4gICAgbGV0IF90aGlzID0gdGhpcztcclxuICAgIGlmIChkYXRhLmV2ZW50VHlwZSA9PSBcImNoYW5nZVRhYmxlU2l6ZVwiKSB7XHJcbiAgICAgIGNvbnN0IHsgcGF5bG9hZCB9ID0gZGF0YTtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIHBheWxvYWQuc2l6ZSA9PSBcImRlZmF1bHRcIiB8fFxyXG4gICAgICAgIHBheWxvYWQuc2l6ZSA9PSBcInNtYWxsXCIgfHxcclxuICAgICAgICBwYXlsb2FkLnNpemUgPT0gXCJtaWRkbGVcIlxyXG4gICAgICApIHtcclxuICAgICAgICBfdGhpcy5zZXRTdGF0ZSh7IHRhYmxlU2l6ZTogcGF5bG9hZC5zaXplIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfTtcclxuICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzLCBwcmVTdGF0ZSkge1xyXG4gICAgY29uc3QgeyByZXNpemVDb2x1bW4gfSA9IHRoaXMucHJvcHM7XHJcbiAgICBpZiAoIXJlc2l6ZUNvbHVtbikge1xyXG4gICAgICBpZiAodGhpcy5wcm9wcy5jb2x1bW5zICE9PSBwcmV2UHJvcHMuY29sdW1ucykge1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoeyBjb2x1bW5zOiB0aGlzLnByb3BzLmNvbHVtbnMgfSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmIChwcmVTdGF0ZS5jb2xzICE9PSB0aGlzLnN0YXRlLmNvbHMpIHtcclxuICAgICAgICB0aGlzLnJlc2V0Q29sdW1uKCk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHByZXZQcm9wcy5zaXplICE9PSB0aGlzLnByb3BzLnNpemUpIHtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHsgdGFibGVTaXplOiB0aGlzLnByb3BzLnNpemUgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlc2V0Q29sdW1uKCkge1xyXG4gICAgY29uc3QgeyBjb2xzIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3QgbmV3Q29sczogYW55ID0gW107XHJcbiAgICBsZXQgY29sc3MgPSBjb2xzIHx8IFtdO1xyXG4gICAgY29sc3MubWFwKChjb2w6IGFueSwgaW5kZXg6IGFueSkgPT4ge1xyXG4gICAgICBsZXQgdGVtcCA9IHtcclxuICAgICAgICAuLi5jb2wsXHJcbiAgICAgICAgb25IZWFkZXJDZWxsOiAoY29sdW1uOiB7IHdpZHRoOiBhbnkgfSkgPT4gKHtcclxuICAgICAgICAgIHdpZHRoOiBjb2x1bW4ud2lkdGgsXHJcbiAgICAgICAgICBvblJlc2l6ZTogdGhpcy5oYW5kbGVSZXNpemUoaW5kZXgpLFxyXG4gICAgICAgIH0pLFxyXG4gICAgICB9O1xyXG4gICAgICBuZXdDb2xzLnB1c2godGVtcCk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBjb2x1bW5zOiBuZXdDb2xzLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDmuIXpmaTpgInkuK3popzoibJcclxuICAgKi9cclxuICBjbGVhclNlbGVjdENvbG9yKCkge1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7IGFjdGl2ZUluZGV4OiAtMSB9KTtcclxuICAgIHJldHVybiB0aGlzO1xyXG4gIH1cclxuXHJcbiAgZ2V0UGFnaW5hdGlvbkJ5U3RvcmUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5nZXRQYWdpbmF0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBvbkNoYW5nZShwYWdpbmF0aW9uLCBmaWx0ZXJzLCBzb3J0ZXIsIGV4dHJhKSB7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIGF1dG9PbkNoYW5nZSA9IHRydWUsXHJcbiAgICAgIGF1dG9Tb3J0LFxyXG4gICAgICBhdXRvUGFnaW5hdGlvbixcclxuICAgICAgb25DaGFuZ2UsXHJcbiAgICB9ID0gdGhpcy5wcm9wcztcclxuXHJcbiAgICBjb25zdCB7IGZpbHRlclBhcmFtcyB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGNvbnN0IGlzTXVsdGlwbGUgPSBBcnJheS5pc0FycmF5KHNvcnRlcik7XHJcbiAgICBpZiAoYXV0b09uQ2hhbmdlID09PSBmYWxzZSkge1xyXG4gICAgICBvbkNoYW5nZSAmJiBvbkNoYW5nZShwYWdpbmF0aW9uLCBmaWx0ZXJzLCBzb3J0ZXIsIGV4dHJhKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgaGFuZGxlUGFnaW5hdGlvbiA9ICgpID0+IHtcclxuICAgICAgbGV0IHBhcmFtcyA9IHt9IGFzIHtcclxuICAgICAgICBzaXplPzogc3RyaW5nO1xyXG4gICAgICAgIHBhZ2VTaXplPzogc3RyaW5nO1xyXG4gICAgICAgIGFzY3M/OiBzdHJpbmc7XHJcbiAgICAgICAgZGVzY3M/OiBzdHJpbmc7XHJcbiAgICAgICAgW3Byb3BOYW1lOiBzdHJpbmddOiBzdHJpbmc7XHJcbiAgICAgIH07XHJcblxyXG4gICAgICBjb25zdCBwYWdpbmcgPSB0aGlzLmdldFBhZ2luYXRpb25CeVN0b3JlKCkgfHwge307XHJcblxyXG4gICAgICBpZiAoIWlzRW1wdHlPYmoocGFnaW5hdGlvbikpIHtcclxuICAgICAgICBjb25zdCBwID0ge1xyXG4gICAgICAgICAgW3BhZ2luZy5jdXJyZW50S2V5IHx8IFwiY3VycmVudFwiXTogcGFnaW5hdGlvbi5jdXJyZW50LFxyXG4gICAgICAgICAgW3BhZ2luZy5wYWdlU2l6ZUtleSB8fCBcInNpemVcIl06IHBhZ2luYXRpb24ucGFnZVNpemUsXHJcbiAgICAgICAgfTtcclxuICAgICAgICBPYmplY3QuYXNzaWduKHBhcmFtcywgcCk7XHJcbiAgICAgIH1cclxuICAgICAgbGV0IGFzY1BhcmFtcyA9IHRoaXMuZ2V0U29ydFBhcmFtKHNvcnRlciwgdHJ1ZSk7XHJcbiAgICAgIGlmIChpc011bHRpcGxlKSB7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IHNvcnRlciB9KTtcclxuICAgICAgfSBlbHNlIGlmICghaXNNdWx0aXBsZSAmJiAhaXNFbXB0eU9iaihzb3J0ZXIpKSB7XHJcbiAgICAgICAgc29ydGVyLmNvbHVtbiAmJlxyXG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IHNvcnRlcjogW3NvcnRlcl0sIGRlZmF1bHRTb3J0OiBmYWxzZSB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHsgc29ydGVyOiBbXSB9KTtcclxuICAgICAgfVxyXG4gICAgICBwYXJhbXMgPSB7IC4uLmZpbHRlclBhcmFtcywgLi4ucGFyYW1zLCAuLi5hc2NQYXJhbXMgfTtcclxuICAgICAgYXV0b1NvcnQgJiYgdGhpcy5zdG9yZS5yZWxvYWQoeyBwYXJhbXMgfSk7XHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IG9uQ2hhbmdlRm4gPSB0aGlzLnByb3BzLm9uQ2hhbmdlO1xyXG5cclxuICAgIGF1dG9QYWdpbmF0aW9uICYmIGhhbmRsZVBhZ2luYXRpb24oKTtcclxuICAgIC8vIOeUqOaIt+S8oOS6hm9uQ2hhbmdl5L+d55WZ55So5oi36Ieq5Li75aSE55CG6KGo5qC85Y+Y5YyW55qE5p2D5YqbXHJcbiAgICBpZiAob25DaGFuZ2VGbikge1xyXG4gICAgICB1dGlscy5jYWxsYmFjayhvbkNoYW5nZUZuLCB0aGlzLCBbcGFnaW5hdGlvbiwgZmlsdGVycywgc29ydGVyLCBleHRyYV0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0U3RvcmUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdG9yZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOiOt+WPluaVsOaNruaooeWei+WvueixoVxyXG4gICAqL1xyXG4gIGdldE1vZGVsKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuZ2V0TW9kZWwoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOiPnOWNleaQnOe0oui/h+a7pOaYvuekulxyXG4gICAqIEBwYXJhbSB7U3RyaW5nfSB2YWxcclxuICAgKi9cclxuICBoYW5kbGVTZWFyY2godmFsLCBmaWVsZE9wdGlvbiwgc2VhcmNoQ29sb3IpIHtcclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBzZWFyY2hUZXh0OiB2YWwsXHJcbiAgICAgIGZpZWxkT3B0aW9uOiBmaWVsZE9wdGlvbixcclxuICAgICAgc2VhcmNoQ29sb3I6IHNlYXJjaENvbG9yLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDmqKHlnZfliJfooajnp7vliqjmjpLluo9cclxuICAgKi9cclxuICBtb3ZlUm93ID0gKGRyYWdJbmRleCwgaG92ZXJJbmRleCwgZHJhZywgdGFyZ2V0KSA9PiB7XHJcbiAgICBjb25zdCBfdGhpcyA9IHRoaXM7XHJcbiAgICBsZXQgZHJhZ05vZGUgPSBkcmFnLnJlY29yZDtcclxuICAgIGxldCB0YXJnZXROb2RlID0gdGFyZ2V0LnJlY29yZDtcclxuICAgIGRyYWdOb2RlLm1vdmVBcnJheShkcmFnTm9kZSwgdGFyZ2V0Tm9kZSk7XHJcbiAgICBsZXQgaWRzID0gZHJhZ05vZGUucGFyZW50Tm9kZS5nZXRDaGlsZE5vZGVJZHMoKTtcclxuICAgIGxldCBwYXJhbXMgPSB7XHJcbiAgICAgIGlkOiBkcmFnTm9kZS5pZCxcclxuICAgICAgcGFyZW50SWQ6IGRyYWdOb2RlLmF0dHJpYnV0ZS5wYXJlbnRJZCxcclxuICAgICAgaWRzOiBpZHMsXHJcbiAgICB9O1xyXG5cclxuICAgIGlmICh0aGlzLnByb3BzLm1vdmVSb3cpIHtcclxuICAgICAgdGhpcy5wcm9wcy5tb3ZlUm93KHBhcmFtcyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnN0b3JlLnJlbG9hZCgpO1xyXG4gICAgfVxyXG4gIH07XHJcblxyXG4gIGZpbHRlckNvbHVtbihjaGVja2VkVmFsdWUpIHtcclxuICAgIGlmIChjaGVja2VkVmFsdWUubGVuZ3RoID09IDApIHtcclxuICAgICAgbWVzc2FnZS53YXJuaW5nKFwi6Iez5bCR5pi+56S65LiA5YiX77yBXCIpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCBmaWx0ZXJDb2x1bW5zID0gdGhpcy5wcm9wcy5jb2x1bW5zLm1hcCgoY29sOiBDb2x1bW5UeXBlPHt9PikgPT4ge1xyXG4gICAgICBjb25zdCBuZXdDb2wgPSB7IC4uLmNvbCB9IGFzIENvbHVtblR5cGU8e30+ICYgeyBpbml0U2hvdzogYm9vbGVhbiB9O1xyXG4gICAgICBpZiAoY2hlY2tlZFZhbHVlLmluY2x1ZGVzKGNvbC5kYXRhSW5kZXgpKSB7XHJcbiAgICAgICAgbmV3Q29sLmluaXRTaG93ID0gdHJ1ZTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBuZXdDb2wuaW5pdFNob3cgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gbmV3Q29sO1xyXG4gICAgfSk7XHJcbiAgICBjb25zdCB7IHJlc2l6ZUNvbHVtbiB9ID0gdGhpcy5wcm9wcztcclxuICAgIGlmICghcmVzaXplQ29sdW1uKSB7XHJcbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgIGNvbHVtbnM6IGZpbHRlckNvbHVtbnMsXHJcbiAgICAgICAgY2hlY2tDb2x1bW46IGNoZWNrZWRWYWx1ZSxcclxuICAgICAgICBkZWZhdWx0Q2hlY2s6IGZhbHNlLFxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgIGNvbHM6IGZpbHRlckNvbHVtbnMsXHJcbiAgICAgICAgY2hlY2tDb2x1bW46IGNoZWNrZWRWYWx1ZSxcclxuICAgICAgICBkZWZhdWx0Q2hlY2s6IGZhbHNlLFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbiAgZ2V0U29ydFBhcmFtKHNvcnRlciwgc29ydFN0YXRlID0gZmFsc2UpIHtcclxuICAgIGNvbnN0IGlzTXVsdGlwbGUgPSBBcnJheS5pc0FycmF5KHNvcnRlcik7XHJcbiAgICBsZXQgc29ydEluZm8gPSB7fTtcclxuICAgIGxldCBvcmRlckl0ZW1zID0gW107XHJcbiAgICBpZiAoIWlzRW1wdHlPYmooc29ydGVyKSAmJiAhaXNNdWx0aXBsZSkge1xyXG4gICAgICBvcmRlckl0ZW1zID0gW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIGNvbHVtbjogc29ydGVyLmNvbHVtbi5maWVsZCB8fCBzb3J0ZXIuY29sdW1uLmRhdGFJbmRleCxcclxuICAgICAgICAgIGFzYzogc29ydGVyLm9yZGVyID09IFwiYXNjZW5kXCIsXHJcbiAgICAgICAgfSxcclxuICAgICAgXTtcclxuICAgICAgaWYgKHNvcnRlci5jb2x1bW4pIHNvcnRJbmZvW3NvcnRlci5jb2x1bW4uZGF0YUluZGV4XSA9IHNvcnRlci5vcmRlcjtcclxuICAgIH0gZWxzZSBpZiAoaXNNdWx0aXBsZSkge1xyXG4gICAgICBzb3J0ZXIuZm9yRWFjaCgodikgPT4ge1xyXG4gICAgICAgIHNvcnRJbmZvW3YuY29sdW1uLmRhdGFJbmRleF0gPSB2Lm9yZGVyO1xyXG4gICAgICAgIGxldCBmaWVsZCA9IHYuY29sdW1uLmZpZWxkIHx8IHYuY29sdW1uLmRhdGFJbmRleDtcclxuICAgICAgICBvcmRlckl0ZW1zLnB1c2goe1xyXG4gICAgICAgICAgY29sdW1uOiBmaWVsZCxcclxuICAgICAgICAgIGFzYzogdi5vcmRlciA9PSBcImFzY2VuZFwiLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGlmIChzb3J0U3RhdGUpIHtcclxuICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgc29ydEluZm86IHNvcnRJbmZvLFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHJldHVybiB7IG9yZGVySXRlbXM6IEpTT04uc3RyaW5naWZ5KG9yZGVySXRlbXMpIH07XHJcbiAgfVxyXG4gIGdldENvbHVtbnMoKSB7XHJcbiAgICBjb25zdCB7IGNvbHVtbnMsIHNvcnRUeXBlLCBzb3J0SW5mbyB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGNvbnN0IHsgc29ydEZpZWxkcyA9IFtdIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgZGVmYXVsdFNob3dDb2xzID0gY29sdW1ucy5maWx0ZXIoKGNvbHMpID0+IGNvbHMuaW5pdFNob3cgIT09IGZhbHNlKTtcclxuICAgIGNvbnN0IGNvbHMgPSBkZWZhdWx0U2hvd0NvbHMubWFwKChjb2wsIGluZGV4KSA9PiB7XHJcbiAgICAgIGlmIChjb2wuZWxsaXBzaXMgJiYgIWNvbC5yZW5kZXIpIHtcclxuICAgICAgICBjb2wuZWxsaXBzaXMgPSB7XHJcbiAgICAgICAgICBzaG93VGl0bGU6IGZhbHNlLFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgY29sLnJlbmRlciA9ICh0ZXh0KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICA8VG9vbHRpcCBwbGFjZW1lbnQ9XCJ0b3BMZWZ0XCIgdGl0bGU9e3RleHR9PlxyXG4gICAgICAgICAgICAgIHt0ZXh0fVxyXG4gICAgICAgICAgICA8L1Rvb2x0aXA+XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChzb3J0RmllbGRzLmluZGV4T2YoY29sLmRhdGFJbmRleCkgPiAtMSkge1xyXG4gICAgICAgIGlmIChzb3J0VHlwZSA9PSBcInNpbmdsZVwiKSB7XHJcbiAgICAgICAgICBjb2wuc29ydGVyID0gdHJ1ZTtcclxuICAgICAgICAgIGNvbC5zb3J0T3JkZXIgPSBzb3J0SW5mb1tjb2wuZGF0YUluZGV4XVxyXG4gICAgICAgICAgICA/IHNvcnRJbmZvW2NvbC5kYXRhSW5kZXhdXHJcbiAgICAgICAgICAgIDogbnVsbDtcclxuICAgICAgICB9IGVsc2UgaWYgKHNvcnRUeXBlID09IFwibXVsdGlwbGVcIikge1xyXG4gICAgICAgICAgY29sLnNvcnRlciA9IHsgbXVsdGlwbGU6IGluZGV4IH07XHJcbiAgICAgICAgICBjb2wuc29ydE9yZGVyID0gc29ydEluZm9bY29sLmRhdGFJbmRleF1cclxuICAgICAgICAgICAgPyBzb3J0SW5mb1tjb2wuZGF0YUluZGV4XVxyXG4gICAgICAgICAgICA6IG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBjb2w7XHJcbiAgICB9KTtcclxuICAgIGNvbHMubWFwKChpdGVtLCBpbmRleCkgPT4ge1xyXG4gICAgICBpZiAoIWlzRW1wdHlPYmooaXRlbS5maWx0ZXJQcm9wcykpIHtcclxuICAgICAgICBsZXQgb2JqID0geyAuLi5pdGVtIH07XHJcbiAgICAgICAgY29uc3QgeyB0eXBlLCBwcm9wcywgc2VhcmNoS2V5IH0gPSBpdGVtLmZpbHRlclByb3BzO1xyXG4gICAgICAgIGxldCBEaXYgPSBudWxsO1xyXG4gICAgICAgIGxldCB0ZXh0ID0gaXRlbS50aXRsZTtcclxuICAgICAgICBEaXYgPSBnZXROb2RlKHR5cGUsIHtcclxuICAgICAgICAgIHBsYWNlaG9sZGVyOiBg5pCc57SiJHt0ZXh0fWAsXHJcbiAgICAgICAgICAuLi5wcm9wcyxcclxuICAgICAgICAgIHJlZjogdGhpcy50YWJsZVNlYXJjaFJlZixcclxuICAgICAgICB9KTtcclxuICAgICAgICBvYmogPSB7XHJcbiAgICAgICAgICBmaWx0ZXJEcm9wZG93bjogKHtcclxuICAgICAgICAgICAgc2V0U2VsZWN0ZWRLZXlzLFxyXG4gICAgICAgICAgICBzZWxlY3RlZEtleXMsXHJcbiAgICAgICAgICAgIGNvbmZpcm0sXHJcbiAgICAgICAgICAgIGNsZWFyRmlsdGVycyxcclxuICAgICAgICAgIH0pID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwic2VhcmNoXCIpfT5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJzcGFjZVwiKX0+e0Rpdn08L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxTcGFjZT5cclxuICAgICAgICAgICAgICAgICAgPEJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJwcmltYXJ5XCJcclxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBjb25maXJtKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICBjb25zdCB7IGZpbHRlclBhcmFtcyB9ID0gdGhpcy5zdGF0ZTtcclxuICAgICAgICAgICAgICAgICAgICAgIGxldCBuZXdGaWx0ZXJQYXJhbXMgPSB7IC4uLmZpbHRlclBhcmFtcyB9O1xyXG4gICAgICAgICAgICAgICAgICAgICAgbGV0IGtleSA9IGl0ZW0uZmllbGQgfHwgaXRlbS5kYXRhSW5kZXg7XHJcbiAgICAgICAgICAgICAgICAgICAgICBuZXdGaWx0ZXJQYXJhbXNba2V5XSA9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudGFibGVTZWFyY2hSZWYuY3VycmVudD8uZ2V0VmFsdWUoKTtcclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJQYXJhbXM6IHsgLi4ubmV3RmlsdGVyUGFyYW1zIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNvcnRQYXJhbSA9IHRoaXMuZ2V0U29ydFBhcmFtKHRoaXMuc3RhdGUuc29ydGVyKTtcclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RvcmUubG9hZCh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtczogeyAuLi5uZXdGaWx0ZXJQYXJhbXMsIC4uLnNvcnRQYXJhbSB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiYnV0dG9uXCIpfVxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAg5p+l6K+iXHJcbiAgICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9TcGFjZT5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBmaWx0ZXJJY29uOiAoKSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiA8U2VhcmNoT3V0bGluZWQgLz47XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgLi4ub2JqLFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgY29sc1tpbmRleF0gPSBvYmo7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGNvbHM7XHJcbiAgfVxyXG4gIHJlbmRlclRvb2xCYXIoKSB7XHJcbiAgICBsZXQgeyB0YWJsZVNpemUsIGNvbHVtbnMsIHNvcnRUeXBlIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgbGV0IHsgZmlsdGVyQ29sdW1uLCBjb2x1bW5zOiBjb2xMaXN0cyB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHNpemVJdGVtID0gW1xyXG4gICAgICB7IHRpdGxlOiBcIuWuveadvlwiLCBrZXk6IFwiZGVmYXVsdFwiIH0sXHJcbiAgICAgIHsgdGl0bGU6IFwi5Lit562JXCIsIGtleTogXCJtaWRkbGVcIiB9LFxyXG4gICAgICB7IHRpdGxlOiBcIue0p+WHkVwiLCBrZXk6IFwic21hbGxcIiB9LFxyXG4gICAgXTtcclxuICAgIGNvbnN0IHNvcnRJdGVtID0gW1xyXG4gICAgICB7IHRpdGxlOiBcIuWNleWtl+auteaOkuW6j1wiLCBrZXk6IFwic2luZ2xlXCIgfSxcclxuICAgICAgeyB0aXRsZTogXCLlpJrlrZfmrrXmjpLluo9cIiwga2V5OiBcIm11bHRpcGxlXCIgfSxcclxuICAgIF07XHJcbiAgICBjb25zdCBzb3J0Q29udGVudCA9IChcclxuICAgICAgPD5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImNvdGVudC10aXRsZVwiKX1cclxuICAgICAgICAgIHN0eWxlPXt7XHJcbiAgICAgICAgICAgIGN1cnNvcjogdGhpcy5zdGF0ZS5kZWZhdWx0U29ydCA/IFwibm90LWFsbG93ZWRcIiA6IFwicG9pbnRlclwiLFxyXG4gICAgICAgICAgICBjb2xvcjogdGhpcy5zdGF0ZS5kZWZhdWx0U29ydCAmJiBcInJnYmEoMCwwLDAsLjQ1KVwiLFxyXG4gICAgICAgICAgfX1cclxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuc3RhdGUuZGVmYXVsdFNvcnQpIHtcclxuICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IHNvcnRlcjogW10sIHNvcnRJbmZvOiB7fSwgZGVmYXVsdFNvcnQ6IHRydWUgfSk7XHJcbiAgICAgICAgICAgIGNvbnN0IHBhcmFtcyA9IHsgLi4udGhpcy5zdGF0ZS5maWx0ZXJQYXJhbXMgfTtcclxuICAgICAgICAgICAgdGhpcy5zdG9yZS5yZWxvYWQoeyBwYXJhbXMgfSk7XHJcbiAgICAgICAgICB9fVxyXG4gICAgICAgID5cclxuICAgICAgICAgIOaBouWkjem7mOiupOaOkuW6j1xyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIHtzb3J0SXRlbS5tYXAoKGl0ZW0sIGluZGV4KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAga2V5PXtpdGVtLmtleX1cclxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgICAgICAgc29ydGVyOiBbXSxcclxuICAgICAgICAgICAgICAgICAgc29ydEluZm86IHt9LFxyXG4gICAgICAgICAgICAgICAgICBzb3J0VHlwZTogaXRlbS5rZXksXHJcbiAgICAgICAgICAgICAgICAgIGRlZmF1bHRTb3J0OiBmYWxzZSxcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcGFyYW1zID0geyAuLi50aGlzLnN0YXRlLmZpbHRlclBhcmFtcyB9O1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zdG9yZS5yZWxvYWQoeyBwYXJhbXMgfSk7XHJcbiAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIHtzb3J0VHlwZSA9PSBpdGVtLmtleSA/IChcclxuICAgICAgICAgICAgICAgIDxhPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiY29udGVudC10aWVtXCIpfT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPXt7IHdpZHRoOiAyMCB9fT5cclxuICAgICAgICAgICAgICAgICAgICAgIHtzb3J0VHlwZSA9PSBpdGVtLmtleSAmJiA8Q2hlY2tPdXRsaW5lZCAvPn1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2PiB7aXRlbS50aXRsZX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJjb250ZW50LXRpZW1cIil9PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPXt7IHdpZHRoOiAyMCB9fT48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdj4ge2l0ZW0udGl0bGV9PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfSl9XHJcbiAgICAgICAge3RoaXMuc3RhdGUuc29ydGVyLmxlbmd0aCA+IDAgJiYgKFxyXG4gICAgICAgICAgPD5cclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiY290ZW50LXRpdGxlXCIpfVxyXG4gICAgICAgICAgICAgIHN0eWxlPXt7IGNvbG9yOiBcInJnYmEoMCwwLDAsLjQ1KVwiIH19XHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICDlvZPliY3mjpLluo9cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIHt0aGlzLnN0YXRlLnNvcnRlci5tYXAoKGl0ZW0sIGluZGV4KSA9PiB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJjb250ZW50LXRpZW1cIil9IGtleT17aW5kZXh9PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPXt7IHdpZHRoOiAyMCB9fT5cclxuICAgICAgICAgICAgICAgICAgICB7aXRlbS5vcmRlciA9PSBcImFzY2VuZFwiID8gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgPFNvcnRBc2NlbmRpbmdPdXRsaW5lZCAvPlxyXG4gICAgICAgICAgICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICA8U29ydERlc2NlbmRpbmdPdXRsaW5lZCAvPlxyXG4gICAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2PiB7aXRlbS5jb2x1bW4udGl0bGV9PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9KX1cclxuICAgICAgICAgIDwvPlxyXG4gICAgICAgICl9XHJcbiAgICAgIDwvPlxyXG4gICAgKTtcclxuICAgIGNvbnN0IHNpemVDb250ZW50ID0gKFxyXG4gICAgICA8PlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJjb3RlbnQtdGl0bGVcIil9PuihqOagvOWvhuW6pjwvZGl2PlxyXG4gICAgICAgIHtzaXplSXRlbS5tYXAoKGl0ZW0sIGluZGV4KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAga2V5PXtpdGVtLmtleX1cclxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgICAgICAgdGFibGVTaXplOiBpdGVtLmtleSxcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICB7dGFibGVTaXplID09IGl0ZW0ua2V5ID8gKFxyXG4gICAgICAgICAgICAgICAgPGE+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJjb250ZW50LXRpZW1cIil9PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9e3sgd2lkdGg6IDIwIH19PlxyXG4gICAgICAgICAgICAgICAgICAgICAge3RhYmxlU2l6ZSA9PSBpdGVtLmtleSAmJiA8Q2hlY2tPdXRsaW5lZCAvPn1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2PiB7aXRlbS50aXRsZX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJjb250ZW50LXRpZW1cIil9PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPXt7IHdpZHRoOiAyMCB9fT48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdj4ge2l0ZW0udGl0bGV9PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfSl9XHJcbiAgICAgIDwvPlxyXG4gICAgKTtcclxuXHJcbiAgICBjb25zdCBkZWZhdWx0U2hvd0NvbHMgPSBjb2x1bW5zLmZpbHRlcigoY29scykgPT4gY29scy5pbml0U2hvdyAhPT0gZmFsc2UpO1xyXG5cclxuICAgIGNvbnN0IGNvbnRlbnQgPSAoXHJcbiAgICAgIDxDaGVja2JveC5Hcm91cFxyXG4gICAgICAgIG9uQ2hhbmdlPXt0aGlzLmZpbHRlckNvbHVtbi5iaW5kKHRoaXMpfVxyXG4gICAgICAgIG9wdGlvbnM9e2NvbExpc3RzLm1hcChcclxuICAgICAgICAgIChjb2w6IENvbHVtblR5cGU8e30+ICYgeyBmaWx0ZXJDb2x1bW46IGJvb2xlYW47IGRhdGFJbmRleDogYW55IH0pID0+IHtcclxuICAgICAgICAgICAgaWYgKCFjb2wuZGF0YUluZGV4KSB7XHJcbiAgICAgICAgICAgICAgY29sLmRhdGFJbmRleCA9IGNvbC50aXRsZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgIGxhYmVsOiBjb2wudGl0bGUsXHJcbiAgICAgICAgICAgICAgdmFsdWU6IGNvbC5kYXRhSW5kZXgsXHJcbiAgICAgICAgICAgICAgZGlzYWJsZWQ6IGNvbC5maWx0ZXJDb2x1bW4gPT09IGZhbHNlLFxyXG4gICAgICAgICAgICB9IGFzIENoZWNrYm94T3B0aW9uVHlwZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICApfVxyXG4gICAgICAgIC8vIGRlZmF1bHRWYWx1ZT17ZGVmYXVsdFNob3dDb2xzLm1hcCgoY29sKSA9PiBjb2wuZGF0YUluZGV4KX1cclxuICAgICAgICB2YWx1ZT17XHJcbiAgICAgICAgICB0aGlzLnN0YXRlLmRlZmF1bHRDaGVja1xyXG4gICAgICAgICAgICA/IGRlZmF1bHRTaG93Q29scy5tYXAoKGNvbCkgPT4gY29sLmRhdGFJbmRleClcclxuICAgICAgICAgICAgOiB0aGlzLnN0YXRlLmNoZWNrQ29sdW1uXHJcbiAgICAgICAgfVxyXG4gICAgICA+PC9DaGVja2JveC5Hcm91cD5cclxuICAgICk7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwidGFibGUtdG9vbC1iYXJcIil9PlxyXG4gICAgICAgIHtmaWx0ZXJDb2x1bW4gJiYgKFxyXG4gICAgICAgICAgPGRpdiBzdHlsZT17eyBmb250U2l6ZTogMTQgfX0+XHJcbiAgICAgICAgICAgIDxQb3BvdmVyXHJcbiAgICAgICAgICAgICAgdGl0bGU9XCLpgInmi6nmmL7npLrnmoTliJdcIlxyXG4gICAgICAgICAgICAgIGNvbnRlbnQ9e2NvbnRlbnR9XHJcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tUmlnaHRcIlxyXG4gICAgICAgICAgICAgIHRyaWdnZXI9XCJjbGlja1wiXHJcbiAgICAgICAgICAgICAgb3ZlcmxheVN0eWxlPXt7IG1pbldpZHRoOiA0MTAsIG1heFdpZHRoOiA0NTAgfX1cclxuICAgICAgICAgICAgICAvLyBnZXRQb3B1cENvbnRhaW5lcj17KCkgPT4gdGhpcy50aEljb25SZWYuY3VycmVudH1cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxBcHBzdG9yZU91dGxpbmVkIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiYXBwLXN0b3JlLWljb25cIil9IC8+XHJcbiAgICAgICAgICAgIDwvUG9wb3Zlcj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICl9XHJcbiAgICAgICAgPGRpdiBzdHlsZT17eyBtYXJnaW5SaWdodDogOCwgZm9udFNpemU6IDE0IH19PlxyXG4gICAgICAgICAgPFBvcG92ZXIgcGxhY2VtZW50PVwiYm90dG9tXCIgY29udGVudD17c29ydENvbnRlbnR9IHRyaWdnZXI9XCJjbGlja1wiPlxyXG4gICAgICAgICAgICA8U29ydEFzY2VuZGluZ091dGxpbmVkIC8+XHJcbiAgICAgICAgICA8L1BvcG92ZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBzdHlsZT17eyBtYXJnaW5SaWdodDogOCwgZm9udFNpemU6IDE0IH19PlxyXG4gICAgICAgICAgPFBvcG92ZXIgcGxhY2VtZW50PVwiYm90dG9tXCIgY29udGVudD17c2l6ZUNvbnRlbnR9IHRyaWdnZXI9XCJjbGlja1wiPlxyXG4gICAgICAgICAgICA8Q29sdW1uSGVpZ2h0T3V0bGluZWQgLz5cclxuICAgICAgICAgIDwvUG9wb3Zlcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICApO1xyXG4gIH1cclxuICByZW5kZXIoKSB7XHJcbiAgICBsZXQgX3RoaXMgPSB0aGlzLFxyXG4gICAgICB7XHJcbiAgICAgICAgbG9hZGluZyxcclxuICAgICAgICBkYXRhU291cmNlLFxyXG4gICAgICAgIHBhZ2luYXRpb24gPSB7fSxcclxuICAgICAgICBzZWFyY2hUZXh0LFxyXG4gICAgICAgIGZpZWxkT3B0aW9uLFxyXG4gICAgICAgIHNlYXJjaENvbG9yLFxyXG4gICAgICAgIHRhYmxlU2l6ZSxcclxuICAgICAgfSA9IHRoaXMuc3RhdGUsXHJcbiAgICAgIHByb3BzID0gdXRpbHMub21pdChcclxuICAgICAgICB0aGlzLnByb3BzLFxyXG4gICAgICAgIFtcclxuICAgICAgICAgIFwic3RvcmVcIixcclxuICAgICAgICAgIFwib25DaGFuZ2VcIixcclxuICAgICAgICAgIFwiY29sdW1uc1wiLFxyXG4gICAgICAgICAgXCJyZXNldENvbHVtblwiLFxyXG4gICAgICAgICAgXCJ0b29sYmFyXCIsXHJcbiAgICAgICAgICBcInNvcnRGaWVsZHNcIixcclxuICAgICAgICAgIFwiZmlsdGVyQ29sdW1uXCIsXHJcbiAgICAgICAgXSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICByb3dLZXk6IFwiaWRcIixcclxuICAgICAgICAgIGNsaWNrQ2hhbmdlQ29sb3I6IGZhbHNlLFxyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICAgIGlmIChwcm9wcy5wYWdpbmF0aW9uICE9PSBmYWxzZSkge1xyXG4gICAgICBwcm9wcy5wYWdpbmF0aW9uID0ge1xyXG4gICAgICAgIHBvc2l0aW9uOiBbXCJib3R0b21SaWdodFwiXSxcclxuICAgICAgICBzaG93U2l6ZUNoYW5nZXI6IHRydWUsXHJcbiAgICAgICAgc2hvd1F1aWNrSnVtcGVyOiB0cnVlLFxyXG4gICAgICAgIC4uLnByb3BzLnBhZ2luYXRpb24sXHJcbiAgICAgICAgLi4ucGFnaW5hdGlvbixcclxuICAgICAgfTtcclxuICAgICAgaWYgKHByb3BzLnNob3dUb3RhbCA9PSB0cnVlKSB7XHJcbiAgICAgICAgcHJvcHMucGFnaW5hdGlvbi5zaG93VG90YWwgPSBmdW5jdGlvbiAodG90YWwsIFtmcm9tLCB0b10pIHtcclxuICAgICAgICAgIC8vIHJldHVybiBcIuaYvuekuiBcIiArIGZyb20gKyBcIiAtIFwiICsgdG8gKyBcIuadoe+8jOWFsSBcIiArIHRvdGFsICsgXCIg5p2hXCI7XHJcbiAgICAgICAgICByZXR1cm4gXCLlhbEgXCIgKyB0b3RhbCArIFwiIOadoVwiO1xyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHByb3BzLm9uQ2hhbmdlID0gZnVuY3Rpb24gKHBhZ2luYXRpb24sIGZpbHRlcnMsIHNvcnRlciwgZXh0cmEpIHtcclxuICAgICAgX3RoaXMub25DaGFuZ2UocGFnaW5hdGlvbiwgZmlsdGVycywgc29ydGVyLCBleHRyYSk7XHJcbiAgICB9O1xyXG4gICAgaWYgKHByb3BzLmNsaWNrQ2hhbmdlQ29sb3IpIHtcclxuICAgICAgY29uc3Qgb25Sb3dGbiA9IHByb3BzLm9uUm93O1xyXG4gICAgICBwcm9wcy5vblJvdyA9IGZ1bmN0aW9uIChyZWNvcmQsIGluZGV4KSB7XHJcbiAgICAgICAgdmFyIGN1c3RvbSA9IG9uUm93Rm4gPyBvblJvd0ZuKHJlY29yZCwgaW5kZXgpIDoge307XHJcbiAgICAgICAgY29uc3Qgb25DbGlja0ZuID0gY3VzdG9tLm9uQ2xpY2s7XHJcbiAgICAgICAgY3VzdG9tLm9uQ2xpY2sgPSAoZXZlbnQpID0+IHtcclxuICAgICAgICAgIF90aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgYWN0aXZlSW5kZXg6IGluZGV4LCAvL+iOt+WPlueCueWHu+ihjOeahOe0ouW8lVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICB1dGlscy5jYWxsYmFjayhvbkNsaWNrRm4sIF90aGlzLCBbZXZlbnRdKTtcclxuICAgICAgICB9O1xyXG4gICAgICAgIHJldHVybiBjdXN0b207XHJcbiAgICAgIH07XHJcbiAgICAgIHByb3BzLnJvd0NsYXNzTmFtZSA9IGZ1bmN0aW9uIChyZWNvcmQsIGluZGV4KSB7XHJcbiAgICAgICAgcmV0dXJuIGluZGV4ID09PSBfdGhpcy5zdGF0ZS5hY3RpdmVJbmRleFxyXG4gICAgICAgICAgPyBgJHtzdHlsZXMuY2xpY2tSb3dTdHlsZX1gXHJcbiAgICAgICAgICA6IFwiXCI7XHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICBsZXQgbmV3RGF0YVNvdXJjZSA9IFtdO1xyXG4gICAgaWYgKHNlYXJjaFRleHQpIHtcclxuICAgICAgY29uc3QgZGF0YSA9IHRyZWVVdGlscy5nZXRTZWFyY2hNZW51RGF0YXMoXHJcbiAgICAgICAgdGhpcyxcclxuICAgICAgICBzZWFyY2hUZXh0LFxyXG4gICAgICAgIGZpZWxkT3B0aW9uLFxyXG4gICAgICAgIHNlYXJjaENvbG9yXHJcbiAgICAgICk7XHJcbiAgICAgIG5ld0RhdGFTb3VyY2UgPSBkYXRhLnRyZWVEYXRhcztcclxuICAgICAgcHJvcHMuZXhwYW5kZWRSb3dLZXlzID0gZGF0YS5vcGVuS2V5cztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIG5ld0RhdGFTb3VyY2UgPSBkYXRhU291cmNlO1xyXG4gICAgfVxyXG4gICAgcHJvcHMuc3RvcmUgPSBwcm9wcy5zdG9yZSB8fCB7fTtcclxuICAgIHByb3BzLnN0b3JlLmF1dG9Mb2FkID0gcHJvcHMuc3RvcmUuYXV0b0xvYWQgPT09IGZhbHNlID8gZmFsc2UgOiB0cnVlO1xyXG4gICAgY29uc3QgeyBkcmFnYWJsZSB9ID0gX3RoaXMucHJvcHM7XHJcbiAgICBjb25zdCBkcmFnYWJsZVByb3BzID1cclxuICAgICAgZHJhZ2FibGUgPT09IHRydWVcclxuICAgICAgICA/IHtcclxuICAgICAgICAgICAgY29tcG9uZW50czogQm9keVJvd0NvbXBvbmVudCxcclxuICAgICAgICAgICAgb25Sb3c6IChyZWNvcmQsIGluZGV4KSA9PiAoe1xyXG4gICAgICAgICAgICAgIGluZGV4LFxyXG4gICAgICAgICAgICAgIHJlY29yZCxcclxuICAgICAgICAgICAgICBtb3ZlUm93OiB0aGlzLm1vdmVSb3csXHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIDoge307XHJcbiAgICBsZXQgeyByZXNpemVDb2x1bW4gfSA9IHRoaXMucHJvcHM7XHJcblxyXG4gICAgY29uc3QgcmVzaXplUHJvcHMgPVxyXG4gICAgICByZXNpemVDb2x1bW4gPT09IHRydWUgPyB7IGNvbXBvbmVudHM6IHRoaXMuY29tcG9uZW50cyB9IDogbnVsbDtcclxuXHJcbiAgICBjb25zdCBEZWZhdWx0VGFibGUgPSAoXHJcbiAgICAgIDw+XHJcbiAgICAgICAge3RoaXMucHJvcHMudG9vbGJhciAmJiB0aGlzLnJlbmRlclRvb2xCYXIoKX1cclxuICAgICAgICA8VGFibGVcclxuICAgICAgICAgIGNoaWxkcmVuQ29sdW1uTmFtZT1cImNoaWxkTm9kZXNcIlxyXG4gICAgICAgICAgZGF0YVNvdXJjZT17bmV3RGF0YVNvdXJjZX1cclxuICAgICAgICAgIGNvbHVtbnM9e3RoaXMuZ2V0Q29sdW1ucygpfVxyXG4gICAgICAgICAgbG9hZGluZz17bG9hZGluZ31cclxuICAgICAgICAgIGNsYXNzTmFtZT17c3R5bGVzW1wibnNjLXRhYmxlXCJdfVxyXG4gICAgICAgICAgbG9jYWxlPXt7IGVtcHR5VGV4dDogPE5vRGF0YSAvPiB9fVxyXG4gICAgICAgICAgc2Nyb2xsPXt7IHg6IFwibWF4LWNvbnRlbnRcIiB9fVxyXG4gICAgICAgICAgey4uLnJlc2l6ZVByb3BzfVxyXG4gICAgICAgICAgey4uLnByb3BzfVxyXG4gICAgICAgICAgey4uLmRyYWdhYmxlUHJvcHN9XHJcbiAgICAgICAgICBzaXplPXt0YWJsZVNpemV9XHJcbiAgICAgICAgLz5cclxuICAgICAgPC8+XHJcbiAgICApO1xyXG5cclxuICAgIHJldHVybiBkcmFnYWJsZSA9PT0gdHJ1ZSA/IChcclxuICAgICAgPERuZFByb3ZpZGVyIGJhY2tlbmQ9e0hUTUw1QmFja2VuZH0+e0RlZmF1bHRUYWJsZX08L0RuZFByb3ZpZGVyPlxyXG4gICAgKSA6IChcclxuICAgICAgRGVmYXVsdFRhYmxlXHJcbiAgICApO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgd2l0aFpoTG9jYWxlKE5TQ1RhYmxlKTtcclxuIl19
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { UploadProps } from "antd";
|
|
3
|
+
interface IUploadProps extends UploadProps {
|
|
4
|
+
sliceSize?: number;
|
|
5
|
+
maxSize?: number;
|
|
6
|
+
onProcess?: (process: any) => void;
|
|
7
|
+
onComplete?: ({ file, fileId, status }: {
|
|
8
|
+
file: any;
|
|
9
|
+
fileId: any;
|
|
10
|
+
status: any;
|
|
11
|
+
}) => void;
|
|
12
|
+
allowFileSuffix?: Array<String>;
|
|
13
|
+
useDefaultList?: boolean;
|
|
14
|
+
fileCard?: boolean;
|
|
15
|
+
onListChange?: any;
|
|
16
|
+
}
|
|
17
|
+
declare const _default: React.ForwardRefExoticComponent<Pick<any, string | number | symbol> & React.RefAttributes<IUploadProps>>;
|
|
18
|
+
export default _default;
|