@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
package/dist/event/Observable.js
CHANGED
|
@@ -119,9 +119,8 @@ class Observable {
|
|
|
119
119
|
*/
|
|
120
120
|
_defineProperty(this, "addSystemGeneratedSubscription", (viewId, publisher, subscriber, callback) => {
|
|
121
121
|
let found = false;
|
|
122
|
-
let currentViewId = _ApplicationManager.default.getView(viewId).config.id;
|
|
123
122
|
for (const systemGeneratedSubscription of this.systemGeneratedSubscriptions) {
|
|
124
|
-
if (publisher === systemGeneratedSubscription.publisher && subscriber === systemGeneratedSubscription.subscriber &&
|
|
123
|
+
if (publisher === systemGeneratedSubscription.publisher && subscriber === systemGeneratedSubscription.subscriber && viewId === systemGeneratedSubscription.viewId) {
|
|
125
124
|
found = true;
|
|
126
125
|
}
|
|
127
126
|
}
|
|
@@ -130,7 +129,7 @@ class Observable {
|
|
|
130
129
|
subscription.publisher = publisher;
|
|
131
130
|
subscription.subscriber = subscriber;
|
|
132
131
|
subscription.callback = callback;
|
|
133
|
-
subscription.viewId =
|
|
132
|
+
subscription.viewId = viewId;
|
|
134
133
|
this.systemGeneratedSubscriptions.push(subscription);
|
|
135
134
|
}
|
|
136
135
|
});
|
|
@@ -243,4 +242,4 @@ class Observable {
|
|
|
243
242
|
const instance = new Observable();
|
|
244
243
|
Object.freeze(instance);
|
|
245
244
|
var _default = exports.default = instance;
|
|
246
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfQWN0aW9uSGFuZGxlcnMiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9VdGlscyIsIl9FdmVudExpc3RlbmVyIiwiX0FwcGxpY2F0aW9uTWFuYWdlciIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX0R5bmFtaWNKUyIsImUiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwiX19lc01vZHVsZSIsIm8iLCJpIiwiZiIsIl9fcHJvdG9fXyIsImRlZmF1bHQiLCJoYXMiLCJnZXQiLCJzZXQiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIl9kZWZpbmVQcm9wZXJ0eSIsIl90b1Byb3BlcnR5S2V5IiwidmFsdWUiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJfdG9QcmltaXRpdmUiLCJTeW1ib2wiLCJ0b1ByaW1pdGl2ZSIsIlR5cGVFcnJvciIsIlN0cmluZyIsIk51bWJlciIsIk9ic2VydmFibGUiLCJjb25zdHJ1Y3RvciIsInN1YnNjcmlwdGlvbiIsInN1YnNjcmlwdGlvbnMiLCJwdXNoIiwiYXBwbGljYXRpb25Db250ZXh0U3Vic2NyaXB0aW9uIiwiZXZlbnRIYW5kbGluZ0NvbmZpZyIsImNvbXBvbmVudEhhbmRsZSIsInZpZXdJZCIsIlV0aWxzIiwiaXNOdWxsIiwiYWRkU3Vic2NyaXB0aW9uIiwiRXZlbnRTdWJzY3JpcHRpb24iLCJwdWJsaXNoZXIiLCJhcGkiLCJpZCIsImV2ZW50VHlwZSIsImFjdGlvbnMiLCJjb25maWciLCJkaXNhYmxlZCIsIm1hdGNoZXMiLCJtYXRjaCIsIlRFTVBMQVRFX1JFR0VYIiwiY29tcG9uZW50IiwicmVwbGFjZSIsImFkZFN5c3RlbUdlbmVyYXRlZFN1YnNjcmlwdGlvbiIsInZpc2libGUiLCJ2YWxpZGF0b3IiLCJudWxsYWJsZSIsImluZGV4IiwiZmluZEluZGV4Iiwic3ViIiwiaGFuZGxlciIsInNwbGljZSIsImNvbXBvbmVudElkIiwiYXBwbGljYXRpb25NYW5hZ2VyIiwicmVzb2x2ZUNvbXBvbmVudEFwaSIsInN5c3RlbUdlbmVyYXRlZFN1YnNjcmlwdGlvbnMiLCJzdWJzY3JpYmVyIiwiY2FsbGJhY2siLCJyZWZyZXNoIiwiZm91bmQiLCJjdXJyZW50Vmlld0lkIiwiZ2V0VmlldyIsInN5c3RlbUdlbmVyYXRlZFN1YnNjcmlwdGlvbiIsImluc3RhbmNlIiwiZW1pdENvbnRleHRDaGFuZ2VFdmVudCIsImNvbnRleHQiLCJuZXdWYWx1ZXMiLCJvbkNvbnRleHRDaGFuZ2UiLCJmaXJlRXZlbnQiLCJiZSIsImxvZyIsImdldFNvdXJjZSIsInNvdXJjZUlkIiwiZG9tYWluIiwicHVibGlzaGVyRG9tYWluIiwiY29uc29sZSIsIlNZU1RFTV9FVkVOVCIsImdldFB1Ymxpc2hlciIsImdldEV2ZW50VHlwZSIsImdldFZpZXdJZCIsImdldEFjdGlvbnMiLCJqIiwibGVuZ3RoIiwiYWN0aW9uIiwiQWN0aW9uSGFuZGxlcnMiLCJpbnZva2UiLCJnZXRDYWxsYmFjayIsInByb2Nlc3NTeXN0ZW1HZW5lcmF0ZWRTdWJzY3JpcHRpb25zIiwiY2xlYXJBbGxFdmVudExpc3RlbmVycyIsImNsZWFyRXZlbnRMaXN0ZW5lcnMiLCJpbmRleGVzIiwicyIsImNsZWFyQ29tcG9uZW50RXZlbnRMaXN0ZW5lcnMiLCJmcmVlemUiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL2V2ZW50L09ic2VydmFibGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDbGFzcyBmb3Igb2JqZWN0cyB0aGF0IHJlZ2lzdGVyIHN1YnNjcmlwdGlvbnMgYW5kIGZpcmUgZXZlbnRzLlxuICovXG5cbmltcG9ydCBBY3Rpb25IYW5kbGVycyBmcm9tICcuL0FjdGlvbkhhbmRsZXJzJztcbmltcG9ydCBVdGlscyBmcm9tICcuLi9VdGlscyc7XG5pbXBvcnQgRXZlbnRTdWJzY3JpcHRpb24gZnJvbSAnLi9FdmVudExpc3RlbmVyJztcbmltcG9ydCBhcHBsaWNhdGlvbk1hbmFnZXIsIHsgU1lTVEVNX0VWRU5UIH0gZnJvbSAnLi4vQXBwbGljYXRpb25NYW5hZ2VyJztcbmltcG9ydCB7IFRFTVBMQVRFX1JFR0VYIH0gZnJvbSAnLi4vRHluYW1pY0pTJztcblxuY2xhc3MgT2JzZXJ2YWJsZSB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIGlmICghT2JzZXJ2YWJsZS5pbnN0YW5jZSkge1xuICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zID0gW107XG4gICAgICAgICAgICB0aGlzLmFwcGxpY2F0aW9uQ29udGV4dFN1YnNjcmlwdGlvbiA9IFtdO1xuICAgICAgICAgICAgdGhpcy5zeXN0ZW1HZW5lcmF0ZWRTdWJzY3JpcHRpb25zID0gW107XG4gICAgICAgICAgICBPYnNlcnZhYmxlLmluc3RhbmNlID0gdGhpcztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBPYnNlcnZhYmxlLmluc3RhbmNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZHMgYSBzdWJzY3JpcHRpb24gYm91bmQgYnkgdGhlIGdpdmVuIGV2ZW50IHR5cGUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gc3Vic2NyaXB0aW9uIHRoZSBzdWJzY3JpcHRpb24gdG8gYmUgYWRkZWRcbiAgICAgKi9cbiAgICBhZGRTdWJzY3JpcHRpb24gPSAoc3Vic2NyaXB0aW9uKSA9PiB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChzdWJzY3JpcHRpb24pO1xuXG4gICAgLyoqXG4gICAgICogQWRkcyBhIHN1YnNjcmlwdGlvbiBib3VuZCBieSB0aGUgZ2l2ZW4gZXZlbnQgdHlwZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBzdWJzY3JpcHRpb24gdGhlIHN1YnNjcmlwdGlvbiB0byBiZSBhZGRlZFxuICAgICAqL1xuICAgIGFkZEFwcGxpY2F0aW9uQ29udGV4dFN1YnNjcmlwdGlvbiA9IChzdWJzY3JpcHRpb24pID0+IHRoaXMuYXBwbGljYXRpb25Db250ZXh0U3Vic2NyaXB0aW9uLnB1c2goc3Vic2NyaXB0aW9uKTtcblxuICAgIC8qKlxuICAgICAqIEFkZHMgYSBsaXN0ZW5lciBib3VuZCBieSB0aGUgZ2l2ZW4gZXZlbnQgdHlwZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBldmVudEhhbmRsaW5nQ29uZmlnIHRoZSBsaXN0ZW5lciBjb25maWcgZnJvbSBiYWNrLWVuZFxuICAgICAqIEBwYXJhbSBjb21wb25lbnRIYW5kbGUgcmVmZXJlbmNlIHRvIHRoZSBjb21wb25lbnQgb3duaW5nIHRoZSBldmVudFxuICAgICAqIEBwYXJhbSB2aWV3SWQgdGhlIGlkIG9mIHRoZSB2aWV3IHdoZXJlIHRoZSBjb21wb25lbnQgaXMgcmVuZGVyZWRcbiAgICAgKi9cbiAgICBhZGRTdWJzY3JpcHRpb25zID0gKGV2ZW50SGFuZGxpbmdDb25maWcsIGNvbXBvbmVudEhhbmRsZSwgdmlld0lkKSA9PiB7XG4gICAgICAgIGlmICghVXRpbHMuaXNOdWxsKGV2ZW50SGFuZGxpbmdDb25maWcpKSB7XG4gICAgICAgICAgICBsZXQgc3Vic2NyaXB0aW9ucyA9IGV2ZW50SGFuZGxpbmdDb25maWcuc3Vic2NyaXB0aW9ucztcbiAgICAgICAgICAgIGZvciAoY29uc3Qgc3Vic2NyaXB0aW9uIG9mIHN1YnNjcmlwdGlvbnMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFkZFN1YnNjcmlwdGlvbihuZXcgRXZlbnRTdWJzY3JpcHRpb24oY29tcG9uZW50SGFuZGxlLCB2aWV3SWQsXG4gICAgICAgICAgICAgICAgICAgICFVdGlscy5pc051bGwoc3Vic2NyaXB0aW9uLnB1Ymxpc2hlcikgPyBzdWJzY3JpcHRpb24ucHVibGlzaGVyIDogY29tcG9uZW50SGFuZGxlLmFwaS5pZCxcbiAgICAgICAgICAgICAgICAgICAgc3Vic2NyaXB0aW9uLmV2ZW50VHlwZSwgc3Vic2NyaXB0aW9uLmFjdGlvbnMpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBBZGRzIHN5c3RlbSBnZW5lcmF0ZWQgY29tcG9uZW50IHN1YnNjcmlwdGlvbnMsIHN1Y2ggYXMgdGhlIG9uZXMgdG8gcmUtcnVuIGRpc2FibGVkIGFuZCByZXF1aXJlZCBzY3JpcGxldHMgYWZ0ZXIgZXZlbnRzIGFyZSBmaXJlZFxuICAgICAqXG4gICAgICogQHBhcmFtIHZpZXdJZCB0aGUgY29tcG9uZW50IHZpZXdJZFxuICAgICAqIEBwYXJhbSBjb25maWcgdGhlIGNvbXBvbmVudCBjb25maWdcbiAgICAgKlxuICAgICAqL1xuICAgIGFkZFN5c3RlbVN1YnNjcmlwdGlvbnMgPSAodmlld0lkLCBjb25maWcpID0+IHtcbiAgICAgICAgaWYgKCFVdGlscy5pc051bGwoY29uZmlnLmRpc2FibGVkKSAmJiB0eXBlb2YgY29uZmlnLmRpc2FibGVkID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgbGV0IG1hdGNoZXMgPSBjb25maWcuZGlzYWJsZWQubWF0Y2goVEVNUExBVEVfUkVHRVgpO1xuICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwobWF0Y2hlcykpIHtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IG1hdGNoIG9mIG1hdGNoZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGNvbXBvbmVudCA9IG1hdGNoLnJlcGxhY2UoJ0AjeycsICcnKVxuICAgICAgICAgICAgICAgICAgICAgICAgLnJlcGxhY2UoJ30nLCAnJyk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWRkU3lzdGVtR2VuZXJhdGVkU3Vic2NyaXB0aW9uKHZpZXdJZCwgY29tcG9uZW50LCBjb25maWcuaWQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghVXRpbHMuaXNOdWxsKGNvbmZpZy52aXNpYmxlKSAmJiB0eXBlb2YgY29uZmlnLnZpc2libGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICBsZXQgbWF0Y2hlcyA9IGNvbmZpZy52aXNpYmxlLm1hdGNoKFRFTVBMQVRFX1JFR0VYKTtcbiAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKG1hdGNoZXMpKSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBtYXRjaCBvZiBtYXRjaGVzKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBjb21wb25lbnQgPSBtYXRjaC5yZXBsYWNlKCdAI3snLCAnJylcbiAgICAgICAgICAgICAgICAgICAgICAgIC5yZXBsYWNlKCd9JywgJycpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFkZFN5c3RlbUdlbmVyYXRlZFN1YnNjcmlwdGlvbih2aWV3SWQsIGNvbXBvbmVudCwgY29uZmlnLmlkKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbChjb25maWcudmFsaWRhdG9yKSAmJiAhVXRpbHMuaXNOdWxsKGNvbmZpZy52YWxpZGF0b3IubnVsbGFibGUpKSB7XG4gICAgICAgICAgICBsZXQgbWF0Y2hlcyA9IGNvbmZpZy52YWxpZGF0b3IubnVsbGFibGUubWF0Y2goVEVNUExBVEVfUkVHRVgpO1xuICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwobWF0Y2hlcykpIHtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IG1hdGNoIG9mIG1hdGNoZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGNvbXBvbmVudCA9IG1hdGNoLnJlcGxhY2UoJ0AjeycsICcnKVxuICAgICAgICAgICAgICAgICAgICAgICAgLnJlcGxhY2UoJ30nLCAnJyk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWRkU3lzdGVtR2VuZXJhdGVkU3Vic2NyaXB0aW9uKHZpZXdJZCwgY29tcG9uZW50LCBjb25maWcuaWQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH07XG5cbiAgICByZW1vdmVBcHBsaWNhdGlvbkNvbnRleHRTdWJzY3JpcHRpb25zID0gKGlkKSA9PiB7XG4gICAgICAgIGxldCBpbmRleCA9IHRoaXMuYXBwbGljYXRpb25Db250ZXh0U3Vic2NyaXB0aW9uLmZpbmRJbmRleCgoc3ViKSA9PiBzdWIuaGFuZGxlci5pZCA9PT0gaWQpO1xuICAgICAgICBpZihpbmRleCA+PSAwKSB7XG4gICAgICAgICAgICB0aGlzLmFwcGxpY2F0aW9uQ29udGV4dFN1YnNjcmlwdGlvbi5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIGFzeW5jIGVtaXRDb250ZXh0Q2hhbmdlRXZlbnQoY29udGV4dCwgbmV3VmFsdWVzKSB7XG4gICAgICAgIGZvciAoY29uc3QgYXBwbGljYXRpb25Db250ZXh0U3Vic2NyaXB0aW9uIG9mIHRoaXMuYXBwbGljYXRpb25Db250ZXh0U3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgICBpZihhcHBsaWNhdGlvbkNvbnRleHRTdWJzY3JpcHRpb24uaGFuZGxlci5hcGkpIHtcbiAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbkNvbnRleHRTdWJzY3JpcHRpb24uaGFuZGxlci5hcGkub25Db250ZXh0Q2hhbmdlKGNvbnRleHQsIG5ld1ZhbHVlcyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGFwcGxpY2F0aW9uQ29udGV4dFN1YnNjcmlwdGlvbi5oYW5kbGVyLm9uQ29udGV4dENoYW5nZShjb250ZXh0LCBuZXdWYWx1ZXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRmlyZXMgYW4gZXZlbnQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZXZlbnRUeXBlIGV2ZW50VHlwZSB0aGUgZXZlbnQgdHlwZVxuICAgICAqIEBwYXJhbSBiZSB0aGUgYmFzZSBldmVudFxuICAgICAqIEBwYXJhbSBsb2cgZGV0ZXJtaW5lIHdoZXRoZXIgdG8gbG9nIGNoZWNrc1xuICAgICAqIEByZXR1cm4gZmFsc2UgaWYgYW55IHN1YnNjcmlwdGlvbnMgY2FuY2VsIHRoZSBldmVudC5cbiAgICAgKi9cbiAgICBhc3luYyBmaXJlRXZlbnQoZXZlbnRUeXBlLCBiZSwgbG9nKSB7XG5cbiAgICAgICAgLy8gQ29tcG9uZW50cyBjb3VsZCBiZSB1bmxvYWRpbmcgb24gdGhlIGNhc2VzIHdoZXJlIHNjcmVlbnMgYXJlIGJ1c3kgY2xvc2luZyxcbiAgICAgICAgLy8gbWVhbmluZyB0aGUgXCJjdXJyZW50XCIgb2JqZWN0IG1heSBiZSBudWxsaWZpZWQsIHNvIHdlIG5lZWQgdGhlIG51bGwgY2hlY2tcbiAgICAgICAgLy8gVGhpcyBoYXBwZW5zIG9uIGFzeW5jIGV2ZW50cyBzdWNoIGFzIFJQQ19DQUxMLiBJZiB0aGVyZSBpcyBubyB2aWV3IG1hc2tpbmcsXG4gICAgICAgIC8vIHRoZSBSRVNUIGNhbGwgbWF5IHJldHVybiB3aGlsZSB0aGUgY29tcG9uZW50IGhhcyBiZWVuIGRlc3Ryb3llZCwgYW5kIHRoZSBzb3VyY2UncyBjdXJyZW50IGNvdWxkIGJlIG51bGxcbiAgICAgICAgLy8gUHJvcGVyIG1hc2tpbmcgd2hlbiBkb2luZyBSRVNUIENBTEwgc2hvdWxkIHByZXZlbnQgdGhpcyBmcm9tIGhhcHBlbmluZy4gVGhlIG51bGwgY2hlY2sgcHJvdmlkZXMgdGhlIHNvcnQgb2YgZGVmZW5jZVxuXG4gICAgICAgIGlmICghVXRpbHMuaXNOdWxsKGJlLmdldFNvdXJjZSgpKSAmJiAhVXRpbHMuaXNOdWxsKGJlLmdldFNvdXJjZSgpLmFwaSkpIHtcbiAgICAgICAgICAgIGxldCBzb3VyY2VJZCA9IGJlLmdldFNvdXJjZSgpLmFwaS5pZDtcbiAgICAgICAgICAgIGxldCB2aWV3SWQgPSBiZS52aWV3SWQ7XG5cbiAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKHNvdXJjZUlkKSkge1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3Qgc3Vic2NyaXB0aW9uIG9mIHRoaXMuc3Vic2NyaXB0aW9ucykge1xuICAgICAgICAgICAgICAgICAgICBsZXQgZG9tYWluID0gc3Vic2NyaXB0aW9uLnB1Ymxpc2hlckRvbWFpbiA/IHN1YnNjcmlwdGlvbi5wdWJsaXNoZXJEb21haW4gOiB2aWV3SWQ7XG4gICAgICAgICAgICAgICAgICAgIGlmKGxvZyA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJWSUVXIENIRUNLOiBcIiArIGRvbWFpbiArIFwiID09PyBcIiArIHZpZXdJZCArIFwiIC0gXCIgKyAoZG9tYWluID09PSB2aWV3SWQgfHwgU1lTVEVNX0VWRU5UID09PSB2aWV3SWQpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiUFVCTElTSEVSIENIRUNLOiBcIiArIHN1YnNjcmlwdGlvbi5nZXRQdWJsaXNoZXIoKSArIFwiIDogXCIgKyBzb3VyY2VJZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIkVWRU5UIFRZUEUgQ0hFQ0s6IFwiICsgc3Vic2NyaXB0aW9uLmdldEV2ZW50VHlwZSgpICsgXCIgOiBcIiArIGV2ZW50VHlwZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIkZVTEwgQ0hFQ0s6IFwiICsgKChzdWJzY3JpcHRpb24uZ2V0Vmlld0lkKCkgPT09IHZpZXdJZCB8fCBTWVNURU1fRVZFTlQgPT09IHZpZXdJZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiBzdWJzY3JpcHRpb24uZ2V0UHVibGlzaGVyKCkgPT09IHNvdXJjZUlkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgc3Vic2NyaXB0aW9uLmdldEV2ZW50VHlwZSgpID09PSBldmVudFR5cGUpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiXFxuXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKChkb21haW4gPT09IHZpZXdJZCB8fCBTWVNURU1fRVZFTlQgPT09IHZpZXdJZClcbiAgICAgICAgICAgICAgICAgICAgICAgICYmIHN1YnNjcmlwdGlvbi5nZXRQdWJsaXNoZXIoKSA9PT0gc291cmNlSWRcbiAgICAgICAgICAgICAgICAgICAgICAgICYmIHN1YnNjcmlwdGlvbi5nZXRFdmVudFR5cGUoKSA9PT0gZXZlbnRUeXBlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbChzdWJzY3JpcHRpb24uZ2V0QWN0aW9ucygpKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgc3Vic2NyaXB0aW9uLmdldEFjdGlvbnMoKS5sZW5ndGg7IGorKykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgYWN0aW9uID0gc3Vic2NyaXB0aW9uLmdldEFjdGlvbnMoKVtqXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0aW9uSGFuZGxlcnMuaW52b2tlKGFjdGlvbiwgYmUsIHN1YnNjcmlwdGlvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICghVXRpbHMuaXNOdWxsKHN1YnNjcmlwdGlvbi5nZXRDYWxsYmFjaygpKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1YnNjcmlwdGlvbi5nZXRDYWxsYmFjaygpKGJlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHRoaXMucHJvY2Vzc1N5c3RlbUdlbmVyYXRlZFN1YnNjcmlwdGlvbnMoc291cmNlSWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2xlYXJzIGFsbCBldmVudCBzdWJzY3JpcHRpb25zXG4gICAgICpcbiAgICAgKi9cbiAgICBjbGVhckFsbEV2ZW50TGlzdGVuZXJzKCkge1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMuc3BsaWNlKDAsIHRoaXMuc3Vic2NyaXB0aW9ucy5sZW5ndGgpO1xuICAgICAgICB0aGlzLnN5c3RlbUdlbmVyYXRlZFN1YnNjcmlwdGlvbnMuc3BsaWNlKDAsIHRoaXMuc3lzdGVtR2VuZXJhdGVkU3Vic2NyaXB0aW9ucy5sZW5ndGgpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBDbGVhcnMgYWxsIGV2ZW50IHN1YnNjcmlwdGlvbnMgZm9yIHRoZSBzcGVjaWZpZWQgdmlld1xuICAgICAqXG4gICAgICogQHBhcmFtIHZpZXdJZCB0aGUgdmlld1xuICAgICAqL1xuICAgIGNsZWFyRXZlbnRMaXN0ZW5lcnModmlld0lkKSB7XG4gICAgICAgIGxldCBpbmRleGVzID0gW107XG5cbiAgICAgICAgbGV0IGluZGV4O1xuICAgICAgICB3aGlsZSAoKGluZGV4ID0gdGhpcy5zdWJzY3JpcHRpb25zLmZpbmRJbmRleCgocykgPT4gcy52aWV3SWQgPT09IHZpZXdJZCkpICE9PSAtMSkge1xuICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbCh0aGlzLnN5c3RlbUdlbmVyYXRlZFN1YnNjcmlwdGlvbnMpKSB7XG4gICAgICAgICAgICB3aGlsZSAoKGluZGV4ID0gdGhpcy5zeXN0ZW1HZW5lcmF0ZWRTdWJzY3JpcHRpb25zLmZpbmRJbmRleCgocykgPT4gcy52aWV3SWQgPT09IHZpZXdJZCkpICE9PSAtMSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc3lzdGVtR2VuZXJhdGVkU3Vic2NyaXB0aW9ucy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIENsZWFycyBhbGwgZXZlbnQgc3Vic2NyaXB0aW9ucyBmb3IgdGhlIHNwZWNpZmllZCB2aWV3XG4gICAgICpcbiAgICAgKiBAcGFyYW0gY29tcG9uZW50IHRoZSB2aWV3XG4gICAgICovXG4gICAgY2xlYXJDb21wb25lbnRFdmVudExpc3RlbmVycyhjb21wb25lbnQpIHtcbiAgICAgICAgaWYoY29tcG9uZW50ICYmIGNvbXBvbmVudC5hcGkgJiYgY29tcG9uZW50LmFwaS5pZCkge1xuICAgICAgICAgICAgbGV0IGluZGV4O1xuICAgICAgICAgICAgd2hpbGUgKChpbmRleCA9IHRoaXMuc3Vic2NyaXB0aW9ucy5maW5kSW5kZXgoKHMpID0+IHMuc3Vic2NyaWJlciA9PT0gY29tcG9uZW50LmFwaS5pZCkpICE9PSAtMSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbCh0aGlzLnN5c3RlbUdlbmVyYXRlZFN1YnNjcmlwdGlvbnMpKSB7XG4gICAgICAgICAgICAgICAgd2hpbGUgKChpbmRleCA9IHRoaXMuc3lzdGVtR2VuZXJhdGVkU3Vic2NyaXB0aW9ucy5maW5kSW5kZXgoKHMpID0+IHMuc3Vic2NyaWJlciA9PT0gY29tcG9uZW50LmFwaS5pZCkpICE9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN5c3RlbUdlbmVyYXRlZFN1YnNjcmlwdGlvbnMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY29tcG9uZW50SWRcbiAgICAgKlxuICAgICAqL1xuICAgIHByb2Nlc3NTeXN0ZW1HZW5lcmF0ZWRTdWJzY3JpcHRpb25zID0gKGNvbXBvbmVudElkKSA9PiB7XG4gICAgICAgIGxldCBjb21wb25lbnQgPSBhcHBsaWNhdGlvbk1hbmFnZXIucmVzb2x2ZUNvbXBvbmVudEFwaShjb21wb25lbnRJZCk7XG5cbiAgICAgICAgaWYgKCFVdGlscy5pc051bGwoY29tcG9uZW50KSkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBzdWJzY3JpcHRpb24gb2YgdGhpcy5zeXN0ZW1HZW5lcmF0ZWRTdWJzY3JpcHRpb25zKSB7XG4gICAgICAgICAgICAgICAgaWYgKHN1YnNjcmlwdGlvbi5wdWJsaXNoZXIgPT09IGNvbXBvbmVudElkKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBjb21wb25lbnQgPSBhcHBsaWNhdGlvbk1hbmFnZXIucmVzb2x2ZUNvbXBvbmVudEFwaShzdWJzY3JpcHRpb24uc3Vic2NyaWJlcik7XG4gICAgICAgICAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKGNvbXBvbmVudCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKHN1YnNjcmlwdGlvbi5jYWxsYmFjaykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJzY3JpcHRpb24uY2FsbGJhY2soKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIVV0aWxzLmlzTnVsbChjb21wb25lbnQucmVmcmVzaCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wb25lbnQucmVmcmVzaCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqXG4gICAgICogQHBhcmFtIHZpZXdJZFxuICAgICAqIEBwYXJhbSBwdWJsaXNoZXJcbiAgICAgKiBAcGFyYW0gc3Vic2NyaWJlclxuICAgICAqIEBwYXJhbSBjYWxsYmFja1xuICAgICAqXG4gICAgICovXG4gICAgYWRkU3lzdGVtR2VuZXJhdGVkU3Vic2NyaXB0aW9uID0gKHZpZXdJZCwgcHVibGlzaGVyLCBzdWJzY3JpYmVyLCBjYWxsYmFjaykgPT4ge1xuICAgICAgICBsZXQgZm91bmQgPSBmYWxzZTtcbiAgICAgICAgbGV0IGN1cnJlbnRWaWV3SWQgPSBhcHBsaWNhdGlvbk1hbmFnZXIuZ2V0Vmlldyh2aWV3SWQpLmNvbmZpZy5pZDtcblxuICAgICAgICBmb3IgKGNvbnN0IHN5c3RlbUdlbmVyYXRlZFN1YnNjcmlwdGlvbiBvZiB0aGlzLnN5c3RlbUdlbmVyYXRlZFN1YnNjcmlwdGlvbnMpIHtcbiAgICAgICAgICAgIGlmIChwdWJsaXNoZXIgPT09IHN5c3RlbUdlbmVyYXRlZFN1YnNjcmlwdGlvbi5wdWJsaXNoZXJcbiAgICAgICAgICAgICAgICAmJiBzdWJzY3JpYmVyID09PSBzeXN0ZW1HZW5lcmF0ZWRTdWJzY3JpcHRpb24uc3Vic2NyaWJlclxuICAgICAgICAgICAgICAgICYmIGN1cnJlbnRWaWV3SWQgPT09IHN5c3RlbUdlbmVyYXRlZFN1YnNjcmlwdGlvbi52aWV3SWQpIHtcbiAgICAgICAgICAgICAgICBmb3VuZCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWZvdW5kKSB7XG4gICAgICAgICAgICBsZXQgc3Vic2NyaXB0aW9uID0ge307XG4gICAgICAgICAgICBzdWJzY3JpcHRpb24ucHVibGlzaGVyID0gcHVibGlzaGVyO1xuICAgICAgICAgICAgc3Vic2NyaXB0aW9uLnN1YnNjcmliZXIgPSBzdWJzY3JpYmVyO1xuICAgICAgICAgICAgc3Vic2NyaXB0aW9uLmNhbGxiYWNrID0gY2FsbGJhY2s7XG4gICAgICAgICAgICBzdWJzY3JpcHRpb24udmlld0lkID0gY3VycmVudFZpZXdJZDtcblxuICAgICAgICAgICAgdGhpcy5zeXN0ZW1HZW5lcmF0ZWRTdWJzY3JpcHRpb25zLnB1c2goc3Vic2NyaXB0aW9uKTtcbiAgICAgICAgfVxuICAgIH07XG59XG5cbmNvbnN0IGluc3RhbmNlID0gbmV3IE9ic2VydmFibGUoKTtcbk9iamVjdC5mcmVlemUoaW5zdGFuY2Up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
|
|
245
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfQWN0aW9uSGFuZGxlcnMiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9VdGlscyIsIl9FdmVudExpc3RlbmVyIiwiX0FwcGxpY2F0aW9uTWFuYWdlciIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX0R5bmFtaWNKUyIsImUiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwiX19lc01vZHVsZSIsIm8iLCJpIiwiZiIsIl9fcHJvdG9fXyIsImRlZmF1bHQiLCJoYXMiLCJnZXQiLCJzZXQiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIl9kZWZpbmVQcm9wZXJ0eSIsIl90b1Byb3BlcnR5S2V5IiwidmFsdWUiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJfdG9QcmltaXRpdmUiLCJTeW1ib2wiLCJ0b1ByaW1pdGl2ZSIsIlR5cGVFcnJvciIsIlN0cmluZyIsIk51bWJlciIsIk9ic2VydmFibGUiLCJjb25zdHJ1Y3RvciIsInN1YnNjcmlwdGlvbiIsInN1YnNjcmlwdGlvbnMiLCJwdXNoIiwiYXBwbGljYXRpb25Db250ZXh0U3Vic2NyaXB0aW9uIiwiZXZlbnRIYW5kbGluZ0NvbmZpZyIsImNvbXBvbmVudEhhbmRsZSIsInZpZXdJZCIsIlV0aWxzIiwiaXNOdWxsIiwiYWRkU3Vic2NyaXB0aW9uIiwiRXZlbnRTdWJzY3JpcHRpb24iLCJwdWJsaXNoZXIiLCJhcGkiLCJpZCIsImV2ZW50VHlwZSIsImFjdGlvbnMiLCJjb25maWciLCJkaXNhYmxlZCIsIm1hdGNoZXMiLCJtYXRjaCIsIlRFTVBMQVRFX1JFR0VYIiwiY29tcG9uZW50IiwicmVwbGFjZSIsImFkZFN5c3RlbUdlbmVyYXRlZFN1YnNjcmlwdGlvbiIsInZpc2libGUiLCJ2YWxpZGF0b3IiLCJudWxsYWJsZSIsImluZGV4IiwiZmluZEluZGV4Iiwic3ViIiwiaGFuZGxlciIsInNwbGljZSIsImNvbXBvbmVudElkIiwiYXBwbGljYXRpb25NYW5hZ2VyIiwicmVzb2x2ZUNvbXBvbmVudEFwaSIsInN5c3RlbUdlbmVyYXRlZFN1YnNjcmlwdGlvbnMiLCJzdWJzY3JpYmVyIiwiY2FsbGJhY2siLCJyZWZyZXNoIiwiZm91bmQiLCJzeXN0ZW1HZW5lcmF0ZWRTdWJzY3JpcHRpb24iLCJpbnN0YW5jZSIsImVtaXRDb250ZXh0Q2hhbmdlRXZlbnQiLCJjb250ZXh0IiwibmV3VmFsdWVzIiwib25Db250ZXh0Q2hhbmdlIiwiZmlyZUV2ZW50IiwiYmUiLCJsb2ciLCJnZXRTb3VyY2UiLCJzb3VyY2VJZCIsImRvbWFpbiIsInB1Ymxpc2hlckRvbWFpbiIsImNvbnNvbGUiLCJTWVNURU1fRVZFTlQiLCJnZXRQdWJsaXNoZXIiLCJnZXRFdmVudFR5cGUiLCJnZXRWaWV3SWQiLCJnZXRBY3Rpb25zIiwiaiIsImxlbmd0aCIsImFjdGlvbiIsIkFjdGlvbkhhbmRsZXJzIiwiaW52b2tlIiwiZ2V0Q2FsbGJhY2siLCJwcm9jZXNzU3lzdGVtR2VuZXJhdGVkU3Vic2NyaXB0aW9ucyIsImNsZWFyQWxsRXZlbnRMaXN0ZW5lcnMiLCJjbGVhckV2ZW50TGlzdGVuZXJzIiwiaW5kZXhlcyIsInMiLCJjbGVhckNvbXBvbmVudEV2ZW50TGlzdGVuZXJzIiwiZnJlZXplIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9ldmVudC9PYnNlcnZhYmxlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ2xhc3MgZm9yIG9iamVjdHMgdGhhdCByZWdpc3RlciBzdWJzY3JpcHRpb25zIGFuZCBmaXJlIGV2ZW50cy5cbiAqL1xuXG5pbXBvcnQgQWN0aW9uSGFuZGxlcnMgZnJvbSAnLi9BY3Rpb25IYW5kbGVycyc7XG5pbXBvcnQgVXRpbHMgZnJvbSAnLi4vVXRpbHMnO1xuaW1wb3J0IEV2ZW50U3Vic2NyaXB0aW9uIGZyb20gJy4vRXZlbnRMaXN0ZW5lcic7XG5pbXBvcnQgYXBwbGljYXRpb25NYW5hZ2VyLCB7IFNZU1RFTV9FVkVOVCB9IGZyb20gJy4uL0FwcGxpY2F0aW9uTWFuYWdlcic7XG5pbXBvcnQgeyBURU1QTEFURV9SRUdFWCB9IGZyb20gJy4uL0R5bmFtaWNKUyc7XG5cbmNsYXNzIE9ic2VydmFibGUge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBpZiAoIU9ic2VydmFibGUuaW5zdGFuY2UpIHtcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucyA9IFtdO1xuICAgICAgICAgICAgdGhpcy5hcHBsaWNhdGlvbkNvbnRleHRTdWJzY3JpcHRpb24gPSBbXTtcbiAgICAgICAgICAgIHRoaXMuc3lzdGVtR2VuZXJhdGVkU3Vic2NyaXB0aW9ucyA9IFtdO1xuICAgICAgICAgICAgT2JzZXJ2YWJsZS5pbnN0YW5jZSA9IHRoaXM7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gT2JzZXJ2YWJsZS5pbnN0YW5jZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGRzIGEgc3Vic2NyaXB0aW9uIGJvdW5kIGJ5IHRoZSBnaXZlbiBldmVudCB0eXBlLlxuICAgICAqXG4gICAgICogQHBhcmFtIHN1YnNjcmlwdGlvbiB0aGUgc3Vic2NyaXB0aW9uIHRvIGJlIGFkZGVkXG4gICAgICovXG4gICAgYWRkU3Vic2NyaXB0aW9uID0gKHN1YnNjcmlwdGlvbikgPT4gdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goc3Vic2NyaXB0aW9uKTtcblxuICAgIC8qKlxuICAgICAqIEFkZHMgYSBzdWJzY3JpcHRpb24gYm91bmQgYnkgdGhlIGdpdmVuIGV2ZW50IHR5cGUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gc3Vic2NyaXB0aW9uIHRoZSBzdWJzY3JpcHRpb24gdG8gYmUgYWRkZWRcbiAgICAgKi9cbiAgICBhZGRBcHBsaWNhdGlvbkNvbnRleHRTdWJzY3JpcHRpb24gPSAoc3Vic2NyaXB0aW9uKSA9PiB0aGlzLmFwcGxpY2F0aW9uQ29udGV4dFN1YnNjcmlwdGlvbi5wdXNoKHN1YnNjcmlwdGlvbik7XG5cbiAgICAvKipcbiAgICAgKiBBZGRzIGEgbGlzdGVuZXIgYm91bmQgYnkgdGhlIGdpdmVuIGV2ZW50IHR5cGUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZXZlbnRIYW5kbGluZ0NvbmZpZyB0aGUgbGlzdGVuZXIgY29uZmlnIGZyb20gYmFjay1lbmRcbiAgICAgKiBAcGFyYW0gY29tcG9uZW50SGFuZGxlIHJlZmVyZW5jZSB0byB0aGUgY29tcG9uZW50IG93bmluZyB0aGUgZXZlbnRcbiAgICAgKiBAcGFyYW0gdmlld0lkIHRoZSBpZCBvZiB0aGUgdmlldyB3aGVyZSB0aGUgY29tcG9uZW50IGlzIHJlbmRlcmVkXG4gICAgICovXG4gICAgYWRkU3Vic2NyaXB0aW9ucyA9IChldmVudEhhbmRsaW5nQ29uZmlnLCBjb21wb25lbnRIYW5kbGUsIHZpZXdJZCkgPT4ge1xuICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbChldmVudEhhbmRsaW5nQ29uZmlnKSkge1xuICAgICAgICAgICAgbGV0IHN1YnNjcmlwdGlvbnMgPSBldmVudEhhbmRsaW5nQ29uZmlnLnN1YnNjcmlwdGlvbnM7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHN1YnNjcmlwdGlvbiBvZiBzdWJzY3JpcHRpb25zKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hZGRTdWJzY3JpcHRpb24obmV3IEV2ZW50U3Vic2NyaXB0aW9uKGNvbXBvbmVudEhhbmRsZSwgdmlld0lkLFxuICAgICAgICAgICAgICAgICAgICAhVXRpbHMuaXNOdWxsKHN1YnNjcmlwdGlvbi5wdWJsaXNoZXIpID8gc3Vic2NyaXB0aW9uLnB1Ymxpc2hlciA6IGNvbXBvbmVudEhhbmRsZS5hcGkuaWQsXG4gICAgICAgICAgICAgICAgICAgIHN1YnNjcmlwdGlvbi5ldmVudFR5cGUsIHN1YnNjcmlwdGlvbi5hY3Rpb25zKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogQWRkcyBzeXN0ZW0gZ2VuZXJhdGVkIGNvbXBvbmVudCBzdWJzY3JpcHRpb25zLCBzdWNoIGFzIHRoZSBvbmVzIHRvIHJlLXJ1biBkaXNhYmxlZCBhbmQgcmVxdWlyZWQgc2NyaXBsZXRzIGFmdGVyIGV2ZW50cyBhcmUgZmlyZWRcbiAgICAgKlxuICAgICAqIEBwYXJhbSB2aWV3SWQgdGhlIGNvbXBvbmVudCB2aWV3SWRcbiAgICAgKiBAcGFyYW0gY29uZmlnIHRoZSBjb21wb25lbnQgY29uZmlnXG4gICAgICpcbiAgICAgKi9cbiAgICBhZGRTeXN0ZW1TdWJzY3JpcHRpb25zID0gKHZpZXdJZCwgY29uZmlnKSA9PiB7XG4gICAgICAgIGlmICghVXRpbHMuaXNOdWxsKGNvbmZpZy5kaXNhYmxlZCkgJiYgdHlwZW9mIGNvbmZpZy5kaXNhYmxlZCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIGxldCBtYXRjaGVzID0gY29uZmlnLmRpc2FibGVkLm1hdGNoKFRFTVBMQVRFX1JFR0VYKTtcbiAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKG1hdGNoZXMpKSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBtYXRjaCBvZiBtYXRjaGVzKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBjb21wb25lbnQgPSBtYXRjaC5yZXBsYWNlKCdAI3snLCAnJylcbiAgICAgICAgICAgICAgICAgICAgICAgIC5yZXBsYWNlKCd9JywgJycpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFkZFN5c3RlbUdlbmVyYXRlZFN1YnNjcmlwdGlvbih2aWV3SWQsIGNvbXBvbmVudCwgY29uZmlnLmlkKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbChjb25maWcudmlzaWJsZSkgJiYgdHlwZW9mIGNvbmZpZy52aXNpYmxlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgbGV0IG1hdGNoZXMgPSBjb25maWcudmlzaWJsZS5tYXRjaChURU1QTEFURV9SRUdFWCk7XG4gICAgICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbChtYXRjaGVzKSkge1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgbWF0Y2ggb2YgbWF0Y2hlcykge1xuICAgICAgICAgICAgICAgICAgICBsZXQgY29tcG9uZW50ID0gbWF0Y2gucmVwbGFjZSgnQCN7JywgJycpXG4gICAgICAgICAgICAgICAgICAgICAgICAucmVwbGFjZSgnfScsICcnKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hZGRTeXN0ZW1HZW5lcmF0ZWRTdWJzY3JpcHRpb24odmlld0lkLCBjb21wb25lbnQsIGNvbmZpZy5pZCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFVdGlscy5pc051bGwoY29uZmlnLnZhbGlkYXRvcikgJiYgIVV0aWxzLmlzTnVsbChjb25maWcudmFsaWRhdG9yLm51bGxhYmxlKSkge1xuICAgICAgICAgICAgbGV0IG1hdGNoZXMgPSBjb25maWcudmFsaWRhdG9yLm51bGxhYmxlLm1hdGNoKFRFTVBMQVRFX1JFR0VYKTtcbiAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKG1hdGNoZXMpKSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBtYXRjaCBvZiBtYXRjaGVzKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBjb21wb25lbnQgPSBtYXRjaC5yZXBsYWNlKCdAI3snLCAnJylcbiAgICAgICAgICAgICAgICAgICAgICAgIC5yZXBsYWNlKCd9JywgJycpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFkZFN5c3RlbUdlbmVyYXRlZFN1YnNjcmlwdGlvbih2aWV3SWQsIGNvbXBvbmVudCwgY29uZmlnLmlkKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgcmVtb3ZlQXBwbGljYXRpb25Db250ZXh0U3Vic2NyaXB0aW9ucyA9IChpZCkgPT4ge1xuICAgICAgICBsZXQgaW5kZXggPSB0aGlzLmFwcGxpY2F0aW9uQ29udGV4dFN1YnNjcmlwdGlvbi5maW5kSW5kZXgoKHN1YikgPT4gc3ViLmhhbmRsZXIuaWQgPT09IGlkKTtcbiAgICAgICAgaWYoaW5kZXggPj0gMCkge1xuICAgICAgICAgICAgdGhpcy5hcHBsaWNhdGlvbkNvbnRleHRTdWJzY3JpcHRpb24uc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBhc3luYyBlbWl0Q29udGV4dENoYW5nZUV2ZW50KGNvbnRleHQsIG5ld1ZhbHVlcykge1xuICAgICAgICBmb3IgKGNvbnN0IGFwcGxpY2F0aW9uQ29udGV4dFN1YnNjcmlwdGlvbiBvZiB0aGlzLmFwcGxpY2F0aW9uQ29udGV4dFN1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgaWYoYXBwbGljYXRpb25Db250ZXh0U3Vic2NyaXB0aW9uLmhhbmRsZXIuYXBpKSB7XG4gICAgICAgICAgICAgICAgYXBwbGljYXRpb25Db250ZXh0U3Vic2NyaXB0aW9uLmhhbmRsZXIuYXBpLm9uQ29udGV4dENoYW5nZShjb250ZXh0LCBuZXdWYWx1ZXMpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbkNvbnRleHRTdWJzY3JpcHRpb24uaGFuZGxlci5vbkNvbnRleHRDaGFuZ2UoY29udGV4dCwgbmV3VmFsdWVzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEZpcmVzIGFuIGV2ZW50LlxuICAgICAqXG4gICAgICogQHBhcmFtIGV2ZW50VHlwZSBldmVudFR5cGUgdGhlIGV2ZW50IHR5cGVcbiAgICAgKiBAcGFyYW0gYmUgdGhlIGJhc2UgZXZlbnRcbiAgICAgKiBAcGFyYW0gbG9nIGRldGVybWluZSB3aGV0aGVyIHRvIGxvZyBjaGVja3NcbiAgICAgKiBAcmV0dXJuIGZhbHNlIGlmIGFueSBzdWJzY3JpcHRpb25zIGNhbmNlbCB0aGUgZXZlbnQuXG4gICAgICovXG4gICAgYXN5bmMgZmlyZUV2ZW50KGV2ZW50VHlwZSwgYmUsIGxvZykge1xuXG4gICAgICAgIC8vIENvbXBvbmVudHMgY291bGQgYmUgdW5sb2FkaW5nIG9uIHRoZSBjYXNlcyB3aGVyZSBzY3JlZW5zIGFyZSBidXN5IGNsb3NpbmcsXG4gICAgICAgIC8vIG1lYW5pbmcgdGhlIFwiY3VycmVudFwiIG9iamVjdCBtYXkgYmUgbnVsbGlmaWVkLCBzbyB3ZSBuZWVkIHRoZSBudWxsIGNoZWNrXG4gICAgICAgIC8vIFRoaXMgaGFwcGVucyBvbiBhc3luYyBldmVudHMgc3VjaCBhcyBSUENfQ0FMTC4gSWYgdGhlcmUgaXMgbm8gdmlldyBtYXNraW5nLFxuICAgICAgICAvLyB0aGUgUkVTVCBjYWxsIG1heSByZXR1cm4gd2hpbGUgdGhlIGNvbXBvbmVudCBoYXMgYmVlbiBkZXN0cm95ZWQsIGFuZCB0aGUgc291cmNlJ3MgY3VycmVudCBjb3VsZCBiZSBudWxsXG4gICAgICAgIC8vIFByb3BlciBtYXNraW5nIHdoZW4gZG9pbmcgUkVTVCBDQUxMIHNob3VsZCBwcmV2ZW50IHRoaXMgZnJvbSBoYXBwZW5pbmcuIFRoZSBudWxsIGNoZWNrIHByb3ZpZGVzIHRoZSBzb3J0IG9mIGRlZmVuY2VcblxuICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbChiZS5nZXRTb3VyY2UoKSkgJiYgIVV0aWxzLmlzTnVsbChiZS5nZXRTb3VyY2UoKS5hcGkpKSB7XG4gICAgICAgICAgICBsZXQgc291cmNlSWQgPSBiZS5nZXRTb3VyY2UoKS5hcGkuaWQ7XG4gICAgICAgICAgICBsZXQgdmlld0lkID0gYmUudmlld0lkO1xuXG4gICAgICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbChzb3VyY2VJZCkpIHtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHN1YnNjcmlwdGlvbiBvZiB0aGlzLnN1YnNjcmlwdGlvbnMpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGRvbWFpbiA9IHN1YnNjcmlwdGlvbi5wdWJsaXNoZXJEb21haW4gPyBzdWJzY3JpcHRpb24ucHVibGlzaGVyRG9tYWluIDogdmlld0lkO1xuICAgICAgICAgICAgICAgICAgICBpZihsb2cgPT09IHRydWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiVklFVyBDSEVDSzogXCIgKyBkb21haW4gKyBcIiA9PT8gXCIgKyB2aWV3SWQgKyBcIiAtIFwiICsgKGRvbWFpbiA9PT0gdmlld0lkIHx8IFNZU1RFTV9FVkVOVCA9PT0gdmlld0lkKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIlBVQkxJU0hFUiBDSEVDSzogXCIgKyBzdWJzY3JpcHRpb24uZ2V0UHVibGlzaGVyKCkgKyBcIiA6IFwiICsgc291cmNlSWQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJFVkVOVCBUWVBFIENIRUNLOiBcIiArIHN1YnNjcmlwdGlvbi5nZXRFdmVudFR5cGUoKSArIFwiIDogXCIgKyBldmVudFR5cGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJGVUxMIENIRUNLOiBcIiArICgoc3Vic2NyaXB0aW9uLmdldFZpZXdJZCgpID09PSB2aWV3SWQgfHwgU1lTVEVNX0VWRU5UID09PSB2aWV3SWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgc3Vic2NyaXB0aW9uLmdldFB1Ymxpc2hlcigpID09PSBzb3VyY2VJZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmIHN1YnNjcmlwdGlvbi5nZXRFdmVudFR5cGUoKSA9PT0gZXZlbnRUeXBlKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIlxcblwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGlmICgoZG9tYWluID09PSB2aWV3SWQgfHwgU1lTVEVNX0VWRU5UID09PSB2aWV3SWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAmJiBzdWJzY3JpcHRpb24uZ2V0UHVibGlzaGVyKCkgPT09IHNvdXJjZUlkXG4gICAgICAgICAgICAgICAgICAgICAgICAmJiBzdWJzY3JpcHRpb24uZ2V0RXZlbnRUeXBlKCkgPT09IGV2ZW50VHlwZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwoc3Vic2NyaXB0aW9uLmdldEFjdGlvbnMoKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHN1YnNjcmlwdGlvbi5nZXRBY3Rpb25zKCkubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGFjdGlvbiA9IHN1YnNjcmlwdGlvbi5nZXRBY3Rpb25zKClbal07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdGlvbkhhbmRsZXJzLmludm9rZShhY3Rpb24sIGJlLCBzdWJzY3JpcHRpb24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIVV0aWxzLmlzTnVsbChzdWJzY3JpcHRpb24uZ2V0Q2FsbGJhY2soKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJzY3JpcHRpb24uZ2V0Q2FsbGJhY2soKShiZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0aGlzLnByb2Nlc3NTeXN0ZW1HZW5lcmF0ZWRTdWJzY3JpcHRpb25zKHNvdXJjZUlkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENsZWFycyBhbGwgZXZlbnQgc3Vic2NyaXB0aW9uc1xuICAgICAqXG4gICAgICovXG4gICAgY2xlYXJBbGxFdmVudExpc3RlbmVycygpIHtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnNwbGljZSgwLCB0aGlzLnN1YnNjcmlwdGlvbnMubGVuZ3RoKTtcbiAgICAgICAgdGhpcy5zeXN0ZW1HZW5lcmF0ZWRTdWJzY3JpcHRpb25zLnNwbGljZSgwLCB0aGlzLnN5c3RlbUdlbmVyYXRlZFN1YnNjcmlwdGlvbnMubGVuZ3RoKTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogQ2xlYXJzIGFsbCBldmVudCBzdWJzY3JpcHRpb25zIGZvciB0aGUgc3BlY2lmaWVkIHZpZXdcbiAgICAgKlxuICAgICAqIEBwYXJhbSB2aWV3SWQgdGhlIHZpZXdcbiAgICAgKi9cbiAgICBjbGVhckV2ZW50TGlzdGVuZXJzKHZpZXdJZCkge1xuICAgICAgICBsZXQgaW5kZXhlcyA9IFtdO1xuXG4gICAgICAgIGxldCBpbmRleDtcbiAgICAgICAgd2hpbGUgKChpbmRleCA9IHRoaXMuc3Vic2NyaXB0aW9ucy5maW5kSW5kZXgoKHMpID0+IHMudmlld0lkID09PSB2aWV3SWQpKSAhPT0gLTEpIHtcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFVdGlscy5pc051bGwodGhpcy5zeXN0ZW1HZW5lcmF0ZWRTdWJzY3JpcHRpb25zKSkge1xuICAgICAgICAgICAgd2hpbGUgKChpbmRleCA9IHRoaXMuc3lzdGVtR2VuZXJhdGVkU3Vic2NyaXB0aW9ucy5maW5kSW5kZXgoKHMpID0+IHMudmlld0lkID09PSB2aWV3SWQpKSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnN5c3RlbUdlbmVyYXRlZFN1YnNjcmlwdGlvbnMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBDbGVhcnMgYWxsIGV2ZW50IHN1YnNjcmlwdGlvbnMgZm9yIHRoZSBzcGVjaWZpZWQgdmlld1xuICAgICAqXG4gICAgICogQHBhcmFtIGNvbXBvbmVudCB0aGUgdmlld1xuICAgICAqL1xuICAgIGNsZWFyQ29tcG9uZW50RXZlbnRMaXN0ZW5lcnMoY29tcG9uZW50KSB7XG4gICAgICAgIGlmKGNvbXBvbmVudCAmJiBjb21wb25lbnQuYXBpICYmIGNvbXBvbmVudC5hcGkuaWQpIHtcbiAgICAgICAgICAgIGxldCBpbmRleDtcbiAgICAgICAgICAgIHdoaWxlICgoaW5kZXggPSB0aGlzLnN1YnNjcmlwdGlvbnMuZmluZEluZGV4KChzKSA9PiBzLnN1YnNjcmliZXIgPT09IGNvbXBvbmVudC5hcGkuaWQpKSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwodGhpcy5zeXN0ZW1HZW5lcmF0ZWRTdWJzY3JpcHRpb25zKSkge1xuICAgICAgICAgICAgICAgIHdoaWxlICgoaW5kZXggPSB0aGlzLnN5c3RlbUdlbmVyYXRlZFN1YnNjcmlwdGlvbnMuZmluZEluZGV4KChzKSA9PiBzLnN1YnNjcmliZXIgPT09IGNvbXBvbmVudC5hcGkuaWQpKSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zeXN0ZW1HZW5lcmF0ZWRTdWJzY3JpcHRpb25zLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqXG4gICAgICogQHBhcmFtIGNvbXBvbmVudElkXG4gICAgICpcbiAgICAgKi9cbiAgICBwcm9jZXNzU3lzdGVtR2VuZXJhdGVkU3Vic2NyaXB0aW9ucyA9IChjb21wb25lbnRJZCkgPT4ge1xuICAgICAgICBsZXQgY29tcG9uZW50ID0gYXBwbGljYXRpb25NYW5hZ2VyLnJlc29sdmVDb21wb25lbnRBcGkoY29tcG9uZW50SWQpO1xuXG4gICAgICAgIGlmICghVXRpbHMuaXNOdWxsKGNvbXBvbmVudCkpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3Qgc3Vic2NyaXB0aW9uIG9mIHRoaXMuc3lzdGVtR2VuZXJhdGVkU3Vic2NyaXB0aW9ucykge1xuICAgICAgICAgICAgICAgIGlmIChzdWJzY3JpcHRpb24ucHVibGlzaGVyID09PSBjb21wb25lbnRJZCkge1xuICAgICAgICAgICAgICAgICAgICBsZXQgY29tcG9uZW50ID0gYXBwbGljYXRpb25NYW5hZ2VyLnJlc29sdmVDb21wb25lbnRBcGkoc3Vic2NyaXB0aW9uLnN1YnNjcmliZXIpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbChjb21wb25lbnQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbChzdWJzY3JpcHRpb24uY2FsbGJhY2spKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Vic2NyaXB0aW9uLmNhbGxiYWNrKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFVdGlscy5pc051bGwoY29tcG9uZW50LnJlZnJlc2gpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50LnJlZnJlc2goKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH07XG5cbiAgICAvKipcbiAgICAgKlxuICAgICAqIEBwYXJhbSB2aWV3SWRcbiAgICAgKiBAcGFyYW0gcHVibGlzaGVyXG4gICAgICogQHBhcmFtIHN1YnNjcmliZXJcbiAgICAgKiBAcGFyYW0gY2FsbGJhY2tcbiAgICAgKlxuICAgICAqL1xuICAgIGFkZFN5c3RlbUdlbmVyYXRlZFN1YnNjcmlwdGlvbiA9ICh2aWV3SWQsIHB1Ymxpc2hlciwgc3Vic2NyaWJlciwgY2FsbGJhY2spID0+IHtcbiAgICAgICAgbGV0IGZvdW5kID0gZmFsc2U7XG5cbiAgICAgICAgZm9yIChjb25zdCBzeXN0ZW1HZW5lcmF0ZWRTdWJzY3JpcHRpb24gb2YgdGhpcy5zeXN0ZW1HZW5lcmF0ZWRTdWJzY3JpcHRpb25zKSB7XG4gICAgICAgICAgICBpZiAocHVibGlzaGVyID09PSBzeXN0ZW1HZW5lcmF0ZWRTdWJzY3JpcHRpb24ucHVibGlzaGVyXG4gICAgICAgICAgICAgICAgJiYgc3Vic2NyaWJlciA9PT0gc3lzdGVtR2VuZXJhdGVkU3Vic2NyaXB0aW9uLnN1YnNjcmliZXJcbiAgICAgICAgICAgICAgICAmJiB2aWV3SWQgPT09IHN5c3RlbUdlbmVyYXRlZFN1YnNjcmlwdGlvbi52aWV3SWQpIHtcbiAgICAgICAgICAgICAgICBmb3VuZCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWZvdW5kKSB7XG4gICAgICAgICAgICBsZXQgc3Vic2NyaXB0aW9uID0ge307XG4gICAgICAgICAgICBzdWJzY3JpcHRpb24ucHVibGlzaGVyID0gcHVibGlzaGVyO1xuICAgICAgICAgICAgc3Vic2NyaXB0aW9uLnN1YnNjcmliZXIgPSBzdWJzY3JpYmVyO1xuICAgICAgICAgICAgc3Vic2NyaXB0aW9uLmNhbGxiYWNrID0gY2FsbGJhY2s7XG4gICAgICAgICAgICBzdWJzY3JpcHRpb24udmlld0lkID0gdmlld0lkO1xuXG4gICAgICAgICAgICB0aGlzLnN5c3RlbUdlbmVyYXRlZFN1YnNjcmlwdGlvbnMucHVzaChzdWJzY3JpcHRpb24pO1xuICAgICAgICB9XG4gICAgfTtcbn1cblxuY29uc3QgaW5zdGFuY2UgPSBuZXcgT2JzZXJ2YWJsZSgpO1xuT2JqZWN0LmZyZWV6ZShpbnN0YW5jZSk7XG5cbmV4cG9ydCBkZWZhdWx0IGluc3RhbmNlO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFJQSxJQUFBQSxlQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxNQUFBLEdBQUFGLHNC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
|
|
@@ -41,7 +41,9 @@ class RouteActionHandler {
|
|
|
41
41
|
if ('@#{history.back}' === path || '$history.back' === path) {
|
|
42
42
|
let historyElement = _ApplicationManager.default.getPreviousHistoryElement(isWindow ? 'window' : 'main');
|
|
43
43
|
if (historyElement === null) {
|
|
44
|
-
console.
|
|
44
|
+
console.warn('Cannot go back in history. No history element found in stack. Loading dashboard');
|
|
45
|
+
_ApplicationManager.default.closeAllViews(true);
|
|
46
|
+
_ApplicationManager.default.navigate('/view/dashboard');
|
|
45
47
|
return;
|
|
46
48
|
}
|
|
47
49
|
path = historyElement.path;
|
|
@@ -167,4 +169,4 @@ class RouteActionHandler {
|
|
|
167
169
|
const instance = new RouteActionHandler();
|
|
168
170
|
Object.freeze(instance);
|
|
169
171
|
var _default = exports.default = instance;
|
|
170
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9SZXN0VXRpbHMiLCJfQXBwbGljYXRpb25NYW5hZ2VyIiwiX1V0aWxzIiwiX0R5bmFtaWNKUyIsIl9PYnNlcnZhYmxlIiwiX0V2ZW50VHlwZSIsIl9FdmVudCIsImUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsImxvY2F0aW9uIiwid2luZG93IiwicHJvdG9jb2wiLCJob3N0bmFtZSIsIlJvdXRlQWN0aW9uSGFuZGxlciIsImNvbnN0cnVjdG9yIiwiaW5zdGFuY2UiLCJleGVjdXRlIiwiYWN0aW9uQ29uZmlnIiwiZXZlbnQiLCJjb21wb25lbnQiLCJjdXJyZW50Vmlld0lkIiwiYXBwbGljYXRpb25NYW5hZ2VyIiwiZW5hYmxlRm9ybU1hcmtlcnMiLCJmb3J3YXJkIiwicGF0aCIsImlzSGlzdG9yeSIsImlzUGFyZW50IiwiVXRpbHMiLCJpc051bGwiLCJwYXJlbnQiLCJldmFsdWF0ZUJvb2xlYW5FeHByZXNzaW9uIiwiaWQiLCJpc1BvcHVwIiwicG9wVXAiLCJpc1dpbmRvdyIsInBhdGhFdmFsdWF0b3IiLCJkeW5hbWljSlMiLCJleGVjdXRlU2NyaXB0T2JqZWN0Iiwic291cmNlIiwiaXNFeHByZXNzaW9uIiwicmVzb2x2ZUV4cHJlc3Npb25WYWx1ZSIsImRhdGEiLCJoaXN0b3J5RWxlbWVudCIsImdldFByZXZpb3VzSGlzdG9yeUVsZW1lbnQiLCJjb25zb2xlIiwiZXJyb3IiLCJwYXJhbWV0ZXJWYWx1ZXMiLCJwYXJhbWV0ZXJzIiwiaSIsImxlbmd0aCIsInBhcmFtZXRlciIsInBhcmFtZXRlclZhbHVlIiwicmVzb2x2ZVBhcmFtZXRlclZhbHVlIiwidmFsaWRhdG9yIiwibnVsbGFibGUiLCJuYW1lIiwiSlNPTiIsInN0cmluZ2lmeSIsInBhcmFtIiwidmFsdWUiLCJpbnN0YW5jZVR5cGUiLCJwdXNoIiwiY3VycmVudEdyYXBoIiwiZ2V0Q3VycmVudEdyYXBoIiwibmF2aWdhdGUiLCJjb25maWciLCJyZW1vdmVMb2FkZWRHcmFwaCIsImlzUHVibGljVmlldyIsInN0YXJ0c1dpdGgiLCJ2aWV3RW5kcG9pbnQiLCJ1cmwiLCJnZXRDb250ZXh0Um9vdCIsImdldFVJQ29uZmlnUGF0aCIsInNlbmRSZXF1ZXN0IiwidHlwZSIsImN1cnJlbnRWaWV3IiwiZ2V0VG9wVmlldyIsInZpZXciLCJkZWZhdWx0TW9kZWwiLCJ1cGRhdGVNb2RlbCIsImdyYXBoSWQiLCJoYW5kbGUiLCJhcGkiLCJtb2RlbCIsImdldENoaWxkIiwidmFsdWVzIiwic2V0TW9kZWxWYWx1ZSIsImtleSIsImdldE1vZGVsVmFsdWUiLCJsb2FkZWQiLCJhZGRWaWV3IiwibSIsIm1hdGNoIiwib3BlbldpbmRvd1ZpZXciLCJvcGVuUG9wdXBWaWV3IiwibG9hZEdyYXBoIiwiT2JqZWN0IiwiZnJlZXplIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9ldmVudC9Sb3V0ZUFjdGlvbkhhbmRsZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7c2VuZFJlcXVlc3R9IGZyb20gJy4uL1Jlc3RVdGlscyc7XG5pbXBvcnQgYXBwbGljYXRpb25NYW5hZ2VyIGZyb20gJy4uL0FwcGxpY2F0aW9uTWFuYWdlcic7XG5pbXBvcnQgVXRpbHMgZnJvbSAnLi4vVXRpbHMnO1xuaW1wb3J0IGR5bmFtaWNKUyBmcm9tICcuLi9EeW5hbWljSlMnO1xuaW1wb3J0IGV2ZW50TWFuYWdlciBmcm9tICcuLi9ldmVudC9PYnNlcnZhYmxlJztcbmltcG9ydCBFdmVudFR5cGUgZnJvbSAnLi9FdmVudFR5cGUnO1xuaW1wb3J0IEV2ZW50IGZyb20gJy4vRXZlbnQnO1xuXG5jb25zdCBsb2NhdGlvbiA9IHdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbCArICcvLycgKyB3aW5kb3cubG9jYXRpb24uaG9zdG5hbWU7XG5cbmNsYXNzIFJvdXRlQWN0aW9uSGFuZGxlciB7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgaWYgKCFSb3V0ZUFjdGlvbkhhbmRsZXIuaW5zdGFuY2UpIHtcbiAgICAgICAgICAgIFJvdXRlQWN0aW9uSGFuZGxlci5pbnN0YW5jZSA9IHRoaXM7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gUm91dGVBY3Rpb25IYW5kbGVyLmluc3RhbmNlO1xuICAgIH1cblxuICAgIGV4ZWN1dGUoYWN0aW9uQ29uZmlnLCBldmVudCwgY29tcG9uZW50LCBjdXJyZW50Vmlld0lkKSB7XG5cbiAgICAgICAgLy8gVE9ETyA6IEltcGxlbWVudCB0aGlzIGZ1bGwgVVJMXG4gICAgICAgIC8vU3RyaW5nIHVybCA9IHdlYlVybCArIFwiP3ZlcnNpb249MS4wXCIgKyAodmlld1BhdGggIT0gbnVsbCA/IFwiJmlkPVwiICsgVVJMLmVuY29kZVF1ZXJ5U3RyaW5nKHZpZXdQYXRoKSA6IFwiXCIpXG4gICAgICAgIC8vICAgICsgKHZpZXdQYXRoUmVxdWVzdER0byAhPSBudWxsID8gXCImc2VydmljZVJlcXVlc3Q9XCIgKyBVUkwuZW5jb2RlUXVlcnlTdHJpbmcocmVxdWVzdER0b1dyaXRlci53cml0ZSh2aWV3UGF0aFJlcXVlc3REdG8pKSA6IFwiXCIpXG4gICAgICAgIC8vICAgICsgKHBvcnRhbEN1cnJlbnRPcmcgIT0gbnVsbCA/IFwiJnByb2ZpbGU9XCIgKyBwb3J0YWxDdXJyZW50T3JnIDogXCJcIik7XG5cbiAgICAgICAgYXBwbGljYXRpb25NYW5hZ2VyLmVuYWJsZUZvcm1NYXJrZXJzKGZhbHNlKTtcblxuICAgICAgICBsZXQgZm9yd2FyZCA9IHRydWU7XG4gICAgICAgIGxldCBwYXRoID0gbnVsbDtcbiAgICAgICAgbGV0IGlzSGlzdG9yeSA9IGZhbHNlO1xuICAgICAgICBsZXQgaXNQYXJlbnQgPSBVdGlscy5pc051bGwoYWN0aW9uQ29uZmlnLnBhcmVudCkgPyBmYWxzZSA6XG4gICAgICAgICAgICBVdGlscy5ldmFsdWF0ZUJvb2xlYW5FeHByZXNzaW9uKGFjdGlvbkNvbmZpZy5wYXJlbnQsIGNvbXBvbmVudD8uaWQsIGZhbHNlKTtcbiAgICAgICAgbGV0IGlzUG9wdXAgPSBVdGlscy5pc051bGwoYWN0aW9uQ29uZmlnLnBvcFVwKSA/IGZhbHNlIDogYWN0aW9uQ29uZmlnLnBvcFVwO1xuICAgICAgICBsZXQgaXNXaW5kb3cgPSBVdGlscy5pc051bGwoYWN0aW9uQ29uZmlnLndpbmRvdykgPyBmYWxzZSA6IGFjdGlvbkNvbmZpZy53aW5kb3c7XG5cbiAgICAgICAgaWYgKCFVdGlscy5pc051bGwoYWN0aW9uQ29uZmlnLnBhdGhFdmFsdWF0b3IpKSB7XG4gICAgICAgICAgICBwYXRoID0gZHluYW1pY0pTLmV4ZWN1dGVTY3JpcHRPYmplY3QoY3VycmVudFZpZXdJZCArICdWaWV3RXZhbHVhdG9yXycgKyBldmVudD8uc291cmNlLmlkLFxuICAgICAgICAgICAgICAgIGFjdGlvbkNvbmZpZy5wYXRoRXZhbHVhdG9yKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHBhdGggPSBhY3Rpb25Db25maWcucGF0aCAhPT0gJ0Aje2hpc3RvcnkuYmFja30nICYmIGFwcGxpY2F0aW9uTWFuYWdlci5pc0V4cHJlc3Npb24oYWN0aW9uQ29uZmlnLnBhdGgpID9cbiAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbk1hbmFnZXIucmVzb2x2ZUV4cHJlc3Npb25WYWx1ZShhY3Rpb25Db25maWcucGF0aCwgZXZlbnQ/LmRhdGEpIDogYWN0aW9uQ29uZmlnLnBhdGg7XG5cbiAgICAgICAgICAgIGlmICgnQCN7aGlzdG9yeS5iYWNrfScgPT09IHBhdGggfHwgJyRoaXN0b3J5LmJhY2snID09PSBwYXRoKSB7XG4gICAgICAgICAgICAgICAgbGV0IGhpc3RvcnlFbGVtZW50ID0gYXBwbGljYXRpb25NYW5hZ2VyLmdldFByZXZpb3VzSGlzdG9yeUVsZW1lbnQoaXNXaW5kb3cgPyAnd2luZG93JyA6ICdtYWluJyk7XG4gICAgICAgICAgICAgICAgaWYgKGhpc3RvcnlFbGVtZW50ID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0ludmFsaWQgcGF0aC4gQ2Fubm90IGdvIGJhY2sgaW4gaGlzdG9yeScpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcGF0aCA9IGhpc3RvcnlFbGVtZW50LnBhdGg7XG4gICAgICAgICAgICAgICAgaXNIaXN0b3J5ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBpc1BhcmVudCA9IGhpc3RvcnlFbGVtZW50LnBhcmVudDtcbiAgICAgICAgICAgICAgICBmb3J3YXJkID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgcGFyYW1ldGVyVmFsdWVzID0gW107XG4gICAgICAgIGlmICghVXRpbHMuaXNOdWxsKGFjdGlvbkNvbmZpZy5wYXJhbWV0ZXJzKSkge1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhY3Rpb25Db25maWcucGFyYW1ldGVycy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGxldCBwYXJhbWV0ZXIgPSBhY3Rpb25Db25maWcucGFyYW1ldGVyc1tpXTtcbiAgICAgICAgICAgICAgICBsZXQgcGFyYW1ldGVyVmFsdWUgPSBhcHBsaWNhdGlvbk1hbmFnZXIucmVzb2x2ZVBhcmFtZXRlclZhbHVlKHBhcmFtZXRlciwgZXZlbnQ/LmRhdGEpO1xuICAgICAgICAgICAgICAgIGxldCB2YWxpZGF0b3IgPSBwYXJhbWV0ZXIudmFsaWRhdG9yO1xuXG4gICAgICAgICAgICAgICAgaWYgKFV0aWxzLmlzTnVsbChwYXJhbWV0ZXJWYWx1ZSkgJiYgIVV0aWxzLmlzTnVsbCh2YWxpZGF0b3IpICYmXG4gICAgICAgICAgICAgICAgICAgIFV0aWxzLmV2YWx1YXRlQm9vbGVhbkV4cHJlc3Npb24odmFsaWRhdG9yLm51bGxhYmxlLCBwYXJhbWV0ZXIubmFtZSkgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ1JvdXRpbmcgdG8gcGF0aCAnICsgcGF0aCArICcsIGZhaWxlZC4gQSBudWxsIHZhbHVlIGZvciBhIE5PTi1OVUxMQUJMRSBwYXJhbWV0ZXIgd2FzIGZvdW5kIC0gJyArIEpTT04uc3RyaW5naWZ5KHBhcmFtZXRlcikpO1xuICAgICAgICAgICAgICAgICAgICAvLyBUT0RPIDogRGlzcGxheSB0aGUgY29uZmlndXJlZCBlcnJvciBtZXNzYWdlIGF0IHRoZSBjb3JyZWN0IGVycm9yIHBhbmVsXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBsZXQgcGFyYW0gPSB7fTtcbiAgICAgICAgICAgICAgICBwYXJhbS5uYW1lID0gcGFyYW1ldGVyLm5hbWU7XG4gICAgICAgICAgICAgICAgcGFyYW0udmFsdWUgPSBVdGlscy5pc051bGwocGFyYW1ldGVyVmFsdWUpID8gbnVsbCA6XG4gICAgICAgICAgICAgICAgICAgIHBhcmFtZXRlclZhbHVlLmluc3RhbmNlVHlwZSA9PT0gJ1R5cGVkVmFsdWUnID8gcGFyYW1ldGVyVmFsdWUudmFsdWUgOiBwYXJhbWV0ZXJWYWx1ZTtcblxuICAgICAgICAgICAgICAgIHBhcmFtZXRlclZhbHVlcy5wdXNoKHBhcmFtKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBjdXJyZW50R3JhcGggPSBhcHBsaWNhdGlvbk1hbmFnZXIuZ2V0Q3VycmVudEdyYXBoKGlzV2luZG93ID8gJ3dpbmRvdycgOiAnbWFpbicpO1xuICAgICAgICBpZiAoJ0Aje2hvbWV9JyA9PT0gcGF0aCkge1xuICAgICAgICAgICAgYXBwbGljYXRpb25NYW5hZ2VyLm5hdmlnYXRlKCcvdmlldy91bmxvYWQnKTtcbiAgICAgICAgICAgIGFwcGxpY2F0aW9uTWFuYWdlci5uYXZpZ2F0ZSgnL3ZpZXcvZGFzaGJvYXJkJylcbiAgICAgICAgfSBlbHNlIGlmIChpc0hpc3RvcnkgJiYgY3VycmVudEdyYXBoKSB7XG4gICAgICAgICAgICBpZiAoKGlzV2luZG93ICYmIGN1cnJlbnRHcmFwaC5jb25maWcuaXNXaW5kb3cpIHx8ICghaXNXaW5kb3cgJiYgIWN1cnJlbnRHcmFwaC5jb25maWcuaXNXaW5kb3cpKSB7XG4gICAgICAgICAgICAgICAgYXBwbGljYXRpb25NYW5hZ2VyLnJlbW92ZUxvYWRlZEdyYXBoKChpc1dpbmRvdyAmJiBjdXJyZW50R3JhcGguY29uZmlnLmlzV2luZG93KSA/ICd3aW5kb3cnIDogJ21haW4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIFByZS1hdXRoIGZsb3dzIChyZWdpc3RyYXRpb24gd2l6YXJkKSBsaXZlIHVuZGVyXG4gICAgICAgICAgICAvLyAvcG9ydGFsL3ZpZXdzL3JlZ2lzdHJhdGlvbi8qIGFuZCBtdXN0IGJlIGZldGNoZWQgdmlhIHRoZVxuICAgICAgICAgICAgLy8gcHVibGljIENEVUkgZW5kcG9pbnQgQU5EIHdpdGggbm8gQXV0aG9yaXphdGlvbiBoZWFkZXIuXG4gICAgICAgICAgICAvLyBTcHJpbmcgU2VjdXJpdHkncyBiZWFyZXItYXV0aCBmaWx0ZXIgdmFsaWRhdGVzICphbnkqXG4gICAgICAgICAgICAvLyBhdHRhY2hlZCB0b2tlbiAoZXZlbiBvbiBwZXJtaXRBbGwoKSBlbmRwb2ludHMpIOKAlCBzbyBhblxuICAgICAgICAgICAgLy8gZW1wdHkvc3RhbGUgdG9rZW4gZnJvbSBhbiB1bmF1dGhlbnRpY2F0ZWQgc2Vzc2lvbiByZXR1cm5zXG4gICAgICAgICAgICAvLyA0MDEgZnJvbSB0aGUgcHVibGljIGVuZHBvaW50LiBTa2lwcGluZyB0aGUgYXV0aCBoZWFkZXJcbiAgICAgICAgICAgIC8vIGhlcmUgbWlycm9ycyB0aGUgYm9vdHN0cmFwJ3Mgc2VuZFJlcXVlc3QoLi4uLCBzZWN1cmU9ZmFsc2UpLlxuICAgICAgICAgICAgY29uc3QgaXNQdWJsaWNWaWV3ID0gcGF0aCAmJiBwYXRoLnN0YXJ0c1dpdGgoJy9wb3J0YWwvdmlld3MvcmVnaXN0cmF0aW9uLycpO1xuICAgICAgICAgICAgY29uc3Qgdmlld0VuZHBvaW50ID0gaXNQdWJsaWNWaWV3ID8gJy92aWV3L3B1YmxpYy9nZXQnIDogJy92aWV3L2dldCc7XG4gICAgICAgICAgICBsZXQgdXJsID0gbG9jYXRpb24gKyBhcHBsaWNhdGlvbk1hbmFnZXIuZ2V0Q29udGV4dFJvb3QoKSArIGFwcGxpY2F0aW9uTWFuYWdlci5nZXRVSUNvbmZpZ1BhdGgoKSArIHZpZXdFbmRwb2ludCArICc/dmVyc2lvbj0xLjAmaWQ9JyArIHBhdGg7XG4gICAgICAgICAgICBzZW5kUmVxdWVzdCh1cmwsXG4gICAgICAgICAgICAgICAgKGRhdGEpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgLy8gc2VuZFJlcXVlc3QgYXV0by1kZWNvZGVzIHRoZSB7X2NkdWlfen0gd2lyZSB3cmFwIGZvclxuICAgICAgICAgICAgICAgICAgICAvLyAvdWkvYXBpL3YqLyBVUkxzIOKAlCBkYXRhIGhlcmUgaXMgdGhlIHJhdyBDRFVJIGFzc2V0LlxuICAgICAgICAgICAgICAgICAgICBpZiAoaXNQYXJlbnQgJiYgY3VycmVudEdyYXBoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoKGlzV2luZG93ICYmIGN1cnJlbnRHcmFwaC5jb25maWcuaXNXaW5kb3cpIHx8ICghaXNXaW5kb3cgJiYgIWN1cnJlbnRHcmFwaC5jb25maWcuaXNXaW5kb3cpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25NYW5hZ2VyLnJlbW92ZUxvYWRlZEdyYXBoKChpc1dpbmRvdyAmJiBjdXJyZW50R3JhcGguY29uZmlnLmlzV2luZG93KSA/ICd3aW5kb3cnIDogJ21haW4nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGlmIChkYXRhLnR5cGUgPT09ICd2aWV3Jykge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGN1cnJlbnRWaWV3ID0gYXBwbGljYXRpb25NYW5hZ2VyLmdldFRvcFZpZXcoaXNXaW5kb3cgPyAnd2luZG93JyA6ICdtYWluJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdmlldyA9IHt9O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRlZmF1bHRNb2RlbCA9IHt9O1xuICAgICAgICAgICAgICAgICAgICAgICAgVXRpbHMudXBkYXRlTW9kZWwocGFyYW1ldGVyVmFsdWVzLCBkZWZhdWx0TW9kZWwpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdmlldy5jb25maWcgPSBkYXRhO1xuICAgICAgICAgICAgICAgICAgICAgICAgdmlldy5wYXJhbWV0ZXJzID0gcGFyYW1ldGVyVmFsdWVzO1xuICAgICAgICAgICAgICAgICAgICAgICAgdmlldy5wYXJlbnQgPSBpc1BhcmVudDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZpZXcuZ3JhcGhJZCA9IGFjdGlvbkNvbmZpZy5ncmFwaElkO1xuICAgICAgICAgICAgICAgICAgICAgICAgdmlldy5oYW5kbGUgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBpOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldCBpZCgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBkYXRhLmlkO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXQgbW9kZWwoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZGVmYXVsdE1vZGVsO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRDaGlsZDogKGlkKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlTW9kZWw6ICh2YWx1ZXMpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFV0aWxzLnVwZGF0ZU1vZGVsKHZhbHVlcywgZGVmYXVsdE1vZGVsKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0TW9kZWxWYWx1ZTogKGtleSwgdmFsdWUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZGVmYXVsdE1vZGVsLmtleSA9IHZhbHVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRNb2RlbFZhbHVlOiAoa2V5KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5kZWZhdWx0TW9kZWxba2V5XTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGVkOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbk1hbmFnZXIuYWRkVmlldyh2aWV3LCBwYXRoLCBmb3J3YXJkLCBhY3Rpb25Db25maWcucG9wVXAgPyAncG9wdXAnIDogaXNXaW5kb3cgPyAnd2luZG93JyA6ICdtYWluJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBOb25lLWV4aXN0aW5nIHJvdXRlIHRvIGVuc3VyZSB0aGF0IHRoZSBjdXJyZW50IHZpZXcgdW5sb2Fkc1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFV0aWxzLmlzTnVsbChhY3Rpb25Db25maWcucG9wVXApIHx8IGFjdGlvbkNvbmZpZy5wb3BVcCA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBXaW5kb3dzIGRvIG5vdCBnbyB0byB0aGUgT3V0bGV0IGluIHRoZSB2aWV3cG9ydC4gVGhleSBnZXQgcmVuZGVyZWQgaW50byB0aGUgd2luZG93IHZpZXdwb3J0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFpc1dpbmRvdykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2FwcGxpY2F0aW9uTWFuYWdlci5uYXZpZ2F0ZSgnL3ZpZXcvdW5sb2FkJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFJlZ2lzdHJhdGlvbiB3aXphcmQgbm9kZXMgbXVzdCBzdGF5IGluc2lkZSB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVnaXN0ZXItcG9ydGFsIHJvdXRlIHRyZWUg4oCUIG5hdmlnYXRpbmcgdG9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gL3ZpZXcvPGlkPiBtb3VudHMgdGhlIGF1dGhlbnRpY2F0ZWQgYXBwIHNoZWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIChJbnRlcmFjdGlvblBvcnRhbEFwcEhvbWUpIHdoaWNoIGZpcmVzIHVzZXItZmluZCArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNldHVwL2RlZmF1bHQgYW5kIGJyZWFrcyB0aGUgcHJlLWF1dGggVVguIEtlZXBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlIHBhdGggdW5kZXIgL3JlZ2lzdGVyLzx0eXBlPi88aWQ+IGluc3RlYWQuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc1B1YmxpY1ZpZXcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG0gPSBwYXRoLm1hdGNoKC9eXFwvcG9ydGFsXFwvdmlld3NcXC9yZWdpc3RyYXRpb25cXC8oW14vXSspXFwvLyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0eXBlID0gKG0gJiYgbVsxXSkgfHwgJ3ZlbmRvcic7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbk1hbmFnZXIubmF2aWdhdGUoJy9yZWdpc3Rlci8nICsgdHlwZSArICcvJyArIGRhdGEuaWQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25NYW5hZ2VyLm5hdmlnYXRlKCcvdmlldy8nICsgZGF0YS5pZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbk1hbmFnZXIub3BlbldpbmRvd1ZpZXcodmlldyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbk1hbmFnZXIub3BlblBvcHVwVmlldyh2aWV3KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChkYXRhLnR5cGUgPT09ICdncmFwaCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEuaXNXaW5kb3cgPSBpc1dpbmRvdztcbiAgICAgICAgICAgICAgICAgICAgICAgIGFwcGxpY2F0aW9uTWFuYWdlci5sb2FkR3JhcGgoaXNQYXJlbnQsIGRhdGEsIHBhcmFtZXRlclZhbHVlcywgKGlzUG9wdXAgPyAncG9wdXAnIDogaXNXaW5kb3cgPyAnd2luZG93JyA6ICdtYWluJykpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSwgKGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihlKTtcbiAgICAgICAgICAgICAgICB9LCAhaXNQdWJsaWNWaWV3LCBmYWxzZSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmNvbnN0IGluc3RhbmNlID0gbmV3IFJvdXRlQWN0aW9uSGFuZGxlcigpO1xuT2JqZWN0LmZyZWV6ZShpbnN0YW5jZSk7XG5cbmV4cG9ydCBkZWZhdWx0IGluc3RhbmNlO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxVQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxtQkFBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUcsTUFBQSxHQUFBSixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUksVUFBQSxHQUFBTCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUssV0FBQSxHQUFBTixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQU0sVUFBQSxHQUFBUCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQU8sTUFBQSxHQUFBUixzQkFBQSxDQUFBQyxPQUFBO0FBQTRCLFNBQUFELHVCQUFBUyxDQUFBLFdBQUFBLENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFBLEdBQUFELENBQUEsS0FBQUUsT0FBQSxFQUFBRixDQUFBO0FBRTVCLE1BQU1HLFFBQVEsR0FBR0MsTUFBTSxDQUFDRCxRQUFRLENBQUNFLFFBQVEsR0FBRyxJQUFJLEdBQUdELE1BQU0sQ0FBQ0QsUUFBUSxDQUFDRyxRQUFRO0FBRTNFLE1BQU1DLGtCQUFrQixDQUFDO0VBRXJCQyxXQUFXQSxDQUFBLEVBQUc7SUFDVixJQUFJLENBQUNELGtCQUFrQixDQUFDRSxRQUFRLEVBQUU7TUFDOUJGLGtCQUFrQixDQUFDRSxRQUFRLEdBQUcsSUFBSTtJQUN0QztJQUVBLE9BQU9GLGtCQUFrQixDQUFDRSxRQUFRO0VBQ3RDO0VBRUFDLE9BQU9BLENBQUNDLFlBQVksRUFBRUMsS0FBSyxFQUFFQyxTQUFTLEVBQUVDLGFBQWEsRUFBRTtJQUVuRDtJQUNBO0lBQ0E7SUFDQTs7SUFFQUMsMkJBQWtCLENBQUNDLGlCQUFpQixDQUFDLEtBQUssQ0FBQztJQUUzQyxJQUFJQyxPQUFPLEdBQUcsSUFBSTtJQUNsQixJQUFJQyxJQUFJLEdBQUcsSUFBSTtJQUNmLElBQUlDLFNBQVMsR0FBRyxLQUFLO0lBQ3JCLElBQUlDLFFBQVEsR0FBR0MsY0FBSyxDQUFDQyxNQUFNLENBQUNYLFlBQVksQ0FBQ1ksTUFBTSxDQUFDLEdBQUcsS0FBSyxHQUNwREYsY0FBSyxDQUFDRyx5QkFBeUIsQ0FBQ2IsWUFBWSxDQUFDWSxNQUFNLEVBQUVWLFNBQVMsYUFBVEEsU0FBUyx1QkFBVEEsU0FBUyxDQUFFWSxFQUFFLEVBQUUsS0FBSyxDQUFDO0lBQzlFLElBQUlDLE9BQU8sR0FBR0wsY0FBSyxDQUFDQyxNQUFNLENBQUNYLFlBQVksQ0FBQ2dCLEtBQUssQ0FBQyxHQUFHLEtBQUssR0FBR2hCLFlBQVksQ0FBQ2dCLEtBQUs7SUFDM0UsSUFBSUMsUUFBUSxHQUFHUCxjQUFLLENBQUNDLE1BQU0sQ0FBQ1gsWUFBWSxDQUFDUCxNQUFNLENBQUMsR0FBRyxLQUFLLEdBQUdPLFlBQVksQ0FBQ1AsTUFBTTtJQUU5RSxJQUFJLENBQUNpQixjQUFLLENBQUNDLE1BQU0sQ0FBQ1gsWUFBWSxDQUFDa0IsYUFBYSxDQUFDLEVBQUU7TUFDM0NYLElBQUksR0FBR1ksa0JBQVMsQ0FBQ0MsbUJBQW1CLENBQUNqQixhQUFhLEdBQUcsZ0JBQWdCLElBQUdGLEtBQUssYUFBTEEsS0FBSyx1QkFBTEEsS0FBSyxDQUFFb0IsTUFBTSxDQUFDUCxFQUFFLEdBQ3BGZCxZQUFZLENBQUNrQixhQUFhLENBQUM7SUFDbkMsQ0FBQyxNQUFNO01BQ0hYLElBQUksR0FBR1AsWUFBWSxDQUFDTyxJQUFJLEtBQUssa0JBQWtCLElBQUlILDJCQUFrQixDQUFDa0IsWUFBWSxDQUFDdEIsWUFBWSxDQUFDTyxJQUFJLENBQUMsR0FDakdILDJCQUFrQixDQUFDbUIsc0JBQXNCLENBQUN2QixZQUFZLENBQUNPLElBQUksRUFBRU4sS0FBSyxhQUFMQSxLQUFLLHVCQUFMQSxLQUFLLENBQUV1QixJQUFJLENBQUMsR0FBR3hCLFlBQVksQ0FBQ08sSUFBSTtNQUVqRyxJQUFJLGtCQUFrQixLQUFLQSxJQUFJLElBQUksZUFBZSxLQUFLQSxJQUFJLEVBQUU7UUFDekQsSUFBSWtCLGNBQWMsR0FBR3JCLDJCQUFrQixDQUFDc0IseUJBQXlCLENBQUNULFFBQVEsR0FBRyxRQUFRLEdBQUcsTUFBTSxDQUFDO1FBQy9GLElBQUlRLGNBQWMsS0FBSyxJQUFJLEVBQUU7VUFDekJFLE9BQU8sQ0FBQ0MsS0FBSyxDQUFDLHlDQUF5QyxDQUFDO1VBQ3hEO1FBQ0o7UUFFQXJCLElBQUksR0FBR2tCLGNBQWMsQ0FBQ2xCLElBQUk7UUFDMUJDLFNBQVMsR0FBRyxJQUFJO1FBQ2hCQyxRQUFRLEdBQUdnQixjQUFjLENBQUNiLE1BQU07UUFDaENOLE9BQU8sR0FBRyxLQUFLO01BQ25CO0lBQ0o7SUFFQSxJQUFJdUIsZUFBZSxHQUFHLEVBQUU7SUFDeEIsSUFBSSxDQUFDbkIsY0FBSyxDQUFDQyxNQUFNLENBQUNYLFlBQVksQ0FBQzhCLFVBQVUsQ0FBQyxFQUFFO01BQ3hDLEtBQUssSUFBSUMsQ0FBQyxHQUFHLENBQUMsRUFBRUEsQ0FBQyxHQUFHL0IsWUFBWSxDQUFDOEIsVUFBVSxDQUFDRSxNQUFNLEVBQUVELENBQUMsRUFBRSxFQUFFO1FBQ3JELElBQUlFLFNBQVMsR0FBR2pDLFlBQVksQ0FBQzhCLFVBQVUsQ0FBQ0MsQ0FBQyxDQUFDO1FBQzFDLElBQUlHLGNBQWMsR0FBRzlCLDJCQUFrQixDQUFDK0IscUJBQXFCLENBQUNGLFNBQVMsRUFBRWhDLEtBQUssYUFBTEEsS0FBSyx1QkFBTEEsS0FBSyxDQUFFdUIsSUFBSSxDQUFDO1FBQ3JGLElBQUlZLFNBQVMsR0FBR0gsU0FBUyxDQUFDRyxTQUFTO1FBRW5DLElBQUkxQixjQUFLLENBQUNDLE1BQU0sQ0FBQ3VCLGNBQWMsQ0FBQyxJQUFJLENBQUN4QixjQUFLLENBQUNDLE1BQU0sQ0FBQ3lCLFNBQVMsQ0FBQyxJQUN4RDFCLGNBQUssQ0FBQ0cseUJBQXlCLENBQUN1QixTQUFTLENBQUNDLFFBQVEsRUFBRUosU0FBUyxDQUFDSyxJQUFJLENBQUMsS0FBSyxLQUFLLEVBQUU7VUFDL0VYLE9BQU8sQ0FBQ0MsS0FBSyxDQUFDLGtCQUFrQixHQUFHckIsSUFBSSxHQUFHLGtFQUFrRSxHQUFHZ0MsSUFBSSxDQUFDQyxTQUFTLENBQUNQLFNBQVMsQ0FBQyxDQUFDO1VBQ3pJO1VBQ0E7UUFDSjtRQUVBLElBQUlRLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDZEEsS0FBSyxDQUFDSCxJQUFJLEdBQUdMLFNBQVMsQ0FBQ0ssSUFBSTtRQUMzQkcsS0FBSyxDQUFDQyxLQUFLLEdBQUdoQyxjQUFLLENBQUNDLE1BQU0sQ0FBQ3VCLGNBQWMsQ0FBQyxHQUFHLElBQUksR0FDN0NBLGNBQWMsQ0FBQ1MsWUFBWSxLQUFLLFlBQVksR0FBR1QsY0FBYyxDQUFDUSxLQUFLLEdBQUdSLGNBQWM7UUFFeEZMLGVBQWUsQ0FBQ2UsSUFBSSxDQUFDSCxLQUFLLENBQUM7TUFDL0I7SUFDSjtJQUVBLElBQUlJLFlBQVksR0FBR3pDLDJCQUFrQixDQUFDMEMsZUFBZSxDQUFDN0IsUUFBUSxHQUFHLFFBQVEsR0FBRyxNQUFNLENBQUM7SUFDbkYsSUFBSSxVQUFVLEtBQUtWLElBQUksRUFBRTtNQUNyQkgsMkJBQWtCLENBQUMyQyxRQUFRLENBQUMsY0FBYyxDQUFDO01BQzNDM0MsMkJBQWtCLENBQUMyQyxRQUFRLENBQUMsaUJBQWlCLENBQUM7SUFDbEQsQ0FBQyxNQUFNLElBQUl2QyxTQUFTLElBQUlxQyxZQUFZLEVBQUU7TUFDbEMsSUFBSzVCLFFBQVEsSUFBSTRCLFlBQVksQ0FBQ0csTUFBTSxDQUFDL0IsUUFBUSxJQUFNLENBQUNBLFFBQVEsSUFBSSxDQUFDNEIsWUFBWSxDQUFDRyxNQUFNLENBQUMvQixRQUFTLEVBQUU7UUFDNUZiLDJCQUFrQixDQUFDNkMsaUJBQWlCLENBQUVoQyxRQUFRLElBQUk0QixZQUFZLENBQUNHLE1BQU0sQ0FBQy9CLFFBQVEsR0FBSSxRQUFRLEdBQUcsTUFBTSxDQUFDO01BQ3hHO0lBQ0osQ0FBQyxNQUFNO01BQ0g7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBLE1BQU1pQyxZQUFZLEdBQUczQyxJQUFJLElBQUlBLElBQUksQ0FBQzRDLFVBQVUsQ0FBQyw2QkFBNkIsQ0FBQztNQUMzRSxNQUFNQyxZQUFZLEdBQUdGLFlBQVksR0FBRyxrQkFBa0IsR0FBRyxXQUFXO01BQ3BFLElBQUlHLEdBQUcsR0FBRzdELFFBQVEsR0FBR1ksMkJBQWtCLENBQUNrRCxjQUFjLENBQUMsQ0FBQyxHQUFHbEQsMkJBQWtCLENBQUNtRCxlQUFlLENBQUMsQ0FBQyxHQUFHSCxZQUFZLEdBQUcsa0JBQWtCLEdBQUc3QyxJQUFJO01BQzFJLElBQUFpRCxzQkFBVyxFQUFDSCxHQUFHLEVBQ1Y3QixJQUFJLElBQUs7UUFDTjtRQUNBO1FBQ0EsSUFBSWYsUUFBUSxJQUFJb0MsWUFBWSxFQUFFO1VBQzFCLElBQUs1QixRQUFRLElBQUk0QixZQUFZLENBQUNHLE1BQU0sQ0FBQy9CLFFBQVEsSUFBTSxDQUFDQSxRQUFRLElBQUksQ0FBQzRCLFlBQVksQ0FBQ0csTUFBTSxDQUFDL0IsUUFBUyxFQUFFO1lBQzVGYiwyQkFBa0IsQ0FBQzZDLGlCQUFpQixDQUFFaEMsUUFBUSxJQUFJNEIsWUFBWSxDQUFDRyxNQUFNLENBQUMvQixRQUFRLEdBQUksUUFBUSxHQUFHLE1BQU0sQ0FBQztVQUN4RztRQUNKO1FBRUEsSUFBSU8sSUFBSSxDQUFDaUMsSUFBSSxLQUFLLE1BQU0sRUFBRTtVQUN0QixJQUFJQyxXQUFXLEdBQUd0RCwyQkFBa0IsQ0FBQ3VELFVBQVUsQ0FBQzFDLFFBQVEsR0FBRyxRQUFRLEdBQUcsTUFBTSxDQUFDO1VBQzdFLElBQUkyQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1VBQ2IsSUFBSUMsWUFBWSxHQUFHLENBQUMsQ0FBQztVQUNyQm5ELGNBQUssQ0FBQ29ELFdBQVcsQ0FBQ2pDLGVBQWUsRUFBRWdDLFlBQVksQ0FBQztVQUNoREQsSUFBSSxDQUFDWixNQUFNLEdBQUd4QixJQUFJO1VBQ2xCb0MsSUFBSSxDQUFDOUIsVUFBVSxHQUFHRCxlQUFlO1VBQ2pDK0IsSUFBSSxDQUFDaEQsTUFBTSxHQUFHSCxRQUFRO1VBQ3RCbUQsSUFBSSxDQUFDRyxPQUFPLEdBQUcvRCxZQUFZLENBQUMrRCxPQUFPO1VBQ25DSCxJQUFJLENBQUNJLE1BQU0sR0FBRztZQUNWQyxHQUFHLEVBQUU7Y0FDRCxJQUFJbkQsRUFBRUEsQ0FBQSxFQUFHO2dCQUNMLE9BQU9VLElBQUksQ0FBQ1YsRUFBRTtjQUNsQixDQUFDO2NBQ0QsSUFBSW9ELEtBQUtBLENBQUEsRUFBRztnQkFDUixPQUFPTCxZQUFZO2NBQ3ZCLENBQUM7Y0FDRE0sUUFBUSxFQUFHckQsRUFBRSxJQUFLO2dCQUNkLE9BQU8sSUFBSTtjQUNmLENBQUM7Y0FDRGdELFdBQVcsRUFBR00sTUFBTSxJQUFLO2dCQUNyQjFELGNBQUssQ0FBQ29ELFdBQVcsQ0FBQ00sTUFBTSxFQUFFUCxZQUFZLENBQUM7Y0FDM0MsQ0FBQztjQUNEUSxhQUFhLEVBQUVBLENBQUNDLEdBQUcsRUFBRTVCLEtBQUssS0FBSztnQkFDM0IsSUFBSSxDQUFDbUIsWUFBWSxDQUFDUyxHQUFHLEdBQUc1QixLQUFLO2NBQ2pDLENBQUM7Y0FDRDZCLGFBQWEsRUFBR0QsR0FBRyxJQUFLO2dCQUNwQixPQUFPLElBQUksQ0FBQ1QsWUFBWSxDQUFDUyxHQUFHLENBQUM7Y0FDakMsQ0FBQztjQUNERSxNQUFNLEVBQUVBLENBQUEsS0FBTTtnQkFDVixPQUFPLEtBQUs7Y0FDaEI7WUFDSjtVQUNKLENBQUM7VUFFRHBFLDJCQUFrQixDQUFDcUUsT0FBTyxDQUFDYixJQUFJLEVBQUVyRCxJQUFJLEVBQUVELE9BQU8sRUFBRU4sWUFBWSxDQUFDZ0IsS0FBSyxHQUFHLE9BQU8sR0FBR0MsUUFBUSxHQUFHLFFBQVEsR0FBRyxNQUFNLENBQUM7VUFDNUc7VUFDQSxJQUFJUCxjQUFLLENBQUNDLE1BQU0sQ0FBQ1gsWUFBWSxDQUFDZ0IsS0FBSyxDQUFDLElBQUloQixZQUFZLENBQUNnQixLQUFLLEtBQUssS0FBSyxFQUFFO1lBQ2xFO1lBQ0EsSUFBSSxDQUFDQyxRQUFRLEVBQUU7Y0FDWDtjQUNBO2NBQ0E7Y0FDQTtjQUNBO2NBQ0E7Y0FDQTtjQUNBLElBQUlpQyxZQUFZLEVBQUU7Z0JBQ2QsTUFBTXdCLENBQUMsR0FBR25FLElBQUksQ0FBQ29FLEtBQUssQ0FBQywyQ0FBMkMsQ0FBQztnQkFDakUsTUFBTWxCLElBQUksR0FBSWlCLENBQUMsSUFBSUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFLLFFBQVE7Z0JBQ3BDdEUsMkJBQWtCLENBQUMyQyxRQUFRLENBQUMsWUFBWSxHQUFHVSxJQUFJLEdBQUcsR0FBRyxHQUFHakMsSUFBSSxDQUFDVixFQUFFLENBQUM7Y0FDcEUsQ0FBQyxNQUFNO2dCQUNIViwyQkFBa0IsQ0FBQzJDLFFBQVEsQ0FBQyxRQUFRLEdBQUd2QixJQUFJLENBQUNWLEVBQUUsQ0FBQztjQUNuRDtZQUNKLENBQUMsTUFBTTtjQUNIViwyQkFBa0IsQ0FBQ3dFLGNBQWMsQ0FBQ2hCLElBQUksQ0FBQztZQUMzQztVQUNKLENBQUMsTUFBTTtZQUNIeEQsMkJBQWtCLENBQUN5RSxhQUFhLENBQUNqQixJQUFJLENBQUM7VUFDMUM7UUFDSixDQUFDLE1BQU0sSUFBSXBDLElBQUksQ0FBQ2lDLElBQUksS0FBSyxPQUFPLEVBQUU7VUFDOUJqQyxJQUFJLENBQUNQLFFBQVEsR0FBR0EsUUFBUTtVQUN4QmIsMkJBQWtCLENBQUMwRSxTQUFTLENBQUNyRSxRQUFRLEVBQUVlLElBQUksRUFBRUssZUFBZSxFQUFHZCxPQUFPLEdBQUcsT0FBTyxHQUFHRSxRQUFRLEdBQUcsUUFBUSxHQUFHLE1BQU8sQ0FBQztRQUNySDtNQUNKLENBQUMsRUFBRzVCLENBQUMsSUFBSztRQUNOc0MsT0FBTyxDQUFDQyxLQUFLLENBQUN2QyxDQUFDLENBQUM7TUFDcEIsQ0FBQyxFQUFFLENBQUM2RCxZQUFZLEVBQUUsS0FBSyxDQUFDO0lBQ2hDO0VBQ0o7QUFDSjtBQUVBLE1BQU1wRCxRQUFRLEdBQUcsSUFBSUYsa0JBQWtCLENBQUMsQ0FBQztBQUN6Q21GLE1BQU0sQ0FBQ0MsTUFBTSxDQUFDbEYsUUFBUSxDQUFDO0FBQUMsSUFBQW1GLFFBQUEsR0FBQUMsT0FBQSxDQUFBM0YsT0FBQSxHQUVUTyxRQUFRIiwiaWdub3JlTGlzdCI6W119
|
|
172
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9SZXN0VXRpbHMiLCJfQXBwbGljYXRpb25NYW5hZ2VyIiwiX1V0aWxzIiwiX0R5bmFtaWNKUyIsIl9PYnNlcnZhYmxlIiwiX0V2ZW50VHlwZSIsIl9FdmVudCIsImUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsImxvY2F0aW9uIiwid2luZG93IiwicHJvdG9jb2wiLCJob3N0bmFtZSIsIlJvdXRlQWN0aW9uSGFuZGxlciIsImNvbnN0cnVjdG9yIiwiaW5zdGFuY2UiLCJleGVjdXRlIiwiYWN0aW9uQ29uZmlnIiwiZXZlbnQiLCJjb21wb25lbnQiLCJjdXJyZW50Vmlld0lkIiwiYXBwbGljYXRpb25NYW5hZ2VyIiwiZW5hYmxlRm9ybU1hcmtlcnMiLCJmb3J3YXJkIiwicGF0aCIsImlzSGlzdG9yeSIsImlzUGFyZW50IiwiVXRpbHMiLCJpc051bGwiLCJwYXJlbnQiLCJldmFsdWF0ZUJvb2xlYW5FeHByZXNzaW9uIiwiaWQiLCJpc1BvcHVwIiwicG9wVXAiLCJpc1dpbmRvdyIsInBhdGhFdmFsdWF0b3IiLCJkeW5hbWljSlMiLCJleGVjdXRlU2NyaXB0T2JqZWN0Iiwic291cmNlIiwiaXNFeHByZXNzaW9uIiwicmVzb2x2ZUV4cHJlc3Npb25WYWx1ZSIsImRhdGEiLCJoaXN0b3J5RWxlbWVudCIsImdldFByZXZpb3VzSGlzdG9yeUVsZW1lbnQiLCJjb25zb2xlIiwid2FybiIsImNsb3NlQWxsVmlld3MiLCJuYXZpZ2F0ZSIsInBhcmFtZXRlclZhbHVlcyIsInBhcmFtZXRlcnMiLCJpIiwibGVuZ3RoIiwicGFyYW1ldGVyIiwicGFyYW1ldGVyVmFsdWUiLCJyZXNvbHZlUGFyYW1ldGVyVmFsdWUiLCJ2YWxpZGF0b3IiLCJudWxsYWJsZSIsIm5hbWUiLCJlcnJvciIsIkpTT04iLCJzdHJpbmdpZnkiLCJwYXJhbSIsInZhbHVlIiwiaW5zdGFuY2VUeXBlIiwicHVzaCIsImN1cnJlbnRHcmFwaCIsImdldEN1cnJlbnRHcmFwaCIsImNvbmZpZyIsInJlbW92ZUxvYWRlZEdyYXBoIiwiaXNQdWJsaWNWaWV3Iiwic3RhcnRzV2l0aCIsInZpZXdFbmRwb2ludCIsInVybCIsImdldENvbnRleHRSb290IiwiZ2V0VUlDb25maWdQYXRoIiwic2VuZFJlcXVlc3QiLCJ0eXBlIiwiY3VycmVudFZpZXciLCJnZXRUb3BWaWV3IiwidmlldyIsImRlZmF1bHRNb2RlbCIsInVwZGF0ZU1vZGVsIiwiZ3JhcGhJZCIsImhhbmRsZSIsImFwaSIsIm1vZGVsIiwiZ2V0Q2hpbGQiLCJ2YWx1ZXMiLCJzZXRNb2RlbFZhbHVlIiwia2V5IiwiZ2V0TW9kZWxWYWx1ZSIsImxvYWRlZCIsImFkZFZpZXciLCJtIiwibWF0Y2giLCJvcGVuV2luZG93VmlldyIsIm9wZW5Qb3B1cFZpZXciLCJsb2FkR3JhcGgiLCJPYmplY3QiLCJmcmVlemUiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL2V2ZW50L1JvdXRlQWN0aW9uSGFuZGxlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHtzZW5kUmVxdWVzdH0gZnJvbSAnLi4vUmVzdFV0aWxzJztcbmltcG9ydCBhcHBsaWNhdGlvbk1hbmFnZXIgZnJvbSAnLi4vQXBwbGljYXRpb25NYW5hZ2VyJztcbmltcG9ydCBVdGlscyBmcm9tICcuLi9VdGlscyc7XG5pbXBvcnQgZHluYW1pY0pTIGZyb20gJy4uL0R5bmFtaWNKUyc7XG5pbXBvcnQgZXZlbnRNYW5hZ2VyIGZyb20gJy4uL2V2ZW50L09ic2VydmFibGUnO1xuaW1wb3J0IEV2ZW50VHlwZSBmcm9tICcuL0V2ZW50VHlwZSc7XG5pbXBvcnQgRXZlbnQgZnJvbSAnLi9FdmVudCc7XG5cbmNvbnN0IGxvY2F0aW9uID0gd2luZG93LmxvY2F0aW9uLnByb3RvY29sICsgJy8vJyArIHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZTtcblxuY2xhc3MgUm91dGVBY3Rpb25IYW5kbGVyIHtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBpZiAoIVJvdXRlQWN0aW9uSGFuZGxlci5pbnN0YW5jZSkge1xuICAgICAgICAgICAgUm91dGVBY3Rpb25IYW5kbGVyLmluc3RhbmNlID0gdGhpcztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBSb3V0ZUFjdGlvbkhhbmRsZXIuaW5zdGFuY2U7XG4gICAgfVxuXG4gICAgZXhlY3V0ZShhY3Rpb25Db25maWcsIGV2ZW50LCBjb21wb25lbnQsIGN1cnJlbnRWaWV3SWQpIHtcblxuICAgICAgICAvLyBUT0RPIDogSW1wbGVtZW50IHRoaXMgZnVsbCBVUkxcbiAgICAgICAgLy9TdHJpbmcgdXJsID0gd2ViVXJsICsgXCI/dmVyc2lvbj0xLjBcIiArICh2aWV3UGF0aCAhPSBudWxsID8gXCImaWQ9XCIgKyBVUkwuZW5jb2RlUXVlcnlTdHJpbmcodmlld1BhdGgpIDogXCJcIilcbiAgICAgICAgLy8gICAgKyAodmlld1BhdGhSZXF1ZXN0RHRvICE9IG51bGwgPyBcIiZzZXJ2aWNlUmVxdWVzdD1cIiArIFVSTC5lbmNvZGVRdWVyeVN0cmluZyhyZXF1ZXN0RHRvV3JpdGVyLndyaXRlKHZpZXdQYXRoUmVxdWVzdER0bykpIDogXCJcIilcbiAgICAgICAgLy8gICAgKyAocG9ydGFsQ3VycmVudE9yZyAhPSBudWxsID8gXCImcHJvZmlsZT1cIiArIHBvcnRhbEN1cnJlbnRPcmcgOiBcIlwiKTtcblxuICAgICAgICBhcHBsaWNhdGlvbk1hbmFnZXIuZW5hYmxlRm9ybU1hcmtlcnMoZmFsc2UpO1xuXG4gICAgICAgIGxldCBmb3J3YXJkID0gdHJ1ZTtcbiAgICAgICAgbGV0IHBhdGggPSBudWxsO1xuICAgICAgICBsZXQgaXNIaXN0b3J5ID0gZmFsc2U7XG4gICAgICAgIGxldCBpc1BhcmVudCA9IFV0aWxzLmlzTnVsbChhY3Rpb25Db25maWcucGFyZW50KSA/IGZhbHNlIDpcbiAgICAgICAgICAgIFV0aWxzLmV2YWx1YXRlQm9vbGVhbkV4cHJlc3Npb24oYWN0aW9uQ29uZmlnLnBhcmVudCwgY29tcG9uZW50Py5pZCwgZmFsc2UpO1xuICAgICAgICBsZXQgaXNQb3B1cCA9IFV0aWxzLmlzTnVsbChhY3Rpb25Db25maWcucG9wVXApID8gZmFsc2UgOiBhY3Rpb25Db25maWcucG9wVXA7XG4gICAgICAgIGxldCBpc1dpbmRvdyA9IFV0aWxzLmlzTnVsbChhY3Rpb25Db25maWcud2luZG93KSA/IGZhbHNlIDogYWN0aW9uQ29uZmlnLndpbmRvdztcblxuICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbChhY3Rpb25Db25maWcucGF0aEV2YWx1YXRvcikpIHtcbiAgICAgICAgICAgIHBhdGggPSBkeW5hbWljSlMuZXhlY3V0ZVNjcmlwdE9iamVjdChjdXJyZW50Vmlld0lkICsgJ1ZpZXdFdmFsdWF0b3JfJyArIGV2ZW50Py5zb3VyY2UuaWQsXG4gICAgICAgICAgICAgICAgYWN0aW9uQ29uZmlnLnBhdGhFdmFsdWF0b3IpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcGF0aCA9IGFjdGlvbkNvbmZpZy5wYXRoICE9PSAnQCN7aGlzdG9yeS5iYWNrfScgJiYgYXBwbGljYXRpb25NYW5hZ2VyLmlzRXhwcmVzc2lvbihhY3Rpb25Db25maWcucGF0aCkgP1xuICAgICAgICAgICAgICAgIGFwcGxpY2F0aW9uTWFuYWdlci5yZXNvbHZlRXhwcmVzc2lvblZhbHVlKGFjdGlvbkNvbmZpZy5wYXRoLCBldmVudD8uZGF0YSkgOiBhY3Rpb25Db25maWcucGF0aDtcblxuICAgICAgICAgICAgaWYgKCdAI3toaXN0b3J5LmJhY2t9JyA9PT0gcGF0aCB8fCAnJGhpc3RvcnkuYmFjaycgPT09IHBhdGgpIHtcbiAgICAgICAgICAgICAgICBsZXQgaGlzdG9yeUVsZW1lbnQgPSBhcHBsaWNhdGlvbk1hbmFnZXIuZ2V0UHJldmlvdXNIaXN0b3J5RWxlbWVudChpc1dpbmRvdyA/ICd3aW5kb3cnIDogJ21haW4nKTtcbiAgICAgICAgICAgICAgICBpZiAoaGlzdG9yeUVsZW1lbnQgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKCdDYW5ub3QgZ28gYmFjayBpbiBoaXN0b3J5LiBObyBoaXN0b3J5IGVsZW1lbnQgZm91bmQgaW4gc3RhY2suIExvYWRpbmcgZGFzaGJvYXJkJyk7XG4gICAgICAgICAgICAgICAgICAgIGFwcGxpY2F0aW9uTWFuYWdlci5jbG9zZUFsbFZpZXdzKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbk1hbmFnZXIubmF2aWdhdGUoJy92aWV3L2Rhc2hib2FyZCcpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcGF0aCA9IGhpc3RvcnlFbGVtZW50LnBhdGg7XG4gICAgICAgICAgICAgICAgaXNIaXN0b3J5ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBpc1BhcmVudCA9IGhpc3RvcnlFbGVtZW50LnBhcmVudDtcbiAgICAgICAgICAgICAgICBmb3J3YXJkID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgcGFyYW1ldGVyVmFsdWVzID0gW107XG4gICAgICAgIGlmICghVXRpbHMuaXNOdWxsKGFjdGlvbkNvbmZpZy5wYXJhbWV0ZXJzKSkge1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhY3Rpb25Db25maWcucGFyYW1ldGVycy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGxldCBwYXJhbWV0ZXIgPSBhY3Rpb25Db25maWcucGFyYW1ldGVyc1tpXTtcbiAgICAgICAgICAgICAgICBsZXQgcGFyYW1ldGVyVmFsdWUgPSBhcHBsaWNhdGlvbk1hbmFnZXIucmVzb2x2ZVBhcmFtZXRlclZhbHVlKHBhcmFtZXRlciwgZXZlbnQ/LmRhdGEpO1xuICAgICAgICAgICAgICAgIGxldCB2YWxpZGF0b3IgPSBwYXJhbWV0ZXIudmFsaWRhdG9yO1xuXG4gICAgICAgICAgICAgICAgaWYgKFV0aWxzLmlzTnVsbChwYXJhbWV0ZXJWYWx1ZSkgJiYgIVV0aWxzLmlzTnVsbCh2YWxpZGF0b3IpICYmXG4gICAgICAgICAgICAgICAgICAgIFV0aWxzLmV2YWx1YXRlQm9vbGVhbkV4cHJlc3Npb24odmFsaWRhdG9yLm51bGxhYmxlLCBwYXJhbWV0ZXIubmFtZSkgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ1JvdXRpbmcgdG8gcGF0aCAnICsgcGF0aCArICcsIGZhaWxlZC4gQSBudWxsIHZhbHVlIGZvciBhIE5PTi1OVUxMQUJMRSBwYXJhbWV0ZXIgd2FzIGZvdW5kIC0gJyArIEpTT04uc3RyaW5naWZ5KHBhcmFtZXRlcikpO1xuICAgICAgICAgICAgICAgICAgICAvLyBUT0RPIDogRGlzcGxheSB0aGUgY29uZmlndXJlZCBlcnJvciBtZXNzYWdlIGF0IHRoZSBjb3JyZWN0IGVycm9yIHBhbmVsXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBsZXQgcGFyYW0gPSB7fTtcbiAgICAgICAgICAgICAgICBwYXJhbS5uYW1lID0gcGFyYW1ldGVyLm5hbWU7XG4gICAgICAgICAgICAgICAgcGFyYW0udmFsdWUgPSBVdGlscy5pc051bGwocGFyYW1ldGVyVmFsdWUpID8gbnVsbCA6XG4gICAgICAgICAgICAgICAgICAgIHBhcmFtZXRlclZhbHVlLmluc3RhbmNlVHlwZSA9PT0gJ1R5cGVkVmFsdWUnID8gcGFyYW1ldGVyVmFsdWUudmFsdWUgOiBwYXJhbWV0ZXJWYWx1ZTtcblxuICAgICAgICAgICAgICAgIHBhcmFtZXRlclZhbHVlcy5wdXNoKHBhcmFtKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBjdXJyZW50R3JhcGggPSBhcHBsaWNhdGlvbk1hbmFnZXIuZ2V0Q3VycmVudEdyYXBoKGlzV2luZG93ID8gJ3dpbmRvdycgOiAnbWFpbicpO1xuICAgICAgICBpZiAoJ0Aje2hvbWV9JyA9PT0gcGF0aCkge1xuICAgICAgICAgICAgYXBwbGljYXRpb25NYW5hZ2VyLm5hdmlnYXRlKCcvdmlldy91bmxvYWQnKTtcbiAgICAgICAgICAgIGFwcGxpY2F0aW9uTWFuYWdlci5uYXZpZ2F0ZSgnL3ZpZXcvZGFzaGJvYXJkJylcbiAgICAgICAgfSBlbHNlIGlmIChpc0hpc3RvcnkgJiYgY3VycmVudEdyYXBoKSB7XG4gICAgICAgICAgICBpZiAoKGlzV2luZG93ICYmIGN1cnJlbnRHcmFwaC5jb25maWcuaXNXaW5kb3cpIHx8ICghaXNXaW5kb3cgJiYgIWN1cnJlbnRHcmFwaC5jb25maWcuaXNXaW5kb3cpKSB7XG4gICAgICAgICAgICAgICAgYXBwbGljYXRpb25NYW5hZ2VyLnJlbW92ZUxvYWRlZEdyYXBoKChpc1dpbmRvdyAmJiBjdXJyZW50R3JhcGguY29uZmlnLmlzV2luZG93KSA/ICd3aW5kb3cnIDogJ21haW4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIFByZS1hdXRoIGZsb3dzIChyZWdpc3RyYXRpb24gd2l6YXJkKSBsaXZlIHVuZGVyXG4gICAgICAgICAgICAvLyAvcG9ydGFsL3ZpZXdzL3JlZ2lzdHJhdGlvbi8qIGFuZCBtdXN0IGJlIGZldGNoZWQgdmlhIHRoZVxuICAgICAgICAgICAgLy8gcHVibGljIENEVUkgZW5kcG9pbnQgQU5EIHdpdGggbm8gQXV0aG9yaXphdGlvbiBoZWFkZXIuXG4gICAgICAgICAgICAvLyBTcHJpbmcgU2VjdXJpdHkncyBiZWFyZXItYXV0aCBmaWx0ZXIgdmFsaWRhdGVzICphbnkqXG4gICAgICAgICAgICAvLyBhdHRhY2hlZCB0b2tlbiAoZXZlbiBvbiBwZXJtaXRBbGwoKSBlbmRwb2ludHMpIOKAlCBzbyBhblxuICAgICAgICAgICAgLy8gZW1wdHkvc3RhbGUgdG9rZW4gZnJvbSBhbiB1bmF1dGhlbnRpY2F0ZWQgc2Vzc2lvbiByZXR1cm5zXG4gICAgICAgICAgICAvLyA0MDEgZnJvbSB0aGUgcHVibGljIGVuZHBvaW50LiBTa2lwcGluZyB0aGUgYXV0aCBoZWFkZXJcbiAgICAgICAgICAgIC8vIGhlcmUgbWlycm9ycyB0aGUgYm9vdHN0cmFwJ3Mgc2VuZFJlcXVlc3QoLi4uLCBzZWN1cmU9ZmFsc2UpLlxuICAgICAgICAgICAgY29uc3QgaXNQdWJsaWNWaWV3ID0gcGF0aCAmJiBwYXRoLnN0YXJ0c1dpdGgoJy9wb3J0YWwvdmlld3MvcmVnaXN0cmF0aW9uLycpO1xuICAgICAgICAgICAgY29uc3Qgdmlld0VuZHBvaW50ID0gaXNQdWJsaWNWaWV3ID8gJy92aWV3L3B1YmxpYy9nZXQnIDogJy92aWV3L2dldCc7XG4gICAgICAgICAgICBsZXQgdXJsID0gbG9jYXRpb24gKyBhcHBsaWNhdGlvbk1hbmFnZXIuZ2V0Q29udGV4dFJvb3QoKSArIGFwcGxpY2F0aW9uTWFuYWdlci5nZXRVSUNvbmZpZ1BhdGgoKSArIHZpZXdFbmRwb2ludCArICc/dmVyc2lvbj0xLjAmaWQ9JyArIHBhdGg7XG4gICAgICAgICAgICBzZW5kUmVxdWVzdCh1cmwsXG4gICAgICAgICAgICAgICAgKGRhdGEpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgLy8gc2VuZFJlcXVlc3QgYXV0by1kZWNvZGVzIHRoZSB7X2NkdWlfen0gd2lyZSB3cmFwIGZvclxuICAgICAgICAgICAgICAgICAgICAvLyAvdWkvYXBpL3YqLyBVUkxzIOKAlCBkYXRhIGhlcmUgaXMgdGhlIHJhdyBDRFVJIGFzc2V0LlxuICAgICAgICAgICAgICAgICAgICBpZiAoaXNQYXJlbnQgJiYgY3VycmVudEdyYXBoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoKGlzV2luZG93ICYmIGN1cnJlbnRHcmFwaC5jb25maWcuaXNXaW5kb3cpIHx8ICghaXNXaW5kb3cgJiYgIWN1cnJlbnRHcmFwaC5jb25maWcuaXNXaW5kb3cpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25NYW5hZ2VyLnJlbW92ZUxvYWRlZEdyYXBoKChpc1dpbmRvdyAmJiBjdXJyZW50R3JhcGguY29uZmlnLmlzV2luZG93KSA/ICd3aW5kb3cnIDogJ21haW4nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGlmIChkYXRhLnR5cGUgPT09ICd2aWV3Jykge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGN1cnJlbnRWaWV3ID0gYXBwbGljYXRpb25NYW5hZ2VyLmdldFRvcFZpZXcoaXNXaW5kb3cgPyAnd2luZG93JyA6ICdtYWluJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdmlldyA9IHt9O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRlZmF1bHRNb2RlbCA9IHt9O1xuICAgICAgICAgICAgICAgICAgICAgICAgVXRpbHMudXBkYXRlTW9kZWwocGFyYW1ldGVyVmFsdWVzLCBkZWZhdWx0TW9kZWwpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdmlldy5jb25maWcgPSBkYXRhO1xuICAgICAgICAgICAgICAgICAgICAgICAgdmlldy5wYXJhbWV0ZXJzID0gcGFyYW1ldGVyVmFsdWVzO1xuICAgICAgICAgICAgICAgICAgICAgICAgdmlldy5wYXJlbnQgPSBpc1BhcmVudDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZpZXcuZ3JhcGhJZCA9IGFjdGlvbkNvbmZpZy5ncmFwaElkO1xuICAgICAgICAgICAgICAgICAgICAgICAgdmlldy5oYW5kbGUgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBpOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldCBpZCgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBkYXRhLmlkO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXQgbW9kZWwoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZGVmYXVsdE1vZGVsO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRDaGlsZDogKGlkKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlTW9kZWw6ICh2YWx1ZXMpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFV0aWxzLnVwZGF0ZU1vZGVsKHZhbHVlcywgZGVmYXVsdE1vZGVsKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0TW9kZWxWYWx1ZTogKGtleSwgdmFsdWUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZGVmYXVsdE1vZGVsLmtleSA9IHZhbHVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRNb2RlbFZhbHVlOiAoa2V5KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5kZWZhdWx0TW9kZWxba2V5XTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGVkOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbk1hbmFnZXIuYWRkVmlldyh2aWV3LCBwYXRoLCBmb3J3YXJkLCBhY3Rpb25Db25maWcucG9wVXAgPyAncG9wdXAnIDogaXNXaW5kb3cgPyAnd2luZG93JyA6ICdtYWluJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBOb25lLWV4aXN0aW5nIHJvdXRlIHRvIGVuc3VyZSB0aGF0IHRoZSBjdXJyZW50IHZpZXcgdW5sb2Fkc1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFV0aWxzLmlzTnVsbChhY3Rpb25Db25maWcucG9wVXApIHx8IGFjdGlvbkNvbmZpZy5wb3BVcCA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBXaW5kb3dzIGRvIG5vdCBnbyB0byB0aGUgT3V0bGV0IGluIHRoZSB2aWV3cG9ydC4gVGhleSBnZXQgcmVuZGVyZWQgaW50byB0aGUgd2luZG93IHZpZXdwb3J0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFpc1dpbmRvdykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2FwcGxpY2F0aW9uTWFuYWdlci5uYXZpZ2F0ZSgnL3ZpZXcvdW5sb2FkJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFJlZ2lzdHJhdGlvbiB3aXphcmQgbm9kZXMgbXVzdCBzdGF5IGluc2lkZSB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVnaXN0ZXItcG9ydGFsIHJvdXRlIHRyZWUg4oCUIG5hdmlnYXRpbmcgdG9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gL3ZpZXcvPGlkPiBtb3VudHMgdGhlIGF1dGhlbnRpY2F0ZWQgYXBwIHNoZWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIChJbnRlcmFjdGlvblBvcnRhbEFwcEhvbWUpIHdoaWNoIGZpcmVzIHVzZXItZmluZCArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNldHVwL2RlZmF1bHQgYW5kIGJyZWFrcyB0aGUgcHJlLWF1dGggVVguIEtlZXBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlIHBhdGggdW5kZXIgL3JlZ2lzdGVyLzx0eXBlPi88aWQ+IGluc3RlYWQuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc1B1YmxpY1ZpZXcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG0gPSBwYXRoLm1hdGNoKC9eXFwvcG9ydGFsXFwvdmlld3NcXC9yZWdpc3RyYXRpb25cXC8oW14vXSspXFwvLyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0eXBlID0gKG0gJiYgbVsxXSkgfHwgJ3ZlbmRvcic7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbk1hbmFnZXIubmF2aWdhdGUoJy9yZWdpc3Rlci8nICsgdHlwZSArICcvJyArIGRhdGEuaWQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25NYW5hZ2VyLm5hdmlnYXRlKCcvdmlldy8nICsgZGF0YS5pZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbk1hbmFnZXIub3BlbldpbmRvd1ZpZXcodmlldyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbk1hbmFnZXIub3BlblBvcHVwVmlldyh2aWV3KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChkYXRhLnR5cGUgPT09ICdncmFwaCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEuaXNXaW5kb3cgPSBpc1dpbmRvdztcbiAgICAgICAgICAgICAgICAgICAgICAgIGFwcGxpY2F0aW9uTWFuYWdlci5sb2FkR3JhcGgoaXNQYXJlbnQsIGRhdGEsIHBhcmFtZXRlclZhbHVlcywgKGlzUG9wdXAgPyAncG9wdXAnIDogaXNXaW5kb3cgPyAnd2luZG93JyA6ICdtYWluJykpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSwgKGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihlKTtcbiAgICAgICAgICAgICAgICB9LCAhaXNQdWJsaWNWaWV3LCBmYWxzZSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmNvbnN0IGluc3RhbmNlID0gbmV3IFJvdXRlQWN0aW9uSGFuZGxlcigpO1xuT2JqZWN0LmZyZWV6ZShpbnN0YW5jZSk7XG5cbmV4cG9ydCBkZWZhdWx0IGluc3RhbmNlO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxVQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxtQkFBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUcsTUFBQSxHQUFBSixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUksVUFBQSxHQUFBTCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUssV0FBQSxHQUFBTixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQU0sVUFB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
|