@agilemotion/oui-react-js 2.0.25 → 2.0.27
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/RestService.js +22 -13
- package/dist/RestUtils.js +7 -4
- package/dist/components/AlertBar.js +2 -2
- package/dist/components/Button.js +59 -7
- package/dist/components/DataGrid.js +42 -16
- package/dist/components/DocumentTemplateDesignerComponent.js +2 -2
- package/dist/components/FileThumb.js +69 -7
- package/dist/components/WordDocumentViewer.js +2 -2
- package/dist/components/dashboard/components/blackDashboard/sidebar/FoldingTabSidebar.js +6 -2
- package/dist/components/form/BaseField.js +4 -2
- package/dist/components/form/Checkbox.js +3 -2
- package/dist/components/form/FieldSet.js +2 -2
- package/dist/components/form/Form.css +1 -1
- package/dist/components/form/Form.js +40 -38
- package/dist/components/form/GridField.js +6 -5
- package/dist/components/form/RadioGroup.js +5 -5
- package/dist/components/form/UploadField.js +68 -4
- package/dist/components/layout/Layout.js +9 -1
- package/dist/components/layout/View.css +2 -0
- package/dist/components/media/ChatViewer.js +103 -0
- package/dist/components/media/TrainingRoom.js +5 -5
- package/dist/components/media/VCRoomParticipant.js +7 -3
- package/dist/components/media/VCRoomWorkspace.js +19 -4
- package/dist/components/media/chat/ChatRoom.js +21 -10
- package/dist/components/media/chat/PollContainer.js +85 -18
- package/dist/js/ProcurementMeetings.js +11 -4
- package/dist/view/PortalDashboard.js +6 -5
- package/dist/view/security/ForgotPassword.js +4 -1
- package/dist/view/security/ForgotPasswordBasic.js +4 -1
- package/dist/view/security/RegisterInteractionPortal.js +5 -1
- package/dist/view/security/ResetPassword.js +4 -1
- package/dist/view/security/ResetPasswordBasic.js +4 -1
- package/dist/view/security/Security.js +16 -3
- package/package.json +1 -1
|
@@ -30,6 +30,7 @@ var _Portlet = _interopRequireDefault(require("../Portlet"));
|
|
|
30
30
|
var _TabPanel = _interopRequireDefault(require("../TabPanel"));
|
|
31
31
|
var _DocumentTemplateDesigner = _interopRequireDefault(require("../DocumentTemplateDesigner"));
|
|
32
32
|
var _ChatRoomWrapper = _interopRequireDefault(require("../media/chat/ChatRoomWrapper"));
|
|
33
|
+
var _ChatViewer = _interopRequireDefault(require("../media/ChatViewer"));
|
|
33
34
|
var _ProgressTracker = _interopRequireDefault(require("../ProgressTracker"));
|
|
34
35
|
var _Chart = _interopRequireDefault(require("../Chart"));
|
|
35
36
|
var _FacialRegistration = _interopRequireDefault(require("../facialRecognition/FacialRegistration"));
|
|
@@ -278,6 +279,13 @@ const Layout = props => {
|
|
|
278
279
|
key: index,
|
|
279
280
|
viewId: props.viewId
|
|
280
281
|
});
|
|
282
|
+
case 'chatViewer':
|
|
283
|
+
return /*#__PURE__*/_react.default.createElement(_ChatViewer.default, {
|
|
284
|
+
config: component,
|
|
285
|
+
handle: createComponentHandle(component),
|
|
286
|
+
key: index,
|
|
287
|
+
viewId: props.viewId
|
|
288
|
+
});
|
|
281
289
|
case 'progressTracker':
|
|
282
290
|
return /*#__PURE__*/_react.default.createElement(_ProgressTracker.default, {
|
|
283
291
|
config: component,
|
|
@@ -450,4 +458,4 @@ const Layout = props => {
|
|
|
450
458
|
}, render(props.config));
|
|
451
459
|
};
|
|
452
460
|
exports.Layout = Layout;
|
|
453
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfVXRpbHMiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX09ic2VydmFibGUiLCJfVG9vbGJhciIsIl9EYXRhR3JpZCIsIl9IdG1sUGFuZWwiLCJfVHVybnN0aWxlIiwiX1NpZ25hdHVyZVRlbXBsYXRlRGVzaWduZXIiLCJfVGVtcGxhdGVEZXNpZ25lciIsIl9BbGVydEJhciIsIl9UaXRsZUJhciIsIl9TdGVwcGVyVGl0bGVCYXIiLCJfVHJlZSIsIl9Gb3JtIiwiX0RvY3VtZW50Vmlld2VyIiwiX1NpZ25hdHVyZVBhbmVsIiwiX0RpYWxvZyIsIl9DYWxlbmRhciIsIl9WaWRlbyIsIl9WQ1NldHRpbmdzIiwiX1ZDUm9vbSIsIl9WaWRlb1BsYXllciIsIl9Qb3J0bGV0IiwiX1RhYlBhbmVsIiwiX0RvY3VtZW50VGVtcGxhdGVEZXNpZ25lciIsIl9DaGF0Um9vbVdyYXBwZXIiLCJfUHJvZ3Jlc3NUcmFja2VyIiwiX0NoYXJ0IiwiX0ZhY2lhbFJlZ2lzdHJhdGlvbiIsIl9GYWNpYWxWZXJpZmljYXRpb24iLCJfU3Bpbm5lciIsIl9yZWFjdFJlc2l6YWJsZVBhbmVscyIsIl9DaGF0IiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwidCIsIldlYWtNYXAiLCJyIiwibiIsIm8iLCJpIiwiZiIsIl9fcHJvdG9fXyIsImhhcyIsImdldCIsInNldCIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiTGF5b3V0IiwicHJvcHMiLCJjb21wb25lbnRIYW5kbGVzIiwiUmVhY3QiLCJ1c2VTdGF0ZSIsImxvYWRlZENvbXBvbmVudHMiLCJ2aXNpYmxlIiwic2V0VmlzaWJsZSIsImtleUNvdW50ZXIiLCJ1c2VFZmZlY3QiLCJoYW5kbGUiLCJhcGkiLCJ0YWJsZVJvdyIsIl9wcm9wcyR0YWJsZVJvdyRpZCIsImNvbmZpZyIsImlkIiwicmVwbGFjZUFsbCIsInBhcnNlZENvbmZpZyIsIlV0aWxzIiwicGFyc2VDb25maWciLCJ2aWV3SWQiLCJldmVudE1hbmFnZXIiLCJhZGRTdWJzY3JpcHRpb25zIiwiZXZlbnRIYW5kbGluZ0NvbmZpZyIsImFkZFN5c3RlbVN1YnNjcmlwdGlvbnMiLCJpc051bGwiLCJldmFsdWF0ZUJvb2xlYW5FeHByZXNzaW9uIiwiY3JlYXRlQ29tcG9uZW50SGFuZGxlIiwiY29tcG9uZW50IiwidXNlTGF5b3V0RWZmZWN0IiwidW5pcXVlSWQiLCJwcmVmaXgiLCJfYyIsIkRhdGUiLCJub3ciLCJ0b1N0cmluZyIsIk1hdGgiLCJyYW5kb20iLCJzbGljZSIsInNldE1pc3NpbmdDb21wb25lbnRJZHMiLCJsYXlvdXQiLCJrZXkiLCJjb21wb25lbnRzIiwibGVuZ3RoIiwidHlwZSIsInJlbmRlckNvbXBvbmVudCIsImluZGV4IiwiY3JlYXRlRWxlbWVudCIsIkRhdGFHcmlkIiwiY2xhc3NOYW1lIiwiZ2V0Q29tcG9uZW50QXR0cmlidXRlIiwiVHJlZSIsImdldENoaWxkcmVuIiwiY2hpbGRyZW4iLCJwcm9wZXJ0aWVzIiwiZ2V0T3duUHJvcGVydHlOYW1lcyIsInByb3BlcnR5IiwiY29tcG9uZW50SGFuZGxlIiwicHVzaCIsIm1vcmVDaGlsZHJlbiIsImNoaWxkIiwidmFsIiwicmVmcmVzaCIsImdldERlZmF1bHRDb21wb25lbnRDb250YWluZXJTdHlsZSIsIm1lcmdlU3R5bGVzIiwid2lkdGgiLCJoZWlnaHQiLCJtYXJnaW4iLCJtaW5IZWlnaHQiLCJnZXRMYXlvdXRTdHlsZSIsImJhY2tncm91bmRDb2xvciIsInN0eWxlIiwib3ZlcmZsb3ciLCJib3JkZXIiLCJtaW5XaWR0aCIsInBhZGRpbmciLCJkaXNwbGF5IiwicmVuZGVyV2l0aFNwbGl0dGVycyIsImRpcmVjdGlvbiIsIm9yaWVudGF0aW9uIiwiaGFuZGxlQ2xhc3MiLCJmb3JFYWNoIiwiU2VwYXJhdG9yIiwiY29uY2F0IiwiUGFuZWwiLCJkZWZhdWx0U2l6ZSIsInNwbGl0dGVyRGVmYXVsdFNpemUiLCJtaW5TaXplIiwic3BsaXR0ZXJNaW5TaXplIiwibWF4U2l6ZSIsInNwbGl0dGVyTWF4U2l6ZSIsImNvbGxhcHNpYmxlIiwic3BsaXR0ZXJDb2xsYXBzaWJsZSIsIkdyb3VwIiwicmVuZGVyIiwic3BsaXR0ZXIiLCJGcmFnbWVudCIsIm1hcCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbGF5b3V0L0xheW91dC5qc3giXSwic291cmNlc0NvbnRlbnQiOlsi77u/aW1wb3J0IFJlYWN0LCB7RnJhZ21lbnR9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBVdGlscyBmcm9tICcuLi8uLi9VdGlscyc7XG5pbXBvcnQgZXZlbnRNYW5hZ2VyIGZyb20gJy4uLy4uL2V2ZW50L09ic2VydmFibGUnO1xuaW1wb3J0IFRvb2xiYXIgZnJvbSAnLi4vVG9vbGJhcic7XG5pbXBvcnQge0RhdGFHcmlkfSBmcm9tICcuLi9EYXRhR3JpZCc7XG5pbXBvcnQgSHRtbFBhbmVsIGZyb20gJy4uL0h0bWxQYW5lbCc7XG5pbXBvcnQgVHVybnN0aWxlIGZyb20gJy4uL1R1cm5zdGlsZSc7XG5pbXBvcnQgU2lnbmF0dXJlVGVtcGxhdGVEZXNpZ25lciBmcm9tICcuLi9zaWduYXR1cmVzL1NpZ25hdHVyZVRlbXBsYXRlRGVzaWduZXInO1xuaW1wb3J0IFRlbXBsYXRlRGVzaWduZXIgZnJvbSAnLi4vVGVtcGxhdGVEZXNpZ25lcic7XG5pbXBvcnQgQWxlcnRCYXIgZnJvbSAnLi4vQWxlcnRCYXInO1xuaW1wb3J0IFRpdGxlQmFyIGZyb20gJy4uL1RpdGxlQmFyJztcbmltcG9ydCBTdGVwcGVyVGl0bGVCYXIgZnJvbSAnLi4vU3RlcHBlclRpdGxlQmFyJztcbmltcG9ydCB7VHJlZX0gZnJvbSAnLi4vVHJlZSc7XG5pbXBvcnQgRm9ybSBmcm9tICcuLi9mb3JtL0Zvcm0nO1xuaW1wb3J0IERvY3VtZW50Vmlld2VyIGZyb20gJy4uL0RvY3VtZW50Vmlld2VyJztcbmltcG9ydCBTaWduYXR1cmVQYW5lbCBmcm9tICcuLi9TaWduYXR1cmVQYW5lbCc7XG5pbXBvcnQgRGlhbG9nIGZyb20gJy4uL0RpYWxvZyc7XG5pbXBvcnQgQ2FsZW5kYXIgZnJvbSAnLi4vQ2FsZW5kYXInO1xuaW1wb3J0IFZpZGVvIGZyb20gJy4uL21lZGlhL1ZpZGVvJztcbmltcG9ydCBWQ1NldHRpbmdzIGZyb20gJy4uL21lZGlhL1ZDU2V0dGluZ3MnO1xuaW1wb3J0IFZDUm9vbSBmcm9tICcuLi9tZWRpYS9WQ1Jvb20nO1xuaW1wb3J0IFZpZGVvUGxheWVyIGZyb20gJy4uL21lZGlhL1ZpZGVvUGxheWVyJztcbmltcG9ydCBQb3J0bGV0IGZyb20gJy4uL1BvcnRsZXQnO1xuaW1wb3J0IFRhYlBhbmVsIGZyb20gJy4uL1RhYlBhbmVsJztcbmltcG9ydCBEb2N1bWVudFRlbXBsYXRlRGVzaWduZXIgZnJvbSBcIi4uL0RvY3VtZW50VGVtcGxhdGVEZXNpZ25lclwiO1xuaW1wb3J0IENoYXRSb29tV3JhcHBlciBmcm9tIFwiLi4vbWVkaWEvY2hhdC9DaGF0Um9vbVdyYXBwZXJcIjtcbmltcG9ydCBQcm9ncmVzc1RyYWNrZXIgZnJvbSBcIi4uL1Byb2dyZXNzVHJhY2tlclwiO1xuaW1wb3J0IENoYXJ0IGZyb20gXCIuLi9DaGFydFwiO1xuaW1wb3J0IEZhY2lhbFJlZ2lzdHJhdGlvbiBmcm9tIFwiLi4vZmFjaWFsUmVjb2duaXRpb24vRmFjaWFsUmVnaXN0cmF0aW9uXCI7XG5pbXBvcnQgRmFjaWFsVmVyaWZpY2F0aW9uIGZyb20gXCIuLi9mYWNpYWxSZWNvZ25pdGlvbi9GYWNpYWxWZXJpZmljYXRpb25cIjtcbmltcG9ydCBTcGlubmVyIGZyb20gXCIuLi9TcGlubmVyXCI7XG5pbXBvcnQge0dyb3VwIGFzIFBhbmVsR3JvdXAsIFBhbmVsLCBTZXBhcmF0b3IgYXMgUGFuZWxSZXNpemVIYW5kbGV9IGZyb20gXCJyZWFjdC1yZXNpemFibGUtcGFuZWxzXCI7XG5pbXBvcnQgXCIuL0xheW91dC5jc3NcIlxuaW1wb3J0IENoYXQgZnJvbSBcIi4uL21lZGlhL0NoYXRcIjtcblxuZXhwb3J0IGNvbnN0IExheW91dCA9IChwcm9wcykgPT4ge1xuICAgIGNvbnN0IFtjb21wb25lbnRIYW5kbGVzXSA9IFJlYWN0LnVzZVN0YXRlKHt9KTtcbiAgICBjb25zdCBbbG9hZGVkQ29tcG9uZW50c10gPSBSZWFjdC51c2VTdGF0ZShbXSk7XG4gICAgY29uc3QgW3Zpc2libGUsIHNldFZpc2libGVdID0gUmVhY3QudXNlU3RhdGUodHJ1ZSk7XG4gICAgbGV0IGtleUNvdW50ZXIgPSAwO1xuXG4gICAgUmVhY3QudXNlRWZmZWN0KFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICBwcm9wcy5oYW5kbGUuYXBpID0gYXBpKCk7XG4gICAgICAgIH0pO1xuXG4gICAgUmVhY3QudXNlRWZmZWN0KFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICBpZiAocHJvcHMudGFibGVSb3cpIHtcbiAgICAgICAgICAgICAgICBwcm9wcy5jb25maWcuaWQgPSBwcm9wcy5jb25maWcuaWQgKyAnXycgKyBwcm9wcy50YWJsZVJvdy5pZD8ucmVwbGFjZUFsbCgnLScsICcnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcHJvcHMuaGFuZGxlLmFwaSA9IGFwaSgpO1xuICAgICAgICAgICAgbGV0IHBhcnNlZENvbmZpZyA9IFV0aWxzLnBhcnNlQ29uZmlnKHByb3BzLmNvbmZpZywgcHJvcHMudmlld0lkKTtcbiAgICAgICAgICAgIGV2ZW50TWFuYWdlci5hZGRTdWJzY3JpcHRpb25zKHBhcnNlZENvbmZpZy5ldmVudEhhbmRsaW5nQ29uZmlnLCBwcm9wcy5oYW5kbGUsIHByb3BzLnZpZXdJZCk7XG4gICAgICAgICAgICBldmVudE1hbmFnZXIuYWRkU3lzdGVtU3Vic2NyaXB0aW9ucyhwcm9wcy52aWV3SWQsIHBhcnNlZENvbmZpZyk7XG5cbiAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKHBhcnNlZENvbmZpZy52aXNpYmxlKSkge1xuICAgICAgICAgICAgICAgIHNldFZpc2libGUoVXRpbHMuZXZhbHVhdGVCb29sZWFuRXhwcmVzc2lvbihwYXJzZWRDb25maWcudmlzaWJsZSwgcHJvcHMuY29uZmlnLmlkKSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHNldFZpc2libGUodHJ1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIFtdKTtcblxuICAgIGZ1bmN0aW9uIGNyZWF0ZUNvbXBvbmVudEhhbmRsZShjb21wb25lbnQpIHtcbiAgICAgICAgaWYgKFV0aWxzLmlzTnVsbChjb21wb25lbnRIYW5kbGVzW2NvbXBvbmVudC5pZF0pKSB7XG4gICAgICAgICAgICBsZXQgaGFuZGxlID0ge307XG4gICAgICAgICAgICBjb21wb25lbnRIYW5kbGVzW2NvbXBvbmVudC5pZF0gPSBoYW5kbGU7XG4gICAgICAgICAgICByZXR1cm4gaGFuZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNvbXBvbmVudEhhbmRsZXNbY29tcG9uZW50LmlkXTtcbiAgICB9XG5cbiAgICBSZWFjdC51c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgICAgICBwcm9wcy5oYW5kbGUuYXBpID0gYXBpKCk7XG4gICAgfSwgW10pO1xuXG4gICAgZnVuY3Rpb24gdW5pcXVlSWQocHJlZml4KSB7XG4gICAgICAgIC8vIHRpbWUgKyByYW5kb20gKyBjb3VudGVyLCBhbGwgYmFzZTM2IChubyBkYXNoZXMpXG4gICAgICAgIHVuaXF1ZUlkLl9jID0gKHVuaXF1ZUlkLl9jIHx8IDApICsgMTtcbiAgICAgICAgcmV0dXJuIHByZWZpeCArIERhdGUubm93KCkudG9TdHJpbmcoMzYpXG4gICAgICAgICAgICArIE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnNsaWNlKDIpXG4gICAgICAgICAgICArIHVuaXF1ZUlkLl9jLnRvU3RyaW5nKDM2KTtcbiAgICB9XG5cbiAgICBjb25zdCBzZXRNaXNzaW5nQ29tcG9uZW50SWRzID0gKCkgPT4ge1xuICAgICAgICBsZXQgbGF5b3V0ID0gcHJvcHMuY29uZmlnO1xuICAgICAgICBpZiAoIWxheW91dC5pZCkge1xuICAgICAgICAgICAgbGF5b3V0LmlkID0gdW5pcXVlSWQoJ19wYXJlbnRfbGF5b3V0XycpO1xuICAgICAgICB9XG5cbiAgICAgICAgbGF5b3V0LmtleSA9IGtleUNvdW50ZXIrKztcbiAgICAgICAgaWYgKCFVdGlscy5pc051bGwobGF5b3V0LmNvbXBvbmVudHMpKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxheW91dC5jb21wb25lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgbGV0IGNvbXBvbmVudCA9IGxheW91dC5jb21wb25lbnRzW2ldO1xuICAgICAgICAgICAgICAgIGlmIChVdGlscy5pc051bGwoY29tcG9uZW50LmlkKSkge1xuICAgICAgICAgICAgICAgICAgICBjb21wb25lbnQuaWQgPSB1bmlxdWVJZChsYXlvdXQuaWQgKyAnXycgKyBjb21wb25lbnQudHlwZSArICdfJyk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgY29tcG9uZW50LmtleSA9IGtleUNvdW50ZXIrKztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBmdW5jdGlvbiByZW5kZXJDb21wb25lbnQoY29tcG9uZW50LCBpbmRleCkge1xuICAgICAgICBpZiAoVXRpbHMuaXNOdWxsKGNvbXBvbmVudC5pZCkpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc3dpdGNoIChjb21wb25lbnQudHlwZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ2xheW91dCc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiA8TGF5b3V0IGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9IGNvbmZpZz17Y29tcG9uZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJsZVJvdz17cHJvcHMudGFibGVSb3d9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17aW5kZXh9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdJZD17cHJvcHMudmlld0lkfS8+O1xuICAgICAgICAgICAgICAgIGNhc2UgJ3Rvb2xiYXInOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gPFRvb2xiYXIgY29uZmlnPXtjb21wb25lbnR9IGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJsZVJvdz17cHJvcHMudGFibGVSb3d9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2luZGV4fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9Lz47XG4gICAgICAgICAgICAgICAgY2FzZSAndGFiJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxUYWJQYW5lbCBjb25maWc9e2NvbXBvbmVudH0gaGFuZGxlPXtjcmVhdGVDb21wb25lbnRIYW5kbGUoY29tcG9uZW50KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJsZVJvdz17cHJvcHMudGFibGVSb3d9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtpbmRleH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3SWQ9e3Byb3BzLnZpZXdJZH0vPjtcbiAgICAgICAgICAgICAgICBjYXNlICdkYXRhR3JpZCc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiA8RGF0YUdyaWQgY29uZmlnPXtjb21wb25lbnR9IGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtpbmRleH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3SWQ9e3Byb3BzLnZpZXdJZH0vPjtcbiAgICAgICAgICAgICAgICBjYXNlICdmb3JtJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxGb3JtIGNvbmZpZz17Y29tcG9uZW50fSBoYW5kbGU9e2NyZWF0ZUNvbXBvbmVudEhhbmRsZShjb21wb25lbnQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtpbmRleH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdJZD17cHJvcHMudmlld0lkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtVdGlscy5nZXRDb21wb25lbnRBdHRyaWJ1dGUoY29tcG9uZW50LCAnY2xhc3NOYW1lJywnZGVmYXVsdEZvcm0nKX0vPjtcbiAgICAgICAgICAgICAgICBjYXNlICdodG1sUGFuZWwnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gPEh0bWxQYW5lbCBjb25maWc9e2NvbXBvbmVudH0gaGFuZGxlPXtjcmVhdGVDb21wb25lbnRIYW5kbGUoY29tcG9uZW50KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17aW5kZXh9Lz47XG4gICAgICAgICAgICAgICAgY2FzZSAndHVybnN0aWxlJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxUdXJuc3RpbGUgY29uZmlnPXtjb21wb25lbnR9IGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdJZD17cHJvcHMudmlld0lkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2luZGV4fS8+O1xuICAgICAgICAgICAgICAgIGNhc2UgJ3BvcnRsZXQnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gPFBvcnRsZXQgY29uZmlnPXtjb21wb25lbnR9IGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3SWQ9e3Byb3BzLnZpZXdJZH0vPjtcbiAgICAgICAgICAgICAgICBjYXNlICd0cmVlJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxUcmVlIGNvbmZpZz17Y29tcG9uZW50fSBoYW5kbGU9e2NyZWF0ZUNvbXBvbmVudEhhbmRsZShjb21wb25lbnQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtpbmRleH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdJZD17cHJvcHMudmlld0lkfS8+O1xuICAgICAgICAgICAgICAgIGNhc2UgJ3RpdGxlQmFyJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxUaXRsZUJhciBjb25maWc9e2NvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGU9e2NyZWF0ZUNvbXBvbmVudEhhbmRsZShjb21wb25lbnQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17aW5kZXh9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9Lz47XG4gICAgICAgICAgICAgICAgY2FzZSAnc3RlcHBlclRpdGxlQmFyJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxTdGVwcGVyVGl0bGVCYXIgY29uZmlnPXtjb21wb25lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17aW5kZXh9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdJZD17cHJvcHMudmlld0lkfS8+O1xuICAgICAgICAgICAgICAgIGNhc2UgJ2FsZXJ0QmFyJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxBbGVydEJhciBjb25maWc9e2NvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGU9e2NyZWF0ZUNvbXBvbmVudEhhbmRsZShjb21wb25lbnQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17aW5kZXh9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9Lz47XG4gICAgICAgICAgICAgICAgY2FzZSAnc2lnbmF0dXJlVGVtcGxhdGVEZXNpZ25lcic6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiA8U2lnbmF0dXJlVGVtcGxhdGVEZXNpZ25lciBjb25maWc9e2NvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2luZGV4fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9XG4gICAgICAgICAgICAgICAgICAgIC8+O1xuICAgICAgICAgICAgICAgIGNhc2UgJ2RvY3VtZW50Vmlld2VyJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxEb2N1bWVudFZpZXdlciBjb25maWc9e2NvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGU9e2NyZWF0ZUNvbXBvbmVudEhhbmRsZShjb21wb25lbnQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17aW5kZXh9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9XG4gICAgICAgICAgICAgICAgICAgIC8+O1xuICAgICAgICAgICAgICAgIGNhc2UgJ3ZjUm9vbSc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiA8VkNSb29tIGNvbmZpZz17Y29tcG9uZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGU9e2NyZWF0ZUNvbXBvbmVudEhhbmRsZShjb21wb25lbnQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2luZGV4fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3SWQ9e3Byb3BzLnZpZXdJZH1cbiAgICAgICAgICAgICAgICAgICAgLz47XG4gICAgICAgICAgICAgICAgY2FzZSAnY2hhdCc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiA8Q2hhdCBjb25maWc9e2NvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2luZGV4fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9XG4gICAgICAgICAgICAgICAgICAgIC8+O1xuICAgICAgICAgICAgICAgIGNhc2UgJ3VzZXJWaWRlbyc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiA8VmlkZW8gY29uZmlnPXtjb21wb25lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlPXtjcmVhdGVDb21wb25lbnRIYW5kbGUoY29tcG9uZW50KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2luZGV4fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdJZD17cHJvcHMudmlld0lkfVxuICAgICAgICAgICAgICAgICAgICAvPjtcbiAgICAgICAgICAgICAgICBjYXNlICd2Y1NldHRpbmdzJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxWQ1NldHRpbmdzIGNvbmZpZz17Y29tcG9uZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlPXtjcmVhdGVDb21wb25lbnRIYW5kbGUoY29tcG9uZW50KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17aW5kZXh9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3SWQ9e3Byb3BzLnZpZXdJZH1cbiAgICAgICAgICAgICAgICAgICAgLz47XG4gICAgICAgICAgICAgICAgY2FzZSAndmlkZW9QbGF5ZXInOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gPFZpZGVvUGxheWVyIGNvbmZpZz17Y29tcG9uZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtpbmRleH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3SWQ9e3Byb3BzLnZpZXdJZH1cbiAgICAgICAgICAgICAgICAgICAgLz47XG4gICAgICAgICAgICAgICAgY2FzZSAnc2lnbmF0dXJlUGFuZWwnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gPFNpZ25hdHVyZVBhbmVsIGNvbmZpZz17Y29tcG9uZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtpbmRleH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3SWQ9e3Byb3BzLnZpZXdJZH1cbiAgICAgICAgICAgICAgICAgICAgLz47XG4gICAgICAgICAgICAgICAgY2FzZSAnZGlhbG9nJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxEaWFsb2cgY29uZmlnPXtjb21wb25lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17aW5kZXh9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdJZD17cHJvcHMudmlld0lkfVxuICAgICAgICAgICAgICAgICAgICAvPjtcbiAgICAgICAgICAgICAgICBjYXNlICdjYWxlbmRhcic6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiA8Q2FsZW5kYXIgY29uZmlnPXtjb21wb25lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlPXtjcmVhdGVDb21wb25lbnRIYW5kbGUoY29tcG9uZW50KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2luZGV4fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdJZD17cHJvcHMudmlld0lkfVxuICAgICAgICAgICAgICAgICAgICAvPjtcbiAgICAgICAgICAgICAgICBjYXNlICd0ZW1wbGF0ZURlc2lnbmVyJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxUZW1wbGF0ZURlc2lnbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25maWc9e2NvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2luZGV4fVxuICAgICAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9XG4gICAgICAgICAgICAgICAgICAgIC8+O1xuICAgICAgICAgICAgICAgIGNhc2UgJ2RvY3VtZW50VGVtcGxhdGVEZXNpZ25lcic6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiA8RG9jdW1lbnRUZW1wbGF0ZURlc2lnbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25maWc9e2NvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2luZGV4fVxuICAgICAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9XG4gICAgICAgICAgICAgICAgICAgIC8+O1xuICAgICAgICAgICAgICAgIGNhc2UgJ2NoYXRSb29tJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxDaGF0Um9vbVdyYXBwZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZz17Y29tcG9uZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlPXtjcmVhdGVDb21wb25lbnRIYW5kbGUoY29tcG9uZW50KX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGtleT17aW5kZXh9XG4gICAgICAgICAgICAgICAgICAgICAgICB2aWV3SWQ9e3Byb3BzLnZpZXdJZH1cbiAgICAgICAgICAgICAgICAgICAgLz47XG4gICAgICAgICAgICAgICAgY2FzZSAncHJvZ3Jlc3NUcmFja2VyJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxQcm9ncmVzc1RyYWNrZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZz17Y29tcG9uZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlPXtjcmVhdGVDb21wb25lbnRIYW5kbGUoY29tcG9uZW50KX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGtleT17aW5kZXh9XG4gICAgICAgICAgICAgICAgICAgICAgICB2aWV3SWQ9e3Byb3BzLnZpZXdJZH1cbiAgICAgICAgICAgICAgICAgICAgLz47XG4gICAgICAgICAgICAgICAgY2FzZSAnZmFjaWFsUmVnaXN0cmF0aW9uJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxGYWNpYWxSZWdpc3RyYXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZz17Y29tcG9uZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlPXtjcmVhdGVDb21wb25lbnRIYW5kbGUoY29tcG9uZW50KX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGtleT17aW5kZXh9XG4gICAgICAgICAgICAgICAgICAgICAgICB2aWV3SWQ9e3Byb3BzLnZpZXdJZH1cbiAgICAgICAgICAgICAgICAgICAgLz47XG4gICAgICAgICAgICAgICAgY2FzZSAnZmFjaWFsVmVyaWZpY2F0aW9uJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxGYWNpYWxWZXJpZmljYXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZz17Y29tcG9uZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlPXtjcmVhdGVDb21wb25lbnRIYW5kbGUoY29tcG9uZW50KX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGtleT17aW5kZXh9XG4gICAgICAgICAgICAgICAgICAgICAgICB2aWV3SWQ9e3Byb3BzLnZpZXdJZH1cbiAgICAgICAgICAgICAgICAgICAgLz47XG4gICAgICAgICAgICAgICAgY2FzZSAnY2hhcnQnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gPENoYXJ0XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25maWc9e2NvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2luZGV4fVxuICAgICAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9XG4gICAgICAgICAgICAgICAgICAgIC8+O1xuICAgICAgICAgICAgICAgIGNhc2UgJ3NwaW5uZXInOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gPFNwaW5uZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZz17Y29tcG9uZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlPXtjcmVhdGVDb21wb25lbnRIYW5kbGUoY29tcG9uZW50KX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGtleT17aW5kZXh9XG4gICAgICAgICAgICAgICAgICAgICAgICB2aWV3SWQ9e3Byb3BzLnZpZXdJZH1cbiAgICAgICAgICAgICAgICAgICAgLz47XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxkaXYga2V5PXtpbmRleH0+eydVbnN1cHBvcnRlZCBjb21wb25lbnQgdHlwZSAnICsgY29tcG9uZW50LnR5cGV9PC9kaXY+O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0Q2hpbGRyZW4oKSB7XG4gICAgICAgIGxldCBjaGlsZHJlbiA9IFtdO1xuICAgICAgICBsZXQgcHJvcGVydGllcyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGNvbXBvbmVudEhhbmRsZXMpO1xuICAgICAgICBmb3IgKGNvbnN0IHByb3BlcnR5IG9mIHByb3BlcnRpZXMpIHtcbiAgICAgICAgICAgIGxldCBjb21wb25lbnRIYW5kbGUgPSBjb21wb25lbnRIYW5kbGVzW3Byb3BlcnR5XTtcbiAgICAgICAgICAgIGNoaWxkcmVuLnB1c2goY29tcG9uZW50SGFuZGxlKTtcbiAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKGNvbXBvbmVudEhhbmRsZS5hcGkpICYmICFVdGlscy5pc051bGwoY29tcG9uZW50SGFuZGxlLmFwaS5nZXRDaGlsZHJlbikpIHtcbiAgICAgICAgICAgICAgICBsZXQgbW9yZUNoaWxkcmVuID0gY29tcG9uZW50SGFuZGxlLmFwaS5nZXRDaGlsZHJlbigpO1xuICAgICAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKG1vcmVDaGlsZHJlbikpIHtcbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBjaGlsZCBvZiBtb3JlQ2hpbGRyZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuLnB1c2goY2hpbGQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNoaWxkcmVuO1xuICAgIH1cblxuICAgIGNvbnN0IGFwaSA9ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGdldCBpZCgpIHtcbiAgICAgICAgICAgICAgICAvLyBMYXlvdXRcbiAgICAgICAgICAgICAgICByZXR1cm4gcHJvcHMuY29uZmlnLmlkO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNldCB2aXNpYmxlKHZhbCkge1xuICAgICAgICAgICAgICAgIHNldFZpc2libGUodmFsKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBnZXRDaGlsZHJlbjogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBnZXRDaGlsZHJlbigpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlZnJlc2goKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwocHJvcHMuY29uZmlnLnZpc2libGUpKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBwYXJzZWRDb25maWcgPSBVdGlscy5wYXJzZUNvbmZpZyhwcm9wcy5jb25maWcsIHByb3BzLnZpZXdJZCk7XG4gICAgICAgICAgICAgICAgICAgIHNldFZpc2libGUoVXRpbHMuZXZhbHVhdGVCb29sZWFuRXhwcmVzc2lvbihwYXJzZWRDb25maWcudmlzaWJsZSwgcHJvcHMuY29uZmlnLmlkKSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBjaGlsZCBvZiBnZXRDaGlsZHJlbigpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmKGNoaWxkLmFwaSAmJiBjaGlsZC5hcGkucmVmcmVzaCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGQuYXBpLnJlZnJlc2goKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9O1xuXG4gICAgZnVuY3Rpb24gZ2V0RGVmYXVsdENvbXBvbmVudENvbnRhaW5lclN0eWxlKGNvbXBvbmVudCkge1xuICAgICAgICByZXR1cm4gVXRpbHMubWVyZ2VTdHlsZXMoe1xuICAgICAgICAgICAgd2lkdGg6ICdhdXRvJyxcbiAgICAgICAgICAgIGhlaWdodDogJ2F1dG8nLFxuICAgICAgICAgICAgbWFyZ2luOiAwLFxuICAgICAgICAgICAgbWluSGVpZ2h0OiAwXG4gICAgICAgIH0sIGNvbXBvbmVudCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0TGF5b3V0U3R5bGUoY29tcG9uZW50LCBiYWNrZ3JvdW5kQ29sb3IpIHtcbiAgICAgICAgbGV0IHN0eWxlID0gVXRpbHMubWVyZ2VTdHlsZXMoe1xuICAgICAgICAgICAgb3ZlcmZsb3c6ICdhdXRvJyxcbiAgICAgICAgICAgIGJvcmRlcjogJ25vbmUnLFxuICAgICAgICAgICAgbWluV2lkdGg6ICcxMjhweCcsXG4gICAgICAgICAgICB3aWR0aDogJ2F1dG8nLFxuICAgICAgICAgICAgaGVpZ2h0OiBVdGlscy5nZXRDb21wb25lbnRBdHRyaWJ1dGUoY29tcG9uZW50LCAnY2xhc3NOYW1lJywgJycpID09PSAnc2Nyb2xsaW5nLWJvZHknID8gbnVsbCA6ICcxMDAlJyxcbiAgICAgICAgICAgIG1hcmdpbjogMCxcbiAgICAgICAgICAgIHBhZGRpbmc6IDBcbiAgICAgICAgfSwgY29tcG9uZW50KTtcblxuICAgICAgICBpZiAoIXZpc2libGUpIHtcbiAgICAgICAgICAgIHN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbChiYWNrZ3JvdW5kQ29sb3IpKSB7XG4gICAgICAgICAgICBzdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSBiYWNrZ3JvdW5kQ29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gc3R5bGU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVuZGVyIGNoaWxkcmVuIHdyYXBwZWQgaW4gYSA8UGFuZWxHcm91cD4gd2l0aCA8UGFuZWxSZXNpemVIYW5kbGU+c1xuICAgICAqIGJldHdlZW4gY29uc2VjdXRpdmUgY2hpbGRyZW4uIEFjdGl2YXRlZCB3aGVuIGxheW91dC5zcGxpdHRlciA9PT0gdHJ1ZS5cbiAgICAgKiBQZXItY29tcG9uZW50IHNpemluZyBmbG93cyB0aHJvdWdoIHRoZXNlIG9wdGlvbmFsIGZpZWxkczpcbiAgICAgKiAgIHNwbGl0dGVyRGVmYXVsdFNpemUgIOKAlCBpbml0aWFsIHNpemUgYXMgYSBwZXJjZW50YWdlICgwLTEwMClcbiAgICAgKiAgIHNwbGl0dGVyTWluU2l6ZSAgICAgIOKAlCBtaW5pbXVtIHNpemUgYXMgYSBwZXJjZW50YWdlXG4gICAgICogICBzcGxpdHRlck1heFNpemUgICAgICDigJQgbWF4aW11bSBzaXplIGFzIGEgcGVyY2VudGFnZVxuICAgICAqICAgc3BsaXR0ZXJDb2xsYXBzaWJsZSAg4oCUIHdoZXRoZXIgdGhlIHBhbmVsIGNhbiBiZSBkcmFnZ2VkIHRvIGNvbGxhcHNlXG4gICAgICovXG4gICAgZnVuY3Rpb24gcmVuZGVyV2l0aFNwbGl0dGVycyhsYXlvdXQpIHtcbiAgICAgICAgY29uc3QgZGlyZWN0aW9uID0gbGF5b3V0Lm9yaWVudGF0aW9uID09PSAnVkVSVElDQUwnID8gJ3ZlcnRpY2FsJyA6ICdob3Jpem9udGFsJztcbiAgICAgICAgY29uc3QgaGFuZGxlQ2xhc3MgPSBkaXJlY3Rpb24gPT09ICdob3Jpem9udGFsJ1xuICAgICAgICAgICAgPyAnb3VpLXNwbGl0dGVyIG91aS1zcGxpdHRlci1oJ1xuICAgICAgICAgICAgOiAnb3VpLXNwbGl0dGVyIG91aS1zcGxpdHRlci12JztcblxuICAgICAgICBjb25zdCBjaGlsZHJlbiA9IFtdO1xuICAgICAgICBsYXlvdXQuY29tcG9uZW50cy5mb3JFYWNoKChjb21wb25lbnQsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBpZiAoaW5kZXggPiAwKSB7XG4gICAgICAgICAgICAgICAgY2hpbGRyZW4ucHVzaChcbiAgICAgICAgICAgICAgICAgICAgPFBhbmVsUmVzaXplSGFuZGxlIGtleT17YGhhbmRsZS0ke2NvbXBvbmVudC5pZH1gfSBjbGFzc05hbWU9e2hhbmRsZUNsYXNzfS8+XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNoaWxkcmVuLnB1c2goXG4gICAgICAgICAgICAgICAgPFBhbmVsXG4gICAgICAgICAgICAgICAgICAgIGtleT17YHBhbmVsLSR7Y29tcG9uZW50LmlkfWB9XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHRTaXplPXtjb21wb25lbnQuc3BsaXR0ZXJEZWZhdWx0U2l6ZX1cbiAgICAgICAgICAgICAgICAgICAgbWluU2l6ZT17Y29tcG9uZW50LnNwbGl0dGVyTWluU2l6ZX1cbiAgICAgICAgICAgICAgICAgICAgbWF4U2l6ZT17Y29tcG9uZW50LnNwbGl0dGVyTWF4U2l6ZX1cbiAgICAgICAgICAgICAgICAgICAgY29sbGFwc2libGU9e2NvbXBvbmVudC5zcGxpdHRlckNvbGxhcHNpYmxlfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3JlbmRlckNvbXBvbmVudChjb21wb25lbnQsIG51bGwpfVxuICAgICAgICAgICAgICAgIDwvUGFuZWw+XG4gICAgICAgICAgICApO1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPFBhbmVsR3JvdXAgb3JpZW50YXRpb249e2RpcmVjdGlvbn0+XG4gICAgICAgICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICAgICAgPC9QYW5lbEdyb3VwPlxuICAgICAgICApO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHJlbmRlcihsYXlvdXQpIHtcbiAgICAgICAgc2V0TWlzc2luZ0NvbXBvbmVudElkcygpO1xuXG4gICAgICAgIGlmIChVdGlscy5pc051bGwobGF5b3V0LmNvbXBvbmVudHMpIHx8IGxheW91dC5jb21wb25lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIDxkaXY+SSBhbSBhIGR1bSBlbXB0eSBMYXlvdXQ8L2Rpdj47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobGF5b3V0LnNwbGl0dGVyID09PSB0cnVlKSB7XG4gICAgICAgICAgICByZXR1cm4gcmVuZGVyV2l0aFNwbGl0dGVycyhsYXlvdXQpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIGxheW91dC5vcmllbnRhdGlvbiA9PT0gJ1ZFUlRJQ0FMJyA/XG4gICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF5b3V0LmNvbXBvbmVudHMubWFwKChjb21wb25lbnQsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxGcmFnbWVudCBrZXk9e2luZGV4fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVuZGVyQ29tcG9uZW50KGNvbXBvbmVudCwgbnVsbClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvRnJhZ21lbnQ+O1xuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICAgIDpcbiAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXlvdXQuY29tcG9uZW50cy5tYXAoKGNvbXBvbmVudCwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgY2xhc3NOYW1lID0gVXRpbHMuZ2V0Q29tcG9uZW50QXR0cmlidXRlKGNvbXBvbmVudCwgJ2NsYXNzTmFtZScsICcnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY29tcG9uZW50LnR5cGUgPT09ICdsYXlvdXQnID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEZyYWdtZW50IGtleT17aW5kZXh9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbmRlckNvbXBvbmVudChjb21wb25lbnQsIGluZGV4KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0ZyYWdtZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxGcmFnbWVudCBrZXk9e2luZGV4fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW5kZXJDb21wb25lbnQoY29tcG9uZW50LCBudWxsKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0ZyYWdtZW50PjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gPGRpdiBpZD17cHJvcHMuY29uZmlnLmlkfSBzdHlsZT17Z2V0TGF5b3V0U3R5bGUocHJvcHMuY29uZmlnLCBudWxsKX1cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2Ake1V0aWxzLmdldENvbXBvbmVudEF0dHJpYnV0ZShwcm9wcy5jb25maWcsICdjbGFzc05hbWUnLCAnZGVmYXVsdC1vdWktbGF5b3V0JylcbiAgICAgICAgICAgICAgICArIChwcm9wcy5jb25maWcub3JpZW50YXRpb24gPT09ICdIT1JJWk9OVEFMJyA/ICcgcm93JyA6ICcnKX1gfSBrZXk9e3Byb3BzLmNvbmZpZy5pZH0+XG4gICAgICAgIHtcbiAgICAgICAgICAgIHJlbmRlcihwcm9wcy5jb25maWcpXG4gICAgICAgIH1cbiAgICA8L2Rpdj5cbn07XG5cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUMsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFB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QUFBLENBQUFzQyxPQUFBLENBQUFnRSxhQUFBLENBQUN0RyxNQUFBLENBQUF1SixRQUFRO1FBQUN2RCxHQUFHLEVBQUVLO01BQU0sR0FFcEJELGVBQWUsQ0FBQ2pCLFNBQVMsRUFBRSxJQUFJLENBRTdCLENBQUM7SUFDZixDQUFDLENBRVAsQ0FBQyxnQkFFSG5GLE1BQUEsQ0FBQXNDLE9BQUEsQ0FBQWdFLGFBQUEsQ0FBQXRHLE1BQUEsQ0FBQXNDLE9BQUEsQ0FBQWlILFFBQUEsUUFFUXhELE1BQU0sQ0FBQ0UsVUFBVSxDQUFDdUQsR0FBRyxDQUFDLENBQUNyRSxTQUFTLEVBQUVrQixLQUFLLEtBQUs7TUFDeEMsSUFBSUcsU0FBUyxHQUFHL0IsY0FBSyxDQUFDZ0MscUJBQXFCLENBQUN0QixTQUFTLEVBQUUsV0FBVyxFQUFFLEVBQUUsQ0FBQztNQUN2RSxPQUFPQSxTQUFTLENBQUNnQixJQUFJLEtBQUssUUFBUSxnQkFDOUJuRyxNQUFBLENBQUFzQyxPQUFBLENBQUFnRSxhQUFBLENBQUN0RyxNQUFBLENBQUF1SixRQUFRO1FBQUN2RCxHQUFHLEVBQUVLO01BQU0sR0FFYkQsZUFBZSxDQUFDakIsU0FBUyxFQUFFa0IsS0FBSyxDQUU5QixDQUFDLGdCQUVYckcsTUFBQSxDQUFBc0MsT0FBQSxDQUFBZ0UsYUFBQSxDQUFDdEcsTUFBQSxDQUFBdUosUUFBUTtRQUFDdkQsR0FBRyxFQUFFSztNQUFNLEdBRWJELGVBQWUsQ0FBQ2pCLFNBQVMsRUFBRSxJQUFJLENBRTdCLENBQUM7SUFDbkIsQ0FBQyxDQUVQLENBQUM7RUFFZjtFQUVBLG9CQUFPbkYsTUFBQSxDQUFBc0MsT0FBQSxDQUFBZ0UsYUFBQTtJQUFLaEMsRUFBRSxFQUFFZCxLQUFLLENBQUNhLE1BQU0sQ0FBQ0MsRUFBRztJQUFDd0QsS0FBSyxFQUFFRixjQUFjLENBQUNwRSxLQUFLLENBQUNhLE1BQU0sRUFBRSxJQUFJLENBQUU7SUFDL0RtQyxTQUFTLEtBQUFrQyxNQUFBLENBQUtqRSxjQUFLLENBQUNnQyxxQkFBcUIsQ0FBQ2pELEtBQUssQ0FBQ2EsTUFBTSxFQUFFLFdBQVcsRUFBRSxvQkFBb0IsQ0FBQyxJQUN2RmIsS0FBSyxDQUFDYSxNQUFNLENBQUNpRSxXQUFXLEtBQUssWUFBWSxHQUFHLE1BQU0sR0FBRyxFQUFFLENBQUMsQ0FBRztJQUFDdEMsR0FBRyxFQUFFeEMsS0FBSyxDQUFDYSxNQUFNLENBQUNDO0VBQUcsR0FFeEYrRSxNQUFNLENBQUM3RixLQUFLLENBQUNhLE1BQU0sQ0FFdEIsQ0FBQztBQUNWLENBQUM7QUFBQ29GLE9BQUEsQ0FBQWxHLE1BQUEsR0FBQUEsTUFBQSIsImlnbm9yZUxpc3QiOltdfQ==
|
|
461
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfVXRpbHMiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX09ic2VydmFibGUiLCJfVG9vbGJhciIsIl9EYXRhR3JpZCIsIl9IdG1sUGFuZWwiLCJfVHVybnN0aWxlIiwiX1NpZ25hdHVyZVRlbXBsYXRlRGVzaWduZXIiLCJfVGVtcGxhdGVEZXNpZ25lciIsIl9BbGVydEJhciIsIl9UaXRsZUJhciIsIl9TdGVwcGVyVGl0bGVCYXIiLCJfVHJlZSIsIl9Gb3JtIiwiX0RvY3VtZW50Vmlld2VyIiwiX1NpZ25hdHVyZVBhbmVsIiwiX0RpYWxvZyIsIl9DYWxlbmRhciIsIl9WaWRlbyIsIl9WQ1NldHRpbmdzIiwiX1ZDUm9vbSIsIl9WaWRlb1BsYXllciIsIl9Qb3J0bGV0IiwiX1RhYlBhbmVsIiwiX0RvY3VtZW50VGVtcGxhdGVEZXNpZ25lciIsIl9DaGF0Um9vbVdyYXBwZXIiLCJfQ2hhdFZpZXdlciIsIl9Qcm9ncmVzc1RyYWNrZXIiLCJfQ2hhcnQiLCJfRmFjaWFsUmVnaXN0cmF0aW9uIiwiX0ZhY2lhbFZlcmlmaWNhdGlvbiIsIl9TcGlubmVyIiwiX3JlYWN0UmVzaXphYmxlUGFuZWxzIiwiX0NoYXQiLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwibyIsImkiLCJmIiwiX19wcm90b19fIiwiaGFzIiwiZ2V0Iiwic2V0IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJMYXlvdXQiLCJwcm9wcyIsImNvbXBvbmVudEhhbmRsZXMiLCJSZWFjdCIsInVzZVN0YXRlIiwibG9hZGVkQ29tcG9uZW50cyIsInZpc2libGUiLCJzZXRWaXNpYmxlIiwia2V5Q291bnRlciIsInVzZUVmZmVjdCIsImhhbmRsZSIsImFwaSIsInRhYmxlUm93IiwiX3Byb3BzJHRhYmxlUm93JGlkIiwiY29uZmlnIiwiaWQiLCJyZXBsYWNlQWxsIiwicGFyc2VkQ29uZmlnIiwiVXRpbHMiLCJwYXJzZUNvbmZpZyIsInZpZXdJZCIsImV2ZW50TWFuYWdlciIsImFkZFN1YnNjcmlwdGlvbnMiLCJldmVudEhhbmRsaW5nQ29uZmlnIiwiYWRkU3lzdGVtU3Vic2NyaXB0aW9ucyIsImlzTnVsbCIsImV2YWx1YXRlQm9vbGVhbkV4cHJlc3Npb24iLCJjcmVhdGVDb21wb25lbnRIYW5kbGUiLCJjb21wb25lbnQiLCJ1c2VMYXlvdXRFZmZlY3QiLCJ1bmlxdWVJZCIsInByZWZpeCIsIl9jIiwiRGF0ZSIsIm5vdyIsInRvU3RyaW5nIiwiTWF0aCIsInJhbmRvbSIsInNsaWNlIiwic2V0TWlzc2luZ0NvbXBvbmVudElkcyIsImxheW91dCIsImtleSIsImNvbXBvbmVudHMiLCJsZW5ndGgiLCJ0eXBlIiwicmVuZGVyQ29tcG9uZW50IiwiaW5kZXgiLCJjcmVhdGVFbGVtZW50IiwiRGF0YUdyaWQiLCJjbGFzc05hbWUiLCJnZXRDb21wb25lbnRBdHRyaWJ1dGUiLCJUcmVlIiwiZ2V0Q2hpbGRyZW4iLCJjaGlsZHJlbiIsInByb3BlcnRpZXMiLCJnZXRPd25Qcm9wZXJ0eU5hbWVzIiwicHJvcGVydHkiLCJjb21wb25lbnRIYW5kbGUiLCJwdXNoIiwibW9yZUNoaWxkcmVuIiwiY2hpbGQiLCJ2YWwiLCJyZWZyZXNoIiwiZ2V0RGVmYXVsdENvbXBvbmVudENvbnRhaW5lclN0eWxlIiwibWVyZ2VTdHlsZXMiLCJ3aWR0aCIsImhlaWdodCIsIm1hcmdpbiIsIm1pbkhlaWdodCIsImdldExheW91dFN0eWxlIiwiYmFja2dyb3VuZENvbG9yIiwic3R5bGUiLCJvdmVyZmxvdyIsImJvcmRlciIsIm1pbldpZHRoIiwicGFkZGluZyIsImRpc3BsYXkiLCJyZW5kZXJXaXRoU3BsaXR0ZXJzIiwiZGlyZWN0aW9uIiwib3JpZW50YXRpb24iLCJoYW5kbGVDbGFzcyIsImZvckVhY2giLCJTZXBhcmF0b3IiLCJjb25jYXQiLCJQYW5lbCIsImRlZmF1bHRTaXplIiwic3BsaXR0ZXJEZWZhdWx0U2l6ZSIsIm1pblNpemUiLCJzcGxpdHRlck1pblNpemUiLCJtYXhTaXplIiwic3BsaXR0ZXJNYXhTaXplIiwiY29sbGFwc2libGUiLCJzcGxpdHRlckNvbGxhcHNpYmxlIiwiR3JvdXAiLCJyZW5kZXIiLCJzcGxpdHRlciIsIkZyYWdtZW50IiwibWFwIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9sYXlvdXQvTGF5b3V0LmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyLvu79pbXBvcnQgUmVhY3QsIHtGcmFnbWVudH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFV0aWxzIGZyb20gJy4uLy4uL1V0aWxzJztcbmltcG9ydCBldmVudE1hbmFnZXIgZnJvbSAnLi4vLi4vZXZlbnQvT2JzZXJ2YWJsZSc7XG5pbXBvcnQgVG9vbGJhciBmcm9tICcuLi9Ub29sYmFyJztcbmltcG9ydCB7RGF0YUdyaWR9IGZyb20gJy4uL0RhdGFHcmlkJztcbmltcG9ydCBIdG1sUGFuZWwgZnJvbSAnLi4vSHRtbFBhbmVsJztcbmltcG9ydCBUdXJuc3RpbGUgZnJvbSAnLi4vVHVybnN0aWxlJztcbmltcG9ydCBTaWduYXR1cmVUZW1wbGF0ZURlc2lnbmVyIGZyb20gJy4uL3NpZ25hdHVyZXMvU2lnbmF0dXJlVGVtcGxhdGVEZXNpZ25lcic7XG5pbXBvcnQgVGVtcGxhdGVEZXNpZ25lciBmcm9tICcuLi9UZW1wbGF0ZURlc2lnbmVyJztcbmltcG9ydCBBbGVydEJhciBmcm9tICcuLi9BbGVydEJhcic7XG5pbXBvcnQgVGl0bGVCYXIgZnJvbSAnLi4vVGl0bGVCYXInO1xuaW1wb3J0IFN0ZXBwZXJUaXRsZUJhciBmcm9tICcuLi9TdGVwcGVyVGl0bGVCYXInO1xuaW1wb3J0IHtUcmVlfSBmcm9tICcuLi9UcmVlJztcbmltcG9ydCBGb3JtIGZyb20gJy4uL2Zvcm0vRm9ybSc7XG5pbXBvcnQgRG9jdW1lbnRWaWV3ZXIgZnJvbSAnLi4vRG9jdW1lbnRWaWV3ZXInO1xuaW1wb3J0IFNpZ25hdHVyZVBhbmVsIGZyb20gJy4uL1NpZ25hdHVyZVBhbmVsJztcbmltcG9ydCBEaWFsb2cgZnJvbSAnLi4vRGlhbG9nJztcbmltcG9ydCBDYWxlbmRhciBmcm9tICcuLi9DYWxlbmRhcic7XG5pbXBvcnQgVmlkZW8gZnJvbSAnLi4vbWVkaWEvVmlkZW8nO1xuaW1wb3J0IFZDU2V0dGluZ3MgZnJvbSAnLi4vbWVkaWEvVkNTZXR0aW5ncyc7XG5pbXBvcnQgVkNSb29tIGZyb20gJy4uL21lZGlhL1ZDUm9vbSc7XG5pbXBvcnQgVmlkZW9QbGF5ZXIgZnJvbSAnLi4vbWVkaWEvVmlkZW9QbGF5ZXInO1xuaW1wb3J0IFBvcnRsZXQgZnJvbSAnLi4vUG9ydGxldCc7XG5pbXBvcnQgVGFiUGFuZWwgZnJvbSAnLi4vVGFiUGFuZWwnO1xuaW1wb3J0IERvY3VtZW50VGVtcGxhdGVEZXNpZ25lciBmcm9tIFwiLi4vRG9jdW1lbnRUZW1wbGF0ZURlc2lnbmVyXCI7XG5pbXBvcnQgQ2hhdFJvb21XcmFwcGVyIGZyb20gXCIuLi9tZWRpYS9jaGF0L0NoYXRSb29tV3JhcHBlclwiO1xuaW1wb3J0IENoYXRWaWV3ZXIgZnJvbSBcIi4uL21lZGlhL0NoYXRWaWV3ZXJcIjtcbmltcG9ydCBQcm9ncmVzc1RyYWNrZXIgZnJvbSBcIi4uL1Byb2dyZXNzVHJhY2tlclwiO1xuaW1wb3J0IENoYXJ0IGZyb20gXCIuLi9DaGFydFwiO1xuaW1wb3J0IEZhY2lhbFJlZ2lzdHJhdGlvbiBmcm9tIFwiLi4vZmFjaWFsUmVjb2duaXRpb24vRmFjaWFsUmVnaXN0cmF0aW9uXCI7XG5pbXBvcnQgRmFjaWFsVmVyaWZpY2F0aW9uIGZyb20gXCIuLi9mYWNpYWxSZWNvZ25pdGlvbi9GYWNpYWxWZXJpZmljYXRpb25cIjtcbmltcG9ydCBTcGlubmVyIGZyb20gXCIuLi9TcGlubmVyXCI7XG5pbXBvcnQge0dyb3VwIGFzIFBhbmVsR3JvdXAsIFBhbmVsLCBTZXBhcmF0b3IgYXMgUGFuZWxSZXNpemVIYW5kbGV9IGZyb20gXCJyZWFjdC1yZXNpemFibGUtcGFuZWxzXCI7XG5pbXBvcnQgXCIuL0xheW91dC5jc3NcIlxuaW1wb3J0IENoYXQgZnJvbSBcIi4uL21lZGlhL0NoYXRcIjtcblxuZXhwb3J0IGNvbnN0IExheW91dCA9IChwcm9wcykgPT4ge1xuICAgIGNvbnN0IFtjb21wb25lbnRIYW5kbGVzXSA9IFJlYWN0LnVzZVN0YXRlKHt9KTtcbiAgICBjb25zdCBbbG9hZGVkQ29tcG9uZW50c10gPSBSZWFjdC51c2VTdGF0ZShbXSk7XG4gICAgY29uc3QgW3Zpc2libGUsIHNldFZpc2libGVdID0gUmVhY3QudXNlU3RhdGUodHJ1ZSk7XG4gICAgbGV0IGtleUNvdW50ZXIgPSAwO1xuXG4gICAgUmVhY3QudXNlRWZmZWN0KFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICBwcm9wcy5oYW5kbGUuYXBpID0gYXBpKCk7XG4gICAgICAgIH0pO1xuXG4gICAgUmVhY3QudXNlRWZmZWN0KFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICBpZiAocHJvcHMudGFibGVSb3cpIHtcbiAgICAgICAgICAgICAgICBwcm9wcy5jb25maWcuaWQgPSBwcm9wcy5jb25maWcuaWQgKyAnXycgKyBwcm9wcy50YWJsZVJvdy5pZD8ucmVwbGFjZUFsbCgnLScsICcnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcHJvcHMuaGFuZGxlLmFwaSA9IGFwaSgpO1xuICAgICAgICAgICAgbGV0IHBhcnNlZENvbmZpZyA9IFV0aWxzLnBhcnNlQ29uZmlnKHByb3BzLmNvbmZpZywgcHJvcHMudmlld0lkKTtcbiAgICAgICAgICAgIGV2ZW50TWFuYWdlci5hZGRTdWJzY3JpcHRpb25zKHBhcnNlZENvbmZpZy5ldmVudEhhbmRsaW5nQ29uZmlnLCBwcm9wcy5oYW5kbGUsIHByb3BzLnZpZXdJZCk7XG4gICAgICAgICAgICBldmVudE1hbmFnZXIuYWRkU3lzdGVtU3Vic2NyaXB0aW9ucyhwcm9wcy52aWV3SWQsIHBhcnNlZENvbmZpZyk7XG5cbiAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKHBhcnNlZENvbmZpZy52aXNpYmxlKSkge1xuICAgICAgICAgICAgICAgIHNldFZpc2libGUoVXRpbHMuZXZhbHVhdGVCb29sZWFuRXhwcmVzc2lvbihwYXJzZWRDb25maWcudmlzaWJsZSwgcHJvcHMuY29uZmlnLmlkKSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHNldFZpc2libGUodHJ1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIFtdKTtcblxuICAgIGZ1bmN0aW9uIGNyZWF0ZUNvbXBvbmVudEhhbmRsZShjb21wb25lbnQpIHtcbiAgICAgICAgaWYgKFV0aWxzLmlzTnVsbChjb21wb25lbnRIYW5kbGVzW2NvbXBvbmVudC5pZF0pKSB7XG4gICAgICAgICAgICBsZXQgaGFuZGxlID0ge307XG4gICAgICAgICAgICBjb21wb25lbnRIYW5kbGVzW2NvbXBvbmVudC5pZF0gPSBoYW5kbGU7XG4gICAgICAgICAgICByZXR1cm4gaGFuZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNvbXBvbmVudEhhbmRsZXNbY29tcG9uZW50LmlkXTtcbiAgICB9XG5cbiAgICBSZWFjdC51c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgICAgICBwcm9wcy5oYW5kbGUuYXBpID0gYXBpKCk7XG4gICAgfSwgW10pO1xuXG4gICAgZnVuY3Rpb24gdW5pcXVlSWQocHJlZml4KSB7XG4gICAgICAgIC8vIHRpbWUgKyByYW5kb20gKyBjb3VudGVyLCBhbGwgYmFzZTM2IChubyBkYXNoZXMpXG4gICAgICAgIHVuaXF1ZUlkLl9jID0gKHVuaXF1ZUlkLl9jIHx8IDApICsgMTtcbiAgICAgICAgcmV0dXJuIHByZWZpeCArIERhdGUubm93KCkudG9TdHJpbmcoMzYpXG4gICAgICAgICAgICArIE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnNsaWNlKDIpXG4gICAgICAgICAgICArIHVuaXF1ZUlkLl9jLnRvU3RyaW5nKDM2KTtcbiAgICB9XG5cbiAgICBjb25zdCBzZXRNaXNzaW5nQ29tcG9uZW50SWRzID0gKCkgPT4ge1xuICAgICAgICBsZXQgbGF5b3V0ID0gcHJvcHMuY29uZmlnO1xuICAgICAgICBpZiAoIWxheW91dC5pZCkge1xuICAgICAgICAgICAgbGF5b3V0LmlkID0gdW5pcXVlSWQoJ19wYXJlbnRfbGF5b3V0XycpO1xuICAgICAgICB9XG5cbiAgICAgICAgbGF5b3V0LmtleSA9IGtleUNvdW50ZXIrKztcbiAgICAgICAgaWYgKCFVdGlscy5pc051bGwobGF5b3V0LmNvbXBvbmVudHMpKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxheW91dC5jb21wb25lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgbGV0IGNvbXBvbmVudCA9IGxheW91dC5jb21wb25lbnRzW2ldO1xuICAgICAgICAgICAgICAgIGlmIChVdGlscy5pc051bGwoY29tcG9uZW50LmlkKSkge1xuICAgICAgICAgICAgICAgICAgICBjb21wb25lbnQuaWQgPSB1bmlxdWVJZChsYXlvdXQuaWQgKyAnXycgKyBjb21wb25lbnQudHlwZSArICdfJyk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgY29tcG9uZW50LmtleSA9IGtleUNvdW50ZXIrKztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBmdW5jdGlvbiByZW5kZXJDb21wb25lbnQoY29tcG9uZW50LCBpbmRleCkge1xuICAgICAgICBpZiAoVXRpbHMuaXNOdWxsKGNvbXBvbmVudC5pZCkpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc3dpdGNoIChjb21wb25lbnQudHlwZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ2xheW91dCc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiA8TGF5b3V0IGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9IGNvbmZpZz17Y29tcG9uZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJsZVJvdz17cHJvcHMudGFibGVSb3d9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17aW5kZXh9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdJZD17cHJvcHMudmlld0lkfS8+O1xuICAgICAgICAgICAgICAgIGNhc2UgJ3Rvb2xiYXInOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gPFRvb2xiYXIgY29uZmlnPXtjb21wb25lbnR9IGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJsZVJvdz17cHJvcHMudGFibGVSb3d9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2luZGV4fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9Lz47XG4gICAgICAgICAgICAgICAgY2FzZSAndGFiJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxUYWJQYW5lbCBjb25maWc9e2NvbXBvbmVudH0gaGFuZGxlPXtjcmVhdGVDb21wb25lbnRIYW5kbGUoY29tcG9uZW50KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJsZVJvdz17cHJvcHMudGFibGVSb3d9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtpbmRleH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3SWQ9e3Byb3BzLnZpZXdJZH0vPjtcbiAgICAgICAgICAgICAgICBjYXNlICdkYXRhR3JpZCc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiA8RGF0YUdyaWQgY29uZmlnPXtjb21wb25lbnR9IGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtpbmRleH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3SWQ9e3Byb3BzLnZpZXdJZH0vPjtcbiAgICAgICAgICAgICAgICBjYXNlICdmb3JtJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxGb3JtIGNvbmZpZz17Y29tcG9uZW50fSBoYW5kbGU9e2NyZWF0ZUNvbXBvbmVudEhhbmRsZShjb21wb25lbnQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtpbmRleH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdJZD17cHJvcHMudmlld0lkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtVdGlscy5nZXRDb21wb25lbnRBdHRyaWJ1dGUoY29tcG9uZW50LCAnY2xhc3NOYW1lJywnZGVmYXVsdEZvcm0nKX0vPjtcbiAgICAgICAgICAgICAgICBjYXNlICdodG1sUGFuZWwnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gPEh0bWxQYW5lbCBjb25maWc9e2NvbXBvbmVudH0gaGFuZGxlPXtjcmVhdGVDb21wb25lbnRIYW5kbGUoY29tcG9uZW50KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17aW5kZXh9Lz47XG4gICAgICAgICAgICAgICAgY2FzZSAndHVybnN0aWxlJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxUdXJuc3RpbGUgY29uZmlnPXtjb21wb25lbnR9IGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdJZD17cHJvcHMudmlld0lkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2luZGV4fS8+O1xuICAgICAgICAgICAgICAgIGNhc2UgJ3BvcnRsZXQnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gPFBvcnRsZXQgY29uZmlnPXtjb21wb25lbnR9IGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3SWQ9e3Byb3BzLnZpZXdJZH0vPjtcbiAgICAgICAgICAgICAgICBjYXNlICd0cmVlJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxUcmVlIGNvbmZpZz17Y29tcG9uZW50fSBoYW5kbGU9e2NyZWF0ZUNvbXBvbmVudEhhbmRsZShjb21wb25lbnQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtpbmRleH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdJZD17cHJvcHMudmlld0lkfS8+O1xuICAgICAgICAgICAgICAgIGNhc2UgJ3RpdGxlQmFyJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxUaXRsZUJhciBjb25maWc9e2NvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGU9e2NyZWF0ZUNvbXBvbmVudEhhbmRsZShjb21wb25lbnQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17aW5kZXh9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9Lz47XG4gICAgICAgICAgICAgICAgY2FzZSAnc3RlcHBlclRpdGxlQmFyJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxTdGVwcGVyVGl0bGVCYXIgY29uZmlnPXtjb21wb25lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17aW5kZXh9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdJZD17cHJvcHMudmlld0lkfS8+O1xuICAgICAgICAgICAgICAgIGNhc2UgJ2FsZXJ0QmFyJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxBbGVydEJhciBjb25maWc9e2NvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGU9e2NyZWF0ZUNvbXBvbmVudEhhbmRsZShjb21wb25lbnQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17aW5kZXh9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9Lz47XG4gICAgICAgICAgICAgICAgY2FzZSAnc2lnbmF0dXJlVGVtcGxhdGVEZXNpZ25lcic6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiA8U2lnbmF0dXJlVGVtcGxhdGVEZXNpZ25lciBjb25maWc9e2NvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2luZGV4fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9XG4gICAgICAgICAgICAgICAgICAgIC8+O1xuICAgICAgICAgICAgICAgIGNhc2UgJ2RvY3VtZW50Vmlld2VyJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxEb2N1bWVudFZpZXdlciBjb25maWc9e2NvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGU9e2NyZWF0ZUNvbXBvbmVudEhhbmRsZShjb21wb25lbnQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17aW5kZXh9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9XG4gICAgICAgICAgICAgICAgICAgIC8+O1xuICAgICAgICAgICAgICAgIGNhc2UgJ3ZjUm9vbSc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiA8VkNSb29tIGNvbmZpZz17Y29tcG9uZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGU9e2NyZWF0ZUNvbXBvbmVudEhhbmRsZShjb21wb25lbnQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2luZGV4fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3SWQ9e3Byb3BzLnZpZXdJZH1cbiAgICAgICAgICAgICAgICAgICAgLz47XG4gICAgICAgICAgICAgICAgY2FzZSAnY2hhdCc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiA8Q2hhdCBjb25maWc9e2NvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2luZGV4fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9XG4gICAgICAgICAgICAgICAgICAgIC8+O1xuICAgICAgICAgICAgICAgIGNhc2UgJ3VzZXJWaWRlbyc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiA8VmlkZW8gY29uZmlnPXtjb21wb25lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlPXtjcmVhdGVDb21wb25lbnRIYW5kbGUoY29tcG9uZW50KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2luZGV4fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdJZD17cHJvcHMudmlld0lkfVxuICAgICAgICAgICAgICAgICAgICAvPjtcbiAgICAgICAgICAgICAgICBjYXNlICd2Y1NldHRpbmdzJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxWQ1NldHRpbmdzIGNvbmZpZz17Y29tcG9uZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlPXtjcmVhdGVDb21wb25lbnRIYW5kbGUoY29tcG9uZW50KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17aW5kZXh9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3SWQ9e3Byb3BzLnZpZXdJZH1cbiAgICAgICAgICAgICAgICAgICAgLz47XG4gICAgICAgICAgICAgICAgY2FzZSAndmlkZW9QbGF5ZXInOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gPFZpZGVvUGxheWVyIGNvbmZpZz17Y29tcG9uZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtpbmRleH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3SWQ9e3Byb3BzLnZpZXdJZH1cbiAgICAgICAgICAgICAgICAgICAgLz47XG4gICAgICAgICAgICAgICAgY2FzZSAnc2lnbmF0dXJlUGFuZWwnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gPFNpZ25hdHVyZVBhbmVsIGNvbmZpZz17Y29tcG9uZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtpbmRleH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3SWQ9e3Byb3BzLnZpZXdJZH1cbiAgICAgICAgICAgICAgICAgICAgLz47XG4gICAgICAgICAgICAgICAgY2FzZSAnZGlhbG9nJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxEaWFsb2cgY29uZmlnPXtjb21wb25lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17aW5kZXh9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdJZD17cHJvcHMudmlld0lkfVxuICAgICAgICAgICAgICAgICAgICAvPjtcbiAgICAgICAgICAgICAgICBjYXNlICdjYWxlbmRhcic6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiA8Q2FsZW5kYXIgY29uZmlnPXtjb21wb25lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlPXtjcmVhdGVDb21wb25lbnRIYW5kbGUoY29tcG9uZW50KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2luZGV4fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdJZD17cHJvcHMudmlld0lkfVxuICAgICAgICAgICAgICAgICAgICAvPjtcbiAgICAgICAgICAgICAgICBjYXNlICd0ZW1wbGF0ZURlc2lnbmVyJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxUZW1wbGF0ZURlc2lnbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25maWc9e2NvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2luZGV4fVxuICAgICAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9XG4gICAgICAgICAgICAgICAgICAgIC8+O1xuICAgICAgICAgICAgICAgIGNhc2UgJ2RvY3VtZW50VGVtcGxhdGVEZXNpZ25lcic6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiA8RG9jdW1lbnRUZW1wbGF0ZURlc2lnbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25maWc9e2NvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2luZGV4fVxuICAgICAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9XG4gICAgICAgICAgICAgICAgICAgIC8+O1xuICAgICAgICAgICAgICAgIGNhc2UgJ2NoYXRSb29tJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxDaGF0Um9vbVdyYXBwZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZz17Y29tcG9uZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlPXtjcmVhdGVDb21wb25lbnRIYW5kbGUoY29tcG9uZW50KX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGtleT17aW5kZXh9XG4gICAgICAgICAgICAgICAgICAgICAgICB2aWV3SWQ9e3Byb3BzLnZpZXdJZH1cbiAgICAgICAgICAgICAgICAgICAgLz47XG4gICAgICAgICAgICAgICAgY2FzZSAnY2hhdFZpZXdlcic6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiA8Q2hhdFZpZXdlclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnPXtjb21wb25lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGU9e2NyZWF0ZUNvbXBvbmVudEhhbmRsZShjb21wb25lbnQpfVxuICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtpbmRleH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdJZD17cHJvcHMudmlld0lkfVxuICAgICAgICAgICAgICAgICAgICAvPjtcbiAgICAgICAgICAgICAgICBjYXNlICdwcm9ncmVzc1RyYWNrZXInOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gPFByb2dyZXNzVHJhY2tlclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnPXtjb21wb25lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGU9e2NyZWF0ZUNvbXBvbmVudEhhbmRsZShjb21wb25lbnQpfVxuICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtpbmRleH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdJZD17cHJvcHMudmlld0lkfVxuICAgICAgICAgICAgICAgICAgICAvPjtcbiAgICAgICAgICAgICAgICBjYXNlICdmYWNpYWxSZWdpc3RyYXRpb24nOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gPEZhY2lhbFJlZ2lzdHJhdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnPXtjb21wb25lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGU9e2NyZWF0ZUNvbXBvbmVudEhhbmRsZShjb21wb25lbnQpfVxuICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtpbmRleH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdJZD17cHJvcHMudmlld0lkfVxuICAgICAgICAgICAgICAgICAgICAvPjtcbiAgICAgICAgICAgICAgICBjYXNlICdmYWNpYWxWZXJpZmljYXRpb24nOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gPEZhY2lhbFZlcmlmaWNhdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnPXtjb21wb25lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGU9e2NyZWF0ZUNvbXBvbmVudEhhbmRsZShjb21wb25lbnQpfVxuICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtpbmRleH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdJZD17cHJvcHMudmlld0lkfVxuICAgICAgICAgICAgICAgICAgICAvPjtcbiAgICAgICAgICAgICAgICBjYXNlICdjaGFydCc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiA8Q2hhcnRcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZz17Y29tcG9uZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlPXtjcmVhdGVDb21wb25lbnRIYW5kbGUoY29tcG9uZW50KX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGtleT17aW5kZXh9XG4gICAgICAgICAgICAgICAgICAgICAgICB2aWV3SWQ9e3Byb3BzLnZpZXdJZH1cbiAgICAgICAgICAgICAgICAgICAgLz47XG4gICAgICAgICAgICAgICAgY2FzZSAnc3Bpbm5lcic6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiA8U3Bpbm5lclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnPXtjb21wb25lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGU9e2NyZWF0ZUNvbXBvbmVudEhhbmRsZShjb21wb25lbnQpfVxuICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtpbmRleH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdJZD17cHJvcHMudmlld0lkfVxuICAgICAgICAgICAgICAgICAgICAvPjtcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gPGRpdiBrZXk9e2luZGV4fT57J1Vuc3VwcG9ydGVkIGNvbXBvbmVudCB0eXBlICcgKyBjb21wb25lbnQudHlwZX08L2Rpdj47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBnZXRDaGlsZHJlbigpIHtcbiAgICAgICAgbGV0IGNoaWxkcmVuID0gW107XG4gICAgICAgIGxldCBwcm9wZXJ0aWVzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoY29tcG9uZW50SGFuZGxlcyk7XG4gICAgICAgIGZvciAoY29uc3QgcHJvcGVydHkgb2YgcHJvcGVydGllcykge1xuICAgICAgICAgICAgbGV0IGNvbXBvbmVudEhhbmRsZSA9IGNvbXBvbmVudEhhbmRsZXNbcHJvcGVydHldO1xuICAgICAgICAgICAgY2hpbGRyZW4ucHVzaChjb21wb25lbnRIYW5kbGUpO1xuICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwoY29tcG9uZW50SGFuZGxlLmFwaSkgJiYgIVV0aWxzLmlzTnVsbChjb21wb25lbnRIYW5kbGUuYXBpLmdldENoaWxkcmVuKSkge1xuICAgICAgICAgICAgICAgIGxldCBtb3JlQ2hpbGRyZW4gPSBjb21wb25lbnRIYW5kbGUuYXBpLmdldENoaWxkcmVuKCk7XG4gICAgICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwobW9yZUNoaWxkcmVuKSkge1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIG1vcmVDaGlsZHJlbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW4ucHVzaChjaGlsZCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY2hpbGRyZW47XG4gICAgfVxuXG4gICAgY29uc3QgYXBpID0gKCkgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZ2V0IGlkKCkge1xuICAgICAgICAgICAgICAgIC8vIExheW91dFxuICAgICAgICAgICAgICAgIHJldHVybiBwcm9wcy5jb25maWcuaWQ7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2V0IHZpc2libGUodmFsKSB7XG4gICAgICAgICAgICAgICAgc2V0VmlzaWJsZSh2YWwpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGdldENoaWxkcmVuOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGdldENoaWxkcmVuKCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVmcmVzaCgpIHtcbiAgICAgICAgICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbChwcm9wcy5jb25maWcudmlzaWJsZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHBhcnNlZENvbmZpZyA9IFV0aWxzLnBhcnNlQ29uZmlnKHByb3BzLmNvbmZpZywgcHJvcHMudmlld0lkKTtcbiAgICAgICAgICAgICAgICAgICAgc2V0VmlzaWJsZShVdGlscy5ldmFsdWF0ZUJvb2xlYW5FeHByZXNzaW9uKHBhcnNlZENvbmZpZy52aXNpYmxlLCBwcm9wcy5jb25maWcuaWQpKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIGdldENoaWxkcmVuKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYoY2hpbGQuYXBpICYmIGNoaWxkLmFwaS5yZWZyZXNoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjaGlsZC5hcGkucmVmcmVzaCgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgIH07XG5cbiAgICBmdW5jdGlvbiBnZXREZWZhdWx0Q29tcG9uZW50Q29udGFpbmVyU3R5bGUoY29tcG9uZW50KSB7XG4gICAgICAgIHJldHVybiBVdGlscy5tZXJnZVN0eWxlcyh7XG4gICAgICAgICAgICB3aWR0aDogJ2F1dG8nLFxuICAgICAgICAgICAgaGVpZ2h0OiAnYXV0bycsXG4gICAgICAgICAgICBtYXJnaW46IDAsXG4gICAgICAgICAgICBtaW5IZWlnaHQ6IDBcbiAgICAgICAgfSwgY29tcG9uZW50KTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBnZXRMYXlvdXRTdHlsZShjb21wb25lbnQsIGJhY2tncm91bmRDb2xvcikge1xuICAgICAgICBsZXQgc3R5bGUgPSBVdGlscy5tZXJnZVN0eWxlcyh7XG4gICAgICAgICAgICBvdmVyZmxvdzogJ2F1dG8nLFxuICAgICAgICAgICAgYm9yZGVyOiAnbm9uZScsXG4gICAgICAgICAgICBtaW5XaWR0aDogJzEyOHB4JyxcbiAgICAgICAgICAgIHdpZHRoOiAnYXV0bycsXG4gICAgICAgICAgICBoZWlnaHQ6IFV0aWxzLmdldENvbXBvbmVudEF0dHJpYnV0ZShjb21wb25lbnQsICdjbGFzc05hbWUnLCAnJykgPT09ICdzY3JvbGxpbmctYm9keScgPyBudWxsIDogJzEwMCUnLFxuICAgICAgICAgICAgbWFyZ2luOiAwLFxuICAgICAgICAgICAgcGFkZGluZzogMFxuICAgICAgICB9LCBjb21wb25lbnQpO1xuXG4gICAgICAgIGlmICghdmlzaWJsZSkge1xuICAgICAgICAgICAgc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghVXRpbHMuaXNOdWxsKGJhY2tncm91bmRDb2xvcikpIHtcbiAgICAgICAgICAgIHN0eWxlLmJhY2tncm91bmRDb2xvciA9IGJhY2tncm91bmRDb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBzdHlsZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW5kZXIgY2hpbGRyZW4gd3JhcHBlZCBpbiBhIDxQYW5lbEdyb3VwPiB3aXRoIDxQYW5lbFJlc2l6ZUhhbmRsZT5zXG4gICAgICogYmV0d2VlbiBjb25zZWN1dGl2ZSBjaGlsZHJlbi4gQWN0aXZhdGVkIHdoZW4gbGF5b3V0LnNwbGl0dGVyID09PSB0cnVlLlxuICAgICAqIFBlci1jb21wb25lbnQgc2l6aW5nIGZsb3dzIHRocm91Z2ggdGhlc2Ugb3B0aW9uYWwgZmllbGRzOlxuICAgICAqICAgc3BsaXR0ZXJEZWZhdWx0U2l6ZSAg4oCUIGluaXRpYWwgc2l6ZSBhcyBhIHBlcmNlbnRhZ2UgKDAtMTAwKVxuICAgICAqICAgc3BsaXR0ZXJNaW5TaXplICAgICAg4oCUIG1pbmltdW0gc2l6ZSBhcyBhIHBlcmNlbnRhZ2VcbiAgICAgKiAgIHNwbGl0dGVyTWF4U2l6ZSAgICAgIOKAlCBtYXhpbXVtIHNpemUgYXMgYSBwZXJjZW50YWdlXG4gICAgICogICBzcGxpdHRlckNvbGxhcHNpYmxlICDigJQgd2hldGhlciB0aGUgcGFuZWwgY2FuIGJlIGRyYWdnZWQgdG8gY29sbGFwc2VcbiAgICAgKi9cbiAgICBmdW5jdGlvbiByZW5kZXJXaXRoU3BsaXR0ZXJzKGxheW91dCkge1xuICAgICAgICBjb25zdCBkaXJlY3Rpb24gPSBsYXlvdXQub3JpZW50YXRpb24gPT09ICdWRVJUSUNBTCcgPyAndmVydGljYWwnIDogJ2hvcml6b250YWwnO1xuICAgICAgICBjb25zdCBoYW5kbGVDbGFzcyA9IGRpcmVjdGlvbiA9PT0gJ2hvcml6b250YWwnXG4gICAgICAgICAgICA/ICdvdWktc3BsaXR0ZXIgb3VpLXNwbGl0dGVyLWgnXG4gICAgICAgICAgICA6ICdvdWktc3BsaXR0ZXIgb3VpLXNwbGl0dGVyLXYnO1xuXG4gICAgICAgIGNvbnN0IGNoaWxkcmVuID0gW107XG4gICAgICAgIGxheW91dC5jb21wb25lbnRzLmZvckVhY2goKGNvbXBvbmVudCwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIGlmIChpbmRleCA+IDApIHtcbiAgICAgICAgICAgICAgICBjaGlsZHJlbi5wdXNoKFxuICAgICAgICAgICAgICAgICAgICA8UGFuZWxSZXNpemVIYW5kbGUga2V5PXtgaGFuZGxlLSR7Y29tcG9uZW50LmlkfWB9IGNsYXNzTmFtZT17aGFuZGxlQ2xhc3N9Lz5cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2hpbGRyZW4ucHVzaChcbiAgICAgICAgICAgICAgICA8UGFuZWxcbiAgICAgICAgICAgICAgICAgICAga2V5PXtgcGFuZWwtJHtjb21wb25lbnQuaWR9YH1cbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdFNpemU9e2NvbXBvbmVudC5zcGxpdHRlckRlZmF1bHRTaXplfVxuICAgICAgICAgICAgICAgICAgICBtaW5TaXplPXtjb21wb25lbnQuc3BsaXR0ZXJNaW5TaXplfVxuICAgICAgICAgICAgICAgICAgICBtYXhTaXplPXtjb21wb25lbnQuc3BsaXR0ZXJNYXhTaXplfVxuICAgICAgICAgICAgICAgICAgICBjb2xsYXBzaWJsZT17Y29tcG9uZW50LnNwbGl0dGVyQ29sbGFwc2libGV9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7cmVuZGVyQ29tcG9uZW50KGNvbXBvbmVudCwgbnVsbCl9XG4gICAgICAgICAgICAgICAgPC9QYW5lbD5cbiAgICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8UGFuZWxHcm91cCBvcmllbnRhdGlvbj17ZGlyZWN0aW9ufT5cbiAgICAgICAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgICAgICA8L1BhbmVsR3JvdXA+XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcmVuZGVyKGxheW91dCkge1xuICAgICAgICBzZXRNaXNzaW5nQ29tcG9uZW50SWRzKCk7XG5cbiAgICAgICAgaWYgKFV0aWxzLmlzTnVsbChsYXlvdXQuY29tcG9uZW50cykgfHwgbGF5b3V0LmNvbXBvbmVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gPGRpdj5JIGFtIGEgZHVtIGVtcHR5IExheW91dDwvZGl2PjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChsYXlvdXQuc3BsaXR0ZXIgPT09IHRydWUpIHtcbiAgICAgICAgICAgIHJldHVybiByZW5kZXJXaXRoU3BsaXR0ZXJzKGxheW91dCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgbGF5b3V0Lm9yaWVudGF0aW9uID09PSAnVkVSVElDQUwnID9cbiAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXlvdXQuY29tcG9uZW50cy5tYXAoKGNvbXBvbmVudCwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gPEZyYWdtZW50IGtleT17aW5kZXh9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW5kZXJDb21wb25lbnQoY29tcG9uZW50LCBudWxsKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9GcmFnbWVudD47XG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgOlxuICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxheW91dC5jb21wb25lbnRzLm1hcCgoY29tcG9uZW50LCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBjbGFzc05hbWUgPSBVdGlscy5nZXRDb21wb25lbnRBdHRyaWJ1dGUoY29tcG9uZW50LCAnY2xhc3NOYW1lJywgJycpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjb21wb25lbnQudHlwZSA9PT0gJ2xheW91dCcgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8RnJhZ21lbnQga2V5PXtpbmRleH0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVuZGVyQ29tcG9uZW50KGNvbXBvbmVudCwgaW5kZXgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvRnJhZ21lbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEZyYWdtZW50IGtleT17aW5kZXh9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbmRlckNvbXBvbmVudChjb21wb25lbnQsIG51bGwpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvRnJhZ21lbnQ+O1xuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiA8ZGl2IGlkPXtwcm9wcy5jb25maWcuaWR9IHN0eWxlPXtnZXRMYXlvdXRTdHlsZShwcm9wcy5jb25maWcsIG51bGwpfVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YCR7VXRpbHMuZ2V0Q29tcG9uZW50QXR0cmlidXRlKHByb3BzLmNvbmZpZywgJ2NsYXNzTmFtZScsICdkZWZhdWx0LW91aS1sYXlvdXQnKVxuICAgICAgICAgICAgICAgICsgKHByb3BzLmNvbmZpZy5vcmllbnRhdGlvbiA9PT0gJ0hPUklaT05UQUwnID8gJyByb3cnIDogJycpfWB9IGtleT17cHJvcHMuY29uZmlnLmlkfT5cbiAgICAgICAge1xuICAgICAgICAgICAgcmVuZGVyKHByb3BzLmNvbmZpZylcbiAgICAgICAgfVxuICAgIDwvZGl2PlxufTtcblxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQyxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDRCxJQUFBQyxNQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxXQUFBLEdBQUFELHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBSSxRQUFBLEdBQUFGLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBSyxTQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxVQUFBLEdBQUFKLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBTyxVQUFBLEdBQUFMLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBUSwwQkFBQSxHQUFBTixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQVMsaUJBQUEsR0FBQVAsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFVLFNBQUEsR0FBQVIsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFXLFNBQUEsR0FBQVQsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFZLGdCQUFBLEdBQUFWLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBYSxLQUFBLEdBQUFiLE9BQUE7QUFDQSxJQUFBYyxLQUFBLEdBQUFaLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBZSxlQUFBLEdBQUFiLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBZ0IsZUFB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
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _ChatRoom = _interopRequireDefault(require("./chat/ChatRoom"));
|
|
9
|
+
require("./Chat.css");
|
|
10
|
+
var _Utils = _interopRequireDefault(require("../../Utils"));
|
|
11
|
+
var _Observable = _interopRequireDefault(require("../../event/Observable"));
|
|
12
|
+
var _Event = _interopRequireDefault(require("../../event/Event"));
|
|
13
|
+
var _EventType = _interopRequireDefault(require("../../event/EventType"));
|
|
14
|
+
var _RestUtils = require("../../RestUtils");
|
|
15
|
+
var _ApplicationManager = _interopRequireDefault(require("../../ApplicationManager"));
|
|
16
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
17
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
18
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
19
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
20
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
21
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
22
|
+
const location = window.location.protocol + '//' + window.location.hostname;
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Read-only viewer for a meeting's chat/polls, fetched from the calendar service by the meeting's
|
|
26
|
+
* calendarEventKey. Config attributes:
|
|
27
|
+
* - pollsOnly (default false): keep only poll-bearing messages (used by the probity Meeting > Polls tab).
|
|
28
|
+
* Value comes from a bound calendarEventKey (via a loadData action or the value setter). No inputs — view only.
|
|
29
|
+
*/
|
|
30
|
+
const ChatViewer = /*#__PURE__*/_react.default.memo(props => {
|
|
31
|
+
const [visible, setVisible] = _react.default.useState(true);
|
|
32
|
+
const [chat, setChat] = _react.default.useState(null);
|
|
33
|
+
_react.default.useEffect(() => {
|
|
34
|
+
props.handle.api = api();
|
|
35
|
+
});
|
|
36
|
+
_react.default.useEffect(() => {
|
|
37
|
+
props.handle.api = api();
|
|
38
|
+
let parsedConfig = _Utils.default.parseConfig(props.config, props.viewId);
|
|
39
|
+
_Observable.default.addSubscriptions(parsedConfig.eventHandlingConfig, props.handle, props.viewId);
|
|
40
|
+
_Observable.default.addSystemSubscriptions(props.viewId, parsedConfig);
|
|
41
|
+
let event = new _Event.default(props.handle, props.viewId, null);
|
|
42
|
+
_Observable.default.fireEvent(_EventType.default.COMPONENT_LOAD, event);
|
|
43
|
+
return () => {
|
|
44
|
+
_Observable.default.clearComponentEventListeners(props.handle);
|
|
45
|
+
};
|
|
46
|
+
}, []);
|
|
47
|
+
const fetchChat = calendarEventKey => {
|
|
48
|
+
if (_Utils.default.isNull(calendarEventKey)) {
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
(0, _RestUtils.sendRequest)("".concat(location + '/' + _ApplicationManager.default.getContextRoot(), "/calendar/api/v1/chat/fetchMeetingChatByKey/").concat(calendarEventKey), response => {
|
|
52
|
+
if (response && response.id) {
|
|
53
|
+
// Stamp meetingKey so ChatRoom's own refresh (create/vote/close) stays on the by-key lookup.
|
|
54
|
+
setChat(_objectSpread(_objectSpread({}, response), {}, {
|
|
55
|
+
meetingKey: calendarEventKey
|
|
56
|
+
}));
|
|
57
|
+
}
|
|
58
|
+
}, e => {
|
|
59
|
+
console.error(e);
|
|
60
|
+
}, true, false);
|
|
61
|
+
};
|
|
62
|
+
const api = () => {
|
|
63
|
+
return {
|
|
64
|
+
get id() {
|
|
65
|
+
return props.config.id;
|
|
66
|
+
},
|
|
67
|
+
loadData: actionConfig => {
|
|
68
|
+
let calendarEventKey = actionConfig && actionConfig.value ? _ApplicationManager.default.resolveParameterConfigValue(actionConfig.value) : _Utils.default.parseConfig(props.config, props.viewId).value;
|
|
69
|
+
fetchChat(calendarEventKey);
|
|
70
|
+
},
|
|
71
|
+
refresh() {},
|
|
72
|
+
getChildren: () => {
|
|
73
|
+
return [];
|
|
74
|
+
},
|
|
75
|
+
set visible(v) {
|
|
76
|
+
setVisible(v);
|
|
77
|
+
},
|
|
78
|
+
set value(value) {
|
|
79
|
+
fetchChat(value);
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
};
|
|
83
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
84
|
+
style: {
|
|
85
|
+
display: visible ? 'block' : 'none',
|
|
86
|
+
width: '100%',
|
|
87
|
+
height: '100%',
|
|
88
|
+
overflowY: 'auto'
|
|
89
|
+
}
|
|
90
|
+
}, !_Utils.default.isNull(props.config) && chat ? /*#__PURE__*/_react.default.createElement(_ChatRoom.default, {
|
|
91
|
+
selectedChat: chat,
|
|
92
|
+
headerStyle: {
|
|
93
|
+
borderBottom: 'none',
|
|
94
|
+
marginTop: '16px'
|
|
95
|
+
},
|
|
96
|
+
chatTab: true,
|
|
97
|
+
readOnly: true,
|
|
98
|
+
pollsOnly: _Utils.default.getComponentAttribute(props.config, 'pollsOnly', false),
|
|
99
|
+
showAllMessagesForNewParticipants: true
|
|
100
|
+
}) : null);
|
|
101
|
+
});
|
|
102
|
+
var _default = exports.default = ChatViewer;
|
|
103
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9DaGF0Um9vbSIsIl9VdGlscyIsIl9PYnNlcnZhYmxlIiwiX0V2ZW50IiwiX0V2ZW50VHlwZSIsIl9SZXN0VXRpbHMiLCJfQXBwbGljYXRpb25NYW5hZ2VyIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0Iiwib3duS2V5cyIsInIiLCJ0IiwiT2JqZWN0Iiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsImRlZmluZVByb3BlcnR5IiwiX3RvUHJvcGVydHlLZXkiLCJ2YWx1ZSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwiaSIsIl90b1ByaW1pdGl2ZSIsIlN5bWJvbCIsInRvUHJpbWl0aXZlIiwiY2FsbCIsIlR5cGVFcnJvciIsIlN0cmluZyIsIk51bWJlciIsImxvY2F0aW9uIiwid2luZG93IiwicHJvdG9jb2wiLCJob3N0bmFtZSIsIkNoYXRWaWV3ZXIiLCJSZWFjdCIsIm1lbW8iLCJwcm9wcyIsInZpc2libGUiLCJzZXRWaXNpYmxlIiwidXNlU3RhdGUiLCJjaGF0Iiwic2V0Q2hhdCIsInVzZUVmZmVjdCIsImhhbmRsZSIsImFwaSIsInBhcnNlZENvbmZpZyIsIlV0aWxzIiwicGFyc2VDb25maWciLCJjb25maWciLCJ2aWV3SWQiLCJldmVudE1hbmFnZXIiLCJhZGRTdWJzY3JpcHRpb25zIiwiZXZlbnRIYW5kbGluZ0NvbmZpZyIsImFkZFN5c3RlbVN1YnNjcmlwdGlvbnMiLCJldmVudCIsIkV2ZW50IiwiZmlyZUV2ZW50IiwiRXZlbnRUeXBlIiwiQ09NUE9ORU5UX0xPQUQiLCJjbGVhckNvbXBvbmVudEV2ZW50TGlzdGVuZXJzIiwiZmV0Y2hDaGF0IiwiY2FsZW5kYXJFdmVudEtleSIsImlzTnVsbCIsInNlbmRSZXF1ZXN0IiwiY29uY2F0IiwiYXBwbGljYXRpb25NYW5hZ2VyIiwiZ2V0Q29udGV4dFJvb3QiLCJyZXNwb25zZSIsImlkIiwibWVldGluZ0tleSIsImNvbnNvbGUiLCJlcnJvciIsImxvYWREYXRhIiwiYWN0aW9uQ29uZmlnIiwicmVzb2x2ZVBhcmFtZXRlckNvbmZpZ1ZhbHVlIiwicmVmcmVzaCIsImdldENoaWxkcmVuIiwidiIsImNyZWF0ZUVsZW1lbnQiLCJzdHlsZSIsImRpc3BsYXkiLCJ3aWR0aCIsImhlaWdodCIsIm92ZXJmbG93WSIsInNlbGVjdGVkQ2hhdCIsImhlYWRlclN0eWxlIiwiYm9yZGVyQm90dG9tIiwibWFyZ2luVG9wIiwiY2hhdFRhYiIsInJlYWRPbmx5IiwicG9sbHNPbmx5IiwiZ2V0Q29tcG9uZW50QXR0cmlidXRlIiwic2hvd0FsbE1lc3NhZ2VzRm9yTmV3UGFydGljaXBhbnRzIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL21lZGlhL0NoYXRWaWV3ZXIuanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgQ2hhdFJvb20gZnJvbSBcIi4vY2hhdC9DaGF0Um9vbVwiO1xuaW1wb3J0IFwiLi9DaGF0LmNzc1wiXG5pbXBvcnQgVXRpbHMgZnJvbSBcIi4uLy4uL1V0aWxzXCI7XG5pbXBvcnQgZXZlbnRNYW5hZ2VyIGZyb20gXCIuLi8uLi9ldmVudC9PYnNlcnZhYmxlXCI7XG5pbXBvcnQgRXZlbnQgZnJvbSBcIi4uLy4uL2V2ZW50L0V2ZW50XCI7XG5pbXBvcnQgRXZlbnRUeXBlIGZyb20gXCIuLi8uLi9ldmVudC9FdmVudFR5cGVcIjtcbmltcG9ydCB7c2VuZFJlcXVlc3R9IGZyb20gXCIuLi8uLi9SZXN0VXRpbHNcIjtcbmltcG9ydCBhcHBsaWNhdGlvbk1hbmFnZXIgZnJvbSBcIi4uLy4uL0FwcGxpY2F0aW9uTWFuYWdlclwiO1xuXG5jb25zdCBsb2NhdGlvbiA9IHdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbCArICcvLycgKyB3aW5kb3cubG9jYXRpb24uaG9zdG5hbWU7XG5cbi8qKlxuICogUmVhZC1vbmx5IHZpZXdlciBmb3IgYSBtZWV0aW5nJ3MgY2hhdC9wb2xscywgZmV0Y2hlZCBmcm9tIHRoZSBjYWxlbmRhciBzZXJ2aWNlIGJ5IHRoZSBtZWV0aW5nJ3NcbiAqIGNhbGVuZGFyRXZlbnRLZXkuIENvbmZpZyBhdHRyaWJ1dGVzOlxuICogICAtIHBvbGxzT25seSAoZGVmYXVsdCBmYWxzZSk6IGtlZXAgb25seSBwb2xsLWJlYXJpbmcgbWVzc2FnZXMgKHVzZWQgYnkgdGhlIHByb2JpdHkgTWVldGluZyA+IFBvbGxzIHRhYikuXG4gKiBWYWx1ZSBjb21lcyBmcm9tIGEgYm91bmQgY2FsZW5kYXJFdmVudEtleSAodmlhIGEgbG9hZERhdGEgYWN0aW9uIG9yIHRoZSB2YWx1ZSBzZXR0ZXIpLiBObyBpbnB1dHMg4oCUIHZpZXcgb25seS5cbiAqL1xuY29uc3QgQ2hhdFZpZXdlciA9IFJlYWN0Lm1lbW8oKHByb3BzKSA9PiB7XG5cbiAgICBjb25zdCBbdmlzaWJsZSwgc2V0VmlzaWJsZV0gPSBSZWFjdC51c2VTdGF0ZSh0cnVlKTtcbiAgICBjb25zdCBbY2hhdCwgc2V0Q2hhdF0gPSBSZWFjdC51c2VTdGF0ZShudWxsKTtcblxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHByb3BzLmhhbmRsZS5hcGkgPSBhcGkoKTtcbiAgICB9KTtcblxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHByb3BzLmhhbmRsZS5hcGkgPSBhcGkoKTtcblxuICAgICAgICBsZXQgcGFyc2VkQ29uZmlnID0gVXRpbHMucGFyc2VDb25maWcocHJvcHMuY29uZmlnLCBwcm9wcy52aWV3SWQpO1xuICAgICAgICBldmVudE1hbmFnZXIuYWRkU3Vic2NyaXB0aW9ucyhwYXJzZWRDb25maWcuZXZlbnRIYW5kbGluZ0NvbmZpZywgcHJvcHMuaGFuZGxlLCBwcm9wcy52aWV3SWQpO1xuICAgICAgICBldmVudE1hbmFnZXIuYWRkU3lzdGVtU3Vic2NyaXB0aW9ucyhwcm9wcy52aWV3SWQsIHBhcnNlZENvbmZpZyk7XG5cbiAgICAgICAgbGV0IGV2ZW50ID0gbmV3IEV2ZW50KHByb3BzLmhhbmRsZSwgcHJvcHMudmlld0lkLCBudWxsKTtcbiAgICAgICAgZXZlbnRNYW5hZ2VyLmZpcmVFdmVudChFdmVudFR5cGUuQ09NUE9ORU5UX0xPQUQsIGV2ZW50KTtcblxuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgZXZlbnRNYW5hZ2VyLmNsZWFyQ29tcG9uZW50RXZlbnRMaXN0ZW5lcnMocHJvcHMuaGFuZGxlKTtcbiAgICAgICAgfTtcbiAgICB9LCBbXSk7XG5cbiAgICBjb25zdCBmZXRjaENoYXQgPSAoY2FsZW5kYXJFdmVudEtleSkgPT4ge1xuICAgICAgICBpZiAoVXRpbHMuaXNOdWxsKGNhbGVuZGFyRXZlbnRLZXkpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgc2VuZFJlcXVlc3QoYCR7bG9jYXRpb24gKyAnLycgKyBhcHBsaWNhdGlvbk1hbmFnZXIuZ2V0Q29udGV4dFJvb3QoKX0vY2FsZW5kYXIvYXBpL3YxL2NoYXQvZmV0Y2hNZWV0aW5nQ2hhdEJ5S2V5LyR7Y2FsZW5kYXJFdmVudEtleX1gLFxuICAgICAgICAgICAgKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLmlkKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFN0YW1wIG1lZXRpbmdLZXkgc28gQ2hhdFJvb20ncyBvd24gcmVmcmVzaCAoY3JlYXRlL3ZvdGUvY2xvc2UpIHN0YXlzIG9uIHRoZSBieS1rZXkgbG9va3VwLlxuICAgICAgICAgICAgICAgICAgICBzZXRDaGF0KHsuLi5yZXNwb25zZSwgbWVldGluZ0tleTogY2FsZW5kYXJFdmVudEtleX0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIChlKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihlKTtcbiAgICAgICAgICAgIH0sIHRydWUsIGZhbHNlKTtcbiAgICB9O1xuXG4gICAgY29uc3QgYXBpID0gKCkgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZ2V0IGlkKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBwcm9wcy5jb25maWcuaWQ7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbG9hZERhdGE6IChhY3Rpb25Db25maWcpID0+IHtcbiAgICAgICAgICAgICAgICBsZXQgY2FsZW5kYXJFdmVudEtleSA9IGFjdGlvbkNvbmZpZyAmJiBhY3Rpb25Db25maWcudmFsdWVcbiAgICAgICAgICAgICAgICAgICAgPyBhcHBsaWNhdGlvbk1hbmFnZXIucmVzb2x2ZVBhcmFtZXRlckNvbmZpZ1ZhbHVlKGFjdGlvbkNvbmZpZy52YWx1ZSlcbiAgICAgICAgICAgICAgICAgICAgOiBVdGlscy5wYXJzZUNvbmZpZyhwcm9wcy5jb25maWcsIHByb3BzLnZpZXdJZCkudmFsdWU7XG4gICAgICAgICAgICAgICAgZmV0Y2hDaGF0KGNhbGVuZGFyRXZlbnRLZXkpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlZnJlc2goKSB7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZ2V0Q2hpbGRyZW46ICgpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2V0IHZpc2libGUodikge1xuICAgICAgICAgICAgICAgIHNldFZpc2libGUodik7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2V0IHZhbHVlKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgZmV0Y2hDaGF0KHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPGRpdiBzdHlsZT17e1xuICAgICAgICAgICAgZGlzcGxheTogdmlzaWJsZSA/ICdibG9jaycgOiAnbm9uZScsXG4gICAgICAgICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgICAgICAgaGVpZ2h0OiAnMTAwJScsXG4gICAgICAgICAgICBvdmVyZmxvd1k6ICdhdXRvJ1xuICAgICAgICB9fT5cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAhVXRpbHMuaXNOdWxsKHByb3BzLmNvbmZpZykgJiYgY2hhdCA/XG4gICAgICAgICAgICAgICAgICAgIDxDaGF0Um9vbSBzZWxlY3RlZENoYXQ9e2NoYXR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJTdHlsZT17e2JvcmRlckJvdHRvbTogJ25vbmUnLCBtYXJnaW5Ub3A6ICcxNnB4J319XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGF0VGFiPXt0cnVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhZE9ubHk9e3RydWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb2xsc09ubHk9e1V0aWxzLmdldENvbXBvbmVudEF0dHJpYnV0ZShwcm9wcy5jb25maWcsICdwb2xsc09ubHknLCBmYWxzZSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93QWxsTWVzc2FnZXNGb3JOZXdQYXJ0aWNpcGFudHM9e3RydWV9Lz4gOiBudWxsXG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICk7XG59KTtcblxuZXhwb3J0IGRlZmF1bHQgQ2hhdFZpZXdlcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsU0FBQSxH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
|