@agilemotion/oui-react-js 2.0.26 → 2.0.28
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/AuthImage.js +68 -0
- package/dist/RestService.js +7 -2
- 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 +48 -15
- package/dist/components/TabPanel.js +14 -3
- 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 +40 -7
- 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 +11 -11
- package/dist/components/media/VCRoomWorkspace.js +19 -4
- package/dist/components/media/VideoPlayer.js +61 -7
- package/dist/components/media/chat/ChatRoom.js +37 -28
- package/dist/components/media/chat/PollContainer.js +85 -18
- package/dist/documentDownload.js +79 -0
- package/dist/js/ProcurementMeetings.js +11 -4
- package/dist/view/PortalDashboard.js +6 -5
- package/package.json +1 -1
|
@@ -12,6 +12,7 @@ var _Utils = _interopRequireDefault(require("../../Utils"));
|
|
|
12
12
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
13
13
|
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
14
14
|
const CheckboxWrapper = /*#__PURE__*/_react.default.memo(props => {
|
|
15
|
+
var _props$config$attribu, _props$config$attribu2;
|
|
15
16
|
const base = props.base;
|
|
16
17
|
return /*#__PURE__*/_react.default.createElement(_FormControlLabel.default, {
|
|
17
18
|
style: {
|
|
@@ -30,7 +31,7 @@ const CheckboxWrapper = /*#__PURE__*/_react.default.memo(props => {
|
|
|
30
31
|
size: "small",
|
|
31
32
|
inputProps: props.inputProps
|
|
32
33
|
}),
|
|
33
|
-
label: props.config.attributes
|
|
34
|
+
label: (_props$config$attribu = (_props$config$attribu2 = props.config.attributes) === null || _props$config$attribu2 === void 0 ? void 0 : _props$config$attribu2.label) !== null && _props$config$attribu !== void 0 ? _props$config$attribu : ''
|
|
34
35
|
});
|
|
35
36
|
});
|
|
36
37
|
const Checkbox = /*#__PURE__*/_react.default.memo(props => {
|
|
@@ -41,4 +42,4 @@ const Checkbox = /*#__PURE__*/_react.default.memo(props => {
|
|
|
41
42
|
}, props)));
|
|
42
43
|
});
|
|
43
44
|
var _default = exports.default = Checkbox;
|
|
44
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
45
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9DaGVja2JveCIsIl9Gb3JtQ29udHJvbExhYmVsIiwiX0Jhc2VGaWVsZCIsIl9VdGlscyIsImUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIl9leHRlbmRzIiwiT2JqZWN0IiwiYXNzaWduIiwiYmluZCIsIm4iLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ0IiwiciIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImFwcGx5IiwiQ2hlY2tib3hXcmFwcGVyIiwiUmVhY3QiLCJtZW1vIiwicHJvcHMiLCJfcHJvcHMkY29uZmlnJGF0dHJpYnUiLCJfcHJvcHMkY29uZmlnJGF0dHJpYnUyIiwiYmFzZSIsImNyZWF0ZUVsZW1lbnQiLCJzdHlsZSIsIm1hcmdpbkJvdHRvbSIsImNvbnRyb2wiLCJjaGVja2VkIiwidmFsdWUiLCJVdGlscyIsIm1lcmdlU3R5bGVzIiwiY29uZmlnIiwia2V5IiwiZGlzYWJsZWQiLCJvbkNoYW5nZSIsImhhbmRsZVZhbHVlQ2hhbmdlIiwidGFyZ2V0IiwiZXJyb3IiLCJlcnJvck1lc3NhZ2UiLCJzaXplIiwiaW5wdXRQcm9wcyIsImxhYmVsIiwiYXR0cmlidXRlcyIsIkNoZWNrYm94IiwiQmFzZUZpZWxkIiwiaGFuZGxlIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vQ2hlY2tib3guanN4Il0sInNvdXJjZXNDb250ZW50IjpbIu+7v2ltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgQ2hlY2tib3hDb21wb25lbnQgZnJvbSAnQG11aS9tYXRlcmlhbC9DaGVja2JveCc7XG5pbXBvcnQgRm9ybUNvbnRyb2xMYWJlbCBmcm9tICdAbXVpL21hdGVyaWFsL0Zvcm1Db250cm9sTGFiZWwnO1xuaW1wb3J0IHtCYXNlRmllbGR9IGZyb20gXCIuL0Jhc2VGaWVsZFwiO1xuaW1wb3J0IFV0aWxzIGZyb20gXCIuLi8uLi9VdGlsc1wiO1xuXG5jb25zdCBDaGVja2JveFdyYXBwZXIgPSBSZWFjdC5tZW1vKChwcm9wcykgPT4ge1xuICAgIGNvbnN0IGJhc2UgPSBwcm9wcy5iYXNlO1xuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPEZvcm1Db250cm9sTGFiZWxcbiAgICAgICAgICAgIHN0eWxlPXt7bWFyZ2luQm90dG9tOiAwfX1cbiAgICAgICAgICAgIGNvbnRyb2w9e1xuICAgICAgICAgICAgICAgIDxDaGVja2JveENvbXBvbmVudFxuICAgICAgICAgICAgICAgICAgICBjaGVja2VkPXtiYXNlLnZhbHVlIHx8IGZhbHNlfVxuICAgICAgICAgICAgICAgICAgICBzdHlsZT17VXRpbHMubWVyZ2VTdHlsZXMoe30sIHByb3BzLmNvbmZpZyl9XG4gICAgICAgICAgICAgICAgICAgIGtleT17cHJvcHMua2V5fVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17YmFzZS52YWx1ZSB8fCBmYWxzZX1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Jhc2UuZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtcbiAgICAgICAgICAgICAgICAgICAgICAgIChlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZS5oYW5kbGVWYWx1ZUNoYW5nZShlLnRhcmdldC5jaGVja2VkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlcnJvcj17cHJvcHMuYmFzZS5lcnJvck1lc3NhZ2V9XG4gICAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgIGlucHV0UHJvcHM9e3Byb3BzLmlucHV0UHJvcHN9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxhYmVsPXtwcm9wcy5jb25maWcuYXR0cmlidXRlcz8ubGFiZWwgPz8gJyd9XG4gICAgICAgIC8+XG4gICAgKTtcbn0pO1xuXG5jb25zdCBDaGVja2JveCA9IFJlYWN0Lm1lbW8oKHByb3BzKSA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgICAgPEJhc2VGaWVsZCB7Li4ucHJvcHN9IGhhbmRsZT17cHJvcHMuaGFuZGxlfT5cbiAgICAgICAgICAgIHtiYXNlID0+XG4gICAgICAgICAgICAgICAgPENoZWNrYm94V3JhcHBlclxuICAgICAgICAgICAgICAgICAgICBiYXNlPXtiYXNlfVxuICAgICAgICAgICAgICAgICAgICB7Li4ucHJvcHN9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDwvQ2hlY2tib3hXcmFwcGVyPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L0Jhc2VGaWVsZD5cbiAgICApO1xufSk7XG5cbmV4cG9ydCBkZWZhdWx0IENoZWNrYm94OyJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUMsSUFBQUEsTUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0QsSUFBQUMsU0FBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsaUJBQUEsR0FBQUgsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFHLFVBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLE1BQUEsR0FBQUwsc0JBQUEsQ0FBQUMsT0FBQTtBQUFnQyxTQUFBRCx1QkFBQU0sQ0FBQSxXQUFBQSxDQUFBLElBQUFBLENBQUEsQ0FBQUMsVUFBQSxHQUFBRCxDQUFBLEtBQUFFLE9BQUEsRUFBQUYsQ0FBQTtBQUFBLFNBQUFHLFNBQUEsV0FBQUEsUUFBQSxHQUFBQyxNQUFBLENBQUFDLE1BQUEsR0FBQUQsTUFBQSxDQUFBQyxNQUFBLENBQUFDLElBQUEsZUFBQUMsQ0FBQSxhQUFBUCxDQUFBLE1BQUFBLENBQUEsR0FBQVEsU0FBQSxDQUFBQyxNQUFBLEVBQUFULENBQUEsVUFBQVUsQ0FBQSxHQUFBRixTQUFBLENBQUFSLENBQUEsWUFBQVcsQ0FBQSxJQUFBRCxDQUFBLE9BQUFFLGNBQUEsQ0FBQUMsSUFBQSxDQUFBSCxDQUFBLEVBQUFDLENBQUEsTUFBQUosQ0FBQSxDQUFBSSxDQUFBLElBQUFELENBQUEsQ0FBQUMsQ0FBQSxhQUFBSixDQUFBLEtBQUFKLFFBQUEsQ0FBQVcsS0FBQSxPQUFBTixTQUFBO0FBRWhDLE1BQU1PLGVBQWUsZ0JBQUdDLGNBQUssQ0FBQ0MsSUFBSSxDQUFFQyxLQUFLLElBQUs7RUFBQSxJQUFBQyxxQkFBQSxFQUFBQyxzQkFBQTtFQUMxQyxNQUFNQyxJQUFJLEdBQUdILEtBQUssQ0FBQ0csSUFBSTtFQUV2QixvQkFDSTVCLE1BQUEsQ0FBQVMsT0FBQSxDQUFBb0IsYUFBQSxDQUFDekIsaUJBQUEsQ0FBQUssT0FBZ0I7SUFDYnFCLEtBQUssRUFBRTtNQUFDQyxZQUFZLEVBQUU7SUFBQyxDQUFFO0lBQ3pCQyxPQUFPLGVBQ0hoQyxNQUFBLENBQUFTLE9BQUEsQ0FBQW9CLGFBQUEsQ0FBQzFCLFNBQUEsQ0FBQU0sT0FBaUI7TUFDZHdCLE9BQU8sRUFBRUwsSUFBSSxDQUFDTSxLQUFLLElBQUksS0FBTTtNQUM3QkosS0FBSyxFQUFFSyxjQUFLLENBQUNDLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRVgsS0FBSyxDQUFDWSxNQUFNLENBQUU7TUFDM0NDLEdBQUcsRUFBRWIsS0FBSyxDQUFDYSxHQUFJO01BQ2ZKLEtBQUssRUFBRU4sSUFBSSxDQUFDTSxLQUFLLElBQUksS0FBTTtNQUMzQkssUUFBUSxFQUFFWCxJQUFJLENBQUNXLFFBQVM7TUFDeEJDLFFBQVEsRUFDSGpDLENBQUMsSUFBSztRQUNIcUIsSUFBSSxDQUFDYSxpQkFBaUIsQ0FBQ2xDLENBQUMsQ0FBQ21DLE1BQU0sQ0FBQ1QsT0FBTyxDQUFDO01BQzVDLENBQ0g7TUFDRFUsS0FBSyxFQUFFbEIsS0FBSyxDQUFDRyxJQUFJLENBQUNnQixZQUFhO01BQy9CQyxJQUFJLEVBQUMsT0FBTztNQUNaQyxVQUFVLEVBQUVyQixLQUFLLENBQUNxQjtJQUFXLENBQ2hDLENBQ0o7SUFDREMsS0FBSyxHQUFBckIscUJBQUEsSUFBQUMsc0JBQUEsR0FBRUYsS0FBSyxDQUFDWSxNQUFNLENBQUNXLFVBQVUsY0FBQXJCLHNCQUFBLHVCQUF2QkEsc0JBQUEsQ0FBeUJvQixLQUFLLGNBQUFyQixxQkFBQSxjQUFBQSxxQkFBQSxHQUFJO0VBQUcsQ0FDL0MsQ0FBQztBQUVWLENBQUMsQ0FBQztBQUVGLE1BQU11QixRQUFRLGdCQUFHMUIsY0FBSyxDQUFDQyxJQUFJLENBQUVDLEtBQUssSUFBSztFQUNuQyxvQkFDSXpCLE1BQUEsQ0FBQVMsT0FBQSxDQUFBb0IsYUFBQSxDQUFDeEIsVUFBQSxDQUFBNkMsU0FBUyxFQUFBeEMsUUFBQSxLQUFLZSxLQUFLO0lBQUUwQixNQUFNLEVBQUUxQixLQUFLLENBQUMwQjtFQUFPLElBQ3RDdkIsSUFBSSxpQkFDRDVCLE1BQUEsQ0FBQVMsT0FBQSxDQUFBb0IsYUFBQSxDQUFDUCxlQUFlLEVBQUFaLFFBQUE7SUFDWmtCLElBQUksRUFBRUE7RUFBSyxHQUNQSCxLQUFLLENBRUksQ0FFZCxDQUFDO0FBRXBCLENBQUMsQ0FBQztBQUFDLElBQUEyQixRQUFBLEdBQUFDLE9BQUEsQ0FBQTVDLE9BQUEsR0FFWXdDLFFBQVEiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
@@ -548,11 +548,11 @@ const FieldSet = /*#__PURE__*/_react.default.memo(props => {
|
|
|
548
548
|
display: visible ? 'block' : 'none',
|
|
549
549
|
margin: '0',
|
|
550
550
|
minWidth: '320px',
|
|
551
|
-
padding: '4px'
|
|
551
|
+
padding: '4px 0'
|
|
552
552
|
}, props.config)
|
|
553
553
|
}, !_Utils.default.isNull(props.config.attributes) && !_Utils.default.isNull(props.config.attributes['label']) ? /*#__PURE__*/_react.default.createElement("div", {
|
|
554
554
|
className: 'fieldSetTitle'
|
|
555
555
|
}, props.config.attributes['label']) : null, !_Utils.default.isNull(fieldGrid) ? render(props.config) : null);
|
|
556
556
|
});
|
|
557
557
|
var _default = exports.default = FieldSet;
|
|
558
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9VdGlscyIsIl9PYnNlcnZhYmxlIiwiX1RleHRGaWVsZCIsIl9DdXJyZW5jeUZpZWxkIiwiX0FkZHJlc3NTZWFyY2giLCJfTG9va3VwRmllbGQiLCJfTXVsdGlMb29rdXBGaWVsZCIsIl9TZWxlY3RJdGVtIiwiX0RhdGVQaWNrZXIiLCJfVGltZVBpY2tlciIsIl9DaGVja2JveCIsIl9MYWJlbEZpZWxkIiwiX1VwbG9hZEZpZWxkIiwiX1RyYW5zZmVyTGlzdCIsIl9HcmlkRmllbGQiLCJfSW1hZ2VFZGl0b3IiLCJfUmFkaW9Hcm91cCIsIl9FdmVudCIsIl9FdmVudFR5cGUiLCJfUmVzdFNlcnZpY2UiLCJfU2lnbmF0dXJlVGVtcGxhdGVEZXNpZ25lckZpZWxkIiwiX0FwcGxpY2F0aW9uTWFuYWdlciIsIl9CdXR0b24iLCJfSHRtbFBhbmVsIiwiX0F1dG9Db21wbGV0ZSIsIl9NdWx0aUZpbGVVcGxvYWRGaWVsZCIsIl9JY29uIiwiX1N3aXRjaCIsIl9JY29uRmllbGQiLCJfRG9jdW1lbnRUZW1wbGF0ZURlc2lnbmVyIiwiX0R5bmFtaWNKUyIsIl9MYXlvdXQiLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJGaWVsZFNldCIsIlJlYWN0IiwibWVtbyIsInByb3BzIiwiZmllbGRHcmlkIiwidXNlU3RhdGUiLCJVdGlscyIsImdldEZpZWxkR3JpZCIsImNvbmZpZyIsImF0dHJpYnV0ZXMiLCJmaWVsZHMiLCJjb21wb25lbnRIYW5kbGVzIiwidmlzaWJsZSIsInNldFZpc2libGUiLCJjcmVhdGVDb21wb25lbnRIYW5kbGUiLCJmaWVsZCIsImlzTnVsbCIsImlkIiwiaGFuZGxlIiwidXNlRWZmZWN0IiwiYXBpIiwidXNlTGF5b3V0RWZmZWN0IiwicmVmcmVzaCIsInBhcnNlZENvbmZpZyIsInBhcnNlQ29uZmlnIiwidmlld0lkIiwiZXZlbnRNYW5hZ2VyIiwiYWRkU3Vic2NyaXB0aW9ucyIsImV2ZW50SGFuZGxpbmdDb25maWciLCJhZGRTeXN0ZW1TdWJzY3JpcHRpb25zIiwiZGlzYWJsZWQiLCJ1cGRhdGVDb21wb25lbnREaXNhYmxlZFN0YXRlIiwiZmlyZUNoYW5nZUV2ZW50IiwiZXZlbnQiLCJFdmVudCIsImZpcmVFdmVudCIsIkV2ZW50VHlwZSIsIlZBTFVFX0NIQU5HRSIsInByb3BlcnRpZXMiLCJPYmplY3QiLCJnZXRPd25Qcm9wZXJ0eU5hbWVzIiwicHJvcGVydHkiLCJjb21wb25lbnRIYW5kbGUiLCJyZWZyZXNoQ29tcG9uZW50cyIsInJlbmRlckNvbXBvbmVudCIsImNvbXBvbmVudCIsImZpZWxkVHlwZSIsImNvbnNvbGUiLCJlcnJvciIsImlzRGlzYWJsZWQiLCJldmFsdWF0ZUJvb2xlYW5FeHByZXNzaW9uIiwiY3JlYXRlRWxlbWVudCIsImtleUhhbmRsZXIiLCJmb3JtIiwicGFyZW50SWQiLCJ2YWx1ZUNoYW5nZUhhbmRsZXIiLCJ2YWx1ZXMiLCJ0eXBlIiwibXVsdGlsaW5lIiwic3R5bGUiLCJMYXlvdXQiLCJmaWVsZERhdGFCaW5kaW5ncyIsImZpZWxkTmFtZXMiLCJwdXNoIiwiZGF0YUJpbmRpbmciLCJjbGVhciIsImNvbXBvbmVudFJlZiIsInZhbHVlIiwiZ2V0Q2hpbGRyZW4iLCJjaGlsZHJlbiIsIm1vZGVsIiwiZm9ybVZhbHVlIiwibG9hZERhdGEiLCJhY3Rpb25Db25maWciLCJhY3Rpb25FdmVudCIsInNlcnZpY2UiLCJkYXRhU2VydmljZSIsImNvbXBvbmVudFZhbHVlIiwiaXNFdmVudERhdGEiLCJ0b1N0cmluZyIsInN0YXJ0c1dpdGgiLCJpc0VwcmVzc2lvbiIsImFwcGxpY2F0aW9uTWFuYWdlciIsImlzRXhwcmVzc2lvbiIsInZhbCIsInJlc29sdmVFeHByZXNzaW9uVmFsdWUiLCJkYXRhIiwiYmluZERhdGEiLCJEQVRBX0FSUklWRUQiLCJtZXRob2QiLCJpbnZva2VScGMiLCJpbnZva2VSZXN0IiwicmVmIiwiY3VycmVudCIsInRoZW4iLCJyZXN1bHQiLCJjYXRjaCIsInB1Ymxpc2hFcnJvck1lc3NhZ2UiLCJyZW5kZXIiLCJmaWVsZFNldCIsImxlbmd0aCIsInJvd3MiLCJtYXAiLCJyb3ciLCJpIiwiY2xhc3NOYW1lIiwia2V5IiwibWFyZ2luTGVmdCIsIm1hcmdpblJpZ2h0IiwiaW5kZXgiLCJfZmllbGQkYXR0cmlidXRlcyIsIl9maWVsZCRhdHRyaWJ1dGVzMiIsImNvbHNwYW4iLCJ3aWR0aCIsImNvbHNwYW5WYWwiLCJnZXRGaWVsZENvbHNwYW4iLCJtYXhDb2xQZXJSb3ciLCJDT0xfR0FQIiwibWF4Q29sIiwiZ2FwT2Zmc2V0IiwiY29udGFpbmVyU3R5bGUiLCJwYWRkaW5nTGVmdCIsInBhZGRpbmdSaWdodCIsIm1pbldpZHRoIiwiY29uY2F0IiwibWVyZ2VPYmplY3RzIiwibWVyZ2VTdHlsZXMiLCJkaXNwbGF5IiwibWFyZ2luIiwicGFkZGluZyIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9mb3JtL0ZpZWxkU2V0LmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyLvu79pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFV0aWxzIGZyb20gJy4uLy4uL1V0aWxzJztcbmltcG9ydCBldmVudE1hbmFnZXIgZnJvbSAnLi4vLi4vZXZlbnQvT2JzZXJ2YWJsZSc7XG5pbXBvcnQgVGV4dEZpZWxkIGZyb20gJy4vVGV4dEZpZWxkJztcbmltcG9ydCBDdXJyZW5jeUZpZWxkIGZyb20gJy4vQ3VycmVuY3lGaWVsZCc7XG5pbXBvcnQgQWRkcmVzc1NlYXJjaCBmcm9tICcuL0FkZHJlc3NTZWFyY2gnO1xuaW1wb3J0IExvb2t1cEZpZWxkIGZyb20gJy4vTG9va3VwRmllbGQnO1xuaW1wb3J0IE11bHRpTG9va3VwRmllbGQgZnJvbSAnLi9NdWx0aUxvb2t1cEZpZWxkJztcbmltcG9ydCBTZWxlY3RJdGVtIGZyb20gJy4vU2VsZWN0SXRlbSc7XG5pbXBvcnQgRGF0ZVBpY2tlciBmcm9tICcuL0RhdGVQaWNrZXInO1xuaW1wb3J0IFRpbWVQaWNrZXIgZnJvbSAnLi9UaW1lUGlja2VyJztcbmltcG9ydCBDaGVja2JveCBmcm9tICcuL0NoZWNrYm94JztcbmltcG9ydCBMYWJlbEZpZWxkIGZyb20gJy4vTGFiZWxGaWVsZCc7XG5pbXBvcnQgVXBsb2FkRmllbGQgZnJvbSAnLi9VcGxvYWRGaWVsZCc7XG5pbXBvcnQgVHJhbnNmZXJMaXN0IGZyb20gJy4vVHJhbnNmZXJMaXN0JztcbmltcG9ydCBHcmlkRmllbGQgZnJvbSAnLi9HcmlkRmllbGQnO1xuaW1wb3J0IEltYWdlRWRpdG9yIGZyb20gJy4vSW1hZ2VFZGl0b3InO1xuaW1wb3J0IFJhZGlvR3JvdXAgZnJvbSAnLi9SYWRpb0dyb3VwJztcbmltcG9ydCBFdmVudCBmcm9tICcuLi8uLi9ldmVudC9FdmVudCc7XG5pbXBvcnQgRXZlbnRUeXBlIGZyb20gJy4uLy4uL2V2ZW50L0V2ZW50VHlwZSc7XG5pbXBvcnQge2ludm9rZVJlc3QsIGludm9rZVJwY30gZnJvbSAnLi4vLi4vUmVzdFNlcnZpY2UnO1xuaW1wb3J0IFNpZ25hdHVyZVRlbXBsYXRlRGVzaWduZXJGaWVsZCBmcm9tICcuL1NpZ25hdHVyZVRlbXBsYXRlRGVzaWduZXJGaWVsZCc7XG5pbXBvcnQgYXBwbGljYXRpb25NYW5hZ2VyIGZyb20gJy4uLy4uL0FwcGxpY2F0aW9uTWFuYWdlcic7XG5pbXBvcnQgJy4vZmllbGRzZXQuY3NzJztcbmltcG9ydCBCdXR0b24gZnJvbSAnLi4vQnV0dG9uJztcbmltcG9ydCBIdG1sUGFuZWwgZnJvbSAnLi4vSHRtbFBhbmVsJztcbmltcG9ydCBBdXRvQ29tcGxldGUgZnJvbSAnLi9BdXRvQ29tcGxldGUnO1xuaW1wb3J0IE11bHRpRmlsZVVwbG9hZEZpZWxkIGZyb20gJy4vTXVsdGlGaWxlVXBsb2FkRmllbGQnO1xuaW1wb3J0IEljb24gZnJvbSAnLi4vSWNvbic7XG5pbXBvcnQgU3dpdGNoIGZyb20gJy4vU3dpdGNoJztcbmltcG9ydCBJY29uRmllbGQgZnJvbSAnLi9JY29uRmllbGQnO1xuaW1wb3J0IERvY3VtZW50VGVtcGxhdGVEZXNpZ25lciBmcm9tIFwiLi4vRG9jdW1lbnRUZW1wbGF0ZURlc2lnbmVyXCI7XG5pbXBvcnQgZHluYW1pY0pTIGZyb20gXCIuLi8uLi9EeW5hbWljSlNcIjtcbmltcG9ydCB7TGF5b3V0fSBmcm9tIFwiLi4vbGF5b3V0L0xheW91dFwiO1xuXG5jb25zdCBGaWVsZFNldCA9IFJlYWN0Lm1lbW8oKHByb3BzKSA9PiB7XG4gICAgY29uc3QgW2ZpZWxkR3JpZF0gPSBSZWFjdC51c2VTdGF0ZShVdGlscy5nZXRGaWVsZEdyaWQocHJvcHMuY29uZmlnLmF0dHJpYnV0ZXMsIHByb3BzLmNvbmZpZy5maWVsZHMpKTtcbiAgICBjb25zdCBbY29tcG9uZW50SGFuZGxlc10gPSBSZWFjdC51c2VTdGF0ZSh7fSk7XG4gICAgY29uc3QgW3Zpc2libGUsIHNldFZpc2libGVdID0gUmVhY3QudXNlU3RhdGUoZmFsc2UpO1xuXG4gICAgY29uc3QgY3JlYXRlQ29tcG9uZW50SGFuZGxlID0gKGZpZWxkKSA9PiB7XG4gICAgICAgIGlmIChVdGlscy5pc051bGwoY29tcG9uZW50SGFuZGxlc1tmaWVsZC5pZF0pKSB7XG4gICAgICAgICAgICBsZXQgaGFuZGxlID0ge307XG4gICAgICAgICAgICBjb21wb25lbnRIYW5kbGVzW2ZpZWxkLmlkXSA9IGhhbmRsZTtcbiAgICAgICAgICAgIHJldHVybiBoYW5kbGU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY29tcG9uZW50SGFuZGxlc1tmaWVsZC5pZF07XG4gICAgfTtcblxuICAgIFJlYWN0LnVzZUVmZmVjdChcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgcHJvcHMuaGFuZGxlLmFwaSA9IGFwaSgpO1xuICAgICAgICB9KTtcblxuICAgIFJlYWN0LnVzZUxheW91dEVmZmVjdChcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgcHJvcHMuaGFuZGxlLmFwaSA9IGFwaSgpO1xuICAgICAgICB9LCBbXSk7XG5cbiAgICBSZWFjdC51c2VFZmZlY3QoXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICAgIHByb3BzLmhhbmRsZS5hcGkgPSBhcGkoKTtcbiAgICAgICAgICAgIHByb3BzLmhhbmRsZS5hcGkucmVmcmVzaCgpO1xuICAgICAgICAgICAgbGV0IHBhcnNlZENvbmZpZyA9IFV0aWxzLnBhcnNlQ29uZmlnKHByb3BzLmNvbmZpZywgcHJvcHMudmlld0lkKTtcbiAgICAgICAgICAgIGV2ZW50TWFuYWdlci5hZGRTdWJzY3JpcHRpb25zKHBhcnNlZENvbmZpZy5ldmVudEhhbmRsaW5nQ29uZmlnLCBwcm9wcy5oYW5kbGUsIHByb3BzLnZpZXdJZCk7XG4gICAgICAgICAgICBldmVudE1hbmFnZXIuYWRkU3lzdGVtU3Vic2NyaXB0aW9ucyhwcm9wcy52aWV3SWQsIHBhcnNlZENvbmZpZyk7XG4gICAgICAgIH0sIFtdKTtcblxuICAgIFJlYWN0LnVzZUVmZmVjdChcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwocHJvcHMuZGlzYWJsZWQpKSB7XG4gICAgICAgICAgICAgICAgdXBkYXRlQ29tcG9uZW50RGlzYWJsZWRTdGF0ZShwcm9wcy5kaXNhYmxlZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIFtwcm9wcy5kaXNhYmxlZF0pO1xuXG4gICAgZnVuY3Rpb24gZmlyZUNoYW5nZUV2ZW50KCkge1xuICAgICAgICBsZXQgZXZlbnQgPSBuZXcgRXZlbnQocHJvcHMuaGFuZGxlLCBwcm9wcy52aWV3SWQpO1xuICAgICAgICBldmVudE1hbmFnZXIuZmlyZUV2ZW50KEV2ZW50VHlwZS5WQUxVRV9DSEFOR0UsIGV2ZW50KTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiB1cGRhdGVDb21wb25lbnREaXNhYmxlZFN0YXRlKGRpc2FibGVkKSB7XG4gICAgICAgIGxldCBwcm9wZXJ0aWVzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoY29tcG9uZW50SGFuZGxlcyk7XG4gICAgICAgIGZvciAoY29uc3QgcHJvcGVydHkgb2YgcHJvcGVydGllcykge1xuICAgICAgICAgICAgbGV0IGNvbXBvbmVudEhhbmRsZSA9IGNvbXBvbmVudEhhbmRsZXNbcHJvcGVydHldO1xuICAgICAgICAgICAgY29tcG9uZW50SGFuZGxlLmFwaS5kaXNhYmxlZCA9IGRpc2FibGVkO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcmVmcmVzaENvbXBvbmVudHMoKSB7XG4gICAgICAgIGxldCBwcm9wZXJ0aWVzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoY29tcG9uZW50SGFuZGxlcyk7XG4gICAgICAgIGZvciAoY29uc3QgcHJvcGVydHkgb2YgcHJvcGVydGllcykge1xuICAgICAgICAgICAgbGV0IGNvbXBvbmVudEhhbmRsZSA9IGNvbXBvbmVudEhhbmRsZXNbcHJvcGVydHldO1xuICAgICAgICAgICAgaWYoY29tcG9uZW50SGFuZGxlLmFwaSkge1xuICAgICAgICAgICAgICAgIGNvbXBvbmVudEhhbmRsZS5hcGkucmVmcmVzaCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcmVuZGVyQ29tcG9uZW50KGNvbXBvbmVudCkge1xuICAgICAgICBpZiAoIWNvbXBvbmVudC5maWVsZFR5cGUpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0VSUk9SIFJFTkRJTkcgQ09NUE9ORU5UIDogJyArIGNvbXBvbmVudC5pZCArICcgLSBOTyBGSUVMRCBUWVBFIFNQRUNJRklFRCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGlzRGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgaWYgKCFVdGlscy5pc051bGwocHJvcHMuY29uZmlnKSAmJiAhVXRpbHMuaXNOdWxsKHByb3BzLmNvbmZpZy5kaXNhYmxlZCkpIHtcbiAgICAgICAgICAgIGlzRGlzYWJsZWQgPSBVdGlscy5ldmFsdWF0ZUJvb2xlYW5FeHByZXNzaW9uKHByb3BzLmNvbmZpZy5kaXNhYmxlZCwgcHJvcHMuY29uZmlnLmlkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpc0Rpc2FibGVkKSB7XG4gICAgICAgICAgICBpZiAoVXRpbHMuaXNOdWxsKGNvbXBvbmVudC5kaXNhYmxlZCkpIHtcbiAgICAgICAgICAgICAgICBjb21wb25lbnQuZGlzYWJsZWQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgc3dpdGNoIChjb21wb25lbnQuZmllbGRUeXBlKSB7XG4gICAgICAgICAgICBjYXNlICdMT09LVVAnOlxuICAgICAgICAgICAgICAgIHJldHVybiA8TG9va3VwRmllbGQga2V5SGFuZGxlcj17cHJvcHMua2V5SGFuZGxlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZz17Y29tcG9uZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybT17cHJvcHMuZm9ybX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudElkPXtwcm9wcy5wYXJlbnRJZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZUNoYW5nZUhhbmRsZXI9eygpID0+IGZpcmVDaGFuZ2VFdmVudCgpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzPXtwcm9wcy52YWx1ZXN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3SWQ9e3Byb3BzLnZpZXdJZH1cbiAgICAgICAgICAgICAgICAvPjtcbiAgICAgICAgICAgIGNhc2UgJ01VTFRJX0xPT0tVUCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIDxNdWx0aUxvb2t1cEZpZWxkIGtleUhhbmRsZXI9e3Byb3BzLmtleUhhbmRsZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZz17Y29tcG9uZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtPXtwcm9wcy5mb3JtfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRJZD17cHJvcHMucGFyZW50SWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlQ2hhbmdlSGFuZGxlcj17KCkgPT4gZmlyZUNoYW5nZUV2ZW50KCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcz17cHJvcHMudmFsdWVzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3SWQ9e3Byb3BzLnZpZXdJZH1cbiAgICAgICAgICAgICAgICAvPjtcbiAgICAgICAgICAgIGNhc2UgJ1RFWFRfRklFTEQnOlxuICAgICAgICAgICAgICAgIHJldHVybiA8VGV4dEZpZWxkIGtleUhhbmRsZXI9e3Byb3BzLmtleUhhbmRsZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnPXtjb21wb25lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVDaGFuZ2VIYW5kbGVyPXsoKSA9PiBmaXJlQ2hhbmdlRXZlbnQoKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtPXtwcm9wcy5mb3JtfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudElkPXtwcm9wcy5wYXJlbnRJZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGU9e2NyZWF0ZUNvbXBvbmVudEhhbmRsZShjb21wb25lbnQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcz17cHJvcHMudmFsdWVzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdJZD17cHJvcHMudmlld0lkfVxuICAgICAgICAgICAgICAgIC8+O1xuICAgICAgICAgICAgY2FzZSAnQ1VSUkVOQ1knOlxuICAgICAgICAgICAgICAgIHJldHVybiA8Q3VycmVuY3lGaWVsZCBrZXlIYW5kbGVyPXtwcm9wcy5rZXlIYW5kbGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWc9e2NvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVDaGFuZ2VIYW5kbGVyPXsoKSA9PiBmaXJlQ2hhbmdlRXZlbnQoKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybT17cHJvcHMuZm9ybX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50SWQ9e3Byb3BzLnBhcmVudElkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGU9e2NyZWF0ZUNvbXBvbmVudEhhbmRsZShjb21wb25lbnQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9e3Byb3BzLnZhbHVlc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9XG4gICAgICAgICAgICAgICAgLz47XG4gICAgICAgICAgICBjYXNlICdQQVNTV09SRCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIDxUZXh0RmllbGQga2V5SGFuZGxlcj17cHJvcHMua2V5SGFuZGxlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWc9e2NvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZUNoYW5nZUhhbmRsZXI9eygpID0+IGZpcmVDaGFuZ2VFdmVudCgpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm09e3Byb3BzLmZvcm19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT17J3Bhc3N3b3JkJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRJZD17cHJvcHMucGFyZW50SWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlPXtjcmVhdGVDb21wb25lbnRIYW5kbGUoY29tcG9uZW50KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9e3Byb3BzLnZhbHVlc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3SWQ9e3Byb3BzLnZpZXdJZH1cbiAgICAgICAgICAgICAgICAvPjtcbiAgICAgICAgICAgIGNhc2UgJ1RFWFRfQVJFQSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIDxUZXh0RmllbGQga2V5SGFuZGxlcj17cHJvcHMua2V5SGFuZGxlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWc9e2NvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdWx0aWxpbmU9e3RydWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVDaGFuZ2VIYW5kbGVyPXsoKSA9PiBmaXJlQ2hhbmdlRXZlbnQoKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtPXtwcm9wcy5mb3JtfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudElkPXtwcm9wcy5wYXJlbnRJZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGU9e2NyZWF0ZUNvbXBvbmVudEhhbmRsZShjb21wb25lbnQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcz17cHJvcHMudmFsdWVzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdJZD17cHJvcHMudmlld0lkfVxuICAgICAgICAgICAgICAgIC8+O1xuICAgICAgICAgICAgY2FzZSAnQUREUkVTU19TRUFSQ0gnOlxuICAgICAgICAgICAgICAgIHJldHVybiA8QWRkcmVzc1NlYXJjaCBrZXlIYW5kbGVyPXtwcm9wcy5rZXlIYW5kbGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWc9e2NvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGlsaW5lPXt0cnVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZUNoYW5nZUhhbmRsZXI9eygpID0+IGZpcmVDaGFuZ2VFdmVudCgpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtPXtwcm9wcy5mb3JtfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRJZD17cHJvcHMucGFyZW50SWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcz17cHJvcHMudmFsdWVzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3SWQ9e3Byb3BzLnZpZXdJZH1cbiAgICAgICAgICAgICAgICAvPjtcbiAgICAgICAgICAgIGNhc2UgJ1NFTEVDVCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIDxTZWxlY3RJdGVtIGtleUhhbmRsZXI9e3Byb3BzLmtleUhhbmRsZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZz17Y29tcG9uZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtPXtwcm9wcy5mb3JtfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRJZD17cHJvcHMucGFyZW50SWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlQ2hhbmdlSGFuZGxlcj17KCkgPT4gZmlyZUNoYW5nZUV2ZW50KCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcz17cHJvcHMudmFsdWVzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3SWQ9e3Byb3BzLnZpZXdJZH1cbiAgICAgICAgICAgICAgICAvPjtcbiAgICAgICAgICAgIGNhc2UgJ0RBVEUnOlxuICAgICAgICAgICAgICAgIHJldHVybiA8RGF0ZVBpY2tlciBrZXlIYW5kbGVyPXtwcm9wcy5rZXlIYW5kbGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWc9e2NvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybT17cHJvcHMuZm9ybX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50SWQ9e3Byb3BzLnBhcmVudElkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGU9e2NyZWF0ZUNvbXBvbmVudEhhbmRsZShjb21wb25lbnQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZUNoYW5nZUhhbmRsZXI9eygpID0+IGZpcmVDaGFuZ2VFdmVudCgpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9e3Byb3BzLnZhbHVlc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9XG4gICAgICAgICAgICAgICAgLz47XG4gICAgICAgICAgICBjYXNlICdBVVRPX0NPTVBMRVRFJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gPEF1dG9Db21wbGV0ZSBrZXlIYW5kbGVyPXtwcm9wcy5rZXlIYW5kbGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZz17Y29tcG9uZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm09e3Byb3BzLmZvcm19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50SWQ9e3Byb3BzLnBhcmVudElkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVDaGFuZ2VIYW5kbGVyPXsoKSA9PiBmaXJlQ2hhbmdlRXZlbnQoKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9e3Byb3BzLnZhbHVlc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3SWQ9e3Byb3BzLnZpZXdJZH1cbiAgICAgICAgICAgICAgICAvPjtcbiAgICAgICAgICAgIGNhc2UgJ0NIRUNLQk9YJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gPENoZWNrYm94IGtleUhhbmRsZXI9e3Byb3BzLmtleUhhbmRsZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWc9e2NvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm09e3Byb3BzLmZvcm19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRJZD17cHJvcHMucGFyZW50SWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGU9e2NyZWF0ZUNvbXBvbmVudEhhbmRsZShjb21wb25lbnQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVDaGFuZ2VIYW5kbGVyPXsoKSA9PiBmaXJlQ2hhbmdlRXZlbnQoKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcz17cHJvcHMudmFsdWVzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9XG4gICAgICAgICAgICAgICAgLz47XG4gICAgICAgICAgICBjYXNlICdTV0lUQ0gnOlxuICAgICAgICAgICAgICAgIHJldHVybiA8U3dpdGNoIGtleUhhbmRsZXI9e3Byb3BzLmtleUhhbmRsZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnPXtjb21wb25lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybT17cHJvcHMuZm9ybX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRJZD17cHJvcHMucGFyZW50SWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlPXtjcmVhdGVDb21wb25lbnRIYW5kbGUoY29tcG9uZW50KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZUNoYW5nZUhhbmRsZXI9eygpID0+IGZpcmVDaGFuZ2VFdmVudCgpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcz17cHJvcHMudmFsdWVzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdJZD17cHJvcHMudmlld0lkfVxuICAgICAgICAgICAgICAgIC8+O1xuICAgICAgICAgICAgY2FzZSAnTEFCRUwnOlxuICAgICAgICAgICAgICAgIHJldHVybiA8TGFiZWxGaWVsZCBrZXlIYW5kbGVyPXtwcm9wcy5rZXlIYW5kbGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWc9e2NvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybT17cHJvcHMuZm9ybX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50SWQ9e3Byb3BzLnBhcmVudElkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGU9e2NyZWF0ZUNvbXBvbmVudEhhbmRsZShjb21wb25lbnQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZUNoYW5nZUhhbmRsZXI9eygpID0+IGZpcmVDaGFuZ2VFdmVudCgpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9e3Byb3BzLnZhbHVlc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9XG4gICAgICAgICAgICAgICAgLz47XG4gICAgICAgICAgICBjYXNlICdGSUxFX1VQTE9BRCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIDxVcGxvYWRGaWVsZCBrZXlIYW5kbGVyPXtwcm9wcy5rZXlIYW5kbGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnPXtjb21wb25lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtPXtwcm9wcy5mb3JtfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50SWQ9e3Byb3BzLnBhcmVudElkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlPXtjcmVhdGVDb21wb25lbnRIYW5kbGUoY29tcG9uZW50KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlQ2hhbmdlSGFuZGxlcj17KCkgPT4gZmlyZUNoYW5nZUV2ZW50KCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9e3Byb3BzLnZhbHVlc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdJZD17cHJvcHMudmlld0lkfVxuICAgICAgICAgICAgICAgIC8+O1xuICAgICAgICAgICAgY2FzZSAnSU1BR0VfVVBMT0FEJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gPFVwbG9hZEZpZWxkIGtleUhhbmRsZXI9e3Byb3BzLmtleUhhbmRsZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWc9e2NvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm09e3Byb3BzLmZvcm19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRJZD17cHJvcHMucGFyZW50SWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGU9e2NyZWF0ZUNvbXBvbmVudEhhbmRsZShjb21wb25lbnQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9eydJTUFHRSd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZUNoYW5nZUhhbmRsZXI9eygpID0+IGZpcmVDaGFuZ2VFdmVudCgpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzPXtwcm9wcy52YWx1ZXN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3SWQ9e3Byb3BzLnZpZXdJZH1cbiAgICAgICAgICAgICAgICAvPjtcbiAgICAgICAgICAgIGNhc2UgJ01VTFRJX0ZJTEVfVVBMT0FEJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gPE11bHRpRmlsZVVwbG9hZEZpZWxkXG4gICAgICAgICAgICAgICAgICAgIGtleUhhbmRsZXI9e3Byb3BzLmtleUhhbmRsZXJ9XG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZz17Y29tcG9uZW50fVxuICAgICAgICAgICAgICAgICAgICBmb3JtPXtwcm9wcy5mb3JtfVxuICAgICAgICAgICAgICAgICAgICBwYXJlbnRJZD17cHJvcHMucGFyZW50SWR9XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlQ2hhbmdlSGFuZGxlcj17KCkgPT4gZmlyZUNoYW5nZUV2ZW50KCl9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlcz17cHJvcHMudmFsdWVzfVxuICAgICAgICAgICAgICAgICAgICB2aWV3SWQ9e3Byb3BzLnZpZXdJZH1cbiAgICAgICAgICAgICAgICAvPjtcbiAgICAgICAgICAgIGNhc2UgJ1RSQU5TRkVSX0xJU1QnOlxuICAgICAgICAgICAgICAgIHJldHVybiA8VHJhbnNmZXJMaXN0IGtleUhhbmRsZXI9e3Byb3BzLmtleUhhbmRsZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnPXtjb21wb25lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybT17cHJvcHMuZm9ybX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRJZD17cHJvcHMucGFyZW50SWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlPXtjcmVhdGVDb21wb25lbnRIYW5kbGUoY29tcG9uZW50KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZUNoYW5nZUhhbmRsZXI9eygpID0+IGZpcmVDaGFuZ2VFdmVudCgpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcz17cHJvcHMudmFsdWVzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdJZD17cHJvcHMudmlld0lkfVxuICAgICAgICAgICAgICAgIC8+O1xuICAgICAgICAgICAgY2FzZSAnR1JJRCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIDxHcmlkRmllbGQga2V5SGFuZGxlcj17cHJvcHMua2V5SGFuZGxlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWc9e2NvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtPXtwcm9wcy5mb3JtfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudElkPXtwcm9wcy5wYXJlbnRJZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGU9e2NyZWF0ZUNvbXBvbmVudEhhbmRsZShjb21wb25lbnQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlQ2hhbmdlSGFuZGxlcj17KCkgPT4gZmlyZUNoYW5nZUV2ZW50KCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzPXtwcm9wcy52YWx1ZXN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9XG4gICAgICAgICAgICAgICAgLz47XG4gICAgICAgICAgICBjYXNlICdUSU1FJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gPFRpbWVQaWNrZXJcbiAgICAgICAgICAgICAgICAgICAga2V5SGFuZGxlcj17cHJvcHMua2V5SGFuZGxlcn1cbiAgICAgICAgICAgICAgICAgICAgY29uZmlnPXtjb21wb25lbnR9XG4gICAgICAgICAgICAgICAgICAgIGZvcm09e3Byb3BzLmZvcm19XG4gICAgICAgICAgICAgICAgICAgIHBhcmVudElkPXtwcm9wcy5wYXJlbnRJZH1cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlPXtjcmVhdGVDb21wb25lbnRIYW5kbGUoY29tcG9uZW50KX1cbiAgICAgICAgICAgICAgICAgICAgdmFsdWVDaGFuZ2VIYW5kbGVyPXsoKSA9PiBmaXJlQ2hhbmdlRXZlbnQoKX1cbiAgICAgICAgICAgICAgICAgICAgdmFsdWVzPXtwcm9wcy52YWx1ZXN9XG4gICAgICAgICAgICAgICAgICAgIHZpZXdJZD17cHJvcHMudmlld0lkfVxuICAgICAgICAgICAgICAgIC8+O1xuICAgICAgICAgICAgY2FzZSAnSU1BR0VfRURJVE9SJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gPEltYWdlRWRpdG9yXG4gICAgICAgICAgICAgICAgICAgIGtleUhhbmRsZXI9e3Byb3BzLmtleUhhbmRsZXJ9XG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZz17Y29tcG9uZW50fVxuICAgICAgICAgICAgICAgICAgICBmb3JtPXtwcm9wcy5mb3JtfVxuICAgICAgICAgICAgICAgICAgICBwYXJlbnRJZD17cHJvcHMucGFyZW50SWR9XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlQ2hhbmdlSGFuZGxlcj17KCkgPT4gZmlyZUNoYW5nZUV2ZW50KCl9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlcz17cHJvcHMudmFsdWVzfVxuICAgICAgICAgICAgICAgICAgICB2aWV3SWQ9e3Byb3BzLnZpZXdJZH1cbiAgICAgICAgICAgICAgICAvPjtcbiAgICAgICAgICAgIGNhc2UgJ1JBRElPX0dST1VQJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gPFJhZGlvR3JvdXBcbiAgICAgICAgICAgICAgICAgICAga2V5SGFuZGxlcj17cHJvcHMua2V5SGFuZGxlcn1cbiAgICAgICAgICAgICAgICAgICAgY29uZmlnPXtjb21wb25lbnR9XG4gICAgICAgICAgICAgICAgICAgIGZvcm09e3Byb3BzLmZvcm19XG4gICAgICAgICAgICAgICAgICAgIHBhcmVudElkPXtwcm9wcy5wYXJlbnRJZH1cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlPXtjcmVhdGVDb21wb25lbnRIYW5kbGUoY29tcG9uZW50KX1cbiAgICAgICAgICAgICAgICAgICAgdmFsdWVDaGFuZ2VIYW5kbGVyPXsoKSA9PiBmaXJlQ2hhbmdlRXZlbnQoKX1cbiAgICAgICAgICAgICAgICAgICAgdmFsdWVzPXtwcm9wcy52YWx1ZXN9XG4gICAgICAgICAgICAgICAgICAgIHZpZXdJZD17cHJvcHMudmlld0lkfVxuICAgICAgICAgICAgICAgIC8+O1xuICAgICAgICAgICAgY2FzZSAnQlVUVE9OJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gPEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBjb25maWc9e2NvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgICAgZm9ybT17cHJvcHMuZm9ybX1cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlPXtjcmVhdGVDb21wb25lbnRIYW5kbGUoY29tcG9uZW50KX1cbiAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9XG4gICAgICAgICAgICAgICAgLz47XG4gICAgICAgICAgICBjYXNlICdIVE1MX1BBTkVMJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gPEh0bWxQYW5lbFxuICAgICAgICAgICAgICAgICAgICBjb25maWc9e2NvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgICAgZm9ybT17cHJvcHMuZm9ybX1cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlPXtjcmVhdGVDb21wb25lbnRIYW5kbGUoY29tcG9uZW50KX1cbiAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9XG4gICAgICAgICAgICAgICAgLz47XG4gICAgICAgICAgICBjYXNlICdMQVlPVVQnOlxuICAgICAgICAgICAgICAgIHJldHVybiA8TGF5b3V0XG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZz17Y29tcG9uZW50fVxuICAgICAgICAgICAgICAgICAgICBmb3JtPXtwcm9wcy5mb3JtfVxuICAgICAgICAgICAgICAgICAgICBoYW5kbGU9e2NyZWF0ZUNvbXBvbmVudEhhbmRsZShjb21wb25lbnQpfVxuICAgICAgICAgICAgICAgICAgICB2aWV3SWQ9e3Byb3BzLnZpZXdJZH1cbiAgICAgICAgICAgICAgICAvPjtcbiAgICAgICAgICAgIGNhc2UgJ0lDT04nOlxuICAgICAgICAgICAgICAgIHJldHVybiA8SWNvbkZpZWxkXG4gICAgICAgICAgICAgICAgICAgIGtleUhhbmRsZXI9e3Byb3BzLmtleUhhbmRsZXJ9XG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZz17Y29tcG9uZW50fVxuICAgICAgICAgICAgICAgICAgICBmb3JtPXtwcm9wcy5mb3JtfVxuICAgICAgICAgICAgICAgICAgICBwYXJlbnRJZD17cHJvcHMucGFyZW50SWR9XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlQ2hhbmdlSGFuZGxlcj17KCkgPT4gZmlyZUNoYW5nZUV2ZW50KCl9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlcz17cHJvcHMudmFsdWVzfVxuICAgICAgICAgICAgICAgICAgICB2aWV3SWQ9e3Byb3BzLnZpZXdJZH1cbiAgICAgICAgICAgICAgICAvPjtcbiAgICAgICAgICAgIGNhc2UgJ1NJR05BVFVSRV9URU1QTEFURV9ERVNJR05FUic6XG4gICAgICAgICAgICAgICAgcmV0dXJuIDxTaWduYXR1cmVUZW1wbGF0ZURlc2lnbmVyRmllbGRcbiAgICAgICAgICAgICAgICAgICAga2V5SGFuZGxlcj17cHJvcHMua2V5SGFuZGxlcn1cbiAgICAgICAgICAgICAgICAgICAgY29uZmlnPXtjb21wb25lbnR9XG4gICAgICAgICAgICAgICAgICAgIGZvcm09e3Byb3BzLmZvcm19XG4gICAgICAgICAgICAgICAgICAgIHBhcmVudElkPXtwcm9wcy5wYXJlbnRJZH1cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlPXtjcmVhdGVDb21wb25lbnRIYW5kbGUoY29tcG9uZW50KX1cbiAgICAgICAgICAgICAgICAgICAgdmFsdWVDaGFuZ2VIYW5kbGVyPXsoKSA9PiBmaXJlQ2hhbmdlRXZlbnQoKX1cbiAgICAgICAgICAgICAgICAgICAgdmFsdWVzPXtwcm9wcy52YWx1ZXN9XG4gICAgICAgICAgICAgICAgICAgIHZpZXdJZD17cHJvcHMudmlld0lkfVxuICAgICAgICAgICAgICAgIC8+O1xuICAgICAgICAgICAgY2FzZSAnRE9DVU1FTlRfVEVNUExBVEVfREVTSUdORVInOlxuICAgICAgICAgICAgICAgIHJldHVybiA8RG9jdW1lbnRUZW1wbGF0ZURlc2lnbmVyXG4gICAgICAgICAgICAgICAgICAgIGtleUhhbmRsZXI9e3Byb3BzLmtleUhhbmRsZXJ9XG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZz17Y29tcG9uZW50fVxuICAgICAgICAgICAgICAgICAgICBmb3JtPXtwcm9wcy5mb3JtfVxuICAgICAgICAgICAgICAgICAgICBwYXJlbnRJZD17cHJvcHMucGFyZW50SWR9XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlQ2hhbmdlSGFuZGxlcj17KCkgPT4gZmlyZUNoYW5nZUV2ZW50KCl9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlcz17cHJvcHMudmFsdWVzfVxuICAgICAgICAgICAgICAgICAgICB2aWV3SWQ9e3Byb3BzLnZpZXdJZH1cbiAgICAgICAgICAgICAgICAvPjtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIDxkaXY+eydVbnN1cHBvcnRlZCBmaWVsZHNldCBjb21wb25lbnQgdHlwZSAnICsgY29tcG9uZW50LmZpZWxkVHlwZSArICcgLSAnICsgY29tcG9uZW50LmlkfTwvZGl2PjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGFwaSA9ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGdldCBpZCgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcHJvcHMuY29uZmlnLmlkO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGdldCBmaWVsZERhdGFCaW5kaW5ncygpIHtcbiAgICAgICAgICAgICAgICBsZXQgZmllbGROYW1lcyA9IFtdO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgZmllbGQgb2YgcHJvcHMuY29uZmlnLmZpZWxkcykge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZE5hbWVzLnB1c2goIVV0aWxzLmlzTnVsbChmaWVsZC5kYXRhQmluZGluZykgPyBmaWVsZC5kYXRhQmluZGluZyA6IGZpZWxkLmlkKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gZmllbGROYW1lcztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzZXQgZGlzYWJsZWQoZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICB1cGRhdGVDb21wb25lbnREaXNhYmxlZFN0YXRlKGRpc2FibGVkKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBjbGVhcigpIHtcbiAgICAgICAgICAgICAgICBsZXQgcHJvcGVydGllcyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGNvbXBvbmVudEhhbmRsZXMpO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcHJvcGVydHkgb2YgcHJvcGVydGllcykge1xuICAgICAgICAgICAgICAgICAgICBsZXQgY29tcG9uZW50UmVmID0gY29tcG9uZW50SGFuZGxlc1twcm9wZXJ0eV07XG4gICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudFJlZi5hcGkudmFsdWUgPSBudWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBnZXRDaGlsZHJlbjogKCkgPT4ge1xuICAgICAgICAgICAgICAgIGxldCBjaGlsZHJlbiA9IFtdO1xuICAgICAgICAgICAgICAgIGxldCBwcm9wZXJ0aWVzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoY29tcG9uZW50SGFuZGxlcyk7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBwcm9wZXJ0eSBvZiBwcm9wZXJ0aWVzKSB7XG4gICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuLnB1c2goY29tcG9uZW50SGFuZGxlc1twcm9wZXJ0eV0pO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBjaGlsZHJlbjtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzZXQgbW9kZWwobW9kZWwpIHtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGZpZWxkIG9mIHByb3BzLmNvbmZpZy5maWVsZHMpIHtcbiAgICAgICAgICAgICAgICAgICAgcHJvcHMuZm9ybSgpLm1vZGVsW2ZpZWxkLmlkXSA9IG1vZGVsW2ZpZWxkLmlkXTtcblxuICAgICAgICAgICAgICAgICAgICBsZXQgY29tcG9uZW50UmVmID0gY29tcG9uZW50SGFuZGxlc1tmaWVsZC5pZF07XG4gICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudFJlZi5hcGkudmFsdWUgPSBtb2RlbFtmaWVsZC5pZF07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGdldCB2YWx1ZSgpIHtcbiAgICAgICAgICAgICAgICBsZXQgdmFsdWUgPSB7fTtcbiAgICAgICAgICAgICAgICBsZXQgZm9ybVZhbHVlID0gcHJvcHMuZm9ybSgpLnZhbHVlO1xuXG4gICAgICAgICAgICAgICAgaWYgKGZvcm1WYWx1ZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGZpZWxkIG9mIHByb3BzLmNvbmZpZy5maWVsZHMpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWVbZmllbGQuaWRdID0gZm9ybVZhbHVlW2ZpZWxkLmlkXTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbG9hZERhdGE6IChhY3Rpb25Db25maWcsIGFjdGlvbkV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgbGV0IHNlcnZpY2UgPSAhVXRpbHMuaXNOdWxsKGFjdGlvbkNvbmZpZy5kYXRhU2VydmljZSkgPyBhY3Rpb25Db25maWcuZGF0YVNlcnZpY2UgOlxuICAgICAgICAgICAgICAgICAgICAhVXRpbHMuaXNOdWxsKHByb3BzLmNvbmZpZykgPyBwcm9wcy5jb25maWcuZGF0YVNlcnZpY2UgOiBudWxsO1xuICAgICAgICAgICAgICAgIGxldCBjb21wb25lbnRWYWx1ZSA9ICFVdGlscy5pc051bGwocHJvcHMuY29uZmlnLnZhbHVlKSA/IHByb3BzLmNvbmZpZy52YWx1ZSA6XG4gICAgICAgICAgICAgICAgICAgIGFjdGlvbkNvbmZpZy52YWx1ZTtcblxuICAgICAgICAgICAgICAgIGlmIChjb21wb25lbnRWYWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICBsZXQgaXNFdmVudERhdGEgPSBjb21wb25lbnRWYWx1ZS50b1N0cmluZygpXG4gICAgICAgICAgICAgICAgICAgICAgICAuc3RhcnRzV2l0aCgnJGV2ZW50LmRhdGEnKTtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGlzRXByZXNzaW9uID0gYXBwbGljYXRpb25NYW5hZ2VyLmlzRXhwcmVzc2lvbihjb21wb25lbnRWYWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgIGxldCB2YWwgPSBpc0V2ZW50RGF0YSB8fCBpc0VwcmVzc2lvbiA/IGFwcGxpY2F0aW9uTWFuYWdlci5yZXNvbHZlRXhwcmVzc2lvblZhbHVlKGNvbXBvbmVudFZhbHVlLCBhY3Rpb25FdmVudCA/IGFjdGlvbkV2ZW50LmRhdGEgOiBudWxsKSA6IGNvbXBvbmVudFZhbHVlO1xuICAgICAgICAgICAgICAgICAgICBwcm9wcy5mb3JtKClcbiAgICAgICAgICAgICAgICAgICAgICAgIC5iaW5kRGF0YSh2YWwpO1xuXG4gICAgICAgICAgICAgICAgICAgIGxldCBldmVudCA9IG5ldyBFdmVudChwcm9wcy5oYW5kbGUsIHByb3BzLnZpZXdJZCwgdmFsKTtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnRNYW5hZ2VyLmZpcmVFdmVudChFdmVudFR5cGUuREFUQV9BUlJJVkVELCBldmVudCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwoc2VydmljZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtZXRob2QgPSBzZXJ2aWNlLnR5cGUgPT09ICdycGMnID8gaW52b2tlUnBjIDogaW52b2tlUmVzdDtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmljZTogc2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wb25lbnQ6IHJlZi5jdXJyZW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdJZDogcHJvcHMudmlld0lkXG4gICAgICAgICAgICAgICAgICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGF0YSA9IHNlcnZpY2UudHlwZSA9PT0gJ3JwYycgPyByZXN1bHQuZGF0YSA6IHJlc3VsdDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wcy5mb3JtKClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5iaW5kRGF0YShkYXRhKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZXZlbnQgPSBuZXcgRXZlbnQocHJvcHMuaGFuZGxlLCBwcm9wcy52aWV3SWQsIGRhdGEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudE1hbmFnZXIuZmlyZUV2ZW50KEV2ZW50VHlwZS5EQVRBX0FSUklWRUQsIGV2ZW50KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9KS5jYXRjaCgoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzLmNvbnNvbGUuZXJyb3IoZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgVXRpbHMucHVibGlzaEVycm9yTWVzc2FnZShlLCBwcm9wcy52aWV3SWQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSlcblxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVmcmVzaCgpIHtcbiAgICAgICAgICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbChwcm9wcy5jb25maWcpICYmICFVdGlscy5pc051bGwocHJvcHMuY29uZmlnLnZpc2libGUpKSB7XG4gICAgICAgICAgICAgICAgICAgIHNldFZpc2libGUoVXRpbHMuZXZhbHVhdGVCb29sZWFuRXhwcmVzc2lvbihwcm9wcy5jb25maWcudmlzaWJsZSwgcHJvcHMuY29uZmlnLmlkKSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgc2V0VmlzaWJsZSh0cnVlKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbChwcm9wcy5jb25maWcpICYmICFVdGlscy5pc051bGwocHJvcHMuY29uZmlnLmRpc2FibGVkKSkge1xuICAgICAgICAgICAgICAgICAgICB1cGRhdGVDb21wb25lbnREaXNhYmxlZFN0YXRlKFV0aWxzLmV2YWx1YXRlQm9vbGVhbkV4cHJlc3Npb24ocHJvcHMuY29uZmlnLmRpc2FibGVkLCBwcm9wcy5jb25maWcuaWQpKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZWZyZXNoQ29tcG9uZW50cygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgIH07XG5cbiAgICBmdW5jdGlvbiByZW5kZXIoZmllbGRTZXQpIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIChVdGlscy5pc051bGwoZmllbGRTZXQuZmllbGRzKSB8fCBmaWVsZFNldC5maWVsZHMubGVuZ3RoID09PSAwKSA/XG4gICAgICAgICAgICAgICAgPGRpdj4gRXJyb3I6IEEgZmllbGRTZXQgbXVzdCBoYXZlIGZpZWxkczwvZGl2PlxuICAgICAgICAgICAgICAgIDpcbiAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWVsZEdyaWQucm93cy5tYXAoKHJvdywgaSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiA8ZGl2IGNsYXNzTmFtZT1cInJvdyBmaWVsc2V0LXJvd1wiIGtleT17aX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW5MZWZ0OiAnMCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpblJpZ2h0OiAnMCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93LmZpZWxkcy5tYXAoKGZpZWxkLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBjb2xzcGFuO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB3aWR0aDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChVdGlscy5pc051bGwoZmllbGQuYXR0cmlidXRlcykgfHwgVXRpbHMuaXNOdWxsKGZpZWxkLmF0dHJpYnV0ZXMuY29sc3BhbikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sc3BhbiA9IDE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGNvbHNwYW5WYWwgPSBVdGlscy5nZXRGaWVsZENvbHNwYW4oZmllbGQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY29sc3BhblZhbCA+IGZpZWxkR3JpZC5tYXhDb2xQZXJSb3cpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHNwYW4gPSBmaWVsZEdyaWQubWF4Q29sUGVyUm93O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sc3BhbiA9IGNvbHNwYW5WYWw7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGUgcm93IGlzIGEgZmxleCBjb250YWluZXIgd2l0aCBhblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIDhweCBjb2x1bW4tZ2FwIChzZWUgZmllbGRzZXQuY3NzKS4gRWFjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGl0ZW0gc3VidHJhY3RzIGl0cyBzaGFyZSBvZiB0aGUgZ2FwcyBzb1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGBjb2xzcGFuYCBjb2x1bW5zICsgdGhlIGdhcHMgYmV0d2VlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZW0gc3RpbGwgc3VtIHRvIHRoZSByb3cgd2lkdGgg4oCUIGFuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdyYXBwZWQgaXRlbXMgYWxpZ24gZmx1c2ggKGdhcCBhZGRzIG5vXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbGVhZGluZyBzcGFjZSBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lKS5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBDT0xfR0FQID0gODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYXhDb2wgPSBmaWVsZEdyaWQubWF4Q29sUGVyUm93O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoID0gY29sc3BhbiAvIG1heENvbCAqIDEwMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnYXBPZmZzZXQgPSAobWF4Q29sIC0gY29sc3BhbikgKiBDT0xfR0FQIC8gbWF4Q29sO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBjb250YWluZXJTdHlsZSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZ0xlZnQ6ICcwJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZ1JpZ2h0OiAnMCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbkxlZnQ6ICcwJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luUmlnaHQ6ICcwJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluV2lkdGg6ICczMjBweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiBgY2FsYygke3dpZHRofSUgLSAke2dhcE9mZnNldH1weClgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkLmluZGV4ID0gaW5kZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHN0eWxlID0gZmllbGQuYXR0cmlidXRlcz8uY29udGFpbmVyU3R5bGUgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVdGlscy5tZXJnZU9iamVjdHMoZmllbGQuYXR0cmlidXRlcz8uY29udGFpbmVyU3R5bGUsIGNvbnRhaW5lclN0eWxlKSA6IGNvbnRhaW5lclN0eWxlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiA8ZGl2IGtleT17KGkgKyAxKSAqIGluZGV4fSBjbGFzc05hbWU9XCJjb2wtKi0qIG91aS1mb3JtLWl0ZW0tY29udGFpbmVyXCIgc3R5bGU9e3N0eWxlfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVuZGVyQ29tcG9uZW50KGZpZWxkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gPGRpdiBjbGFzc05hbWU9eydmaWVsZFNldFdyYXBwZXInfSBzdHlsZT17VXRpbHMubWVyZ2VTdHlsZXMoXG4gICAgICAgIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IHZpc2libGUgPyAnYmxvY2snIDogJ25vbmUnLFxuICAgICAgICAgICAgbWFyZ2luOiAnMCcsXG4gICAgICAgICAgICBtaW5XaWR0aDogJzMyMHB4JyxcbiAgICAgICAgICAgIHBhZGRpbmc6ICc0cHgnXG4gICAgICAgIH0sIHByb3BzLmNvbmZpZyl9PlxuICAgICAgICB7XG4gICAgICAgICAgICAhVXRpbHMuaXNOdWxsKHByb3BzLmNvbmZpZy5hdHRyaWJ1dGVzKSAmJiAhVXRpbHMuaXNOdWxsKHByb3BzLmNvbmZpZy5hdHRyaWJ1dGVzWydsYWJlbCddKSA/XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9eydmaWVsZFNldFRpdGxlJ30+XG4gICAgICAgICAgICAgICAgICAgIHtwcm9wcy5jb25maWcuYXR0cmlidXRlc1snbGFiZWwnXX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA6XG4gICAgICAgICAgICAgICAgbnVsbFxuICAgICAgICB9XG4gICAgICAgIHtcbiAgICAgICAgICAgICFVdGlscy5pc051bGwoZmllbGRHcmlkKSA/XG4gICAgICAgICAgICAgICAgcmVuZGVyKHByb3BzLmNvbmZpZylcbiAgICAgICAgICAgICAgICA6XG4gICAgICAgICAgICAgICAgbnVsbFxuICAgICAgICB9XG4gICAgPC9kaXY+O1xufSk7XG5cbmV4cG9ydCBkZWZhdWx0IEZpZWxkU2V0O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQyxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDRCxJQUFBQyxNQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRSxXQUFBLEdBQUFILHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRyxVQUFBLEdBQUFKLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSSxjQUFBLEdBQUFMLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSyxjQUFBLEdBQUFOLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBTSxZQUFBLEdBQUFQLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBTyxpQkFBQSxHQUFBUixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQVEsV0FBQSxHQUFBVCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQVMsV0FBQSxHQUFBVixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQVUsV0FBQSxHQUFBWCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQVcsU0FBQSxHQUFBWixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQVksV0FBQSxHQUFBYixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQWEsWUFBQSxHQUFBZCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQWMsYUFBQSxHQUFBZixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQWUsVUFBQSxHQUFBaEIsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFnQixZQUFBLEdBQUFqQixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQWlCLFdBQUEsR0FBQWxCLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBa0IsTUFBQSxHQUFBbkIsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFtQixVQUFBLEdBQUFwQixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQW9CLFlBQUEsR0FBQXBCLE9BQUE7QUFDQSxJQUFBcUIsK0JBQUEsR0FBQXRCLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBc0IsbUJBQUEsR0FBQXZCLHNCQUFBLENBQUFDLE9BQUE7QUFDQUEsT0FBQTtBQUNBLElBQUF1QixPQUFBLEdBQUF4QixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQXdCLFVBQUEsR0FBQXpCLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBeUIsYUFBQSxHQUFBMUIsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUEwQixxQkFBQSxHQUFBM0Isc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUEyQixLQUFBLEdBQUE1QixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQTRCLE9BQUEsR0FBQTdCLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBNkIsVUFBQSxHQUFBOUIsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUE4Qix5QkFBQSxHQUFBL0Isc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUErQixVQUFBLEdBQUFoQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQWdDLE9BQUEsR0FBQWhDLE9BQUE7QUFBd0MsU0FBQUQsdUJBQUFrQyxDQUFBLFdBQUFBLENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFBLEdBQUFELENBQUEsS0FBQUUsT0FBQSxFQUFBRixDQUFBO0FBRXhDLE1BQU1HLFFBQVEsZ0JBQUdDLGNBQUssQ0FBQ0MsSUFBSSxDQUFFQyxLQUFLLElBQUs7RUFDbkMsTUFBTSxDQUFDQyxTQUFTLENBQUMsR0FBR0gsY0FBSyxDQUFDSSxRQUFRLENBQUNDLGNBQUssQ0FBQ0MsWUFBWSxDQUFDSixLQUFLLENBQUNLLE1BQU0sQ0FBQ0MsVUFBVSxFQUFFTixLQUFLLENBQUNLLE1BQU0sQ0FBQ0UsTUFBTSxDQUFDLENBQUM7RUFDcEcsTUFBTSxDQUFDQyxnQkFBZ0IsQ0FBQyxHQUFHVixjQUFLLENBQUNJLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztFQUM3QyxNQUFNLENBQUNPLE9BQU8sRUFBRUMsVUFBVSxDQUFDLEdBQUdaLGNBQUssQ0FBQ0ksUUFBUSxDQUFDLEtBQUssQ0FBQztFQUVuRCxNQUFNUyxxQkFBcUIsR0FBSUMsS0FBSyxJQUFLO0lBQ3JDLElBQUlULGNBQUssQ0FBQ1UsTUFBTSxDQUFDTCxnQkFBZ0IsQ0FBQ0ksS0FBSyxDQUFDRSxFQUFFLENBQUMsQ0FBQyxFQUFFO01BQzFDLElBQUlDLE1BQU0sR0FBRyxDQUFDLENBQUM7TUFDZlAsZ0JBQWdCLENBQUNJLEtBQUssQ0FBQ0UsRUFBRSxDQUFDLEdBQUdDLE1BQU07TUFDbkMsT0FBT0EsTUFBTTtJQUNqQjtJQUVBLE9BQU9QLGdCQUFnQixDQUFDSSxLQUFLLENBQUNFLEVBQUUsQ0FBQztFQUNyQyxDQUFDO0VBRURoQixjQUFLLENBQUNrQixTQUFTLENBQ1gsTUFBTTtJQUNGaEIsS0FBSyxDQUFDZSxNQUFNLENBQUNFLEdBQUcsR0FBR0EsR0FBRyxDQUFDLENBQUM7RUFDNUIsQ0FBQyxDQUFDO0VBRU5uQixjQUFLLENBQUNvQixlQUFlLENBQ2pCLE1BQU07SUFDRmxCLEtBQUssQ0FBQ2UsTUFBTSxDQUFDRSxHQUFHLEdBQUdBLEdBQUcsQ0FBQyxDQUFDO0VBQzVCLENBQUMsRUFBRSxFQUFFLENBQUM7RUFFVm5CLGNBQUssQ0FBQ2tCLFNBQVMsQ0FDWCxNQUFNO0lBQ0ZoQixLQUFLLENBQUNlLE1BQU0sQ0FBQ0UsR0FBRyxHQUFHQSxHQUFHLENBQUMsQ0FBQztJQUN4QmpCLEtBQUssQ0FBQ2UsTUFBTSxDQUFDRSxHQUFHLENBQUNFLE9BQU8sQ0FBQyxDQUFDO0lBQzFCLElBQUlDLFlBQVksR0FBR2pCLGNBQUssQ0FBQ2tCLFdBQVcsQ0FBQ3JCLEtBQUssQ0FBQ0ssTUFBTSxFQUFFTCxLQUFLLENBQUNzQixNQUFNLENBQUM7SUFDaEVDLG1CQUFZLENBQUNDLGdCQUFnQixDQUFDSixZQUFZLENBQUNLLG1CQUFtQixFQUFFekIsS0FBSyxDQUFDZSxNQUFNLEVBQUVmLEtBQUssQ0FBQ3NCLE1BQU0sQ0FBQztJQUMzRkMsbUJBQVksQ0FBQ0csc0JBQXNCLENBQUMxQixLQUFLLENBQUNzQixNQUFNLEVBQUVGLFlBQVksQ0FBQztFQUNuRSxDQUFDLEVBQUUsRUFBRSxDQUFDO0VBRVZ0QixjQUFLLENBQUNrQixTQUFTLENBQ1gsTUFBTTtJQUNGLElBQUksQ0FBQ2IsY0FBSyxDQUFDVSxNQUFNLENBQUNiLEtBQUssQ0FBQzJCLFFBQVEsQ0FBQyxFQUFFO01BQy9CQyw0QkFBNEIsQ0FBQzVCLEtBQUssQ0FBQzJCLFFBQVEsQ0FBQztJQUNoRDtFQUNKLENBQUMsRUFBRSxDQUFDM0IsS0FBSyxDQUFDMkIsUUFBUSxDQUFDLENBQUM7RUFFeEIsU0FBU0UsZUFBZUEsQ0FBQSxFQUFHO0lBQ3ZCLElBQUlDLEtBQUssR0FBRyxJQUFJQyxjQUFLLENBQUMvQixLQUFLLENBQUNlLE1BQU0sRUFBRWYsS0FBSyxDQUFDc0IsTUFBTSxDQUFDO0lBQ2pEQyxtQkFBWSxDQUFDUyxTQUFTLENBQUNDLGtCQUFTLENBQUNDLFlBQVksRUFBRUosS0FBSyxDQUFDO0VBQ3pEO0VBRUEsU0FBU0YsNEJBQTRCQSxDQUFDRCxRQUFRLEVBQUU7SUFDNUMsSUFBSVEsVUFBVSxHQUFHQyxNQUFNLENBQUNDLG1CQUFtQixDQUFDN0IsZ0JBQWdCLENBQUM7SUFDN0QsS0FBSyxNQUFNOEIsUUFBUSxJQUFJSCxVQUFVLEVBQUU7TUFDL0IsSUFBSUksZUFBZSxHQUFHL0IsZ0JBQWdCLENBQUM4QixRQUFRLENBQUM7TUFDaERDLGVBQWUsQ0FBQ3RCLEdBQUcsQ0FBQ1UsUUFBUSxHQUFHQSxRQUFRO0lBQzNDO0VBQ0o7RUFFQSxTQUFTYSxpQkFBaUJBLENBQUEsRUFBRztJQUN6QixJQUFJTCxVQUFVLEdBQUdDLE1BQU0sQ0FBQ0MsbUJBQW1CLENBQUM3QixnQkFBZ0IsQ0FBQztJQUM3RCxLQUFLLE1BQU04QixRQUFRLElBQUlILFVBQVUsRUFBRTtNQUMvQixJQUFJSSxlQUFlLEdBQUcvQixnQkFBZ0IsQ0FBQzhCLFFBQVEsQ0FBQztNQUNoRCxJQUFHQyxlQUFlLENBQUN0QixHQUFHLEVBQUU7UUFDcEJzQixlQUFlLENBQUN0QixHQUFHLENBQUNFLE9BQU8sQ0FBQyxDQUFDO01BQ2pDO0lBQ0o7RUFDSjtFQUVBLFNBQVNzQixlQUFlQSxDQUFDQyxTQUFTLEVBQUU7SUFDaEMsSUFBSSxDQUFDQSxTQUFTLENBQUNDLFNBQVMsRUFBRTtNQUN0QkMsT0FBTyxDQUFDQyxLQUFLLENBQUMsNEJBQTRCLEdBQUdILFNBQVMsQ0FBQzVCLEVBQUUsR0FBRyw0QkFBNEIsQ0FBQztJQUM3RjtJQUVBLElBQUlnQyxVQUFVLEdBQUcsS0FBSztJQUN0QixJQUFJLENBQUMzQyxjQUFLLENBQUNVLE1BQU0sQ0FBQ2IsS0FBSyxDQUFDSyxNQUFNLENBQUMsSUFBSSxDQUFDRixjQUFLLENBQUNVLE1BQU0sQ0FBQ2IsS0FBSyxDQUFDSyxNQUFNLENBQUNzQixRQUFRLENBQUMsRUFBRTtNQUNyRW1CLFVBQVUsR0FBRzNDLGNBQUssQ0FBQzRDLHlCQUF5QixDQUFDL0MsS0FBSyxDQUFDSyxNQUFNLENBQUNzQixRQUFRLEVBQUUzQixLQUFLLENBQUNLLE1BQU0sQ0FBQ1MsRUFBRSxDQUFDO0lBQ3hGO0lBRUEsSUFBSWdDLFVBQVUsRUFBRTtNQUNaLElBQUkzQyxjQUFLLENBQUNVLE1BQU0sQ0FBQzZCLFNBQVMsQ0FBQ2YsUUFBUSxDQUFDLEVBQUU7UUFDbENlLFNBQVMsQ0FBQ2YsUUFBUSxHQUFHLElBQUk7TUFDN0I7SUFDSjtJQUVBLFFBQVFlLFNBQVMsQ0FBQ0MsU0FBUztNQUN2QixLQUFLLFFBQVE7UUFDVCxvQkFBT3BGLE1BQUEsQ0FBQXFDLE9BQUEsQ0FBQW9ELGFBQUEsQ0FBQ2pGLFlBQUEsQ0FBQTZCLE9BQVc7VUFBQ3FELFVBQVUsRUFBRWpELEtBQUssQ0FBQ2lELFVBQVc7VUFDN0I1QyxNQUFNLEVBQUVxQyxTQUFVO1VBQ2xCUSxJQUFJLEVBQUVsRCxLQUFLLENBQUNrRCxJQUFLO1VBQ2pCQyxRQUFRLEVBQUVuRCxLQUFLLENBQUNtRCxRQUFTO1VBQ3pCcEMsTUFBTSxFQUFFSixxQkFBcUIsQ0FBQytCLFNBQVMsQ0FBRTtVQUN6Q1Usa0JBQWtCLEVBQUVBLENBQUEsS0FBTXZCLGVBQWUsQ0FBQyxDQUFFO1VBQzVDd0IsTUFBTSxFQUFFckQsS0FBSyxDQUFDcUQsTUFBTztVQUNyQi9CLE1BQU0sRUFBRXRCLEtBQUssQ0FBQ3NCO1FBQU8sQ0FDeEMsQ0FBQztNQUNOLEtBQUssY0FBYztRQUNmLG9CQUFPL0QsTUFBQSxDQUFBcUMsT0FBQSxDQUFBb0QsYUFBQSxDQUFDaEYsaUJBQUEsQ0FBQTRCLE9BQWdCO1VBQUNxRCxVQUFVLEVBQUVqRCxLQUFLLENBQUNpRCxVQUFXO1VBQzdCNUMsTUFBTSxFQUFFcUMsU0FBVTtVQUNsQlEsSUFBSSxFQUFFbEQsS0FBSyxDQUFDa0QsSUFBSztVQUNqQkMsUUFBUSxFQUFFbkQsS0FBSyxDQUFDbUQsUUFBUztVQUN6QnBDLE1BQU0sRUFBRUoscUJBQXFCLENBQUMrQixTQUFTLENBQUU7VUFDekNVLGtCQUFrQixFQUFFQSxDQUFBLEtBQU12QixlQUFlLENBQUMsQ0FBRTtVQUM1Q3dCLE1BQU0sRUFBRXJELEtBQUssQ0FBQ3FELE1BQU87VUFDckIvQixNQUFNLEVBQUV0QixLQUFLLENBQUNzQjtRQUFPLENBQzdDLENBQUM7TUFDTixLQUFLLFlBQVk7UUFDYixvQkFBTy9ELE1BQUEsQ0FBQXFDLE9BQUEsQ0FBQW9ELGFBQUEsQ0FBQ3BGLFVBQUEsQ0FBQWdDLE9BQVM7VUFBQ3FELFVBQVUsRUFBRWpELEtBQUssQ0FBQ2lELFVBQVc7VUFDN0I1QyxNQUFNLEVBQUVxQyxTQUFVO1VBQ2xCVSxrQkFBa0IsRUFBRUEsQ0FBQSxLQUFNdkIsZUFBZSxDQUFDLENBQUU7VUFDNUNxQixJQUFJLEVBQUVsRCxLQUFLLENBQUNrRCxJQUFLO1VBQ2pCQyxRQUFRLEVBQUVuRCxLQUFLLENBQUNtRCxRQUFTO1VBQ3pCcEMsTUFBTSxFQUFFSixxQkFBcUIsQ0FBQytCLFNBQVMsQ0FBRTtVQUN6Q1csTUFBTSxFQUFFckQsS0FBSyxDQUFDcUQsTUFBTztVQUNyQi9CLE1BQU0sRUFBRXRCLEtBQUssQ0FBQ3NCO1FBQU8sQ0FDdEMsQ0FBQztNQUNOLEtBQUssVUFBVTtRQUNYLG9CQUFPL0QsTUFBQSxDQUFBcUMsT0FBQSxDQUFBb0QsYUFBQSxDQUFDbkYsY0FBQSxDQUFBK0IsT0FBYTtVQUFDcUQsVUFBVSxFQUFFakQsS0FBSyxDQUFDaUQsVUFBVztVQUM3QjVDLE1BQU0sRUFBRXFDLFNBQVU7VUFDbEJVLGtCQUFrQixFQUFFQSxDQUFBLEtBQU12QixlQUFlLENBQUMsQ0FBRTtVQUM1Q3FCLElBQUksRUFBRWxELEtBQUssQ0FBQ2tELElBQUs7VUFDakJDLFFBQVEsRUFBRW5ELEtBQUssQ0FBQ21ELFFBQVM7VUFDekJwQyxNQUFNLEVBQUVKLHFCQUFxQixDQUFDK0IsU0FBUyxDQUFFO1VBQ3pDVyxNQUFNLEVBQUVyRCxLQUFLLENBQUNxRCxNQUFPO1VBQ3JCL0IsTUFBTSxFQUFFdEIsS0FBSyxDQUFDc0I7UUFBTyxDQUMxQyxDQUFDO01BQ04sS0FBSyxVQUFVO1FBQ1gsb0JBQU8vRCxNQUFBLENBQUFxQyxPQUFBLENBQUFvRCxhQUFBLENBQUNwRixVQUFBLENBQUFnQyxPQUFTO1VBQUNxRCxVQUFVLEVBQUVqRCxLQUFLLENBQUNpRCxVQUFXO1VBQzdCNUMsTUFBTSxFQUFFcUMsU0FBVTtVQUNsQlUsa0JBQWtCLEVBQUVBLENBQUEsS0FBTXZCLGVBQWUsQ0FBQyxDQUFFO1VBQzVDcUIsSUFBSSxFQUFFbEQsS0FBSyxDQUFDa0QsSUFBSztVQUNqQkksSUFBSSxFQUFFLFVBQVc7VUFDakJILFFBQVEsRUFBRW5ELEtBQUssQ0FBQ21ELFFBQVM7VUFDekJwQyxNQUFNLEVBQUVKLHFCQUFxQixDQUFDK0IsU0FBUyxDQUFFO1VBQ3pDVyxNQUFNLEVBQUVyRCxLQUFLLENBQUNxRCxNQUFPO1VBQ3JCL0IsTUFBTSxFQUFFdEIsS0FBSyxDQUFDc0I7UUFBTyxDQUN0QyxDQUFDO01BQ04sS0FBSyxXQUFXO1FBQ1osb0JBQU8vRCxNQUFBLENBQUFxQyxPQUFBLENBQUFvRCxhQUFBLENBQUNwRixVQUFBLENBQUFnQyxPQUFTO1VBQUNxRCxVQUFVLEVBQUVqRCxLQUFLLENBQUNpRCxVQUFXO1VBQzdCNUMsTUFBTSxFQUFFcUMsU0FBVTtVQUNsQmEsU0FBUyxFQUFFLElBQUs7VUFDaEJILGtCQUFrQixFQUFFQSxDQUFBLEtBQU12QixlQUFlLENBQUMsQ0FBRTtVQUM1Q3FCLElBQUksRUFBRWxELEtBQUssQ0FBQ2tELElBQUs7VUFDakJDLFFBQVEsRUFBRW5ELEtBQUssQ0FBQ21ELFFBQVM7VUFDekJwQyxNQUFNLEVBQUVKLHFCQUFxQixDQUFDK0IsU0FBUyxDQUFFO1VBQ3pDVyxNQUFNLEVBQUVyRCxLQUFLLENBQUNxRCxNQUFPO1VBQ3JCL0IsTUFBTSxFQUFFdEIsS0FBSyxDQUFDc0I7UUFBTyxDQUN0QyxDQUFDO01BQ04sS0FBSyxnQkFBZ0I7UUFDakIsb0JBQU8vRCxNQUFBLENBQUFxQyxPQUFBLENBQUFvRCxhQUFBLENBQUNsRixjQUFBLENBQUE4QixPQUFhO1VBQUNxRCxVQUFVLEVBQUVqRCxLQUFLLENBQUNpRCxVQUFXO1VBQzdCNUMsTUFBTSxFQUFFcUMsU0FBVTtVQUNsQmEsU0FBUyxFQUFFLElBQUs7VUFDaEJILGtCQUFrQixFQUFFQSxDQUFBLEtBQU12QixlQUFlLENBQUMsQ0FBRTtVQUM1Q3FCLElBQUksRUFBRWxELEtBQUssQ0FBQ2tELElBQUs7VUFDakJDLFFBQVEsRUFBRW5ELEtBQUssQ0FBQ21ELFFBQVM7VUFDekJwQyxNQUFNLEVBQUVKLHFCQUFxQixDQUFDK0IsU0FBUyxDQUFFO1VBQ3pDVyxNQUFNLEVBQUVyRCxLQUFLLENBQUNxRCxNQUFPO1VBQ3JCL0IsTUFBTSxFQUFFdEIsS0FBSyxDQUFDc0I7UUFBTyxDQUMxQyxDQUFDO01BQ04sS0FBSyxRQUFRO1FBQ1Qsb0JBQU8vRCxNQUFBLENBQUFxQyxPQUFBLENBQUFvRCxhQUFBLENBQUMvRSxXQUFBLENBQUEyQixPQUFVO1VBQUNxRCxVQUFVLEVBQUVqRCxLQUFLLENBQUNpRCxVQUFXO1VBQzdCNUMsTUFBTSxFQUFFcUMsU0FBVTtVQUNsQlEsSUFBSSxFQUFFbEQsS0FBSyxDQUFDa0QsSUFBSztVQUNqQkMsUUFBUSxFQUFFbkQsS0FBSyxDQUFDbUQsUUFBUztVQUN6QnBDLE1BQU0sRUFBRUoscUJBQXFCLENBQUMrQixTQUFTLENBQUU7VUFDekNVLGtCQUFrQixFQUFFQSxDQUFBLEtBQU12QixlQUFlLENBQUMsQ0FBRTtVQUM1Q3dCLE1BQU0sRUFBRXJELEtBQUssQ0FBQ3FELE1BQU87VUFDckIvQixNQUFNLEVBQUV0QixLQUFLLENBQUNzQjtRQUFPLENBQ3ZDLENBQUM7TUFDTixLQUFLLE1BQU07UUFDUCxvQkFBTy9ELE1BQUEsQ0FBQXFDLE9BQUEsQ0FBQW9ELGFBQUEsQ0FBQzlFLFdBQUEsQ0FBQTBCLE9BQVU7VUFBQ3FELFVBQVUsRUFBRWpELEtBQUssQ0FBQ2lELFVBQVc7VUFDN0I1QyxNQUFNLEVBQUVxQyxTQUFVO1VBQ2xCUSxJQUFJLEVBQUVsRCxLQUFLLENBQUNrRCxJQUFLO1VBQ2pCQyxRQUFRLEVBQUVuRCxLQUFLLENBQUNtRCxRQUFTO1VBQ3pCcEMsTUFBTSxFQUFFSixxQkFBcUIsQ0FBQytCLFNBQVMsQ0FBRTtVQUN6Q1Usa0JBQWtCLEVBQUVBLENBQUEsS0FBTXZCLGVBQWUsQ0FBQyxDQUFFO1VBQzVDd0IsTUFBTSxFQUFFckQsS0FBSyxDQUFDcUQsTUFBTztVQUNyQi9CLE1BQU0sRUFBRXRCLEtBQUssQ0FBQ3NCO1FBQU8sQ0FDdkMsQ0FBQztNQUNOLEtBQUssZUFBZTtRQUNoQixvQkFBTy9ELE1BQUEsQ0FBQXFDLE9BQUEsQ0FBQW9ELGFBQUEsQ0FBQzlELGFBQUEsQ0FBQVUsT0FBWTtVQUFDcUQsVUFBVSxFQUFFakQsS0FBSyxDQUFDaUQsVUFBVztVQUM3QjVDLE1BQU0sRUFBRXFDLFNBQVU7VUFDbEJRLElBQUksRUFBRWxELEtBQUssQ0FBQ2tELElBQUs7VUFDakJDLFFBQVEsRUFBRW5ELEtBQUssQ0FBQ21ELFFBQVM7VUFDekJwQyxNQUFNLEVBQUVKLHFCQUFxQixDQUFDK0IsU0FBUyxDQUFFO1VBQ3pDVSxrQkFBa0IsRUFBRUEsQ0FBQSxLQUFNdkIsZUFBZSxDQUFDLENBQUU7VUFDNUN3QixNQUFNLEVBQUVyRCxLQUFLLENBQUNxRCxNQUFPO1VBQ3JCL0IsTUFBTSxFQUFFdEIsS0FBSyxDQUFDc0I7UUFBTyxDQUN6QyxDQUFDO01BQ04sS0FBSyxVQUFVO1FBQ1gsb0JBQU8vRCxNQUFBLENBQUFxQyxPQUFBLENBQUFvRCxhQUFBLENBQUM1RSxTQUFBLENBQUF3QixPQUFRO1VBQUNxRCxVQUFVLEVBQUVqRCxLQUFLLENBQUNpRCxVQUFXO1VBQzdCNUMsTUFBTSxFQUFFcUMsU0FBVTtVQUNsQlEsSUFBSSxFQUFFbEQsS0FBSyxDQUFDa0QsSUFBSztVQUNqQkMsUUFBUSxFQUFFbkQsS0FBSyxDQUFDbUQsUUFBUztVQUN6QnBDLE1BQU0sRUFBRUoscUJBQXFCLENBQUMrQixTQUFTLENBQUU7VUFDekNVLGtCQUFrQixFQUFFQSxDQUFBLEtBQU12QixlQUFlLENBQUMsQ0FBRTtVQUM1Q3dCLE1BQU0sRUFBRXJELEtBQUssQ0FBQ3FELE1BQU87VUFDckIvQixNQUFNLEVBQUV0QixLQUFLLENBQUNzQjtRQUFPLENBQ3JDLENBQUM7TUFDTixLQUFLLFFBQVE7UUFDVCxvQkFBTy9ELE1BQUEsQ0FBQXFDLE9BQUEsQ0FBQW9ELGFBQUEsQ0FBQzNELE9BQUEsQ0FBQU8sT0FBTTtVQUFDcUQsVUFBVSxFQUFFakQsS0FBSyxDQUFDaUQsVUFBVztVQUM3QjVDLE1BQU0sRUFBRXFDLFNBQVU7VUFDbEJRLElBQUksRUFBRWxELEtBQUssQ0FBQ2tELElBQUs7VUFDakJDLFFBQVEsRUFBRW5ELEtBQUssQ0FBQ21ELFFBQVM7VUFDekJwQyxNQUFNLEVBQUVKLHFCQUFxQixDQUFDK0IsU0FBUyxDQUFFO1VBQ3pDVSxrQkFBa0IsRUFBRUEsQ0FBQSxLQUFNdkIsZUFBZSxDQUFDLENBQUU7VUFDNUN3QixNQUFNLEVBQUVyRCxLQUFLLENBQUNxRCxNQUFPO1VBQ3JCL0IsTUFBTSxFQUFFdEIsS0FBSyxDQUFDc0I7UUFBTyxDQUNuQyxDQUFDO01BQ04sS0FBSyxPQUFPO1FBQ1Isb0JBQU8vRCxNQUFBLENBQUFxQyxPQUFBLENBQUFvRCxhQUFBLENBQUMzRSxXQUFBLENBQUF1QixPQUFVO1VBQUNxRCxVQUFVLEVBQUVqRCxLQUFLLENBQUNpRCxVQUFXO1VBQzdCNUMsTUFBTSxFQUFFcUMsU0FBVTtVQUNsQlEsSUFBSSxFQUFFbEQsS0FBSyxDQUFDa0QsSUFBSztVQUNqQkMsUUFBUSxFQUFFbkQsS0FBSyxDQUFDbUQsUUFBUztVQUN6QnBDLE1BQU0sRUFBRUoscUJBQXFCLENBQUMrQixTQUFTLENBQUU7VUFDekNVLGtCQUFrQixFQUFFQSxDQUFBLEtBQU12QixlQUFlLENBQUMsQ0FBRTtVQUM1Q3dCLE1BQU0sRUFBRXJELEtBQUssQ0FBQ3FELE1BQU87VUFDckIvQixNQUFNLEVBQUV0QixLQUFLLENBQUNzQjtRQUFPLENBQ3ZDLENBQUM7TUFDTixLQUFLLGFBQWE7UUFDZCxvQkFBTy9ELE1BQUEsQ0FBQXFDLE9BQUEsQ0FBQW9ELGFBQUEsQ0FBQzFFLFlBQUEsQ0FBQXNCLE9BQVc7VUFBQ3FELFVBQVUsRUFBRWpELEtBQUssQ0FBQ2lELFVBQVc7VUFDN0I1QyxNQUFNLEVBQUVxQyxTQUFVO1VBQ2xCUSxJQUFJLEVBQUVsRCxLQUFLLENBQUNrRCxJQUFLO1VBQ2pCQyxRQUFRLEVBQUVuRCxLQUFLLENBQUNtRCxRQUFTO1VBQ3pCcEMsTUFBTSxFQUFFSixxQkFBcUIsQ0FBQytCLFNBQVMsQ0FBRTtVQUN6Q1Usa0JBQWtCLEVBQUVBLENBQUEsS0FBTXZCLGVBQWUsQ0FBQyxDQUFFO1VBQzVDd0IsTUFBTSxFQUFFckQsS0FBSyxDQUFDcUQsTUFBTztVQUNyQi9CLE1BQU0sRUFBRXRCLEtBQUssQ0FBQ3NCO1FBQU8sQ0FDeEMsQ0FBQztNQUNOLEtBQUssY0FBYztRQUNmLG9CQUFPL0QsTUFBQSxDQUFBcUMsT0FBQSxDQUFBb0QsYUFBQSxDQUFDMUUsWUFBQSxDQUFBc0IsT0FBVztVQUFDcUQsVUFBVSxFQUFFakQsS0FBSyxDQUFDaUQsVUFBVztVQUM3QjVDLE1BQU0sRUFBRXFDLFNBQVU7VUFDbEJRLElBQUksRUFBRWxELEtBQUssQ0FBQ2tELElBQUs7VUFDakJDLFFBQVEsRUFBRW5ELEtBQUssQ0FBQ21ELFFBQVM7VUFDekJwQyxNQUFNLEVBQUVKLHFCQUFxQixDQUFDK0IsU0FBUyxDQUFFO1VBQ3pDYyxLQUFLLEVBQUUsT0FBUTtVQUNmSixrQkFBa0IsRUFBRUEsQ0FBQSxLQUFNdkIsZUFBZSxDQUFDLENBQUU7VUFDNUN3QixNQUFNLEVBQUVyRCxLQUFLLENBQUNxRCxNQUFPO1VBQ3JCL0IsTUFBTSxFQUFFdEIsS0FBSyxDQUFDc0I7UUFBTyxDQUN4QyxDQUFDO01BQ04sS0FBSyxtQkFBbUI7UUFDcEIsb0JBQU8vRCxNQUFBLENBQUFxQyxPQUFBLENBQUFvRCxhQUFBLENBQUM3RCxxQkFBQSxDQUFBUyxPQUFvQjtVQUN4QnFELFVBQVUsRUFBRWpELEtBQUssQ0FBQ2lELFVBQVc7VUFDN0I1QyxNQUFNLEVBQUVxQyxTQUFVO1VBQ2xCUSxJQUFJLEVBQUVsRCxLQUFLLENBQUNrRCxJQUFLO1VBQ2pCQyxRQUFRLEVBQUVuRCxLQUFLLENBQUNtRCxRQUFTO1VBQ3pCcEMsTUFBTSxFQUFFSixxQkFBcUIsQ0FBQytCLFNBQVMsQ0FBRTtVQUN6Q1Usa0JBQWtCLEVBQUVBLENBQUEsS0FBTXZCLGVBQWUsQ0FBQyxDQUFFO1VBQzVDd0IsTUFBTSxFQUFFckQsS0FBSyxDQUFDcUQsTUFBTztVQUNyQi9CLE1BQU0sRUFBRXRCLEtBQUssQ0FBQ3NCO1FBQU8sQ0FDeEIsQ0FBQztNQUNOLEtBQUssZUFBZTtRQUNoQixvQkFBTy9ELE1BQUEsQ0FBQXFDLE9BQUEsQ0FBQW9ELGFBQUEsQ0FBQ3pFLGFBQUEsQ0FBQXFCLE9BQVk7VUFBQ3FELFVBQVUsRUFBRWpELEtBQUssQ0FBQ2lELFVBQVc7VUFDN0I1QyxNQUFNLEVBQUVxQyxTQUFVO1VBQ2xCUSxJQUFJLEVBQUVsRCxLQUFLLENBQUNrRCxJQUFLO1VBQ2pCQyxRQUFRLEVBQUVuRCxLQUFLLENBQUNtRCxRQUFTO1VBQ3pCcEMsTUFBTSxFQUFFSixxQkFBcUIsQ0FBQytCLFNBQVMsQ0FBRTtVQUN6Q1Usa0JBQWtCLEVBQUVBLENBQUEsS0FBTXZCLGVBQWUsQ0FBQyxDQUFFO1VBQzVDd0IsTUFBTSxFQUFFckQsS0FBSyxDQUFDcUQsTUFBTztVQUNyQi9CLE1BQU0sRUFBRXRCLEtBQUssQ0FBQ3NCO1FBQU8sQ0FDekMsQ0FBQztNQUNOLEtBQUssTUFBTTtRQUNQLG9CQUFPL0QsTUFBQSxDQUFBcUMsT0FBQSxDQUFBb0QsYUFBQSxDQUFDeEUsVUFBQSxDQUFBb0IsT0FBUztVQUFDcUQsVUFBVSxFQUFFakQsS0FBSyxDQUFDaUQsVUFBVztVQUM3QjVDLE1BQU0sRUFBRXFDLFNBQVU7VUFDbEJRLElBQUksRUFBRWxELEtBQUssQ0FBQ2tELElBQUs7VUFDakJDLFFBQVEsRUFBRW5ELEtBQUssQ0FBQ21ELFFBQVM7VUFDekJwQyxNQUFNLEVBQUVKLHFCQUFxQixDQUFDK0IsU0FBUyxDQUFFO1VBQ3pDVSxrQkFBa0IsRUFBRUEsQ0FBQSxLQUFNdkIsZUFBZSxDQUFDLENBQUU7VUFDNUN3QixNQUFNLEVBQUVyRCxLQUFLLENBQUNxRCxNQUFPO1VBQ3JCL0IsTUFBTSxFQUFFdEIsS0FBSyxDQUFDc0I7UUFBTyxDQUN0QyxDQUFDO01BQ04sS0FBSyxNQUFNO1FBQ1Asb0JBQU8vRCxNQUFBLENBQUFxQyxPQUFBLENBQUFvRCxhQUFBLENBQUM3RSxXQUFBLENBQUF5QixPQUFVO1VBQ2RxRCxVQUFVLEVBQUVqRCxLQUFLLENBQUNpRCxVQUFXO1VBQzdCNUMsTUFBTSxFQUFFcUMsU0FBVTtVQUNsQlEsSUFBSSxFQUFFbEQsS0FBSyxDQUFDa0QsSUFBSztVQUNqQkMsUUFBUSxFQUFFbkQsS0FBSyxDQUFDbUQsUUFBUztVQUN6QnBDLE1BQU0sRUFBRUoscUJBQXFCLENBQUMrQixTQUFTLENBQUU7VUFDekNVLGtCQUFrQixFQUFFQSxDQUFBLEtBQU12QixlQUFlLENBQUMsQ0FBRTtVQUM1Q3dCLE1BQU0sRUFBRXJELEtBQUssQ0FBQ3FELE1BQU87VUFDckIvQixNQUFNLEVBQUV0QixLQUFLLENBQUNzQjtRQUFPLENBQ3hCLENBQUM7TUFDTixLQUFLLGNBQWM7UUFDZixvQkFBTy9ELE1BQUEsQ0FBQXFDLE9BQUEsQ0FBQW9ELGFBQUEsQ0FBQ3ZFLFlBQUEsQ0FBQW1CLE9BQVc7VUFDZnFELFVBQVUsRUFBRWpELEtBQUssQ0FBQ2lELFVBQVc7VUFDN0I1QyxNQUFNLEVBQUVxQyxTQUFVO1VBQ2xCUSxJQUFJLEVBQUVsRCxLQUFLLENBQUNrRCxJQUFLO1VBQ2pCQyxRQUFRLEVBQUVuRCxLQUFLLENBQUNtRCxRQUFTO1VBQ3pCcEMsTUFBTSxFQUFFSixxQkFBcUIsQ0FBQytCLFNBQVMsQ0FBRTtVQUN6Q1Usa0JBQWtCLEVBQUVBLENBQUEsS0FBTXZCLGVBQWUsQ0FBQyxDQUFFO1VBQzVDd0IsTUFBTSxFQUFFckQsS0FBSyxDQUFDcUQsTUFBTztVQUNyQi9CLE1BQU0sRUFBRXRCLEtBQUssQ0FBQ3NCO1FBQU8sQ0FDeEIsQ0FBQztNQUNOLEtBQUssYUFBYTtRQUNkLG9CQUFPL0QsTUFBQSxDQUFBcUMsT0FBQSxDQUFBb0QsYUFBQSxDQUFDdEUsV0FBQSxDQUFBa0IsT0FBVTtVQUNkcUQsVUFBVSxFQUFFakQsS0FBSyxDQUFDaUQsVUFBVztVQUM3QjVDLE1BQU0sRUFBRXFDLFNBQVU7VUFDbEJRLElBQUksRUFBRWxELEtBQUssQ0FBQ2tELElBQUs7VUFDakJDLFFBQVEsRUFBRW5ELEtBQUssQ0FBQ21ELFFBQVM7VUFDekJwQyxNQUFNLEVBQUVKLHFCQUFxQixDQUFDK0IsU0FBUyxDQUFFO1VBQ3pDVSxrQkFBa0IsRUFBRUEsQ0FBQSxLQUFNdkIsZUFBZSxDQUFDLENBQUU7VUFDNUN3QixNQUFNLEVBQUVyRCxLQUFLLENBQUNxRCxNQUFPO1VBQ3JCL0IsTUFBTSxFQUFFdEIsS0FBSyxDQUFDc0I7UUFBTyxDQUN4QixDQUFDO01BQ04sS0FBSyxRQUFRO1FBQ1Qsb0JBQU8vRCxNQUFBLENBQUFxQyxPQUFBLENBQUFvRCxhQUFBLENBQUNoRSxPQUFBLENBQUFZLE9BQU07VUFDVlMsTUFBTSxFQUFFcUMsU0FBVTtVQUNsQlEsSUFBSSxFQUFFbEQsS0FBSyxDQUFDa0QsSUFBSztVQUNqQm5DLE1BQU0sRUFBRUoscUJBQXFCLENBQUMrQixTQUFTLENBQUU7VUFDekNwQixNQUFNLEVBQUV0QixLQUFLLENBQUNzQjtRQUFPLENBQ3hCLENBQUM7TUFDTixLQUFLLFlBQVk7UUFDYixvQkFBTy9ELE1BQUEsQ0FBQXFDLE9BQUEsQ0FBQW9ELGFBQUEsQ0FBQy9ELFVBQUEsQ0FBQVcsT0FBUztVQUNiUyxNQUFNLEVBQUVxQyxTQUFVO1VBQ2xCUSxJQUFJLEVBQUVsRCxLQUFLLENBQUNrRCxJQUFLO1VBQ2pCbkMsTUFBTSxFQUFFSixxQkFBcUIsQ0FBQytCLFNBQVMsQ0FBRTtVQUN6Q3BCLE1BQU0sRUFBRXRCLEtBQUssQ0FBQ3NCO1FBQU8sQ0FDeEIsQ0FBQztNQUNOLEtBQUssUUFBUTtRQUNULG9CQUFPL0QsTUFBQSxDQUFBcUMsT0FBQSxDQUFBb0QsYUFBQSxDQUFDdkQsT0FBQSxDQUFBZ0UsTUFBTTtVQUNWcEQsTUFBTSxFQUFFcUMsU0FBVTtVQUNsQlEsSUFBSSxFQUFFbEQsS0FBSyxDQUFDa0QsSUFBSztVQUNqQm5DLE1BQU0sRUFBRUoscUJBQXFCLENBQUMrQixTQUFTLENBQUU7VUFDekNwQixNQUFNLEVBQUV0QixLQUFLLENBQUNzQjtRQUFPLENBQ3hCLENBQUM7TUFDTixLQUFLLE1BQU07UUFDUCxvQkFBTy9ELE1BQUEsQ0FBQXFDLE9BQUEsQ0FBQW9ELGFBQUEsQ0FBQzFELFVBQUEsQ0FBQU0sT0FBUztVQUNicUQsVUFBVSxFQUFFakQsS0FBSyxDQUFDaUQsVUFBVztVQUM3QjVDLE1BQU0sRUFBRXFDLFNBQVU7VUFDbEJRLElBQUksRUFBRWxELEtBQUssQ0FBQ2tELElBQUs7VUFDakJDLFFBQVEsRUFBRW5ELEtBQUssQ0FBQ21ELFFBQVM7VUFDekJwQyxNQUFNLEVBQUVKLHFCQUFxQixDQUFDK0IsU0FBUyxDQUFFO1VBQ3pDVSxrQkFBa0IsRUFBRUEsQ0FBQSxLQUFNdkIsZUFBZSxDQUFDLENBQUU7VUFDNUN3QixNQUFNLEVBQUVyRCxLQUFLLENBQUNxRCxNQUFPO1VBQ3JCL0IsTUFBTSxFQUFFdEIsS0FBSyxDQUFDc0I7UUFBTyxDQUN4QixDQUFDO01BQ04sS0FBSyw2QkFBNkI7UUFDOUIsb0JBQU8vRCxNQUFBLENBQUFxQyxPQUFBLENBQUFvRCxhQUFBLENBQUNsRSwrQkFBQSxDQUFBYyxPQUE4QjtVQUNsQ3FELFVBQVUsRUFBRWpELEtBQUssQ0FBQ2lELFVBQVc7VUFDN0I1QyxNQUFNLEVBQUVxQyxTQUFVO1VBQ2xCUSxJQUFJLEVBQUVsRCxLQUFLLENBQUNrRCxJQUFLO1VBQ2pCQyxRQUFRLEVBQUVuRCxLQUFLLENBQUNtRCxRQUFTO1VBQ3pCcEMsTUFBTSxFQUFFSixxQkFBcUIsQ0FBQytCLFNBQVMsQ0FBRTtVQUN6Q1Usa0JBQWtCLEVBQUVBLENBQUEsS0FBTXZCLGVBQWUsQ0FBQyxDQUFFO1VBQzVDd0IsTUFBTSxFQUFFckQsS0FBSyxDQUFDcUQsTUFBTztVQUNyQi9CLE1BQU0sRUFBRXRCLEtBQUssQ0FBQ3NCO1FBQU8sQ0FDeEIsQ0FBQztNQUNOLEtBQUssNEJBQTRCO1FBQzdCLG9CQUFPL0QsTUFBQSxDQUFBcUMsT0FBQSxDQUFBb0QsYUFBQSxDQUFDekQseUJBQUEsQ0FBQUssT0FBd0I7VUFDNUJxRCxVQUFVLEVBQUVqRCxLQUFLLENBQUNpRCxVQUFXO1VBQzdCNUMsTUFBTSxFQUFFcUMsU0FBVTtVQUNsQlEsSUFBSSxFQUFFbEQsS0FBSyxDQUFDa0QsSUFBSztVQUNqQkMsUUFBUSxFQUFFbkQsS0FBSyxDQUFDbUQsUUFBUztVQUN6QnBDLE1BQU0sRUFBRUoscUJBQXFCLENBQUMrQixTQUFTLENBQUU7VUFDekNVLGtCQUFrQixFQUFFQSxDQUFBLEtBQU12QixlQUFlLENBQUMsQ0FBRTtVQUM1Q3dCLE1BQU0sRUFBRXJELEtBQUssQ0FBQ3FELE1BQU87VUFDckIvQixNQUFNLEVBQUV0QixLQUFLLENBQUNzQjtRQUFPLENBQ3hCLENBQUM7TUFDTjtRQUNJLG9CQUFPL0QsTUFBQSxDQUFBcUMsT0FBQSxDQUFBb0QsYUFBQSxjQUFNLHNDQUFzQyxHQUFHTixTQUFTLENBQUNDLFNBQVMsR0FBRyxLQUFLLEdBQUdELFNBQVMsQ0FBQzVCLEVBQVEsQ0FBQztJQUMvRztFQUNKO0VBRUEsTUFBTUcsR0FBRyxHQUFHQSxDQUFBLEtBQU07SUFDZCxPQUFPO01BQ0gsSUFBSUgsRUFBRUEsQ0FBQSxFQUFHO1FBQ0wsT0FBT2QsS0FBSyxDQUFDSyxNQUFNLENBQUNTLEVBQUU7TUFDMUIsQ0FBQztNQUNELElBQUk0QyxpQkFBaUJBLENBQUEsRUFBRztRQUNwQixJQUFJQyxVQUFVLEdBQUcsRUFBRTtRQUNuQixLQUFLLE1BQU0vQyxLQUFLLElBQUlaLEtBQUssQ0FBQ0ssTUFBTSxDQUFDRSxNQUFNLEVBQUU7VUFDckNvRCxVQUFVLENBQUNDLElBQUksQ0FBQyxDQUFDekQsY0FBSyxDQUFDVSxNQUFNLENBQUNELEtBQUssQ0FBQ2lELFdBQVcsQ0FBQyxHQUFHakQsS0FBSyxDQUFDaUQsV0FBVyxHQUFHakQsS0FBSyxDQUFDRSxFQUFFLENBQUM7UUFDcEY7UUFFQSxPQUFPNkMsVUFBVTtNQUNyQixDQUFDO01BQ0QsSUFBSWhDLFFBQVFBLENBQUNBLFFBQVEsRUFBRTtRQUNuQkMsNEJBQTRCLENBQUNELFFBQVEsQ0FBQztNQUMxQyxDQUFDO01BQ0RtQyxLQUFLQSxDQUFBLEVBQUc7UUFDSixJQUFJM0IsVUFBVSxHQUFHQyxNQUFNLENBQUNDLG1CQUFtQixDQUFDN0IsZ0JBQWdCLENBQUM7UUFDN0QsS0FBSyxNQUFNOEIsUUFBUSxJQUFJSCxVQUFVLEVBQUU7VUFDL0IsSUFBSTRCLFlBQVksR0FBR3ZELGdCQUFnQixDQUFDOEIsUUFBUSxDQUFDO1VBQzdDeUIsWUFBWSxDQUFDOUMsR0FBRyxDQUFDK0MsS0FBSyxHQUFHLElBQUk7UUFDakM7TUFDSixDQUFDO01BQ0RDLFdBQVcsRUFBRUEsQ0FBQSxLQUFNO1FBQ2YsSUFBSUMsUUFBUSxHQUFHLEVBQUU7UUFDakIsSUFBSS9CLFVBQVUsR0FBR0MsTUFBTSxDQUFDQyxtQkFBbUIsQ0FBQzdCLGdCQUFnQixDQUFDO1FBQzdELEtBQUssTUFBTThCLFFBQVEsSUFBSUgsVUFBVSxFQUFFO1VBQy9CK0IsUUFBUSxDQUFDTixJQUFJLENBQUNwRCxnQkFBZ0IsQ0FBQzhCLFFBQVEsQ0FBQyxDQUFDO1FBQzdDO1FBRUEsT0FBTzRCLFFBQVE7TUFDbkIsQ0FBQztNQUNELElBQUlDLEtBQUtBLENBQUNBLEtBQUssRUFBRTtRQUNiLEtBQUssTUFBTXZELEtBQUssSUFBSVosS0FBSyxDQUFDSyxNQUFNLENBQUNFLE1BQU0sRUFBRTtVQUNyQ1AsS0FBSyxDQUFDa0QsSUFBSSxDQUFDLENBQUMsQ0FBQ2lCLEtBQUssQ0FBQ3ZELEtBQUssQ0FBQ0UsRUFBRSxDQUFDLEdBQUdxRCxLQUFLLENBQUN2RCxLQUFLLENBQUNFLEVBQUUsQ0FBQztVQUU5QyxJQUFJaUQsWUFBWSxHQUFHdkQsZ0JBQWdCLENBQUNJLEtBQUssQ0FBQ0UsRUFBRSxDQUFDO1VBQzdDaUQsWUFBWSxDQUFDOUMsR0FBRyxDQUFDK0MsS0FBSyxHQUFHRyxLQUFLLENBQUN2RCxLQUFLLENBQUNFLEVBQUUsQ0FBQztRQUM1QztNQUNKLENBQUM7TUFDRCxJQUFJa0QsS0FBS0EsQ0FBQSxFQUFHO1FBQ1IsSUFBSUEsS0FBSyxHQUFHLENBQUMsQ0FBQztRQUNkLElBQUlJLFNBQVMsR0FBR3BFLEtBQUssQ0FBQ2tELElBQUksQ0FBQyxDQUFDLENBQUNjLEtBQUs7UUFFbEMsSUFBSUksU0FBUyxLQUFLLElBQUksRUFBRTtVQUNwQixPQUFPLElBQUk7UUFDZjtRQUVBLEtBQUssTUFBTXhELEtBQUssSUFBSVosS0FBSyxDQUFDSyxNQUFNLENBQUNFLE1BQU0sRUFBRTtVQUNyQ3lELEtBQUssQ0FBQ3BELEtBQUssQ0FBQ0UsRUFBRSxDQUFDLEdBQUdzRCxTQUFTLENBQUN4RCxLQUFLLENBQUNFLEVBQUUsQ0FBQztRQUN6QztRQUVBLE9BQU9rRCxLQUFLO01BQ2hCLENBQUM7TUFDREssUUFBUSxFQUFFQSxDQUFDQyxZQUFZLEVBQUVDLFdBQVcsS0FBSztRQUNyQyxJQUFJQyxPQUFPLEdBQUcsQ0FBQ3JFLGNBQUssQ0FBQ1UsTUFBTSxDQUFDeUQsWUFBWSxDQUFDRyxXQUFXLENBQUMsR0FBR0gsWUFBWSxDQUFDRyxXQUFXLEdBQzVFLENBQUN0RSxjQUFLLENBQUNVLE1BQU0sQ0FBQ2IsS0FBSyxDQUFDSyxNQUFNLENBQUMsR0FBR0wsS0FBSyxDQUFDSyxNQUFNLENBQUNvRSxXQUFXLEdBQUcsSUFBSTtRQUNqRSxJQUFJQyxjQUFjLEdBQUcsQ0FBQ3ZFLGNBQUssQ0FBQ1UsTUFBTSxDQUFDYixLQUFLLENBQUNLLE1BQU0sQ0FBQzJELEtBQUssQ0FBQyxHQUFHaEUsS0FBSyxDQUFDSyxNQUFNLENBQUMyRCxLQUFLLEdBQ3ZFTSxZQUFZLENBQUNOLEtBQUs7UUFFdEIsSUFBSVUsY0FBYyxFQUFFO1VBQ2hCLElBQUlDLFdBQVcsR0FBR0QsY0FBYyxDQUFDRSxRQUFRLENBQUMsQ0FBQyxDQUN0Q0MsVUFBVSxDQUFDLGFBQWEsQ0FBQztVQUM5QixJQUFJQyxXQUFXLEdBQUdDLDJCQUFrQixDQUFDQyxZQUFZLENBQUNOLGNBQWMsQ0FBQztVQUNqRSxJQUFJTyxHQUFHLEdBQUdOLFdBQVcsSUFBSUcsV0FBVyxHQUFHQywyQkFBa0IsQ0FBQ0csc0JBQXNCLENBQUNSLGNBQWMsRUFBRUgsV0FBVyxHQUFHQSxXQUFXLENBQUNZLElBQUksR0FBRyxJQUFJLENBQUMsR0FBR1QsY0FBYztVQUN4SjFFLEtBQUssQ0FBQ2tELElBQUksQ0FBQyxDQUFDLENBQ1BrQyxRQUFRLENBQUNILEdBQUcsQ0FBQztVQUVsQixJQUFJbkQsS0FBSyxHQUFHLElBQUlDLGNBQUssQ0FBQy9CLEtBQUssQ0FBQ2UsTUFBTSxFQUFFZixLQUFLLENBQUNzQixNQUFNLEVBQUUyRCxHQUFHLENBQUM7VUFDdEQxRCxtQkFBWSxDQUFDUyxTQUFTLENBQUNDLGtCQUFTLENBQUNvRCxZQUFZLEVBQUV2RCxLQUFLLENBQUM7UUFDekQsQ0FBQyxNQUFNO1VBQ0gsSUFBSSxDQUFDM0IsY0FBSyxDQUFDVSxNQUFNLENBQUMyRCxPQUFPLENBQUMsRUFBRTtZQUN4QixJQUFJYyxNQUFNLEdBQUdkLE9BQU8sQ0FBQ2xCLElBQUksS0FBSyxLQUFLLEdBQUdpQyxzQkFBUyxHQUFHQyx1QkFBVTtZQUM1REYsTUFBTSxDQUFDO2NBQ0hkLE9BQU8sRUFBRUEsT0FBTztjQUNoQjlCLFNBQVMsRUFBRStDLEdBQUcsQ0FBQ0MsT0FBTztjQUN0QnBFLE1BQU0sRUFBRXRCLEtBQUssQ0FBQ3NCO1lBQ2xCLENBQUMsQ0FBQyxDQUFDcUUsSUFBSSxDQUFFQyxNQUFNLElBQUs7Y0FDaEIsSUFBSVQsSUFBSSxHQUFHWCxPQUFPLENBQUNsQixJQUFJLEtBQUssS0FBSyxHQUFHc0MsTUFBTSxDQUFDVCxJQUFJLEdBQUdTLE1BQU07Y0FDeEQsSUFBSVQsSUFBSSxFQUFFO2dCQUNObkYsS0FBSyxDQUFDa0QsSUFBSSxDQUFDLENBQUMsQ0FDUGtDLFFBQVEsQ0FBQ0QsSUFBSSxDQUFDO2dCQUVuQixJQUFJckQsS0FBSyxHQUFHLElBQUlDLGNBQUssQ0FBQy9CLEtBQUssQ0FBQ2UsTUFBTSxFQUFFZixLQUFLLENBQUNzQixNQUFNLEVBQUU2RCxJQUFJLENBQUM7Z0JBQ3ZENUQsbUJBQVksQ0FBQ1MsU0FBUyxDQUFDQyxrQkFBUyxDQUFDb0QsWUFBWSxFQUFFdkQsS0FBSyxDQUFDO2NBQ3pEO1lBQ0osQ0FBQyxDQUFDLENBQUMrRCxLQUFLLENBQUVuRyxDQUFDLElBQUs7Y0FDWk0sS0FBSyxDQUFDNEMsT0FBTyxDQUFDQyxLQUFLLENBQUNuRCxDQUFDLENBQUM7Y0FDdEJTLGNBQUssQ0FBQzJGLG1CQUFtQixDQUFDcEcsQ0FBQyxFQUFFTSxLQUFLLENBQUNzQixNQUFNLENBQUM7WUFDOUMsQ0FBQyxDQUFDO1lBRUYsT0FBTyxJQUFJO1VBQ2Y7UUFDSjtNQUNKLENBQUM7TUFDREgsT0FBT0EsQ0FBQSxFQUFHO1FBQ04sSUFBSSxDQUFDaEIsY0FBSyxDQUFDVSxNQUFNLENBQUNiLEtBQUssQ0FBQ0ssTUFBTSxDQUFDLElBQUksQ0FBQ0YsY0FBSyxDQUFDVSxNQUFNLENBQUNiLEtBQUssQ0FBQ0ssTUFBTSxDQUFDSSxPQUFPLENBQUMsRUFBRTtVQUNwRUMsVUFBVSxDQUFDUCxjQUFLLENBQUM0Qyx5QkFBeUIsQ0FBQy9DLEtBQUssQ0FBQ0ssTUFBTSxDQUFDSSxPQUFPLEVBQUVULEtBQUssQ0FBQ0ssTUFBTSxDQUFDUyxFQUFFLENBQUMsQ0FBQztRQUN0RixDQUFDLE1BQU07VUFDSEosVUFBVSxDQUFDLElBQUksQ0FBQztRQUNwQjtRQUVBLElBQUksQ0FBQ1AsY0FBSyxDQUFDVSxNQUFNLENBQUNiLEtBQUssQ0FBQ0ssTUFBTSxDQUFDLElBQUksQ0FBQ0YsY0FBSyxDQUFDVSxNQUFNLENBQUNiLEtBQUssQ0FBQ0ssTUFBTSxDQUFDc0IsUUFBUSxDQUFDLEVBQUU7VUFDckVDLDRCQUE0QixDQUFDekIsY0FBSyxDQUFDNEMseUJBQXlCLENBQUMvQyxLQUFLLENBQUNLLE1BQU0sQ0FBQ3NCLFFBQVEsRUFBRTNCLEtBQUssQ0FBQ0ssTUFBTSxDQUFDUyxFQUFFLENBQUMsQ0FBQztRQUN6RztRQUVBMEIsaUJBQWlCLENBQUMsQ0FBQztNQUN2QjtJQUNKLENBQUM7RUFDTCxDQUFDO0VBRUQsU0FBU3VELE1BQU1BLENBQUNDLFFBQVEsRUFBRTtJQUN0QixPQUNLN0YsY0FBSyxDQUFDVSxNQUFNLENBQUNtRixRQUFRLENBQUN6RixNQUFNLENBQUMsSUFBSXlGLFFBQVEsQ0FBQ3pGLE1BQU0sQ0FBQzBGLE1BQU0sS0FBSyxDQUFDLGdCQUMxRDFJLE1BQUEsQ0FBQXFDLE9BQUEsQ0FBQW9ELGFBQUEsY0FBSyxxQ0FBd0MsQ0FBQyxnQkFFOUN6RixNQUFBLENBQUFxQyxPQUFBLENBQUFvRCxhQUFBLGNBRVEvQyxTQUFTLENBQUNpRyxJQUFJLENBQUNDLEdBQUcsQ0FBQyxDQUFDQyxHQUFHLEVBQUVDLENBQUMsS0FBSztNQUMzQixvQkFBTzlJLE1BQUEsQ0FBQXFDLE9BQUEsQ0FBQW9ELGFBQUE7UUFBS3NELFNBQVMsRUFBQyxpQkFBaUI7UUFBQ0MsR0FBRyxFQUFFRixDQUFFO1FBQ25DN0MsS0FBSyxFQUFFO1VBQ0hnRCxVQUFVLEVBQUUsR0FBRztVQUNmQyxXQUFXLEVBQUU7UUFDakI7TUFBRSxHQUVOTCxHQUFHLENBQUM3RixNQUFNLENBQUM0RixHQUFHLENBQUMsQ0FBQ3ZGLEtBQUssRUFBRThGLEtBQUssS0FBSztRQUFBLElBQUFDLGlCQUFBLEVBQUFDLGtCQUFBO1FBQzdCLElBQUlDLE9BQU87UUFDWCxJQUFJQyxLQUFLO1FBRVQsSUFBSTNHLGNBQUssQ0FBQ1UsTUFBTSxDQUFDRCxLQUFLLENBQUNOLFVBQVUsQ0FBQyxJQUFJSCxjQUFLLENBQUNVLE1BQU0sQ0FBQ0QsS0FBSyxDQUFDTixVQUFVLENBQUN1RyxPQUFPLENBQUMsRUFBRTtVQUMxRUEsT0FBTyxHQUFHLENBQUM7UUFDZixDQUFDLE1BQU07VUFDSCxJQUFJRSxVQUFVLEdBQUc1RyxjQUFLLENBQUM2RyxlQUFlLENBQUNwRyxLQUFLLENBQUM7VUFDN0MsSUFBSW1HLFVBQVUsR0FBRzlHLFNBQVMsQ0FBQ2dILFlBQVksRUFBRTtZQUNyQ0osT0FBTyxHQUFHNUcsU0FBUyxDQUFDZ0gsWUFBWTtVQUNwQyxDQUFDLE1BQU07WUFDSEosT0FBTyxHQUFHRSxVQUFVO1VBQ3hCO1FBQ0o7O1FBRUE7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQSxNQUFNRyxPQUFPLEdBQUcsQ0FBQztRQUNqQixNQUFNQyxNQUFNLEdBQUdsSCxTQUFTLENBQUNnSCxZQUFZO1FBQ3JDSCxLQUFLLEdBQUdELE9BQU8sR0FBR00sTUFBTSxHQUFHLEdBQUc7UUFDOUIsTUFBTUMsU0FBUyxHQUFHLENBQUNELE1BQU0sR0FBR04sT0FBTyxJQUFJSyxPQUFPLEdBQUdDLE1BQU07UUFDdkQsSUFBSUUsY0FBYyxHQUFHO1VBQ2pCQyxXQUFXLEVBQUUsR0FBRztVQUNoQkMsWUFBWSxFQUFFLEdBQUc7VUFDakJmLFVBQVUsRUFBRSxHQUFHO1VBQ2ZDLFdBQVcsRUFBRSxHQUFHO1VBQ2hCZSxRQUFRLEVBQUUsT0FBTztVQUNqQlYsS0FBSyxVQUFBVyxNQUFBLENBQVVYLEtBQUssVUFBQVcsTUFBQSxDQUFPTCxTQUFTO1FBQ3hDLENBQUM7UUFFRHhHLEtBQUssQ0FBQzhGLEtBQUssR0FBR0EsS0FBSztRQUNuQixJQUFJbEQsS0FBSyxHQUFHLENBQUFtRCxpQkFBQSxHQUFBL0YsS0FBSyxDQUFDTixVQUFVLGNBQUFxRyxpQkFBQSxlQUFoQkEsaUJBQUEsQ0FBa0JVLGNBQWMsR0FDeENsSCxjQUFLLENBQUN1SCxZQUFZLEVBQUFkLGtCQUFBLEdBQUNoRyxLQUFLLENBQUNOLFVBQVUsY0FBQXNHLGtCQUFBLHVCQUFoQkEsa0JBQUEsQ0FBa0JTLGNBQWMsRUFBRUEsY0FBYyxDQUFDLEdBQUdBLGNBQWM7UUFDekYsb0JBQU85SixNQUFBLENBQUFxQyxPQUFBLENBQUFvRCxhQUFBO1VBQUt1RCxHQUFHLEVBQUUsQ0FBQ0YsQ0FBQyxHQUFHLENBQUMsSUFBSUssS0FBTTtVQUFDSixTQUFTLEVBQUMsaUNBQWlDO1VBQUM5QyxLQUFLLEVBQUVBO1FBQU0sR0FFbkZmLGVBQWUsQ0FBQzdCLEtBQUssQ0FFeEIsQ0FBQztNQUNWLENBQUMsQ0FFSixDQUFDO0lBQ1YsQ0FBQyxDQUVKLENBQUM7RUFFbEI7RUFFQSxvQkFBT3JELE1BQUEsQ0FBQXFDLE9BQUEsQ0FBQW9ELGFBQUE7SUFBS3NELFNBQVMsRUFBRSxpQkFBa0I7SUFBQzlDLEtBQUssRUFBRXJELGNBQUssQ0FBQ3dILFdBQVcsQ0FDOUQ7TUFDSUMsT0FBTyxFQUFFbkgsT0FBTyxHQUFHLE9BQU8sR0FBRyxNQUFNO01BQ25Db0gsTUFBTSxFQUFFLEdBQUc7TUFDWEwsUUFBUSxFQUFFLE9BQU87TUFDakJNLE9BQU8sRUFBRTtJQUNiLENBQUMsRUFBRTlILEtBQUssQ0FBQ0ssTUFBTTtFQUFFLEdBRWIsQ0FBQ0YsY0FBSyxDQUFDVSxNQUFNLENBQUNiLEtBQUssQ0FBQ0ssTUFBTSxDQUFDQyxVQUFVLENBQUMsSUFBSSxDQUFDSCxjQUFLLENBQUNVLE1BQU0sQ0FBQ2IsS0FBSyxDQUFDSyxNQUFNLENBQUNDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxnQkFDckYvQyxNQUFBLENBQUFxQyxPQUFBLENBQUFvRCxhQUFBO0lBQUtzRCxTQUFTLEVBQUU7RUFBZ0IsR0FDM0J0RyxLQUFLLENBQUNLLE1BQU0sQ0FBQ0MsVUFBVSxDQUFDLE9BQU8sQ0FDL0IsQ0FBQyxHQUVOLElBQUksRUFHUixDQUFDSCxjQUFLLENBQUNVLE1BQU0sQ0FBQ1osU0FBUyxDQUFDLEdBQ3BCOEYsTUFBTSxDQUFDL0YsS0FBSyxDQUFDSyxNQUFNLENBQUMsR0FFcEIsSUFFUCxDQUFDO0FBQ1YsQ0FBQyxDQUFDO0FBQUMsSUFBQTBILFFBQUEsR0FBQUMsT0FBQSxDQUFBcEksT0FBQSxHQUVZQyxRQUFRIiwiaWdub3JlTGlzdCI6W119
|
|
558
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9VdGlscyIsIl9PYnNlcnZhYmxlIiwiX1RleHRGaWVsZCIsIl9DdXJyZW5jeUZpZWxkIiwiX0FkZHJlc3NTZWFyY2giLCJfTG9va3VwRmllbGQiLCJfTXVsdGlMb29rdXBGaWVsZCIsIl9TZWxlY3RJdGVtIiwiX0RhdGVQaWNrZXIiLCJfVGltZVBpY2tlciIsIl9DaGVja2JveCIsIl9MYWJlbEZpZWxkIiwiX1VwbG9hZEZpZWxkIiwiX1RyYW5zZmVyTGlzdCIsIl9HcmlkRmllbGQiLCJfSW1hZ2VFZGl0b3IiLCJfUmFkaW9Hcm91cCIsIl9FdmVudCIsIl9FdmVudFR5cGUiLCJfUmVzdFNlcnZpY2UiLCJfU2lnbmF0dXJlVGVtcGxhdGVEZXNpZ25lckZpZWxkIiwiX0FwcGxpY2F0aW9uTWFuYWdlciIsIl9CdXR0b24iLCJfSHRtbFBhbmVsIiwiX0F1dG9Db21wbGV0ZSIsIl9NdWx0aUZpbGVVcGxvYWRGaWVsZCIsIl9JY29uIiwiX1N3aXRjaCIsIl9JY29uRmllbGQiLCJfRG9jdW1lbnRUZW1wbGF0ZURlc2lnbmVyIiwiX0R5bmFtaWNKUyIsIl9MYXlvdXQiLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJGaWVsZFNldCIsIlJlYWN0IiwibWVtbyIsInByb3BzIiwiZmllbGRHcmlkIiwidXNlU3RhdGUiLCJVdGlscyIsImdldEZpZWxkR3JpZCIsImNvbmZpZyIsImF0dHJpYnV0ZXMiLCJmaWVsZHMiLCJjb21wb25lbnRIYW5kbGVzIiwidmlzaWJsZSIsInNldFZpc2libGUiLCJjcmVhdGVDb21wb25lbnRIYW5kbGUiLCJmaWVsZCIsImlzTnVsbCIsImlkIiwiaGFuZGxlIiwidXNlRWZmZWN0IiwiYXBpIiwidXNlTGF5b3V0RWZmZWN0IiwicmVmcmVzaCIsInBhcnNlZENvbmZpZyIsInBhcnNlQ29uZmlnIiwidmlld0lkIiwiZXZlbnRNYW5hZ2VyIiwiYWRkU3Vic2NyaXB0aW9ucyIsImV2ZW50SGFuZGxpbmdDb25maWciLCJhZGRTeXN0ZW1TdWJzY3JpcHRpb25zIiwiZGlzYWJsZWQiLCJ1cGRhdGVDb21wb25lbnREaXNhYmxlZFN0YXRlIiwiZmlyZUNoYW5nZUV2ZW50IiwiZXZlbnQiLCJFdmVudCIsImZpcmVFdmVudCIsIkV2ZW50VHlwZSIsIlZBTFVFX0NIQU5HRSIsInByb3BlcnRpZXMiLCJPYmplY3QiLCJnZXRPd25Qcm9wZXJ0eU5hbWVzIiwicHJvcGVydHkiLCJjb21wb25lbnRIYW5kbGUiLCJyZWZyZXNoQ29tcG9uZW50cyIsInJlbmRlckNvbXBvbmVudCIsImNvbXBvbmVudCIsImZpZWxkVHlwZSIsImNvbnNvbGUiLCJlcnJvciIsImlzRGlzYWJsZWQiLCJldmFsdWF0ZUJvb2xlYW5FeHByZXNzaW9uIiwiY3JlYXRlRWxlbWVudCIsImtleUhhbmRsZXIiLCJmb3JtIiwicGFyZW50SWQiLCJ2YWx1ZUNoYW5nZUhhbmRsZXIiLCJ2YWx1ZXMiLCJ0eXBlIiwibXVsdGlsaW5lIiwic3R5bGUiLCJMYXlvdXQiLCJmaWVsZERhdGFCaW5kaW5ncyIsImZpZWxkTmFtZXMiLCJwdXNoIiwiZGF0YUJpbmRpbmciLCJjbGVhciIsImNvbXBvbmVudFJlZiIsInZhbHVlIiwiZ2V0Q2hpbGRyZW4iLCJjaGlsZHJlbiIsIm1vZGVsIiwiZm9ybVZhbHVlIiwibG9hZERhdGEiLCJhY3Rpb25Db25maWciLCJhY3Rpb25FdmVudCIsInNlcnZpY2UiLCJkYXRhU2VydmljZSIsImNvbXBvbmVudFZhbHVlIiwiaXNFdmVudERhdGEiLCJ0b1N0cmluZyIsInN0YXJ0c1dpdGgiLCJpc0VwcmVzc2lvbiIsImFwcGxpY2F0aW9uTWFuYWdlciIsImlzRXhwcmVzc2lvbiIsInZhbCIsInJlc29sdmVFeHByZXNzaW9uVmFsdWUiLCJkYXRhIiwiYmluZERhdGEiLCJEQVRBX0FSUklWRUQiLCJtZXRob2QiLCJpbnZva2VScGMiLCJpbnZva2VSZXN0IiwicmVmIiwiY3VycmVudCIsInRoZW4iLCJyZXN1bHQiLCJjYXRjaCIsInB1Ymxpc2hFcnJvck1lc3NhZ2UiLCJyZW5kZXIiLCJmaWVsZFNldCIsImxlbmd0aCIsInJvd3MiLCJtYXAiLCJyb3ciLCJpIiwiY2xhc3NOYW1lIiwia2V5IiwibWFyZ2luTGVmdCIsIm1hcmdpblJpZ2h0IiwiaW5kZXgiLCJfZmllbGQkYXR0cmlidXRlcyIsIl9maWVsZCRhdHRyaWJ1dGVzMiIsImNvbHNwYW4iLCJ3aWR0aCIsImNvbHNwYW5WYWwiLCJnZXRGaWVsZENvbHNwYW4iLCJtYXhDb2xQZXJSb3ciLCJDT0xfR0FQIiwibWF4Q29sIiwiZ2FwT2Zmc2V0IiwiY29udGFpbmVyU3R5bGUiLCJwYWRkaW5nTGVmdCIsInBhZGRpbmdSaWdodCIsIm1pbldpZHRoIiwiY29uY2F0IiwibWVyZ2VPYmplY3RzIiwibWVyZ2VTdHlsZXMiLCJkaXNwbGF5IiwibWFyZ2luIiwicGFkZGluZyIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9mb3JtL0ZpZWxkU2V0LmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyLvu79pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFV0aWxzIGZyb20gJy4uLy4uL1V0aWxzJztcbmltcG9ydCBldmVudE1hbmFnZXIgZnJvbSAnLi4vLi4vZXZlbnQvT2JzZXJ2YWJsZSc7XG5pbXBvcnQgVGV4dEZpZWxkIGZyb20gJy4vVGV4dEZpZWxkJztcbmltcG9ydCBDdXJyZW5jeUZpZWxkIGZyb20gJy4vQ3VycmVuY3lGaWVsZCc7XG5pbXBvcnQgQWRkcmVzc1NlYXJjaCBmcm9tICcuL0FkZHJlc3NTZWFyY2gnO1xuaW1wb3J0IExvb2t1cEZpZWxkIGZyb20gJy4vTG9va3VwRmllbGQnO1xuaW1wb3J0IE11bHRpTG9va3VwRmllbGQgZnJvbSAnLi9NdWx0aUxvb2t1cEZpZWxkJztcbmltcG9ydCBTZWxlY3RJdGVtIGZyb20gJy4vU2VsZWN0SXRlbSc7XG5pbXBvcnQgRGF0ZVBpY2tlciBmcm9tICcuL0RhdGVQaWNrZXInO1xuaW1wb3J0IFRpbWVQaWNrZXIgZnJvbSAnLi9UaW1lUGlja2VyJztcbmltcG9ydCBDaGVja2JveCBmcm9tICcuL0NoZWNrYm94JztcbmltcG9ydCBMYWJlbEZpZWxkIGZyb20gJy4vTGFiZWxGaWVsZCc7XG5pbXBvcnQgVXBsb2FkRmllbGQgZnJvbSAnLi9VcGxvYWRGaWVsZCc7XG5pbXBvcnQgVHJhbnNmZXJMaXN0IGZyb20gJy4vVHJhbnNmZXJMaXN0JztcbmltcG9ydCBHcmlkRmllbGQgZnJvbSAnLi9HcmlkRmllbGQnO1xuaW1wb3J0IEltYWdlRWRpdG9yIGZyb20gJy4vSW1hZ2VFZGl0b3InO1xuaW1wb3J0IFJhZGlvR3JvdXAgZnJvbSAnLi9SYWRpb0dyb3VwJztcbmltcG9ydCBFdmVudCBmcm9tICcuLi8uLi9ldmVudC9FdmVudCc7XG5pbXBvcnQgRXZlbnRUeXBlIGZyb20gJy4uLy4uL2V2ZW50L0V2ZW50VHlwZSc7XG5pbXBvcnQge2ludm9rZVJlc3QsIGludm9rZVJwY30gZnJvbSAnLi4vLi4vUmVzdFNlcnZpY2UnO1xuaW1wb3J0IFNpZ25hdHVyZVRlbXBsYXRlRGVzaWduZXJGaWVsZCBmcm9tICcuL1NpZ25hdHVyZVRlbXBsYXRlRGVzaWduZXJGaWVsZCc7XG5pbXBvcnQgYXBwbGljYXRpb25NYW5hZ2VyIGZyb20gJy4uLy4uL0FwcGxpY2F0aW9uTWFuYWdlcic7XG5pbXBvcnQgJy4vZmllbGRzZXQuY3NzJztcbmltcG9ydCBCdXR0b24gZnJvbSAnLi4vQnV0dG9uJztcbmltcG9ydCBIdG1sUGFuZWwgZnJvbSAnLi4vSHRtbFBhbmVsJztcbmltcG9ydCBBdXRvQ29tcGxldGUgZnJvbSAnLi9BdXRvQ29tcGxldGUnO1xuaW1wb3J0IE11bHRpRmlsZVVwbG9hZEZpZWxkIGZyb20gJy4vTXVsdGlGaWxlVXBsb2FkRmllbGQnO1xuaW1wb3J0IEljb24gZnJvbSAnLi4vSWNvbic7XG5pbXBvcnQgU3dpdGNoIGZyb20gJy4vU3dpdGNoJztcbmltcG9ydCBJY29uRmllbGQgZnJvbSAnLi9JY29uRmllbGQnO1xuaW1wb3J0IERvY3VtZW50VGVtcGxhdGVEZXNpZ25lciBmcm9tIFwiLi4vRG9jdW1lbnRUZW1wbGF0ZURlc2lnbmVyXCI7XG5pbXBvcnQgZHluYW1pY0pTIGZyb20gXCIuLi8uLi9EeW5hbWljSlNcIjtcbmltcG9ydCB7TGF5b3V0fSBmcm9tIFwiLi4vbGF5b3V0L0xheW91dFwiO1xuXG5jb25zdCBGaWVsZFNldCA9IFJlYWN0Lm1lbW8oKHByb3BzKSA9PiB7XG4gICAgY29uc3QgW2ZpZWxkR3JpZF0gPSBSZWFjdC51c2VTdGF0ZShVdGlscy5nZXRGaWVsZEdyaWQocHJvcHMuY29uZmlnLmF0dHJpYnV0ZXMsIHByb3BzLmNvbmZpZy5maWVsZHMpKTtcbiAgICBjb25zdCBbY29tcG9uZW50SGFuZGxlc10gPSBSZWFjdC51c2VTdGF0ZSh7fSk7XG4gICAgY29uc3QgW3Zpc2libGUsIHNldFZpc2libGVdID0gUmVhY3QudXNlU3RhdGUoZmFsc2UpO1xuXG4gICAgY29uc3QgY3JlYXRlQ29tcG9uZW50SGFuZGxlID0gKGZpZWxkKSA9PiB7XG4gICAgICAgIGlmIChVdGlscy5pc051bGwoY29tcG9uZW50SGFuZGxlc1tmaWVsZC5pZF0pKSB7XG4gICAgICAgICAgICBsZXQgaGFuZGxlID0ge307XG4gICAgICAgICAgICBjb21wb25lbnRIYW5kbGVzW2ZpZWxkLmlkXSA9IGhhbmRsZTtcbiAgICAgICAgICAgIHJldHVybiBoYW5kbGU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY29tcG9uZW50SGFuZGxlc1tmaWVsZC5pZF07XG4gICAgfTtcblxuICAgIFJlYWN0LnVzZUVmZmVjdChcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgcHJvcHMuaGFuZGxlLmFwaSA9IGFwaSgpO1xuICAgICAgICB9KTtcblxuICAgIFJlYWN0LnVzZUxheW91dEVmZmVjdChcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgcHJvcHMuaGFuZGxlLmFwaSA9IGFwaSgpO1xuICAgICAgICB9LCBbXSk7XG5cbiAgICBSZWFjdC51c2VFZmZlY3QoXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICAgIHByb3BzLmhhbmRsZS5hcGkgPSBhcGkoKTtcbiAgICAgICAgICAgIHByb3BzLmhhbmRsZS5hcGkucmVmcmVzaCgpO1xuICAgICAgICAgICAgbGV0IHBhcnNlZENvbmZpZyA9IFV0aWxzLnBhcnNlQ29uZmlnKHByb3BzLmNvbmZpZywgcHJvcHMudmlld0lkKTtcbiAgICAgICAgICAgIGV2ZW50TWFuYWdlci5hZGRTdWJzY3JpcHRpb25zKHBhcnNlZENvbmZpZy5ldmVudEhhbmRsaW5nQ29uZmlnLCBwcm9wcy5oYW5kbGUsIHByb3BzLnZpZXdJZCk7XG4gICAgICAgICAgICBldmVudE1hbmFnZXIuYWRkU3lzdGVtU3Vic2NyaXB0aW9ucyhwcm9wcy52aWV3SWQsIHBhcnNlZENvbmZpZyk7XG4gICAgICAgIH0sIFtdKTtcblxuICAgIFJlYWN0LnVzZUVmZmVjdChcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwocHJvcHMuZGlzYWJsZWQpKSB7XG4gICAgICAgICAgICAgICAgdXBkYXRlQ29tcG9uZW50RGlzYWJsZWRTdGF0ZShwcm9wcy5kaXNhYmxlZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIFtwcm9wcy5kaXNhYmxlZF0pO1xuXG4gICAgZnVuY3Rpb24gZmlyZUNoYW5nZUV2ZW50KCkge1xuICAgICAgICBsZXQgZXZlbnQgPSBuZXcgRXZlbnQocHJvcHMuaGFuZGxlLCBwcm9wcy52aWV3SWQpO1xuICAgICAgICBldmVudE1hbmFnZXIuZmlyZUV2ZW50KEV2ZW50VHlwZS5WQUxVRV9DSEFOR0UsIGV2ZW50KTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiB1cGRhdGVDb21wb25lbnREaXNhYmxlZFN0YXRlKGRpc2FibGVkKSB7XG4gICAgICAgIGxldCBwcm9wZXJ0aWVzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoY29tcG9uZW50SGFuZGxlcyk7XG4gICAgICAgIGZvciAoY29uc3QgcHJvcGVydHkgb2YgcHJvcGVydGllcykge1xuICAgICAgICAgICAgbGV0IGNvbXBvbmVudEhhbmRsZSA9IGNvbXBvbmVudEhhbmRsZXNbcHJvcGVydHldO1xuICAgICAgICAgICAgY29tcG9uZW50SGFuZGxlLmFwaS5kaXNhYmxlZCA9IGRpc2FibGVkO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcmVmcmVzaENvbXBvbmVudHMoKSB7XG4gICAgICAgIGxldCBwcm9wZXJ0aWVzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoY29tcG9uZW50SGFuZGxlcyk7XG4gICAgICAgIGZvciAoY29uc3QgcHJvcGVydHkgb2YgcHJvcGVydGllcykge1xuICAgICAgICAgICAgbGV0IGNvbXBvbmVudEhhbmRsZSA9IGNvbXBvbmVudEhhbmRsZXNbcHJvcGVydHldO1xuICAgICAgICAgICAgaWYoY29tcG9uZW50SGFuZGxlLmFwaSkge1xuICAgICAgICAgICAgICAgIGNvbXBvbmVudEhhbmRsZS5hcGkucmVmcmVzaCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcmVuZGVyQ29tcG9uZW50KGNvbXBvbmVudCkge1xuICAgICAgICBpZiAoIWNvbXBvbmVudC5maWVsZFR5cGUpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0VSUk9SIFJFTkRJTkcgQ09NUE9ORU5UIDogJyArIGNvbXBvbmVudC5pZCArICcgLSBOTyBGSUVMRCBUWVBFIFNQRUNJRklFRCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGlzRGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgaWYgKCFVdGlscy5pc051bGwocHJvcHMuY29uZmlnKSAmJiAhVXRpbHMuaXNOdWxsKHByb3BzLmNvbmZpZy5kaXNhYmxlZCkpIHtcbiAgICAgICAgICAgIGlzRGlzYWJsZWQgPSBVdGlscy5ldmFsdWF0ZUJvb2xlYW5FeHByZXNzaW9uKHByb3BzLmNvbmZpZy5kaXNhYmxlZCwgcHJvcHMuY29uZmlnLmlkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpc0Rpc2FibGVkKSB7XG4gICAgICAgICAgICBpZiAoVXRpbHMuaXNOdWxsKGNvbXBvbmVudC5kaXNhYmxlZCkpIHtcbiAgICAgICAgICAgICAgICBjb21wb25lbnQuZGlzYWJsZWQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgc3dpdGNoIChjb21wb25lbnQuZmllbGRUeXBlKSB7XG4gICAgICAgICAgICBjYXNlICdMT09LVVAnOlxuICAgICAgICAgICAgICAgIHJldHVybiA8TG9va3VwRmllbGQga2V5SGFuZGxlcj17cHJvcHMua2V5SGFuZGxlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZz17Y29tcG9uZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybT17cHJvcHMuZm9ybX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudElkPXtwcm9wcy5wYXJlbnRJZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZUNoYW5nZUhhbmRsZXI9eygpID0+IGZpcmVDaGFuZ2VFdmVudCgpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzPXtwcm9wcy52YWx1ZXN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3SWQ9e3Byb3BzLnZpZXdJZH1cbiAgICAgICAgICAgICAgICAvPjtcbiAgICAgICAgICAgIGNhc2UgJ01VTFRJX0xPT0tVUCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIDxNdWx0aUxvb2t1cEZpZWxkIGtleUhhbmRsZXI9e3Byb3BzLmtleUhhbmRsZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZz17Y29tcG9uZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtPXtwcm9wcy5mb3JtfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRJZD17cHJvcHMucGFyZW50SWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlQ2hhbmdlSGFuZGxlcj17KCkgPT4gZmlyZUNoYW5nZUV2ZW50KCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcz17cHJvcHMudmFsdWVzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3SWQ9e3Byb3BzLnZpZXdJZH1cbiAgICAgICAgICAgICAgICAvPjtcbiAgICAgICAgICAgIGNhc2UgJ1RFWFRfRklFTEQnOlxuICAgICAgICAgICAgICAgIHJldHVybiA8VGV4dEZpZWxkIGtleUhhbmRsZXI9e3Byb3BzLmtleUhhbmRsZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnPXtjb21wb25lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVDaGFuZ2VIYW5kbGVyPXsoKSA9PiBmaXJlQ2hhbmdlRXZlbnQoKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtPXtwcm9wcy5mb3JtfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudElkPXtwcm9wcy5wYXJlbnRJZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGU9e2NyZWF0ZUNvbXBvbmVudEhhbmRsZShjb21wb25lbnQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcz17cHJvcHMudmFsdWVzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdJZD17cHJvcHMudmlld0lkfVxuICAgICAgICAgICAgICAgIC8+O1xuICAgICAgICAgICAgY2FzZSAnQ1VSUkVOQ1knOlxuICAgICAgICAgICAgICAgIHJldHVybiA8Q3VycmVuY3lGaWVsZCBrZXlIYW5kbGVyPXtwcm9wcy5rZXlIYW5kbGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWc9e2NvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVDaGFuZ2VIYW5kbGVyPXsoKSA9PiBmaXJlQ2hhbmdlRXZlbnQoKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybT17cHJvcHMuZm9ybX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50SWQ9e3Byb3BzLnBhcmVudElkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGU9e2NyZWF0ZUNvbXBvbmVudEhhbmRsZShjb21wb25lbnQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9e3Byb3BzLnZhbHVlc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9XG4gICAgICAgICAgICAgICAgLz47XG4gICAgICAgICAgICBjYXNlICdQQVNTV09SRCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIDxUZXh0RmllbGQga2V5SGFuZGxlcj17cHJvcHMua2V5SGFuZGxlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWc9e2NvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZUNoYW5nZUhhbmRsZXI9eygpID0+IGZpcmVDaGFuZ2VFdmVudCgpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm09e3Byb3BzLmZvcm19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT17J3Bhc3N3b3JkJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRJZD17cHJvcHMucGFyZW50SWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlPXtjcmVhdGVDb21wb25lbnRIYW5kbGUoY29tcG9uZW50KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9e3Byb3BzLnZhbHVlc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3SWQ9e3Byb3BzLnZpZXdJZH1cbiAgICAgICAgICAgICAgICAvPjtcbiAgICAgICAgICAgIGNhc2UgJ1RFWFRfQVJFQSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIDxUZXh0RmllbGQga2V5SGFuZGxlcj17cHJvcHMua2V5SGFuZGxlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWc9e2NvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdWx0aWxpbmU9e3RydWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVDaGFuZ2VIYW5kbGVyPXsoKSA9PiBmaXJlQ2hhbmdlRXZlbnQoKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtPXtwcm9wcy5mb3JtfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudElkPXtwcm9wcy5wYXJlbnRJZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGU9e2NyZWF0ZUNvbXBvbmVudEhhbmRsZShjb21wb25lbnQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcz17cHJvcHMudmFsdWVzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdJZD17cHJvcHMudmlld0lkfVxuICAgICAgICAgICAgICAgIC8+O1xuICAgICAgICAgICAgY2FzZSAnQUREUkVTU19TRUFSQ0gnOlxuICAgICAgICAgICAgICAgIHJldHVybiA8QWRkcmVzc1NlYXJjaCBrZXlIYW5kbGVyPXtwcm9wcy5rZXlIYW5kbGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWc9e2NvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGlsaW5lPXt0cnVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZUNoYW5nZUhhbmRsZXI9eygpID0+IGZpcmVDaGFuZ2VFdmVudCgpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtPXtwcm9wcy5mb3JtfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRJZD17cHJvcHMucGFyZW50SWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcz17cHJvcHMudmFsdWVzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3SWQ9e3Byb3BzLnZpZXdJZH1cbiAgICAgICAgICAgICAgICAvPjtcbiAgICAgICAgICAgIGNhc2UgJ1NFTEVDVCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIDxTZWxlY3RJdGVtIGtleUhhbmRsZXI9e3Byb3BzLmtleUhhbmRsZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZz17Y29tcG9uZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtPXtwcm9wcy5mb3JtfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRJZD17cHJvcHMucGFyZW50SWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlQ2hhbmdlSGFuZGxlcj17KCkgPT4gZmlyZUNoYW5nZUV2ZW50KCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcz17cHJvcHMudmFsdWVzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3SWQ9e3Byb3BzLnZpZXdJZH1cbiAgICAgICAgICAgICAgICAvPjtcbiAgICAgICAgICAgIGNhc2UgJ0RBVEUnOlxuICAgICAgICAgICAgICAgIHJldHVybiA8RGF0ZVBpY2tlciBrZXlIYW5kbGVyPXtwcm9wcy5rZXlIYW5kbGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWc9e2NvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybT17cHJvcHMuZm9ybX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50SWQ9e3Byb3BzLnBhcmVudElkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGU9e2NyZWF0ZUNvbXBvbmVudEhhbmRsZShjb21wb25lbnQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZUNoYW5nZUhhbmRsZXI9eygpID0+IGZpcmVDaGFuZ2VFdmVudCgpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9e3Byb3BzLnZhbHVlc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9XG4gICAgICAgICAgICAgICAgLz47XG4gICAgICAgICAgICBjYXNlICdBVVRPX0NPTVBMRVRFJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gPEF1dG9Db21wbGV0ZSBrZXlIYW5kbGVyPXtwcm9wcy5rZXlIYW5kbGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZz17Y29tcG9uZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm09e3Byb3BzLmZvcm19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50SWQ9e3Byb3BzLnBhcmVudElkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVDaGFuZ2VIYW5kbGVyPXsoKSA9PiBmaXJlQ2hhbmdlRXZlbnQoKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9e3Byb3BzLnZhbHVlc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3SWQ9e3Byb3BzLnZpZXdJZH1cbiAgICAgICAgICAgICAgICAvPjtcbiAgICAgICAgICAgIGNhc2UgJ0NIRUNLQk9YJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gPENoZWNrYm94IGtleUhhbmRsZXI9e3Byb3BzLmtleUhhbmRsZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWc9e2NvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm09e3Byb3BzLmZvcm19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRJZD17cHJvcHMucGFyZW50SWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGU9e2NyZWF0ZUNvbXBvbmVudEhhbmRsZShjb21wb25lbnQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVDaGFuZ2VIYW5kbGVyPXsoKSA9PiBmaXJlQ2hhbmdlRXZlbnQoKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcz17cHJvcHMudmFsdWVzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9XG4gICAgICAgICAgICAgICAgLz47XG4gICAgICAgICAgICBjYXNlICdTV0lUQ0gnOlxuICAgICAgICAgICAgICAgIHJldHVybiA8U3dpdGNoIGtleUhhbmRsZXI9e3Byb3BzLmtleUhhbmRsZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnPXtjb21wb25lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybT17cHJvcHMuZm9ybX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRJZD17cHJvcHMucGFyZW50SWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlPXtjcmVhdGVDb21wb25lbnRIYW5kbGUoY29tcG9uZW50KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZUNoYW5nZUhhbmRsZXI9eygpID0+IGZpcmVDaGFuZ2VFdmVudCgpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcz17cHJvcHMudmFsdWVzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdJZD17cHJvcHMudmlld0lkfVxuICAgICAgICAgICAgICAgIC8+O1xuICAgICAgICAgICAgY2FzZSAnTEFCRUwnOlxuICAgICAgICAgICAgICAgIHJldHVybiA8TGFiZWxGaWVsZCBrZXlIYW5kbGVyPXtwcm9wcy5rZXlIYW5kbGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWc9e2NvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybT17cHJvcHMuZm9ybX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50SWQ9e3Byb3BzLnBhcmVudElkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGU9e2NyZWF0ZUNvbXBvbmVudEhhbmRsZShjb21wb25lbnQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZUNoYW5nZUhhbmRsZXI9eygpID0+IGZpcmVDaGFuZ2VFdmVudCgpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9e3Byb3BzLnZhbHVlc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9XG4gICAgICAgICAgICAgICAgLz47XG4gICAgICAgICAgICBjYXNlICdGSUxFX1VQTE9BRCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIDxVcGxvYWRGaWVsZCBrZXlIYW5kbGVyPXtwcm9wcy5rZXlIYW5kbGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnPXtjb21wb25lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtPXtwcm9wcy5mb3JtfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50SWQ9e3Byb3BzLnBhcmVudElkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlPXtjcmVhdGVDb21wb25lbnRIYW5kbGUoY29tcG9uZW50KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlQ2hhbmdlSGFuZGxlcj17KCkgPT4gZmlyZUNoYW5nZUV2ZW50KCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9e3Byb3BzLnZhbHVlc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdJZD17cHJvcHMudmlld0lkfVxuICAgICAgICAgICAgICAgIC8+O1xuICAgICAgICAgICAgY2FzZSAnSU1BR0VfVVBMT0FEJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gPFVwbG9hZEZpZWxkIGtleUhhbmRsZXI9e3Byb3BzLmtleUhhbmRsZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWc9e2NvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm09e3Byb3BzLmZvcm19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRJZD17cHJvcHMucGFyZW50SWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGU9e2NyZWF0ZUNvbXBvbmVudEhhbmRsZShjb21wb25lbnQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9eydJTUFHRSd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZUNoYW5nZUhhbmRsZXI9eygpID0+IGZpcmVDaGFuZ2VFdmVudCgpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzPXtwcm9wcy52YWx1ZXN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3SWQ9e3Byb3BzLnZpZXdJZH1cbiAgICAgICAgICAgICAgICAvPjtcbiAgICAgICAgICAgIGNhc2UgJ01VTFRJX0ZJTEVfVVBMT0FEJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gPE11bHRpRmlsZVVwbG9hZEZpZWxkXG4gICAgICAgICAgICAgICAgICAgIGtleUhhbmRsZXI9e3Byb3BzLmtleUhhbmRsZXJ9XG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZz17Y29tcG9uZW50fVxuICAgICAgICAgICAgICAgICAgICBmb3JtPXtwcm9wcy5mb3JtfVxuICAgICAgICAgICAgICAgICAgICBwYXJlbnRJZD17cHJvcHMucGFyZW50SWR9XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlQ2hhbmdlSGFuZGxlcj17KCkgPT4gZmlyZUNoYW5nZUV2ZW50KCl9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlcz17cHJvcHMudmFsdWVzfVxuICAgICAgICAgICAgICAgICAgICB2aWV3SWQ9e3Byb3BzLnZpZXdJZH1cbiAgICAgICAgICAgICAgICAvPjtcbiAgICAgICAgICAgIGNhc2UgJ1RSQU5TRkVSX0xJU1QnOlxuICAgICAgICAgICAgICAgIHJldHVybiA8VHJhbnNmZXJMaXN0IGtleUhhbmRsZXI9e3Byb3BzLmtleUhhbmRsZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnPXtjb21wb25lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybT17cHJvcHMuZm9ybX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRJZD17cHJvcHMucGFyZW50SWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlPXtjcmVhdGVDb21wb25lbnRIYW5kbGUoY29tcG9uZW50KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZUNoYW5nZUhhbmRsZXI9eygpID0+IGZpcmVDaGFuZ2VFdmVudCgpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcz17cHJvcHMudmFsdWVzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdJZD17cHJvcHMudmlld0lkfVxuICAgICAgICAgICAgICAgIC8+O1xuICAgICAgICAgICAgY2FzZSAnR1JJRCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIDxHcmlkRmllbGQga2V5SGFuZGxlcj17cHJvcHMua2V5SGFuZGxlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWc9e2NvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtPXtwcm9wcy5mb3JtfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudElkPXtwcm9wcy5wYXJlbnRJZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGU9e2NyZWF0ZUNvbXBvbmVudEhhbmRsZShjb21wb25lbnQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlQ2hhbmdlSGFuZGxlcj17KCkgPT4gZmlyZUNoYW5nZUV2ZW50KCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzPXtwcm9wcy52YWx1ZXN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9XG4gICAgICAgICAgICAgICAgLz47XG4gICAgICAgICAgICBjYXNlICdUSU1FJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gPFRpbWVQaWNrZXJcbiAgICAgICAgICAgICAgICAgICAga2V5SGFuZGxlcj17cHJvcHMua2V5SGFuZGxlcn1cbiAgICAgICAgICAgICAgICAgICAgY29uZmlnPXtjb21wb25lbnR9XG4gICAgICAgICAgICAgICAgICAgIGZvcm09e3Byb3BzLmZvcm19XG4gICAgICAgICAgICAgICAgICAgIHBhcmVudElkPXtwcm9wcy5wYXJlbnRJZH1cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlPXtjcmVhdGVDb21wb25lbnRIYW5kbGUoY29tcG9uZW50KX1cbiAgICAgICAgICAgICAgICAgICAgdmFsdWVDaGFuZ2VIYW5kbGVyPXsoKSA9PiBmaXJlQ2hhbmdlRXZlbnQoKX1cbiAgICAgICAgICAgICAgICAgICAgdmFsdWVzPXtwcm9wcy52YWx1ZXN9XG4gICAgICAgICAgICAgICAgICAgIHZpZXdJZD17cHJvcHMudmlld0lkfVxuICAgICAgICAgICAgICAgIC8+O1xuICAgICAgICAgICAgY2FzZSAnSU1BR0VfRURJVE9SJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gPEltYWdlRWRpdG9yXG4gICAgICAgICAgICAgICAgICAgIGtleUhhbmRsZXI9e3Byb3BzLmtleUhhbmRsZXJ9XG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZz17Y29tcG9uZW50fVxuICAgICAgICAgICAgICAgICAgICBmb3JtPXtwcm9wcy5mb3JtfVxuICAgICAgICAgICAgICAgICAgICBwYXJlbnRJZD17cHJvcHMucGFyZW50SWR9XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlQ2hhbmdlSGFuZGxlcj17KCkgPT4gZmlyZUNoYW5nZUV2ZW50KCl9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlcz17cHJvcHMudmFsdWVzfVxuICAgICAgICAgICAgICAgICAgICB2aWV3SWQ9e3Byb3BzLnZpZXdJZH1cbiAgICAgICAgICAgICAgICAvPjtcbiAgICAgICAgICAgIGNhc2UgJ1JBRElPX0dST1VQJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gPFJhZGlvR3JvdXBcbiAgICAgICAgICAgICAgICAgICAga2V5SGFuZGxlcj17cHJvcHMua2V5SGFuZGxlcn1cbiAgICAgICAgICAgICAgICAgICAgY29uZmlnPXtjb21wb25lbnR9XG4gICAgICAgICAgICAgICAgICAgIGZvcm09e3Byb3BzLmZvcm19XG4gICAgICAgICAgICAgICAgICAgIHBhcmVudElkPXtwcm9wcy5wYXJlbnRJZH1cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlPXtjcmVhdGVDb21wb25lbnRIYW5kbGUoY29tcG9uZW50KX1cbiAgICAgICAgICAgICAgICAgICAgdmFsdWVDaGFuZ2VIYW5kbGVyPXsoKSA9PiBmaXJlQ2hhbmdlRXZlbnQoKX1cbiAgICAgICAgICAgICAgICAgICAgdmFsdWVzPXtwcm9wcy52YWx1ZXN9XG4gICAgICAgICAgICAgICAgICAgIHZpZXdJZD17cHJvcHMudmlld0lkfVxuICAgICAgICAgICAgICAgIC8+O1xuICAgICAgICAgICAgY2FzZSAnQlVUVE9OJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gPEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBjb25maWc9e2NvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgICAgZm9ybT17cHJvcHMuZm9ybX1cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlPXtjcmVhdGVDb21wb25lbnRIYW5kbGUoY29tcG9uZW50KX1cbiAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9XG4gICAgICAgICAgICAgICAgLz47XG4gICAgICAgICAgICBjYXNlICdIVE1MX1BBTkVMJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gPEh0bWxQYW5lbFxuICAgICAgICAgICAgICAgICAgICBjb25maWc9e2NvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgICAgZm9ybT17cHJvcHMuZm9ybX1cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlPXtjcmVhdGVDb21wb25lbnRIYW5kbGUoY29tcG9uZW50KX1cbiAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9XG4gICAgICAgICAgICAgICAgLz47XG4gICAgICAgICAgICBjYXNlICdMQVlPVVQnOlxuICAgICAgICAgICAgICAgIHJldHVybiA8TGF5b3V0XG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZz17Y29tcG9uZW50fVxuICAgICAgICAgICAgICAgICAgICBmb3JtPXtwcm9wcy5mb3JtfVxuICAgICAgICAgICAgICAgICAgICBoYW5kbGU9e2NyZWF0ZUNvbXBvbmVudEhhbmRsZShjb21wb25lbnQpfVxuICAgICAgICAgICAgICAgICAgICB2aWV3SWQ9e3Byb3BzLnZpZXdJZH1cbiAgICAgICAgICAgICAgICAvPjtcbiAgICAgICAgICAgIGNhc2UgJ0lDT04nOlxuICAgICAgICAgICAgICAgIHJldHVybiA8SWNvbkZpZWxkXG4gICAgICAgICAgICAgICAgICAgIGtleUhhbmRsZXI9e3Byb3BzLmtleUhhbmRsZXJ9XG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZz17Y29tcG9uZW50fVxuICAgICAgICAgICAgICAgICAgICBmb3JtPXtwcm9wcy5mb3JtfVxuICAgICAgICAgICAgICAgICAgICBwYXJlbnRJZD17cHJvcHMucGFyZW50SWR9XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlQ2hhbmdlSGFuZGxlcj17KCkgPT4gZmlyZUNoYW5nZUV2ZW50KCl9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlcz17cHJvcHMudmFsdWVzfVxuICAgICAgICAgICAgICAgICAgICB2aWV3SWQ9e3Byb3BzLnZpZXdJZH1cbiAgICAgICAgICAgICAgICAvPjtcbiAgICAgICAgICAgIGNhc2UgJ1NJR05BVFVSRV9URU1QTEFURV9ERVNJR05FUic6XG4gICAgICAgICAgICAgICAgcmV0dXJuIDxTaWduYXR1cmVUZW1wbGF0ZURlc2lnbmVyRmllbGRcbiAgICAgICAgICAgICAgICAgICAga2V5SGFuZGxlcj17cHJvcHMua2V5SGFuZGxlcn1cbiAgICAgICAgICAgICAgICAgICAgY29uZmlnPXtjb21wb25lbnR9XG4gICAgICAgICAgICAgICAgICAgIGZvcm09e3Byb3BzLmZvcm19XG4gICAgICAgICAgICAgICAgICAgIHBhcmVudElkPXtwcm9wcy5wYXJlbnRJZH1cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlPXtjcmVhdGVDb21wb25lbnRIYW5kbGUoY29tcG9uZW50KX1cbiAgICAgICAgICAgICAgICAgICAgdmFsdWVDaGFuZ2VIYW5kbGVyPXsoKSA9PiBmaXJlQ2hhbmdlRXZlbnQoKX1cbiAgICAgICAgICAgICAgICAgICAgdmFsdWVzPXtwcm9wcy52YWx1ZXN9XG4gICAgICAgICAgICAgICAgICAgIHZpZXdJZD17cHJvcHMudmlld0lkfVxuICAgICAgICAgICAgICAgIC8+O1xuICAgICAgICAgICAgY2FzZSAnRE9DVU1FTlRfVEVNUExBVEVfREVTSUdORVInOlxuICAgICAgICAgICAgICAgIHJldHVybiA8RG9jdW1lbnRUZW1wbGF0ZURlc2lnbmVyXG4gICAgICAgICAgICAgICAgICAgIGtleUhhbmRsZXI9e3Byb3BzLmtleUhhbmRsZXJ9XG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZz17Y29tcG9uZW50fVxuICAgICAgICAgICAgICAgICAgICBmb3JtPXtwcm9wcy5mb3JtfVxuICAgICAgICAgICAgICAgICAgICBwYXJlbnRJZD17cHJvcHMucGFyZW50SWR9XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlQ2hhbmdlSGFuZGxlcj17KCkgPT4gZmlyZUNoYW5nZUV2ZW50KCl9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlcz17cHJvcHMudmFsdWVzfVxuICAgICAgICAgICAgICAgICAgICB2aWV3SWQ9e3Byb3BzLnZpZXdJZH1cbiAgICAgICAgICAgICAgICAvPjtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIDxkaXY+eydVbnN1cHBvcnRlZCBmaWVsZHNldCBjb21wb25lbnQgdHlwZSAnICsgY29tcG9uZW50LmZpZWxkVHlwZSArICcgLSAnICsgY29tcG9uZW50LmlkfTwvZGl2PjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGFwaSA9ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGdldCBpZCgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcHJvcHMuY29uZmlnLmlkO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGdldCBmaWVsZERhdGFCaW5kaW5ncygpIHtcbiAgICAgICAgICAgICAgICBsZXQgZmllbGROYW1lcyA9IFtdO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgZmllbGQgb2YgcHJvcHMuY29uZmlnLmZpZWxkcykge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZE5hbWVzLnB1c2goIVV0aWxzLmlzTnVsbChmaWVsZC5kYXRhQmluZGluZykgPyBmaWVsZC5kYXRhQmluZGluZyA6IGZpZWxkLmlkKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gZmllbGROYW1lcztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzZXQgZGlzYWJsZWQoZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICB1cGRhdGVDb21wb25lbnREaXNhYmxlZFN0YXRlKGRpc2FibGVkKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBjbGVhcigpIHtcbiAgICAgICAgICAgICAgICBsZXQgcHJvcGVydGllcyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGNvbXBvbmVudEhhbmRsZXMpO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcHJvcGVydHkgb2YgcHJvcGVydGllcykge1xuICAgICAgICAgICAgICAgICAgICBsZXQgY29tcG9uZW50UmVmID0gY29tcG9uZW50SGFuZGxlc1twcm9wZXJ0eV07XG4gICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudFJlZi5hcGkudmFsdWUgPSBudWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBnZXRDaGlsZHJlbjogKCkgPT4ge1xuICAgICAgICAgICAgICAgIGxldCBjaGlsZHJlbiA9IFtdO1xuICAgICAgICAgICAgICAgIGxldCBwcm9wZXJ0aWVzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoY29tcG9uZW50SGFuZGxlcyk7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBwcm9wZXJ0eSBvZiBwcm9wZXJ0aWVzKSB7XG4gICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuLnB1c2goY29tcG9uZW50SGFuZGxlc1twcm9wZXJ0eV0pO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBjaGlsZHJlbjtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzZXQgbW9kZWwobW9kZWwpIHtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGZpZWxkIG9mIHByb3BzLmNvbmZpZy5maWVsZHMpIHtcbiAgICAgICAgICAgICAgICAgICAgcHJvcHMuZm9ybSgpLm1vZGVsW2ZpZWxkLmlkXSA9IG1vZGVsW2ZpZWxkLmlkXTtcblxuICAgICAgICAgICAgICAgICAgICBsZXQgY29tcG9uZW50UmVmID0gY29tcG9uZW50SGFuZGxlc1tmaWVsZC5pZF07XG4gICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudFJlZi5hcGkudmFsdWUgPSBtb2RlbFtmaWVsZC5pZF07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGdldCB2YWx1ZSgpIHtcbiAgICAgICAgICAgICAgICBsZXQgdmFsdWUgPSB7fTtcbiAgICAgICAgICAgICAgICBsZXQgZm9ybVZhbHVlID0gcHJvcHMuZm9ybSgpLnZhbHVlO1xuXG4gICAgICAgICAgICAgICAgaWYgKGZvcm1WYWx1ZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGZpZWxkIG9mIHByb3BzLmNvbmZpZy5maWVsZHMpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWVbZmllbGQuaWRdID0gZm9ybVZhbHVlW2ZpZWxkLmlkXTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbG9hZERhdGE6IChhY3Rpb25Db25maWcsIGFjdGlvbkV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgbGV0IHNlcnZpY2UgPSAhVXRpbHMuaXNOdWxsKGFjdGlvbkNvbmZpZy5kYXRhU2VydmljZSkgPyBhY3Rpb25Db25maWcuZGF0YVNlcnZpY2UgOlxuICAgICAgICAgICAgICAgICAgICAhVXRpbHMuaXNOdWxsKHByb3BzLmNvbmZpZykgPyBwcm9wcy5jb25maWcuZGF0YVNlcnZpY2UgOiBudWxsO1xuICAgICAgICAgICAgICAgIGxldCBjb21wb25lbnRWYWx1ZSA9ICFVdGlscy5pc051bGwocHJvcHMuY29uZmlnLnZhbHVlKSA/IHByb3BzLmNvbmZpZy52YWx1ZSA6XG4gICAgICAgICAgICAgICAgICAgIGFjdGlvbkNvbmZpZy52YWx1ZTtcblxuICAgICAgICAgICAgICAgIGlmIChjb21wb25lbnRWYWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICBsZXQgaXNFdmVudERhdGEgPSBjb21wb25lbnRWYWx1ZS50b1N0cmluZygpXG4gICAgICAgICAgICAgICAgICAgICAgICAuc3RhcnRzV2l0aCgnJGV2ZW50LmRhdGEnKTtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGlzRXByZXNzaW9uID0gYXBwbGljYXRpb25NYW5hZ2VyLmlzRXhwcmVzc2lvbihjb21wb25lbnRWYWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgIGxldCB2YWwgPSBpc0V2ZW50RGF0YSB8fCBpc0VwcmVzc2lvbiA/IGFwcGxpY2F0aW9uTWFuYWdlci5yZXNvbHZlRXhwcmVzc2lvblZhbHVlKGNvbXBvbmVudFZhbHVlLCBhY3Rpb25FdmVudCA/IGFjdGlvbkV2ZW50LmRhdGEgOiBudWxsKSA6IGNvbXBvbmVudFZhbHVlO1xuICAgICAgICAgICAgICAgICAgICBwcm9wcy5mb3JtKClcbiAgICAgICAgICAgICAgICAgICAgICAgIC5iaW5kRGF0YSh2YWwpO1xuXG4gICAgICAgICAgICAgICAgICAgIGxldCBldmVudCA9IG5ldyBFdmVudChwcm9wcy5oYW5kbGUsIHByb3BzLnZpZXdJZCwgdmFsKTtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnRNYW5hZ2VyLmZpcmVFdmVudChFdmVudFR5cGUuREFUQV9BUlJJVkVELCBldmVudCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwoc2VydmljZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtZXRob2QgPSBzZXJ2aWNlLnR5cGUgPT09ICdycGMnID8gaW52b2tlUnBjIDogaW52b2tlUmVzdDtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmljZTogc2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wb25lbnQ6IHJlZi5jdXJyZW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdJZDogcHJvcHMudmlld0lkXG4gICAgICAgICAgICAgICAgICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGF0YSA9IHNlcnZpY2UudHlwZSA9PT0gJ3JwYycgPyByZXN1bHQuZGF0YSA6IHJlc3VsdDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wcy5mb3JtKClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5iaW5kRGF0YShkYXRhKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZXZlbnQgPSBuZXcgRXZlbnQocHJvcHMuaGFuZGxlLCBwcm9wcy52aWV3SWQsIGRhdGEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudE1hbmFnZXIuZmlyZUV2ZW50KEV2ZW50VHlwZS5EQVRBX0FSUklWRUQsIGV2ZW50KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9KS5jYXRjaCgoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzLmNvbnNvbGUuZXJyb3IoZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgVXRpbHMucHVibGlzaEVycm9yTWVzc2FnZShlLCBwcm9wcy52aWV3SWQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSlcblxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVmcmVzaCgpIHtcbiAgICAgICAgICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbChwcm9wcy5jb25maWcpICYmICFVdGlscy5pc051bGwocHJvcHMuY29uZmlnLnZpc2libGUpKSB7XG4gICAgICAgICAgICAgICAgICAgIHNldFZpc2libGUoVXRpbHMuZXZhbHVhdGVCb29sZWFuRXhwcmVzc2lvbihwcm9wcy5jb25maWcudmlzaWJsZSwgcHJvcHMuY29uZmlnLmlkKSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgc2V0VmlzaWJsZSh0cnVlKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbChwcm9wcy5jb25maWcpICYmICFVdGlscy5pc051bGwocHJvcHMuY29uZmlnLmRpc2FibGVkKSkge1xuICAgICAgICAgICAgICAgICAgICB1cGRhdGVDb21wb25lbnREaXNhYmxlZFN0YXRlKFV0aWxzLmV2YWx1YXRlQm9vbGVhbkV4cHJlc3Npb24ocHJvcHMuY29uZmlnLmRpc2FibGVkLCBwcm9wcy5jb25maWcuaWQpKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZWZyZXNoQ29tcG9uZW50cygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgIH07XG5cbiAgICBmdW5jdGlvbiByZW5kZXIoZmllbGRTZXQpIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIChVdGlscy5pc051bGwoZmllbGRTZXQuZmllbGRzKSB8fCBmaWVsZFNldC5maWVsZHMubGVuZ3RoID09PSAwKSA/XG4gICAgICAgICAgICAgICAgPGRpdj4gRXJyb3I6IEEgZmllbGRTZXQgbXVzdCBoYXZlIGZpZWxkczwvZGl2PlxuICAgICAgICAgICAgICAgIDpcbiAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWVsZEdyaWQucm93cy5tYXAoKHJvdywgaSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiA8ZGl2IGNsYXNzTmFtZT1cInJvdyBmaWVsc2V0LXJvd1wiIGtleT17aX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW5MZWZ0OiAnMCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpblJpZ2h0OiAnMCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93LmZpZWxkcy5tYXAoKGZpZWxkLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBjb2xzcGFuO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB3aWR0aDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChVdGlscy5pc051bGwoZmllbGQuYXR0cmlidXRlcykgfHwgVXRpbHMuaXNOdWxsKGZpZWxkLmF0dHJpYnV0ZXMuY29sc3BhbikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sc3BhbiA9IDE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGNvbHNwYW5WYWwgPSBVdGlscy5nZXRGaWVsZENvbHNwYW4oZmllbGQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY29sc3BhblZhbCA+IGZpZWxkR3JpZC5tYXhDb2xQZXJSb3cpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHNwYW4gPSBmaWVsZEdyaWQubWF4Q29sUGVyUm93O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sc3BhbiA9IGNvbHNwYW5WYWw7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGUgcm93IGlzIGEgZmxleCBjb250YWluZXIgd2l0aCBhblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIDhweCBjb2x1bW4tZ2FwIChzZWUgZmllbGRzZXQuY3NzKS4gRWFjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGl0ZW0gc3VidHJhY3RzIGl0cyBzaGFyZSBvZiB0aGUgZ2FwcyBzb1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGBjb2xzcGFuYCBjb2x1bW5zICsgdGhlIGdhcHMgYmV0d2VlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZW0gc3RpbGwgc3VtIHRvIHRoZSByb3cgd2lkdGgg4oCUIGFuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdyYXBwZWQgaXRlbXMgYWxpZ24gZmx1c2ggKGdhcCBhZGRzIG5vXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbGVhZGluZyBzcGFjZSBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lKS5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBDT0xfR0FQID0gODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYXhDb2wgPSBmaWVsZEdyaWQubWF4Q29sUGVyUm93O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoID0gY29sc3BhbiAvIG1heENvbCAqIDEwMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnYXBPZmZzZXQgPSAobWF4Q29sIC0gY29sc3BhbikgKiBDT0xfR0FQIC8gbWF4Q29sO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBjb250YWluZXJTdHlsZSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZ0xlZnQ6ICcwJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZ1JpZ2h0OiAnMCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbkxlZnQ6ICcwJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luUmlnaHQ6ICcwJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluV2lkdGg6ICczMjBweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiBgY2FsYygke3dpZHRofSUgLSAke2dhcE9mZnNldH1weClgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkLmluZGV4ID0gaW5kZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHN0eWxlID0gZmllbGQuYXR0cmlidXRlcz8uY29udGFpbmVyU3R5bGUgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVdGlscy5tZXJnZU9iamVjdHMoZmllbGQuYXR0cmlidXRlcz8uY29udGFpbmVyU3R5bGUsIGNvbnRhaW5lclN0eWxlKSA6IGNvbnRhaW5lclN0eWxlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiA8ZGl2IGtleT17KGkgKyAxKSAqIGluZGV4fSBjbGFzc05hbWU9XCJjb2wtKi0qIG91aS1mb3JtLWl0ZW0tY29udGFpbmVyXCIgc3R5bGU9e3N0eWxlfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVuZGVyQ29tcG9uZW50KGZpZWxkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gPGRpdiBjbGFzc05hbWU9eydmaWVsZFNldFdyYXBwZXInfSBzdHlsZT17VXRpbHMubWVyZ2VTdHlsZXMoXG4gICAgICAgIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IHZpc2libGUgPyAnYmxvY2snIDogJ25vbmUnLFxuICAgICAgICAgICAgbWFyZ2luOiAnMCcsXG4gICAgICAgICAgICBtaW5XaWR0aDogJzMyMHB4JyxcbiAgICAgICAgICAgIHBhZGRpbmc6ICc0cHggMCdcbiAgICAgICAgfSwgcHJvcHMuY29uZmlnKX0+XG4gICAgICAgIHtcbiAgICAgICAgICAgICFVdGlscy5pc051bGwocHJvcHMuY29uZmlnLmF0dHJpYnV0ZXMpICYmICFVdGlscy5pc051bGwocHJvcHMuY29uZmlnLmF0dHJpYnV0ZXNbJ2xhYmVsJ10pID9cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17J2ZpZWxkU2V0VGl0bGUnfT5cbiAgICAgICAgICAgICAgICAgICAge3Byb3BzLmNvbmZpZy5hdHRyaWJ1dGVzWydsYWJlbCddfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDpcbiAgICAgICAgICAgICAgICBudWxsXG4gICAgICAgIH1cbiAgICAgICAge1xuICAgICAgICAgICAgIVV0aWxzLmlzTnVsbChmaWVsZEdyaWQpID9cbiAgICAgICAgICAgICAgICByZW5kZXIocHJvcHMuY29uZmlnKVxuICAgICAgICAgICAgICAgIDpcbiAgICAgICAgICAgICAgICBudWxsXG4gICAgICAgIH1cbiAgICA8L2Rpdj47XG59KTtcblxuZXhwb3J0IGRlZmF1bHQgRmllbGRTZXQ7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFDLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNELElBQUFDLE1BQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFFLFdBQUEsR0FBQUgsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFHLFVBQUEsR0FBQUosc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFJLGNBQUEsR0FBQUwsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFLLGNBQUEsR0FBQU4sc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFNLFlBQUEsR0FBQVAsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFPLGlCQUFBLEdBQUFSLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBUSxXQUFBLEdBQUFULHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBUyxXQUFBLEdBQUFWLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBVSxXQUFBLEdBQUFYLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBVyxTQUFBLEdBQUFaLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBWSxXQUFBLEdBQUFiLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBYSxZQUFBLEdBQUFkLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBYyxhQUFBLEdBQUFmLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBZSxVQUFBLEdBQUFoQixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQWdCLFlBQUEsR0FBQWpCLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBaUIsV0FBQSxHQUFBbEIsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFrQixNQUFBLEdBQUFuQixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQW1CLFVBQUEsR0FBQXBCLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBb0IsWUFBQSxHQUFBcEIsT0FBQTtBQUNBLElBQUFxQiwrQkFBQSxHQUFBdEIsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFzQixtQkFBQSxHQUFBdkIsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBQSxPQUFBO0FBQ0EsSUFBQXVCLE9BQUEsR0FBQXhCLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBd0IsVUFBQSxHQUFBekIsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUF5QixhQUFBLEdBQUExQixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQTBCLHFCQUFBLEdBQUEzQixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQTJCLEtBQUEsR0FBQTVCLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBNEIsT0FBQSxHQUFBN0Isc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUE2QixVQUFBLEdBQUE5QixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQThCLHlCQUFBLEdBQUEvQixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQStCLFVBQUEsR0FBQWhDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBZ0MsT0FBQSxHQUFBaEMsT0FBQTtBQUF3QyxTQUFBRCx1QkFBQWtDLENBQUEsV0FBQUEsQ0FBQSxJQUFBQSxDQUFBLENBQUFDLFVBQUEsR0FBQUQsQ0FBQSxLQUFBRSxPQUFBLEVBQUFGLENBQUE7QUFFeEMsTUFBTUcsUUFBUSxnQkFBR0MsY0FBSyxDQUFDQyxJQUFJLENBQUVDLEtBQUssSUFBSztFQUNuQyxNQUFNLENBQUNDLFNBQVMsQ0FBQyxHQUFHSCxjQUFLLENBQUNJLFFBQVEsQ0FBQ0MsY0FBSyxDQUFDQyxZQUFZLENBQUNKLEtBQUssQ0FBQ0ssTUFBTSxDQUFDQyxVQUFVLEVBQUVOLEtBQUssQ0FBQ0ssTUFBTSxDQUFDRSxNQUFNLENBQUMsQ0FBQztFQUNwRyxNQUFNLENBQUNDLGdCQUFnQixDQUFDLEdBQUdWLGNBQUssQ0FBQ0ksUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO0VBQzdDLE1BQU0sQ0FBQ08sT0FBTyxFQUFFQyxVQUFVLENBQUMsR0FBR1osY0FBSyxDQUFDSSxRQUFRLENBQUMsS0FBSyxDQUFDO0VBRW5ELE1BQU1TLHFCQUFxQixHQUFJQyxLQUFLLElBQUs7SUFDckMsSUFBSVQsY0FBSyxDQUFDVSxNQUFNLENBQUNMLGdCQUFnQixDQUFDSSxLQUFLLENBQUNFLEVBQUUsQ0FBQyxDQUFDLEVBQUU7TUFDMUMsSUFBSUMsTUFBTSxHQUFHLENBQUMsQ0FBQztNQUNmUCxnQkFBZ0IsQ0FBQ0ksS0FBSyxDQUFDRSxFQUFFLENBQUMsR0FBR0MsTUFBTTtNQUNuQyxPQUFPQSxNQUFNO0lBQ2pCO0lBRUEsT0FBT1AsZ0JBQWdCLENBQUNJLEtBQUssQ0FBQ0UsRUFBRSxDQUFDO0VBQ3JDLENBQUM7RUFFRGhCLGNBQUssQ0FBQ2tCLFNBQVMsQ0FDWCxNQUFNO0lBQ0ZoQixLQUFLLENBQUNlLE1BQU0sQ0FBQ0UsR0FBRyxHQUFHQSxHQUFHLENBQUMsQ0FBQztFQUM1QixDQUFDLENBQUM7RUFFTm5CLGNBQUssQ0FBQ29CLGVBQWUsQ0FDakIsTUFBTTtJQUNGbEIsS0FBSyxDQUFDZSxNQUFNLENBQUNFLEdBQUcsR0FBR0EsR0FBRyxDQUFDLENBQUM7RUFDNUIsQ0FBQyxFQUFFLEVBQUUsQ0FBQztFQUVWbkIsY0FBSyxDQUFDa0IsU0FBUyxDQUNYLE1BQU07SUFDRmhCLEtBQUssQ0FBQ2UsTUFBTSxDQUFDRSxHQUFHLEdBQUdBLEdBQUcsQ0FBQyxDQUFDO0lBQ3hCakIsS0FBSyxDQUFDZSxNQUFNLENBQUNFLEdBQUcsQ0FBQ0UsT0FBTyxDQUFDLENBQUM7SUFDMUIsSUFBSUMsWUFBWSxHQUFHakIsY0FBSyxDQUFDa0IsV0FBVyxDQUFDckIsS0FBSyxDQUFDSyxNQUFNLEVBQUVMLEtBQUssQ0FBQ3NCLE1BQU0sQ0FBQztJQUNoRUMsbUJBQVksQ0FBQ0MsZ0JBQWdCLENBQUNKLFlBQVksQ0FBQ0ssbUJBQW1CLEVBQUV6QixLQUFLLENBQUNlLE1BQU0sRUFBRWYsS0FBSyxDQUFDc0IsTUFBTSxDQUFDO0lBQzNGQyxtQkFBWSxDQUFDRyxzQkFBc0IsQ0FBQzFCLEtBQUssQ0FBQ3NCLE1BQU0sRUFBRUYsWUFBWSxDQUFDO0VBQ25FLENBQUMsRUFBRSxFQUFFLENBQUM7RUFFVnRCLGNBQUssQ0FBQ2tCLFNBQVMsQ0FDWCxNQUFNO0lBQ0YsSUFBSSxDQUFDYixjQUFLLENBQUNVLE1BQU0sQ0FBQ2IsS0FBSyxDQUFDMkIsUUFBUSxDQUFDLEVBQUU7TUFDL0JDLDRCQUE0QixDQUFDNUIsS0FBSyxDQUFDMkIsUUFBUSxDQUFDO0lBQ2hEO0VBQ0osQ0FBQyxFQUFFLENBQUMzQixLQUFLLENBQUMyQixRQUFRLENBQUMsQ0FBQztFQUV4QixTQUFTRSxlQUFlQSxDQUFBLEVBQUc7SUFDdkIsSUFBSUMsS0FBSyxHQUFHLElBQUlDLGNBQUssQ0FBQy9CLEtBQUssQ0FBQ2UsTUFBTSxFQUFFZixLQUFLLENBQUNzQixNQUFNLENBQUM7SUFDakRDLG1CQUFZLENBQUNTLFNBQVMsQ0FBQ0Msa0JBQVMsQ0FBQ0MsWUFBWSxFQUFFSixLQUFLLENBQUM7RUFDekQ7RUFFQSxTQUFTRiw0QkFBNEJBLENBQUNELFFBQVEsRUFBRTtJQUM1QyxJQUFJUSxVQUFVLEdBQUdDLE1BQU0sQ0FBQ0MsbUJBQW1CLENBQUM3QixnQkFBZ0IsQ0FBQztJQUM3RCxLQUFLLE1BQU04QixRQUFRLElBQUlILFVBQVUsRUFBRTtNQUMvQixJQUFJSSxlQUFlLEdBQUcvQixnQkFBZ0IsQ0FBQzhCLFFBQVEsQ0FBQztNQUNoREMsZUFBZSxDQUFDdEIsR0FBRyxDQUFDVSxRQUFRLEdBQUdBLFFBQVE7SUFDM0M7RUFDSjtFQUVBLFNBQVNhLGlCQUFpQkEsQ0FBQSxFQUFHO0lBQ3pCLElBQUlMLFVBQVUsR0FBR0MsTUFBTSxDQUFDQyxtQkFBbUIsQ0FBQzdCLGdCQUFnQixDQUFDO0lBQzdELEtBQUssTUFBTThCLFFBQVEsSUFBSUgsVUFBVSxFQUFFO01BQy9CLElBQUlJLGVBQWUsR0FBRy9CLGdCQUFnQixDQUFDOEIsUUFBUSxDQUFDO01BQ2hELElBQUdDLGVBQWUsQ0FBQ3RCLEdBQUcsRUFBRTtRQUNwQnNCLGVBQWUsQ0FBQ3RCLEdBQUcsQ0FBQ0UsT0FBTyxDQUFDLENBQUM7TUFDakM7SUFDSjtFQUNKO0VBRUEsU0FBU3NCLGVBQWVBLENBQUNDLFNBQVMsRUFBRTtJQUNoQyxJQUFJLENBQUNBLFNBQVMsQ0FBQ0MsU0FBUyxFQUFFO01BQ3RCQyxPQUFPLENBQUNDLEtBQUssQ0FBQyw0QkFBNEIsR0FBR0gsU0FBUyxDQUFDNUIsRUFBRSxHQUFHLDRCQUE0QixDQUFDO0lBQzdGO0lBRUEsSUFBSWdDLFVBQVUsR0FBRyxLQUFLO0lBQ3RCLElBQUksQ0FBQzNDLGNBQUssQ0FBQ1UsTUFBTSxDQUFDYixLQUFLLENBQUNLLE1BQU0sQ0FBQyxJQUFJLENBQUNGLGNBQUssQ0FBQ1UsTUFBTSxDQUFDYixLQUFLLENBQUNLLE1BQU0sQ0FBQ3NCLFFBQVEsQ0FBQyxFQUFFO01BQ3JFbUIsVUFBVSxHQUFHM0MsY0FBSyxDQUFDNEMseUJBQXlCLENBQUMvQyxLQUFLLENBQUNLLE1BQU0sQ0FBQ3NCLFFBQVEsRUFBRTNCLEtBQUssQ0FBQ0ssTUFBTSxDQUFDUyxFQUFFLENBQUM7SUFDeEY7SUFFQSxJQUFJZ0MsVUFBVSxFQUFFO01BQ1osSUFBSTNDLGNBQUssQ0FBQ1UsTUFBTSxDQUFDNkIsU0FBUyxDQUFDZixRQUFRLENBQUMsRUFBRTtRQUNsQ2UsU0FBUyxDQUFDZixRQUFRLEdBQUcsSUFBSTtNQUM3QjtJQUNKO0lBRUEsUUFBUWUsU0FBUyxDQUFDQyxTQUFTO01BQ3ZCLEtBQUssUUFBUTtRQUNULG9CQUFPcEYsTUFBQSxDQUFBcUMsT0FBQSxDQUFBb0QsYUFBQSxDQUFDakYsWUFBQSxDQUFBNkIsT0FBVztVQUFDcUQsVUFBVSxFQUFFakQsS0FBSyxDQUFDaUQsVUFBVztVQUM3QjVDLE1BQU0sRUFBRXFDLFNBQVU7VUFDbEJRLElBQUksRUFBRWxELEtBQUssQ0FBQ2tELElBQUs7VUFDakJDLFFBQVEsRUFBRW5ELEtBQUssQ0FBQ21ELFFBQVM7VUFDekJwQyxNQUFNLEVBQUVKLHFCQUFxQixDQUFDK0IsU0FBUyxDQUFFO1VBQ3pDVSxrQkFBa0IsRUFBRUEsQ0FBQSxLQUFNdkIsZUFBZSxDQUFDLENBQUU7VUFDNUN3QixNQUFNLEVBQUVyRCxLQUFLLENBQUNxRCxNQUFPO1VBQ3JCL0IsTUFBTSxFQUFFdEIsS0FBSyxDQUFDc0I7UUFBTyxDQUN4QyxDQUFDO01BQ04sS0FBSyxjQUFjO1FBQ2Ysb0JBQU8vRCxNQUFBLENBQUFxQyxPQUFBLENBQUFvRCxhQUFBLENBQUNoRixpQkFBQSxDQUFBNEIsT0FBZ0I7VUFBQ3FELFVBQVUsRUFBRWpELEtBQUssQ0FBQ2lELFVBQVc7VUFDN0I1QyxNQUFNLEVBQUVxQyxTQUFVO1VBQ2xCUSxJQUFJLEVBQUVsRCxLQUFLLENBQUNrRCxJQUFLO1VBQ2pCQyxRQUFRLEVBQUVuRCxLQUFLLENBQUNtRCxRQUFTO1VBQ3pCcEMsTUFBTSxFQUFFSixxQkFBcUIsQ0FBQytCLFNBQVMsQ0FBRTtVQUN6Q1Usa0JBQWtCLEVBQUVBLENBQUEsS0FBTXZCLGVBQWUsQ0FBQyxDQUFFO1VBQzVDd0IsTUFBTSxFQUFFckQsS0FBSyxDQUFDcUQsTUFBTztVQUNyQi9CLE1BQU0sRUFBRXRCLEtBQUssQ0FBQ3NCO1FBQU8sQ0FDN0MsQ0FBQztNQUNOLEtBQUssWUFBWTtRQUNiLG9CQUFPL0QsTUFBQSxDQUFBcUMsT0FBQSxDQUFBb0QsYUFBQSxDQUFDcEYsVUFBQSxDQUFBZ0MsT0FBUztVQUFDcUQsVUFBVSxFQUFFakQsS0FBSyxDQUFDaUQsVUFBVztVQUM3QjVDLE1BQU0sRUFBRXFDLFNBQVU7VUFDbEJVLGtCQUFrQixFQUFFQSxDQUFBLEtBQU12QixlQUFlLENBQUMsQ0FBRTtVQUM1Q3FCLElBQUksRUFBRWxELEtBQUssQ0FBQ2tELElBQUs7VUFDakJDLFFBQVEsRUFBRW5ELEtBQUssQ0FBQ21ELFFBQVM7VUFDekJwQyxNQUFNLEVBQUVKLHFCQUFxQixDQUFDK0IsU0FBUyxDQUFFO1VBQ3pDVyxNQUFNLEVBQUVyRCxLQUFLLENBQUNxRCxNQUFPO1VBQ3JCL0IsTUFBTSxFQUFFdEIsS0FBSyxDQUFDc0I7UUFBTyxDQUN0QyxDQUFDO01BQ04sS0FBSyxVQUFVO1FBQ1gsb0JBQU8vRCxNQUFBLENBQUFxQyxPQUFBLENBQUFvRCxhQUFBLENBQUNuRixjQUFBLENBQUErQixPQUFhO1VBQUNxRCxVQUFVLEVBQUVqRCxLQUFLLENBQUNpRCxVQUFXO1VBQzdCNUMsTUFBTSxFQUFFcUMsU0FBVTtVQUNsQlUsa0JBQWtCLEVBQUVBLENBQUEsS0FBTXZCLGVBQWUsQ0FBQyxDQUFFO1VBQzVDcUIsSUFBSSxFQUFFbEQsS0FBSyxDQUFDa0QsSUFBSztVQUNqQkMsUUFBUSxFQUFFbkQsS0FBSyxDQUFDbUQsUUFBUztVQUN6QnBDLE1BQU0sRUFBRUoscUJBQXFCLENBQUMrQixTQUFTLENBQUU7VUFDekNXLE1BQU0sRUFBRXJELEtBQUssQ0FBQ3FELE1BQU87VUFDckIvQixNQUFNLEVBQUV0QixLQUFLLENBQUNzQjtRQUFPLENBQzFDLENBQUM7TUFDTixLQUFLLFVBQVU7UUFDWCxvQkFBTy9ELE1BQUEsQ0FBQXFDLE9BQUEsQ0FBQW9ELGFBQUEsQ0FBQ3BGLFVBQUEsQ0FBQWdDLE9BQVM7VUFBQ3FELFVBQVUsRUFBRWpELEtBQUssQ0FBQ2lELFVBQVc7VUFDN0I1QyxNQUFNLEVBQUVxQyxTQUFVO1VBQ2xCVSxrQkFBa0IsRUFBRUEsQ0FBQSxLQUFNdkIsZUFBZSxDQUFDLENBQUU7VUFDNUNxQixJQUFJLEVBQUVsRCxLQUFLLENBQUNrRCxJQUFLO1VBQ2pCSSxJQUFJLEVBQUUsVUFBVztVQUNqQkgsUUFBUSxFQUFFbkQsS0FBSyxDQUFDbUQsUUFBUztVQUN6QnBDLE1BQU0sRUFBRUoscUJBQXFCLENBQUMrQixTQUFTLENBQUU7VUFDekNXLE1BQU0sRUFBRXJELEtBQUssQ0FBQ3FELE1BQU87VUFDckIvQixNQUFNLEVBQUV0QixLQUFLLENBQUNzQjtRQUFPLENBQ3RDLENBQUM7TUFDTixLQUFLLFdBQVc7UUFDWixvQkFBTy9ELE1BQUEsQ0FBQXFDLE9BQUEsQ0FBQW9ELGFBQUEsQ0FBQ3BGLFVBQUEsQ0FBQWdDLE9BQVM7VUFBQ3FELFVBQVUsRUFBRWpELEtBQUssQ0FBQ2lELFVBQVc7VUFDN0I1QyxNQUFNLEVBQUVxQyxTQUFVO1VBQ2xCYSxTQUFTLEVBQUUsSUFBSztVQUNoQkgsa0JBQWtCLEVBQUVBLENBQUEsS0FBTXZCLGVBQWUsQ0FBQyxDQUFFO1VBQzVDcUIsSUFBSSxFQUFFbEQsS0FBSyxDQUFDa0QsSUFBSztVQUNqQkMsUUFBUSxFQUFFbkQsS0FBSyxDQUFDbUQsUUFBUztVQUN6QnBDLE1BQU0sRUFBRUoscUJBQXFCLENBQUMrQixTQUFTLENBQUU7VUFDekNXLE1BQU0sRUFBRXJELEtBQUssQ0FBQ3FELE1BQU87VUFDckIvQixNQUFNLEVBQUV0QixLQUFLLENBQUNzQjtRQUFPLENBQ3RDLENBQUM7TUFDTixLQUFLLGdCQUFnQjtRQUNqQixvQkFBTy9ELE1BQUEsQ0FBQXFDLE9BQUEsQ0FBQW9ELGFBQUEsQ0FBQ2xGLGNBQUEsQ0FBQThCLE9BQWE7VUFBQ3FELFVBQVUsRUFBRWpELEtBQUssQ0FBQ2lELFVBQVc7VUFDN0I1QyxNQUFNLEVBQUVxQyxTQUFVO1VBQ2xCYSxTQUFTLEVBQUUsSUFBSztVQUNoQkgsa0JBQWtCLEVBQUVBLENBQUEsS0FBTXZCLGVBQWUsQ0FBQyxDQUFFO1VBQzVDcUIsSUFBSSxFQUFFbEQsS0FBSyxDQUFDa0QsSUFBSztVQUNqQkMsUUFBUSxFQUFFbkQsS0FBSyxDQUFDbUQsUUFBUztVQUN6QnBDLE1BQU0sRUFBRUoscUJBQXFCLENBQUMrQixTQUFTLENBQUU7VUFDekNXLE1BQU0sRUFBRXJELEtBQUssQ0FBQ3FELE1BQU87VUFDckIvQixNQUFNLEVBQUV0QixLQUFLLENBQUNzQjtRQUFPLENBQzFDLENBQUM7TUFDTixLQUFLLFFBQVE7UUFDVCxvQkFBTy9ELE1BQUEsQ0FBQXFDLE9BQUEsQ0FBQW9ELGFBQUEsQ0FBQy9FLFdBQUEsQ0FBQTJCLE9BQVU7VUFBQ3FELFVBQVUsRUFBRWpELEtBQUssQ0FBQ2lELFVBQVc7VUFDN0I1QyxNQUFNLEVBQUVxQyxTQUFVO1VBQ2xCUSxJQUFJLEVBQUVsRCxLQUFLLENBQUNrRCxJQUFLO1VBQ2pCQyxRQUFRLEVBQUVuRCxLQUFLLENBQUNtRCxRQUFTO1VBQ3pCcEMsTUFBTSxFQUFFSixxQkFBcUIsQ0FBQytCLFNBQVMsQ0FBRTtVQUN6Q1Usa0JBQWtCLEVBQUVBLENBQUEsS0FBTXZCLGVBQWUsQ0FBQyxDQUFFO1VBQzVDd0IsTUFBTSxFQUFFckQsS0FBSyxDQUFDcUQsTUFBTztVQUNyQi9CLE1BQU0sRUFBRXRCLEtBQUssQ0FBQ3NCO1FBQU8sQ0FDdkMsQ0FBQztNQUNOLEtBQUssTUFBTTtRQUNQLG9CQUFPL0QsTUFBQSxDQUFBcUMsT0FBQSxDQUFBb0QsYUFBQSxDQUFDOUUsV0FBQSxDQUFBMEIsT0FBVTtVQUFDcUQsVUFBVSxFQUFFakQsS0FBSyxDQUFDaUQsVUFBVztVQUM3QjVDLE1BQU0sRUFBRXFDLFNBQVU7VUFDbEJRLElBQUksRUFBRWxELEtBQUssQ0FBQ2tELElBQUs7VUFDakJDLFFBQVEsRUFBRW5ELEtBQUssQ0FBQ21ELFFBQVM7VUFDekJwQyxNQUFNLEVBQUVKLHFCQUFxQixDQUFDK0IsU0FBUyxDQUFFO1VBQ3pDVSxrQkFBa0IsRUFBRUEsQ0FBQSxLQUFNdkIsZUFBZSxDQUFDLENBQUU7VUFDNUN3QixNQUFNLEVBQUVyRCxLQUFLLENBQUNxRCxNQUFPO1VBQ3JCL0IsTUFBTSxFQUFFdEIsS0FBSyxDQUFDc0I7UUFBTyxDQUN2QyxDQUFDO01BQ04sS0FBSyxlQUFlO1FBQ2hCLG9CQUFPL0QsTUFBQSxDQUFBcUMsT0FBQSxDQUFBb0QsYUFBQSxDQUFDOUQsYUFBQSxDQUFBVSxPQUFZO1VBQUNxRCxVQUFVLEVBQUVqRCxLQUFLLENBQUNpRCxVQUFXO1VBQzdCNUMsTUFBTSxFQUFFcUMsU0FBVTtVQUNsQlEsSUFBSSxFQUFFbEQsS0FBSyxDQUFDa0QsSUFBSztVQUNqQkMsUUFBUSxFQUFFbkQsS0FBSyxDQUFDbUQsUUFBUztVQUN6QnBDLE1BQU0sRUFBRUoscUJBQXFCLENBQUMrQixTQUFTLENBQUU7VUFDekNVLGtCQUFrQixFQUFFQSxDQUFBLEtBQU12QixlQUFlLENBQUMsQ0FBRTtVQUM1Q3dCLE1BQU0sRUFBRXJELEtBQUssQ0FBQ3FELE1BQU87VUFDckIvQixNQUFNLEVBQUV0QixLQUFLLENBQUNzQjtRQUFPLENBQ3pDLENBQUM7TUFDTixLQUFLLFVBQVU7UUFDWCxvQkFBTy9ELE1BQUEsQ0FBQXFDLE9BQUEsQ0FBQW9ELGFBQUEsQ0FBQzVFLFNBQUEsQ0FBQXdCLE9BQVE7VUFBQ3FELFVBQVUsRUFBRWpELEtBQUssQ0FBQ2lELFVBQVc7VUFDN0I1QyxNQUFNLEVBQUVxQyxTQUFVO1VBQ2xCUSxJQUFJLEVBQUVsRCxLQUFLLENBQUNrRCxJQUFLO1VBQ2pCQyxRQUFRLEVBQUVuRCxLQUFLLENBQUNtRCxRQUFTO1VBQ3pCcEMsTUFBTSxFQUFFSixxQkFBcUIsQ0FBQytCLFNBQVMsQ0FBRTtVQUN6Q1Usa0JBQWtCLEVBQUVBLENBQUEsS0FBTXZCLGVBQWUsQ0FBQyxDQUFFO1VBQzVDd0IsTUFBTSxFQUFFckQsS0FBSyxDQUFDcUQsTUFBTztVQUNyQi9CLE1BQU0sRUFBRXRCLEtBQUssQ0FBQ3NCO1FBQU8sQ0FDckMsQ0FBQztNQUNOLEtBQUssUUFBUTtRQUNULG9CQUFPL0QsTUFBQSxDQUFBcUMsT0FBQSxDQUFBb0QsYUFBQSxDQUFDM0QsT0FBQSxDQUFBTyxPQUFNO1VBQUNxRCxVQUFVLEVBQUVqRCxLQUFLLENBQUNpRCxVQUFXO1VBQzdCNUMsTUFBTSxFQUFFcUMsU0FBVTtVQUNsQlEsSUFBSSxFQUFFbEQsS0FBSyxDQUFDa0QsSUFBSztVQUNqQkMsUUFBUSxFQUFFbkQsS0FBSyxDQUFDbUQsUUFBUztVQUN6QnBDLE1BQU0sRUFBRUoscUJBQXFCLENBQUMrQixTQUFTLENBQUU7VUFDekNVLGtCQUFrQixFQUFFQSxDQUFBLEtBQU12QixlQUFlLENBQUMsQ0FBRTtVQUM1Q3dCLE1BQU0sRUFBRXJELEtBQUssQ0FBQ3FELE1BQU87VUFDckIvQixNQUFNLEVBQUV0QixLQUFLLENBQUNzQjtRQUFPLENBQ25DLENBQUM7TUFDTixLQUFLLE9BQU87UUFDUixvQkFBTy9ELE1BQUEsQ0FBQXFDLE9BQUEsQ0FBQW9ELGFBQUEsQ0FBQzNFLFdBQUEsQ0FBQXVCLE9BQVU7VUFBQ3FELFVBQVUsRUFBRWpELEtBQUssQ0FBQ2lELFVBQVc7VUFDN0I1QyxNQUFNLEVBQUVxQyxTQUFVO1VBQ2xCUSxJQUFJLEVBQUVsRCxLQUFLLENBQUNrRCxJQUFLO1VBQ2pCQyxRQUFRLEVBQUVuRCxLQUFLLENBQUNtRCxRQUFTO1VBQ3pCcEMsTUFBTSxFQUFFSixxQkFBcUIsQ0FBQytCLFNBQVMsQ0FBRTtVQUN6Q1Usa0JBQWtCLEVBQUVBLENBQUEsS0FBTXZCLGVBQWUsQ0FBQyxDQUFFO1VBQzVDd0IsTUFBTSxFQUFFckQsS0FBSyxDQUFDcUQsTUFBTztVQUNyQi9CLE1BQU0sRUFBRXRCLEtBQUssQ0FBQ3NCO1FBQU8sQ0FDdkMsQ0FBQztNQUNOLEtBQUssYUFBYTtRQUNkLG9CQUFPL0QsTUFBQSxDQUFBcUMsT0FBQSxDQUFBb0QsYUFBQSxDQUFDMUUsWUFBQSxDQUFBc0IsT0FBVztVQUFDcUQsVUFBVSxFQUFFakQsS0FBSyxDQUFDaUQsVUFBVztVQUM3QjVDLE1BQU0sRUFBRXFDLFNBQVU7VUFDbEJRLElBQUksRUFBRWxELEtBQUssQ0FBQ2tELElBQUs7VUFDakJDLFFBQVEsRUFBRW5ELEtBQUssQ0FBQ21ELFFBQVM7VUFDekJwQyxNQUFNLEVBQUVKLHFCQUFxQixDQUFDK0IsU0FBUyxDQUFFO1VBQ3pDVSxrQkFBa0IsRUFBRUEsQ0FBQSxLQUFNdkIsZUFBZSxDQUFDLENBQUU7VUFDNUN3QixNQUFNLEVBQUVyRCxLQUFLLENBQUNxRCxNQUFPO1VBQ3JCL0IsTUFBTSxFQUFFdEIsS0FBSyxDQUFDc0I7UUFBTyxDQUN4QyxDQUFDO01BQ04sS0FBSyxjQUFjO1FBQ2Ysb0JBQU8vRCxNQUFBLENBQUFxQyxPQUFBLENBQUFvRCxhQUFBLENBQUMxRSxZQUFBLENBQUFzQixPQUFXO1VBQUNxRCxVQUFVLEVBQUVqRCxLQUFLLENBQUNpRCxVQUFXO1VBQzdCNUMsTUFBTSxFQUFFcUMsU0FBVTtVQUNsQlEsSUFBSSxFQUFFbEQsS0FBSyxDQUFDa0QsSUFBSztVQUNqQkMsUUFBUSxFQUFFbkQsS0FBSyxDQUFDbUQsUUFBUztVQUN6QnBDLE1BQU0sRUFBRUoscUJBQXFCLENBQUMrQixTQUFTLENBQUU7VUFDekNjLEtBQUssRUFBRSxPQUFRO1VBQ2ZKLGtCQUFrQixFQUFFQSxDQUFBLEtBQU12QixlQUFlLENBQUMsQ0FBRTtVQUM1Q3dCLE1BQU0sRUFBRXJELEtBQUssQ0FBQ3FELE1BQU87VUFDckIvQixNQUFNLEVBQUV0QixLQUFLLENBQUNzQjtRQUFPLENBQ3hDLENBQUM7TUFDTixLQUFLLG1CQUFtQjtRQUNwQixvQkFBTy9ELE1BQUEsQ0FBQXFDLE9BQUEsQ0FBQW9ELGFBQUEsQ0FBQzdELHFCQUFBLENBQUFTLE9BQW9CO1VBQ3hCcUQsVUFBVSxFQUFFakQsS0FBSyxDQUFDaUQsVUFBVztVQUM3QjVDLE1BQU0sRUFBRXFDLFNBQVU7VUFDbEJRLElBQUksRUFBRWxELEtBQUssQ0FBQ2tELElBQUs7VUFDakJDLFFBQVEsRUFBRW5ELEtBQUssQ0FBQ21ELFFBQVM7VUFDekJwQyxNQUFNLEVBQUVKLHFCQUFxQixDQUFDK0IsU0FBUyxDQUFFO1VBQ3pDVSxrQkFBa0IsRUFBRUEsQ0FBQSxLQUFNdkIsZUFBZSxDQUFDLENBQUU7VUFDNUN3QixNQUFNLEVBQUVyRCxLQUFLLENBQUNxRCxNQUFPO1VBQ3JCL0IsTUFBTSxFQUFFdEIsS0FBSyxDQUFDc0I7UUFBTyxDQUN4QixDQUFDO01BQ04sS0FBSyxlQUFlO1FBQ2hCLG9CQUFPL0QsTUFBQSxDQUFBcUMsT0FBQSxDQUFBb0QsYUFBQSxDQUFDekUsYUFBQSxDQUFBcUIsT0FBWTtVQUFDcUQsVUFBVSxFQUFFakQsS0FBSyxDQUFDaUQsVUFBVztVQUM3QjVDLE1BQU0sRUFBRXFDLFNBQVU7VUFDbEJRLElBQUksRUFBRWxELEtBQUssQ0FBQ2tELElBQUs7VUFDakJDLFFBQVEsRUFBRW5ELEtBQUssQ0FBQ21ELFFBQVM7VUFDekJwQyxNQUFNLEVBQUVKLHFCQUFxQixDQUFDK0IsU0FBUyxDQUFFO1VBQ3pDVSxrQkFBa0IsRUFBRUEsQ0FBQSxLQUFNdkIsZUFBZSxDQUFDLENBQUU7VUFDNUN3QixNQUFNLEVBQUVyRCxLQUFLLENBQUNxRCxNQUFPO1VBQ3JCL0IsTUFBTSxFQUFFdEIsS0FBSyxDQUFDc0I7UUFBTyxDQUN6QyxDQUFDO01BQ04sS0FBSyxNQUFNO1FBQ1Asb0JBQU8vRCxNQUFBLENBQUFxQyxPQUFBLENBQUFvRCxhQUFBLENBQUN4RSxVQUFBLENBQUFvQixPQUFTO1VBQUNxRCxVQUFVLEVBQUVqRCxLQUFLLENBQUNpRCxVQUFXO1VBQzdCNUMsTUFBTSxFQUFFcUMsU0FBVTtVQUNsQlEsSUFBSSxFQUFFbEQsS0FBSyxDQUFDa0QsSUFBSztVQUNqQkMsUUFBUSxFQUFFbkQsS0FBSyxDQUFDbUQsUUFBUztVQUN6QnBDLE1BQU0sRUFBRUoscUJBQXFCLENBQUMrQixTQUFTLENBQUU7VUFDekNVLGtCQUFrQixFQUFFQSxDQUFBLEtBQU12QixlQUFlLENBQUMsQ0FBRTtVQUM1Q3dCLE1BQU0sRUFBRXJELEtBQUssQ0FBQ3FELE1BQU87VUFDckIvQixNQUFNLEVBQUV0QixLQUFLLENBQUNzQjtRQUFPLENBQ3RDLENBQUM7TUFDTixLQUFLLE1BQU07UUFDUCxvQkFBTy9ELE1BQUEsQ0FBQXFDLE9BQUEsQ0FBQW9ELGFBQUEsQ0FBQzdFLFdBQUEsQ0FBQXlCLE9BQVU7VUFDZHFELFVBQVUsRUFBRWpELEtBQUssQ0FBQ2lELFVBQVc7VUFDN0I1QyxNQUFNLEVBQUVxQyxTQUFVO1VBQ2xCUSxJQUFJLEVBQUVsRCxLQUFLLENBQUNrRCxJQUFLO1VBQ2pCQyxRQUFRLEVBQUVuRCxLQUFLLENBQUNtRCxRQUFTO1VBQ3pCcEMsTUFBTSxFQUFFSixxQkFBcUIsQ0FBQytCLFNBQVMsQ0FBRTtVQUN6Q1Usa0JBQWtCLEVBQUVBLENBQUEsS0FBTXZCLGVBQWUsQ0FBQyxDQUFFO1VBQzVDd0IsTUFBTSxFQUFFckQsS0FBSyxDQUFDcUQsTUFBTztVQUNyQi9CLE1BQU0sRUFBRXRCLEtBQUssQ0FBQ3NCO1FBQU8sQ0FDeEIsQ0FBQztNQUNOLEtBQUssY0FBYztRQUNmLG9CQUFPL0QsTUFBQSxDQUFBcUMsT0FBQSxDQUFBb0QsYUFBQSxDQUFDdkUsWUFBQSxDQUFBbUIsT0FBVztVQUNmcUQsVUFBVSxFQUFFakQsS0FBSyxDQUFDaUQsVUFBVztVQUM3QjVDLE1BQU0sRUFBRXFDLFNBQVU7VUFDbEJRLElBQUksRUFBRWxELEtBQUssQ0FBQ2tELElBQUs7VUFDakJDLFFBQVEsRUFBRW5ELEtBQUssQ0FBQ21ELFFBQVM7VUFDekJwQyxNQUFNLEVBQUVKLHFCQUFxQixDQUFDK0IsU0FBUyxDQUFFO1VBQ3pDVSxrQkFBa0IsRUFBRUEsQ0FBQSxLQUFNdkIsZUFBZSxDQUFDLENBQUU7VUFDNUN3QixNQUFNLEVBQUVyRCxLQUFLLENBQUNxRCxNQUFPO1VBQ3JCL0IsTUFBTSxFQUFFdEIsS0FBSyxDQUFDc0I7UUFBTyxDQUN4QixDQUFDO01BQ04sS0FBSyxhQUFhO1FBQ2Qsb0JBQU8vRCxNQUFBLENBQUFxQyxPQUFBLENBQUFvRCxhQUFBLENBQUN0RSxXQUFBLENBQUFrQixPQUFVO1VBQ2RxRCxVQUFVLEVBQUVqRCxLQUFLLENBQUNpRCxVQUFXO1VBQzdCNUMsTUFBTSxFQUFFcUMsU0FBVTtVQUNsQlEsSUFBSSxFQUFFbEQsS0FBSyxDQUFDa0QsSUFBSztVQUNqQkMsUUFBUSxFQUFFbkQsS0FBSyxDQUFDbUQsUUFBUztVQUN6QnBDLE1BQU0sRUFBRUoscUJBQXFCLENBQUMrQixTQUFTLENBQUU7VUFDekNVLGtCQUFrQixFQUFFQSxDQUFBLEtBQU12QixlQUFlLENBQUMsQ0FBRTtVQUM1Q3dCLE1BQU0sRUFBRXJELEtBQUssQ0FBQ3FELE1BQU87VUFDckIvQixNQUFNLEVBQUV0QixLQUFLLENBQUNzQjtRQUFPLENBQ3hCLENBQUM7TUFDTixLQUFLLFFBQVE7UUFDVCxvQkFBTy9ELE1BQUEsQ0FBQXFDLE9BQUEsQ0FBQW9ELGFBQUEsQ0FBQ2hFLE9BQUEsQ0FBQVksT0FBTTtVQUNWUyxNQUFNLEVBQUVxQyxTQUFVO1VBQ2xCUSxJQUFJLEVBQUVsRCxLQUFLLENBQUNrRCxJQUFLO1VBQ2pCbkMsTUFBTSxFQUFFSixxQkFBcUIsQ0FBQytCLFNBQVMsQ0FBRTtVQUN6Q3BCLE1BQU0sRUFBRXRCLEtBQUssQ0FBQ3NCO1FBQU8sQ0FDeEIsQ0FBQztNQUNOLEtBQUssWUFBWTtRQUNiLG9CQUFPL0QsTUFBQSxDQUFBcUMsT0FBQSxDQUFBb0QsYUFBQSxDQUFDL0QsVUFBQSxDQUFBVyxPQUFTO1VBQ2JTLE1BQU0sRUFBRXFDLFNBQVU7VUFDbEJRLElBQUksRUFBRWxELEtBQUssQ0FBQ2tELElBQUs7VUFDakJuQyxNQUFNLEVBQUVKLHFCQUFxQixDQUFDK0IsU0FBUyxDQUFFO1VBQ3pDcEIsTUFBTSxFQUFFdEIsS0FBSyxDQUFDc0I7UUFBTyxDQUN4QixDQUFDO01BQ04sS0FBSyxRQUFRO1FBQ1Qsb0JBQU8vRCxNQUFBLENBQUFxQyxPQUFBLENBQUFvRCxhQUFBLENBQUN2RCxPQUFBLENBQUFnRSxNQUFNO1VBQ1ZwRCxNQUFNLEVBQUVxQyxTQUFVO1VBQ2xCUSxJQUFJLEVBQUVsRCxLQUFLLENBQUNrRCxJQUFLO1VBQ2pCbkMsTUFBTSxFQUFFSixxQkFBcUIsQ0FBQytCLFNBQVMsQ0FBRTtVQUN6Q3BCLE1BQU0sRUFBRXRCLEtBQUssQ0FBQ3NCO1FBQU8sQ0FDeEIsQ0FBQztNQUNOLEtBQUssTUFBTTtRQUNQLG9CQUFPL0QsTUFBQSxDQUFBcUMsT0FBQSxDQUFBb0QsYUFBQSxDQUFDMUQsVUFBQSxDQUFBTSxPQUFTO1VBQ2JxRCxVQUFVLEVBQUVqRCxLQUFLLENBQUNpRCxVQUFXO1VBQzdCNUMsTUFBTSxFQUFFcUMsU0FBVTtVQUNsQlEsSUFBSSxFQUFFbEQsS0FBSyxDQUFDa0QsSUFBSztVQUNqQkMsUUFBUSxFQUFFbkQsS0FBSyxDQUFDbUQsUUFBUztVQUN6QnBDLE1BQU0sRUFBRUoscUJBQXFCLENBQUMrQixTQUFTLENBQUU7VUFDekNVLGtCQUFrQixFQUFFQSxDQUFBLEtBQU12QixlQUFlLENBQUMsQ0FBRTtVQUM1Q3dCLE1BQU0sRUFBRXJELEtBQUssQ0FBQ3FELE1BQU87VUFDckIvQixNQUFNLEVBQUV0QixLQUFLLENBQUNzQjtRQUFPLENBQ3hCLENBQUM7TUFDTixLQUFLLDZCQUE2QjtRQUM5QixvQkFBTy9ELE1BQUEsQ0FBQXFDLE9BQUEsQ0FBQW9ELGFBQUEsQ0FBQ2xFLCtCQUFBLENBQUFjLE9BQThCO1VBQ2xDcUQsVUFBVSxFQUFFakQsS0FBSyxDQUFDaUQsVUFBVztVQUM3QjVDLE1BQU0sRUFBRXFDLFNBQVU7VUFDbEJRLElBQUksRUFBRWxELEtBQUssQ0FBQ2tELElBQUs7VUFDakJDLFFBQVEsRUFBRW5ELEtBQUssQ0FBQ21ELFFBQVM7VUFDekJwQyxNQUFNLEVBQUVKLHFCQUFxQixDQUFDK0IsU0FBUyxDQUFFO1VBQ3pDVSxrQkFBa0IsRUFBRUEsQ0FBQSxLQUFNdkIsZUFBZSxDQUFDLENBQUU7VUFDNUN3QixNQUFNLEVBQUVyRCxLQUFLLENBQUNxRCxNQUFPO1VBQ3JCL0IsTUFBTSxFQUFFdEIsS0FBSyxDQUFDc0I7UUFBTyxDQUN4QixDQUFDO01BQ04sS0FBSyw0QkFBNEI7UUFDN0Isb0JBQU8vRCxNQUFBLENBQUFxQyxPQUFBLENBQUFvRCxhQUFBLENBQUN6RCx5QkFBQSxDQUFBSyxPQUF3QjtVQUM1QnFELFVBQVUsRUFBRWpELEtBQUssQ0FBQ2lELFVBQVc7VUFDN0I1QyxNQUFNLEVBQUVxQyxTQUFVO1VBQ2xCUSxJQUFJLEVBQUVsRCxLQUFLLENBQUNrRCxJQUFLO1VBQ2pCQyxRQUFRLEVBQUVuRCxLQUFLLENBQUNtRCxRQUFTO1VBQ3pCcEMsTUFBTSxFQUFFSixxQkFBcUIsQ0FBQytCLFNBQVMsQ0FBRTtVQUN6Q1Usa0JBQWtCLEVBQUVBLENBQUEsS0FBTXZCLGVBQWUsQ0FBQyxDQUFFO1VBQzVDd0IsTUFBTSxFQUFFckQsS0FBSyxDQUFDcUQsTUFBTztVQUNyQi9CLE1BQU0sRUFBRXRCLEtBQUssQ0FBQ3NCO1FBQU8sQ0FDeEIsQ0FBQztNQUNOO1FBQ0ksb0JBQU8vRCxNQUFBLENBQUFxQyxPQUFBLENBQUFvRCxhQUFBLGNBQU0sc0NBQXNDLEdBQUdOLFNBQVMsQ0FBQ0MsU0FBUyxHQUFHLEtBQUssR0FBR0QsU0FBUyxDQUFDNUIsRUFBUSxDQUFDO0lBQy9HO0VBQ0o7RUFFQSxNQUFNRyxHQUFHLEdBQUdBLENBQUEsS0FBTTtJQUNkLE9BQU87TUFDSCxJQUFJSCxFQUFFQSxDQUFBLEVBQUc7UUFDTCxPQUFPZCxLQUFLLENBQUNLLE1BQU0sQ0FBQ1MsRUFBRTtNQUMxQixDQUFDO01BQ0QsSUFBSTRDLGlCQUFpQkEsQ0FBQSxFQUFHO1FBQ3BCLElBQUlDLFVBQVUsR0FBRyxFQUFFO1FBQ25CLEtBQUssTUFBTS9DLEtBQUssSUFBSVosS0FBSyxDQUFDSyxNQUFNLENBQUNFLE1BQU0sRUFBRTtVQUNyQ29ELFVBQVUsQ0FBQ0MsSUFBSSxDQUFDLENBQUN6RCxjQUFLLENBQUNVLE1BQU0sQ0FBQ0QsS0FBSyxDQUFDaUQsV0FBVyxDQUFDLEdBQUdqRCxLQUFLLENBQUNpRCxXQUFXLEdBQUdqRCxLQUFLLENBQUNFLEVBQUUsQ0FBQztRQUNwRjtRQUVBLE9BQU82QyxVQUFVO01BQ3JCLENBQUM7TUFDRCxJQUFJaEMsUUFBUUEsQ0FBQ0EsUUFBUSxFQUFFO1FBQ25CQyw0QkFBNEIsQ0FBQ0QsUUFBUSxDQUFDO01BQzFDLENBQUM7TUFDRG1DLEtBQUtBLENBQUEsRUFBRztRQUNKLElBQUkzQixVQUFVLEdBQUdDLE1BQU0sQ0FBQ0MsbUJBQW1CLENBQUM3QixnQkFBZ0IsQ0FBQztRQUM3RCxLQUFLLE1BQU04QixRQUFRLElBQUlILFVBQVUsRUFBRTtVQUMvQixJQUFJNEIsWUFBWSxHQUFHdkQsZ0JBQWdCLENBQUM4QixRQUFRLENBQUM7VUFDN0N5QixZQUFZLENBQUM5QyxHQUFHLENBQUMrQyxLQUFLLEdBQUcsSUFBSTtRQUNqQztNQUNKLENBQUM7TUFDREMsV0FBVyxFQUFFQSxDQUFBLEtBQU07UUFDZixJQUFJQyxRQUFRLEdBQUcsRUFBRTtRQUNqQixJQUFJL0IsVUFBVSxHQUFHQyxNQUFNLENBQUNDLG1CQUFtQixDQUFDN0IsZ0JBQWdCLENBQUM7UUFDN0QsS0FBSyxNQUFNOEIsUUFBUSxJQUFJSCxVQUFVLEVBQUU7VUFDL0IrQixRQUFRLENBQUNOLElBQUksQ0FBQ3BELGdCQUFnQixDQUFDOEIsUUFBUSxDQUFDLENBQUM7UUFDN0M7UUFFQSxPQUFPNEIsUUFBUTtNQUNuQixDQUFDO01BQ0QsSUFBSUMsS0FBS0EsQ0FBQ0EsS0FBSyxFQUFFO1FBQ2IsS0FBSyxNQUFNdkQsS0FBSyxJQUFJWixLQUFLLENBQUNLLE1BQU0sQ0FBQ0UsTUFBTSxFQUFFO1VBQ3JDUCxLQUFLLENBQUNrRCxJQUFJLENBQUMsQ0FBQyxDQUFDaUIsS0FBSyxDQUFDdkQsS0FBSyxDQUFDRSxFQUFFLENBQUMsR0FBR3FELEtBQUssQ0FBQ3ZELEtBQUssQ0FBQ0UsRUFBRSxDQUFDO1VBRTlDLElBQUlpRCxZQUFZLEdBQUd2RCxnQkFBZ0IsQ0FBQ0ksS0FBSyxDQUFDRSxFQUFFLENBQUM7VUFDN0NpRCxZQUFZLENBQUM5QyxHQUFHLENBQUMrQyxLQUFLLEdBQUdHLEtBQUssQ0FBQ3ZELEtBQUssQ0FBQ0UsRUFBRSxDQUFDO1FBQzVDO01BQ0osQ0FBQztNQUNELElBQUlrRCxLQUFLQSxDQUFBLEVBQUc7UUFDUixJQUFJQSxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSUksU0FBUyxHQUFHcEUsS0FBSyxDQUFDa0QsSUFBSSxDQUFDLENBQUMsQ0FBQ2MsS0FBSztRQUVsQyxJQUFJSSxTQUFTLEtBQUssSUFBSSxFQUFFO1VBQ3BCLE9BQU8sSUFBSTtRQUNmO1FBRUEsS0FBSyxNQUFNeEQsS0FBSyxJQUFJWixLQUFLLENBQUNLLE1BQU0sQ0FBQ0UsTUFBTSxFQUFFO1VBQ3JDeUQsS0FBSyxDQUFDcEQsS0FBSyxDQUFDRSxFQUFFLENBQUMsR0FBR3NELFNBQVMsQ0FBQ3hELEtBQUssQ0FBQ0UsRUFBRSxDQUFDO1FBQ3pDO1FBRUEsT0FBT2tELEtBQUs7TUFDaEIsQ0FBQztNQUNESyxRQUFRLEVBQUVBLENBQUNDLFlBQVksRUFBRUMsV0FBVyxLQUFLO1FBQ3JDLElBQUlDLE9BQU8sR0FBRyxDQUFDckUsY0FBSyxDQUFDVSxNQUFNLENBQUN5RCxZQUFZLENBQUNHLFdBQVcsQ0FBQyxHQUFHSCxZQUFZLENBQUNHLFdBQVcsR0FDNUUsQ0FBQ3RFLGNBQUssQ0FBQ1UsTUFBTSxDQUFDYixLQUFLLENBQUNLLE1BQU0sQ0FBQyxHQUFHTCxLQUFLLENBQUNLLE1BQU0sQ0FBQ29FLFdBQVcsR0FBRyxJQUFJO1FBQ2pFLElBQUlDLGNBQWMsR0FBRyxDQUFDdkUsY0FBSyxDQUFDVSxNQUFNLENBQUNiLEtBQUssQ0FBQ0ssTUFBTSxDQUFDMkQsS0FBSyxDQUFDLEdBQUdoRSxLQUFLLENBQUNLLE1BQU0sQ0FBQzJELEtBQUssR0FDdkVNLFlBQVksQ0FBQ04sS0FBSztRQUV0QixJQUFJVSxjQUFjLEVBQUU7VUFDaEIsSUFBSUMsV0FBVyxHQUFHRCxjQUFjLENBQUNFLFFBQVEsQ0FBQyxDQUFDLENBQ3RDQyxVQUFVLENBQUMsYUFBYSxDQUFDO1VBQzlCLElBQUlDLFdBQVcsR0FBR0MsMkJBQWtCLENBQUNDLFlBQVksQ0FBQ04sY0FBYyxDQUFDO1VBQ2pFLElBQUlPLEdBQUcsR0FBR04sV0FBVyxJQUFJRyxXQUFXLEdBQUdDLDJCQUFrQixDQUFDRyxzQkFBc0IsQ0FBQ1IsY0FBYyxFQUFFSCxXQUFXLEdBQUdBLFdBQVcsQ0FBQ1ksSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHVCxjQUFjO1VBQ3hKMUUsS0FBSyxDQUFDa0QsSUFBSSxDQUFDLENBQUMsQ0FDUGtDLFFBQVEsQ0FBQ0gsR0FBRyxDQUFDO1VBRWxCLElBQUluRCxLQUFLLEdBQUcsSUFBSUMsY0FBSyxDQUFDL0IsS0FBSyxDQUFDZSxNQUFNLEVBQUVmLEtBQUssQ0FBQ3NCLE1BQU0sRUFBRTJELEdBQUcsQ0FBQztVQUN0RDFELG1CQUFZLENBQUNTLFNBQVMsQ0FBQ0Msa0JBQVMsQ0FBQ29ELFlBQVksRUFBRXZELEtBQUssQ0FBQztRQUN6RCxDQUFDLE1BQU07VUFDSCxJQUFJLENBQUMzQixjQUFLLENBQUNVLE1BQU0sQ0FBQzJELE9BQU8sQ0FBQyxFQUFFO1lBQ3hCLElBQUljLE1BQU0sR0FBR2QsT0FBTyxDQUFDbEIsSUFBSSxLQUFLLEtBQUssR0FBR2lDLHNCQUFTLEdBQUdDLHVCQUFVO1lBQzVERixNQUFNLENBQUM7Y0FDSGQsT0FBTyxFQUFFQSxPQUFPO2NBQ2hCOUIsU0FBUyxFQUFFK0MsR0FBRyxDQUFDQyxPQUFPO2NBQ3RCcEUsTUFBTSxFQUFFdEIsS0FBSyxDQUFDc0I7WUFDbEIsQ0FBQyxDQUFDLENBQUNxRSxJQUFJLENBQUVDLE1BQU0sSUFBSztjQUNoQixJQUFJVCxJQUFJLEdBQUdYLE9BQU8sQ0FBQ2xCLElBQUksS0FBSyxLQUFLLEdBQUdzQyxNQUFNLENBQUNULElBQUksR0FBR1MsTUFBTTtjQUN4RCxJQUFJVCxJQUFJLEVBQUU7Z0JBQ05uRixLQUFLLENBQUNrRCxJQUFJLENBQUMsQ0FBQyxDQUNQa0MsUUFBUSxDQUFDRCxJQUFJLENBQUM7Z0JBRW5CLElBQUlyRCxLQUFLLEdBQUcsSUFBSUMsY0FBSyxDQUFDL0IsS0FBSyxDQUFDZSxNQUFNLEVBQUVmLEtBQUssQ0FBQ3NCLE1BQU0sRUFBRTZELElBQUksQ0FBQztnQkFDdkQ1RCxtQkFBWSxDQUFDUyxTQUFTLENBQUNDLGtCQUFTLENBQUNvRCxZQUFZLEVBQUV2RCxLQUFLLENBQUM7Y0FDekQ7WUFDSixDQUFDLENBQUMsQ0FBQytELEtBQUssQ0FBRW5HLENBQUMsSUFBSztjQUNaTSxLQUFLLENBQUM0QyxPQUFPLENBQUNDLEtBQUssQ0FBQ25ELENBQUMsQ0FBQztjQUN0QlMsY0FBSyxDQUFDMkYsbUJBQW1CLENBQUNwRyxDQUFDLEVBQUVNLEtBQUssQ0FBQ3NCLE1BQU0sQ0FBQztZQUM5QyxDQUFDLENBQUM7WUFFRixPQUFPLElBQUk7VUFDZjtRQUNKO01BQ0osQ0FBQztNQUNESCxPQUFPQSxDQUFBLEVBQUc7UUFDTixJQUFJLENBQUNoQixjQUFLLENBQUNVLE1BQU0sQ0FBQ2IsS0FBSyxDQUFDSyxNQUFNLENBQUMsSUFBSSxDQUFDRixjQUFLLENBQUNVLE1BQU0sQ0FBQ2IsS0FBSyxDQUFDSyxNQUFNLENBQUNJLE9BQU8sQ0FBQyxFQUFFO1VBQ3BFQyxVQUFVLENBQUNQLGNBQUssQ0FBQzRDLHlCQUF5QixDQUFDL0MsS0FBSyxDQUFDSyxNQUFNLENBQUNJLE9BQU8sRUFBRVQsS0FBSyxDQUFDSyxNQUFNLENBQUNTLEVBQUUsQ0FBQyxDQUFDO1FBQ3RGLENBQUMsTUFBTTtVQUNISixVQUFVLENBQUMsSUFBSSxDQUFDO1FBQ3BCO1FBRUEsSUFBSSxDQUFDUCxjQUFLLENBQUNVLE1BQU0sQ0FBQ2IsS0FBSyxDQUFDSyxNQUFNLENBQUMsSUFBSSxDQUFDRixjQUFLLENBQUNVLE1BQU0sQ0FBQ2IsS0FBSyxDQUFDSyxNQUFNLENBQUNzQixRQUFRLENBQUMsRUFBRTtVQUNyRUMsNEJBQTRCLENBQUN6QixjQUFLLENBQUM0Qyx5QkFBeUIsQ0FBQy9DLEtBQUssQ0FBQ0ssTUFBTSxDQUFDc0IsUUFBUSxFQUFFM0IsS0FBSyxDQUFDSyxNQUFNLENBQUNTLEVBQUUsQ0FBQyxDQUFDO1FBQ3pHO1FBRUEwQixpQkFBaUIsQ0FBQyxDQUFDO01BQ3ZCO0lBQ0osQ0FBQztFQUNMLENBQUM7RUFFRCxTQUFTdUQsTUFBTUEsQ0FBQ0MsUUFBUSxFQUFFO0lBQ3RCLE9BQ0s3RixjQUFLLENBQUNVLE1BQU0sQ0FBQ21GLFFBQVEsQ0FBQ3pGLE1BQU0sQ0FBQyxJQUFJeUYsUUFBUSxDQUFDekYsTUFBTSxDQUFDMEYsTUFBTSxLQUFLLENBQUMsZ0JBQzFEMUksTUFBQSxDQUFBcUMsT0FBQSxDQUFBb0QsYUFBQSxjQUFLLHFDQUF3QyxDQUFDLGdCQUU5Q3pGLE1BQUEsQ0FBQXFDLE9BQUEsQ0FBQW9ELGFBQUEsY0FFUS9DLFNBQVMsQ0FBQ2lHLElBQUksQ0FBQ0MsR0FBRyxDQUFDLENBQUNDLEdBQUcsRUFBRUMsQ0FBQyxLQUFLO01BQzNCLG9CQUFPOUksTUFBQSxDQUFBcUMsT0FBQSxDQUFBb0QsYUFBQTtRQUFLc0QsU0FBUyxFQUFDLGlCQUFpQjtRQUFDQyxHQUFHLEVBQUVGLENBQUU7UUFDbkM3QyxLQUFLLEVBQUU7VUFDSGdELFVBQVUsRUFBRSxHQUFHO1VBQ2ZDLFdBQVcsRUFBRTtRQUNqQjtNQUFFLEdBRU5MLEdBQUcsQ0FBQzdGLE1BQU0sQ0FBQzRGLEdBQUcsQ0FBQyxDQUFDdkYsS0FBSyxFQUFFOEYsS0FBSyxLQUFLO1FBQUEsSUFBQUMsaUJBQUEsRUFBQUMsa0JBQUE7UUFDN0IsSUFBSUMsT0FBTztRQUNYLElBQUlDLEtBQUs7UUFFVCxJQUFJM0csY0FBSyxDQUFDVSxNQUFNLENBQUNELEtBQUssQ0FBQ04sVUFBVSxDQUFDLElBQUlILGNBQUssQ0FBQ1UsTUFBTSxDQUFDRCxLQUFLLENBQUNOLFVBQVUsQ0FBQ3VHLE9BQU8sQ0FBQyxFQUFFO1VBQzFFQSxPQUFPLEdBQUcsQ0FBQztRQUNmLENBQUMsTUFBTTtVQUNILElBQUlFLFVBQVUsR0FBRzVHLGNBQUssQ0FBQzZHLGVBQWUsQ0FBQ3BHLEtBQUssQ0FBQztVQUM3QyxJQUFJbUcsVUFBVSxHQUFHOUcsU0FBUyxDQUFDZ0gsWUFBWSxFQUFFO1lBQ3JDSixPQUFPLEdBQUc1RyxTQUFTLENBQUNnSCxZQUFZO1VBQ3BDLENBQUMsTUFBTTtZQUNISixPQUFPLEdBQUdFLFVBQVU7VUFDeEI7UUFDSjs7UUFFQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBLE1BQU1HLE9BQU8sR0FBRyxDQUFDO1FBQ2pCLE1BQU1DLE1BQU0sR0FBR2xILFNBQVMsQ0FBQ2dILFlBQVk7UUFDckNILEtBQUssR0FBR0QsT0FBTyxHQUFHTSxNQUFNLEdBQUcsR0FBRztRQUM5QixNQUFNQyxTQUFTLEdBQUcsQ0FBQ0QsTUFBTSxHQUFHTixPQUFPLElBQUlLLE9BQU8sR0FBR0MsTUFBTTtRQUN2RCxJQUFJRSxjQUFjLEdBQUc7VUFDakJDLFdBQVcsRUFBRSxHQUFHO1VBQ2hCQyxZQUFZLEVBQUUsR0FBRztVQUNqQmYsVUFBVSxFQUFFLEdBQUc7VUFDZkMsV0FBVyxFQUFFLEdBQUc7VUFDaEJlLFFBQVEsRUFBRSxPQUFPO1VBQ2pCVixLQUFLLFVBQUFXLE1BQUEsQ0FBVVgsS0FBSyxVQUFBVyxNQUFBLENBQU9MLFNBQVM7UUFDeEMsQ0FBQztRQUVEeEcsS0FBSyxDQUFDOEYsS0FBSyxHQUFHQSxLQUFLO1FBQ25CLElBQUlsRCxLQUFLLEdBQUcsQ0FBQW1ELGlCQUFBLEdBQUEvRixLQUFLLENBQUNOLFVBQVUsY0FBQXFHLGlCQUFBLGVBQWhCQSxpQkFBQSxDQUFrQlUsY0FBYyxHQUN4Q2xILGNBQUssQ0FBQ3VILFlBQVksRUFBQWQsa0JBQUEsR0FBQ2hHLEtBQUssQ0FBQ04sVUFBVSxjQUFBc0csa0JBQUEsdUJBQWhCQSxrQkFBQSxDQUFrQlMsY0FBYyxFQUFFQSxjQUFjLENBQUMsR0FBR0EsY0FBYztRQUN6RixvQkFBTzlKLE1BQUEsQ0FBQXFDLE9BQUEsQ0FBQW9ELGFBQUE7VUFBS3VELEdBQUcsRUFBRSxDQUFDRixDQUFDLEdBQUcsQ0FBQyxJQUFJSyxLQUFNO1VBQUNKLFNBQVMsRUFBQyxpQ0FBaUM7VUFBQzlDLEtBQUssRUFBRUE7UUFBTSxHQUVuRmYsZUFBZSxDQUFDN0IsS0FBSyxDQUV4QixDQUFDO01BQ1YsQ0FBQyxDQUVKLENBQUM7SUFDVixDQUFDLENBRUosQ0FBQztFQUVsQjtFQUVBLG9CQUFPckQsTUFBQSxDQUFBcUMsT0FBQSxDQUFBb0QsYUFBQTtJQUFLc0QsU0FBUyxFQUFFLGlCQUFrQjtJQUFDOUMsS0FBSyxFQUFFckQsY0FBSyxDQUFDd0gsV0FBVyxDQUM5RDtNQUNJQyxPQUFPLEVBQUVuSCxPQUFPLEdBQUcsT0FBTyxHQUFHLE1BQU07TUFDbkNvSCxNQUFNLEVBQUUsR0FBRztNQUNYTCxRQUFRLEVBQUUsT0FBTztNQUNqQk0sT0FBTyxFQUFFO0lBQ2IsQ0FBQyxFQUFFOUgsS0FBSyxDQUFDSyxNQUFNO0VBQUUsR0FFYixDQUFDRixjQUFLLENBQUNVLE1BQU0sQ0FBQ2IsS0FBSyxDQUFDSyxNQUFNLENBQUNDLFVBQVUsQ0FBQyxJQUFJLENBQUNILGNBQUssQ0FBQ1UsTUFBTSxDQUFDYixLQUFLLENBQUNLLE1BQU0sQ0FBQ0MsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLGdCQUNyRi9DLE1BQUEsQ0FBQXFDLE9BQUEsQ0FBQW9ELGFBQUE7SUFBS3NELFNBQVMsRUFBRTtFQUFnQixHQUMzQnRHLEtBQUssQ0FBQ0ssTUFBTSxDQUFDQyxVQUFVLENBQUMsT0FBTyxDQUMvQixDQUFDLEdBRU4sSUFBSSxFQUdSLENBQUNILGNBQUssQ0FBQ1UsTUFBTSxDQUFDWixTQUFTLENBQUMsR0FDcEI4RixNQUFNLENBQUMvRixLQUFLLENBQUNLLE1BQU0sQ0FBQyxHQUVwQixJQUVQLENBQUM7QUFDVixDQUFDLENBQUM7QUFBQyxJQUFBMEgsUUFBQSxHQUFBQyxPQUFBLENBQUFwSSxPQUFBLEdBRVlDLFFBQVEiLCJpZ25vcmVMaXN0IjpbXX0=
|