@agilemotion/oui-react-js 2.0.21 → 2.0.23
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/ApplicationManager.js +7 -1
- package/dist/InteractionPortalAppHome.js +18 -2
- package/dist/ViewContext.js +21 -3
- package/dist/components/DataGrid.js +48 -7
- package/dist/components/Icon.js +76 -2
- package/dist/components/StepperTitleBar.js +9 -2
- package/dist/components/TableCellContent.js +1 -3
- package/dist/components/dashboard/FoldingSideTabDashboard.js +6 -7
- package/dist/components/dashboard/components/blackDashboard/sidebar/FoldingTabSidebar.css +1 -2
- package/dist/components/dashboard/components/blackDashboard/sidebar/FoldingTabSidebar.js +164 -22
- package/dist/components/form/BaseField.js +1 -3
- package/dist/components/form/CurrencyField.js +121 -37
- package/dist/components/form/FieldSet.js +18 -5
- package/dist/components/form/TextField.js +2 -1
- package/dist/components/form/fieldset.css +10 -0
- package/dist/components/layout/ViewContainer.js +8 -2
- package/dist/event/Observable.js +3 -4
- package/dist/event/RouteActionHandler.js +4 -2
- package/dist/view/Dashboard.js +40 -9
- package/dist/view/PortalDashboard.js +283 -6
- package/package.json +1 -1
- package/dist/components/dashboard/FoldingSideTabDashboard.bck.js +0 -333
- package/dist/components/dashboard/components/blackDashboard/sidebar/FoldingTabSidebar.bck.js +0 -316
|
@@ -492,7 +492,7 @@ const FieldSet = /*#__PURE__*/_react.default.memo(props => {
|
|
|
492
492
|
function render(fieldSet) {
|
|
493
493
|
return _Utils.default.isNull(fieldSet.fields) || fieldSet.fields.length === 0 ? /*#__PURE__*/_react.default.createElement("div", null, " Error: A fieldSet must have fields") : /*#__PURE__*/_react.default.createElement("div", null, fieldGrid.rows.map((row, i) => {
|
|
494
494
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
495
|
-
className: "row",
|
|
495
|
+
className: "row fielset-row",
|
|
496
496
|
key: i,
|
|
497
497
|
style: {
|
|
498
498
|
marginLeft: '0',
|
|
@@ -512,14 +512,25 @@ const FieldSet = /*#__PURE__*/_react.default.memo(props => {
|
|
|
512
512
|
colspan = colspanVal;
|
|
513
513
|
}
|
|
514
514
|
}
|
|
515
|
-
|
|
515
|
+
|
|
516
|
+
// The row is a flex container with an
|
|
517
|
+
// 8px column-gap (see fieldset.css). Each
|
|
518
|
+
// item subtracts its share of the gaps so
|
|
519
|
+
// `colspan` columns + the gaps between
|
|
520
|
+
// them still sum to the row width — and
|
|
521
|
+
// wrapped items align flush (gap adds no
|
|
522
|
+
// leading space at the start of a line).
|
|
523
|
+
const COL_GAP = 8;
|
|
524
|
+
const maxCol = fieldGrid.maxColPerRow;
|
|
525
|
+
width = colspan / maxCol * 100;
|
|
526
|
+
const gapOffset = (maxCol - colspan) * COL_GAP / maxCol;
|
|
516
527
|
let containerStyle = {
|
|
517
528
|
paddingLeft: '0',
|
|
518
529
|
paddingRight: '0',
|
|
519
530
|
marginLeft: '0',
|
|
520
531
|
marginRight: '0',
|
|
521
532
|
minWidth: '320px',
|
|
522
|
-
width: width
|
|
533
|
+
width: "calc(".concat(width, "% - ").concat(gapOffset, "px)")
|
|
523
534
|
};
|
|
524
535
|
field.index = index;
|
|
525
536
|
let style = (_field$attributes = field.attributes) !== null && _field$attributes !== void 0 && _field$attributes.containerStyle ? _Utils.default.mergeObjects((_field$attributes2 = field.attributes) === null || _field$attributes2 === void 0 ? void 0 : _field$attributes2.containerStyle, containerStyle) : containerStyle;
|
|
@@ -535,11 +546,13 @@ const FieldSet = /*#__PURE__*/_react.default.memo(props => {
|
|
|
535
546
|
className: 'fieldSetWrapper',
|
|
536
547
|
style: _Utils.default.mergeStyles({
|
|
537
548
|
display: visible ? 'block' : 'none',
|
|
538
|
-
margin: '0'
|
|
549
|
+
margin: '0',
|
|
550
|
+
minWidth: '320px',
|
|
551
|
+
padding: '4px'
|
|
539
552
|
}, props.config)
|
|
540
553
|
}, !_Utils.default.isNull(props.config.attributes) && !_Utils.default.isNull(props.config.attributes['label']) ? /*#__PURE__*/_react.default.createElement("div", {
|
|
541
554
|
className: 'fieldSetTitle'
|
|
542
555
|
}, props.config.attributes['label']) : null, !_Utils.default.isNull(fieldGrid) ? render(props.config) : null);
|
|
543
556
|
});
|
|
544
557
|
var _default = exports.default = FieldSet;
|
|
545
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9VdGlscyIsIl9PYnNlcnZhYmxlIiwiX1RleHRGaWVsZCIsIl9DdXJyZW5jeUZpZWxkIiwiX0FkZHJlc3NTZWFyY2giLCJfTG9va3VwRmllbGQiLCJfTXVsdGlMb29rdXBGaWVsZCIsIl9TZWxlY3RJdGVtIiwiX0RhdGVQaWNrZXIiLCJfVGltZVBpY2tlciIsIl9DaGVja2JveCIsIl9MYWJlbEZpZWxkIiwiX1VwbG9hZEZpZWxkIiwiX1RyYW5zZmVyTGlzdCIsIl9HcmlkRmllbGQiLCJfSW1hZ2VFZGl0b3IiLCJfUmFkaW9Hcm91cCIsIl9FdmVudCIsIl9FdmVudFR5cGUiLCJfUmVzdFNlcnZpY2UiLCJfU2lnbmF0dXJlVGVtcGxhdGVEZXNpZ25lckZpZWxkIiwiX0FwcGxpY2F0aW9uTWFuYWdlciIsIl9CdXR0b24iLCJfSHRtbFBhbmVsIiwiX0F1dG9Db21wbGV0ZSIsIl9NdWx0aUZpbGVVcGxvYWRGaWVsZCIsIl9JY29uIiwiX1N3aXRjaCIsIl9JY29uRmllbGQiLCJfRG9jdW1lbnRUZW1wbGF0ZURlc2lnbmVyIiwiX0R5bmFtaWNKUyIsIl9MYXlvdXQiLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJGaWVsZFNldCIsIlJlYWN0IiwibWVtbyIsInByb3BzIiwiZmllbGRHcmlkIiwidXNlU3RhdGUiLCJVdGlscyIsImdldEZpZWxkR3JpZCIsImNvbmZpZyIsImF0dHJpYnV0ZXMiLCJmaWVsZHMiLCJjb21wb25lbnRIYW5kbGVzIiwidmlzaWJsZSIsInNldFZpc2libGUiLCJjcmVhdGVDb21wb25lbnRIYW5kbGUiLCJmaWVsZCIsImlzTnVsbCIsImlkIiwiaGFuZGxlIiwidXNlRWZmZWN0IiwiYXBpIiwidXNlTGF5b3V0RWZmZWN0IiwicmVmcmVzaCIsInBhcnNlZENvbmZpZyIsInBhcnNlQ29uZmlnIiwidmlld0lkIiwiZXZlbnRNYW5hZ2VyIiwiYWRkU3Vic2NyaXB0aW9ucyIsImV2ZW50SGFuZGxpbmdDb25maWciLCJhZGRTeXN0ZW1TdWJzY3JpcHRpb25zIiwiZGlzYWJsZWQiLCJ1cGRhdGVDb21wb25lbnREaXNhYmxlZFN0YXRlIiwiZmlyZUNoYW5nZUV2ZW50IiwiZXZlbnQiLCJFdmVudCIsImZpcmVFdmVudCIsIkV2ZW50VHlwZSIsIlZBTFVFX0NIQU5HRSIsInByb3BlcnRpZXMiLCJPYmplY3QiLCJnZXRPd25Qcm9wZXJ0eU5hbWVzIiwicHJvcGVydHkiLCJjb21wb25lbnRIYW5kbGUiLCJyZWZyZXNoQ29tcG9uZW50cyIsInJlbmRlckNvbXBvbmVudCIsImNvbXBvbmVudCIsImZpZWxkVHlwZSIsImNvbnNvbGUiLCJlcnJvciIsImlzRGlzYWJsZWQiLCJldmFsdWF0ZUJvb2xlYW5FeHByZXNzaW9uIiwiY3JlYXRlRWxlbWVudCIsImtleUhhbmRsZXIiLCJmb3JtIiwicGFyZW50SWQiLCJ2YWx1ZUNoYW5nZUhhbmRsZXIiLCJ2YWx1ZXMiLCJ0eXBlIiwibXVsdGlsaW5lIiwic3R5bGUiLCJMYXlvdXQiLCJmaWVsZERhdGFCaW5kaW5ncyIsImZpZWxkTmFtZXMiLCJwdXNoIiwiZGF0YUJpbmRpbmciLCJjbGVhciIsImNvbXBvbmVudFJlZiIsInZhbHVlIiwiZ2V0Q2hpbGRyZW4iLCJjaGlsZHJlbiIsIm1vZGVsIiwiZm9ybVZhbHVlIiwibG9hZERhdGEiLCJhY3Rpb25Db25maWciLCJhY3Rpb25FdmVudCIsInNlcnZpY2UiLCJkYXRhU2VydmljZSIsImNvbXBvbmVudFZhbHVlIiwiaXNFdmVudERhdGEiLCJ0b1N0cmluZyIsInN0YXJ0c1dpdGgiLCJpc0VwcmVzc2lvbiIsImFwcGxpY2F0aW9uTWFuYWdlciIsImlzRXhwcmVzc2lvbiIsInZhbCIsInJlc29sdmVFeHByZXNzaW9uVmFsdWUiLCJkYXRhIiwiYmluZERhdGEiLCJEQVRBX0FSUklWRUQiLCJtZXRob2QiLCJpbnZva2VScGMiLCJpbnZva2VSZXN0IiwicmVmIiwiY3VycmVudCIsInRoZW4iLCJyZXN1bHQiLCJjYXRjaCIsInB1Ymxpc2hFcnJvck1lc3NhZ2UiLCJyZW5kZXIiLCJmaWVsZFNldCIsImxlbmd0aCIsInJvd3MiLCJtYXAiLCJyb3ciLCJpIiwiY2xhc3NOYW1lIiwia2V5IiwibWFyZ2luTGVmdCIsIm1hcmdpblJpZ2h0IiwiaW5kZXgiLCJfZmllbGQkYXR0cmlidXRlcyIsIl9maWVsZCRhdHRyaWJ1dGVzMiIsImNvbHNwYW4iLCJ3aWR0aCIsImNvbHNwYW5WYWwiLCJnZXRGaWVsZENvbHNwYW4iLCJtYXhDb2xQZXJSb3ciLCJjb250YWluZXJTdHlsZSIsInBhZGRpbmdMZWZ0IiwicGFkZGluZ1JpZ2h0IiwibWluV2lkdGgiLCJtZXJnZU9iamVjdHMiLCJtZXJnZVN0eWxlcyIsImRpc3BsYXkiLCJtYXJnaW4iLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9GaWVsZFNldC5qc3giXSwic291cmNlc0NvbnRlbnQiOlsi77u/aW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBVdGlscyBmcm9tICcuLi8uLi9VdGlscyc7XG5pbXBvcnQgZXZlbnRNYW5hZ2VyIGZyb20gJy4uLy4uL2V2ZW50L09ic2VydmFibGUnO1xuaW1wb3J0IFRleHRGaWVsZCBmcm9tICcuL1RleHRGaWVsZCc7XG5pbXBvcnQgQ3VycmVuY3lGaWVsZCBmcm9tICcuL0N1cnJlbmN5RmllbGQnO1xuaW1wb3J0IEFkZHJlc3NTZWFyY2ggZnJvbSAnLi9BZGRyZXNzU2VhcmNoJztcbmltcG9ydCBMb29rdXBGaWVsZCBmcm9tICcuL0xvb2t1cEZpZWxkJztcbmltcG9ydCBNdWx0aUxvb2t1cEZpZWxkIGZyb20gJy4vTXVsdGlMb29rdXBGaWVsZCc7XG5pbXBvcnQgU2VsZWN0SXRlbSBmcm9tICcuL1NlbGVjdEl0ZW0nO1xuaW1wb3J0IERhdGVQaWNrZXIgZnJvbSAnLi9EYXRlUGlja2VyJztcbmltcG9ydCBUaW1lUGlja2VyIGZyb20gJy4vVGltZVBpY2tlcic7XG5pbXBvcnQgQ2hlY2tib3ggZnJvbSAnLi9DaGVja2JveCc7XG5pbXBvcnQgTGFiZWxGaWVsZCBmcm9tICcuL0xhYmVsRmllbGQnO1xuaW1wb3J0IFVwbG9hZEZpZWxkIGZyb20gJy4vVXBsb2FkRmllbGQnO1xuaW1wb3J0IFRyYW5zZmVyTGlzdCBmcm9tICcuL1RyYW5zZmVyTGlzdCc7XG5pbXBvcnQgR3JpZEZpZWxkIGZyb20gJy4vR3JpZEZpZWxkJztcbmltcG9ydCBJbWFnZUVkaXRvciBmcm9tICcuL0ltYWdlRWRpdG9yJztcbmltcG9ydCBSYWRpb0dyb3VwIGZyb20gJy4vUmFkaW9Hcm91cCc7XG5pbXBvcnQgRXZlbnQgZnJvbSAnLi4vLi4vZXZlbnQvRXZlbnQnO1xuaW1wb3J0IEV2ZW50VHlwZSBmcm9tICcuLi8uLi9ldmVudC9FdmVudFR5cGUnO1xuaW1wb3J0IHtpbnZva2VSZXN0LCBpbnZva2VScGN9IGZyb20gJy4uLy4uL1Jlc3RTZXJ2aWNlJztcbmltcG9ydCBTaWduYXR1cmVUZW1wbGF0ZURlc2lnbmVyRmllbGQgZnJvbSAnLi9TaWduYXR1cmVUZW1wbGF0ZURlc2lnbmVyRmllbGQnO1xuaW1wb3J0IGFwcGxpY2F0aW9uTWFuYWdlciBmcm9tICcuLi8uLi9BcHBsaWNhdGlvbk1hbmFnZXInO1xuaW1wb3J0ICcuL2ZpZWxkc2V0LmNzcyc7XG5pbXBvcnQgQnV0dG9uIGZyb20gJy4uL0J1dHRvbic7XG5pbXBvcnQgSHRtbFBhbmVsIGZyb20gJy4uL0h0bWxQYW5lbCc7XG5pbXBvcnQgQXV0b0NvbXBsZXRlIGZyb20gJy4vQXV0b0NvbXBsZXRlJztcbmltcG9ydCBNdWx0aUZpbGVVcGxvYWRGaWVsZCBmcm9tICcuL011bHRpRmlsZVVwbG9hZEZpZWxkJztcbmltcG9ydCBJY29uIGZyb20gJy4uL0ljb24nO1xuaW1wb3J0IFN3aXRjaCBmcm9tICcuL1N3aXRjaCc7XG5pbXBvcnQgSWNvbkZpZWxkIGZyb20gJy4vSWNvbkZpZWxkJztcbmltcG9ydCBEb2N1bWVudFRlbXBsYXRlRGVzaWduZXIgZnJvbSBcIi4uL0RvY3VtZW50VGVtcGxhdGVEZXNpZ25lclwiO1xuaW1wb3J0IGR5bmFtaWNKUyBmcm9tIFwiLi4vLi4vRHluYW1pY0pTXCI7XG5pbXBvcnQge0xheW91dH0gZnJvbSBcIi4uL2xheW91dC9MYXlvdXRcIjtcblxuY29uc3QgRmllbGRTZXQgPSBSZWFjdC5tZW1vKChwcm9wcykgPT4ge1xuICAgIGNvbnN0IFtmaWVsZEdyaWRdID0gUmVhY3QudXNlU3RhdGUoVXRpbHMuZ2V0RmllbGRHcmlkKHByb3BzLmNvbmZpZy5hdHRyaWJ1dGVzLCBwcm9wcy5jb25maWcuZmllbGRzKSk7XG4gICAgY29uc3QgW2NvbXBvbmVudEhhbmRsZXNdID0gUmVhY3QudXNlU3RhdGUoe30pO1xuICAgIGNvbnN0IFt2aXNpYmxlLCBzZXRWaXNpYmxlXSA9IFJlYWN0LnVzZVN0YXRlKGZhbHNlKTtcblxuICAgIGNvbnN0IGNyZWF0ZUNvbXBvbmVudEhhbmRsZSA9IChmaWVsZCkgPT4ge1xuICAgICAgICBpZiAoVXRpbHMuaXNOdWxsKGNvbXBvbmVudEhhbmRsZXNbZmllbGQuaWRdKSkge1xuICAgICAgICAgICAgbGV0IGhhbmRsZSA9IHt9O1xuICAgICAgICAgICAgY29tcG9uZW50SGFuZGxlc1tmaWVsZC5pZF0gPSBoYW5kbGU7XG4gICAgICAgICAgICByZXR1cm4gaGFuZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNvbXBvbmVudEhhbmRsZXNbZmllbGQuaWRdO1xuICAgIH07XG5cbiAgICBSZWFjdC51c2VFZmZlY3QoXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICAgIHByb3BzLmhhbmRsZS5hcGkgPSBhcGkoKTtcbiAgICAgICAgfSk7XG5cbiAgICBSZWFjdC51c2VMYXlvdXRFZmZlY3QoXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICAgIHByb3BzLmhhbmRsZS5hcGkgPSBhcGkoKTtcbiAgICAgICAgfSwgW10pO1xuXG4gICAgUmVhY3QudXNlRWZmZWN0KFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICBwcm9wcy5oYW5kbGUuYXBpID0gYXBpKCk7XG4gICAgICAgICAgICBwcm9wcy5oYW5kbGUuYXBpLnJlZnJlc2goKTtcbiAgICAgICAgICAgIGxldCBwYXJzZWRDb25maWcgPSBVdGlscy5wYXJzZUNvbmZpZyhwcm9wcy5jb25maWcsIHByb3BzLnZpZXdJZCk7XG4gICAgICAgICAgICBldmVudE1hbmFnZXIuYWRkU3Vic2NyaXB0aW9ucyhwYXJzZWRDb25maWcuZXZlbnRIYW5kbGluZ0NvbmZpZywgcHJvcHMuaGFuZGxlLCBwcm9wcy52aWV3SWQpO1xuICAgICAgICAgICAgZXZlbnRNYW5hZ2VyLmFkZFN5c3RlbVN1YnNjcmlwdGlvbnMocHJvcHMudmlld0lkLCBwYXJzZWRDb25maWcpO1xuICAgICAgICB9LCBbXSk7XG5cbiAgICBSZWFjdC51c2VFZmZlY3QoXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKHByb3BzLmRpc2FibGVkKSkge1xuICAgICAgICAgICAgICAgIHVwZGF0ZUNvbXBvbmVudERpc2FibGVkU3RhdGUocHJvcHMuZGlzYWJsZWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LCBbcHJvcHMuZGlzYWJsZWRdKTtcblxuICAgIGZ1bmN0aW9uIGZpcmVDaGFuZ2VFdmVudCgpIHtcbiAgICAgICAgbGV0IGV2ZW50ID0gbmV3IEV2ZW50KHByb3BzLmhhbmRsZSwgcHJvcHMudmlld0lkKTtcbiAgICAgICAgZXZlbnRNYW5hZ2VyLmZpcmVFdmVudChFdmVudFR5cGUuVkFMVUVfQ0hBTkdFLCBldmVudCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdXBkYXRlQ29tcG9uZW50RGlzYWJsZWRTdGF0ZShkaXNhYmxlZCkge1xuICAgICAgICBsZXQgcHJvcGVydGllcyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGNvbXBvbmVudEhhbmRsZXMpO1xuICAgICAgICBmb3IgKGNvbnN0IHByb3BlcnR5IG9mIHByb3BlcnRpZXMpIHtcbiAgICAgICAgICAgIGxldCBjb21wb25lbnRIYW5kbGUgPSBjb21wb25lbnRIYW5kbGVzW3Byb3BlcnR5XTtcbiAgICAgICAgICAgIGNvbXBvbmVudEhhbmRsZS5hcGkuZGlzYWJsZWQgPSBkaXNhYmxlZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIHJlZnJlc2hDb21wb25lbnRzKCkge1xuICAgICAgICBsZXQgcHJvcGVydGllcyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGNvbXBvbmVudEhhbmRsZXMpO1xuICAgICAgICBmb3IgKGNvbnN0IHByb3BlcnR5IG9mIHByb3BlcnRpZXMpIHtcbiAgICAgICAgICAgIGxldCBjb21wb25lbnRIYW5kbGUgPSBjb21wb25lbnRIYW5kbGVzW3Byb3BlcnR5XTtcbiAgICAgICAgICAgIGlmKGNvbXBvbmVudEhhbmRsZS5hcGkpIHtcbiAgICAgICAgICAgICAgICBjb21wb25lbnRIYW5kbGUuYXBpLnJlZnJlc2goKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIHJlbmRlckNvbXBvbmVudChjb21wb25lbnQpIHtcbiAgICAgICAgaWYgKCFjb21wb25lbnQuZmllbGRUeXBlKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdFUlJPUiBSRU5ESU5HIENPTVBPTkVOVCA6ICcgKyBjb21wb25lbnQuaWQgKyAnIC0gTk8gRklFTEQgVFlQRSBTUEVDSUZJRUQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBpc0Rpc2FibGVkID0gZmFsc2U7XG4gICAgICAgIGlmICghVXRpbHMuaXNOdWxsKHByb3BzLmNvbmZpZykgJiYgIVV0aWxzLmlzTnVsbChwcm9wcy5jb25maWcuZGlzYWJsZWQpKSB7XG4gICAgICAgICAgICBpc0Rpc2FibGVkID0gVXRpbHMuZXZhbHVhdGVCb29sZWFuRXhwcmVzc2lvbihwcm9wcy5jb25maWcuZGlzYWJsZWQsIHByb3BzLmNvbmZpZy5pZCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaXNEaXNhYmxlZCkge1xuICAgICAgICAgICAgaWYgKFV0aWxzLmlzTnVsbChjb21wb25lbnQuZGlzYWJsZWQpKSB7XG4gICAgICAgICAgICAgICAgY29tcG9uZW50LmRpc2FibGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHN3aXRjaCAoY29tcG9uZW50LmZpZWxkVHlwZSkge1xuICAgICAgICAgICAgY2FzZSAnTE9PS1VQJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gPExvb2t1cEZpZWxkIGtleUhhbmRsZXI9e3Byb3BzLmtleUhhbmRsZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWc9e2NvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm09e3Byb3BzLmZvcm19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRJZD17cHJvcHMucGFyZW50SWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGU9e2NyZWF0ZUNvbXBvbmVudEhhbmRsZShjb21wb25lbnQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVDaGFuZ2VIYW5kbGVyPXsoKSA9PiBmaXJlQ2hhbmdlRXZlbnQoKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcz17cHJvcHMudmFsdWVzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9XG4gICAgICAgICAgICAgICAgLz47XG4gICAgICAgICAgICBjYXNlICdNVUxUSV9MT09LVVAnOlxuICAgICAgICAgICAgICAgIHJldHVybiA8TXVsdGlMb29rdXBGaWVsZCBrZXlIYW5kbGVyPXtwcm9wcy5rZXlIYW5kbGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWc9e2NvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybT17cHJvcHMuZm9ybX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50SWQ9e3Byb3BzLnBhcmVudElkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGU9e2NyZWF0ZUNvbXBvbmVudEhhbmRsZShjb21wb25lbnQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZUNoYW5nZUhhbmRsZXI9eygpID0+IGZpcmVDaGFuZ2VFdmVudCgpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9e3Byb3BzLnZhbHVlc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9XG4gICAgICAgICAgICAgICAgLz47XG4gICAgICAgICAgICBjYXNlICdURVhUX0ZJRUxEJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gPFRleHRGaWVsZCBrZXlIYW5kbGVyPXtwcm9wcy5rZXlIYW5kbGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZz17Y29tcG9uZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlQ2hhbmdlSGFuZGxlcj17KCkgPT4gZmlyZUNoYW5nZUV2ZW50KCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybT17cHJvcHMuZm9ybX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRJZD17cHJvcHMucGFyZW50SWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlPXtjcmVhdGVDb21wb25lbnRIYW5kbGUoY29tcG9uZW50KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9e3Byb3BzLnZhbHVlc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3SWQ9e3Byb3BzLnZpZXdJZH1cbiAgICAgICAgICAgICAgICAvPjtcbiAgICAgICAgICAgIGNhc2UgJ0NVUlJFTkNZJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gPEN1cnJlbmN5RmllbGQga2V5SGFuZGxlcj17cHJvcHMua2V5SGFuZGxlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnPXtjb21wb25lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlQ2hhbmdlSGFuZGxlcj17KCkgPT4gZmlyZUNoYW5nZUV2ZW50KCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm09e3Byb3BzLmZvcm19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudElkPXtwcm9wcy5wYXJlbnRJZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlPXtjcmVhdGVDb21wb25lbnRIYW5kbGUoY29tcG9uZW50KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzPXtwcm9wcy52YWx1ZXN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdJZD17cHJvcHMudmlld0lkfVxuICAgICAgICAgICAgICAgIC8+O1xuICAgICAgICAgICAgY2FzZSAnUEFTU1dPUkQnOlxuICAgICAgICAgICAgICAgIHJldHVybiA8VGV4dEZpZWxkIGtleUhhbmRsZXI9e3Byb3BzLmtleUhhbmRsZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnPXtjb21wb25lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVDaGFuZ2VIYW5kbGVyPXsoKSA9PiBmaXJlQ2hhbmdlRXZlbnQoKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtPXtwcm9wcy5mb3JtfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9eydwYXNzd29yZCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50SWQ9e3Byb3BzLnBhcmVudElkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzPXtwcm9wcy52YWx1ZXN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9XG4gICAgICAgICAgICAgICAgLz47XG4gICAgICAgICAgICBjYXNlICdURVhUX0FSRUEnOlxuICAgICAgICAgICAgICAgIHJldHVybiA8VGV4dEZpZWxkIGtleUhhbmRsZXI9e3Byb3BzLmtleUhhbmRsZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnPXtjb21wb25lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGlsaW5lPXt0cnVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlQ2hhbmdlSGFuZGxlcj17KCkgPT4gZmlyZUNoYW5nZUV2ZW50KCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybT17cHJvcHMuZm9ybX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRJZD17cHJvcHMucGFyZW50SWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlPXtjcmVhdGVDb21wb25lbnRIYW5kbGUoY29tcG9uZW50KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9e3Byb3BzLnZhbHVlc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3SWQ9e3Byb3BzLnZpZXdJZH1cbiAgICAgICAgICAgICAgICAvPjtcbiAgICAgICAgICAgIGNhc2UgJ0FERFJFU1NfU0VBUkNIJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gPEFkZHJlc3NTZWFyY2gga2V5SGFuZGxlcj17cHJvcHMua2V5SGFuZGxlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnPXtjb21wb25lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11bHRpbGluZT17dHJ1ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVDaGFuZ2VIYW5kbGVyPXsoKSA9PiBmaXJlQ2hhbmdlRXZlbnQoKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybT17cHJvcHMuZm9ybX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50SWQ9e3Byb3BzLnBhcmVudElkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGU9e2NyZWF0ZUNvbXBvbmVudEhhbmRsZShjb21wb25lbnQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9e3Byb3BzLnZhbHVlc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9XG4gICAgICAgICAgICAgICAgLz47XG4gICAgICAgICAgICBjYXNlICdTRUxFQ1QnOlxuICAgICAgICAgICAgICAgIHJldHVybiA8U2VsZWN0SXRlbSBrZXlIYW5kbGVyPXtwcm9wcy5rZXlIYW5kbGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWc9e2NvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybT17cHJvcHMuZm9ybX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50SWQ9e3Byb3BzLnBhcmVudElkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGU9e2NyZWF0ZUNvbXBvbmVudEhhbmRsZShjb21wb25lbnQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZUNoYW5nZUhhbmRsZXI9eygpID0+IGZpcmVDaGFuZ2VFdmVudCgpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9e3Byb3BzLnZhbHVlc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9XG4gICAgICAgICAgICAgICAgLz47XG4gICAgICAgICAgICBjYXNlICdEQVRFJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gPERhdGVQaWNrZXIga2V5SGFuZGxlcj17cHJvcHMua2V5SGFuZGxlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnPXtjb21wb25lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm09e3Byb3BzLmZvcm19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudElkPXtwcm9wcy5wYXJlbnRJZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlPXtjcmVhdGVDb21wb25lbnRIYW5kbGUoY29tcG9uZW50KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVDaGFuZ2VIYW5kbGVyPXsoKSA9PiBmaXJlQ2hhbmdlRXZlbnQoKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzPXtwcm9wcy52YWx1ZXN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdJZD17cHJvcHMudmlld0lkfVxuICAgICAgICAgICAgICAgIC8+O1xuICAgICAgICAgICAgY2FzZSAnQVVUT19DT01QTEVURSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIDxBdXRvQ29tcGxldGUga2V5SGFuZGxlcj17cHJvcHMua2V5SGFuZGxlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWc9e2NvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtPXtwcm9wcy5mb3JtfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudElkPXtwcm9wcy5wYXJlbnRJZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGU9e2NyZWF0ZUNvbXBvbmVudEhhbmRsZShjb21wb25lbnQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlQ2hhbmdlSGFuZGxlcj17KCkgPT4gZmlyZUNoYW5nZUV2ZW50KCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzPXtwcm9wcy52YWx1ZXN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9XG4gICAgICAgICAgICAgICAgLz47XG4gICAgICAgICAgICBjYXNlICdDSEVDS0JPWCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIDxDaGVja2JveCBrZXlIYW5kbGVyPXtwcm9wcy5rZXlIYW5kbGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnPXtjb21wb25lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtPXtwcm9wcy5mb3JtfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50SWQ9e3Byb3BzLnBhcmVudElkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlPXtjcmVhdGVDb21wb25lbnRIYW5kbGUoY29tcG9uZW50KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlQ2hhbmdlSGFuZGxlcj17KCkgPT4gZmlyZUNoYW5nZUV2ZW50KCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9e3Byb3BzLnZhbHVlc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdJZD17cHJvcHMudmlld0lkfVxuICAgICAgICAgICAgICAgIC8+O1xuICAgICAgICAgICAgY2FzZSAnU1dJVENIJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gPFN3aXRjaCBrZXlIYW5kbGVyPXtwcm9wcy5rZXlIYW5kbGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZz17Y29tcG9uZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm09e3Byb3BzLmZvcm19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50SWQ9e3Byb3BzLnBhcmVudElkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVDaGFuZ2VIYW5kbGVyPXsoKSA9PiBmaXJlQ2hhbmdlRXZlbnQoKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9e3Byb3BzLnZhbHVlc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3SWQ9e3Byb3BzLnZpZXdJZH1cbiAgICAgICAgICAgICAgICAvPjtcbiAgICAgICAgICAgIGNhc2UgJ0xBQkVMJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gPExhYmVsRmllbGQga2V5SGFuZGxlcj17cHJvcHMua2V5SGFuZGxlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnPXtjb21wb25lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm09e3Byb3BzLmZvcm19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudElkPXtwcm9wcy5wYXJlbnRJZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlPXtjcmVhdGVDb21wb25lbnRIYW5kbGUoY29tcG9uZW50KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVDaGFuZ2VIYW5kbGVyPXsoKSA9PiBmaXJlQ2hhbmdlRXZlbnQoKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzPXtwcm9wcy52YWx1ZXN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdJZD17cHJvcHMudmlld0lkfVxuICAgICAgICAgICAgICAgIC8+O1xuICAgICAgICAgICAgY2FzZSAnRklMRV9VUExPQUQnOlxuICAgICAgICAgICAgICAgIHJldHVybiA8VXBsb2FkRmllbGQga2V5SGFuZGxlcj17cHJvcHMua2V5SGFuZGxlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZz17Y29tcG9uZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybT17cHJvcHMuZm9ybX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudElkPXtwcm9wcy5wYXJlbnRJZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZUNoYW5nZUhhbmRsZXI9eygpID0+IGZpcmVDaGFuZ2VFdmVudCgpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzPXtwcm9wcy52YWx1ZXN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3SWQ9e3Byb3BzLnZpZXdJZH1cbiAgICAgICAgICAgICAgICAvPjtcbiAgICAgICAgICAgIGNhc2UgJ0lNQUdFX1VQTE9BRCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIDxVcGxvYWRGaWVsZCBrZXlIYW5kbGVyPXtwcm9wcy5rZXlIYW5kbGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnPXtjb21wb25lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtPXtwcm9wcy5mb3JtfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50SWQ9e3Byb3BzLnBhcmVudElkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlPXtjcmVhdGVDb21wb25lbnRIYW5kbGUoY29tcG9uZW50KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXsnSU1BR0UnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVDaGFuZ2VIYW5kbGVyPXsoKSA9PiBmaXJlQ2hhbmdlRXZlbnQoKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcz17cHJvcHMudmFsdWVzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9XG4gICAgICAgICAgICAgICAgLz47XG4gICAgICAgICAgICBjYXNlICdNVUxUSV9GSUxFX1VQTE9BRCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIDxNdWx0aUZpbGVVcGxvYWRGaWVsZFxuICAgICAgICAgICAgICAgICAgICBrZXlIYW5kbGVyPXtwcm9wcy5rZXlIYW5kbGVyfVxuICAgICAgICAgICAgICAgICAgICBjb25maWc9e2NvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgICAgZm9ybT17cHJvcHMuZm9ybX1cbiAgICAgICAgICAgICAgICAgICAgcGFyZW50SWQ9e3Byb3BzLnBhcmVudElkfVxuICAgICAgICAgICAgICAgICAgICBoYW5kbGU9e2NyZWF0ZUNvbXBvbmVudEhhbmRsZShjb21wb25lbnQpfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZUNoYW5nZUhhbmRsZXI9eygpID0+IGZpcmVDaGFuZ2VFdmVudCgpfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9e3Byb3BzLnZhbHVlc31cbiAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9XG4gICAgICAgICAgICAgICAgLz47XG4gICAgICAgICAgICBjYXNlICdUUkFOU0ZFUl9MSVNUJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gPFRyYW5zZmVyTGlzdCBrZXlIYW5kbGVyPXtwcm9wcy5rZXlIYW5kbGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZz17Y29tcG9uZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm09e3Byb3BzLmZvcm19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50SWQ9e3Byb3BzLnBhcmVudElkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVDaGFuZ2VIYW5kbGVyPXsoKSA9PiBmaXJlQ2hhbmdlRXZlbnQoKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9e3Byb3BzLnZhbHVlc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3SWQ9e3Byb3BzLnZpZXdJZH1cbiAgICAgICAgICAgICAgICAvPjtcbiAgICAgICAgICAgIGNhc2UgJ0dSSUQnOlxuICAgICAgICAgICAgICAgIHJldHVybiA8R3JpZEZpZWxkIGtleUhhbmRsZXI9e3Byb3BzLmtleUhhbmRsZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnPXtjb21wb25lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybT17cHJvcHMuZm9ybX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRJZD17cHJvcHMucGFyZW50SWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlPXtjcmVhdGVDb21wb25lbnRIYW5kbGUoY29tcG9uZW50KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZUNoYW5nZUhhbmRsZXI9eygpID0+IGZpcmVDaGFuZ2VFdmVudCgpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcz17cHJvcHMudmFsdWVzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdJZD17cHJvcHMudmlld0lkfVxuICAgICAgICAgICAgICAgIC8+O1xuICAgICAgICAgICAgY2FzZSAnVElNRSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIDxUaW1lUGlja2VyXG4gICAgICAgICAgICAgICAgICAgIGtleUhhbmRsZXI9e3Byb3BzLmtleUhhbmRsZXJ9XG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZz17Y29tcG9uZW50fVxuICAgICAgICAgICAgICAgICAgICBmb3JtPXtwcm9wcy5mb3JtfVxuICAgICAgICAgICAgICAgICAgICBwYXJlbnRJZD17cHJvcHMucGFyZW50SWR9XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlQ2hhbmdlSGFuZGxlcj17KCkgPT4gZmlyZUNoYW5nZUV2ZW50KCl9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlcz17cHJvcHMudmFsdWVzfVxuICAgICAgICAgICAgICAgICAgICB2aWV3SWQ9e3Byb3BzLnZpZXdJZH1cbiAgICAgICAgICAgICAgICAvPjtcbiAgICAgICAgICAgIGNhc2UgJ0lNQUdFX0VESVRPUic6XG4gICAgICAgICAgICAgICAgcmV0dXJuIDxJbWFnZUVkaXRvclxuICAgICAgICAgICAgICAgICAgICBrZXlIYW5kbGVyPXtwcm9wcy5rZXlIYW5kbGVyfVxuICAgICAgICAgICAgICAgICAgICBjb25maWc9e2NvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgICAgZm9ybT17cHJvcHMuZm9ybX1cbiAgICAgICAgICAgICAgICAgICAgcGFyZW50SWQ9e3Byb3BzLnBhcmVudElkfVxuICAgICAgICAgICAgICAgICAgICBoYW5kbGU9e2NyZWF0ZUNvbXBvbmVudEhhbmRsZShjb21wb25lbnQpfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZUNoYW5nZUhhbmRsZXI9eygpID0+IGZpcmVDaGFuZ2VFdmVudCgpfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9e3Byb3BzLnZhbHVlc31cbiAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9XG4gICAgICAgICAgICAgICAgLz47XG4gICAgICAgICAgICBjYXNlICdSQURJT19HUk9VUCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIDxSYWRpb0dyb3VwXG4gICAgICAgICAgICAgICAgICAgIGtleUhhbmRsZXI9e3Byb3BzLmtleUhhbmRsZXJ9XG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZz17Y29tcG9uZW50fVxuICAgICAgICAgICAgICAgICAgICBmb3JtPXtwcm9wcy5mb3JtfVxuICAgICAgICAgICAgICAgICAgICBwYXJlbnRJZD17cHJvcHMucGFyZW50SWR9XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlQ2hhbmdlSGFuZGxlcj17KCkgPT4gZmlyZUNoYW5nZUV2ZW50KCl9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlcz17cHJvcHMudmFsdWVzfVxuICAgICAgICAgICAgICAgICAgICB2aWV3SWQ9e3Byb3BzLnZpZXdJZH1cbiAgICAgICAgICAgICAgICAvPjtcbiAgICAgICAgICAgIGNhc2UgJ0JVVFRPTic6XG4gICAgICAgICAgICAgICAgcmV0dXJuIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgY29uZmlnPXtjb21wb25lbnR9XG4gICAgICAgICAgICAgICAgICAgIGZvcm09e3Byb3BzLmZvcm19XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgIHZpZXdJZD17cHJvcHMudmlld0lkfVxuICAgICAgICAgICAgICAgIC8+O1xuICAgICAgICAgICAgY2FzZSAnSFRNTF9QQU5FTCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIDxIdG1sUGFuZWxcbiAgICAgICAgICAgICAgICAgICAgY29uZmlnPXtjb21wb25lbnR9XG4gICAgICAgICAgICAgICAgICAgIGZvcm09e3Byb3BzLmZvcm19XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgIHZpZXdJZD17cHJvcHMudmlld0lkfVxuICAgICAgICAgICAgICAgIC8+O1xuICAgICAgICAgICAgY2FzZSAnTEFZT1VUJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gPExheW91dFxuICAgICAgICAgICAgICAgICAgICBjb25maWc9e2NvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgICAgZm9ybT17cHJvcHMuZm9ybX1cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlPXtjcmVhdGVDb21wb25lbnRIYW5kbGUoY29tcG9uZW50KX1cbiAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9XG4gICAgICAgICAgICAgICAgLz47XG4gICAgICAgICAgICBjYXNlICdJQ09OJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gPEljb25GaWVsZFxuICAgICAgICAgICAgICAgICAgICBrZXlIYW5kbGVyPXtwcm9wcy5rZXlIYW5kbGVyfVxuICAgICAgICAgICAgICAgICAgICBjb25maWc9e2NvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgICAgZm9ybT17cHJvcHMuZm9ybX1cbiAgICAgICAgICAgICAgICAgICAgcGFyZW50SWQ9e3Byb3BzLnBhcmVudElkfVxuICAgICAgICAgICAgICAgICAgICBoYW5kbGU9e2NyZWF0ZUNvbXBvbmVudEhhbmRsZShjb21wb25lbnQpfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZUNoYW5nZUhhbmRsZXI9eygpID0+IGZpcmVDaGFuZ2VFdmVudCgpfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9e3Byb3BzLnZhbHVlc31cbiAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9XG4gICAgICAgICAgICAgICAgLz47XG4gICAgICAgICAgICBjYXNlICdTSUdOQVRVUkVfVEVNUExBVEVfREVTSUdORVInOlxuICAgICAgICAgICAgICAgIHJldHVybiA8U2lnbmF0dXJlVGVtcGxhdGVEZXNpZ25lckZpZWxkXG4gICAgICAgICAgICAgICAgICAgIGtleUhhbmRsZXI9e3Byb3BzLmtleUhhbmRsZXJ9XG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZz17Y29tcG9uZW50fVxuICAgICAgICAgICAgICAgICAgICBmb3JtPXtwcm9wcy5mb3JtfVxuICAgICAgICAgICAgICAgICAgICBwYXJlbnRJZD17cHJvcHMucGFyZW50SWR9XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlQ2hhbmdlSGFuZGxlcj17KCkgPT4gZmlyZUNoYW5nZUV2ZW50KCl9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlcz17cHJvcHMudmFsdWVzfVxuICAgICAgICAgICAgICAgICAgICB2aWV3SWQ9e3Byb3BzLnZpZXdJZH1cbiAgICAgICAgICAgICAgICAvPjtcbiAgICAgICAgICAgIGNhc2UgJ0RPQ1VNRU5UX1RFTVBMQVRFX0RFU0lHTkVSJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gPERvY3VtZW50VGVtcGxhdGVEZXNpZ25lclxuICAgICAgICAgICAgICAgICAgICBrZXlIYW5kbGVyPXtwcm9wcy5rZXlIYW5kbGVyfVxuICAgICAgICAgICAgICAgICAgICBjb25maWc9e2NvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgICAgZm9ybT17cHJvcHMuZm9ybX1cbiAgICAgICAgICAgICAgICAgICAgcGFyZW50SWQ9e3Byb3BzLnBhcmVudElkfVxuICAgICAgICAgICAgICAgICAgICBoYW5kbGU9e2NyZWF0ZUNvbXBvbmVudEhhbmRsZShjb21wb25lbnQpfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZUNoYW5nZUhhbmRsZXI9eygpID0+IGZpcmVDaGFuZ2VFdmVudCgpfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9e3Byb3BzLnZhbHVlc31cbiAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9XG4gICAgICAgICAgICAgICAgLz47XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiA8ZGl2PnsnVW5zdXBwb3J0ZWQgZmllbGRzZXQgY29tcG9uZW50IHR5cGUgJyArIGNvbXBvbmVudC5maWVsZFR5cGUgKyAnIC0gJyArIGNvbXBvbmVudC5pZH08L2Rpdj47XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBhcGkgPSAoKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBnZXQgaWQoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHByb3BzLmNvbmZpZy5pZDtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBnZXQgZmllbGREYXRhQmluZGluZ3MoKSB7XG4gICAgICAgICAgICAgICAgbGV0IGZpZWxkTmFtZXMgPSBbXTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGZpZWxkIG9mIHByb3BzLmNvbmZpZy5maWVsZHMpIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGROYW1lcy5wdXNoKCFVdGlscy5pc051bGwoZmllbGQuZGF0YUJpbmRpbmcpID8gZmllbGQuZGF0YUJpbmRpbmcgOiBmaWVsZC5pZCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZpZWxkTmFtZXM7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2V0IGRpc2FibGVkKGRpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgdXBkYXRlQ29tcG9uZW50RGlzYWJsZWRTdGF0ZShkaXNhYmxlZCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY2xlYXIoKSB7XG4gICAgICAgICAgICAgICAgbGV0IHByb3BlcnRpZXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhjb21wb25lbnRIYW5kbGVzKTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHByb3BlcnR5IG9mIHByb3BlcnRpZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGNvbXBvbmVudFJlZiA9IGNvbXBvbmVudEhhbmRsZXNbcHJvcGVydHldO1xuICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRSZWYuYXBpLnZhbHVlID0gbnVsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZ2V0Q2hpbGRyZW46ICgpID0+IHtcbiAgICAgICAgICAgICAgICBsZXQgY2hpbGRyZW4gPSBbXTtcbiAgICAgICAgICAgICAgICBsZXQgcHJvcGVydGllcyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGNvbXBvbmVudEhhbmRsZXMpO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcHJvcGVydHkgb2YgcHJvcGVydGllcykge1xuICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbi5wdXNoKGNvbXBvbmVudEhhbmRsZXNbcHJvcGVydHldKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gY2hpbGRyZW47XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2V0IG1vZGVsKG1vZGVsKSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBmaWVsZCBvZiBwcm9wcy5jb25maWcuZmllbGRzKSB7XG4gICAgICAgICAgICAgICAgICAgIHByb3BzLmZvcm0oKS5tb2RlbFtmaWVsZC5pZF0gPSBtb2RlbFtmaWVsZC5pZF07XG5cbiAgICAgICAgICAgICAgICAgICAgbGV0IGNvbXBvbmVudFJlZiA9IGNvbXBvbmVudEhhbmRsZXNbZmllbGQuaWRdO1xuICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRSZWYuYXBpLnZhbHVlID0gbW9kZWxbZmllbGQuaWRdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBnZXQgdmFsdWUoKSB7XG4gICAgICAgICAgICAgICAgbGV0IHZhbHVlID0ge307XG4gICAgICAgICAgICAgICAgbGV0IGZvcm1WYWx1ZSA9IHByb3BzLmZvcm0oKS52YWx1ZTtcblxuICAgICAgICAgICAgICAgIGlmIChmb3JtVmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBmaWVsZCBvZiBwcm9wcy5jb25maWcuZmllbGRzKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlW2ZpZWxkLmlkXSA9IGZvcm1WYWx1ZVtmaWVsZC5pZF07XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGxvYWREYXRhOiAoYWN0aW9uQ29uZmlnLCBhY3Rpb25FdmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIGxldCBzZXJ2aWNlID0gIVV0aWxzLmlzTnVsbChhY3Rpb25Db25maWcuZGF0YVNlcnZpY2UpID8gYWN0aW9uQ29uZmlnLmRhdGFTZXJ2aWNlIDpcbiAgICAgICAgICAgICAgICAgICAgIVV0aWxzLmlzTnVsbChwcm9wcy5jb25maWcpID8gcHJvcHMuY29uZmlnLmRhdGFTZXJ2aWNlIDogbnVsbDtcbiAgICAgICAgICAgICAgICBsZXQgY29tcG9uZW50VmFsdWUgPSAhVXRpbHMuaXNOdWxsKHByb3BzLmNvbmZpZy52YWx1ZSkgPyBwcm9wcy5jb25maWcudmFsdWUgOlxuICAgICAgICAgICAgICAgICAgICBhY3Rpb25Db25maWcudmFsdWU7XG5cbiAgICAgICAgICAgICAgICBpZiAoY29tcG9uZW50VmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGlzRXZlbnREYXRhID0gY29tcG9uZW50VmFsdWUudG9TdHJpbmcoKVxuICAgICAgICAgICAgICAgICAgICAgICAgLnN0YXJ0c1dpdGgoJyRldmVudC5kYXRhJyk7XG4gICAgICAgICAgICAgICAgICAgIGxldCBpc0VwcmVzc2lvbiA9IGFwcGxpY2F0aW9uTWFuYWdlci5pc0V4cHJlc3Npb24oY29tcG9uZW50VmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgdmFsID0gaXNFdmVudERhdGEgfHwgaXNFcHJlc3Npb24gPyBhcHBsaWNhdGlvbk1hbmFnZXIucmVzb2x2ZUV4cHJlc3Npb25WYWx1ZShjb21wb25lbnRWYWx1ZSwgYWN0aW9uRXZlbnQgPyBhY3Rpb25FdmVudC5kYXRhIDogbnVsbCkgOiBjb21wb25lbnRWYWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgcHJvcHMuZm9ybSgpXG4gICAgICAgICAgICAgICAgICAgICAgICAuYmluZERhdGEodmFsKTtcblxuICAgICAgICAgICAgICAgICAgICBsZXQgZXZlbnQgPSBuZXcgRXZlbnQocHJvcHMuaGFuZGxlLCBwcm9wcy52aWV3SWQsIHZhbCk7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50TWFuYWdlci5maXJlRXZlbnQoRXZlbnRUeXBlLkRBVEFfQVJSSVZFRCwgZXZlbnQpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKHNlcnZpY2UpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWV0aG9kID0gc2VydmljZS50eXBlID09PSAncnBjJyA/IGludm9rZVJwYyA6IGludm9rZVJlc3Q7XG4gICAgICAgICAgICAgICAgICAgICAgICBtZXRob2Qoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZpY2U6IHNlcnZpY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50OiByZWYuY3VycmVudCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3SWQ6IHByb3BzLnZpZXdJZFxuICAgICAgICAgICAgICAgICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRhdGEgPSBzZXJ2aWNlLnR5cGUgPT09ICdycGMnID8gcmVzdWx0LmRhdGEgOiByZXN1bHQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHMuZm9ybSgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuYmluZERhdGEoZGF0YSk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGV2ZW50ID0gbmV3IEV2ZW50KHByb3BzLmhhbmRsZSwgcHJvcHMudmlld0lkLCBkYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnRNYW5hZ2VyLmZpcmVFdmVudChFdmVudFR5cGUuREFUQV9BUlJJVkVELCBldmVudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSkuY2F0Y2goKGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wcy5jb25zb2xlLmVycm9yKGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFV0aWxzLnB1Ymxpc2hFcnJvck1lc3NhZ2UoZSwgcHJvcHMudmlld0lkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlZnJlc2goKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwocHJvcHMuY29uZmlnKSAmJiAhVXRpbHMuaXNOdWxsKHByb3BzLmNvbmZpZy52aXNpYmxlKSkge1xuICAgICAgICAgICAgICAgICAgICBzZXRWaXNpYmxlKFV0aWxzLmV2YWx1YXRlQm9vbGVhbkV4cHJlc3Npb24ocHJvcHMuY29uZmlnLnZpc2libGUsIHByb3BzLmNvbmZpZy5pZCkpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHNldFZpc2libGUodHJ1ZSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwocHJvcHMuY29uZmlnKSAmJiAhVXRpbHMuaXNOdWxsKHByb3BzLmNvbmZpZy5kaXNhYmxlZCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlQ29tcG9uZW50RGlzYWJsZWRTdGF0ZShVdGlscy5ldmFsdWF0ZUJvb2xlYW5FeHByZXNzaW9uKHByb3BzLmNvbmZpZy5kaXNhYmxlZCwgcHJvcHMuY29uZmlnLmlkKSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmVmcmVzaENvbXBvbmVudHMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9O1xuXG4gICAgZnVuY3Rpb24gcmVuZGVyKGZpZWxkU2V0KSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAoVXRpbHMuaXNOdWxsKGZpZWxkU2V0LmZpZWxkcykgfHwgZmllbGRTZXQuZmllbGRzLmxlbmd0aCA9PT0gMCkgP1xuICAgICAgICAgICAgICAgIDxkaXY+IEVycm9yOiBBIGZpZWxkU2V0IG11c3QgaGF2ZSBmaWVsZHM8L2Rpdj5cbiAgICAgICAgICAgICAgICA6XG4gICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmllbGRHcmlkLnJvd3MubWFwKChyb3csIGkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gPGRpdiBjbGFzc05hbWU9XCJyb3dcIiBrZXk9e2l9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luTGVmdDogJzAnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW5SaWdodDogJzAnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdy5maWVsZHMubWFwKChmaWVsZCwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgY29sc3BhbjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgd2lkdGg7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoVXRpbHMuaXNOdWxsKGZpZWxkLmF0dHJpYnV0ZXMpIHx8IFV0aWxzLmlzTnVsbChmaWVsZC5hdHRyaWJ1dGVzLmNvbHNwYW4pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHNwYW4gPSAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBjb2xzcGFuVmFsID0gVXRpbHMuZ2V0RmllbGRDb2xzcGFuKGZpZWxkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvbHNwYW5WYWwgPiBmaWVsZEdyaWQubWF4Q29sUGVyUm93KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xzcGFuID0gZmllbGRHcmlkLm1heENvbFBlclJvdztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHNwYW4gPSBjb2xzcGFuVmFsO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGggPSBjb2xzcGFuIC8gZmllbGRHcmlkLm1heENvbFBlclJvdyAqIDEwMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgY29udGFpbmVyU3R5bGUgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmdMZWZ0OiAnMCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmdSaWdodDogJzAnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW5MZWZ0OiAnMCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpblJpZ2h0OiAnMCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbldpZHRoOiAnMzIwcHgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogd2lkdGggKyAnJSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmllbGQuaW5kZXggPSBpbmRleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgc3R5bGUgPSBmaWVsZC5hdHRyaWJ1dGVzPy5jb250YWluZXJTdHlsZSA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFV0aWxzLm1lcmdlT2JqZWN0cyhmaWVsZC5hdHRyaWJ1dGVzPy5jb250YWluZXJTdHlsZSwgY29udGFpbmVyU3R5bGUpIDogY29udGFpbmVyU3R5bGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxkaXYga2V5PXsoaSArIDEpICogaW5kZXh9IGNsYXNzTmFtZT1cImNvbC0qLSogb3VpLWZvcm0taXRlbS1jb250YWluZXJcIiBzdHlsZT17c3R5bGV9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW5kZXJDb21wb25lbnQoZmllbGQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+O1xuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiA8ZGl2IGNsYXNzTmFtZT17J2ZpZWxkU2V0V3JhcHBlcid9IHN0eWxlPXtVdGlscy5tZXJnZVN0eWxlcyhcbiAgICAgICAge1xuICAgICAgICAgICAgZGlzcGxheTogdmlzaWJsZSA/ICdibG9jaycgOiAnbm9uZScsXG4gICAgICAgICAgICBtYXJnaW46ICcwJ1xuICAgICAgICB9LCBwcm9wcy5jb25maWcpfT5cbiAgICAgICAge1xuICAgICAgICAgICAgIVV0aWxzLmlzTnVsbChwcm9wcy5jb25maWcuYXR0cmlidXRlcykgJiYgIVV0aWxzLmlzTnVsbChwcm9wcy5jb25maWcuYXR0cmlidXRlc1snbGFiZWwnXSkgP1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsnZmllbGRTZXRUaXRsZSd9PlxuICAgICAgICAgICAgICAgICAgICB7cHJvcHMuY29uZmlnLmF0dHJpYnV0ZXNbJ2xhYmVsJ119XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgOlxuICAgICAgICAgICAgICAgIG51bGxcbiAgICAgICAgfVxuICAgICAgICB7XG4gICAgICAgICAgICAhVXRpbHMuaXNOdWxsKGZpZWxkR3JpZCkgP1xuICAgICAgICAgICAgICAgIHJlbmRlcihwcm9wcy5jb25maWcpXG4gICAgICAgICAgICAgICAgOlxuICAgICAgICAgICAgICAgIG51bGxcbiAgICAgICAgfVxuICAgIDwvZGl2Pjtcbn0pO1xuXG5leHBvcnQgZGVmYXVsdCBGaWVsZFNldDtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUMsSUFBQUEsTUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0QsSUFBQUMsTUFBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsV0FBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUcsVUFBQSxHQUFBSixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUksY0FBQSxHQUFBTCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUssY0FBQSxHQUFBTixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQU0sWUFBQSxHQUFBUCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQU8saUJBQUEsR0FBQVIsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFRLFdBQUEsR0FBQVQsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFTLFdBQUEsR0FBQVYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFVLFdBQUEsR0FBQVgsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFXLFNBQUEsR0FBQVosc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFZLFdBQUEsR0FBQWIsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFhLFlBQUEsR0FBQWQsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFjLGFBQUEs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
|
|
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+O1xufSk7XG5cbmV4cG9ydCBkZWZhdWx0IEZpZWxkU2V0O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQyxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDRCxJQUFBQyxNQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRSxXQUFBLEdBQUFILHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRyxVQUFBLEdBQUFKLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSSxjQUFBLEdBQUFMLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSyxjQUFBLEdBQUFOLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBTSxZQUFBLEdBQUFQLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBTyxpQkFBQSxHQUFBUixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQVEsV0FBQSxHQUFBVCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQVMsV0FBQSxHQUFBVixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQVUsV0FBQSxHQUFBWCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQVcsU0FBQSxHQUFBWixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQVksV0FBQSxHQUFBYixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFB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
|
|
@@ -44,6 +44,7 @@ const TextFieldWrapper = /*#__PURE__*/_react.default.memo(props => {
|
|
|
44
44
|
// which treated '' as falsy and could resurrect an external value
|
|
45
45
|
// over the user's clear.
|
|
46
46
|
if (localValue == null) {
|
|
47
|
+
localValueRef.current = base.value;
|
|
47
48
|
setLocalValue(base.value);
|
|
48
49
|
}
|
|
49
50
|
}, [base.value]);
|
|
@@ -108,4 +109,4 @@ const TextField = /*#__PURE__*/_react.default.memo(props => {
|
|
|
108
109
|
}, props)));
|
|
109
110
|
});
|
|
110
111
|
var _default = exports.default = TextField;
|
|
111
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfVGV4dEZpZWxkIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9CYXNlRmllbGQiLCJfVXRpbHMiLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwibyIsImkiLCJmIiwiX19wcm90b19fIiwiaGFzIiwiZ2V0Iiwic2V0IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJfZXh0ZW5kcyIsImFzc2lnbiIsImJpbmQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJhcHBseSIsIlRleHRGaWVsZFdyYXBwZXIiLCJSZWFjdCIsIm1lbW8iLCJwcm9wcyIsIl9wcm9wcyRjb25maWckYXR0cmlidSIsIl9wcm9wcyRjb25maWckYXR0cmlidTIiLCJfcHJvcHMkY29uZmlnJGF0dHJpYnUzIiwiX3Byb3BzJGNvbmZpZyRhdHRyaWJ1NCIsIl9yZWYiLCJiYXNlIiwibXVsdGlsaW5lIiwidXNlU3RhdGUiLCJ3aWR0aCIsIlV0aWxzIiwiaXNOdWxsIiwiY29uZmlnIiwiYXR0cmlidXRlcyIsInN0eWxlIiwibWF4V2lkdGgiLCJtaW5XaWR0aCIsImhlaWdodCIsInRleHRSZWYiLCJ1c2VSZWYiLCJyb3dzIiwic2V0Um93cyIsImxvY2FsVmFsdWUiLCJzZXRMb2NhbFZhbHVlIiwibG9jYWxWYWx1ZVJlZiIsImRlYm91bmNlUmVmIiwidXNlRWZmZWN0IiwiY3VycmVudCIsImNvbXB1dGVkU3R5bGUiLCJ3aW5kb3ciLCJnZXRDb21wdXRlZFN0eWxlIiwibGluZUhlaWdodCIsInBhcnNlRmxvYXQiLCJjYWxjdWxhdGVkUm93cyIsIk1hdGgiLCJmbG9vciIsInJlcGxhY2UiLCJ2YWx1ZSIsImNyZWF0ZUVsZW1lbnQiLCJpZCIsInR5cGUiLCJyZXF1aXJlZCIsImlucHV0UmVmIiwibGFiZWwiLCJvbkNoYW5nZSIsInRhcmdldCIsImNsZWFyVGltZW91dCIsInNldFRpbWVvdXQiLCJoYW5kbGVWYWx1ZUNoYW5nZSIsIm9uQmx1ciIsInNsb3RQcm9wcyIsImlucHV0IiwiYXV0b0NvbXBsZXRlIiwic3giLCJvbktleVVwIiwia2V5SGFuZGxlciIsImVycm9yIiwiaGFzRXJyb3IiLCJoZWxwZXJUZXh0IiwiZXJyb3JNZXNzYWdlIiwibWFyZ2luIiwiZGlzYWJsZWQiLCJzaXplIiwiY2xhc3NOYW1lIiwiY29sb3IiLCJ2YXJpYW50IiwiVGV4dEZpZWxkIiwiQmFzZUZpZWxkIiwiaGFuZGxlIiwidmFsdWVQYXJzZXIiLCJpbmJvdW5kIiwidG9TdHJpbmciLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9UZXh0RmllbGQuanN4Il0sInNvdXJjZXNDb250ZW50IjpbIu+7v2ltcG9ydCBSZWFjdCwge3VzZVJlZiwgdXNlU3RhdGV9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBUZXh0RmllbGRDb21wb25lbnQgZnJvbSAnQG11aS9tYXRlcmlhbC9UZXh0RmllbGQnO1xuaW1wb3J0IHtCYXNlRmllbGR9IGZyb20gXCIuL0Jhc2VGaWVsZFwiO1xuaW1wb3J0IFV0aWxzIGZyb20gXCIuLi8uLi9VdGlsc1wiO1xuXG5jb25zdCBUZXh0RmllbGRXcmFwcGVyID0gUmVhY3QubWVtbygocHJvcHMpID0+IHtcbiAgICBjb25zdCBiYXNlID0gcHJvcHMuYmFzZTtcbiAgICBjb25zdCBbbXVsdGlsaW5lXSA9IFJlYWN0LnVzZVN0YXRlKHByb3BzLm11bHRpbGluZSk7XG4gICAgY29uc3Qgd2lkdGggPSAhVXRpbHMuaXNOdWxsKHByb3BzLmNvbmZpZy5hdHRyaWJ1dGVzPy5zdHlsZT8ud2lkdGgpID8gcHJvcHMuY29uZmlnLmF0dHJpYnV0ZXMuc3R5bGUud2lkdGggOiBcIjEwMCVcIjtcbiAgICBjb25zdCBtYXhXaWR0aCA9ICFVdGlscy5pc051bGwocHJvcHMuY29uZmlnLmF0dHJpYnV0ZXM/LnN0eWxlPy5tYXhXaWR0aCkgPyBwcm9wcy5jb25maWcuYXR0cmlidXRlcy5zdHlsZS5tYXhXaWR0aCA6IG51bGw7XG4gICAgY29uc3QgbWluV2lkdGggPSAhVXRpbHMuaXNOdWxsKHByb3BzLmNvbmZpZy5hdHRyaWJ1dGVzPy5zdHlsZT8ubWluV2lkdGgpID8gcHJvcHMuY29uZmlnLmF0dHJpYnV0ZXMuc3R5bGUubWluV2lkdGggOiBcIjI0MHB4XCI7XG4gICAgY29uc3QgaGVpZ2h0ID0gIVV0aWxzLmlzTnVsbChwcm9wcy5jb25maWcuYXR0cmlidXRlcz8uc3R5bGU/LmhlaWdodCkgPyBwcm9wcy5jb25maWcuYXR0cmlidXRlcy5zdHlsZS5oZWlnaHQgOiBtdWx0aWxpbmUgPyAnMjAwcHgnIDogbnVsbDtcbiAgICBjb25zdCB0ZXh0UmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IFtyb3dzLCBzZXRSb3dzXSA9IHVzZVN0YXRlKDEpO1xuICAgIGNvbnN0IFtsb2NhbFZhbHVlLCBzZXRMb2NhbFZhbHVlXSA9IHVzZVN0YXRlKG51bGwpO1xuICAgIC8vIFN5bmNocm9ub3VzIG1pcnJvciBvZiBsb2NhbFZhbHVlIHNvIG9uQmx1ciAoYW5kIGFueSBoYW5kbGVyIHRoYXQgZmlyZXNcbiAgICAvLyBiZWZvcmUgUmVhY3QgY29tbWl0cyBhIHBlbmRpbmcgc2V0TG9jYWxWYWx1ZSkgcmVhZHMgdGhlIGxhdGVzdCB0eXBlZFxuICAgIC8vIHZhbHVlLCBub3QgYSBzdGFsZSBjbG9zdXJlIGNhcHR1cmUuIFRoaXMgaXMgd2hhdCBtYWtlcyB0aGUgZGVib3VuY2Ugc2FmZTpcbiAgICAvLyB3aGVuIHRoZSB1c2VyIGNsaWNrcyBzYXZlIG1pZC1kZWJvdW5jZSwgYmx1ciBmaXJlcyB0aGUgb25CbHVyIGhhbmRsZXJcbiAgICAvLyBib3VuZCBvbiBhIHByZXZpb3VzIHJlbmRlciwgYW5kIHdpdGhvdXQgdGhlIHJlZiBpdCB3b3VsZCBwcm9wYWdhdGUgdGhlXG4gICAgLy8gcHJlLWtleXN0cm9rZSB2YWx1ZSAob3IgbnVsbCkgYW5kIGNsb2JiZXIgdGhlIHR5cGVkIHRleHQuXG4gICAgY29uc3QgbG9jYWxWYWx1ZVJlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCBkZWJvdW5jZVJlZiA9IHVzZVJlZihudWxsKTtcblxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmICh0ZXh0UmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbXB1dGVkU3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0ZXh0UmVmLmN1cnJlbnQpO1xuICAgICAgICAgICAgY29uc3QgbGluZUhlaWdodCA9IHBhcnNlRmxvYXQoY29tcHV0ZWRTdHlsZS5saW5lSGVpZ2h0KSB8fCAyMDtcbiAgICAgICAgICAgIGNvbnN0IGNhbGN1bGF0ZWRSb3dzID0gTWF0aC5mbG9vciggaGVpZ2h0ID09PSBudWxsID8gMjAgOiBoZWlnaHQucmVwbGFjZSgncHgnLCAnJykgLyBsaW5lSGVpZ2h0KTtcbiAgICAgICAgICAgIHNldFJvd3MoY2FsY3VsYXRlZFJvd3MpO1xuICAgICAgICB9XG4gICAgfSwgW10pO1xuXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgLy8gTnVsbGlzaC1vbmx5IGNoZWNrOiBlbXB0eSBzdHJpbmcgJycgaXMgYSBkZWxpYmVyYXRlIHVzZXItY2xlYXJlZFxuICAgICAgICAvLyBzdGF0ZSBhbmQgbXVzdCBOT1QgYmUgcmUtc3luY2VkIGZyb20gYmFzZS52YWx1ZS4gV2FzIGAhbG9jYWxWYWx1ZWBcbiAgICAgICAgLy8gd2hpY2ggdHJlYXRlZCAnJyBhcyBmYWxzeSBhbmQgY291bGQgcmVzdXJyZWN0IGFuIGV4dGVybmFsIHZhbHVlXG4gICAgICAgIC8vIG92ZXIgdGhlIHVzZXIncyBjbGVhci5cbiAgICAgICAgaWYgKGxvY2FsVmFsdWUgPT0gbnVsbCkge1xuICAgICAgICAgICAgc2V0TG9jYWxWYWx1ZShiYXNlLnZhbHVlKTtcbiAgICAgICAgfVxuICAgIH0sIFtiYXNlLnZhbHVlXSk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8VGV4dEZpZWxkQ29tcG9uZW50XG4gICAgICAgICAgICBpZD17cHJvcHMuaWR9XG4gICAgICAgICAgICB0eXBlPXtwcm9wcy50eXBlfVxuICAgICAgICAgICAgcmVxdWlyZWQ9e2Jhc2UucmVxdWlyZWR9XG4gICAgICAgICAgICBpbnB1dFJlZj17dGV4dFJlZn1cbiAgICAgICAgICAgIGxhYmVsPXshVXRpbHMuaXNOdWxsKHByb3BzLmNvbmZpZy5hdHRyaWJ1dGVzKSA/IHByb3BzLmNvbmZpZy5hdHRyaWJ1dGVzWydsYWJlbCddIDogbnVsbH1cbiAgICAgICAgICAgIHZhbHVlPXtsb2NhbFZhbHVlID8/IGJhc2UudmFsdWUgPz8gJyd9XG4gICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGUudGFyZ2V0LnZhbHVlO1xuICAgICAgICAgICAgICAgIHNldExvY2FsVmFsdWUodmFsdWUpO1xuICAgICAgICAgICAgICAgIGxvY2FsVmFsdWVSZWYuY3VycmVudCA9IHZhbHVlO1xuXG4gICAgICAgICAgICAgICAgaWYgKGRlYm91bmNlUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgY2xlYXJUaW1lb3V0KGRlYm91bmNlUmVmLmN1cnJlbnQpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGRlYm91bmNlUmVmLmN1cnJlbnQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgYmFzZS5oYW5kbGVWYWx1ZUNoYW5nZSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgfSwgMjAwKTtcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICBvbkJsdXI9eygpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZGVib3VuY2VSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgICAgICAgICBjbGVhclRpbWVvdXQoZGVib3VuY2VSZWYuY3VycmVudCk7XG4gICAgICAgICAgICAgICAgICAgIGRlYm91bmNlUmVmLmN1cnJlbnQgPSBudWxsO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGJhc2UuaGFuZGxlVmFsdWVDaGFuZ2UobG9jYWxWYWx1ZVJlZi5jdXJyZW50KTtcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICBzbG90UHJvcHM9e3tcbiAgICAgICAgICAgICAgICBpbnB1dDoge1xuICAgICAgICAgICAgICAgICAgICBhdXRvQ29tcGxldGU6IFwibmV3LXBhc3N3b3JkXCIsXG4gICAgICAgICAgICAgICAgICAgIHN4OiB7fVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgb25LZXlVcD17cHJvcHMua2V5SGFuZGxlcn1cbiAgICAgICAgICAgIGVycm9yPXtiYXNlLmhhc0Vycm9yfVxuICAgICAgICAgICAgaGVscGVyVGV4dD17YmFzZS5lcnJvck1lc3NhZ2V9XG4gICAgICAgICAgICBtYXJnaW49XCJkZW5zZVwiXG4gICAgICAgICAgICBtdWx0aWxpbmU9e211bHRpbGluZX1cbiAgICAgICAgICAgIHJvd3M9e3Jvd3N9XG4gICAgICAgICAgICBkaXNhYmxlZD17YmFzZS5kaXNhYmxlZH1cbiAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICBjbGFzc05hbWU9eydvdWktZm9ybS1pdGVtJ31cbiAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgbWluV2lkdGg6IG1pbldpZHRoLFxuICAgICAgICAgICAgICAgIHdpZHRoOiB3aWR0aCxcbiAgICAgICAgICAgICAgICBtYXhXaWR0aDogbWF4V2lkdGgsXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBtdWx0aWxpbmUgPyBudWxsIDogaGVpZ2h0LFxuICAgICAgICAgICAgICAgIGNvbG9yOiAnc2Vjb25kYXJ5J1xuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIHZhcmlhbnQ9XCJvdXRsaW5lZFwiPlxuICAgICAgICA8L1RleHRGaWVsZENvbXBvbmVudD5cbiAgICApO1xufSk7XG5cbmNvbnN0IFRleHRGaWVsZCA9IFJlYWN0Lm1lbW8oKHByb3BzKSA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgICAgPEJhc2VGaWVsZCB7Li4ucHJvcHN9IGhhbmRsZT17cHJvcHMuaGFuZGxlfVxuICAgICAgICAgICAgICAgICAgIHZhbHVlUGFyc2VyPXsodmFsdWUsIGluYm91bmQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlID8gdmFsdWUudG9TdHJpbmcoKSA6IHZhbHVlO1xuICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgID5cbiAgICAgICAgICAgIHtiYXNlID0+XG4gICAgICAgICAgICAgICAgPFRleHRGaWVsZFdyYXBwZXJcbiAgICAgICAgICAgICAgICAgICAgYmFzZT17YmFzZX1cbiAgICAgICAgICAgICAgICAgICAgey4uLnByb3BzfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8L1RleHRGaWVsZFdyYXBwZXI+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvQmFzZUZpZWxkPlxuICAgICk7XG59KTtcblxuZXhwb3J0IGRlZmF1bHQgVGV4dEZpZWxkO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQyxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDRCxJQUFBQyxVQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxVQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxNQUFBLEdBQUFGLHNCQUFBLENBQUFGLE9BQUE7QUFBZ0MsU0FBQUUsdUJBQUFHLENBQUEsV0FBQUEsQ0FBQSxJQUFBQSxDQUFBLENBQUFDLFVBQUEsR0FBQUQsQ0FBQSxLQUFBRSxPQUFBLEVBQUFGLENBQUE7QUFBQSxTQUFBTix3QkFBQU0sQ0FBQSxFQUFBRyxDQUFB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
|
|
112
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfVGV4dEZpZWxkIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9CYXNlRmllbGQiLCJfVXRpbHMiLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwibyIsImkiLCJmIiwiX19wcm90b19fIiwiaGFzIiwiZ2V0Iiwic2V0IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJfZXh0ZW5kcyIsImFzc2lnbiIsImJpbmQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJhcHBseSIsIlRleHRGaWVsZFdyYXBwZXIiLCJSZWFjdCIsIm1lbW8iLCJwcm9wcyIsIl9wcm9wcyRjb25maWckYXR0cmlidSIsIl9wcm9wcyRjb25maWckYXR0cmlidTIiLCJfcHJvcHMkY29uZmlnJGF0dHJpYnUzIiwiX3Byb3BzJGNvbmZpZyRhdHRyaWJ1NCIsIl9yZWYiLCJiYXNlIiwibXVsdGlsaW5lIiwidXNlU3RhdGUiLCJ3aWR0aCIsIlV0aWxzIiwiaXNOdWxsIiwiY29uZmlnIiwiYXR0cmlidXRlcyIsInN0eWxlIiwibWF4V2lkdGgiLCJtaW5XaWR0aCIsImhlaWdodCIsInRleHRSZWYiLCJ1c2VSZWYiLCJyb3dzIiwic2V0Um93cyIsImxvY2FsVmFsdWUiLCJzZXRMb2NhbFZhbHVlIiwibG9jYWxWYWx1ZVJlZiIsImRlYm91bmNlUmVmIiwidXNlRWZmZWN0IiwiY3VycmVudCIsImNvbXB1dGVkU3R5bGUiLCJ3aW5kb3ciLCJnZXRDb21wdXRlZFN0eWxlIiwibGluZUhlaWdodCIsInBhcnNlRmxvYXQiLCJjYWxjdWxhdGVkUm93cyIsIk1hdGgiLCJmbG9vciIsInJlcGxhY2UiLCJ2YWx1ZSIsImNyZWF0ZUVsZW1lbnQiLCJpZCIsInR5cGUiLCJyZXF1aXJlZCIsImlucHV0UmVmIiwibGFiZWwiLCJvbkNoYW5nZSIsInRhcmdldCIsImNsZWFyVGltZW91dCIsInNldFRpbWVvdXQiLCJoYW5kbGVWYWx1ZUNoYW5nZSIsIm9uQmx1ciIsInNsb3RQcm9wcyIsImlucHV0IiwiYXV0b0NvbXBsZXRlIiwic3giLCJvbktleVVwIiwia2V5SGFuZGxlciIsImVycm9yIiwiaGFzRXJyb3IiLCJoZWxwZXJUZXh0IiwiZXJyb3JNZXNzYWdlIiwibWFyZ2luIiwiZGlzYWJsZWQiLCJzaXplIiwiY2xhc3NOYW1lIiwiY29sb3IiLCJ2YXJpYW50IiwiVGV4dEZpZWxkIiwiQmFzZUZpZWxkIiwiaGFuZGxlIiwidmFsdWVQYXJzZXIiLCJpbmJvdW5kIiwidG9TdHJpbmciLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9UZXh0RmllbGQuanN4Il0sInNvdXJjZXNDb250ZW50IjpbIu+7v2ltcG9ydCBSZWFjdCwge3VzZVJlZiwgdXNlU3RhdGV9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBUZXh0RmllbGRDb21wb25lbnQgZnJvbSAnQG11aS9tYXRlcmlhbC9UZXh0RmllbGQnO1xuaW1wb3J0IHtCYXNlRmllbGR9IGZyb20gXCIuL0Jhc2VGaWVsZFwiO1xuaW1wb3J0IFV0aWxzIGZyb20gXCIuLi8uLi9VdGlsc1wiO1xuXG5jb25zdCBUZXh0RmllbGRXcmFwcGVyID0gUmVhY3QubWVtbygocHJvcHMpID0+IHtcbiAgICBjb25zdCBiYXNlID0gcHJvcHMuYmFzZTtcbiAgICBjb25zdCBbbXVsdGlsaW5lXSA9IFJlYWN0LnVzZVN0YXRlKHByb3BzLm11bHRpbGluZSk7XG4gICAgY29uc3Qgd2lkdGggPSAhVXRpbHMuaXNOdWxsKHByb3BzLmNvbmZpZy5hdHRyaWJ1dGVzPy5zdHlsZT8ud2lkdGgpID8gcHJvcHMuY29uZmlnLmF0dHJpYnV0ZXMuc3R5bGUud2lkdGggOiBcIjEwMCVcIjtcbiAgICBjb25zdCBtYXhXaWR0aCA9ICFVdGlscy5pc051bGwocHJvcHMuY29uZmlnLmF0dHJpYnV0ZXM/LnN0eWxlPy5tYXhXaWR0aCkgPyBwcm9wcy5jb25maWcuYXR0cmlidXRlcy5zdHlsZS5tYXhXaWR0aCA6IG51bGw7XG4gICAgY29uc3QgbWluV2lkdGggPSAhVXRpbHMuaXNOdWxsKHByb3BzLmNvbmZpZy5hdHRyaWJ1dGVzPy5zdHlsZT8ubWluV2lkdGgpID8gcHJvcHMuY29uZmlnLmF0dHJpYnV0ZXMuc3R5bGUubWluV2lkdGggOiBcIjI0MHB4XCI7XG4gICAgY29uc3QgaGVpZ2h0ID0gIVV0aWxzLmlzTnVsbChwcm9wcy5jb25maWcuYXR0cmlidXRlcz8uc3R5bGU/LmhlaWdodCkgPyBwcm9wcy5jb25maWcuYXR0cmlidXRlcy5zdHlsZS5oZWlnaHQgOiBtdWx0aWxpbmUgPyAnMjAwcHgnIDogbnVsbDtcbiAgICBjb25zdCB0ZXh0UmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IFtyb3dzLCBzZXRSb3dzXSA9IHVzZVN0YXRlKDEpO1xuICAgIGNvbnN0IFtsb2NhbFZhbHVlLCBzZXRMb2NhbFZhbHVlXSA9IHVzZVN0YXRlKG51bGwpO1xuICAgIC8vIFN5bmNocm9ub3VzIG1pcnJvciBvZiBsb2NhbFZhbHVlIHNvIG9uQmx1ciAoYW5kIGFueSBoYW5kbGVyIHRoYXQgZmlyZXNcbiAgICAvLyBiZWZvcmUgUmVhY3QgY29tbWl0cyBhIHBlbmRpbmcgc2V0TG9jYWxWYWx1ZSkgcmVhZHMgdGhlIGxhdGVzdCB0eXBlZFxuICAgIC8vIHZhbHVlLCBub3QgYSBzdGFsZSBjbG9zdXJlIGNhcHR1cmUuIFRoaXMgaXMgd2hhdCBtYWtlcyB0aGUgZGVib3VuY2Ugc2FmZTpcbiAgICAvLyB3aGVuIHRoZSB1c2VyIGNsaWNrcyBzYXZlIG1pZC1kZWJvdW5jZSwgYmx1ciBmaXJlcyB0aGUgb25CbHVyIGhhbmRsZXJcbiAgICAvLyBib3VuZCBvbiBhIHByZXZpb3VzIHJlbmRlciwgYW5kIHdpdGhvdXQgdGhlIHJlZiBpdCB3b3VsZCBwcm9wYWdhdGUgdGhlXG4gICAgLy8gcHJlLWtleXN0cm9rZSB2YWx1ZSAob3IgbnVsbCkgYW5kIGNsb2JiZXIgdGhlIHR5cGVkIHRleHQuXG4gICAgY29uc3QgbG9jYWxWYWx1ZVJlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCBkZWJvdW5jZVJlZiA9IHVzZVJlZihudWxsKTtcblxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmICh0ZXh0UmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbXB1dGVkU3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0ZXh0UmVmLmN1cnJlbnQpO1xuICAgICAgICAgICAgY29uc3QgbGluZUhlaWdodCA9IHBhcnNlRmxvYXQoY29tcHV0ZWRTdHlsZS5saW5lSGVpZ2h0KSB8fCAyMDtcbiAgICAgICAgICAgIGNvbnN0IGNhbGN1bGF0ZWRSb3dzID0gTWF0aC5mbG9vciggaGVpZ2h0ID09PSBudWxsID8gMjAgOiBoZWlnaHQucmVwbGFjZSgncHgnLCAnJykgLyBsaW5lSGVpZ2h0KTtcbiAgICAgICAgICAgIHNldFJvd3MoY2FsY3VsYXRlZFJvd3MpO1xuICAgICAgICB9XG4gICAgfSwgW10pO1xuXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgLy8gTnVsbGlzaC1vbmx5IGNoZWNrOiBlbXB0eSBzdHJpbmcgJycgaXMgYSBkZWxpYmVyYXRlIHVzZXItY2xlYXJlZFxuICAgICAgICAvLyBzdGF0ZSBhbmQgbXVzdCBOT1QgYmUgcmUtc3luY2VkIGZyb20gYmFzZS52YWx1ZS4gV2FzIGAhbG9jYWxWYWx1ZWBcbiAgICAgICAgLy8gd2hpY2ggdHJlYXRlZCAnJyBhcyBmYWxzeSBhbmQgY291bGQgcmVzdXJyZWN0IGFuIGV4dGVybmFsIHZhbHVlXG4gICAgICAgIC8vIG92ZXIgdGhlIHVzZXIncyBjbGVhci5cbiAgICAgICAgaWYgKGxvY2FsVmFsdWUgPT0gbnVsbCkge1xuICAgICAgICAgICAgbG9jYWxWYWx1ZVJlZi5jdXJyZW50ID0gYmFzZS52YWx1ZTtcbiAgICAgICAgICAgIHNldExvY2FsVmFsdWUoYmFzZS52YWx1ZSk7XG4gICAgICAgIH1cbiAgICB9LCBbYmFzZS52YWx1ZV0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPFRleHRGaWVsZENvbXBvbmVudFxuICAgICAgICAgICAgaWQ9e3Byb3BzLmlkfVxuICAgICAgICAgICAgdHlwZT17cHJvcHMudHlwZX1cbiAgICAgICAgICAgIHJlcXVpcmVkPXtiYXNlLnJlcXVpcmVkfVxuICAgICAgICAgICAgaW5wdXRSZWY9e3RleHRSZWZ9XG4gICAgICAgICAgICBsYWJlbD17IVV0aWxzLmlzTnVsbChwcm9wcy5jb25maWcuYXR0cmlidXRlcykgPyBwcm9wcy5jb25maWcuYXR0cmlidXRlc1snbGFiZWwnXSA6IG51bGx9XG4gICAgICAgICAgICB2YWx1ZT17bG9jYWxWYWx1ZSA/PyBiYXNlLnZhbHVlID8/ICcnfVxuICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBlLnRhcmdldC52YWx1ZTtcbiAgICAgICAgICAgICAgICBzZXRMb2NhbFZhbHVlKHZhbHVlKTtcbiAgICAgICAgICAgICAgICBsb2NhbFZhbHVlUmVmLmN1cnJlbnQgPSB2YWx1ZTtcblxuICAgICAgICAgICAgICAgIGlmIChkZWJvdW5jZVJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIGNsZWFyVGltZW91dChkZWJvdW5jZVJlZi5jdXJyZW50KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBkZWJvdW5jZVJlZi5jdXJyZW50ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGJhc2UuaGFuZGxlVmFsdWVDaGFuZ2UodmFsdWUpO1xuICAgICAgICAgICAgICAgIH0sIDIwMCk7XG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgb25CbHVyPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGRlYm91bmNlUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgY2xlYXJUaW1lb3V0KGRlYm91bmNlUmVmLmN1cnJlbnQpO1xuICAgICAgICAgICAgICAgICAgICBkZWJvdW5jZVJlZi5jdXJyZW50ID0gbnVsbDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBiYXNlLmhhbmRsZVZhbHVlQ2hhbmdlKGxvY2FsVmFsdWVSZWYuY3VycmVudCk7XG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgc2xvdFByb3BzPXt7XG4gICAgICAgICAgICAgICAgaW5wdXQ6IHtcbiAgICAgICAgICAgICAgICAgICAgYXV0b0NvbXBsZXRlOiBcIm5ldy1wYXNzd29yZFwiLFxuICAgICAgICAgICAgICAgICAgICBzeDoge31cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIG9uS2V5VXA9e3Byb3BzLmtleUhhbmRsZXJ9XG4gICAgICAgICAgICBlcnJvcj17YmFzZS5oYXNFcnJvcn1cbiAgICAgICAgICAgIGhlbHBlclRleHQ9e2Jhc2UuZXJyb3JNZXNzYWdlfVxuICAgICAgICAgICAgbWFyZ2luPVwiZGVuc2VcIlxuICAgICAgICAgICAgbXVsdGlsaW5lPXttdWx0aWxpbmV9XG4gICAgICAgICAgICByb3dzPXtyb3dzfVxuICAgICAgICAgICAgZGlzYWJsZWQ9e2Jhc2UuZGlzYWJsZWR9XG4gICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgY2xhc3NOYW1lPXsnb3VpLWZvcm0taXRlbSd9XG4gICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgIG1pbldpZHRoOiBtaW5XaWR0aCxcbiAgICAgICAgICAgICAgICB3aWR0aDogd2lkdGgsXG4gICAgICAgICAgICAgICAgbWF4V2lkdGg6IG1heFdpZHRoLFxuICAgICAgICAgICAgICAgIGhlaWdodDogbXVsdGlsaW5lID8gbnVsbCA6IGhlaWdodCxcbiAgICAgICAgICAgICAgICBjb2xvcjogJ3NlY29uZGFyeSdcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICB2YXJpYW50PVwib3V0bGluZWRcIj5cbiAgICAgICAgPC9UZXh0RmllbGRDb21wb25lbnQ+XG4gICAgKTtcbn0pO1xuXG5jb25zdCBUZXh0RmllbGQgPSBSZWFjdC5tZW1vKChwcm9wcykgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICAgIDxCYXNlRmllbGQgey4uLnByb3BzfSBoYW5kbGU9e3Byb3BzLmhhbmRsZX1cbiAgICAgICAgICAgICAgICAgICB2YWx1ZVBhcnNlcj17KHZhbHVlLCBpbmJvdW5kKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZSA/IHZhbHVlLnRvU3RyaW5nKCkgOiB2YWx1ZTtcbiAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICA+XG4gICAgICAgICAgICB7YmFzZSA9PlxuICAgICAgICAgICAgICAgIDxUZXh0RmllbGRXcmFwcGVyXG4gICAgICAgICAgICAgICAgICAgIGJhc2U9e2Jhc2V9XG4gICAgICAgICAgICAgICAgICAgIHsuLi5wcm9wc31cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPC9UZXh0RmllbGRXcmFwcGVyPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L0Jhc2VGaWVsZD5cbiAgICApO1xufSk7XG5cbmV4cG9ydCBkZWZhdWx0IFRleHRGaWVsZDtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUMsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0QsSUFBQUMsVUFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsVUFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksTUFBQSxHQUFBRixzQkFBQSxDQUFBRixPQUFBO0FBQWdDLFNBQUFFLHVCQUFBRyxDQUFBLFdBQUFBLENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFBLEdBQUFELENBQUEsS0FBQUUs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
|
|
@@ -1,6 +1,16 @@
|
|
|
1
1
|
.fieldSetWrapper {
|
|
2
2
|
}
|
|
3
3
|
|
|
4
|
+
/* Inter-field spacing via flex `gap` on the row. Unlike a per-child margin/
|
|
5
|
+
padding, gap only inserts space *between* items on the same line — a field
|
|
6
|
+
that wraps to a new line sits flush at the start, so columns stay aligned.
|
|
7
|
+
(Field widths in FieldSet subtract their share of this gap so the columns
|
|
8
|
+
still sum to the row width.) */
|
|
9
|
+
.fielset-row {
|
|
10
|
+
column-gap: 8px;
|
|
11
|
+
row-gap: 4px;
|
|
12
|
+
}
|
|
13
|
+
|
|
4
14
|
@media only screen and (max-width: 600px) {
|
|
5
15
|
.fieldSetWrapper {
|
|
6
16
|
min-width: 100% !important;
|
|
@@ -15,6 +15,10 @@ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r
|
|
|
15
15
|
const ViewContainer = props => {
|
|
16
16
|
const counter = (0, _react.useRef)(0);
|
|
17
17
|
const params = (0, _reactRouterDom.useParams)();
|
|
18
|
+
// Every navigate() push gets a fresh location.key (even to the same path),
|
|
19
|
+
// so keying the dashboard on it forces PortalDashboard to remount — and its
|
|
20
|
+
// cards to re-fetch — when the Home button / Dashboard menu re-navigates.
|
|
21
|
+
const location = (0, _reactRouterDom.useLocation)();
|
|
18
22
|
_react.default.useEffect(() => {}, []);
|
|
19
23
|
const getKey = () => {
|
|
20
24
|
if (counter.current === 100) {
|
|
@@ -25,7 +29,9 @@ const ViewContainer = props => {
|
|
|
25
29
|
const renderView = () => {
|
|
26
30
|
let viewId = params.id;
|
|
27
31
|
let view = _ApplicationManager.default.getView(viewId);
|
|
28
|
-
let element = viewId === 'dashboard' ?
|
|
32
|
+
let element = viewId === 'dashboard' ? _Utils.default.isNull(props.dashboard) ? props.dashboard : /*#__PURE__*/_react.default.cloneElement(props.dashboard, {
|
|
33
|
+
key: 'dashboard-' + location.key
|
|
34
|
+
}) : !_Utils.default.isNull(view) && !_Utils.default.isNull(view.config) ? /*#__PURE__*/_react.default.createElement(_View.View, {
|
|
29
35
|
key: view.config.id + "-" + getKey(),
|
|
30
36
|
config: view.config,
|
|
31
37
|
parameters: view.parameters,
|
|
@@ -36,4 +42,4 @@ const ViewContainer = props => {
|
|
|
36
42
|
return renderView();
|
|
37
43
|
};
|
|
38
44
|
var _default = exports.default = ViewContainer;
|
|
39
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
45
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfQXBwbGljYXRpb25NYW5hZ2VyIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9VdGlscyIsIl9WaWV3IiwiX3JlYWN0Um91dGVyRG9tIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwidCIsIldlYWtNYXAiLCJyIiwibiIsIm8iLCJpIiwiZiIsIl9fcHJvdG9fXyIsImhhcyIsImdldCIsInNldCIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiVmlld0NvbnRhaW5lciIsInByb3BzIiwiY291bnRlciIsInVzZVJlZiIsInBhcmFtcyIsInVzZVBhcmFtcyIsImxvY2F0aW9uIiwidXNlTG9jYXRpb24iLCJSZWFjdCIsInVzZUVmZmVjdCIsImdldEtleSIsImN1cnJlbnQiLCJyZW5kZXJWaWV3Iiwidmlld0lkIiwiaWQiLCJ2aWV3IiwiYXBwbGljYXRpb25NYW5hZ2VyIiwiZ2V0VmlldyIsImVsZW1lbnQiLCJVdGlscyIsImlzTnVsbCIsImRhc2hib2FyZCIsImNsb25lRWxlbWVudCIsImtleSIsImNvbmZpZyIsImNyZWF0ZUVsZW1lbnQiLCJWaWV3IiwicGFyYW1ldGVycyIsImhhbmRsZSIsIkZyYWdtZW50IiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2xheW91dC9WaWV3Q29udGFpbmVyLmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHt1c2VSZWZ9IGZyb20gJ3JlYWN0JztcbmltcG9ydCAnLi9WaWV3Q29udGFpbmVyLmNzcyc7XG5pbXBvcnQgYXBwbGljYXRpb25NYW5hZ2VyIGZyb20gJy4uLy4uL0FwcGxpY2F0aW9uTWFuYWdlcic7XG5pbXBvcnQgVXRpbHMgZnJvbSAnLi4vLi4vVXRpbHMnO1xuaW1wb3J0IHsgVmlldyB9IGZyb20gJy4vVmlldyc7XG5pbXBvcnQgeyB1c2VQYXJhbXMsIHVzZUxvY2F0aW9uIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5cbmNvbnN0IFZpZXdDb250YWluZXIgPSAocHJvcHMpID0+IHtcblxuICAgIGNvbnN0IGNvdW50ZXIgPSB1c2VSZWYoMCk7XG4gICAgY29uc3QgcGFyYW1zID0gdXNlUGFyYW1zKCk7XG4gICAgLy8gRXZlcnkgbmF2aWdhdGUoKSBwdXNoIGdldHMgYSBmcmVzaCBsb2NhdGlvbi5rZXkgKGV2ZW4gdG8gdGhlIHNhbWUgcGF0aCksXG4gICAgLy8gc28ga2V5aW5nIHRoZSBkYXNoYm9hcmQgb24gaXQgZm9yY2VzIFBvcnRhbERhc2hib2FyZCB0byByZW1vdW50IOKAlCBhbmQgaXRzXG4gICAgLy8gY2FyZHMgdG8gcmUtZmV0Y2gg4oCUIHdoZW4gdGhlIEhvbWUgYnV0dG9uIC8gRGFzaGJvYXJkIG1lbnUgcmUtbmF2aWdhdGVzLlxuICAgIGNvbnN0IGxvY2F0aW9uID0gdXNlTG9jYXRpb24oKTtcbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIH0sIFtdKTtcblxuICAgIGNvbnN0IGdldEtleSA9ICgpID0+IHtcbiAgICAgICAgaWYoY291bnRlci5jdXJyZW50ID09PSAxMDApIHtcbiAgICAgICAgICAgIGNvdW50ZXIuY3VycmVudCA9IDA7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gKytjb3VudGVyLmN1cnJlbnQ7XG4gICAgfVxuXG4gICAgY29uc3QgcmVuZGVyVmlldyA9ICgpID0+IHtcbiAgICAgICAgbGV0IHZpZXdJZCA9IHBhcmFtcy5pZDtcbiAgICAgICAgbGV0IHZpZXcgPSBhcHBsaWNhdGlvbk1hbmFnZXIuZ2V0Vmlldyh2aWV3SWQpO1xuICAgICAgICBsZXQgZWxlbWVudCA9IHZpZXdJZCA9PT0gJ2Rhc2hib2FyZCdcbiAgICAgICAgICAgID8gKFV0aWxzLmlzTnVsbChwcm9wcy5kYXNoYm9hcmQpXG4gICAgICAgICAgICAgICAgPyBwcm9wcy5kYXNoYm9hcmRcbiAgICAgICAgICAgICAgICA6IFJlYWN0LmNsb25lRWxlbWVudChwcm9wcy5kYXNoYm9hcmQsIHtrZXk6ICdkYXNoYm9hcmQtJyArIGxvY2F0aW9uLmtleX0pKVxuICAgICAgICAgICAgOiAoIVV0aWxzLmlzTnVsbCh2aWV3KSAmJiAhVXRpbHMuaXNOdWxsKHZpZXcuY29uZmlnKVxuICAgICAgICAgICAgICAgID8gPFZpZXcga2V5PXt2aWV3LmNvbmZpZy5pZCArIFwiLVwiICsgZ2V0S2V5KCl9IGNvbmZpZz17dmlldy5jb25maWd9IHBhcmFtZXRlcnM9e3ZpZXcucGFyYW1ldGVyc31cbiAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZT17dmlldy5oYW5kbGV9Lz4gOiBudWxsKTtcbiAgICAgICAgcmV0dXJuIDw+XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZWxlbWVudFxuICAgICAgICAgICAgfVxuICAgICAgICA8Lz47XG4gICAgfTtcblxuICAgIHJldHVybiByZW5kZXJWaWV3KCk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBWaWV3Q29udGFpbmVyO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQUEsT0FBQTtBQUNBLElBQUFDLG1CQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxNQUFBLEdBQUFELHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBSSxLQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxlQUFBLEdBQUFMLE9BQUE7QUFBMEQsU0FBQUUsdUJBQUFJLENBQUEsV0FBQUEsQ0FBQSxJQUFBQSxDQUFBLENBQUFDLFVBQUEsR0FBQUQsQ0FBQSxLQUFBRSxPQUFBLEVBQUFGLENBQUE7QUFBQSxTQUFBUCx3QkFBQU8sQ0FBQSxFQUFBRyxDQUFBLDZCQUFBQyxPQUFBLE1BQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQVgsdUJBQUEsWUFBQUEsQ0FBQU8sQ0FBQSxFQUFBRyxDQUFBLFNBQUFBLENBQUEsSUFBQUgsQ0FBQSxJQUFBQSxDQUFBLENBQUFDLFVBQUEsU0FBQUQsQ0FBQSxNQUFBTyxDQUFBLEVBQUFDLENBQUEsRUFBQUMsQ0FBQSxLQUFBQyxTQUFBLFFBQUFSLE9BQUEsRUFBQUYsQ0FBQSxpQkFBQUEsQ0FBQSx1QkFBQUEsQ0FBQSx5QkFBQUEsQ0FBQSxTQUFBUyxDQUFBLE1BQUFGLENBQUEsR0FBQUosQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsUUFBQUUsQ0FBQSxDQUFBSSxHQUFBLENBQUFYLENBQUEsVUFBQU8sQ0FBQSxDQUFBSyxHQUFBLENBQUFaLENBQUEsR0FBQU8sQ0FBQSxDQUFBTSxHQUFBLENBQUFiLENBQUEsRUFBQVMsQ0FBQSxnQkFBQU4sQ0FBQSxJQUFBSCxDQUFBLGdCQUFBRyxDQUFBLE9BQUFXLGNBQUEsQ0FBQUMsSUFBQSxDQUFBZixDQUFBLEVBQUFHLENBQUEsT0FBQUssQ0FBQSxJQUFBRCxDQUFBLEdBQUFTLE1BQUEsQ0FBQUMsY0FBQSxLQUFBRCxNQUFBLENBQUFFLHdCQUFBLENBQUFsQixDQUFBLEVBQUFHLENBQUEsT0FBQUssQ0FBQSxDQUFBSSxHQUFBLElBQUFKLENBQUEsQ0FBQUssR0FBQSxJQUFBTixDQUFBLENBQUFFLENBQUEsRUFBQU4sQ0FBQSxFQUFBSyxDQUFBLElBQUFDLENBQUEsQ0FBQU4sQ0FBQSxJQUFBSCxDQUFBLENBQUFHLENBQUEsV0FBQU0sQ0FBQSxLQUFBVCxDQUFBLEVBQUFHLENBQUE7QUFFMUQsTUFBTWdCLGFBQWEsR0FBSUMsS0FBSyxJQUFLO0VBRTdCLE1BQU1DLE9BQU8sR0FBRyxJQUFBQyxhQUFNLEVBQUMsQ0FBQyxDQUFDO0VBQ3pCLE1BQU1DLE1BQU0sR0FBRyxJQUFBQyx5QkFBUyxFQUFDLENBQUM7RUFDMUI7RUFDQTtFQUNBO0VBQ0EsTUFBTUMsUUFBUSxHQUFHLElBQUFDLDJCQUFXLEVBQUMsQ0FBQztFQUM5QkMsY0FBSyxDQUFDQyxTQUFTLENBQUMsTUFBTSxDQUN0QixDQUFDLEVBQUUsRUFBRSxDQUFDO0VBRU4sTUFBTUMsTUFBTSxHQUFHQSxDQUFBLEtBQU07SUFDakIsSUFBR1IsT0FBTyxDQUFDUyxPQUFPLEtBQUssR0FBRyxFQUFFO01BQ3hCVCxPQUFPLENBQUNTLE9BQU8sR0FBRyxDQUFDO0lBQ3ZCO0lBRUEsT0FBTyxFQUFFVCxPQUFPLENBQUNTLE9BQU87RUFDNUIsQ0FBQztFQUVELE1BQU1DLFVBQVUsR0FBR0EsQ0FBQSxLQUFNO0lBQ3JCLElBQUlDLE1BQU0sR0FBR1QsTUFBTSxDQUFDVSxFQUFFO0lBQ3RCLElBQUlDLElBQUksR0FBR0MsMkJBQWtCLENBQUNDLE9BQU8sQ0FBQ0osTUFBTSxDQUFDO0lBQzdDLElBQUlLLE9BQU8sR0FBR0wsTUFBTSxLQUFLLFdBQVcsR0FDN0JNLGNBQUssQ0FBQ0MsTUFBTSxDQUFDbkIsS0FBSyxDQUFDb0IsU0FBUyxDQUFDLEdBQzFCcEIsS0FBSyxDQUFDb0IsU0FBUyxnQkFDZmIsY0FBSyxDQUFDYyxZQUFZLENBQUNyQixLQUFLLENBQUNvQixTQUFTLEVBQUU7TUFBQ0UsR0FBRyxFQUFFLFlBQVksR0FBR2pCLFFBQVEsQ0FBQ2lCO0lBQUcsQ0FBQyxDQUFDLEdBQzFFLENBQUNKLGNBQUssQ0FBQ0MsTUFBTSxDQUFDTCxJQUFJLENBQUMsSUFBSSxDQUFDSSxjQUFLLENBQUNDLE1BQU0sQ0FBQ0wsSUFBSSxDQUFDUyxNQUFNLENBQUMsZ0JBQzlDbkQsTUFBQSxDQUFBVSxPQUFBLENBQUEwQyxhQUFBLENBQUM5QyxLQUFBLENBQUErQyxJQUFJO01BQUNILEdBQUcsRUFBRVIsSUFBSSxDQUFDUyxNQUFNLENBQUNWLEVBQUUsR0FBRyxHQUFHLEdBQUdKLE1BQU0sQ0FBQyxDQUFFO01BQUNjLE1BQU0sRUFBRVQsSUFBSSxDQUFDUyxNQUFPO01BQUNHLFVBQVUsRUFBRVosSUFBSSxDQUFDWSxVQUFXO01BQ3ZGQyxNQUFNLEVBQUViLElBQUksQ0FBQ2E7SUFBTyxDQUFDLENBQUMsR0FBRyxJQUFLO0lBQzlDLG9CQUFPdkQsTUFBQSxDQUFBVSxPQUFBLENBQUEwQyxhQUFBLENBQUFwRCxNQUFBLENBQUFVLE9BQUEsQ0FBQThDLFFBQUEsUUFFQ1gsT0FFTixDQUFDO0VBQ1AsQ0FBQztFQUVELE9BQU9OLFVBQVUsQ0FBQyxDQUFDO0FBQ3ZCLENBQUM7QUFBQyxJQUFBa0IsUUFBQSxHQUFBQyxPQUFBLENBQUFoRCxPQUFBLEdBRWFpQixhQUFhIiwiaWdub3JlTGlzdCI6W119
|