@resolveio/client-lib-core 1.3.14 → 1.3.16

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.
@@ -48,61 +48,35 @@ export class AuthGuard {
48
48
  resolve(false);
49
49
  }
50
50
  else {
51
- let fullView = state.url.replace(/\/[a-f0-9]{24}$/, '').replace(/\?.+$/, ''); //All but ID and Query String
52
- let partialView = state.url.replace(/^(\/[-a-z]+\/[^\/]+)\/.*$/, '$1').replace(/\?.+$/, ''); //Module and First Child Only
53
- let moduleView = partialView.replace(/^(\/[-a-z]+\/).*$/, '$1'); //Module Only
51
+ let pageView = state.url.replace(/\/[a-f0-9]{24}$/, '').replace(/\?.+$/, ''); //All but ID and Query String
52
+ let moduleView = pageView.replace(/([^\/]+\/?$)/, '');
54
53
  if (user.roles.super_admin) {
55
54
  resolve(true);
56
55
  }
57
- else if (!this.isLinkFakeRoute(fullView)) {
58
- if (!this.isLinkPartialRoute(fullView) && !user.roles.groups.some(a => a.views.some(b => b === fullView))) {
59
- if (user.roles.groups.some(a => a.views.some(b => b.startsWith(moduleView) && !this.doesLinkHaveParameter(b) && !this.isLinkFakeRoute(b)))) {
60
- let link = user.roles.groups.filter(a => a.views.some(b => b.startsWith(moduleView) && !this.doesLinkHaveParameter(b) && !this.isLinkFakeRoute(b)))[0].views.filter(a => a.startsWith(moduleView) && !this.doesLinkHaveParameter(a) && !this.isLinkFakeRoute(a))[0];
61
- this._router.navigateByUrl(link);
62
- }
63
- else {
64
- this._router.navigateByUrl('/home');
65
- }
66
- resolve(false);
67
- }
68
- else if (this.isLinkPartialRoute(fullView) && !user.roles.groups.some(a => a.views.some(b => b.startsWith(fullView) || fullView.startsWith(b)))) {
69
- if (user.roles.groups.some(a => a.views.some(b => b.startsWith(moduleView) && !this.doesLinkHaveParameter(b) && !this.isLinkFakeRoute(b)))) {
70
- let link = user.roles.groups.filter(a => a.views.some(b => b.startsWith(moduleView) && !this.doesLinkHaveParameter(b) && !this.isLinkFakeRoute(b)))[0].views.filter(a => a.startsWith(moduleView) && !this.doesLinkHaveParameter(a) && !this.isLinkFakeRoute(a))[0];
71
- this._router.navigateByUrl(link);
72
- }
73
- else {
74
- this._router.navigateByUrl('/home');
75
- }
76
- resolve(false);
77
- }
78
- else {
79
- resolve(true);
80
- }
81
- }
82
56
  else {
83
- if (!this.isLinkPartialRoute(partialView) && !user.roles.groups.some(a => a.views.some(b => b === partialView))) {
84
- if (user.roles.groups.some(a => a.views.some(b => b.startsWith(moduleView) && !this.doesLinkHaveParameter(b) && !this.isLinkFakeRoute(b)))) {
85
- let link = user.roles.groups.filter(a => a.views.some(b => b.startsWith(moduleView) && !this.doesLinkHaveParameter(b) && !this.isLinkFakeRoute(b)))[0].views.filter(a => a.startsWith(moduleView) && !this.doesLinkHaveParameter(a) && !this.isLinkFakeRoute(a))[0];
86
- this._router.navigateByUrl(link);
87
- }
88
- else {
89
- this._router.navigateByUrl('/home');
57
+ let done = false;
58
+ while (!done && pageView.split('/').length > 1) {
59
+ if (!this.isLinkFakeRoute(pageView)) {
60
+ if (!user.roles.groups.some(a => a.views.some(b => b === pageView))) {
61
+ if (user.roles.groups.some(a => a.views.some(b => b.startsWith(moduleView) && !this.doesLinkHaveParameter(b) && !this.isLinkFakeRoute(b)))) {
62
+ let link = user.roles.groups.filter(a => a.views.some(b => b.startsWith(moduleView) && !this.doesLinkHaveParameter(b) && !this.isLinkFakeRoute(b)))[0].views.filter(a => a.startsWith(moduleView) && !this.doesLinkHaveParameter(a) && !this.isLinkFakeRoute(a))[0];
63
+ done = true;
64
+ this._router.navigateByUrl(link);
65
+ resolve(false);
66
+ }
67
+ }
68
+ else {
69
+ done = true;
70
+ resolve(true);
71
+ }
90
72
  }
91
- resolve(false);
73
+ moduleView = moduleView.replace(/([^\/]+\/?$)/, '');
74
+ pageView = pageView.replace(/(\/[^\/]+$)/, '');
92
75
  }
93
- else if (this.isLinkPartialRoute(partialView) && !user.roles.groups.some(a => a.views.some(b => b.startsWith(partialView) || partialView.startsWith(b)))) {
94
- if (user.roles.groups.some(a => a.views.some(b => b.startsWith(moduleView) && !this.doesLinkHaveParameter(b) && !this.isLinkFakeRoute(b)))) {
95
- let link = user.roles.groups.filter(a => a.views.some(b => b.startsWith(moduleView) && !this.doesLinkHaveParameter(b) && !this.isLinkFakeRoute(b)))[0].views.filter(a => a.startsWith(moduleView) && !this.doesLinkHaveParameter(a) && !this.isLinkFakeRoute(a))[0];
96
- this._router.navigateByUrl(link);
97
- }
98
- else {
99
- this._router.navigateByUrl('/home');
100
- }
76
+ if (!done) {
77
+ this._router.navigateByUrl('/home');
101
78
  resolve(false);
102
79
  }
103
- else {
104
- resolve(true);
105
- }
106
80
  }
107
81
  }
108
82
  });
@@ -121,58 +95,35 @@ export class AuthGuard {
121
95
  resolve(false);
122
96
  }
123
97
  else {
124
- let fullView = state.url.replace(/\/[a-f0-9]{24}$/, '').replace(/\?.+$/, ''); //All but ID and Query String
125
- let partialView = state.url.replace(/^(\/[-a-z]+\/[^\/]+)\/.*$/, '$1').replace(/\?.+$/, ''); //Module and First Child Only
126
- let moduleView = partialView.replace(/^(\/[-a-z]+\/).*$/, '$1'); //Module Only
98
+ let pageView = state.url.replace(/\/[a-f0-9]{24}$/, '').replace(/\?.+$/, ''); //All but ID and Query String
99
+ let moduleView = pageView.replace(/([^\/]+\/?$)/, '');
127
100
  if (user.roles.super_admin) {
128
101
  resolve(true);
129
102
  }
130
- else if (!this.isLinkFakeRoute(fullView)) {
131
- if (!this.isLinkPartialRoute(fullView) && !user.roles.groups.some(a => a.views.some(b => b === fullView))) {
132
- if (user.roles.groups.some(a => a.views.some(b => b.startsWith(moduleView) && !this.doesLinkHaveParameter(b) && !this.isLinkFakeRoute(b)))) {
133
- let link = user.roles.groups.filter(a => a.views.some(b => b.startsWith(moduleView) && !this.doesLinkHaveParameter(b) && !this.isLinkFakeRoute(b)))[0].views.filter(a => a.startsWith(moduleView) && !this.doesLinkHaveParameter(a) && !this.isLinkFakeRoute(a))[0];
134
- this._router.navigateByUrl(link);
135
- }
136
- else {
137
- this._router.navigateByUrl('/home');
138
- }
139
- resolve(false);
140
- }
141
- else if (this.isLinkPartialRoute(fullView) && !user.roles.groups.some(a => a.views.some(b => b.startsWith(fullView) || fullView.startsWith(b)))) {
142
- if (user.roles.groups.some(a => a.views.some(b => b.startsWith(moduleView) && !this.doesLinkHaveParameter(b) && !this.isLinkFakeRoute(b)))) {
143
- let link = user.roles.groups.filter(a => a.views.some(b => b.startsWith(moduleView) && !this.doesLinkHaveParameter(b) && !this.isLinkFakeRoute(b)))[0].views.filter(a => a.startsWith(moduleView) && !this.doesLinkHaveParameter(a) && !this.isLinkFakeRoute(a))[0];
144
- this._router.navigateByUrl(link);
145
- }
146
- else {
147
- this._router.navigateByUrl('/home');
148
- }
149
- resolve(false);
150
- }
151
- }
152
103
  else {
153
- if (!this.isLinkPartialRoute(partialView) && !user.roles.groups.some(a => a.views.some(b => b === partialView))) {
154
- if (user.roles.groups.some(a => a.views.some(b => b.startsWith(moduleView) && !this.doesLinkHaveParameter(b) && !this.isLinkFakeRoute(b)))) {
155
- let link = user.roles.groups.filter(a => a.views.some(b => b.startsWith(moduleView) && !this.doesLinkHaveParameter(b) && !this.isLinkFakeRoute(b)))[0].views.filter(a => a.startsWith(moduleView) && !this.doesLinkHaveParameter(a) && !this.isLinkFakeRoute(a))[0];
156
- this._router.navigateByUrl(link);
157
- }
158
- else {
159
- this._router.navigateByUrl('/home');
104
+ let done = false;
105
+ while (!done && pageView.split('/').length > 1) {
106
+ if (!this.isLinkFakeRoute(pageView)) {
107
+ if (!user.roles.groups.some(a => a.views.some(b => b === pageView))) {
108
+ if (user.roles.groups.some(a => a.views.some(b => b.startsWith(moduleView) && !this.doesLinkHaveParameter(b) && !this.isLinkFakeRoute(b)))) {
109
+ let link = user.roles.groups.filter(a => a.views.some(b => b.startsWith(moduleView) && !this.doesLinkHaveParameter(b) && !this.isLinkFakeRoute(b)))[0].views.filter(a => a.startsWith(moduleView) && !this.doesLinkHaveParameter(a) && !this.isLinkFakeRoute(a))[0];
110
+ done = true;
111
+ this._router.navigateByUrl(link);
112
+ resolve(false);
113
+ }
114
+ }
115
+ else {
116
+ done = true;
117
+ resolve(true);
118
+ }
160
119
  }
161
- resolve(false);
120
+ moduleView = moduleView.replace(/([^\/]+\/?$)/, '');
121
+ pageView = pageView.replace(/(\/[^\/]+$)/, '');
162
122
  }
163
- else if (this.isLinkPartialRoute(partialView) && !user.roles.groups.some(a => a.views.some(b => b.startsWith(partialView) || partialView.startsWith(b)))) {
164
- if (user.roles.groups.some(a => a.views.some(b => b.startsWith(moduleView) && !this.doesLinkHaveParameter(b) && !this.isLinkFakeRoute(b)))) {
165
- let link = user.roles.groups.filter(a => a.views.some(b => b.startsWith(moduleView) && !this.doesLinkHaveParameter(b) && !this.isLinkFakeRoute(b)))[0].views.filter(a => a.startsWith(moduleView) && !this.doesLinkHaveParameter(a) && !this.isLinkFakeRoute(a))[0];
166
- this._router.navigateByUrl(link);
167
- }
168
- else {
169
- this._router.navigateByUrl('/home');
170
- }
123
+ if (!done) {
124
+ this._router.navigateByUrl('/home');
171
125
  resolve(false);
172
126
  }
173
- else {
174
- resolve(true);
175
- }
176
127
  }
177
128
  }
178
129
  }
@@ -205,23 +156,10 @@ export class AuthGuard {
205
156
  }
206
157
  return true;
207
158
  }
208
- isLinkPartialRoute(link) {
209
- let permissions = this._aps.getAllModulePermissions();
210
- for (let i = 0; i < permissions.length; i++) {
211
- let permission = permissions[i];
212
- for (let j = 0; j < permission.views.length; j++) {
213
- let view = permission.views[j];
214
- if (view.link === link) {
215
- return !!view.partial_route;
216
- }
217
- }
218
- }
219
- return false;
220
- }
221
159
  }
222
160
  AuthGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: AuthGuard, deps: [{ token: i1.Router }, { token: i2.AuthService }, { token: i3.DialogService }, { token: i4.AccountManagerService }, { token: i5.CoreService }, { token: i6.OfflineManagerService }, { token: i7.AuthPermissionService }, { token: i8.AlertService }], target: i0.ɵɵFactoryTarget.Injectable });
