@agilemotion/oui-react-js 2.0.22 → 2.0.24
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/ViewContext.js +21 -3
- 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 +2 -2
- package/dist/components/dashboard/components/blackDashboard/sidebar/FoldingTabSidebar.js +47 -25
- package/dist/components/form/BaseField.js +1 -3
- package/dist/components/form/FieldSet.js +18 -5
- package/dist/components/form/fieldset.css +10 -0
- package/dist/components/layout/ViewContainer.js +8 -2
- package/dist/event/RouteActionHandler.js +4 -2
- package/dist/view/Dashboard.js +40 -9
- package/dist/view/PortalDashboard.js +78 -14
- package/dist/view/security/joburg.jpg +0 -0
- package/package.json +1 -1
|
@@ -17,7 +17,6 @@ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object
|
|
|
17
17
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
18
18
|
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
19
19
|
const location = window.location.protocol + '//' + window.location.hostname;
|
|
20
|
-
let keyCounter = 0;
|
|
21
20
|
|
|
22
21
|
/**
|
|
23
22
|
* Friendly first name for the welcome banner. The user's first name(s) live on
|
|
@@ -45,6 +44,33 @@ const resolveFirstName = () => {
|
|
|
45
44
|
return null;
|
|
46
45
|
};
|
|
47
46
|
|
|
47
|
+
/**
|
|
48
|
+
* Whether the signed-in user holds the given role in any of their organisations.
|
|
49
|
+
* Roles live in the stringified `profile` JSON: { organisations: [{ roles }] }.
|
|
50
|
+
* MVP: the dashboard card visibility rule is hardcoded against this; later the
|
|
51
|
+
* default dashboard layout (and which cards to show) will come from an API.
|
|
52
|
+
*/
|
|
53
|
+
const userHasRole = role => {
|
|
54
|
+
try {
|
|
55
|
+
const details = _ApplicationManager.default.getUserDetails();
|
|
56
|
+
if (_Utils.default.isNull(details) || _Utils.default.isNull(details.profile)) {
|
|
57
|
+
return false;
|
|
58
|
+
}
|
|
59
|
+
let profile = details.profile;
|
|
60
|
+
if (typeof profile === 'string') {
|
|
61
|
+
profile = JSON.parse(profile);
|
|
62
|
+
}
|
|
63
|
+
const orgs = profile && profile.organisations;
|
|
64
|
+
if (!Array.isArray(orgs)) {
|
|
65
|
+
return false;
|
|
66
|
+
}
|
|
67
|
+
return orgs.some(org => Array.isArray(org.roles) && org.roles.includes(role));
|
|
68
|
+
} catch (e) {
|
|
69
|
+
console.error(e);
|
|
70
|
+
return false;
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
|
|
48
74
|
/**
|
|
49
75
|
* Resolves a dashboard descriptor (type: "dashboard") to its content view and
|
|
50
76
|
* renders it inline, mirroring the VIEW-display branch of Dashboard.jsx's
|
|
@@ -53,19 +79,33 @@ const resolveFirstName = () => {
|
|
|
53
79
|
const EmbeddedView = props => {
|
|
54
80
|
const [element, setElement] = _react.default.useState(null);
|
|
55
81
|
const [failed, setFailed] = _react.default.useState(false);
|
|
82
|
+
// One stable, unique view id for this card's lifetime, drawn from the
|
|
83
|
+
// dashboard-lifecycle counter so it never collides with a sibling card.
|
|
84
|
+
const viewIdRef = _react.default.useRef(null);
|
|
85
|
+
if (viewIdRef.current === null) {
|
|
86
|
+
viewIdRef.current = props.allocateViewId();
|
|
87
|
+
}
|
|
56
88
|
_react.default.useEffect(() => {
|
|
89
|
+
let cancelled = false;
|
|
57
90
|
const base = location + _ApplicationManager.default.getContextRoot() + _ApplicationManager.default.getUIConfigPath();
|
|
58
91
|
const descriptorUrl = base + '/dashboard/get?version=1.0&id=' + props.descriptorPath;
|
|
59
92
|
(0, _RestUtils.sendRequest)(descriptorUrl, descriptor => {
|
|
93
|
+
if (cancelled) return;
|
|
60
94
|
if (_Utils.default.isNull(descriptor) || _Utils.default.isNull(descriptor.contentPath)) {
|
|
61
95
|
setFailed(true);
|
|
62
96
|
return;
|
|
63
97
|
}
|
|
64
98
|
const viewUrl = base + '/view/get?version=1.0&id=' + descriptor.contentPath;
|
|
65
99
|
(0, _RestUtils.sendRequest)(viewUrl, data => {
|
|
66
|
-
|
|
100
|
+
if (cancelled) return;
|
|
101
|
+
// Clone so we never mutate a (possibly cached) shared response,
|
|
102
|
+
// and stamp a unique-and-stable id for this card instance.
|
|
103
|
+
const config = _objectSpread(_objectSpread({}, data), {}, {
|
|
104
|
+
id: data.id + '_' + viewIdRef.current,
|
|
105
|
+
window: false
|
|
106
|
+
});
|
|
67
107
|
const dashboardView = {
|
|
68
|
-
config:
|
|
108
|
+
config: config,
|
|
69
109
|
parent: false,
|
|
70
110
|
popUp: false,
|
|
71
111
|
window: false,
|
|
@@ -75,22 +115,26 @@ const EmbeddedView = props => {
|
|
|
75
115
|
}
|
|
76
116
|
}
|
|
77
117
|
};
|
|
78
|
-
dashboardView.config.window = false;
|
|
79
118
|
_ApplicationManager.default.addDashboardView(dashboardView, descriptor.contentPath);
|
|
80
119
|
setElement(/*#__PURE__*/_react.default.createElement(_View.View, {
|
|
81
|
-
key:
|
|
82
|
-
config:
|
|
120
|
+
key: config.id,
|
|
121
|
+
config: config,
|
|
83
122
|
parameters: [],
|
|
84
123
|
handle: dashboardView.handle
|
|
85
124
|
}));
|
|
86
125
|
}, e => {
|
|
126
|
+
if (cancelled) return;
|
|
87
127
|
console.error(e);
|
|
88
128
|
setFailed(true);
|
|
89
129
|
});
|
|
90
130
|
}, e => {
|
|
131
|
+
if (cancelled) return;
|
|
91
132
|
console.error(e);
|
|
92
133
|
setFailed(true);
|
|
93
134
|
});
|
|
135
|
+
return () => {
|
|
136
|
+
cancelled = true;
|
|
137
|
+
};
|
|
94
138
|
}, [props.descriptorPath]);
|
|
95
139
|
if (failed) {
|
|
96
140
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
@@ -156,9 +200,24 @@ const PortalDashboard = /*#__PURE__*/_react.default.memo(/*#__PURE__*/_react.def
|
|
|
156
200
|
};
|
|
157
201
|
const firstName = _react.default.useMemo(() => resolveFirstName(), []);
|
|
158
202
|
const greeting = _Utils.default.isNull(firstName) ? 'Welcome back' : "Hi ".concat(firstName, ", welcome back");
|
|
203
|
+
|
|
204
|
+
// MVP rule (hardcoded): the procurement row (Publications / Registrations /
|
|
205
|
+
// Bids) only shows for users with the VENDOR role. This will be driven by
|
|
206
|
+
// the default dashboard settings API later.
|
|
207
|
+
const isVendor = _react.default.useMemo(() => userHasRole('VENDOR'), []);
|
|
208
|
+
|
|
209
|
+
// View-id counter scoped to this dashboard's lifecycle: initiated on load,
|
|
210
|
+
// increments per card as needed. Restarting on each load is safe because we
|
|
211
|
+
// unload every card view on destroy (below), so no stale ids/subscriptions
|
|
212
|
+
// survive to collide with the next load.
|
|
213
|
+
const viewSeq = _react.default.useRef(0);
|
|
214
|
+
const allocateViewId = _react.default.useCallback(() => ++viewSeq.current, []);
|
|
159
215
|
_react.default.useEffect(() => {
|
|
160
216
|
return () => {
|
|
161
|
-
|
|
217
|
+
// Unload all dashboard card views on destroy. Without this the event
|
|
218
|
+
// bus keeps their subscriptions and would respond to events for
|
|
219
|
+
// these (now unmounted) views behind the scenes.
|
|
220
|
+
_ApplicationManager.default.clearDashboardViews();
|
|
162
221
|
};
|
|
163
222
|
}, []);
|
|
164
223
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
@@ -194,7 +253,8 @@ const PortalDashboard = /*#__PURE__*/_react.default.memo(/*#__PURE__*/_react.def
|
|
|
194
253
|
minWidth: 0
|
|
195
254
|
}
|
|
196
255
|
}, /*#__PURE__*/_react.default.createElement(EmbeddedView, {
|
|
197
|
-
descriptorPath: '/portal/dashboards/my-work-items.json'
|
|
256
|
+
descriptorPath: '/portal/dashboards/my-work-items.json',
|
|
257
|
+
allocateViewId: allocateViewId
|
|
198
258
|
})), /*#__PURE__*/_react.default.createElement(DashboardPanel, {
|
|
199
259
|
title: 'Calendar',
|
|
200
260
|
style: {
|
|
@@ -202,8 +262,9 @@ const PortalDashboard = /*#__PURE__*/_react.default.memo(/*#__PURE__*/_react.def
|
|
|
202
262
|
minWidth: 0
|
|
203
263
|
}
|
|
204
264
|
}, /*#__PURE__*/_react.default.createElement(EmbeddedView, {
|
|
205
|
-
descriptorPath: '/portal/dashboards/my-calendar.json'
|
|
206
|
-
|
|
265
|
+
descriptorPath: '/portal/dashboards/my-calendar.json',
|
|
266
|
+
allocateViewId: allocateViewId
|
|
267
|
+
}))), isVendor && /*#__PURE__*/_react.default.createElement("div", {
|
|
207
268
|
style: {
|
|
208
269
|
flex: 1,
|
|
209
270
|
minHeight: 0,
|
|
@@ -217,7 +278,8 @@ const PortalDashboard = /*#__PURE__*/_react.default.memo(/*#__PURE__*/_react.def
|
|
|
217
278
|
minWidth: 0
|
|
218
279
|
}
|
|
219
280
|
}, /*#__PURE__*/_react.default.createElement(EmbeddedView, {
|
|
220
|
-
descriptorPath: '/portal/dashboards/publications.json'
|
|
281
|
+
descriptorPath: '/portal/dashboards/publications.json',
|
|
282
|
+
allocateViewId: allocateViewId
|
|
221
283
|
})), /*#__PURE__*/_react.default.createElement(DashboardPanel, {
|
|
222
284
|
title: 'My Registrations',
|
|
223
285
|
style: {
|
|
@@ -225,7 +287,8 @@ const PortalDashboard = /*#__PURE__*/_react.default.memo(/*#__PURE__*/_react.def
|
|
|
225
287
|
minWidth: 0
|
|
226
288
|
}
|
|
227
289
|
}, /*#__PURE__*/_react.default.createElement(EmbeddedView, {
|
|
228
|
-
descriptorPath: '/portal/dashboards/my-registrations.json'
|
|
290
|
+
descriptorPath: '/portal/dashboards/my-registrations.json',
|
|
291
|
+
allocateViewId: allocateViewId
|
|
229
292
|
})), /*#__PURE__*/_react.default.createElement(DashboardPanel, {
|
|
230
293
|
title: 'My Bids',
|
|
231
294
|
style: {
|
|
@@ -233,8 +296,9 @@ const PortalDashboard = /*#__PURE__*/_react.default.memo(/*#__PURE__*/_react.def
|
|
|
233
296
|
minWidth: 0
|
|
234
297
|
}
|
|
235
298
|
}, /*#__PURE__*/_react.default.createElement(EmbeddedView, {
|
|
236
|
-
descriptorPath: '/portal/dashboards/my-bids.json'
|
|
299
|
+
descriptorPath: '/portal/dashboards/my-bids.json',
|
|
300
|
+
allocateViewId: allocateViewId
|
|
237
301
|
})))));
|
|
238
302
|
}));
|
|
239
303
|
var _default = exports.default = PortalDashboard;
|
|
240
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9VdGlscyIsIl9QYXBlciIsIl9SZXN0VXRpbHMiLCJfQXBwbGljYXRpb25NYW5hZ2VyIiwiX1ZpZXciLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJvd25LZXlzIiwiciIsInQiLCJPYmplY3QiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJfdG9Qcm9wZXJ0eUtleSIsInZhbHVlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJpIiwiX3RvUHJpbWl0aXZlIiwiU3ltYm9sIiwidG9QcmltaXRpdmUiLCJjYWxsIiwiVHlwZUVycm9yIiwiU3RyaW5nIiwiTnVtYmVyIiwibG9jYXRpb24iLCJ3aW5kb3ciLCJwcm90b2NvbCIsImhvc3RuYW1lIiwia2V5Q291bnRlciIsInJlc29sdmVGaXJzdE5hbWUiLCJkZXRhaWxzIiwiYXBwbGljYXRpb25NYW5hZ2VyIiwiZ2V0VXNlckRldGFpbHMiLCJVdGlscyIsImlzTnVsbCIsIm5hbWUiLCJjb25jYXQiLCJ0cmltIiwic3BsaXQiLCJ1c2VybmFtZSIsImhhbmRsZSIsImNoYXJBdCIsInRvVXBwZXJDYXNlIiwic2xpY2UiLCJjb25zb2xlIiwiZXJyb3IiLCJFbWJlZGRlZFZpZXciLCJwcm9wcyIsImVsZW1lbnQiLCJzZXRFbGVtZW50IiwiUmVhY3QiLCJ1c2VTdGF0ZSIsImZhaWxlZCIsInNldEZhaWxlZCIsInVzZUVmZmVjdCIsImJhc2UiLCJnZXRDb250ZXh0Um9vdCIsImdldFVJQ29uZmlnUGF0aCIsImRlc2NyaXB0b3JVcmwiLCJkZXNjcmlwdG9yUGF0aCIsInNlbmRSZXF1ZXN0IiwiZGVzY3JpcHRvciIsImNvbnRlbnRQYXRoIiwidmlld1VybCIsImRhdGEiLCJpZCIsImRhc2hib2FyZFZpZXciLCJjb25maWciLCJwYXJlbnQiLCJwb3BVcCIsImFwaSIsImxvYWRlZCIsImFkZERhc2hib2FyZFZpZXciLCJjcmVhdGVFbGVtZW50IiwiVmlldyIsImtleSIsInBhcmFtZXRlcnMiLCJzdHlsZSIsInBhZGRpbmciLCJjb2xvciIsImZvbnRTaXplIiwiRGFzaGJvYXJkUGFuZWwiLCJkaXNwbGF5IiwiZmxleERpcmVjdGlvbiIsIndpZHRoIiwiaGVpZ2h0IiwibWluSGVpZ2h0Iiwib3ZlcmZsb3ciLCJib3JkZXJSYWRpdXMiLCJib3hTaGFkb3ciLCJib3hTaXppbmciLCJmb250V2VpZ2h0IiwibWFyZ2luQm90dG9tIiwidGl0bGUiLCJmbGV4IiwiY2hpbGRyZW4iLCJQb3J0YWxEYXNoYm9hcmQiLCJtZW1vIiwiZm9yd2FyZFJlZiIsInJlZiIsImZpcnN0TmFtZSIsInVzZU1lbW8iLCJncmVldGluZyIsIm1hcmdpbiIsImdhcCIsIm1pbldpZHRoIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi92aWV3L1BvcnRhbERhc2hib2FyZC5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBVdGlscyBmcm9tICcuLi9VdGlscyc7XG5pbXBvcnQgUGFwZXIgZnJvbSAnQG11aS9tYXRlcmlhbC9QYXBlcic7XG5pbXBvcnQge3NlbmRSZXF1ZXN0fSBmcm9tICcuLi9SZXN0VXRpbHMnO1xuaW1wb3J0IGFwcGxpY2F0aW9uTWFuYWdlciBmcm9tICcuLi9BcHBsaWNhdGlvbk1hbmFnZXInO1xuaW1wb3J0IHtWaWV3fSBmcm9tICcuLi9jb21wb25lbnRzL2xheW91dC9WaWV3JztcblxuY29uc3QgbG9jYXRpb24gPSB3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wgKyAnLy8nICsgd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lO1xuXG5sZXQga2V5Q291bnRlciA9IDA7XG5cbi8qKlxuICogRnJpZW5kbHkgZmlyc3QgbmFtZSBmb3IgdGhlIHdlbGNvbWUgYmFubmVyLiBUaGUgdXNlcidzIGZpcnN0IG5hbWUocykgbGl2ZSBvblxuICogdGhlIGBuYW1lYCBmaWVsZCAoc3VybmFtZSBpcyB0aGUgc2VwYXJhdGUgYHN1cm5hbWVgIGZpZWxkOyBgcHJvZmlsZWAgaXMgb3JnL1xuICogcm9sZSBKU09OLCBub3QgbmFtZSBkYXRhKS4gRmFsbHMgYmFjayB0byB0aGUgdXNlcm5hbWUgbG9jYWwtcGFydCwgZWxzZSBudWxsLlxuICovXG5jb25zdCByZXNvbHZlRmlyc3ROYW1lID0gKCkgPT4ge1xuICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGRldGFpbHMgPSBhcHBsaWNhdGlvbk1hbmFnZXIuZ2V0VXNlckRldGFpbHMoKTtcbiAgICAgICAgaWYgKFV0aWxzLmlzTnVsbChkZXRhaWxzKSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBuYW1lID0gZGV0YWlscy5uYW1lO1xuICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbChuYW1lKSAmJiBgJHtuYW1lfWAudHJpbSgpLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIGAke25hbWV9YC50cmltKCkuc3BsaXQoL1xccysvKVswXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHVzZXJuYW1lID0gZGV0YWlscy51c2VybmFtZTtcbiAgICAgICAgaWYgKCFVdGlscy5pc051bGwodXNlcm5hbWUpICYmIGAke3VzZXJuYW1lfWAubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zdCBoYW5kbGUgPSBgJHt1c2VybmFtZX1gLnNwbGl0KCdAJylbMF07XG4gICAgICAgICAgICByZXR1cm4gaGFuZGxlLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgaGFuZGxlLnNsaWNlKDEpO1xuICAgICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xufTtcblxuLyoqXG4gKiBSZXNvbHZlcyBhIGRhc2hib2FyZCBkZXNjcmlwdG9yICh0eXBlOiBcImRhc2hib2FyZFwiKSB0byBpdHMgY29udGVudCB2aWV3IGFuZFxuICogcmVuZGVycyBpdCBpbmxpbmUsIG1pcnJvcmluZyB0aGUgVklFVy1kaXNwbGF5IGJyYW5jaCBvZiBEYXNoYm9hcmQuanN4J3NcbiAqIERhc2hib2FyZENhcmQuIFRoZSBkZXNjcmlwdG9yJ3MgY29udGVudFBhdGggcG9pbnRzIGF0IHRoZSB2aWV3IHRvIGVtYmVkLlxuICovXG5jb25zdCBFbWJlZGRlZFZpZXcgPSAocHJvcHMpID0+IHtcbiAgICBjb25zdCBbZWxlbWVudCwgc2V0RWxlbWVudF0gPSBSZWFjdC51c2VTdGF0ZShudWxsKTtcbiAgICBjb25zdCBbZmFpbGVkLCBzZXRGYWlsZWRdID0gUmVhY3QudXNlU3RhdGUoZmFsc2UpO1xuXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgY29uc3QgYmFzZSA9IGxvY2F0aW9uICsgYXBwbGljYXRpb25NYW5hZ2VyLmdldENvbnRleHRSb290KCkgKyBhcHBsaWNhdGlvbk1hbmFnZXIuZ2V0VUlDb25maWdQYXRoKCk7XG4gICAgICAgIGNvbnN0IGRlc2NyaXB0b3JVcmwgPSBiYXNlICsgJy9kYXNoYm9hcmQvZ2V0P3ZlcnNpb249MS4wJmlkPScgKyBwcm9wcy5kZXNjcmlwdG9yUGF0aDtcblxuICAgICAgICBzZW5kUmVxdWVzdChkZXNjcmlwdG9yVXJsLCAoZGVzY3JpcHRvcikgPT4ge1xuICAgICAgICAgICAgaWYgKFV0aWxzLmlzTnVsbChkZXNjcmlwdG9yKSB8fCBVdGlscy5pc051bGwoZGVzY3JpcHRvci5jb250ZW50UGF0aCkpIHtcbiAgICAgICAgICAgICAgICBzZXRGYWlsZWQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCB2aWV3VXJsID0gYmFzZSArICcvdmlldy9nZXQ/dmVyc2lvbj0xLjAmaWQ9JyArIGRlc2NyaXB0b3IuY29udGVudFBhdGg7XG4gICAgICAgICAgICBzZW5kUmVxdWVzdCh2aWV3VXJsLCAoZGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgIGRhdGEuaWQgPSBkYXRhLmlkICsgJ18nICsga2V5Q291bnRlcisrO1xuICAgICAgICAgICAgICAgIGNvbnN0IGRhc2hib2FyZFZpZXcgPSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZzogZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgcGFyZW50OiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgcG9wVXA6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICB3aW5kb3c6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBoYW5kbGU6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFwaToge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRlZDogKCkgPT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgZGFzaGJvYXJkVmlldy5jb25maWcud2luZG93ID0gZmFsc2U7XG5cbiAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbk1hbmFnZXIuYWRkRGFzaGJvYXJkVmlldyhkYXNoYm9hcmRWaWV3LCBkZXNjcmlwdG9yLmNvbnRlbnRQYXRoKTtcbiAgICAgICAgICAgICAgICBzZXRFbGVtZW50KFxuICAgICAgICAgICAgICAgICAgICA8VmlldyBrZXk9e2RhdGEuaWR9IGNvbmZpZz17ZGF0YX0gcGFyYW1ldGVycz17W119IGhhbmRsZT17ZGFzaGJvYXJkVmlldy5oYW5kbGV9Lz5cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSwgKGUpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xuICAgICAgICAgICAgICAgIHNldEZhaWxlZCh0cnVlKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LCAoZSkgPT4ge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihlKTtcbiAgICAgICAgICAgIHNldEZhaWxlZCh0cnVlKTtcbiAgICAgICAgfSk7XG4gICAgfSwgW3Byb3BzLmRlc2NyaXB0b3JQYXRoXSk7XG5cbiAgICBpZiAoZmFpbGVkKSB7XG4gICAgICAgIHJldHVybiA8ZGl2IHN0eWxlPXt7cGFkZGluZzogJzE2cHgnLCBjb2xvcjogJyM5YWEzYjEnLCBmb250U2l6ZTogJzEzcHgnfX0+VW5hYmxlIHRvIGxvYWQuPC9kaXY+O1xuICAgIH1cblxuICAgIGlmIChVdGlscy5pc051bGwoZWxlbWVudCkpIHtcbiAgICAgICAgcmV0dXJuIDxkaXYgc3R5bGU9e3twYWRkaW5nOiAnMTZweCcsIGNvbG9yOiAnIzlhYTNiMScsIGZvbnRTaXplOiAnMTNweCd9fT5Mb2FkaW5n4oCmPC9kaXY+O1xuICAgIH1cblxuICAgIHJldHVybiBlbGVtZW50O1xufTtcblxuLyoqXG4gKiBQYW5lbCB3cmFwcGVyIGdpdmluZyBlYWNoIGVtYmVkZGVkIGNhcmQgYSB0aXRsZWQsIHNjcm9sbGFibGUgZnJhbWUuIEZpbGxzXG4gKiBpdHMgcGFyZW50IHNsb3Q7IGNhbGxlcnMgcGFzcyBgc3R5bGVgIHRvIGNvbnRyb2wgaXRzIGZsZXggc2hhcmUvaGVpZ2h0XG4gKiB3aXRoaW4gdGhlIGdyaWQgY29sdW1ucy5cbiAqL1xuY29uc3QgRGFzaGJvYXJkUGFuZWwgPSAocHJvcHMpID0+IChcbiAgICA8UGFwZXIgc3R5bGU9e3tcbiAgICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgICBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJyxcbiAgICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgICAgaGVpZ2h0OiAnMTAwJScsXG4gICAgICAgIG1pbkhlaWdodDogMCxcbiAgICAgICAgb3ZlcmZsb3c6ICdoaWRkZW4nLFxuICAgICAgICBib3JkZXJSYWRpdXM6ICc2cHgnLFxuICAgICAgICBib3hTaGFkb3c6ICcwIDFweCAzcHggcmdiYSgyMCwgMzUsIDYwLCAwLjA4KScsXG4gICAgICAgIHBhZGRpbmc6ICcxNnB4JyxcbiAgICAgICAgYm94U2l6aW5nOiAnYm9yZGVyLWJveCcsXG4gICAgICAgIC4uLihwcm9wcy5zdHlsZSB8fCB7fSlcbiAgICB9fT5cbiAgICAgICAgPGRpdiBzdHlsZT17e1xuICAgICAgICAgICAgZm9udFNpemU6ICcxNnB4JyxcbiAgICAgICAgICAgIGZvbnRXZWlnaHQ6IDYwMCxcbiAgICAgICAgICAgIGNvbG9yOiAnIzFhM2M1ZScsXG4gICAgICAgICAgICBtYXJnaW5Cb3R0b206ICcxMnB4J1xuICAgICAgICB9fT5cbiAgICAgICAgICAgIHtwcm9wcy50aXRsZX1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgc3R5bGU9e3tcbiAgICAgICAgICAgIGZsZXg6ICcxIDEgYXV0bycsXG4gICAgICAgICAgICBtaW5IZWlnaHQ6IDAsXG4gICAgICAgICAgICBvdmVyZmxvdzogJ2F1dG8nXG4gICAgICAgIH19PlxuICAgICAgICAgICAge3Byb3BzLmNoaWxkcmVufVxuICAgICAgICA8L2Rpdj5cbiAgICA8L1BhcGVyPlxuKTtcblxuY29uc3QgUG9ydGFsRGFzaGJvYXJkID0gUmVhY3QubWVtbyhSZWFjdC5mb3J3YXJkUmVmKChwcm9wcywgcmVmKSA9PiB7XG4gICAgY29uc3QgYXBpID0ge1xuICAgICAgICBnZXQgaWQoKSB7XG4gICAgICAgICAgICByZXR1cm4gJ3BvcnRhbC1kYXNoYm9hcmQnO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZSA9IHtcbiAgICAgICAgYXBpOiBhcGlcbiAgICB9O1xuXG4gICAgY29uc3QgZmlyc3ROYW1lID0gUmVhY3QudXNlTWVtbygoKSA9PiByZXNvbHZlRmlyc3ROYW1lKCksIFtdKTtcbiAgICBjb25zdCBncmVldGluZyA9IFV0aWxzLmlzTnVsbChmaXJzdE5hbWUpID8gJ1dlbGNvbWUgYmFjaycgOiBgSGkgJHtmaXJzdE5hbWV9LCB3ZWxjb21lIGJhY2tgO1xuXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgIGtleUNvdW50ZXIgPSAwO1xuICAgICAgICB9O1xuICAgIH0sIFtdKTtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDxkaXYgcmVmPXtyZWZ9IHN0eWxlPXt7cGFkZGluZzogJzE2cHgnLCBib3hTaXppbmc6ICdib3JkZXItYm94J319PlxuICAgICAgICAgICAgPHAgc3R5bGU9e3tmb250U2l6ZTogJzI0cHgnLCBtYXJnaW46ICcwIDAgMTJweCA0cHgnLCBjb2xvcjogJyMxYTNjNWUnfX0+e2dyZWV0aW5nfTwvcD5cbiAgICAgICAgICAgIDxkaXYgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAgICAgICAgZmxleERpcmVjdGlvbjogJ2NvbHVtbicsXG4gICAgICAgICAgICAgICAgZ2FwOiAnMTBweCcsXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAnY2FsYygxMDBkdmggLSB2YXIoLS1oZWFkZXItaCwgNjRweCkgLSAxMDBweCknXG4gICAgICAgICAgICB9fT5cbiAgICAgICAgICAgICAgICB7LyogUm93IDEg4oCUIE15IFRhc2tzIC8gQ2FsZW5kYXIgKDIgY29sdW1ucykgKi99XG4gICAgICAgICAgICAgICAgPGRpdiBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICBmbGV4OiAxLFxuICAgICAgICAgICAgICAgICAgICBtaW5IZWlnaHQ6IDAsXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICAgICAgICAgICAgZ2FwOiAnMTBweCdcbiAgICAgICAgICAgICAgICB9fT5cbiAgICAgICAgICAgICAgICAgICAgPERhc2hib2FyZFBhbmVsIHRpdGxlPXsnTXkgVGFza3MnfSBzdHlsZT17e2ZsZXg6IDEsIG1pbldpZHRoOiAwfX0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8RW1iZWRkZWRWaWV3IGRlc2NyaXB0b3JQYXRoPXsnL3BvcnRhbC9kYXNoYm9hcmRzL215LXdvcmstaXRlbXMuanNvbid9Lz5cbiAgICAgICAgICAgICAgICAgICAgPC9EYXNoYm9hcmRQYW5lbD5cbiAgICAgICAgICAgICAgICAgICAgPERhc2hib2FyZFBhbmVsIHRpdGxlPXsnQ2FsZW5kYXInfSBzdHlsZT17e2ZsZXg6IDEsIG1pbldpZHRoOiAwfX0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8RW1iZWRkZWRWaWV3IGRlc2NyaXB0b3JQYXRoPXsnL3BvcnRhbC9kYXNoYm9hcmRzL215LWNhbGVuZGFyLmpzb24nfS8+XG4gICAgICAgICAgICAgICAgICAgIDwvRGFzaGJvYXJkUGFuZWw+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgey8qIFJvdyAyIOKAlCBQdWJsaWNhdGlvbnMgLyBNeSBSZWdpc3RyYXRpb25zIC8gTXkgQmlkcyAoMyBjb2x1bW5zKSAqL31cbiAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgIGZsZXg6IDEsXG4gICAgICAgICAgICAgICAgICAgIG1pbkhlaWdodDogMCxcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgICAgICAgICAgICAgICBnYXA6ICcxMHB4J1xuICAgICAgICAgICAgICAgIH19PlxuICAgICAgICAgICAgICAgICAgICA8RGFzaGJvYXJkUGFuZWwgdGl0bGU9eydQdWJsaWNhdGlvbnMnfSBzdHlsZT17e2ZsZXg6IDEsIG1pbldpZHRoOiAwfX0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8RW1iZWRkZWRWaWV3IGRlc2NyaXB0b3JQYXRoPXsnL3BvcnRhbC9kYXNoYm9hcmRzL3B1YmxpY2F0aW9ucy5qc29uJ30vPlxuICAgICAgICAgICAgICAgICAgICA8L0Rhc2hib2FyZFBhbmVsPlxuICAgICAgICAgICAgICAgICAgICA8RGFzaGJvYXJkUGFuZWwgdGl0bGU9eydNeSBSZWdpc3RyYXRpb25zJ30gc3R5bGU9e3tmbGV4OiAxLCBtaW5XaWR0aDogMH19PlxuICAgICAgICAgICAgICAgICAgICAgICAgPEVtYmVkZGVkVmlldyBkZXNjcmlwdG9yUGF0aD17Jy9wb3J0YWwvZGFzaGJvYXJkcy9teS1yZWdpc3RyYXRpb25zLmpzb24nfS8+XG4gICAgICAgICAgICAgICAgICAgIDwvRGFzaGJvYXJkUGFuZWw+XG4gICAgICAgICAgICAgICAgICAgIDxEYXNoYm9hcmRQYW5lbCB0aXRsZT17J015IEJpZHMnfSBzdHlsZT17e2ZsZXg6IDEsIG1pbldpZHRoOiAwfX0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8RW1iZWRkZWRWaWV3IGRlc2NyaXB0b3JQYXRoPXsnL3BvcnRhbC9kYXNoYm9hcmRzL215LWJpZHMuanNvbid9Lz5cbiAgICAgICAgICAgICAgICAgICAgPC9EYXNoYm9hcmRQYW5lbD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICApO1xufSkpO1xuXG5leHBvcnQgZGVmYXVsdCBQb3J0YWxEYXNoYm9hcmQ7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLE1BQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFFLE1BQUEsR0FBQUgsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFHLFVBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLG1CQUFBLEdBQUFMLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSyxLQUFBLEdBQUFM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
|
|
304
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9VdGlscyIsIl9QYXBlciIsIl9SZXN0VXRpbHMiLCJfQXBwbGljYXRpb25NYW5hZ2VyIiwiX1ZpZXciLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJvd25LZXlzIiwiciIsInQiLCJPYmplY3QiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJfdG9Qcm9wZXJ0eUtleSIsInZhbHVlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJpIiwiX3RvUHJpbWl0aXZlIiwiU3ltYm9sIiwidG9QcmltaXRpdmUiLCJjYWxsIiwiVHlwZUVycm9yIiwiU3RyaW5nIiwiTnVtYmVyIiwibG9jYXRpb24iLCJ3aW5kb3ciLCJwcm90b2NvbCIsImhvc3RuYW1lIiwicmVzb2x2ZUZpcnN0TmFtZSIsImRldGFpbHMiLCJhcHBsaWNhdGlvbk1hbmFnZXIiLCJnZXRVc2VyRGV0YWlscyIsIlV0aWxzIiwiaXNOdWxsIiwibmFtZSIsImNvbmNhdCIsInRyaW0iLCJzcGxpdCIsInVzZXJuYW1lIiwiaGFuZGxlIiwiY2hhckF0IiwidG9VcHBlckNhc2UiLCJzbGljZSIsImNvbnNvbGUiLCJlcnJvciIsInVzZXJIYXNSb2xlIiwicm9sZSIsInByb2ZpbGUiLCJKU09OIiwicGFyc2UiLCJvcmdzIiwib3JnYW5pc2F0aW9ucyIsIkFycmF5IiwiaXNBcnJheSIsInNvbWUiLCJvcmciLCJyb2xlcyIsImluY2x1ZGVzIiwiRW1iZWRkZWRWaWV3IiwicHJvcHMiLCJlbGVtZW50Iiwic2V0RWxlbWVudCIsIlJlYWN0IiwidXNlU3RhdGUiLCJmYWlsZWQiLCJzZXRGYWlsZWQiLCJ2aWV3SWRSZWYiLCJ1c2VSZWYiLCJjdXJyZW50IiwiYWxsb2NhdGVWaWV3SWQiLCJ1c2VFZmZlY3QiLCJjYW5jZWxsZWQiLCJiYXNlIiwiZ2V0Q29udGV4dFJvb3QiLCJnZXRVSUNvbmZpZ1BhdGgiLCJkZXNjcmlwdG9yVXJsIiwiZGVzY3JpcHRvclBhdGgiLCJzZW5kUmVxdWVzdCIsImRlc2NyaXB0b3IiLCJjb250ZW50UGF0aCIsInZpZXdVcmwiLCJkYXRhIiwiY29uZmlnIiwiaWQiLCJkYXNoYm9hcmRWaWV3IiwicGFyZW50IiwicG9wVXAiLCJhcGkiLCJsb2FkZWQiLCJhZGREYXNoYm9hcmRWaWV3IiwiY3JlYXRlRWxlbWVudCIsIlZpZXciLCJrZXkiLCJwYXJhbWV0ZXJzIiwic3R5bGUiLCJwYWRkaW5nIiwiY29sb3IiLCJmb250U2l6ZSIsIkRhc2hib2FyZFBhbmVsIiwiZGlzcGxheSIsImZsZXhEaXJlY3Rpb24iLCJ3aWR0aCIsImhlaWdodCIsIm1pbkhlaWdodCIsIm92ZXJmbG93IiwiYm9yZGVyUmFkaXVzIiwiYm94U2hhZG93IiwiYm94U2l6aW5nIiwiZm9udFdlaWdodCIsIm1hcmdpbkJvdHRvbSIsInRpdGxlIiwiZmxleCIsImNoaWxkcmVuIiwiUG9ydGFsRGFzaGJvYXJkIiwibWVtbyIsImZvcndhcmRSZWYiLCJyZWYiLCJmaXJzdE5hbWUiLCJ1c2VNZW1vIiwiZ3JlZXRpbmciLCJpc1ZlbmRvciIsInZpZXdTZXEiLCJ1c2VDYWxsYmFjayIsImNsZWFyRGFzaGJvYXJkVmlld3MiLCJtYXJnaW4iLCJnYXAiLCJtaW5XaWR0aCIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvdmlldy9Qb3J0YWxEYXNoYm9hcmQuanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgVXRpbHMgZnJvbSAnLi4vVXRpbHMnO1xuaW1wb3J0IFBhcGVyIGZyb20gJ0BtdWkvbWF0ZXJpYWwvUGFwZXInO1xuaW1wb3J0IHtzZW5kUmVxdWVzdH0gZnJvbSAnLi4vUmVzdFV0aWxzJztcbmltcG9ydCBhcHBsaWNhdGlvbk1hbmFnZXIgZnJvbSAnLi4vQXBwbGljYXRpb25NYW5hZ2VyJztcbmltcG9ydCB7Vmlld30gZnJvbSAnLi4vY29tcG9uZW50cy9sYXlvdXQvVmlldyc7XG5cbmNvbnN0IGxvY2F0aW9uID0gd2luZG93LmxvY2F0aW9uLnByb3RvY29sICsgJy8vJyArIHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZTtcblxuLyoqXG4gKiBGcmllbmRseSBmaXJzdCBuYW1lIGZvciB0aGUgd2VsY29tZSBiYW5uZXIuIFRoZSB1c2VyJ3MgZmlyc3QgbmFtZShzKSBsaXZlIG9uXG4gKiB0aGUgYG5hbWVgIGZpZWxkIChzdXJuYW1lIGlzIHRoZSBzZXBhcmF0ZSBgc3VybmFtZWAgZmllbGQ7IGBwcm9maWxlYCBpcyBvcmcvXG4gKiByb2xlIEpTT04sIG5vdCBuYW1lIGRhdGEpLiBGYWxscyBiYWNrIHRvIHRoZSB1c2VybmFtZSBsb2NhbC1wYXJ0LCBlbHNlIG51bGwuXG4gKi9cbmNvbnN0IHJlc29sdmVGaXJzdE5hbWUgPSAoKSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgICAgY29uc3QgZGV0YWlscyA9IGFwcGxpY2F0aW9uTWFuYWdlci5nZXRVc2VyRGV0YWlscygpO1xuICAgICAgICBpZiAoVXRpbHMuaXNOdWxsKGRldGFpbHMpKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG5hbWUgPSBkZXRhaWxzLm5hbWU7XG4gICAgICAgIGlmICghVXRpbHMuaXNOdWxsKG5hbWUpICYmIGAke25hbWV9YC50cmltKCkubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4gYCR7bmFtZX1gLnRyaW0oKS5zcGxpdCgvXFxzKy8pWzBdO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdXNlcm5hbWUgPSBkZXRhaWxzLnVzZXJuYW1lO1xuICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbCh1c2VybmFtZSkgJiYgYCR7dXNlcm5hbWV9YC5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnN0IGhhbmRsZSA9IGAke3VzZXJuYW1lfWAuc3BsaXQoJ0AnKVswXTtcbiAgICAgICAgICAgIHJldHVybiBoYW5kbGUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBoYW5kbGUuc2xpY2UoMSk7XG4gICAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG59O1xuXG4vKipcbiAqIFdoZXRoZXIgdGhlIHNpZ25lZC1pbiB1c2VyIGhvbGRzIHRoZSBnaXZlbiByb2xlIGluIGFueSBvZiB0aGVpciBvcmdhbmlzYXRpb25zLlxuICogUm9sZXMgbGl2ZSBpbiB0aGUgc3RyaW5naWZpZWQgYHByb2ZpbGVgIEpTT046IHsgb3JnYW5pc2F0aW9uczogW3sgcm9sZXMgfV0gfS5cbiAqIE1WUDogdGhlIGRhc2hib2FyZCBjYXJkIHZpc2liaWxpdHkgcnVsZSBpcyBoYXJkY29kZWQgYWdhaW5zdCB0aGlzOyBsYXRlciB0aGVcbiAqIGRlZmF1bHQgZGFzaGJvYXJkIGxheW91dCAoYW5kIHdoaWNoIGNhcmRzIHRvIHNob3cpIHdpbGwgY29tZSBmcm9tIGFuIEFQSS5cbiAqL1xuY29uc3QgdXNlckhhc1JvbGUgPSAocm9sZSkgPT4ge1xuICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGRldGFpbHMgPSBhcHBsaWNhdGlvbk1hbmFnZXIuZ2V0VXNlckRldGFpbHMoKTtcbiAgICAgICAgaWYgKFV0aWxzLmlzTnVsbChkZXRhaWxzKSB8fCBVdGlscy5pc051bGwoZGV0YWlscy5wcm9maWxlKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IHByb2ZpbGUgPSBkZXRhaWxzLnByb2ZpbGU7XG4gICAgICAgIGlmICh0eXBlb2YgcHJvZmlsZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHByb2ZpbGUgPSBKU09OLnBhcnNlKHByb2ZpbGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgb3JncyA9IHByb2ZpbGUgJiYgcHJvZmlsZS5vcmdhbmlzYXRpb25zO1xuICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkob3JncykpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBvcmdzLnNvbWUoKG9yZykgPT4gQXJyYXkuaXNBcnJheShvcmcucm9sZXMpICYmIG9yZy5yb2xlcy5pbmNsdWRlcyhyb2xlKSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxufTtcblxuLyoqXG4gKiBSZXNvbHZlcyBhIGRhc2hib2FyZCBkZXNjcmlwdG9yICh0eXBlOiBcImRhc2hib2FyZFwiKSB0byBpdHMgY29udGVudCB2aWV3IGFuZFxuICogcmVuZGVycyBpdCBpbmxpbmUsIG1pcnJvcmluZyB0aGUgVklFVy1kaXNwbGF5IGJyYW5jaCBvZiBEYXNoYm9hcmQuanN4J3NcbiAqIERhc2hib2FyZENhcmQuIFRoZSBkZXNjcmlwdG9yJ3MgY29udGVudFBhdGggcG9pbnRzIGF0IHRoZSB2aWV3IHRvIGVtYmVkLlxuICovXG5jb25zdCBFbWJlZGRlZFZpZXcgPSAocHJvcHMpID0+IHtcbiAgICBjb25zdCBbZWxlbWVudCwgc2V0RWxlbWVudF0gPSBSZWFjdC51c2VTdGF0ZShudWxsKTtcbiAgICBjb25zdCBbZmFpbGVkLCBzZXRGYWlsZWRdID0gUmVhY3QudXNlU3RhdGUoZmFsc2UpO1xuICAgIC8vIE9uZSBzdGFibGUsIHVuaXF1ZSB2aWV3IGlkIGZvciB0aGlzIGNhcmQncyBsaWZldGltZSwgZHJhd24gZnJvbSB0aGVcbiAgICAvLyBkYXNoYm9hcmQtbGlmZWN5Y2xlIGNvdW50ZXIgc28gaXQgbmV2ZXIgY29sbGlkZXMgd2l0aCBhIHNpYmxpbmcgY2FyZC5cbiAgICBjb25zdCB2aWV3SWRSZWYgPSBSZWFjdC51c2VSZWYobnVsbCk7XG4gICAgaWYgKHZpZXdJZFJlZi5jdXJyZW50ID09PSBudWxsKSB7XG4gICAgICAgIHZpZXdJZFJlZi5jdXJyZW50ID0gcHJvcHMuYWxsb2NhdGVWaWV3SWQoKTtcbiAgICB9XG5cbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBsZXQgY2FuY2VsbGVkID0gZmFsc2U7XG4gICAgICAgIGNvbnN0IGJhc2UgPSBsb2NhdGlvbiArIGFwcGxpY2F0aW9uTWFuYWdlci5nZXRDb250ZXh0Um9vdCgpICsgYXBwbGljYXRpb25NYW5hZ2VyLmdldFVJQ29uZmlnUGF0aCgpO1xuICAgICAgICBjb25zdCBkZXNjcmlwdG9yVXJsID0gYmFzZSArICcvZGFzaGJvYXJkL2dldD92ZXJzaW9uPTEuMCZpZD0nICsgcHJvcHMuZGVzY3JpcHRvclBhdGg7XG5cbiAgICAgICAgc2VuZFJlcXVlc3QoZGVzY3JpcHRvclVybCwgKGRlc2NyaXB0b3IpID0+IHtcbiAgICAgICAgICAgIGlmIChjYW5jZWxsZWQpIHJldHVybjtcbiAgICAgICAgICAgIGlmIChVdGlscy5pc051bGwoZGVzY3JpcHRvcikgfHwgVXRpbHMuaXNOdWxsKGRlc2NyaXB0b3IuY29udGVudFBhdGgpKSB7XG4gICAgICAgICAgICAgICAgc2V0RmFpbGVkKHRydWUpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3Qgdmlld1VybCA9IGJhc2UgKyAnL3ZpZXcvZ2V0P3ZlcnNpb249MS4wJmlkPScgKyBkZXNjcmlwdG9yLmNvbnRlbnRQYXRoO1xuICAgICAgICAgICAgc2VuZFJlcXVlc3Qodmlld1VybCwgKGRhdGEpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoY2FuY2VsbGVkKSByZXR1cm47XG4gICAgICAgICAgICAgICAgLy8gQ2xvbmUgc28gd2UgbmV2ZXIgbXV0YXRlIGEgKHBvc3NpYmx5IGNhY2hlZCkgc2hhcmVkIHJlc3BvbnNlLFxuICAgICAgICAgICAgICAgIC8vIGFuZCBzdGFtcCBhIHVuaXF1ZS1hbmQtc3RhYmxlIGlkIGZvciB0aGlzIGNhcmQgaW5zdGFuY2UuXG4gICAgICAgICAgICAgICAgY29uc3QgY29uZmlnID0gey4uLmRhdGEsIGlkOiBkYXRhLmlkICsgJ18nICsgdmlld0lkUmVmLmN1cnJlbnQsIHdpbmRvdzogZmFsc2V9O1xuICAgICAgICAgICAgICAgIGNvbnN0IGRhc2hib2FyZFZpZXcgPSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZzogY29uZmlnLFxuICAgICAgICAgICAgICAgICAgICBwYXJlbnQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBwb3BVcDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIHdpbmRvdzogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZToge1xuICAgICAgICAgICAgICAgICAgICAgICAgYXBpOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGVkOiAoKSA9PiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgIGFwcGxpY2F0aW9uTWFuYWdlci5hZGREYXNoYm9hcmRWaWV3KGRhc2hib2FyZFZpZXcsIGRlc2NyaXB0b3IuY29udGVudFBhdGgpO1xuICAgICAgICAgICAgICAgIHNldEVsZW1lbnQoXG4gICAgICAgICAgICAgICAgICAgIDxWaWV3IGtleT17Y29uZmlnLmlkfSBjb25maWc9e2NvbmZpZ30gcGFyYW1ldGVycz17W119IGhhbmRsZT17ZGFzaGJvYXJkVmlldy5oYW5kbGV9Lz5cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSwgKGUpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoY2FuY2VsbGVkKSByZXR1cm47XG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihlKTtcbiAgICAgICAgICAgICAgICBzZXRGYWlsZWQodHJ1ZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSwgKGUpID0+IHtcbiAgICAgICAgICAgIGlmIChjYW5jZWxsZWQpIHJldHVybjtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XG4gICAgICAgICAgICBzZXRGYWlsZWQodHJ1ZSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICBjYW5jZWxsZWQgPSB0cnVlO1xuICAgICAgICB9O1xuICAgIH0sIFtwcm9wcy5kZXNjcmlwdG9yUGF0aF0pO1xuXG4gICAgaWYgKGZhaWxlZCkge1xuICAgICAgICByZXR1cm4gPGRpdiBzdHlsZT17e3BhZGRpbmc6ICcxNnB4JywgY29sb3I6ICcjOWFhM2IxJywgZm9udFNpemU6ICcxM3B4J319PlVuYWJsZSB0byBsb2FkLjwvZGl2PjtcbiAgICB9XG5cbiAgICBpZiAoVXRpbHMuaXNOdWxsKGVsZW1lbnQpKSB7XG4gICAgICAgIHJldHVybiA8ZGl2IHN0eWxlPXt7cGFkZGluZzogJzE2cHgnLCBjb2xvcjogJyM5YWEzYjEnLCBmb250U2l6ZTogJzEzcHgnfX0+TG9hZGluZ+KApjwvZGl2PjtcbiAgICB9XG5cbiAgICByZXR1cm4gZWxlbWVudDtcbn07XG5cbi8qKlxuICogUGFuZWwgd3JhcHBlciBnaXZpbmcgZWFjaCBlbWJlZGRlZCBjYXJkIGEgdGl0bGVkLCBzY3JvbGxhYmxlIGZyYW1lLiBGaWxsc1xuICogaXRzIHBhcmVudCBzbG90OyBjYWxsZXJzIHBhc3MgYHN0eWxlYCB0byBjb250cm9sIGl0cyBmbGV4IHNoYXJlL2hlaWdodFxuICogd2l0aGluIHRoZSBncmlkIGNvbHVtbnMuXG4gKi9cbmNvbnN0IERhc2hib2FyZFBhbmVsID0gKHByb3BzKSA9PiAoXG4gICAgPFBhcGVyIHN0eWxlPXt7XG4gICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgZmxleERpcmVjdGlvbjogJ2NvbHVtbicsXG4gICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgIGhlaWdodDogJzEwMCUnLFxuICAgICAgICBtaW5IZWlnaHQ6IDAsXG4gICAgICAgIG92ZXJmbG93OiAnaGlkZGVuJyxcbiAgICAgICAgYm9yZGVyUmFkaXVzOiAnNnB4JyxcbiAgICAgICAgYm94U2hhZG93OiAnMCAxcHggM3B4IHJnYmEoMjAsIDM1LCA2MCwgMC4wOCknLFxuICAgICAgICBwYWRkaW5nOiAnMTZweCcsXG4gICAgICAgIGJveFNpemluZzogJ2JvcmRlci1ib3gnLFxuICAgICAgICAuLi4ocHJvcHMuc3R5bGUgfHwge30pXG4gICAgfX0+XG4gICAgICAgIDxkaXYgc3R5bGU9e3tcbiAgICAgICAgICAgIGZvbnRTaXplOiAnMTZweCcsXG4gICAgICAgICAgICBmb250V2VpZ2h0OiA2MDAsXG4gICAgICAgICAgICBjb2xvcjogJyMxYTNjNWUnLFxuICAgICAgICAgICAgbWFyZ2luQm90dG9tOiAnMTJweCdcbiAgICAgICAgfX0+XG4gICAgICAgICAgICB7cHJvcHMudGl0bGV9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IHN0eWxlPXt7XG4gICAgICAgICAgICBmbGV4OiAnMSAxIGF1dG8nLFxuICAgICAgICAgICAgbWluSGVpZ2h0OiAwLFxuICAgICAgICAgICAgb3ZlcmZsb3c6ICdhdXRvJ1xuICAgICAgICB9fT5cbiAgICAgICAgICAgIHtwcm9wcy5jaGlsZHJlbn1cbiAgICAgICAgPC9kaXY+XG4gICAgPC9QYXBlcj5cbik7XG5cbmNvbnN0IFBvcnRhbERhc2hib2FyZCA9IFJlYWN0Lm1lbW8oUmVhY3QuZm9yd2FyZFJlZigocHJvcHMsIHJlZikgPT4ge1xuICAgIGNvbnN0IGFwaSA9IHtcbiAgICAgICAgZ2V0IGlkKCkge1xuICAgICAgICAgICAgcmV0dXJuICdwb3J0YWwtZGFzaGJvYXJkJztcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGUgPSB7XG4gICAgICAgIGFwaTogYXBpXG4gICAgfTtcblxuICAgIGNvbnN0IGZpcnN0TmFtZSA9IFJlYWN0LnVzZU1lbW8oKCkgPT4gcmVzb2x2ZUZpcnN0TmFtZSgpLCBbXSk7XG4gICAgY29uc3QgZ3JlZXRpbmcgPSBVdGlscy5pc051bGwoZmlyc3ROYW1lKSA/ICdXZWxjb21lIGJhY2snIDogYEhpICR7Zmlyc3ROYW1lfSwgd2VsY29tZSBiYWNrYDtcblxuICAgIC8vIE1WUCBydWxlIChoYXJkY29kZWQpOiB0aGUgcHJvY3VyZW1lbnQgcm93IChQdWJsaWNhdGlvbnMgLyBSZWdpc3RyYXRpb25zIC9cbiAgICAvLyBCaWRzKSBvbmx5IHNob3dzIGZvciB1c2VycyB3aXRoIHRoZSBWRU5ET1Igcm9sZS4gVGhpcyB3aWxsIGJlIGRyaXZlbiBieVxuICAgIC8vIHRoZSBkZWZhdWx0IGRhc2hib2FyZCBzZXR0aW5ncyBBUEkgbGF0ZXIuXG4gICAgY29uc3QgaXNWZW5kb3IgPSBSZWFjdC51c2VNZW1vKCgpID0+IHVzZXJIYXNSb2xlKCdWRU5ET1InKSwgW10pO1xuXG4gICAgLy8gVmlldy1pZCBjb3VudGVyIHNjb3BlZCB0byB0aGlzIGRhc2hib2FyZCdzIGxpZmVjeWNsZTogaW5pdGlhdGVkIG9uIGxvYWQsXG4gICAgLy8gaW5jcmVtZW50cyBwZXIgY2FyZCBhcyBuZWVkZWQuIFJlc3RhcnRpbmcgb24gZWFjaCBsb2FkIGlzIHNhZmUgYmVjYXVzZSB3ZVxuICAgIC8vIHVubG9hZCBldmVyeSBjYXJkIHZpZXcgb24gZGVzdHJveSAoYmVsb3cpLCBzbyBubyBzdGFsZSBpZHMvc3Vic2NyaXB0aW9uc1xuICAgIC8vIHN1cnZpdmUgdG8gY29sbGlkZSB3aXRoIHRoZSBuZXh0IGxvYWQuXG4gICAgY29uc3Qgdmlld1NlcSA9IFJlYWN0LnVzZVJlZigwKTtcbiAgICBjb25zdCBhbGxvY2F0ZVZpZXdJZCA9IFJlYWN0LnVzZUNhbGxiYWNrKCgpID0+ICsrdmlld1NlcS5jdXJyZW50LCBbXSk7XG5cbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgLy8gVW5sb2FkIGFsbCBkYXNoYm9hcmQgY2FyZCB2aWV3cyBvbiBkZXN0cm95LiBXaXRob3V0IHRoaXMgdGhlIGV2ZW50XG4gICAgICAgICAgICAvLyBidXMga2VlcHMgdGhlaXIgc3Vic2NyaXB0aW9ucyBhbmQgd291bGQgcmVzcG9uZCB0byBldmVudHMgZm9yXG4gICAgICAgICAgICAvLyB0aGVzZSAobm93IHVubW91bnRlZCkgdmlld3MgYmVoaW5kIHRoZSBzY2VuZXMuXG4gICAgICAgICAgICBhcHBsaWNhdGlvbk1hbmFnZXIuY2xlYXJEYXNoYm9hcmRWaWV3cygpO1xuICAgICAgICB9O1xuICAgIH0sIFtdKTtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDxkaXYgcmVmPXtyZWZ9IHN0eWxlPXt7cGFkZGluZzogJzE2cHgnLCBib3hTaXppbmc6ICdib3JkZXItYm94J319PlxuICAgICAgICAgICAgPHAgc3R5bGU9e3tmb250U2l6ZTogJzI0cHgnLCBtYXJnaW46ICcwIDAgMTJweCA0cHgnLCBjb2xvcjogJyMxYTNjNWUnfX0+e2dyZWV0aW5nfTwvcD5cbiAgICAgICAgICAgIDxkaXYgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAgICAgICAgZmxleERpcmVjdGlvbjogJ2NvbHVtbicsXG4gICAgICAgICAgICAgICAgZ2FwOiAnMTBweCcsXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAnY2FsYygxMDBkdmggLSB2YXIoLS1oZWFkZXItaCwgNjRweCkgLSAxMDBweCknXG4gICAgICAgICAgICB9fT5cbiAgICAgICAgICAgICAgICB7LyogUm93IDEg4oCUIE15IFRhc2tzIC8gQ2FsZW5kYXIgKDIgY29sdW1ucykgKi99XG4gICAgICAgICAgICAgICAgPGRpdiBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICBmbGV4OiAxLFxuICAgICAgICAgICAgICAgICAgICBtaW5IZWlnaHQ6IDAsXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICAgICAgICAgICAgZ2FwOiAnMTBweCdcbiAgICAgICAgICAgICAgICB9fT5cbiAgICAgICAgICAgICAgICAgICAgPERhc2hib2FyZFBhbmVsIHRpdGxlPXsnTXkgVGFza3MnfSBzdHlsZT17e2ZsZXg6IDEsIG1pbldpZHRoOiAwfX0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8RW1iZWRkZWRWaWV3IGRlc2NyaXB0b3JQYXRoPXsnL3BvcnRhbC9kYXNoYm9hcmRzL215LXdvcmstaXRlbXMuanNvbid9IGFsbG9jYXRlVmlld0lkPXthbGxvY2F0ZVZpZXdJZH0vPlxuICAgICAgICAgICAgICAgICAgICA8L0Rhc2hib2FyZFBhbmVsPlxuICAgICAgICAgICAgICAgICAgICA8RGFzaGJvYXJkUGFuZWwgdGl0bGU9eydDYWxlbmRhcid9IHN0eWxlPXt7ZmxleDogMSwgbWluV2lkdGg6IDB9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxFbWJlZGRlZFZpZXcgZGVzY3JpcHRvclBhdGg9eycvcG9ydGFsL2Rhc2hib2FyZHMvbXktY2FsZW5kYXIuanNvbid9IGFsbG9jYXRlVmlld0lkPXthbGxvY2F0ZVZpZXdJZH0vPlxuICAgICAgICAgICAgICAgICAgICA8L0Rhc2hib2FyZFBhbmVsPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIHsvKiBSb3cgMiDigJQgUHVibGljYXRpb25zIC8gTXkgUmVnaXN0cmF0aW9ucyAvIE15IEJpZHMgKDMgY29sdW1ucykuXG4gICAgICAgICAgICAgICAgICAgIE9ubHkgcmVuZGVyZWQgZm9yIFZFTkRPUiB1c2VycyAoTVZQIGhhcmRjb2RlZCBydWxlKS4gKi99XG4gICAgICAgICAgICAgICAge2lzVmVuZG9yICYmIChcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgZmxleDogMSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pbkhlaWdodDogMCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGdhcDogJzEwcHgnXG4gICAgICAgICAgICAgICAgICAgIH19PlxuICAgICAgICAgICAgICAgICAgICAgICAgPERhc2hib2FyZFBhbmVsIHRpdGxlPXsnUHVibGljYXRpb25zJ30gc3R5bGU9e3tmbGV4OiAxLCBtaW5XaWR0aDogMH19PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxFbWJlZGRlZFZpZXcgZGVzY3JpcHRvclBhdGg9eycvcG9ydGFsL2Rhc2hib2FyZHMvcHVibGljYXRpb25zLmpzb24nfSBhbGxvY2F0ZVZpZXdJZD17YWxsb2NhdGVWaWV3SWR9Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvRGFzaGJvYXJkUGFuZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8RGFzaGJvYXJkUGFuZWwgdGl0bGU9eydNeSBSZWdpc3RyYXRpb25zJ30gc3R5bGU9e3tmbGV4OiAxLCBtaW5XaWR0aDogMH19PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxFbWJlZGRlZFZpZXcgZGVzY3JpcHRvclBhdGg9eycvcG9ydGFsL2Rhc2hib2FyZHMvbXktcmVnaXN0cmF0aW9ucy5qc29uJ30gYWxsb2NhdGVWaWV3SWQ9e2FsbG9jYXRlVmlld0lkfS8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L0Rhc2hib2FyZFBhbmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPERhc2hib2FyZFBhbmVsIHRpdGxlPXsnTXkgQmlkcyd9IHN0eWxlPXt7ZmxleDogMSwgbWluV2lkdGg6IDB9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8RW1iZWRkZWRWaWV3IGRlc2NyaXB0b3JQYXRoPXsnL3BvcnRhbC9kYXNoYm9hcmRzL215LWJpZHMuanNvbid9IGFsbG9jYXRlVmlld0lkPXthbGxvY2F0ZVZpZXdJZH0vPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9EYXNoYm9hcmRQYW5lbD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICApO1xufSkpO1xuXG5leHBvcnQgZGVmYXVsdCBQb3J0YWxEYXNoYm9hcmQ7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLE1BQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFFLE1BQUEsR0FBQUgsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFHLFVBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLG1CQUFBLEdBQUFMLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSyxLQUFBLEdBQUFMLE9BQUE7QUFBK0MsU0FBQUQsdUJBQUFPLENBQUEsV0FBQUEsQ0FBQSxJQUFBQSxDQUFBLENBQUFDLFVBQUEsR0FBQUQsQ0FBQSxLQUFBRSxPQUFBLEVBQUFGLENBQUE7QUFBQSxTQUFBRyxRQUFBSCxDQUFBLEVBQUFJLENBQUEsUUFBQUMsQ0FBQSxHQUFBQyxNQUFBLENBQUFDLElBQUEsQ0FBQVAsQ0FBQSxPQUFBTSxNQUFBLENBQUFFLHFCQUFBLFFBQUFDLENBQUEsR0FBQUgsTUFBQSxDQUFBRSxxQkFBQSxDQUFBUixDQUFBLEdBQUFJLENBQUEsS0FBQUssQ0FBQSxHQUFBQSxDQUFBLENBQUFDLE1BQUEsV0FBQU4sQ0FBQSxXQUFBRSxNQUFBLENBQUFLLHdCQUFBLENBQUFYLENBQUEsRUFBQUksQ0FBQSxFQUFBUSxVQUFBLE9BQUFQLENBQUEsQ0FBQVEsSUFBQSxDQUFBQyxLQUFBLENBQUFULENBQUEsRUFBQUksQ0FBQSxZQUFB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
|
|
Binary file
|
package/package.json
CHANGED