223
161
  AuthGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: AuthGuard });
224
162
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: AuthGuard, decorators: [{
225
163
  type: Injectable
226
164
  }], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.AuthService }, { type: i3.DialogService }, { type: i4.AccountManagerService }, { type: i5.CoreService }, { type: i6.OfflineManagerService }, { type: i7.AuthPermissionService }, { type: i8.AlertService }]; } });
227
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1ndWFyZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL2F1dGgvYXV0aC1ndWFyZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFlLE1BQU0sRUFBK0MsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDbkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7Ozs7Ozs7O0FBRzlELE1BQU0sT0FBTyxTQUFTO0lBSXJCLFlBQW9CLE9BQWUsRUFDeEIsS0FBa0IsRUFDbEIsR0FBa0IsRUFDbEIsUUFBK0IsRUFDL0IsSUFBaUIsRUFDakIsUUFBK0IsRUFDL0IsSUFBMkIsRUFDM0IsTUFBb0I7UUFQWCxZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ3hCLFVBQUssR0FBTCxLQUFLLENBQWE7UUFDbEIsUUFBRyxHQUFILEdBQUcsQ0FBZTtRQUNsQixhQUFRLEdBQVIsUUFBUSxDQUF1QjtRQUMvQixTQUFJLEdBQUosSUFBSSxDQUFhO1FBQ2pCLGFBQVEsR0FBUixRQUFRLENBQXVCO1FBQy9CLFNBQUksR0FBSixJ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QUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDakQsSUFBSSxJQUFJLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFFL0IsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLElBQUksRUFBRTtvQkFDdkIsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztpQkFDekI7YUFDRDtTQUNEO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDYixDQUFDO0lBRUQsa0JBQWtCLENBQUMsSUFBWTtRQUM5QixJQUFJLFdBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7UUFFdEQsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDNUMsSUFBSSxVQUFVLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2hDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDakQsSUFBSSxJQUFJLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFFL0IsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLElBQUksRUFBRTtvQkFDdkIsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQztpQkFDNUI7YUFDRDtTQUNEO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZCxDQUFDOztzR0FwT1csU0FBUzswR0FBVCxTQUFTOzJGQUFULFNBQVM7a0JBRHJCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY2NvdW50TWFuYWdlclNlcnZpY2UgfSBmcm9tICcuLi9hY2NvdW50LW1hbmFnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDYW5BY3RpdmF0ZSwgUm91dGVyLCBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBSb3V0ZXJTdGF0ZVNuYXBzaG90IH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgRGlhbG9nU2VydmljZSB9IGZyb20gJy4uL3dpZGdldHMvZGlhbG9nL2RpYWxvZy5zZXJ2aWNlJztcbmltcG9ydCB7IE9mZmxpbmVNYW5hZ2VyU2VydmljZSB9IGZyb20gJy4uL29mZmxpbmUtbWFuYWdlci5zZXJ2aWNlJztcbmltcG9ydCB7IGRhdGVSZXZpdmVyIH0gZnJvbSAnLi4vdXRpbC9jb21tb24uaGVscGVyJztcbmltcG9ydCB7IENvcmVTZXJ2aWNlIH0gZnJvbSAnLi4vY29yZS5zZXJ2aWNlJztcbmltcG9ydCB7IEF1dGhQZXJtaXNzaW9uU2VydmljZSB9IGZyb20gJy4vYXV0aC1wZXJtaXNzaW9ucy5zZXJ2aWNlJztcbmltcG9ydCB7IEFsZXJ0U2VydmljZSB9IGZyb20gJy4uL3dpZGdldHMvYWxlcnQvYWxlcnQuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBdXRoR3VhcmQgaW1wbGVtZW50cyBDYW5BY3RpdmF0ZSB7XG5cblx0cmVkaXJlY3RVcmw6IHN0cmluZztcblxuXHRjb25zdHJ1Y3Rvcihwcml2YXRlIF9yb3V0ZXI6IFJvdXRlciwgXG5cdFx0XHRcdHByaXZhdGUgX2F1dGg6IEF1dGhTZXJ2aWNlLCBcblx0XHRcdFx0cHJpdmF0ZSBfZHM6IERpYWxvZ1NlcnZpY2UsXG5cdFx0XHRcdHByaXZhdGUgX2FjY291bnQ6IEFjY291bnRNYW5hZ2VyU2VydmljZSxcblx0XHRcdFx0cHJpdmF0ZSBfYXBwOiBDb3JlU2VydmljZSxcblx0XHRcdFx0cHJpdmF0ZSBfb2ZmbGluZTogT2ZmbGluZU1hbmFnZXJTZXJ2aWNlLFxuXHRcdFx0XHRwcml2YXRlIF9hcHM6IEF1dGhQZXJtaXNzaW9uU2VydmljZSxcblx0XHRcdFx0cHJpdmF0ZSBfYWxlcnQ6IEFsZXJ0U2VydmljZSkgXG5cdHt9XG5cdFxuXHRjYW5BY3RpdmF0ZShyb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgc3RhdGU6IFJvdXRlclN0YXRlU25hcHNob3QpOiBQcm9taXNlPGJvb2xlYW4+fGJvb2xlYW4ge1xuXHRcdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuXHRcdFx0dGhpcy5fYWNjb3VudC5pc0luaXRDb21wbGV0ZWQoKS50aGVuKCgpID0+IHtcblx0XHRcdFx0bGV0IHVzZXIgPSB0aGlzLl9hY2NvdW50LmdldFVzZXIoKTtcblxuXHRcdFx0XHRpZiAoIXVzZXIpIHtcblx0XHRcdFx0XHR1c2VyID0gSlNPTi5wYXJzZSh0aGlzLl9vZmZsaW5lLmdldFVzZXIoKSwgZGF0ZVJldml2ZXIpO1xuXHRcdFx0XHRcdGlmICh1c2VyKSB7XG5cdFx0XHRcdFx0XHR0aGlzLl9hY2NvdW50LnNldFVzZXIodXNlcik7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0aWYgKCF1c2VyKSB7XG5cdFx0XHRcdFx0aWYgKG5hdmlnYXRvci5vbkxpbmUpIHtcblx0XHRcdFx0XHRcdHRoaXMuX2F1dGgubG9naW5Vc2VyKCkudGhlbihuZXdVc2VyID0+IHtcblx0XHRcdFx0XHRcdFx0dGhpcy5fYWNjb3VudC5pc0xvZ2luQ29tcGxldGVkKCkudGhlbigoKSA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0dXNlciA9IHRoaXMuX2FjY291bnQuZ2V0VXNlcigpO1xuXG5cdFx0XHRcdFx0XHRcdFx0aWYgKCF1c2VyLmFjdGl2ZSkge1xuXHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5fcm91dGVyLm5hdmlnYXRlQnlVcmwoJy9ob21lJyk7XG5cdFx0XHRcdFx0XHRcdFx0XHRyZXNvbHZlKGZhbHNlKTtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRsZXQgZnVsbFZpZXcgPSBzdGF0ZS51cmwucmVwbGFjZSgvXFwvW2EtZjAtOV17MjR9JC8sICcnKS5yZXBsYWNlKC9cXD8uKyQvLCAnJyk7IC8vQWxsIGJ1dCBJRCBhbmQgUXVlcnkgU3RyaW5nXG5cdFx0XHRcdFx0XHRcdFx0XHRsZXQgcGFydGlhbFZpZXcgPSBzdGF0ZS51cmwucmVwbGFjZSgvXihcXC9bLWEtel0rXFwvW15cXC9dKylcXC8uKiQvLCAnJDEnKS5yZXBsYWNlKC9cXD8uKyQvLCAnJyk7IC8vTW9kdWxlIGFuZCBGaXJzdCBDaGlsZCBPbmx5XG5cdFx0XHRcdFx0XHRcdFx0XHRsZXQgbW9kdWxlVmlldyA9IHBhcnRpYWxWaWV3LnJlcGxhY2UoL14oXFwvWy1hLXpdK1xcLykuKiQvLCAnJDEnKTsgLy9Nb2R1bGUgT25seVxuXHRcdFx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdFx0XHRpZiAodXNlci5yb2xlcy5zdXBlcl9hZG1pbikge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRyZXNvbHZlKHRydWUpO1xuXHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0ZWxzZSBpZiAoIXRoaXMuaXNMaW5rRmFrZVJvdXRlKGZ1bGxWaWV3KSkge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRpZiAoIXRoaXMuaXNMaW5rUGFydGlhbFJvdXRlKGZ1bGxWaWV3KSAmJiAhdXNlci5yb2xlcy5ncm91cHMuc29tZShhID0+IGEudmlld3Muc29tZShiID0+IGIgPT09IGZ1bGxWaWV3KSkpIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRpZiAodXNlci5yb2xlcy5ncm91cHMuc29tZShhID0+IGEudmlld3Muc29tZShiID0+IGIuc3RhcnRzV2l0aChtb2R1bGVWaWV3KSAmJiAhdGhpcy5kb2VzTGlua0hhdmVQYXJhbWV0ZXIoYikgJiYgIXRoaXMuaXNMaW5rRmFrZVJvdXRlKGIpKSkpIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGxldCBsaW5rID0gdXNlci5yb2xlcy5ncm91cHMuZmlsdGVyKGEgPT4gYS52aWV3cy5zb21lKGIgPT4gYi5zdGFydHNXaXRoKG1vZHVsZVZpZXcpICYmICF0aGlzLmRvZXNMaW5rSGF2ZVBhcmFtZXRlcihiKSAmJiAhdGhpcy5pc0xpbmtGYWtlUm91dGUoYikpKVswXS52aWV3cy5maWx0ZXIoYSA9PiBhLnN0YXJ0c1dpdGgobW9kdWxlVmlldykgJiYgIXRoaXMuZG9lc0xpbmtIYXZlUGFyYW1ldGVyKGEpICYmICF0aGlzLmlzTGlua0Zha2VSb3V0ZShhKSlbMF07XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR0aGlzLl9yb3V0ZXIubmF2aWdhdGVCeVVybChsaW5rKTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR0aGlzLl9yb3V0ZXIubmF2aWdhdGVCeVVybCgnL2hvbWUnKTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0cmVzb2x2ZShmYWxzZSk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0ZWxzZSBpZiAodGhpcy5pc0xpbmtQYXJ0aWFsUm91dGUoZnVsbFZpZXcpICYmICF1c2VyLnJvbGVzLmdyb3Vwcy5zb21lKGEgPT4gYS52aWV3cy5zb21lKGIgPT4gYi5zdGFydHNXaXRoKGZ1bGxWaWV3KSB8fCBmdWxsVmlldy5zdGFydHNXaXRoKGIpKSkpIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRpZiAodXNlci5yb2xlcy5ncm91cHMuc29tZShhID0+IGEudmlld3Muc29tZShiID0+IGIuc3RhcnRzV2l0aChtb2R1bGVWaWV3KSAmJiAhdGhpcy5kb2VzTGlua0hhdmVQYXJhbWV0ZXIoYikgJiYgIXRoaXMuaXNMaW5rRmFrZVJvdXRlKGIpKSkpIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGxldCBsaW5rID0gdXNlci5yb2xlcy5ncm91cHMuZmlsdGVyKGEgPT4gYS52aWV3cy5zb21lKGIgPT4gYi5zdGFydHNXaXRoKG1vZHVsZVZpZXcpICYmICF0aGlzLmRvZXNMaW5rSGF2ZVBhcmFtZXRlcihiKSAmJiAhdGhpcy5pc0xpbmtGYWtlUm91dGUoYikpKVswXS52aWV3cy5maWx0ZXIoYSA9PiBhLnN0YXJ0c1dpdGgobW9kdWxlVmlldykgJiYgIXRoaXMuZG9lc0xpbmtIYXZlUGFyYW1ldGVyKGEpICYmICF0aGlzLmlzTGlua0Zha2VSb3V0ZShhKSlbMF07XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR0aGlzLl9yb3V0ZXIubmF2aWdhdGVCeVVybChsaW5rKTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR0aGlzLl9yb3V0ZXIubmF2aWdhdGVCeVVybCgnL2hvbWUnKTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0cmVzb2x2ZShmYWxzZSk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0cmVzb2x2ZSh0cnVlKTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdGlmICghdGhpcy5pc0xpbmtQYXJ0aWFsUm91dGUocGFydGlhbFZpZXcpICYmICF1c2VyLnJvbGVzLmdyb3Vwcy5zb21lKGEgPT4gYS52aWV3cy5zb21lKGIgPT4gYiA9PT0gcGFydGlhbFZpZXcpKSkge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGlmICh1c2VyLnJvbGVzLmdyb3Vwcy5zb21lKGEgPT4gYS52aWV3cy5zb21lKGIgPT4gYi5zdGFydHNXaXRoKG1vZHVsZVZpZXcpICYmICF0aGlzLmRvZXNMaW5rSGF2ZVBhcmFtZXRlcihiKSAmJiAhdGhpcy5pc0xpbmtGYWtlUm91dGUoYikpKSkge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0bGV0IGxpbmsgPSB1c2VyLnJvbGVzLmdyb3Vwcy5maWx0ZXIoYSA9PiBhLnZpZXdzLnNvbWUoYiA9PiBiLnN0YXJ0c1dpdGgobW9kdWxlVmlldykgJiYgIXRoaXMuZG9lc0xpbmtIYXZlUGFyYW1ldGVyKGIpICYmICF0aGlzLmlzTGlua0Zha2VSb3V0ZShiKSkpWzBdLnZpZXdzLmZpbHRlcihhID0+IGEuc3RhcnRzV2l0aChtb2R1bGVWaWV3KSAmJiAhdGhpcy5kb2VzTGlua0hhdmVQYXJhbWV0ZXIoYSkgJiYgIXRoaXMuaXNMaW5rRmFrZVJvdXRlKGEpKVswXTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHRoaXMuX3JvdXRlci5uYXZpZ2F0ZUJ5VXJsKGxpbmspO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHRoaXMuX3JvdXRlci5uYXZpZ2F0ZUJ5VXJsKCcvaG9tZScpO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRyZXNvbHZlKGZhbHNlKTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRlbHNlIGlmICh0aGlzLmlzTGlua1BhcnRpYWxSb3V0ZShwYXJ0aWFsVmlldykgJiYgIXVzZXIucm9sZXMuZ3JvdXBzLnNvbWUoYSA9PiBhLnZpZXdzLnNvbWUoYiA9PiBiLnN0YXJ0c1dpdGgocGFydGlhbFZpZXcpIHx8IHBhcnRpYWxWaWV3LnN0YXJ0c1dpdGgoYikpKSkge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGlmICh1c2VyLnJvbGVzLmdyb3Vwcy5zb21lKGEgPT4gYS52aWV3cy5zb21lKGIgPT4gYi5zdGFydHNXaXRoKG1vZHVsZVZpZXcpICYmICF0aGlzLmRvZXNMaW5rSGF2ZVBhcmFtZXRlcihiKSAmJiAhdGhpcy5pc0xpbmtGYWtlUm91dGUoYikpKSkge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0bGV0IGxpbmsgPSB1c2VyLnJvbGVzLmdyb3Vwcy5maWx0ZXIoYSA9PiBhLnZpZXdzLnNvbWUoYiA9PiBiLnN0YXJ0c1dpdGgobW9kdWxlVmlldykgJiYgIXRoaXMuZG9lc0xpbmtIYXZlUGFyYW1ldGVyKGIpICYmICF0aGlzLmlzTGlua0Zha2VSb3V0ZShiKSkpWzBdLnZpZXdzLmZpbHRlcihhID0+IGEuc3RhcnRzV2l0aChtb2R1bGVWaWV3KSAmJiAhdGhpcy5kb2VzTGlua0hhdmVQYXJhbWV0ZXIoYSkgJiYgIXRoaXMuaXNMaW5rRmFrZVJvdXRlKGEpKVswXTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHRoaXMuX3JvdXRlci5uYXZpZ2F0ZUJ5VXJsKGxpbmspO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHRoaXMuX3JvdXRlci5uYXZpZ2F0ZUJ5VXJsKCcvaG9tZScpO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRyZXNvbHZlKGZhbHNlKTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRyZXNvbHZlKHRydWUpO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRcdH0sICgpID0+IHtcblx0XHRcdFx0XHRcdFx0dGhpcy5fcm91dGVyLm5hdmlnYXRlQnlVcmwoJy9ob21lJyk7XG5cdFx0XHRcdFx0XHRcdHJlc29sdmUoZmFsc2UpO1xuXHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdFx0cmVzb2x2ZSh0cnVlKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0aWYgKCF1c2VyLmFjdGl2ZSkge1xuXHRcdFx0XHRcdFx0dGhpcy5fcm91dGVyLm5hdmlnYXRlQnlVcmwoJy9ob21lJyk7XG5cdFx0XHRcdFx0XHRyZXNvbHZlKGZhbHNlKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0XHRsZXQgZnVsbFZpZXcgPSBzdGF0ZS51cmwucmVwbGFjZSgvXFwvW2EtZjAtOV17MjR9JC8sICcnKS5yZXBsYWNlKC9cXD8uKyQvLCAnJyk7IC8vQWxsIGJ1dCBJRCBhbmQgUXVlcnkgU3RyaW5nXG5cdFx0XHRcdFx0XHRsZXQgcGFydGlhbFZpZXcgPSBzdGF0ZS51cmwucmVwbGFjZSgvXihcXC9bLWEtel0rXFwvW15cXC9dKylcXC8uKiQvLCAnJDEnKS5yZXBsYWNlKC9cXD8uKyQvLCAnJyk7IC8vTW9kdWxlIGFuZCBGaXJzdCBDaGlsZCBPbmx5XG5cdFx0XHRcdFx0XHRsZXQgbW9kdWxlVmlldyA9IHBhcnRpYWxWaWV3LnJlcGxhY2UoL14oXFwvWy1hLXpdK1xcLykuKiQvLCAnJDEnKTsgLy9Nb2R1bGUgT25seVxuXHRcdFx0XHRcblx0XHRcdFx0XHRcdGlmICh1c2VyLnJvbGVzLnN1cGVyX2FkbWluKSB7XG5cdFx0XHRcdFx0XHRcdHJlc29sdmUodHJ1ZSk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRlbHNlIGlmICghdGhpcy5pc0xpbmtGYWtlUm91dGUoZnVsbFZpZXcpKSB7XG5cdFx0XHRcdFx0XHRcdGlmICghdGhpcy5pc0xpbmtQYXJ0aWFsUm91dGUoZnVsbFZpZXcpICYmICF1c2VyLnJvbGVzLmdyb3Vwcy5zb21lKGEgPT4gYS52aWV3cy5zb21lKGIgPT4gYiA9PT0gZnVsbFZpZXcpKSkge1xuXHRcdFx0XHRcdFx0XHRcdGlmICh1c2VyLnJvbGVzLmdyb3Vwcy5zb21lKGEgPT4gYS52aWV3cy5zb21lKGIgPT4gYi5zdGFydHNXaXRoKG1vZHVsZVZpZXcpICYmICF0aGlzLmRvZXNMaW5rSGF2ZVBhcmFtZXRlcihiKSAmJiAhdGhpcy5pc0xpbmtGYWtlUm91dGUoYikpKSkge1xuXHRcdFx0XHRcdFx0XHRcdFx0bGV0IGxpbmsgPSB1c2VyLnJvbGVzLmdyb3Vwcy5maWx0ZXIoYSA9PiBhLnZpZXdzLnNvbWUoYiA9PiBiLnN0YXJ0c1dpdGgobW9kdWxlVmlldykgJiYgIXRoaXMuZG9lc0xpbmtIYXZlUGFyYW1ldGVyKGIpICYmICF0aGlzLmlzTGlua0Zha2VSb3V0ZShiKSkpWzBdLnZpZXdzLmZpbHRlcihhID0+IGEuc3RhcnRzV2l0aChtb2R1bGVWaWV3KSAmJiAhdGhpcy5kb2VzTGlua0hhdmVQYXJhbWV0ZXIoYSkgJiYgIXRoaXMuaXNMaW5rRmFrZVJvdXRlKGEpKVswXTtcblx0XHRcdFx0XHRcdFx0XHRcdHRoaXMuX3JvdXRlci5uYXZpZ2F0ZUJ5VXJsKGxpbmspO1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRcdHRoaXMuX3JvdXRlci5uYXZpZ2F0ZUJ5VXJsKCcvaG9tZScpO1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0XHRyZXNvbHZlKGZhbHNlKTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRlbHNlIGlmICh0aGlzLmlzTGlua1BhcnRpYWxSb3V0ZShmdWxsVmlldykgJiYgIXVzZXIucm9sZXMuZ3JvdXBzLnNvbWUoYSA9PiBhLnZpZXdzLnNvbWUoYiA9PiBiLnN0YXJ0c1dpdGgoZnVsbFZpZXcpIHx8IGZ1bGxWaWV3LnN0YXJ0c1dpdGgoYikpKSkge1xuXHRcdFx0XHRcdFx0XHRcdGlmICh1c2VyLnJvbGVzLmdyb3Vwcy5zb21lKGEgPT4gYS52aWV3cy5zb21lKGIgPT4gYi5zdGFydHNXaXRoKG1vZHVsZVZpZXcpICYmICF0aGlzLmRvZXNMaW5rSGF2ZVBhcmFtZXRlcihiKSAmJiAhdGhpcy5pc0xpbmtGYWtlUm91dGUoYikpKSkge1xuXHRcdFx0XHRcdFx0XHRcdFx0bGV0IGxpbmsgPSB1c2VyLnJvbGVzLmdyb3Vwcy5maWx0ZXIoYSA9PiBhLnZpZXdzLnNvbWUoYiA9PiBiLnN0YXJ0c1dpdGgobW9kdWxlVmlldykgJiYgIXRoaXMuZG9lc0xpbmtIYXZlUGFyYW1ldGVyKGIpICYmICF0aGlzLmlzTGlua0Zha2VSb3V0ZShiKSkpWzBdLnZpZXdzLmZpbHRlcihhID0+IGEuc3RhcnRzV2l0aChtb2R1bGVWaWV3KSAmJiAhdGhpcy5kb2VzTGlua0hhdmVQYXJhbWV0ZXIoYSkgJiYgIXRoaXMuaXNMaW5rRmFrZVJvdXRlKGEpKVswXTtcblx0XHRcdFx0XHRcdFx0XHRcdHRoaXMuX3JvdXRlci5uYXZpZ2F0ZUJ5VXJsKGxpbmspO1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRcdHRoaXMuX3JvdXRlci5uYXZpZ2F0ZUJ5VXJsKCcvaG9tZScpO1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0XHRyZXNvbHZlKGZhbHNlKTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0XHRcdGlmICghdGhpcy5pc0xpbmtQYXJ0aWFsUm91dGUocGFydGlhbFZpZXcpICYmICF1c2VyLnJvbGVzLmdyb3Vwcy5zb21lKGEgPT4gYS52aWV3cy5zb21lKGIgPT4gYiA9PT0gcGFydGlhbFZpZXcpKSkge1xuXHRcdFx0XHRcdFx0XHRcdGlmICh1c2VyLnJvbGVzLmdyb3Vwcy5zb21lKGEgPT4gYS52aWV3cy5zb21lKGIgPT4gYi5zdGFydHNXaXRoKG1vZHVsZVZpZXcpICYmICF0aGlzLmRvZXNMaW5rSGF2ZVBhcmFtZXRlcihiKSAmJiAhdGhpcy5pc0xpbmtGYWtlUm91dGUoYikpKSkge1xuXHRcdFx0XHRcdFx0XHRcdFx0bGV0IGxpbmsgPSB1c2VyLnJvbGVzLmdyb3Vwcy5maWx0ZXIoYSA9PiBhLnZpZXdzLnNvbWUoYiA9PiBiLnN0YXJ0c1dpdGgobW9kdWxlVmlldykgJiYgIXRoaXMuZG9lc0xpbmtIYXZlUGFyYW1ldGVyKGIpICYmICF0aGlzLmlzTGlua0Zha2VSb3V0ZShiKSkpWzBdLnZpZXdzLmZpbHRlcihhID0+IGEuc3RhcnRzV2l0aChtb2R1bGVWaWV3KSAmJiAhdGhpcy5kb2VzTGlua0hhdmVQYXJhbWV0ZXIoYSkgJiYgIXRoaXMuaXNMaW5rRmFrZVJvdXRlKGEpKVswXTtcblx0XHRcdFx0XHRcdFx0XHRcdHRoaXMuX3JvdXRlci5uYXZpZ2F0ZUJ5VXJsKGxpbmspO1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRcdHRoaXMuX3JvdXRlci5uYXZpZ2F0ZUJ5VXJsKCcvaG9tZScpO1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0XHRyZXNvbHZlKGZhbHNlKTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRlbHNlIGlmICh0aGlzLmlzTGlua1BhcnRpYWxSb3V0ZShwYXJ0aWFsVmlldykgJiYgIXVzZXIucm9sZXMuZ3JvdXBzLnNvbWUoYSA9PiBhLnZpZXdzLnNvbWUoYiA9PiBiLnN0YXJ0c1dpdGgocGFydGlhbFZpZXcpIHx8IHBhcnRpYWxWaWV3LnN0YXJ0c1dpdGgoYikpKSkge1xuXHRcdFx0XHRcdFx0XHRcdGlmICh1c2VyLnJvbGVzLmdyb3Vwcy5zb21lKGEgPT4gYS52aWV3cy5zb21lKGIgPT4gYi5zdGFydHNXaXRoKG1vZHVsZVZpZXcpICYmICF0aGlzLmRvZXNMaW5rSGF2ZVBhcmFtZXRlcihiKSAmJiAhdGhpcy5pc0xpbmtGYWtlUm91dGUoYikpKSkge1xuXHRcdFx0XHRcdFx0XHRcdFx0bGV0IGxpbmsgPSB1c2VyLnJvbGVzLmdyb3Vwcy5maWx0ZXIoYSA9PiBhLnZpZXdzLnNvbWUoYiA9PiBiLnN0YXJ0c1dpdGgobW9kdWxlVmlldykgJiYgIXRoaXMuZG9lc0xpbmtIYXZlUGFyYW1ldGVyKGIpICYmICF0aGlzLmlzTGlua0Zha2VSb3V0ZShiKSkpWzBdLnZpZXdzLmZpbHRlcihhID0+IGEuc3RhcnRzV2l0aChtb2R1bGVWaWV3KSAmJiAhdGhpcy5kb2VzTGlua0hhdmVQYXJhbWV0ZXIoYSkgJiYgIXRoaXMuaXNMaW5rRmFrZVJvdXRlKGEpKVswXTtcblx0XHRcdFx0XHRcdFx0XHRcdHRoaXMuX3JvdXRlci5uYXZpZ2F0ZUJ5VXJsKGxpbmspO1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRcdHRoaXMuX3JvdXRlci5uYXZpZ2F0ZUJ5VXJsKCcvaG9tZScpO1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdFx0XHRyZXNvbHZlKGZhbHNlKTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRyZXNvbHZlKHRydWUpO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9LCAoKSA9PiB7fSk7XG5cdFx0fSk7XG5cdH1cblxuXHRkb2VzTGlua0hhdmVQYXJhbWV0ZXIobGluazogc3RyaW5nKSB7XG5cdFx0bGV0IHBlcm1pc3Npb25zID0gdGhpcy5fYXBzLmdldEFsbE1vZHVsZVBlcm1pc3Npb25zKCk7XG5cblx0XHRmb3IgKGxldCBpID0gMDsgaSA8IHBlcm1pc3Npb25zLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRsZXQgcGVybWlzc2lvbiA9IHBlcm1pc3Npb25zW2ldO1xuXHRcdFx0Zm9yIChsZXQgaiA9IDA7IGogPCBwZXJtaXNzaW9uLnZpZXdzLmxlbmd0aDsgaisrKSB7XG5cdFx0XHRcdGxldCB2aWV3ID0gcGVybWlzc2lvbi52aWV3c1tqXTtcblxuXHRcdFx0XHRpZiAodmlldy5saW5rID09PSBsaW5rKSB7XG5cdFx0XHRcdFx0cmV0dXJuICEhdmlldy5oYXNfcGFyYW1ldGVyO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG5cblx0aXNMaW5rRmFrZVJvdXRlKGxpbms6IHN0cmluZykge1xuXHRcdGxldCBwZXJtaXNzaW9ucyA9IHRoaXMuX2Fwcy5nZXRBbGxNb2R1bGVQZXJtaXNzaW9ucygpO1xuXG5cdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBwZXJtaXNzaW9ucy5sZW5ndGg7IGkrKykge1xuXHRcdFx0bGV0IHBlcm1pc3Npb24gPSBwZXJtaXNzaW9uc1tpXTtcblx0XHRcdGZvciAobGV0IGogPSAwOyBqIDwgcGVybWlzc2lvbi52aWV3cy5sZW5ndGg7IGorKykge1xuXHRcdFx0XHRsZXQgdmlldyA9IHBlcm1pc3Npb24udmlld3Nbal07XG5cblx0XHRcdFx0aWYgKHZpZXcubGluayA9PT0gbGluaykge1xuXHRcdFx0XHRcdHJldHVybiAhIXZpZXcuZmFrZV9yb3V0ZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiB0cnVlO1xuXHR9XG5cblx0aXNMaW5rUGFydGlhbFJvdXRlKGxpbms6IHN0cmluZykge1xuXHRcdGxldCBwZXJtaXNzaW9ucyA9IHRoaXMuX2Fwcy5nZXRBbGxNb2R1bGVQZXJtaXNzaW9ucygpO1xuXG5cdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBwZXJtaXNzaW9ucy5sZW5ndGg7IGkrKykge1xuXHRcdFx0bGV0IHBlcm1pc3Npb24gPSBwZXJtaXNzaW9uc1tpXTtcblx0XHRcdGZvciAobGV0IGogPSAwOyBqIDwgcGVybWlzc2lvbi52aWV3cy5sZW5ndGg7IGorKykge1xuXHRcdFx0XHRsZXQgdmlldyA9IHBlcm1pc3Npb24udmlld3Nbal07XG5cblx0XHRcdFx0aWYgKHZpZXcubGluayA9PT0gbGluaykge1xuXHRcdFx0XHRcdHJldHVybiAhIXZpZXcucGFydGlhbF9yb3V0ZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiBmYWxzZTtcblx0fVxufSJdfQ==
165
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1ndWFyZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL2F1dGgvYXV0aC1ndWFyZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFlLE1BQU0sRUFBK0MsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDbkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7Ozs7Ozs7O0FBRzlELE1BQU0sT0FBTyxTQUFTO0lBSXJCLFlBQW9CLE9BQWUsRUFDeEIsS0FBa0IsRUFDbEIsR0FBa0IsRUFDbEIsUUFBK0IsRUFDL0IsSUFBaUIsRUFDakIsUUFBK0IsRUFDL0IsSUFBMkIsRUFDM0IsTUFBb0I7UUFQWCxZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ3hCLFVBQUssR0FBTCxLQUFLLENBQWE7UUFDbEIsUUFBRyxHQUFILEdBQUcsQ0FBZTtRQUNsQixhQUFRLEdBQVIsUUFBUSxDQUF1QjtRQUMvQixTQUFJLEdBQUosSUFBSSxDQUFhO1FBQ2pCLGFBQVEsR0FBUixRQUFRLENBQXVCO1FBQy9CLFNBQUksR0FBSixJ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SUFBSSxVQUFVLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2hDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDakQsSUFBSSxJQUFJLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFFL0IsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLElBQUksRUFBRTtvQkFDdkIsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztpQkFDekI7YUFDRDtTQUNEO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDYixDQUFDOztzR0FoS1csU0FBUzswR0FBVCxTQUFTOzJGQUFULFNBQVM7a0JBRHJCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY2NvdW50TWFuYWdlclNlcnZpY2UgfSBmcm9tICcuLi9hY2NvdW50LW1hbmFnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDYW5BY3RpdmF0ZSwgUm91dGVyLCBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBSb3V0ZXJTdGF0ZVNuYXBzaG90IH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgRGlhbG9nU2VydmljZSB9IGZyb20gJy4uL3dpZGdldHMvZGlhbG9nL2RpYWxvZy5zZXJ2aWNlJztcbmltcG9ydCB7IE9mZmxpbmVNYW5hZ2VyU2VydmljZSB9IGZyb20gJy4uL29mZmxpbmUtbWFuYWdlci5zZXJ2aWNlJztcbmltcG9ydCB7IGRhdGVSZXZpdmVyIH0gZnJvbSAnLi4vdXRpbC9jb21tb24uaGVscGVyJztcbmltcG9ydCB7IENvcmVTZXJ2aWNlIH0gZnJvbSAnLi4vY29yZS5zZXJ2aWNlJztcbmltcG9ydCB7IEF1dGhQZXJtaXNzaW9uU2VydmljZSB9IGZyb20gJy4vYXV0aC1wZXJtaXNzaW9ucy5zZXJ2aWNlJztcbmltcG9ydCB7IEFsZXJ0U2VydmljZSB9IGZyb20gJy4uL3dpZGdldHMvYWxlcnQvYWxlcnQuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBdXRoR3VhcmQgaW1wbGVtZW50cyBDYW5BY3RpdmF0ZSB7XG5cblx0cmVkaXJlY3RVcmw6IHN0cmluZztcblxuXHRjb25zdHJ1Y3Rvcihwcml2YXRlIF9yb3V0ZXI6IFJvdXRlciwgXG5cdFx0XHRcdHByaXZhdGUgX2F1dGg6IEF1dGhTZXJ2aWNlLCBcblx0XHRcdFx0cHJpdmF0ZSBfZHM6IERpYWxvZ1NlcnZpY2UsXG5cdFx0XHRcdHByaXZhdGUgX2FjY291bnQ6IEFjY291bnRNYW5hZ2VyU2VydmljZSxcblx0XHRcdFx0cHJpdmF0ZSBfYXBwOiBDb3JlU2VydmljZSxcblx0XHRcdFx0cHJpdmF0ZSBfb2ZmbGluZTogT2ZmbGluZU1hbmFnZXJTZXJ2aWNlLFxuXHRcdFx0XHRwcml2YXRlIF9hcHM6IEF1dGhQZXJtaXNzaW9uU2VydmljZSxcblx0XHRcdFx0cHJpdmF0ZSBfYWxlcnQ6IEFsZXJ0U2VydmljZSkgXG5cdHt9XG5cdFxuXHRjYW5BY3RpdmF0ZShyb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgc3RhdGU6IFJvdXRlclN0YXRlU25hcHNob3QpOiBQcm9taXNlPGJvb2xlYW4+fGJvb2xlYW4ge1xuXHRcdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuXHRcdFx0dGhpcy5fYWNjb3VudC5pc0luaXRDb21wbGV0ZWQoKS50aGVuKCgpID0+IHtcblx0XHRcdFx0bGV0IHVzZXIgPSB0aGlzLl9hY2NvdW50LmdldFVzZXIoKTtcblxuXHRcdFx0XHRpZiAoIXVzZXIpIHtcblx0XHRcdFx0XHR1c2VyID0gSlNPTi5wYXJzZSh0aGlzLl9vZmZsaW5lLmdldFVzZXIoKSwgZGF0ZVJldml2ZXIpO1xuXHRcdFx0XHRcdGlmICh1c2VyKSB7XG5cdFx0XHRcdFx0XHR0aGlzLl9hY2NvdW50LnNldFVzZXIodXNlcik7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0aWYgKCF1c2VyKSB7XG5cdFx0XHRcdFx0aWYgKG5hdmlnYXRvci5vbkxpbmUpIHtcblx0XHRcdFx0XHRcdHRoaXMuX2F1dGgubG9naW5Vc2VyKCkudGhlbihuZXdVc2VyID0+IHtcblx0XHRcdFx0XHRcdFx0dGhpcy5fYWNjb3VudC5pc0xvZ2luQ29tcGxldGVkKCkudGhlbigoKSA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0dXNlciA9IHRoaXMuX2FjY291bnQuZ2V0VXNlcigpO1xuXG5cdFx0XHRcdFx0XHRcdFx0aWYgKCF1c2VyLmFjdGl2ZSkge1xuXHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5fcm91dGVyLm5hdmlnYXRlQnlVcmwoJy9ob21lJyk7XG5cdFx0XHRcdFx0XHRcdFx0XHRyZXNvbHZlKGZhbHNlKTtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRsZXQgcGFnZVZpZXcgPSBzdGF0ZS51cmwucmVwbGFjZSgvXFwvW2EtZjAtOV17MjR9JC8sICcnKS5yZXBsYWNlKC9cXD8uKyQvLCAnJyk7IC8vQWxsIGJ1dCBJRCBhbmQgUXVlcnkgU3RyaW5nXG5cdFx0XHRcdFx0XHRcdFx0XHRsZXQgbW9kdWxlVmlldyA9IHBhZ2VWaWV3LnJlcGxhY2UoLyhbXlxcL10rXFwvPyQpLywgJycpO1xuXHRcdFx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdFx0XHRpZiAodXNlci5yb2xlcy5zdXBlcl9hZG1pbikge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRyZXNvbHZlKHRydWUpO1xuXHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdGxldCBkb25lID0gZmFsc2U7XG5cblx0XHRcdFx0XHRcdFx0XHRcdFx0d2hpbGUgKCFkb25lICYmIHBhZ2VWaWV3LnNwbGl0KCcvJykubGVuZ3RoID4gMSkge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGlmICghdGhpcy5pc0xpbmtGYWtlUm91dGUocGFnZVZpZXcpKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRpZiAoIXVzZXIucm9sZXMuZ3JvdXBzLnNvbWUoYSA9PiBhLnZpZXdzLnNvbWUoYiA9PiBiID09PSBwYWdlVmlldykpKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGlmICh1c2VyLnJvbGVzLmdyb3Vwcy5zb21lKGEgPT4gYS52aWV3cy5zb21lKGIgPT4gYi5zdGFydHNXaXRoKG1vZHVsZVZpZXcpICYmICF0aGlzLmRvZXNMaW5rSGF2ZVBhcmFtZXRlcihiKSAmJiAhdGhpcy5pc0xpbmtGYWtlUm91dGUoYikpKSkge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGxldCBsaW5rID0gdXNlci5yb2xlcy5ncm91cHMuZmlsdGVyKGEgPT4gYS52aWV3cy5zb21lKGIgPT4gYi5zdGFydHNXaXRoKG1vZHVsZVZpZXcpICYmICF0aGlzLmRvZXNMaW5rSGF2ZVBhcmFtZXRlcihiKSAmJiAhdGhpcy5pc0xpbmtGYWtlUm91dGUoYikpKVswXS52aWV3cy5maWx0ZXIoYSA9PiBhLnN0YXJ0c1dpdGgobW9kdWxlVmlldykgJiYgIXRoaXMuZG9lc0xpbmtIYXZlUGFyYW1ldGVyKGEpICYmICF0aGlzLmlzTGlua0Zha2VSb3V0ZShhKSlbMF07XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ZG9uZSA9IHRydWU7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5fcm91dGVyLm5hdmlnYXRlQnlVcmwobGluayk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0cmVzb2x2ZShmYWxzZSk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRkb25lID0gdHJ1ZTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0cmVzb2x2ZSh0cnVlKTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRtb2R1bGVWaWV3ID0gbW9kdWxlVmlldy5yZXBsYWNlKC8oW15cXC9dK1xcLz8kKS8sICcnKTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRwYWdlVmlldyA9IHBhZ2VWaWV3LnJlcGxhY2UoLyhcXC9bXlxcL10rJCkvLCAnJyk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0XHRcdFx0XHRpZiAoIWRvbmUpIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR0aGlzLl9yb3V0ZXIubmF2aWdhdGVCeVVybCgnL2hvbWUnKTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRyZXNvbHZlKGZhbHNlKTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0XHR9LCAoKSA9PiB7XG5cdFx0XHRcdFx0XHRcdHRoaXMuX3JvdXRlci5uYXZpZ2F0ZUJ5VXJsKCcvaG9tZScpO1xuXHRcdFx0XHRcdFx0XHRyZXNvbHZlKGZhbHNlKTtcblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRlbHNlIHtcblx0XHRcdFx0XHRcdHJlc29sdmUodHJ1ZSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdGlmICghdXNlci5hY3RpdmUpIHtcblx0XHRcdFx0XHRcdHRoaXMuX3JvdXRlci5uYXZpZ2F0ZUJ5VXJsKCcvaG9tZScpO1xuXHRcdFx0XHRcdFx0cmVzb2x2ZShmYWxzZSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdFx0bGV0IHBhZ2VWaWV3ID0gc3RhdGUudXJsLnJlcGxhY2UoL1xcL1thLWYwLTldezI0fSQvLCAnJykucmVwbGFjZSgvXFw/LiskLywgJycpOyAvL0FsbCBidXQgSUQgYW5kIFF1ZXJ5IFN0cmluZ1xuXHRcdFx0XHRcdFx0bGV0IG1vZHVsZVZpZXcgPSBwYWdlVmlldy5yZXBsYWNlKC8oW15cXC9dK1xcLz8kKS8sICcnKTtcblx0XHRcdFx0XHRcdFxuXHRcdFx0XHRcdFx0aWYgKHVzZXIucm9sZXMuc3VwZXJfYWRtaW4pIHtcblx0XHRcdFx0XHRcdFx0cmVzb2x2ZSh0cnVlKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRsZXQgZG9uZSA9IGZhbHNlO1xuXG5cdFx0XHRcdFx0XHRcdHdoaWxlICghZG9uZSAmJiBwYWdlVmlldy5zcGxpdCgnLycpLmxlbmd0aCA+IDEpIHtcblx0XHRcdFx0XHRcdFx0XHRpZiAoIXRoaXMuaXNMaW5rRmFrZVJvdXRlKHBhZ2VWaWV3KSkge1xuXHRcdFx0XHRcdFx0XHRcdFx0aWYgKCF1c2VyLnJvbGVzLmdyb3Vwcy5zb21lKGEgPT4gYS52aWV3cy5zb21lKGIgPT4gYiA9PT0gcGFnZVZpZXcpKSkge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRpZiAodXNlci5yb2xlcy5ncm91cHMuc29tZShhID0+IGEudmlld3Muc29tZShiID0+IGIuc3RhcnRzV2l0aChtb2R1bGVWaWV3KSAmJiAhdGhpcy5kb2VzTGlua0hhdmVQYXJhbWV0ZXIoYikgJiYgIXRoaXMuaXNMaW5rRmFrZVJvdXRlKGIpKSkpIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRsZXQgbGluayA9IHVzZXIucm9sZXMuZ3JvdXBzLmZpbHRlcihhID0+IGEudmlld3Muc29tZShiID0+IGIuc3RhcnRzV2l0aChtb2R1bGVWaWV3KSAmJiAhdGhpcy5kb2VzTGlua0hhdmVQYXJhbWV0ZXIoYikgJiYgIXRoaXMuaXNMaW5rRmFrZVJvdXRlKGIpKSlbMF0udmlld3MuZmlsdGVyKGEgPT4gYS5zdGFydHNXaXRoKG1vZHVsZVZpZXcpICYmICF0aGlzLmRvZXNMaW5rSGF2ZVBhcmFtZXRlcihhKSAmJiAhdGhpcy5pc0xpbmtGYWtlUm91dGUoYSkpWzBdO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGRvbmUgPSB0cnVlO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHRoaXMuX3JvdXRlci5uYXZpZ2F0ZUJ5VXJsKGxpbmspO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHJlc29sdmUoZmFsc2UpO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHRlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0ZG9uZSA9IHRydWU7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHJlc29sdmUodHJ1ZSk7XG5cdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHRcdFx0bW9kdWxlVmlldyA9IG1vZHVsZVZpZXcucmVwbGFjZSgvKFteXFwvXStcXC8/JCkvLCAnJyk7XG5cdFx0XHRcdFx0XHRcdFx0cGFnZVZpZXcgPSBwYWdlVmlldy5yZXBsYWNlKC8oXFwvW15cXC9dKyQpLywgJycpO1xuXHRcdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdFx0aWYgKCFkb25lKSB7XG5cdFx0XHRcdFx0XHRcdFx0dGhpcy5fcm91dGVyLm5hdmlnYXRlQnlVcmwoJy9ob21lJyk7XG5cdFx0XHRcdFx0XHRcdFx0cmVzb2x2ZShmYWxzZSk7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH0sICgpID0+IHt9KTtcblx0XHR9KTtcblx0fVxuXG5cdGRvZXNMaW5rSGF2ZVBhcmFtZXRlcihsaW5rOiBzdHJpbmcpIHtcblx0XHRsZXQgcGVybWlzc2lvbnMgPSB0aGlzLl9hcHMuZ2V0QWxsTW9kdWxlUGVybWlzc2lvbnMoKTtcblxuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgcGVybWlzc2lvbnMubGVuZ3RoOyBpKyspIHtcblx0XHRcdGxldCBwZXJtaXNzaW9uID0gcGVybWlzc2lvbnNbaV07XG5cdFx0XHRmb3IgKGxldCBqID0gMDsgaiA8IHBlcm1pc3Npb24udmlld3MubGVuZ3RoOyBqKyspIHtcblx0XHRcdFx0bGV0IHZpZXcgPSBwZXJtaXNzaW9uLnZpZXdzW2pdO1xuXG5cdFx0XHRcdGlmICh2aWV3LmxpbmsgPT09IGxpbmspIHtcblx0XHRcdFx0XHRyZXR1cm4gISF2aWV3Lmhhc19wYXJhbWV0ZXI7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cblxuXHRpc0xpbmtGYWtlUm91dGUobGluazogc3RyaW5nKSB7XG5cdFx0bGV0IHBlcm1pc3Npb25zID0gdGhpcy5fYXBzLmdldEFsbE1vZHVsZVBlcm1pc3Npb25zKCk7XG5cblx0XHRmb3IgKGxldCBpID0gMDsgaSA8IHBlcm1pc3Npb25zLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRsZXQgcGVybWlzc2lvbiA9IHBlcm1pc3Npb25zW2ldO1xuXHRcdFx0Zm9yIChsZXQgaiA9IDA7IGogPCBwZXJtaXNzaW9uLnZpZXdzLmxlbmd0aDsgaisrKSB7XG5cdFx0XHRcdGxldCB2aWV3ID0gcGVybWlzc2lvbi52aWV3c1tqXTtcblxuXHRcdFx0XHRpZiAodmlldy5saW5rID09PSBsaW5rKSB7XG5cdFx0XHRcdFx0cmV0dXJuICEhdmlldy5mYWtlX3JvdXRlO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRydWU7XG5cdH1cbn0iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9tb2RlbHMvcGVybWlzc2lvbi5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBNb2R1bGVQZXJtaXNzaW9uTW9kZWwge1xuXHRuYW1lOiBzdHJpbmc7XG5cdHZpZXdzOiBNb2R1bGVQZXJtaXNzaW9uVmlld01vZGVsW107XG5cdGFwcHJvdmFsPzogTW9kdWxlUGVybWlzc2lvbkFwcHJvdmFsTW9kZWw7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTW9kdWxlUGVybWlzc2lvblZpZXdNb2RlbCB7XG5cdGxpbms6IHN0cmluZztcblx0bGFiZWw6IHN0cmluZztcblx0aGFzX3BhcmFtZXRlcj86IGJvb2xlYW47XG5cdHBhcnRpYWxfcm91dGU/OiBib29sZWFuO1xuXHRmYWtlX3JvdXRlPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNb2R1bGVQZXJtaXNzaW9uQXBwcm92YWxNb2RlbCB7XG5cdHR5cGU6IHN0cmluZztcbn0iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9tb2RlbHMvcGVybWlzc2lvbi5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBNb2R1bGVQZXJtaXNzaW9uTW9kZWwge1xuXHRuYW1lOiBzdHJpbmc7XG5cdHZpZXdzOiBNb2R1bGVQZXJtaXNzaW9uVmlld01vZGVsW107XG5cdGFwcHJvdmFsPzogTW9kdWxlUGVybWlzc2lvbkFwcHJvdmFsTW9kZWw7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTW9kdWxlUGVybWlzc2lvblZpZXdNb2RlbCB7XG5cdGxpbms6IHN0cmluZztcblx0bGFiZWw6IHN0cmluZztcblx0aGFzX3BhcmFtZXRlcj86IGJvb2xlYW47XG5cdGZha2Vfcm91dGU/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1vZHVsZVBlcm1pc3Npb25BcHByb3ZhbE1vZGVsIHtcblx0dHlwZTogc3RyaW5nO1xufSJdfQ==
@@ -62,15 +62,7 @@ export class NavbarModuleComponent extends BaseComponent {
62
62
  else {
63
63
  this.currentRoute = this._services._router.url.replace(/\/[a-f0-9]{24}$/, '').replace(/\?.+$/, '');
64
64
  this.selectedTab = null;
65
- for (let i = 0; i < this.menuData.tabs.length; i++) {
66
- let tab = this.menuData.tabs[i];
67
- if (tab.link === this.currentRoute) {
68
- this.selectedTab = tab;
69
- break;
70
- }
71
- }
72
- while (!this.selectedTab && this.currentRoute.includes('/')) {
73
- this.currentRoute = this.currentRoute.replace(/(\/[^\/]+$)/, '');
65
+ while (!this.selectedTab && this.currentRoute.split('/').length > 1) {
74
66
  for (let i = 0; i < this.menuData.tabs.length; i++) {
75
67
  let tab = this.menuData.tabs[i];
76
68
  if (tab.link === this.currentRoute) {
@@ -78,6 +70,10 @@ export class NavbarModuleComponent extends BaseComponent {
78
70
  break;
79
71
  }
80
72
  }
73
+ this.currentRoute = this.currentRoute.replace(/(\/[^\/]+$)/, '');
74
+ }
75
+ if (!this.selectedTab) {
76
+ this.selectedTab = this.menuData.tabs[0];
81
77
  }
82
78
  }
83
79
  }
@@ -112,4 +108,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.9", ngImpor
112
108
  }], sideNavWidth: [{
113
109
  type: Input
114
110
  }] } });
115
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2YmFyLW1vZHVsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvd2lkZ2V0cy9uYXZiYXItbW9kdWxlL25hdmJhci1tb2R1bGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL3dpZGdldHMvbmF2YmFyLW1vZHVsZS9uYXZiYXItbW9kdWxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXFCLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUt2RixPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7O0FBUXZFLE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxhQUFhO0lBbUJ2RCxZQUFvQixNQUF5QixFQUFVLFNBQTBCO1FBQ2hGLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztRQURFLFdBQU0sR0FBTixNQUFNLENBQW1CO1FBQVUsY0FBUyxHQUFULFNBQVMsQ0FBaUI7UUFkakYsYUFBUSxHQUFnQjtZQUN2QixLQUFLLEVBQUUsRUFBRTtZQUNULE1BQU0sRUFBRSxJQUFJO1lBQ1osV0FBVyxFQUFFLElBQUk7WUFDakIsZ0JBQWdCLEVBQUUsYUFBYTtZQUMvQixJQUFJLEVBQUUsRUFBRTtTQUNSLENBQUM7UUFFRixnQkFBVyxHQUFtQixJQUFJLENBQUM7UUFDbkMsaUJBQVksR0FBVyxFQUFFLENBQUM7UUFFMUIsa0JBQWEsR0FBbUIsRUFBRSxDQUFDO1FBQ25DLGdCQUFXLEdBQUcsS0FBSyxDQUFDO0lBSXBCLENBQUM7SUFFRCxRQUFRO1FBRVAsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFOUQs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V0FBVyxLQUFLLEdBQUcsRUFBRTtZQUM3QixJQUFJLENBQUMsV0FBVyxHQUFHLEdBQUcsQ0FBQztZQUV2QixJQUFJLEdBQUcsQ0FBQyxNQUFNLEtBQUssSUFBSSxFQUFFO2dCQUN4QixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQy9DO2lCQUNJO2dCQUNKLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDbEU7U0FDRDtJQUNGLENBQUM7O2tIQXRIVyxxQkFBcUI7c0dBQXJCLHFCQUFxQixrSEFMdEIsQ0FBQyxlQUFlLENBQUMsaURDUjdCLHd1RkFnRUE7MkZEbkRhLHFCQUFxQjtrQkFOakMsU0FBUztnQ0FDRSxDQUFDLGVBQWUsQ0FBQyxZQUNsQixlQUFlO3NJQU1oQixhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgT25EZXN0cm95LCBJbnB1dCwgQ2hhbmdlRGV0ZWN0b3JSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5hdmlnYXRpb25FbmQsIE5hdmlnYXRpb25DYW5jZWwgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgTmF2YmFyTW9kZWwsIE5hdmJhclRhYk1vZGVsIH0gZnJvbSAnLi9uYXZiYXItbW9kdWxlLm1vZGVsJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBQcm92aWRlclNlcnZpY2UsIEJhc2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9yZXNvbHZlaW8tY2xhc3MnO1xuXG5AQ29tcG9uZW50KHtcblx0cHJvdmlkZXJzOiBbUHJvdmlkZXJTZXJ2aWNlXSxcblx0c2VsZWN0b3I6ICduYXZiYXItbW9kdWxlJyxcblx0dGVtcGxhdGVVcmw6ICcuL25hdmJhci1tb2R1bGUuY29tcG9uZW50Lmh0bWwnXG59KVxuXG5leHBvcnQgY2xhc3MgTmF2YmFyTW9kdWxlQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHsgXG5cblx0QElucHV0KCkgc2lkZU5hdkhlaWdodDogbnVtYmVyO1xuXHRASW5wdXQoKSBzaWRlTmF2V2lkdGg6IG51bWJlcjtcblxuXHRtZW51RGF0YTogTmF2YmFyTW9kZWwgPSB7XG5cdFx0dGl0bGU6ICcnLFxuXHRcdG1vZHVsZTogbnVsbCxcblx0XHRkZXNjcmlwdGlvbjogbnVsbCxcblx0XHRkZXNjcmlwdGlvbl9uYW1lOiAnRGVzY3JpcHRpb24nLFxuXHRcdHRhYnM6IFtdXG5cdH07XG5cblx0c2VsZWN0ZWRUYWI6IE5hdmJhclRhYk1vZGVsID0gbnVsbDtcblx0Y3VycmVudFJvdXRlOiBTdHJpbmcgPSAnJztcblxuXHRyb3V0ZXJFdmVudHMkOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuXHR0b3VyU3RhcnRlZCA9IGZhbHNlO1xuXG5cdGNvbnN0cnVjdG9yKHByaXZhdGUgX2NkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZiwgcHJpdmF0ZSBfc2VydmljZXM6IFByb3ZpZGVyU2VydmljZSkge1xuXHRcdHN1cGVyKF9zZXJ2aWNlcyk7XG5cdH1cblxuXHRuZ09uSW5pdCgpIHtcblxuXHRcdHRoaXMudG91clN0YXJ0ZWQgPSB0aGlzLl9zZXJ2aWNlcy5fYXBwLnRvdXJTdGFydGVkLmdldFZhbHVlKCk7XG5cblx0XHR0aGlzLnJvdXRlckV2ZW50cyQucHVzaCh0aGlzLl9zZXJ2aWNlcy5fcm91dGVyLmV2ZW50c1xuXHRcdFx0Ly8uZmlsdGVyKGV2ZW50ID0+IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZClcblx0XHRcdC5zdWJzY3JpYmUoKGV2ZW50OiBOYXZpZ2F0aW9uRW5kKSA9PiB7XG5cdFx0XHRcdGlmICh0aGlzLl9zZXJ2aWNlcy5fcm91dGVyLnVybC5yZXBsYWNlKC9cXC9bYS1mMC05XXsyNH0kLywgJycpLnJlcGxhY2UoL1xcPy4rJC8sICcnKSAhPT0gdGhpcy5jdXJyZW50Um91dGUgfHwgIXRoaXMuc2VsZWN0ZWRUYWIpIHtcblx0XHRcdFx0XHR0aGlzLnNlbGVjdFRhYkZyb21Sb3V0ZXIoKTtcblx0XHRcdFx0fVxuXHRcdFx0fSlcblx0XHQpO1xuXG5cdFx0dGhpcy5yb3V0ZXJFdmVudHMkLnB1c2godGhpcy5fc2VydmljZXMuX3JvdXRlci5ldmVudHNcblx0XHRcdC8vLmZpbHRlcihldmVudCA9PiBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25DYW5jZWwpXG5cdFx0XHQuc3Vic2NyaWJlKChldmVudDogTmF2aWdhdGlvbkNhbmNlbCkgPT4ge1xuXHRcdFx0XHRpZiAodGhpcy5fc2VydmljZXMuX3JvdXRlci51cmwucmVwbGFjZSgvXFwvW2EtZjAtOV17MjR9JC8sICcnKS5yZXBsYWNlKC9cXD8uKyQvLCAnJykgIT09IHRoaXMuY3VycmVudFJvdXRlIHx8ICF0aGlzLnNlbGVjdGVkVGFiKSB7XG5cdFx0XHRcdFx0dGhpcy5zZWxlY3RUYWJGcm9tUm91dGVyKCk7XG5cdFx0XHRcdH1cblx0XHRcdH0pXG5cdFx0KTtcblxuXHRcdHRoaXMucm91dGVyRXZlbnRzJC5wdXNoKHRoaXMuX3NlcnZpY2VzLl9hcHAubmF2YmFyTW9kdWxlRGF0YS5zdWJzY3JpYmUoZGF0YSA9PiB7XG5cdFx0XHR0aGlzLm1lbnVEYXRhID0gZGF0YTtcblx0XHRcdGlmICh0aGlzLl9zZXJ2aWNlcy5fcm91dGVyLnVybC5yZXBsYWNlKC9cXC9bYS1mMC05XXsyNH0kLywgJycpLnJlcGxhY2UoL1xcPy4rJC8sICcnKSAhPT0gdGhpcy5jdXJyZW50Um91dGUgfHwgIXRoaXMuc2VsZWN0ZWRUYWIpIHtcblx0XHRcdFx0dGhpcy5zZWxlY3RUYWJGcm9tUm91dGVyKCk7XG5cdFx0XHR9XG5cdFx0fSkpO1xuXG5cdFx0dGhpcy5yb3V0ZXJFdmVudHMkLnB1c2godGhpcy5fc2VydmljZXMuX2FwcC50b3VyU3RhcnRlZC5zdWJzY3JpYmUodG91clN0YXJ0ZWQgPT4ge1xuXHRcdFx0dGhpcy50b3VyU3RhcnRlZCA9IHRvdXJTdGFydGVkO1xuXHRcdH0pKTtcblx0fVxuXG5cdG5nT25EZXN0cm95KCkge1xuXHRcdHRoaXMucm91dGVyRXZlbnRzJC5mb3JFYWNoKHN1YiA9PiB7XG5cdFx0XHRzdWIudW5zdWJzY3JpYmUoKTtcblx0XHR9KTtcblx0fVxuXG5cdHNlbGVjdFRhYkZyb21Sb3V0ZXIoKSB7XG5cdFx0aWYgKHRoaXMubWVudURhdGEpIHtcblx0XHRcdGlmICh0aGlzLl9zZXJ2aWNlcy5fcm91dGVyLnVybCA9PT0gJy8nKSB7XG5cdFx0XHRcdHRoaXMuc2VsZWN0ZWRUYWIgPSB0aGlzLm1lbnVEYXRhLnRhYnNbMF07XG5cdFx0XHR9XG5cdFx0XHRlbHNlIHtcblx0XHRcdFx0dGhpcy5jdXJyZW50Um91dGUgPSB0aGlzLl9zZXJ2aWNlcy5fcm91dGVyLnVybC5yZXBsYWNlKC9cXC9bYS1mMC05XXsyNH0kLywgJycpLnJlcGxhY2UoL1xcPy4rJC8sICcnKTtcblx0XHRcdFx0dGhpcy5zZWxlY3RlZFRhYiA9IG51bGw7XG5cblx0XHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLm1lbnVEYXRhLnRhYnMubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0XHRsZXQgdGFiID0gdGhpcy5tZW51RGF0YS50YWJzW2ldO1xuXG5cdFx0XHRcdFx0aWYgKHRhYi5saW5rID09PSB0aGlzLmN1cnJlbnRSb3V0ZSkge1xuXHRcdFx0XHRcdFx0dGhpcy5zZWxlY3RlZFRhYiA9IHRhYjtcblx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdHdoaWxlICghdGhpcy5zZWxlY3RlZFRhYiAmJiB0aGlzLmN1cnJlbnRSb3V0ZS5pbmNsdWRlcygnLycpKSB7XG5cdFx0XHRcdFx0dGhpcy5jdXJyZW50Um91dGUgPSB0aGlzLmN1cnJlbnRSb3V0ZS5yZXBsYWNlKC8oXFwvW15cXC9dKyQpLywgJycpO1xuXG5cdFx0XHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLm1lbnVEYXRhLnRhYnMubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0XHRcdGxldCB0YWIgPSB0aGlzLm1lbnVEYXRhLnRhYnNbaV07XG5cdFxuXHRcdFx0XHRcdFx0aWYgKHRhYi5saW5rID09PSB0aGlzLmN1cnJlbnRSb3V0ZSkge1xuXHRcdFx0XHRcdFx0XHR0aGlzLnNlbGVjdGVkVGFiID0gdGFiO1xuXHRcdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHR0YWJDbGFzcyh0YWI6IE5hdmJhclRhYk1vZGVsKSB7XG5cdFx0aWYgKHRoaXMuc2VsZWN0ZWRUYWIpIHtcblx0XHRcdGlmICh0aGlzLnNlbGVjdGVkVGFiLmxhYmVsID09PSB0YWIubGFiZWwpIHtcblx0XHRcdFx0cmV0dXJuICdhY3RpdmUnO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiAnJztcblx0fVxuXG5cdG5hdmlnYXRlVG8odGFiOiBOYXZiYXJUYWJNb2RlbCkge1xuXHRcdGlmICh0aGlzLnNlbGVjdGVkVGFiICE9PSB0YWIpIHtcblx0XHRcdHRoaXMuc2VsZWN0ZWRUYWIgPSB0YWI7XG5cblx0XHRcdGlmICh0YWIucGFyYW1zID09PSBudWxsKSB7XG5cdFx0XHRcdHRoaXMuX3NlcnZpY2VzLl9yb3V0ZXIubmF2aWdhdGVCeVVybCh0YWIubGluayk7XG5cdFx0XHR9XG5cdFx0XHRlbHNlIHtcblx0XHRcdFx0dGhpcy5fc2VydmljZXMuX3JvdXRlci5uYXZpZ2F0ZUJ5VXJsKHRhYi5saW5rICsgJy8nICsgdGFiLnBhcmFtcyk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG4iLCI8c3R5bGU+XG4gICAgLm5hdmJhck1vZHVsZSBsaSB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG4gICAgLm5hdmJhck1vZHVsZSBsaS5hY3RpdmUge1xuICAgICAgICBib3JkZXItbGVmdDogM3B4IHNvbGlkICNkMTliM2Q7XG4gICAgfVxuICAgIC5uYXZiYXJNb2R1bGUgbmF2IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAgICAgICAubmF2YmFyTW9kdWxlIHtcbiAgICAgICAgICAgIGhlaWdodDogOTV2aDtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMTBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIGhyIHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IHdoaXRlIDFweCBzb2xpZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAxMjAwcHgpIHtcbiAgICAgICAgaHIge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5uYXZiYXJNb2R1bGUgYSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDE4cHggIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIFxuPC9zdHlsZT4gXG5cbjxkaXYgc3R5bGU9XCJtYXJnaW4tbGVmdDogLTE1cHg7IG1hcmdpbi1yaWdodDogLTE1cHg7XCI+XG4gICAgPG5hdiBjbGFzcz1cIm5hdmJhciBuYXZiYXItZXhwYW5kLXhsIG5hdmJhci1kYXJrIGJnLWRhcmsgZmxleC14bC1jb2x1bW4gbmF2YmFyTW9kdWxlXCIgW3N0eWxlLmhlaWdodF09XCJzaWRlTmF2SGVpZ2h0ID8gc2lkZU5hdkhlaWdodCArICdweCcgOiAnJ1wiIFtzdHlsZS53aWR0aF09XCJzaWRlTmF2V2lkdGggPyBzaWRlTmF2V2lkdGggOiAnJ1wiPlxuICAgICAgICA8ZGl2IGhyZWY9XCIjXCIgc3R5bGU9XCJjb2xvcjogd2hpdGU7IGZvbnQtc2l6ZTogMTZweDtcIj5cbiAgICAgICAgICAgIHt7IG1lbnVEYXRhLnRpdGxlIH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwibmF2YmFyLXRvZ2dsZXJcIiB0eXBlPVwiYnV0dG9uXCIgYXJpYS1jb250cm9scz1cIiNuYXZiYXJNb2R1bGVOYXZcIiBkYXRhLXRhcmdldD1cIiNuYXZiYXJNb2R1bGVOYXZcIiBkYXRhLXRvZ2dsZT1cImNvbGxhcHNlXCIgYXJpYS1leHBhbmRlZD1cImZhbHNlXCIgYXJpYS1sYWJlbD1cIlRvZ2dsZSBuYXZpZ2F0aW9uXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm5hdmJhci10b2dnbGVyLWljb25cIj48L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibmF2YmFyLWNvbGxhcHNlIGNvbGxhcHNlXCIgaWQ9XCJuYXZiYXJNb2R1bGVOYXZcIiBzdHlsZT1cImFsaWduLWl0ZW1zOmJhc2VsaW5lOyB3aWR0aDogMTAwJTsgb3ZlcmZsb3cteTogYXV0bzsgb3ZlcmZsb3cteDogaGlkZGVuO1wiPlxuICAgICAgICAgICAgPHVsIGNsYXNzPVwibmF2YmFyLW5hdlwiIHN0eWxlPVwiZGlzcGxheTogYmxvY2s7IGZsb2F0OiBsZWZ0OyB3aWR0aDogMTAwJTtcIj5cbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCB0YWIgb2YgKG1lbnVEYXRhLnRhYnMgfCBmaWx0ZXJOb3RFcXVhbCA6ICdwYXJhbXMnIDogJzAnKTsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidGFiLnBhcmFtcyAhPT0gbnVsbCAmJiBtZW51RGF0YS50YWJzW2kgLSAxXSAmJiBtZW51RGF0YS50YWJzW2kgLSAxXS5wYXJhbXMgPT09IG51bGxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxocj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaHJlZj1cIiNcIiBzdHlsZT1cImNvbG9yOiB3aGl0ZTsgZm9udC1zaXplOiAxNnB4O1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNlbGVjdGVkIHt7IG1lbnVEYXRhLm1vZHVsZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aHI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwiY29sb3I6d2hpdGU7IG1hcmdpbi1sZWZ0OiA1cHg7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyBmb250LXNpemU6IDE0cHhcIj57e21lbnVEYXRhLmRlc2NyaXB0aW9uX25hbWV9fTo8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJjb2xvcjp3aGl0ZTsgbWFyZ2luLWxlZnQ6IDhweDsgIGZvbnQtc2l6ZTogMTJweFwiPnt7bWVudURhdGEuZGVzY3JpcHRpb259fTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJyIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8bGkgW25nQ2xhc3NdPVwiWyduYXYtaXRlbScsIHRhYkNsYXNzKHRhYildXCJkYXRhLXRvZ2dsZT1cImNvbGxhcHNlXCIgZGF0YS10YXJnZXQ9XCIjbmF2YmFyTW9kdWxlTmF2XCIgW3RvdXJBbmNob3JdPVwidGFiLnRvdXJBbmNob3JcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwibmF2LWxpbmtcIiBbY2xhc3MuZGlzYWJsZWRdPVwidG91clN0YXJ0ZWQgPyB0cnVlIDogbnVsbFwiIFtyb3V0ZXJMaW5rXT1cIlt0YWIucGFyYW1zID8gdGFiLmxpbmsgKyAnLycgKyB0YWIucGFyYW1zIDogdGFiLmxpbmtdXCIgcm91dGVyTGlua0FjdGl2ZT1cImFjdGl2ZVwiPnt7IHRhYi5sYWJlbCB9fTwvYT5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvdWw+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmF2PlxuPC9kaXY+XG4iXX0=
111
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2YmFyLW1vZHVsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvd2lkZ2V0cy9uYXZiYXItbW9kdWxlL25hdmJhci1tb2R1bGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL3dpZGdldHMvbmF2YmFyLW1vZHVsZS9uYXZiYXItbW9kdWxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXFCLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUt2RixPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7O0FBUXZFLE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxhQUFhO0lBbUJ2RCxZQUFvQixNQUF5QixFQUFVLFNBQTBCO1FBQ2hGLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztRQURFLFdBQU0sR0FBTixNQUFNLENBQW1CO1FBQVUsY0FBUyxHQUFULFNBQVMsQ0FBaUI7UUFkakYsYUFBUSxHQUFnQjtZQUN2QixLQUFLLEVBQUUsRUFBRTtZQUNULE1BQU0sRUFBRSxJQUFJO1lBQ1osV0FBVyxFQUFFLElBQUk7WUFDakIsZ0JBQWdCLEVBQUUsYUFBYTtZQUMvQixJQUFJLEVBQUUsRUFBRTtTQUNSLENBQUM7UUFFRixnQkFBVyxHQUFtQixJQUFJLENBQUM7UUFDbkMsaUJBQVksR0FBVyxFQUFFLENBQUM7UUFFMUIsa0JBQWEsR0FBbUIsRUFBRSxDQUFDO1FBQ25DLGdCQUFXLEdBQUcsS0FBSyxDQUFDO0lBSXBCLENBQUM7SUFFRCxRQUFRO1FBRVAsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFOUQs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QUcsQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUMvQztpQkFDSTtnQkFDSixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQ2xFO1NBQ0Q7SUFDRixDQUFDOztrSEFqSFcscUJBQXFCO3NHQUFyQixxQkFBcUIsa0hBTHRCLENBQUMsZUFBZSxDQUFDLGlEQ1I3Qix3dUZBZ0VBOzJGRG5EYSxxQkFBcUI7a0JBTmpDLFNBQVM7Z0NBQ0UsQ0FBQyxlQUFlLENBQUMsWUFDbEIsZUFBZTtzSUFNaEIsYUFBYTtzQkFBckIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIE9uRGVzdHJveSwgSW5wdXQsIENoYW5nZURldGVjdG9yUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uRW5kLCBOYXZpZ2F0aW9uQ2FuY2VsIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IE5hdmJhck1vZGVsLCBOYXZiYXJUYWJNb2RlbCB9IGZyb20gJy4vbmF2YmFyLW1vZHVsZS5tb2RlbCc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgUHJvdmlkZXJTZXJ2aWNlLCBCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vcmVzb2x2ZWlvLWNsYXNzJztcblxuQENvbXBvbmVudCh7XG5cdHByb3ZpZGVyczogW1Byb3ZpZGVyU2VydmljZV0sXG5cdHNlbGVjdG9yOiAnbmF2YmFyLW1vZHVsZScsXG5cdHRlbXBsYXRlVXJsOiAnLi9uYXZiYXItbW9kdWxlLmNvbXBvbmVudC5odG1sJ1xufSlcblxuZXhwb3J0IGNsYXNzIE5hdmJhck1vZHVsZUNvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7IFxuXG5cdEBJbnB1dCgpIHNpZGVOYXZIZWlnaHQ6IG51bWJlcjtcblx0QElucHV0KCkgc2lkZU5hdldpZHRoOiBudW1iZXI7XG5cblx0bWVudURhdGE6IE5hdmJhck1vZGVsID0ge1xuXHRcdHRpdGxlOiAnJyxcblx0XHRtb2R1bGU6IG51bGwsXG5cdFx0ZGVzY3JpcHRpb246IG51bGwsXG5cdFx0ZGVzY3JpcHRpb25fbmFtZTogJ0Rlc2NyaXB0aW9uJyxcblx0XHR0YWJzOiBbXVxuXHR9O1xuXG5cdHNlbGVjdGVkVGFiOiBOYXZiYXJUYWJNb2RlbCA9IG51bGw7XG5cdGN1cnJlbnRSb3V0ZTogU3RyaW5nID0gJyc7XG5cblx0cm91dGVyRXZlbnRzJDogU3Vic2NyaXB0aW9uW10gPSBbXTtcblx0dG91clN0YXJ0ZWQgPSBmYWxzZTtcblxuXHRjb25zdHJ1Y3Rvcihwcml2YXRlIF9jZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByaXZhdGUgX3NlcnZpY2VzOiBQcm92aWRlclNlcnZpY2UpIHtcblx0XHRzdXBlcihfc2VydmljZXMpO1xuXHR9XG5cblx0bmdPbkluaXQoKSB7XG5cblx0XHR0aGlzLnRvdXJTdGFydGVkID0gdGhpcy5fc2VydmljZXMuX2FwcC50b3VyU3RhcnRlZC5nZXRWYWx1ZSgpO1xuXG5cdFx0dGhpcy5yb3V0ZXJFdmVudHMkLnB1c2godGhpcy5fc2VydmljZXMuX3JvdXRlci5ldmVudHNcblx0XHRcdC8vLmZpbHRlcihldmVudCA9PiBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpXG5cdFx0XHQuc3Vic2NyaWJlKChldmVudDogTmF2aWdhdGlvbkVuZCkgPT4ge1xuXHRcdFx0XHRpZiAodGhpcy5fc2VydmljZXMuX3JvdXRlci51cmwucmVwbGFjZSgvXFwvW2EtZjAtOV17MjR9JC8sICcnKS5yZXBsYWNlKC9cXD8uKyQvLCAnJykgIT09IHRoaXMuY3VycmVudFJvdXRlIHx8ICF0aGlzLnNlbGVjdGVkVGFiKSB7XG5cdFx0XHRcdFx0dGhpcy5zZWxlY3RUYWJGcm9tUm91dGVyKCk7XG5cdFx0XHRcdH1cblx0XHRcdH0pXG5cdFx0KTtcblxuXHRcdHRoaXMucm91dGVyRXZlbnRzJC5wdXNoKHRoaXMuX3NlcnZpY2VzLl9yb3V0ZXIuZXZlbnRzXG5cdFx0XHQvLy5maWx0ZXIoZXZlbnQgPT4gZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uQ2FuY2VsKVxuXHRcdFx0LnN1YnNjcmliZSgoZXZlbnQ6IE5hdmlnYXRpb25DYW5jZWwpID0+IHtcblx0XHRcdFx0aWYgKHRoaXMuX3NlcnZpY2VzLl9yb3V0ZXIudXJsLnJlcGxhY2UoL1xcL1thLWYwLTldezI0fSQvLCAnJykucmVwbGFjZSgvXFw/LiskLywgJycpICE9PSB0aGlzLmN1cnJlbnRSb3V0ZSB8fCAhdGhpcy5zZWxlY3RlZFRhYikge1xuXHRcdFx0XHRcdHRoaXMuc2VsZWN0VGFiRnJvbVJvdXRlcigpO1xuXHRcdFx0XHR9XG5cdFx0XHR9KVxuXHRcdCk7XG5cblx0XHR0aGlzLnJvdXRlckV2ZW50cyQucHVzaCh0aGlzLl9zZXJ2aWNlcy5fYXBwLm5hdmJhck1vZHVsZURhdGEuc3Vic2NyaWJlKGRhdGEgPT4ge1xuXHRcdFx0dGhpcy5tZW51RGF0YSA9IGRhdGE7XG5cdFx0XHRpZiAodGhpcy5fc2VydmljZXMuX3JvdXRlci51cmwucmVwbGFjZSgvXFwvW2EtZjAtOV17MjR9JC8sICcnKS5yZXBsYWNlKC9cXD8uKyQvLCAnJykgIT09IHRoaXMuY3VycmVudFJvdXRlIHx8ICF0aGlzLnNlbGVjdGVkVGFiKSB7XG5cdFx0XHRcdHRoaXMuc2VsZWN0VGFiRnJvbVJvdXRlcigpO1xuXHRcdFx0fVxuXHRcdH0pKTtcblxuXHRcdHRoaXMucm91dGVyRXZlbnRzJC5wdXNoKHRoaXMuX3NlcnZpY2VzLl9hcHAudG91clN0YXJ0ZWQuc3Vic2NyaWJlKHRvdXJTdGFydGVkID0+IHtcblx0XHRcdHRoaXMudG91clN0YXJ0ZWQgPSB0b3VyU3RhcnRlZDtcblx0XHR9KSk7XG5cdH1cblxuXHRuZ09uRGVzdHJveSgpIHtcblx0XHR0aGlzLnJvdXRlckV2ZW50cyQuZm9yRWFjaChzdWIgPT4ge1xuXHRcdFx0c3ViLnVuc3Vic2NyaWJlKCk7XG5cdFx0fSk7XG5cdH1cblxuXHRzZWxlY3RUYWJGcm9tUm91dGVyKCkge1xuXHRcdGlmICh0aGlzLm1lbnVEYXRhKSB7XG5cdFx0XHRpZiAodGhpcy5fc2VydmljZXMuX3JvdXRlci51cmwgPT09ICcvJykge1xuXHRcdFx0XHR0aGlzLnNlbGVjdGVkVGFiID0gdGhpcy5tZW51RGF0YS50YWJzWzBdO1xuXHRcdFx0fVxuXHRcdFx0ZWxzZSB7XG5cdFx0XHRcdHRoaXMuY3VycmVudFJvdXRlID0gdGhpcy5fc2VydmljZXMuX3JvdXRlci51cmwucmVwbGFjZSgvXFwvW2EtZjAtOV17MjR9JC8sICcnKS5yZXBsYWNlKC9cXD8uKyQvLCAnJyk7XG5cdFx0XHRcdHRoaXMuc2VsZWN0ZWRUYWIgPSBudWxsO1xuXG5cdFx0XHRcdHdoaWxlICghdGhpcy5zZWxlY3RlZFRhYiAmJiB0aGlzLmN1cnJlbnRSb3V0ZS5zcGxpdCgnLycpLmxlbmd0aCA+IDEpIHtcblx0XHRcdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMubWVudURhdGEudGFicy5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRcdFx0bGV0IHRhYiA9IHRoaXMubWVudURhdGEudGFic1tpXTtcblx0XG5cdFx0XHRcdFx0XHRpZiAodGFiLmxpbmsgPT09IHRoaXMuY3VycmVudFJvdXRlKSB7XG5cdFx0XHRcdFx0XHRcdHRoaXMuc2VsZWN0ZWRUYWIgPSB0YWI7XG5cdFx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdHRoaXMuY3VycmVudFJvdXRlID0gdGhpcy5jdXJyZW50Um91dGUucmVwbGFjZSgvKFxcL1teXFwvXSskKS8sICcnKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGlmICghdGhpcy5zZWxlY3RlZFRhYikge1xuXHRcdFx0XHRcdHRoaXMuc2VsZWN0ZWRUYWIgPSB0aGlzLm1lbnVEYXRhLnRhYnNbMF07XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHR0YWJDbGFzcyh0YWI6IE5hdmJhclRhYk1vZGVsKSB7XG5cdFx0aWYgKHRoaXMuc2VsZWN0ZWRUYWIpIHtcblx0XHRcdGlmICh0aGlzLnNlbGVjdGVkVGFiLmxhYmVsID09PSB0YWIubGFiZWwpIHtcblx0XHRcdFx0cmV0dXJuICdhY3RpdmUnO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiAnJztcblx0fVxuXG5cdG5hdmlnYXRlVG8odGFiOiBOYXZiYXJUYWJNb2RlbCkge1xuXHRcdGlmICh0aGlzLnNlbGVjdGVkVGFiICE9PSB0YWIpIHtcblx0XHRcdHRoaXMuc2VsZWN0ZWRUYWIgPSB0YWI7XG5cblx0XHRcdGlmICh0YWIucGFyYW1zID09PSBudWxsKSB7XG5cdFx0XHRcdHRoaXMuX3NlcnZpY2VzLl9yb3V0ZXIubmF2aWdhdGVCeVVybCh0YWIubGluayk7XG5cdFx0XHR9XG5cdFx0XHRlbHNlIHtcblx0XHRcdFx0dGhpcy5fc2VydmljZXMuX3JvdXRlci5uYXZpZ2F0ZUJ5VXJsKHRhYi5saW5rICsgJy8nICsgdGFiLnBhcmFtcyk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG4iLCI8c3R5bGU+XG4gICAgLm5hdmJhck1vZHVsZSBsaSB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG4gICAgLm5hdmJhck1vZHVsZSBsaS5hY3RpdmUge1xuICAgICAgICBib3JkZXItbGVmdDogM3B4IHNvbGlkICNkMTliM2Q7XG4gICAgfVxuICAgIC5uYXZiYXJNb2R1bGUgbmF2IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAgICAgICAubmF2YmFyTW9kdWxlIHtcbiAgICAgICAgICAgIGhlaWdodDogOTV2aDtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMTBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIGhyIHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IHdoaXRlIDFweCBzb2xpZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAxMjAwcHgpIHtcbiAgICAgICAgaHIge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5uYXZiYXJNb2R1bGUgYSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDE4cHggIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIFxuPC9zdHlsZT4gXG5cbjxkaXYgc3R5bGU9XCJtYXJnaW4tbGVmdDogLTE1cHg7IG1hcmdpbi1yaWdodDogLTE1cHg7XCI+XG4gICAgPG5hdiBjbGFzcz1cIm5hdmJhciBuYXZiYXItZXhwYW5kLXhsIG5hdmJhci1kYXJrIGJnLWRhcmsgZmxleC14bC1jb2x1bW4gbmF2YmFyTW9kdWxlXCIgW3N0eWxlLmhlaWdodF09XCJzaWRlTmF2SGVpZ2h0ID8gc2lkZU5hdkhlaWdodCArICdweCcgOiAnJ1wiIFtzdHlsZS53aWR0aF09XCJzaWRlTmF2V2lkdGggPyBzaWRlTmF2V2lkdGggOiAnJ1wiPlxuICAgICAgICA8ZGl2IGhyZWY9XCIjXCIgc3R5bGU9XCJjb2xvcjogd2hpdGU7IGZvbnQtc2l6ZTogMTZweDtcIj5cbiAgICAgICAgICAgIHt7IG1lbnVEYXRhLnRpdGxlIH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwibmF2YmFyLXRvZ2dsZXJcIiB0eXBlPVwiYnV0dG9uXCIgYXJpYS1jb250cm9scz1cIiNuYXZiYXJNb2R1bGVOYXZcIiBkYXRhLXRhcmdldD1cIiNuYXZiYXJNb2R1bGVOYXZcIiBkYXRhLXRvZ2dsZT1cImNvbGxhcHNlXCIgYXJpYS1leHBhbmRlZD1cImZhbHNlXCIgYXJpYS1sYWJlbD1cIlRvZ2dsZSBuYXZpZ2F0aW9uXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm5hdmJhci10b2dnbGVyLWljb25cIj48L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibmF2YmFyLWNvbGxhcHNlIGNvbGxhcHNlXCIgaWQ9XCJuYXZiYXJNb2R1bGVOYXZcIiBzdHlsZT1cImFsaWduLWl0ZW1zOmJhc2VsaW5lOyB3aWR0aDogMTAwJTsgb3ZlcmZsb3cteTogYXV0bzsgb3ZlcmZsb3cteDogaGlkZGVuO1wiPlxuICAgICAgICAgICAgPHVsIGNsYXNzPVwibmF2YmFyLW5hdlwiIHN0eWxlPVwiZGlzcGxheTogYmxvY2s7IGZsb2F0OiBsZWZ0OyB3aWR0aDogMTAwJTtcIj5cbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCB0YWIgb2YgKG1lbnVEYXRhLnRhYnMgfCBmaWx0ZXJOb3RFcXVhbCA6ICdwYXJhbXMnIDogJzAnKTsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidGFiLnBhcmFtcyAhPT0gbnVsbCAmJiBtZW51RGF0YS50YWJzW2kgLSAxXSAmJiBtZW51RGF0YS50YWJzW2kgLSAxXS5wYXJhbXMgPT09IG51bGxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxocj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaHJlZj1cIiNcIiBzdHlsZT1cImNvbG9yOiB3aGl0ZTsgZm9udC1zaXplOiAxNnB4O1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNlbGVjdGVkIHt7IG1lbnVEYXRhLm1vZHVsZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aHI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwiY29sb3I6d2hpdGU7IG1hcmdpbi1sZWZ0OiA1cHg7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyBmb250LXNpemU6IDE0cHhcIj57e21lbnVEYXRhLmRlc2NyaXB0aW9uX25hbWV9fTo8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJjb2xvcjp3aGl0ZTsgbWFyZ2luLWxlZnQ6IDhweDsgIGZvbnQtc2l6ZTogMTJweFwiPnt7bWVudURhdGEuZGVzY3JpcHRpb259fTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJyIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8bGkgW25nQ2xhc3NdPVwiWyduYXYtaXRlbScsIHRhYkNsYXNzKHRhYildXCJkYXRhLXRvZ2dsZT1cImNvbGxhcHNlXCIgZGF0YS10YXJnZXQ9XCIjbmF2YmFyTW9kdWxlTmF2XCIgW3RvdXJBbmNob3JdPVwidGFiLnRvdXJBbmNob3JcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwibmF2LWxpbmtcIiBbY2xhc3MuZGlzYWJsZWRdPVwidG91clN0YXJ0ZWQgPyB0cnVlIDogbnVsbFwiIFtyb3V0ZXJMaW5rXT1cIlt0YWIucGFyYW1zID8gdGFiLmxpbmsgKyAnLycgKyB0YWIucGFyYW1zIDogdGFiLmxpbmtdXCIgcm91dGVyTGlua0FjdGl2ZT1cImFjdGl2ZVwiPnt7IHRhYi5sYWJlbCB9fTwvYT5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvdWw+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmF2PlxuPC9kaXY+XG4iXX0=