@openziti/ziti-console-lib 0.6.2 → 0.6.4
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/assets/fonts/zac.eot +0 -0
- package/assets/fonts/zac.svg +3 -1
- package/assets/fonts/zac.ttf +0 -0
- package/assets/fonts/zac.woff +0 -0
- package/assets/fonts/zac.woff2 +0 -0
- package/assets/styles/global.scss +129 -5
- package/assets/styles/icons.css +3 -0
- package/assets/styles/ziti.css +2 -2
- package/esm2022/lib/features/config-editor/config-editor.component.mjs +76 -15
- package/esm2022/lib/features/confirm/confirm.component.mjs +22 -5
- package/esm2022/lib/features/creation-summary-dialog/creation-summary-dialog.component.mjs +1 -1
- package/esm2022/lib/features/data-table/cells/table-cell-name/table-cell-name.component.mjs +2 -2
- package/esm2022/lib/features/data-table/data-table-filter.service.mjs +3 -1
- package/esm2022/lib/features/data-table/table-filter-bar/filter-bar.component.mjs +9 -3
- package/esm2022/lib/features/dynamic-widgets/checkbox-list/checkbox-list-input.component.mjs +7 -3
- package/esm2022/lib/features/dynamic-widgets/forwarding-config/forwarding-config.component.mjs +22 -1
- package/esm2022/lib/features/dynamic-widgets/number/number-input.component.mjs +10 -9
- package/esm2022/lib/features/dynamic-widgets/object/object.component.mjs +2 -2
- package/esm2022/lib/features/dynamic-widgets/port-ranges/port-ranges.component.mjs +4 -1
- package/esm2022/lib/features/dynamic-widgets/protocol-address-port/protocol-address-port-input.component.mjs +27 -5
- package/esm2022/lib/features/dynamic-widgets/selector/selector-input.component.mjs +21 -13
- package/esm2022/lib/features/dynamic-widgets/string/string-input.component.mjs +9 -5
- package/esm2022/lib/features/dynamic-widgets/text-list/text-list-input.component.mjs +9 -5
- package/esm2022/lib/features/json-view/json-view.component.mjs +3 -3
- package/esm2022/lib/features/messaging/growler.component.mjs +4 -4
- package/esm2022/lib/features/preview-list/preview-list.component.mjs +17 -11
- package/esm2022/lib/features/preview-selections/preview-selections.component.mjs +115 -0
- package/esm2022/lib/features/projectable-forms/auth-policy/auth-policy-form.component.mjs +1 -1
- package/esm2022/lib/features/projectable-forms/configuration/configuration-form.component.mjs +33 -4
- package/esm2022/lib/features/projectable-forms/edge-router/edge-router-form.component.mjs +1 -1
- package/esm2022/lib/features/projectable-forms/edge-router-policy/edge-router-policy-form.component.mjs +1 -1
- package/esm2022/lib/features/projectable-forms/form-field-container/form-field-container.component.mjs +6 -3
- package/esm2022/lib/features/projectable-forms/identity/identity-form.component.mjs +1 -1
- package/esm2022/lib/features/projectable-forms/jwt-signer/jwt-signer-form.component.mjs +1 -1
- package/esm2022/lib/features/projectable-forms/service/service-form.component.mjs +8 -5
- package/esm2022/lib/features/projectable-forms/service/service-form.service.mjs +2 -4
- package/esm2022/lib/features/projectable-forms/service/simple-service/simple-service.component.mjs +2 -2
- package/esm2022/lib/features/projectable-forms/service-edge-router-policy/service-edge-router-policy-form.component.mjs +1 -1
- package/esm2022/lib/features/projectable-forms/service-policy/service-policy-form.component.mjs +1 -1
- package/esm2022/lib/features/projectable-forms/service-policy/service-policy-form.service.mjs +4 -3
- package/esm2022/lib/features/projectable-forms/terminator/terminator-form.component.mjs +1 -1
- package/esm2022/lib/features/qr-code/qr-code.component.mjs +4 -1
- package/esm2022/lib/features/sidebars/side-toolbar/side-toolbar.component.mjs +2 -1
- package/esm2022/lib/features/wrappers/zac-wrapper.service.mjs +8 -1
- package/esm2022/lib/pages/auth-policies/auth-policies-page.component.mjs +7 -1
- package/esm2022/lib/pages/auth-policies/auth-policies-page.service.mjs +9 -2
- package/esm2022/lib/pages/configurations/configurations-page.component.mjs +7 -1
- package/esm2022/lib/pages/edge-router-policies/edge-router-policies-page.component.mjs +2 -2
- package/esm2022/lib/pages/edge-router-policies/edge-router-policies-page.service.mjs +2 -17
- package/esm2022/lib/pages/edge-routers/edge-routers-page.component.mjs +2 -2
- package/esm2022/lib/pages/edge-routers/edge-routers-page.service.mjs +23 -33
- package/esm2022/lib/pages/identities/identities-page.component.mjs +4 -4
- package/esm2022/lib/pages/identities/identities-page.service.mjs +19 -30
- package/esm2022/lib/pages/service-edge-router-policies/service-edge-router-policies-page.component.mjs +2 -2
- package/esm2022/lib/pages/service-edge-router-policies/service-edge-router-policies-page.service.mjs +3 -18
- package/esm2022/lib/pages/service-policies/service-policies-page.component.mjs +2 -3
- package/esm2022/lib/pages/service-policies/service-policies-page.service.mjs +2 -17
- package/esm2022/lib/pages/services/services-page.component.mjs +104 -12
- package/esm2022/lib/pages/services/services-page.service.mjs +143 -24
- package/esm2022/lib/services/node-data.service.mjs +6 -2
- package/esm2022/lib/services/settings-service.class.mjs +2 -1
- package/esm2022/lib/services/settings.service.mjs +2 -1
- package/esm2022/lib/shared/list-page-component.class.mjs +21 -6
- package/esm2022/lib/shared/list-page-service.class.mjs +26 -5
- package/esm2022/lib/version.mjs +2 -2
- package/esm2022/lib/ziti-console-lib.module.mjs +6 -3
- package/fesm2022/openziti-ziti-console-lib.mjs +1449 -951
- package/fesm2022/openziti-ziti-console-lib.mjs.map +1 -1
- package/lib/features/config-editor/config-editor.component.d.ts +7 -3
- package/lib/features/config-editor/config-editor.component.d.ts.map +1 -1
- package/lib/features/confirm/confirm.component.d.ts +9 -0
- package/lib/features/confirm/confirm.component.d.ts.map +1 -1
- package/lib/features/data-table/data-table-filter.service.d.ts +1 -0
- package/lib/features/data-table/data-table-filter.service.d.ts.map +1 -1
- package/lib/features/data-table/table-filter-bar/filter-bar.component.d.ts +1 -0
- package/lib/features/data-table/table-filter-bar/filter-bar.component.d.ts.map +1 -1
- package/lib/features/dynamic-widgets/checkbox-list/checkbox-list-input.component.d.ts +2 -0
- package/lib/features/dynamic-widgets/checkbox-list/checkbox-list-input.component.d.ts.map +1 -1
- package/lib/features/dynamic-widgets/forwarding-config/forwarding-config.component.d.ts +5 -0
- package/lib/features/dynamic-widgets/forwarding-config/forwarding-config.component.d.ts.map +1 -1
- package/lib/features/dynamic-widgets/number/number-input.component.d.ts +2 -0
- package/lib/features/dynamic-widgets/number/number-input.component.d.ts.map +1 -1
- package/lib/features/dynamic-widgets/port-ranges/port-ranges.component.d.ts +1 -0
- package/lib/features/dynamic-widgets/port-ranges/port-ranges.component.d.ts.map +1 -1
- package/lib/features/dynamic-widgets/protocol-address-port/protocol-address-port-input.component.d.ts +8 -6
- package/lib/features/dynamic-widgets/protocol-address-port/protocol-address-port-input.component.d.ts.map +1 -1
- package/lib/features/dynamic-widgets/selector/selector-input.component.d.ts +2 -0
- package/lib/features/dynamic-widgets/selector/selector-input.component.d.ts.map +1 -1
- package/lib/features/dynamic-widgets/string/string-input.component.d.ts +2 -0
- package/lib/features/dynamic-widgets/string/string-input.component.d.ts.map +1 -1
- package/lib/features/dynamic-widgets/text-list/text-list-input.component.d.ts +2 -0
- package/lib/features/dynamic-widgets/text-list/text-list-input.component.d.ts.map +1 -1
- package/lib/features/json-view/json-view.component.d.ts +2 -2
- package/lib/features/json-view/json-view.component.d.ts.map +1 -1
- package/lib/features/preview-list/preview-list.component.d.ts +1 -0
- package/lib/features/preview-list/preview-list.component.d.ts.map +1 -1
- package/lib/features/preview-selections/preview-selections.component.d.ts +39 -0
- package/lib/features/preview-selections/preview-selections.component.d.ts.map +1 -0
- package/lib/features/projectable-forms/configuration/configuration-form.component.d.ts +3 -0
- package/lib/features/projectable-forms/configuration/configuration-form.component.d.ts.map +1 -1
- package/lib/features/projectable-forms/form-field-container/form-field-container.component.d.ts +2 -1
- package/lib/features/projectable-forms/form-field-container/form-field-container.component.d.ts.map +1 -1
- package/lib/features/projectable-forms/service/service-form.component.d.ts.map +1 -1
- package/lib/features/projectable-forms/service/service-form.service.d.ts.map +1 -1
- package/lib/features/projectable-forms/service-policy/service-policy-form.service.d.ts +1 -1
- package/lib/features/projectable-forms/service-policy/service-policy-form.service.d.ts.map +1 -1
- package/lib/features/qr-code/qr-code.component.d.ts.map +1 -1
- package/lib/features/sidebars/side-toolbar/side-toolbar.component.d.ts.map +1 -1
- package/lib/features/wrappers/zac-wrapper.service.d.ts.map +1 -1
- package/lib/pages/auth-policies/auth-policies-page.component.d.ts.map +1 -1
- package/lib/pages/auth-policies/auth-policies-page.service.d.ts +1 -1
- package/lib/pages/auth-policies/auth-policies-page.service.d.ts.map +1 -1
- package/lib/pages/configurations/configurations-page.component.d.ts.map +1 -1
- package/lib/pages/edge-router-policies/edge-router-policies-page.service.d.ts +0 -2
- package/lib/pages/edge-router-policies/edge-router-policies-page.service.d.ts.map +1 -1
- package/lib/pages/edge-routers/edge-routers-page.service.d.ts +5 -3
- package/lib/pages/edge-routers/edge-routers-page.service.d.ts.map +1 -1
- package/lib/pages/identities/identities-page.service.d.ts +4 -2
- package/lib/pages/identities/identities-page.service.d.ts.map +1 -1
- package/lib/pages/service-edge-router-policies/service-edge-router-policies-page.service.d.ts +0 -2
- package/lib/pages/service-edge-router-policies/service-edge-router-policies-page.service.d.ts.map +1 -1
- package/lib/pages/service-policies/service-policies-page.component.d.ts.map +1 -1
- package/lib/pages/service-policies/service-policies-page.service.d.ts +0 -2
- package/lib/pages/service-policies/service-policies-page.service.d.ts.map +1 -1
- package/lib/pages/services/services-page.component.d.ts +9 -1
- package/lib/pages/services/services-page.component.d.ts.map +1 -1
- package/lib/pages/services/services-page.service.d.ts +19 -3
- package/lib/pages/services/services-page.service.d.ts.map +1 -1
- package/lib/services/node-data.service.d.ts.map +1 -1
- package/lib/services/settings-service.class.d.ts +1 -0
- package/lib/services/settings-service.class.d.ts.map +1 -1
- package/lib/services/settings.service.d.ts.map +1 -1
- package/lib/shared/list-page-component.class.d.ts +2 -1
- package/lib/shared/list-page-component.class.d.ts.map +1 -1
- package/lib/shared/list-page-service.class.d.ts +6 -0
- package/lib/shared/list-page-service.class.d.ts.map +1 -1
- package/lib/ziti-console-lib.module.d.ts +19 -18
- package/lib/ziti-console-lib.module.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
limitations under the License.
|
|
15
15
|
*/
|
|
16
16
|
import { Injectable, Inject } from "@angular/core";
|
|
17
|
-
import {
|
|
17
|
+
import { isEmpty } from 'lodash';
|
|
18
18
|
import { ListPageServiceClass } from "../../shared/list-page-service.class";
|
|
19
19
|
import { TableColumnDefaultComponent } from "../../features/data-table/column-headers/table-column-default/table-column-default.component";
|
|
20
20
|
import { SETTINGS_SERVICE } from "../../services/settings.service";
|
|
@@ -29,14 +29,11 @@ import * as i2 from "../../services/csv-download.service";
|
|
|
29
29
|
import * as i3 from "../../features/messaging/growler.service";
|
|
30
30
|
import * as i4 from "@angular/material/dialog";
|
|
31
31
|
import * as i5 from "@angular/router";
|
|
32
|
-
import * as i6 from "../../
|
|
33
|
-
import * as i7 from "../../services/
|
|
34
|
-
|
|
35
|
-
{ label: 'Name', path: 'name' },
|
|
36
|
-
{ label: 'Created At', path: 'createdAt' }
|
|
37
|
-
];
|
|
32
|
+
import * as i6 from "../../features/projectable-forms/service-policy/service-policy-form.service";
|
|
33
|
+
import * as i7 from "../../services/settings-service.class";
|
|
34
|
+
import * as i8 from "../../services/ziti-data.service";
|
|
38
35
|
class ServicesPageService extends ListPageServiceClass {
|
|
39
|
-
constructor(settings, filterService, zitiService, csvDownloadService, growlerService, dialogForm, extService, router) {
|
|
36
|
+
constructor(settings, filterService, zitiService, csvDownloadService, growlerService, dialogForm, extService, router, servicePolicyService) {
|
|
40
37
|
super(settings, filterService, csvDownloadService, extService, router);
|
|
41
38
|
this.zitiService = zitiService;
|
|
42
39
|
this.csvDownloadService = csvDownloadService;
|
|
@@ -44,8 +41,16 @@ class ServicesPageService extends ListPageServiceClass {
|
|
|
44
41
|
this.dialogForm = dialogForm;
|
|
45
42
|
this.extService = extService;
|
|
46
43
|
this.router = router;
|
|
44
|
+
this.servicePolicyService = servicePolicyService;
|
|
47
45
|
this.paging = this.DEFAULT_PAGING;
|
|
48
46
|
this.modalType = 'service';
|
|
47
|
+
this.CSV_COLUMNS = [
|
|
48
|
+
{ label: 'Name', path: 'name' },
|
|
49
|
+
{ label: 'ID', path: 'id' },
|
|
50
|
+
{ label: 'Encryption Required', path: 'encryptionRequired' },
|
|
51
|
+
{ label: 'Terminator Strategy', path: 'terminatorStrategy' },
|
|
52
|
+
{ label: 'Created At', path: 'createdAt' },
|
|
53
|
+
];
|
|
49
54
|
this.serviceType = '';
|
|
50
55
|
this.selectedService = new Service();
|
|
51
56
|
this.columnFilters = {
|
|
@@ -175,17 +180,6 @@ class ServicesPageService extends ListPageServiceClass {
|
|
|
175
180
|
getIdentityRoleAttributes() {
|
|
176
181
|
return this.zitiService.get('identity-role-attributes', {}, []);
|
|
177
182
|
}
|
|
178
|
-
downloadAllItems() {
|
|
179
|
-
const paging = cloneDeep(this.paging);
|
|
180
|
-
paging.total = this.totalCount;
|
|
181
|
-
super.getTableData('services', paging, undefined, undefined)
|
|
182
|
-
.then((results) => {
|
|
183
|
-
return this.downloadItems(results?.data);
|
|
184
|
-
});
|
|
185
|
-
}
|
|
186
|
-
downloadItems(selectedItems) {
|
|
187
|
-
this.csvDownloadService.download('services', selectedItems, CSV_COLUMNS, false, false, undefined, false);
|
|
188
|
-
}
|
|
189
183
|
openSelection() {
|
|
190
184
|
this.router.navigateByUrl('/services/select');
|
|
191
185
|
}
|
|
@@ -204,7 +198,132 @@ class ServicesPageService extends ListPageServiceClass {
|
|
|
204
198
|
}
|
|
205
199
|
this.sideModalOpen = true;
|
|
206
200
|
}
|
|
207
|
-
|
|
201
|
+
getAllServicesAndOrphans(selectedItems) {
|
|
202
|
+
const promises = [];
|
|
203
|
+
const selected = [];
|
|
204
|
+
const allItem = {
|
|
205
|
+
name: 'All',
|
|
206
|
+
id: 'all',
|
|
207
|
+
associatedConfigs: [],
|
|
208
|
+
associatedServicePolicies: []
|
|
209
|
+
};
|
|
210
|
+
selectedItems.forEach((service) => {
|
|
211
|
+
const serviceItem = {
|
|
212
|
+
name: service.name,
|
|
213
|
+
id: service.id,
|
|
214
|
+
associatedConfigs: [],
|
|
215
|
+
associatedServicePolicies: []
|
|
216
|
+
};
|
|
217
|
+
const svcCfgAssociationPromises = [];
|
|
218
|
+
const allCfgAssociationsPromise = new Promise((resolve, reject) => {
|
|
219
|
+
this.zitiService.getSubdata('services', service.id, 'configs').then((result) => {
|
|
220
|
+
const configs = result.data;
|
|
221
|
+
configs.forEach((config) => {
|
|
222
|
+
const cfgProm = this.zitiService.getSubdata('configs', config.id, 'services').then((result) => {
|
|
223
|
+
const associatedServices = result.data;
|
|
224
|
+
const isOrphan = !associatedServices.some((svc) => {
|
|
225
|
+
return svc.id !== service.id;
|
|
226
|
+
});
|
|
227
|
+
if (isOrphan) {
|
|
228
|
+
serviceItem.associatedConfigs.push(config);
|
|
229
|
+
}
|
|
230
|
+
}).catch(() => {
|
|
231
|
+
reject();
|
|
232
|
+
});
|
|
233
|
+
svcCfgAssociationPromises.push(cfgProm);
|
|
234
|
+
});
|
|
235
|
+
Promise.all(svcCfgAssociationPromises).then(() => {
|
|
236
|
+
serviceItem.associatedConfigs = serviceItem.associatedConfigs.map((config) => {
|
|
237
|
+
const cfg = {
|
|
238
|
+
name: config.name,
|
|
239
|
+
id: config.id
|
|
240
|
+
};
|
|
241
|
+
if (!this.isConfigAdded(cfg, allItem)) {
|
|
242
|
+
allItem.associatedConfigs.push(cfg);
|
|
243
|
+
}
|
|
244
|
+
return cfg;
|
|
245
|
+
});
|
|
246
|
+
resolve(serviceItem.associatedConfigs);
|
|
247
|
+
});
|
|
248
|
+
}).catch(() => {
|
|
249
|
+
reject();
|
|
250
|
+
});
|
|
251
|
+
});
|
|
252
|
+
promises.push(allCfgAssociationsPromise);
|
|
253
|
+
const svcPolAssociationPromises = [];
|
|
254
|
+
const allSvcAssociationsPromise = new Promise((resolve, reject) => {
|
|
255
|
+
this.zitiService.getSubdata('services', service.id, 'service-policies').then((result) => {
|
|
256
|
+
const policies = result.data;
|
|
257
|
+
policies.forEach((pol) => {
|
|
258
|
+
let roleAttributes = pol.serviceRoles.filter((attr) => {
|
|
259
|
+
return attr.charAt('0') === '#';
|
|
260
|
+
});
|
|
261
|
+
roleAttributes = roleAttributes.map((attr) => {
|
|
262
|
+
return attr.substring(1);
|
|
263
|
+
});
|
|
264
|
+
const prom = this.servicePolicyService.getAssociatedServicesByAttribute(roleAttributes, []).then((result) => {
|
|
265
|
+
const isOrphan = !result.some((svc) => {
|
|
266
|
+
return svc.id !== service.id;
|
|
267
|
+
});
|
|
268
|
+
if (isOrphan) {
|
|
269
|
+
serviceItem.associatedServicePolicies.push(pol);
|
|
270
|
+
}
|
|
271
|
+
}).catch(() => {
|
|
272
|
+
reject();
|
|
273
|
+
});
|
|
274
|
+
svcPolAssociationPromises.push(prom);
|
|
275
|
+
});
|
|
276
|
+
Promise.all(svcPolAssociationPromises).then(() => {
|
|
277
|
+
serviceItem.associatedServicePolicies = serviceItem.associatedServicePolicies.map((pol) => {
|
|
278
|
+
const policy = {
|
|
279
|
+
name: pol.name,
|
|
280
|
+
id: pol.id
|
|
281
|
+
};
|
|
282
|
+
if (!this.isServicePolicyAdded(policy, allItem)) {
|
|
283
|
+
allItem.associatedServicePolicies.push(policy);
|
|
284
|
+
}
|
|
285
|
+
return policy;
|
|
286
|
+
});
|
|
287
|
+
resolve(serviceItem.associatedServicePolicies);
|
|
288
|
+
});
|
|
289
|
+
}).catch(() => {
|
|
290
|
+
reject();
|
|
291
|
+
});
|
|
292
|
+
});
|
|
293
|
+
promises.push(allSvcAssociationsPromise);
|
|
294
|
+
selected.push(serviceItem);
|
|
295
|
+
});
|
|
296
|
+
return Promise.all(promises).then(() => {
|
|
297
|
+
return { selectedItems: selected, allItem: allItem };
|
|
298
|
+
});
|
|
299
|
+
}
|
|
300
|
+
isConfigAdded(configToAdd, allItem) {
|
|
301
|
+
return allItem.associatedConfigs.some((config) => {
|
|
302
|
+
return config.id === configToAdd.id;
|
|
303
|
+
});
|
|
304
|
+
}
|
|
305
|
+
isServicePolicyAdded(policyToAdd, allItem) {
|
|
306
|
+
return allItem.associatedServicePolicies.some((policy) => {
|
|
307
|
+
return policy.id === policyToAdd.id;
|
|
308
|
+
});
|
|
309
|
+
}
|
|
310
|
+
removeAllServicesAndOrphans(allItems) {
|
|
311
|
+
const promises = [];
|
|
312
|
+
allItems.forEach((service) => {
|
|
313
|
+
const prom = this.dataService.delete('services', service.id);
|
|
314
|
+
promises.push(prom);
|
|
315
|
+
service.associatedConfigs.forEach((config) => {
|
|
316
|
+
const cfgPromise = this.dataService.delete('configs', config.id);
|
|
317
|
+
promises.push(cfgPromise);
|
|
318
|
+
});
|
|
319
|
+
service.associatedServicePolicies.forEach((policy) => {
|
|
320
|
+
const svcPolPromise = this.dataService.delete('service-policies', policy.id);
|
|
321
|
+
promises.push(svcPolPromise);
|
|
322
|
+
});
|
|
323
|
+
});
|
|
324
|
+
return Promise.all(promises);
|
|
325
|
+
}
|
|
326
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ServicesPageService, deps: [{ token: SETTINGS_SERVICE }, { token: i1.DataTableFilterService }, { token: ZITI_DATA_SERVICE }, { token: i2.CsvDownloadService }, { token: i3.GrowlerService }, { token: i4.MatDialog }, { token: SHAREDZ_EXTENSION }, { token: i5.Router }, { token: i6.ServicePolicyFormService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
208
327
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ServicesPageService, providedIn: 'root' }); }
|
|
209
328
|
}
|
|
210
329
|
export { ServicesPageService };
|
|
@@ -213,14 +332,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
213
332
|
args: [{
|
|
214
333
|
providedIn: 'root'
|
|
215
334
|
}]
|
|
216
|
-
}], ctorParameters: function () { return [{ type:
|
|
335
|
+
}], ctorParameters: function () { return [{ type: i7.SettingsServiceClass, decorators: [{
|
|
217
336
|
type: Inject,
|
|
218
337
|
args: [SETTINGS_SERVICE]
|
|
219
|
-
}] }, { type: i1.DataTableFilterService }, { type:
|
|
338
|
+
}] }, { type: i1.DataTableFilterService }, { type: i8.ZitiDataService, decorators: [{
|
|
220
339
|
type: Inject,
|
|
221
340
|
args: [ZITI_DATA_SERVICE]
|
|
222
341
|
}] }, { type: i2.CsvDownloadService }, { type: i3.GrowlerService }, { type: i4.MatDialog }, { type: undefined, decorators: [{
|
|
223
342
|
type: Inject,
|
|
224
343
|
args: [SHAREDZ_EXTENSION]
|
|
225
|
-
}] }, { type: i5.Router }]; } });
|
|
226
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZXMtcGFnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMveml0aS1jb25zb2xlLWxpYi9zcmMvbGliL3BhZ2VzL3NlcnZpY2VzL3NlcnZpY2VzLXBhZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7RUFjRTtBQUVGLE9BQU8sRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBQyxTQUFTLEVBQUUsT0FBTyxFQUFDLE1BQU0sUUFBUSxDQUFDO0FBRzFDLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQzFFLE9BQU8sRUFDSCwyQkFBMkIsRUFDOUIsTUFBTSw4RkFBOEYsQ0FBQztBQUV0RyxPQUFPLEVBQUMsZ0JBQWdCLEVBQWtCLE1BQU0saUNBQWlDLENBQUM7QUFDbEYsT0FBTyxFQUFDLGlCQUFpQixFQUFrQixNQUFNLGtDQUFrQyxDQUFDO0FBRXBGLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUM3QyxPQUFPLEVBQUMsS0FBSyxFQUFDLE1BQU0sUUFBUSxDQUFDO0FBSzdCLE9BQU8sRUFBbUIsaUJBQWlCLEVBQUMsTUFBTSxtREFBbUQsQ0FBQztBQUV0RyxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSwyRUFBMkUsQ0FBQzs7Ozs7Ozs7O0FBRWpILE1BQU0sV0FBVyxHQUFHO0lBQ2hCLEVBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFDO0lBQzdCLEVBQUMsS0FBSyxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFDO0NBQzNDLENBQUM7QUFFRixNQUdhLG1CQUFvQixTQUFRLG9CQUFvQjtJQTBCekQsWUFDOEIsUUFBOEIsRUFDeEQsYUFBcUMsRUFDRixXQUE0QixFQUN0RCxrQkFBc0Ms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LE1BQU0sQ0FBQyxhQUFhLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRU0sWUFBWSxDQUFDLEVBQUUsR0FBRyxFQUFFO1FBQ3ZCLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLHNCQUFzQixFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFTSxVQUFVLENBQUMsSUFBVTtRQUN4QixJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztRQUMzQixJQUFJLElBQUksRUFBRTtZQUNOLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO1lBQzVCLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztZQUNqQyxLQUFLLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxRQUFRLENBQUMsQ0FBQztTQUN6QzthQUFNO1lBQ0gsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1NBQ3hDO1FBQ0QsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7SUFDOUIsQ0FBQzsrR0F0TVEsbUJBQW1CLGtCQTJCaEIsZ0JBQWdCLG1EQUVoQixpQkFBaUIsc0dBSWpCLGlCQUFpQjttSEFqQ3BCLG1CQUFtQixjQUZoQixNQUFNOztTQUVULG1CQUFtQjs0RkFBbkIsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQjs7MEJBNEJRLE1BQU07MkJBQUMsZ0JBQWdCOzswQkFFdkIsTUFBTTsyQkFBQyxpQkFBaUI7OzBCQUl4QixNQUFNOzJCQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gICAgQ29weXJpZ2h0IE5ldEZvdW5kcnkgSW5jLlxuXG4gICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG5cbiAgICBodHRwczovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG5cbiAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiovXG5cbmltcG9ydCB7SW5qZWN0YWJsZSwgSW5qZWN0fSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtjbG9uZURlZXAsIGlzRW1wdHl9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5pbXBvcnQge0RhdGFUYWJsZUZpbHRlclNlcnZpY2UsIEZpbHRlck9ian0gZnJvbSBcIi4uLy4uL2ZlYXR1cmVzL2RhdGEtdGFibGUvZGF0YS10YWJsZS1maWx0ZXIuc2VydmljZVwiO1xuaW1wb3J0IHtMaXN0UGFnZVNlcnZpY2VDbGFzc30gZnJvbSBcIi4uLy4uL3NoYXJlZC9saXN0LXBhZ2Utc2VydmljZS5jbGFzc1wiO1xuaW1wb3J0IHtcbiAgICBUYWJsZUNvbHVtbkRlZmF1bHRDb21wb25lbnRcbn0gZnJvbSBcIi4uLy4uL2ZlYXR1cmVzL2RhdGEtdGFibGUvY29sdW1uLWhlYWRlcnMvdGFibGUtY29sdW1uLWRlZmF1bHQvdGFibGUtY29sdW1uLWRlZmF1bHQuY29tcG9uZW50XCI7XG5pbXBvcnQge0NhbGxiYWNrUmVzdWx0c30gZnJvbSBcIi4uLy4uL2ZlYXR1cmVzL2xpc3QtcGFnZS1mZWF0dXJlcy9saXN0LXBhZ2UtZm9ybS9saXN0LXBhZ2UtZm9ybS5jb21wb25lbnRcIjtcbmltcG9ydCB7U0VUVElOR1NfU0VSVklDRSwgU2V0dGluZ3NTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvc2V0dGluZ3Muc2VydmljZVwiO1xuaW1wb3J0IHtaSVRJX0RBVEFfU0VSVklDRSwgWml0aURhdGFTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZXMveml0aS1kYXRhLnNlcnZpY2VcIjtcbmltcG9ydCB7Q3N2RG93bmxvYWRTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvY3N2LWRvd25sb2FkLnNlcnZpY2VcIjtcbmltcG9ydCB7U2VydmljZX0gZnJvbSBcIi4uLy4uL21vZGVscy9zZXJ2aWNlXCI7XG5pbXBvcnQge3Vuc2V0fSBmcm9tIFwibG9kYXNoXCI7XG5pbXBvcnQge0dyb3dsZXJNb2RlbH0gZnJvbSBcIi4uLy4uL2ZlYXR1cmVzL21lc3NhZ2luZy9ncm93bGVyLm1vZGVsXCI7XG5pbXBvcnQge0dyb3dsZXJTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vZmVhdHVyZXMvbWVzc2FnaW5nL2dyb3dsZXIuc2VydmljZVwiO1xuaW1wb3J0IHtNYXREaWFsb2d9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2dcIjtcbmltcG9ydCB7U2V0dGluZ3NTZXJ2aWNlQ2xhc3N9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9zZXR0aW5ncy1zZXJ2aWNlLmNsYXNzXCI7XG5pbXBvcnQge0V4dGVuc2lvblNlcnZpY2UsIFNIQVJFRFpfRVhURU5TSU9OfSBmcm9tIFwiLi4vLi4vZmVhdHVyZXMvZXh0ZW5kYWJsZS9leHRlbnNpb25zLW5vb3Auc2VydmljZVwiO1xuaW1wb3J0IHtSb3V0ZXJ9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcbmltcG9ydCB7VGFibGVDZWxsTmFtZUNvbXBvbmVudH0gZnJvbSBcIi4uLy4uL2ZlYXR1cmVzL2RhdGEtdGFibGUvY2VsbHMvdGFibGUtY2VsbC1uYW1lL3RhYmxlLWNlbGwtbmFtZS5jb21wb25lbnRcIjtcblxuY29uc3QgQ1NWX0NPTFVNTlMgPSBbXG4gICAge2xhYmVsOiAnTmFtZScsIHBhdGg6ICduYW1lJ30sXG4gICAge2xhYmVsOiAnQ3JlYXRlZCBBdCcsIHBhdGg6ICdjcmVhdGVkQXQnfVxuXTtcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBTZXJ2aWNlc1BhZ2VTZXJ2aWNlIGV4dGVuZHMgTGlzdFBhZ2VTZXJ2aWNlQ2xhc3Mge1xuXG4gICAgcHJpdmF0ZSBwYWdpbmcgPSB0aGlzLkRFRkFVTFRfUEFHSU5HO1xuICAgIHB1YmxpYyBtb2RhbFR5cGUgPSAnc2VydmljZSc7XG5cbiAgICBzZXJ2aWNlVHlwZSA9ICcnO1xuICAgIHNlbGVjdGVkU2VydmljZTogYW55ID0gbmV3IFNlcnZpY2UoKTtcbiAgICBjb2x1bW5GaWx0ZXJzOiBhbnkgPSB7XG4gICAgICAgIG5hbWU6ICcnLFxuICAgICAgICBvczogJycsXG4gICAgICAgIGNyZWF0ZWRBdDogJycsXG4gICAgfTtcblxuICAgIG92ZXJyaWRlIG1lbnVJdGVtcyA9IFtcbiAgICAgICAge25hbWU6ICdFZGl0JywgYWN0aW9uOiAndXBkYXRlJ30sXG4gICAgICAgIHtuYW1lOiAnRGVsZXRlJywgYWN0aW9uOiAnZGVsZXRlJ30sXG4gICAgXVxuXG4gICAgb3ZlcnJpZGUgdGFibGVIZWFkZXJBY3Rpb25zID0gW1xuICAgICAgICB7bmFtZTogJ0Rvd25sb2FkIEFsbCcsIGFjdGlvbjogJ2Rvd25sb2FkLWFsbCd9LFxuICAgICAgICB7bmFtZTogJ0Rvd25sb2FkIFNlbGVjdGVkJywgYWN0aW9uOiAnZG93bmxvYWQtc2VsZWN0ZWQnfSxcbiAgICBdXG5cbiAgICByZXNvdXJjZVR5cGUgPSAnc2VydmljZXMnO1xuICAgIG92ZXJyaWRlIGJhc2VQYXRoID0gJy9zZXJ2aWNlcy9hZHZhbmNlZCc7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChTRVRUSU5HU19TRVJWSUNFKSBzZXR0aW5nczogU2V0dGluZ3NTZXJ2aWNlQ2xhc3MsXG4gICAgICAgIGZpbHRlclNlcnZpY2U6IERhdGFUYWJsZUZpbHRlclNlcnZpY2UsXG4gICAgICAgIEBJbmplY3QoWklUSV9EQVRBX1NFUlZJQ0UpIHByaXZhdGUgeml0aVNlcnZpY2U6IFppdGlEYXRhU2VydmljZSxcbiAgICAgICAgb3ZlcnJpZGUgY3N2RG93bmxvYWRTZXJ2aWNlOiBDc3ZEb3dubG9hZFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgZ3Jvd2xlclNlcnZpY2U6IEdyb3dsZXJTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGRpYWxvZ0Zvcm06IE1hdERpYWxvZyxcbiAgICAgICAgQEluamVjdChTSEFSRURaX0VYVEVOU0lPTikgcHJpdmF0ZSBleHRTZXJ2aWNlOiBFeHRlbnNpb25TZXJ2aWNlLFxuICAgICAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcm91dGVyOiBSb3V0ZXJcbiAgICApIHtcbiAgICAgICAgc3VwZXIoc2V0dGluZ3MsIGZpbHRlclNlcnZpY2UsIGNzdkRvd25sb2FkU2VydmljZSwgZXh0U2VydmljZSwgcm91dGVyKTtcbiAgICB9XG5cbiAgICB2YWxpZGF0ZSA9IChmb3JtRGF0YSk6IFByb21pc2U8Q2FsbGJhY2tSZXN1bHRzPiA9PiB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoeyBwYXNzZWQ6IHRydWV9KTtcbiAgICB9XG5cbiAgICBpbml0VGFibGVDb2x1bW5zKCk6IGFueSB7XG4gICAgICAgIGNvbnN0IHJvbGVzUmVuZGVyZXIgPSAocm93KSA9PiB7XG4gICAgICAgICAgICBsZXQgcm9sZXMgPSAnJztcbiAgICAgICAgICAgIHJvdz8uZGF0YT8ucm9sZUF0dHJpYnV0ZXM/LmZvckVhY2goKGF0dHIpID0+IHtcbiAgICAgICAgICAgICAgICByb2xlcyArPSAnPGRpdiBjbGFzcz1cImhhc2h0YWdcIj4nK2F0dHIrJzwvZGl2Pic7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiByb2xlcztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29sSWQ6ICduYW1lJyxcbiAgICAgICAgICAgICAgICBmaWVsZDogJ25hbWUnLFxuICAgICAgICAgICAgICAgIGhlYWRlck5hbWU6ICdOYW1lJyxcbiAgICAgICAgICAgICAgICBoZWFkZXJDb21wb25lbnQ6IFRhYmxlQ29sdW1uRGVmYXVsdENvbXBvbmVudCxcbiAgICAgICAgICAgICAgICBoZWFkZXJDb21wb25lbnRQYXJhbXM6IHRoaXMuaGVhZGVyQ29tcG9uZW50UGFyYW1zLFxuICAgICAgICAgICAgICAgIGNlbGxSZW5kZXJlcjogVGFibGVDZWxsTmFtZUNvbXBvbmVudCxcbiAgICAgICAgICAgICAgICBjZWxsUmVuZGVyZXJQYXJhbXM6IHsgcGF0aFJvb3Q6ICcvc2VydmljZXMvYWR2YW5jZWQnIH0sXG4gICAgICAgICAgICAgICAgb25DZWxsQ2xpY2tlZDogKGRhdGEpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaGFzU2VsZWN0ZWRUZXh0KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlcnZpY2VUeXBlID0gJ2FkdmFuY2VkJztcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vcGVuQWR2YW5jZWQoZGF0YS5kYXRhLmlkKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHJlc2l6YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBjZWxsQ2xhc3M6ICduZi1jZWxsLXZlcnQtYWxpZ24gdENvbCcsXG4gICAgICAgICAgICAgICAgc29ydGFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgZmlsdGVyOiB0cnVlLFxuICAgICAgICAgICAgICAgIHNvcnRDb2x1bW46IHRoaXMuc29ydC5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgICAgIHNvcnREaXI6ICdhc2MnLFxuICAgICAgICAgICAgICAgIHdpZHRoOiAzMDAsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNvbElkOiAncm9sZUF0dHJpYnV0ZXMnLFxuICAgICAgICAgICAgICAgIGZpZWxkOiAncm9sZUF0dHJpYnV0ZXMnLFxuICAgICAgICAgICAgICAgIGhlYWRlck5hbWU6ICdSb2xlcycsXG4gICAgICAgICAgICAgICAgaGVhZGVyQ29tcG9uZW50OiBUYWJsZUNvbHVtbkRlZmF1bHRDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgb25DZWxsQ2xpY2tlZDogKGRhdGEpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaGFzU2VsZWN0ZWRUZXh0KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlcnZpY2VUeXBlID0gJyc7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub3BlbkFkdmFuY2VkKGRhdGEuZGF0YS5pZCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICByZXNpemFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgY2VsbFJlbmRlcmVyOiB0aGlzLnJvbGVzUmVuZGVyZXIsXG4gICAgICAgICAgICAgICAgY2VsbENsYXNzOiAnbmYtY2VsbC12ZXJ0LWFsaWduIHRDb2wnLFxuICAgICAgICAgICAgICAgIHNvcnRhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBmaWx0ZXI6IGZhbHNlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb2xJZDogJ2NyZWF0ZWRBdCcsXG4gICAgICAgICAgICAgICAgZmllbGQ6ICdjcmVhdGVkQXQnLFxuICAgICAgICAgICAgICAgIGhlYWRlck5hbWU6ICdDcmVhdGVkIEF0JyxcbiAgICAgICAgICAgICAgICBoZWFkZXJDb21wb25lbnQ6IFRhYmxlQ29sdW1uRGVmYXVsdENvbXBvbmVudCxcbiAgICAgICAgICAgICAgICB2YWx1ZUZvcm1hdHRlcjogdGhpcy5jcmVhdGVkQXRGb3JtYXR0ZXIsXG4gICAgICAgICAgICAgICAgcmVzaXphYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIHNvcnRhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIHNvcnRDb2x1bW46IHRoaXMuc29ydC5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgICAgIGNlbGxDbGFzczogJ25mLWNlbGwtdmVydC1hbGlnbiB0Q29sJyxcbiAgICAgICAgICAgICAgICBvbkNlbGxDbGlja2VkOiAoZGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5oYXNTZWxlY3RlZFRleHQoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VydmljZVR5cGUgPSAnJztcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vcGVuQWR2YW5jZWQoZGF0YS5kYXRhLmlkKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfVxuICAgICAgICBdO1xuICAgIH1cblxuICAgIGdldERhdGEoZmlsdGVycz86IEZpbHRlck9ialtdLCBzb3J0PzogYW55LCBwYWdlPzogYW55KTogUHJvbWlzZTxhbnk+IHtcbiAgICAgICAgLy8gd2UgY2FuIGN1c3RvbWl6ZSBmaWx0ZXJzIG9yIHNvcnRpbmcgaGVyZSBiZWZvcmUgbW92aW5nIG9uLi4uXG4gICAgICAgIHRoaXMucGFnaW5nLnBhZ2UgPSBwYWdlIHx8IHRoaXMucGFnaW5nLnBhZ2U7XG4gICAgICAgIHJldHVybiBzdXBlci5nZXRUYWJsZURhdGEoJ3NlcnZpY2VzJywgdGhpcy5wYWdpbmcsIGZpbHRlcnMsIHNvcnQpXG4gICAgICAgICAgICAudGhlbigocmVzdWx0czogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc0RhdGEocmVzdWx0cyk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHByb2Nlc3NEYXRhKHJlc3VsdHM6IGFueSkge1xuICAgICAgICBpZiAoIWlzRW1wdHkocmVzdWx0cz8uZGF0YSkpIHtcbiAgICAgICAgICAgIC8vcHJlLXByb2Nlc3MgZGF0YSBiZWZvcmUgcmVuZGVyaW5nXG4gICAgICAgICAgICByZXN1bHRzLmRhdGEgPSB0aGlzLmFkZEFjdGlvbnNQZXJSb3cocmVzdWx0cyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFpc0VtcHR5KHJlc3VsdHM/Lm1ldGE/LnBhZ2luYXRpb24pKSB7XG4gICAgICAgICAgICB0aGlzLnRvdGFsQ291bnQgPSByZXN1bHRzLm1ldGE/LnBhZ2luYXRpb24udG90YWxDb3VudDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0cztcbiAgICB9XG5cbiAgICBwcml2YXRlIGFkZEFjdGlvbnNQZXJSb3cocmVzdWx0czogYW55KTogYW55W10ge1xuICAgICAgICByZXR1cm4gcmVzdWx0cy5kYXRhLm1hcCgocm93KSA9PiB7XG4gICAgICAgICAgICByb3cuYWN0aW9uTGlzdCA9IFsndXBkYXRlJywgJ2RlbGV0ZSddO1xuICAgICAgICAgICAgcmV0dXJuIHJvdztcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFNlcnZpY2VSb2xlQXR0cmlidXRlcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMueml0aVNlcnZpY2UuZ2V0KCdzZXJ2aWNlLXJvbGUtYXR0cmlidXRlcycsIHt9LCBbXSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldElkZW50aXR5TmFtZWRBdHRyaWJ1dGVzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy56aXRpU2VydmljZS5nZXQoJ2lkZW50aXRpZXMnLCB7fSwgW10pLnRoZW4oKHJlc3VsdCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbmFtZWRBdHRyaWJ1dGVzID0gcmVzdWx0LmRhdGEubWFwKChpZGVudGl0eSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBpZGVudGl0eS5uYW1lO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gbmFtZWRBdHRyaWJ1dGVzO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0SWRlbnRpdHlSb2xlQXR0cmlidXRlcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMueml0aVNlcnZpY2UuZ2V0KCdpZGVudGl0eS1yb2xlLWF0dHJpYnV0ZXMnLCB7fSwgW10pO1xuICAgIH1cblxuICAgIGRvd25sb2FkQWxsSXRlbXMoKSB7XG4gICAgICAgIGNvbnN0IHBhZ2luZyA9IGNsb25lRGVlcCh0aGlzLnBhZ2luZyk7XG4gICAgICAgIHBhZ2luZy50b3RhbCA9IHRoaXMudG90YWxDb3VudDtcbiAgICAgICAgc3VwZXIuZ2V0VGFibGVEYXRhKCdzZXJ2aWNlcycsIHBhZ2luZywgdW5kZWZpbmVkLCB1bmRlZmluZWQpXG4gICAgICAgICAgICAudGhlbigocmVzdWx0czogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZG93bmxvYWRJdGVtcyhyZXN1bHRzPy5kYXRhKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIGRvd25sb2FkSXRlbXMoc2VsZWN0ZWRJdGVtcykge1xuICAgICAgICB0aGlzLmNzdkRvd25sb2FkU2VydmljZS5kb3dubG9hZChcbiAgICAgICAgICAgICdzZXJ2aWNlcycsXG4gICAgICAgICAgICBzZWxlY3RlZEl0ZW1zLFxuICAgICAgICAgICAgQ1NWX0NPTFVNTlMsXG4gICAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICAgIGZhbHNlLFxuICAgICAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3BlblNlbGVjdGlvbigpIHtcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgnL3NlcnZpY2VzL3NlbGVjdCcpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvcGVuQWR2YW5jZWQoaWQgPSAnJykge1xuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKGAvc2VydmljZXMvYWR2YW5jZWQvJHtpZH1gKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3BlblVwZGF0ZShpdGVtPzogYW55KSB7XG4gICAgICAgIHRoaXMubW9kYWxUeXBlID0gJ3NlcnZpY2UnO1xuICAgICAgICBpZiAoaXRlbSkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFNlcnZpY2UgPSBpdGVtO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFNlcnZpY2UuYmFkZ2VzID0gW107XG4gICAgICAgICAgICB1bnNldCh0aGlzLnNlbGVjdGVkU2VydmljZSwgJ19saW5rcycpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFNlcnZpY2UgPSBuZXcgU2VydmljZSgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2lkZU1vZGFsT3BlbiA9IHRydWU7XG4gICAgfVxufVxuIl19
|
|
344
|
+
}] }, { type: i5.Router }, { type: i6.ServicePolicyFormService }]; } });
|
|
345
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZXMtcGFnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMveml0aS1jb25zb2xlLWxpYi9zcmMvbGliL3BhZ2VzL3NlcnZpY2VzL3NlcnZpY2VzLXBhZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7RUFjRTtBQUVGLE9BQU8sRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBWSxPQUFPLEVBQUMsTUFBTSxRQUFRLENBQUM7QUFHMUMsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFDMUUsT0FBTyxFQUNILDJCQUEyQixFQUM5QixNQUFNLDhGQUE4RixDQUFDO0FBRXRHLE9BQU8sRUFBQyxnQkFBZ0IsRUFBa0IsTUFBTSxpQ0FBaUMsQ0FBQztBQUNsRixPQUFPLEVBQUMsaUJBQWlCLEVBQWtCLE1BQU0sa0NBQWtDLENBQUM7QUFFcEYsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxRQUFRLENBQUM7QUFLN0IsT0FBTyxFQUFtQixpQkFBaUIsRUFBQyxNQUFNLG1EQUFtRCxDQUFDO0FBRXRHLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLDJFQUEyRSxDQUFDOzs7Ozs7Ozs7O0FBR2pILE1BR2EsbUJBQW9CLFNBQVEsb0JBQW9CO0lBa0N6RCxZQUM4QixRQUE4QixFQUN4RCxhQUFxQyxFQUNGLFdBQTRCLEVBQ3RELGtCQUFzQyxFQUN2QyxjQUE4QixFQUM5QixVQUFxQixFQUNNLFVBQTRCLEVBQzVDLE1BQWMsRUFDekIsb0JBQThDO1FBRXRELEtBQUssQ0FBQyxRQUFRLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUFFLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQztRQVJwQyxnQkFB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QzdELFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDcEIsT0FBTyxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO2dCQUN6QyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNqRSxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQzlCLENBQUMsQ0FBQyxDQUFDO1lBQ0gsT0FBTyxDQUFDLHlCQUF5QixDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO2dCQUNqRCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQzdFLFFBQVEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDakMsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNqQyxDQUFDOytHQTVUUSxtQkFBbUIsa0JBbUNoQixnQkFBZ0IsbURBRWhCLGlCQUFpQixzR0FJakIsaUJBQWlCO21IQXpDcEIsbUJBQW1CLGNBRmhCLE1BQU07O1NBRVQsbUJBQW1COzRGQUFuQixtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCOzswQkFvQ1EsTUFBTTsyQkFBQyxnQkFBZ0I7OzBCQUV2QixNQUFNOzJCQUFDLGlCQUFpQjs7MEJBSXhCLE1BQU07MkJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAgICBDb3B5cmlnaHQgTmV0Rm91bmRyeSBJbmMuXG5cbiAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcblxuICAgIGh0dHBzOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcblxuICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuKi9cblxuaW1wb3J0IHtJbmplY3RhYmxlLCBJbmplY3R9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge2Nsb25lRGVlcCwgaXNFbXB0eX0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcbmltcG9ydCB7RGF0YVRhYmxlRmlsdGVyU2VydmljZSwgRmlsdGVyT2JqfSBmcm9tIFwiLi4vLi4vZmVhdHVyZXMvZGF0YS10YWJsZS9kYXRhLXRhYmxlLWZpbHRlci5zZXJ2aWNlXCI7XG5pbXBvcnQge0xpc3RQYWdlU2VydmljZUNsYXNzfSBmcm9tIFwiLi4vLi4vc2hhcmVkL2xpc3QtcGFnZS1zZXJ2aWNlLmNsYXNzXCI7XG5pbXBvcnQge1xuICAgIFRhYmxlQ29sdW1uRGVmYXVsdENvbXBvbmVudFxufSBmcm9tIFwiLi4vLi4vZmVhdHVyZXMvZGF0YS10YWJsZS9jb2x1bW4taGVhZGVycy90YWJsZS1jb2x1bW4tZGVmYXVsdC90YWJsZS1jb2x1bW4tZGVmYXVsdC5jb21wb25lbnRcIjtcbmltcG9ydCB7Q2FsbGJhY2tSZXN1bHRzfSBmcm9tIFwiLi4vLi4vZmVhdHVyZXMvbGlzdC1wYWdlLWZlYXR1cmVzL2xpc3QtcGFnZS1mb3JtL2xpc3QtcGFnZS1mb3JtLmNvbXBvbmVudFwiO1xuaW1wb3J0IHtTRVRUSU5HU19TRVJWSUNFLCBTZXR0aW5nc1NlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9zZXR0aW5ncy5zZXJ2aWNlXCI7XG5pbXBvcnQge1pJVElfREFUQV9TRVJWSUNFLCBaaXRpRGF0YVNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy96aXRpLWRhdGEuc2VydmljZVwiO1xuaW1wb3J0IHtDc3ZEb3dubG9hZFNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9jc3YtZG93bmxvYWQuc2VydmljZVwiO1xuaW1wb3J0IHtTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vbW9kZWxzL3NlcnZpY2VcIjtcbmltcG9ydCB7dW5zZXR9IGZyb20gXCJsb2Rhc2hcIjtcbmltcG9ydCB7R3Jvd2xlck1vZGVsfSBmcm9tIFwiLi4vLi4vZmVhdHVyZXMvbWVzc2FnaW5nL2dyb3dsZXIubW9kZWxcIjtcbmltcG9ydCB7R3Jvd2xlclNlcnZpY2V9IGZyb20gXCIuLi8uLi9mZWF0dXJlcy9tZXNzYWdpbmcvZ3Jvd2xlci5zZXJ2aWNlXCI7XG5pbXBvcnQge01hdERpYWxvZ30gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2RpYWxvZ1wiO1xuaW1wb3J0IHtTZXR0aW5nc1NlcnZpY2VDbGFzc30gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL3NldHRpbmdzLXNlcnZpY2UuY2xhc3NcIjtcbmltcG9ydCB7RXh0ZW5zaW9uU2VydmljZSwgU0hBUkVEWl9FWFRFTlNJT059IGZyb20gXCIuLi8uLi9mZWF0dXJlcy9leHRlbmRhYmxlL2V4dGVuc2lvbnMtbm9vcC5zZXJ2aWNlXCI7XG5pbXBvcnQge1JvdXRlcn0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xuaW1wb3J0IHtUYWJsZUNlbGxOYW1lQ29tcG9uZW50fSBmcm9tIFwiLi4vLi4vZmVhdHVyZXMvZGF0YS10YWJsZS9jZWxscy90YWJsZS1jZWxsLW5hbWUvdGFibGUtY2VsbC1uYW1lLmNvbXBvbmVudFwiO1xuaW1wb3J0IHtTZXJ2aWNlUG9saWN5Rm9ybVNlcnZpY2V9IGZyb20gXCIuLi8uLi9mZWF0dXJlcy9wcm9qZWN0YWJsZS1mb3Jtcy9zZXJ2aWNlLXBvbGljeS9zZXJ2aWNlLXBvbGljeS1mb3JtLnNlcnZpY2VcIjtcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBTZXJ2aWNlc1BhZ2VTZXJ2aWNlIGV4dGVuZHMgTGlzdFBhZ2VTZXJ2aWNlQ2xhc3Mge1xuXG4gICAgcHJpdmF0ZSBwYWdpbmcgPSB0aGlzLkRFRkFVTFRfUEFHSU5HO1xuICAgIHB1YmxpYyBtb2RhbFR5cGUgPSAnc2VydmljZSc7XG5cbiAgICBvdmVycmlkZSBDU1ZfQ09MVU1OUyA9IFtcbiAgICAgICAge2xhYmVsOiAnTmFtZScsIHBhdGg6ICduYW1lJ30sXG4gICAgICAgIHtsYWJlbDogJ0lEJywgcGF0aDogJ2lkJ30sXG4gICAgICAgIHtsYWJlbDogJ0VuY3J5cHRpb24gUmVxdWlyZWQnLCBwYXRoOiAnZW5jcnlwdGlvblJlcXVpcmVkJ30sXG4gICAgICAgIHtsYWJlbDogJ1Rlcm1pbmF0b3IgU3RyYXRlZ3knLCBwYXRoOiAndGVybWluYXRvclN0cmF0ZWd5J30sXG4gICAgICAgIHtsYWJlbDogJ0NyZWF0ZWQgQXQnLCBwYXRoOiAnY3JlYXRlZEF0J30sXG4gICAgXVxuXG4gICAgc2VydmljZVR5cGUgPSAnJztcbiAgICBzZWxlY3RlZFNlcnZpY2U6IGFueSA9IG5ldyBTZXJ2aWNlKCk7XG4gICAgY29sdW1uRmlsdGVyczogYW55ID0ge1xuICAgICAgICBuYW1lOiAnJyxcbiAgICAgICAgb3M6ICcnLFxuICAgICAgICBjcmVhdGVkQXQ6ICcnLFxuICAgIH07XG5cbiAgICBvdmVycmlkZSBtZW51SXRlbXMgPSBbXG4gICAgICAgIHtuYW1lOiAnRWRpdCcsIGFjdGlvbjogJ3VwZGF0ZSd9LFxuICAgICAgICB7bmFtZTogJ0RlbGV0ZScsIGFjdGlvbjogJ2RlbGV0ZSd9LFxuICAgIF1cblxuICAgIG92ZXJyaWRlIHRhYmxlSGVhZGVyQWN0aW9ucyA9IFtcbiAgICAgICAge25hbWU6ICdEb3dubG9hZCBBbGwnLCBhY3Rpb246ICdkb3dubG9hZC1hbGwnfSxcbiAgICAgICAge25hbWU6ICdEb3dubG9hZCBTZWxlY3RlZCcsIGFjdGlvbjogJ2Rvd25sb2FkLXNlbGVjdGVkJ30sXG4gICAgXVxuXG4gICAgcmVzb3VyY2VUeXBlID0gJ3NlcnZpY2VzJztcbiAgICBvdmVycmlkZSBiYXNlUGF0aCA9ICcvc2VydmljZXMvYWR2YW5jZWQnO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoU0VUVElOR1NfU0VSVklDRSkgc2V0dGluZ3M6IFNldHRpbmdzU2VydmljZUNsYXNzLFxuICAgICAgICBmaWx0ZXJTZXJ2aWNlOiBEYXRhVGFibGVGaWx0ZXJTZXJ2aWNlLFxuICAgICAgICBASW5qZWN0KFpJVElfREFUQV9TRVJWSUNFKSBwcml2YXRlIHppdGlTZXJ2aWNlOiBaaXRpRGF0YVNlcnZpY2UsXG4gICAgICAgIG92ZXJyaWRlIGNzdkRvd25sb2FkU2VydmljZTogQ3N2RG93bmxvYWRTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGdyb3dsZXJTZXJ2aWNlOiBHcm93bGVyU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBkaWFsb2dGb3JtOiBNYXREaWFsb2csXG4gICAgICAgIEBJbmplY3QoU0hBUkVEWl9FWFRFTlNJT04pIHByaXZhdGUgZXh0U2VydmljZTogRXh0ZW5zaW9uU2VydmljZSxcbiAgICAgICAgcHJvdGVjdGVkIG92ZXJyaWRlIHJvdXRlcjogUm91dGVyLFxuICAgICAgICBwcml2YXRlIHNlcnZpY2VQb2xpY3lTZXJ2aWNlOiBTZXJ2aWNlUG9saWN5Rm9ybVNlcnZpY2VcbiAgICApIHtcbiAgICAgICAgc3VwZXIoc2V0dGluZ3MsIGZpbHRlclNlcnZpY2UsIGNzdkRvd25sb2FkU2VydmljZSwgZXh0U2VydmljZSwgcm91dGVyKTtcbiAgICB9XG5cbiAgICB2YWxpZGF0ZSA9IChmb3JtRGF0YSk6IFByb21pc2U8Q2FsbGJhY2tSZXN1bHRzPiA9PiB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoeyBwYXNzZWQ6IHRydWV9KTtcbiAgICB9XG5cbiAgICBpbml0VGFibGVDb2x1bW5zKCk6IGFueSB7XG4gICAgICAgIGNvbnN0IHJvbGVzUmVuZGVyZXIgPSAocm93KSA9PiB7XG4gICAgICAgICAgICBsZXQgcm9sZXMgPSAnJztcbiAgICAgICAgICAgIHJvdz8uZGF0YT8ucm9sZUF0dHJpYnV0ZXM/LmZvckVhY2goKGF0dHIpID0+IHtcbiAgICAgICAgICAgICAgICByb2xlcyArPSAnPGRpdiBjbGFzcz1cImhhc2h0YWdcIj4nK2F0dHIrJzwvZGl2Pic7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiByb2xlcztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29sSWQ6ICduYW1lJyxcbiAgICAgICAgICAgICAgICBmaWVsZDogJ25hbWUnLFxuICAgICAgICAgICAgICAgIGhlYWRlck5hbWU6ICdOYW1lJyxcbiAgICAgICAgICAgICAgICBoZWFkZXJDb21wb25lbnQ6IFRhYmxlQ29sdW1uRGVmYXVsdENvbXBvbmVudCxcbiAgICAgICAgICAgICAgICBoZWFkZXJDb21wb25lbnRQYXJhbXM6IHRoaXMuaGVhZGVyQ29tcG9uZW50UGFyYW1zLFxuICAgICAgICAgICAgICAgIGNlbGxSZW5kZXJlcjogVGFibGVDZWxsTmFtZUNvbXBvbmVudCxcbiAgICAgICAgICAgICAgICBjZWxsUmVuZGVyZXJQYXJhbXM6IHsgcGF0aFJvb3Q6ICcvc2VydmljZXMvYWR2YW5jZWQnIH0sXG4gICAgICAgICAgICAgICAgb25DZWxsQ2xpY2tlZDogKGRhdGEpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaGFzU2VsZWN0ZWRUZXh0KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlcnZpY2VUeXBlID0gJ2FkdmFuY2VkJztcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vcGVuQWR2YW5jZWQoZGF0YS5kYXRhLmlkKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHJlc2l6YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBjZWxsQ2xhc3M6ICduZi1jZWxsLXZlcnQtYWxpZ24gdENvbCcsXG4gICAgICAgICAgICAgICAgc29ydGFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgZmlsdGVyOiB0cnVlLFxuICAgICAgICAgICAgICAgIHNvcnRDb2x1bW46IHRoaXMuc29ydC5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgICAgIHNvcnREaXI6ICdhc2MnLFxuICAgICAgICAgICAgICAgIHdpZHRoOiAzMDAsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNvbElkOiAncm9sZUF0dHJpYnV0ZXMnLFxuICAgICAgICAgICAgICAgIGZpZWxkOiAncm9sZUF0dHJpYnV0ZXMnLFxuICAgICAgICAgICAgICAgIGhlYWRlck5hbWU6ICdSb2xlcycsXG4gICAgICAgICAgICAgICAgaGVhZGVyQ29tcG9uZW50OiBUYWJsZUNvbHVtbkRlZmF1bHRDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgb25DZWxsQ2xpY2tlZDogKGRhdGEpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaGFzU2VsZWN0ZWRUZXh0KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlcnZpY2VUeXBlID0gJyc7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub3BlbkFkdmFuY2VkKGRhdGEuZGF0YS5pZCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICByZXNpemFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgY2VsbFJlbmRlcmVyOiB0aGlzLnJvbGVzUmVuZGVyZXIsXG4gICAgICAgICAgICAgICAgY2VsbENsYXNzOiAnbmYtY2VsbC12ZXJ0LWFsaWduIHRDb2wnLFxuICAgICAgICAgICAgICAgIHNvcnRhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBmaWx0ZXI6IGZhbHNlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb2xJZDogJ2NyZWF0ZWRBdCcsXG4gICAgICAgICAgICAgICAgZmllbGQ6ICdjcmVhdGVkQXQnLFxuICAgICAgICAgICAgICAgIGhlYWRlck5hbWU6ICdDcmVhdGVkIEF0JyxcbiAgICAgICAgICAgICAgICBoZWFkZXJDb21wb25lbnQ6IFRhYmxlQ29sdW1uRGVmYXVsdENvbXBvbmVudCxcbiAgICAgICAgICAgICAgICB2YWx1ZUZvcm1hdHRlcjogdGhpcy5jcmVhdGVkQXRGb3JtYXR0ZXIsXG4gICAgICAgICAgICAgICAgcmVzaXphYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIHNvcnRhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIHNvcnRDb2x1bW46IHRoaXMuc29ydC5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgICAgIGNlbGxDbGFzczogJ25mLWNlbGwtdmVydC1hbGlnbiB0Q29sJyxcbiAgICAgICAgICAgICAgICBvbkNlbGxDbGlja2VkOiAoZGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5oYXNTZWxlY3RlZFRleHQoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VydmljZVR5cGUgPSAnJztcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vcGVuQWR2YW5jZWQoZGF0YS5kYXRhLmlkKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfVxuICAgICAgICBdO1xuICAgIH1cblxuICAgIGdldERhdGEoZmlsdGVycz86IEZpbHRlck9ialtdLCBzb3J0PzogYW55LCBwYWdlPzogYW55KTogUHJvbWlzZTxhbnk+IHtcbiAgICAgICAgLy8gd2UgY2FuIGN1c3RvbWl6ZSBmaWx0ZXJzIG9yIHNvcnRpbmcgaGVyZSBiZWZvcmUgbW92aW5nIG9uLi4uXG4gICAgICAgIHRoaXMucGFnaW5nLnBhZ2UgPSBwYWdlIHx8IHRoaXMucGFnaW5nLnBhZ2U7XG4gICAgICAgIHJldHVybiBzdXBlci5nZXRUYWJsZURhdGEoJ3NlcnZpY2VzJywgdGhpcy5wYWdpbmcsIGZpbHRlcnMsIHNvcnQpXG4gICAgICAgICAgICAudGhlbigocmVzdWx0czogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc0RhdGEocmVzdWx0cyk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHByb2Nlc3NEYXRhKHJlc3VsdHM6IGFueSkge1xuICAgICAgICBpZiAoIWlzRW1wdHkocmVzdWx0cz8uZGF0YSkpIHtcbiAgICAgICAgICAgIC8vcHJlLXByb2Nlc3MgZGF0YSBiZWZvcmUgcmVuZGVyaW5nXG4gICAgICAgICAgICByZXN1bHRzLmRhdGEgPSB0aGlzLmFkZEFjdGlvbnNQZXJSb3cocmVzdWx0cyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFpc0VtcHR5KHJlc3VsdHM/Lm1ldGE/LnBhZ2luYXRpb24pKSB7XG4gICAgICAgICAgICB0aGlzLnRvdGFsQ291bnQgPSByZXN1bHRzLm1ldGE/LnBhZ2luYXRpb24udG90YWxDb3VudDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0cztcbiAgICB9XG5cbiAgICBwcml2YXRlIGFkZEFjdGlvbnNQZXJSb3cocmVzdWx0czogYW55KTogYW55W10ge1xuICAgICAgICByZXR1cm4gcmVzdWx0cy5kYXRhLm1hcCgocm93KSA9PiB7XG4gICAgICAgICAgICByb3cuYWN0aW9uTGlzdCA9IFsndXBkYXRlJywgJ2RlbGV0ZSddO1xuICAgICAgICAgICAgcmV0dXJuIHJvdztcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFNlcnZpY2VSb2xlQXR0cmlidXRlcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMueml0aVNlcnZpY2UuZ2V0KCdzZXJ2aWNlLXJvbGUtYXR0cmlidXRlcycsIHt9LCBbXSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldElkZW50aXR5TmFtZWRBdHRyaWJ1dGVzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy56aXRpU2VydmljZS5nZXQoJ2lkZW50aXRpZXMnLCB7fSwgW10pLnRoZW4oKHJlc3VsdCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbmFtZWRBdHRyaWJ1dGVzID0gcmVzdWx0LmRhdGEubWFwKChpZGVudGl0eSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBpZGVudGl0eS5uYW1lO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gbmFtZWRBdHRyaWJ1dGVzO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0SWRlbnRpdHlSb2xlQXR0cmlidXRlcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMueml0aVNlcnZpY2UuZ2V0KCdpZGVudGl0eS1yb2xlLWF0dHJpYnV0ZXMnLCB7fSwgW10pO1xuICAgIH1cblxuICAgIHB1YmxpYyBvcGVuU2VsZWN0aW9uKCkge1xuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCcvc2VydmljZXMvc2VsZWN0Jyk7XG4gICAgfVxuXG4gICAgcHVibGljIG9wZW5BZHZhbmNlZChpZCA9ICcnKSB7XG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoYC9zZXJ2aWNlcy9hZHZhbmNlZC8ke2lkfWApO1xuICAgIH1cblxuICAgIHB1YmxpYyBvcGVuVXBkYXRlKGl0ZW0/OiBhbnkpIHtcbiAgICAgICAgdGhpcy5tb2RhbFR5cGUgPSAnc2VydmljZSc7XG4gICAgICAgIGlmIChpdGVtKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkU2VydmljZSA9IGl0ZW07XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkU2VydmljZS5iYWRnZXMgPSBbXTtcbiAgICAgICAgICAgIHVuc2V0KHRoaXMuc2VsZWN0ZWRTZXJ2aWNlLCAnX2xpbmtzJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkU2VydmljZSA9IG5ldyBTZXJ2aWNlKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zaWRlTW9kYWxPcGVuID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBnZXRBbGxTZXJ2aWNlc0FuZE9ycGhhbnMoc2VsZWN0ZWRJdGVtcykge1xuICAgICAgICBjb25zdCBwcm9taXNlcyA9IFtdO1xuICAgICAgICBjb25zdCBzZWxlY3RlZCA9IFtdO1xuICAgICAgICBjb25zdCBhbGxJdGVtID0ge1xuICAgICAgICAgICAgbmFtZTogJ0FsbCcsXG4gICAgICAgICAgICBpZDogJ2FsbCcsXG4gICAgICAgICAgICBhc3NvY2lhdGVkQ29uZmlnczogW10sXG4gICAgICAgICAgICBhc3NvY2lhdGVkU2VydmljZVBvbGljaWVzOiBbXVxuICAgICAgICB9O1xuXG4gICAgICAgIHNlbGVjdGVkSXRlbXMuZm9yRWFjaCgoc2VydmljZTogYW55KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzZXJ2aWNlSXRlbSA9IHtcbiAgICAgICAgICAgICAgICBuYW1lOiBzZXJ2aWNlLm5hbWUsXG4gICAgICAgICAgICAgICAgaWQ6IHNlcnZpY2UuaWQsXG4gICAgICAgICAgICAgICAgYXNzb2NpYXRlZENvbmZpZ3M6IFtdLFxuICAgICAgICAgICAgICAgIGFzc29jaWF0ZWRTZXJ2aWNlUG9saWNpZXM6IFtdXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBzdmNDZmdBc3NvY2lhdGlvblByb21pc2VzID0gW107XG4gICAgICAgICAgICBjb25zdCBhbGxDZmdBc3NvY2lhdGlvbnNQcm9taXNlID0gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMueml0aVNlcnZpY2UuZ2V0U3ViZGF0YSgnc2VydmljZXMnLCBzZXJ2aWNlLmlkLCAnY29uZmlncycpLnRoZW4oKHJlc3VsdCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb25maWdzID0gcmVzdWx0LmRhdGE7XG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZ3MuZm9yRWFjaCgoY29uZmlnKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjZmdQcm9tID0gdGhpcy56aXRpU2VydmljZS5nZXRTdWJkYXRhKCdjb25maWdzJywgY29uZmlnLmlkLCAnc2VydmljZXMnKS50aGVuKChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBhc3NvY2lhdGVkU2VydmljZXMgPSByZXN1bHQuZGF0YTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpc09ycGhhbiA9ICFhc3NvY2lhdGVkU2VydmljZXMuc29tZSgoc3ZjKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBzdmMuaWQgIT09IHNlcnZpY2UuaWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzT3JwaGFuKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZpY2VJdGVtLmFzc29jaWF0ZWRDb25maWdzLnB1c2goY29uZmlnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9KS5jYXRjaCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN2Y0NmZ0Fzc29jaWF0aW9uUHJvbWlzZXMucHVzaChjZmdQcm9tKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIFByb21pc2UuYWxsKHN2Y0NmZ0Fzc29jaWF0aW9uUHJvbWlzZXMpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2VydmljZUl0ZW0uYXNzb2NpYXRlZENvbmZpZ3MgPSBzZXJ2aWNlSXRlbS5hc3NvY2lhdGVkQ29uZmlncy5tYXAoKGNvbmZpZykgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNmZyA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogY29uZmlnLm5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBjb25maWcuaWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLmlzQ29uZmlnQWRkZWQoY2ZnLCBhbGxJdGVtKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGxJdGVtLmFzc29jaWF0ZWRDb25maWdzLnB1c2goY2ZnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNmZztcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShzZXJ2aWNlSXRlbS5hc3NvY2lhdGVkQ29uZmlncyk7XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgfSkuY2F0Y2goKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZWplY3QoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcHJvbWlzZXMucHVzaChhbGxDZmdBc3NvY2lhdGlvbnNQcm9taXNlKTtcbiAgICAgICAgICAgIGNvbnN0IHN2Y1BvbEFzc29jaWF0aW9uUHJvbWlzZXMgPSBbXTtcbiAgICAgICAgICAgIGNvbnN0IGFsbFN2Y0Fzc29jaWF0aW9uc1Byb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy56aXRpU2VydmljZS5nZXRTdWJkYXRhKCdzZXJ2aWNlcycsIHNlcnZpY2UuaWQsICdzZXJ2aWNlLXBvbGljaWVzJykudGhlbigocmVzdWx0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHBvbGljaWVzID0gcmVzdWx0LmRhdGE7XG4gICAgICAgICAgICAgICAgICAgIHBvbGljaWVzLmZvckVhY2goKHBvbCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHJvbGVBdHRyaWJ1dGVzID0gcG9sLnNlcnZpY2VSb2xlcy5maWx0ZXIoKGF0dHIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYXR0ci5jaGFyQXQoJzAnKSA9PT0gJyMnO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICByb2xlQXR0cmlidXRlcyA9IHJvbGVBdHRyaWJ1dGVzLm1hcCgoYXR0cikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBhdHRyLnN1YnN0cmluZygxKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJvbSA9IHRoaXMuc2VydmljZVBvbGljeVNlcnZpY2UuZ2V0QXNzb2NpYXRlZFNlcnZpY2VzQnlBdHRyaWJ1dGUocm9sZUF0dHJpYnV0ZXMsIFtdKS50aGVuKChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpc09ycGhhbiA9ICFyZXN1bHQuc29tZSgoc3ZjKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBzdmMuaWQgIT09IHNlcnZpY2UuaWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzT3JwaGFuKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZpY2VJdGVtLmFzc29jaWF0ZWRTZXJ2aWNlUG9saWNpZXMucHVzaChwb2wpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pLmNhdGNoKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWplY3QoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3ZjUG9sQXNzb2NpYXRpb25Qcm9taXNlcy5wdXNoKHByb20pO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgUHJvbWlzZS5hbGwoc3ZjUG9sQXNzb2NpYXRpb25Qcm9taXNlcykudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXJ2aWNlSXRlbS5hc3NvY2lhdGVkU2VydmljZVBvbGljaWVzID0gc2VydmljZUl0ZW0uYXNzb2NpYXRlZFNlcnZpY2VQb2xpY2llcy5tYXAoKHBvbCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHBvbGljeSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogcG9sLm5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBwb2wuaWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLmlzU2VydmljZVBvbGljeUFkZGVkKHBvbGljeSwgYWxsSXRlbSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsSXRlbS5hc3NvY2lhdGVkU2VydmljZVBvbGljaWVzLnB1c2gocG9saWN5KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHBvbGljeTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShzZXJ2aWNlSXRlbS5hc3NvY2lhdGVkU2VydmljZVBvbGljaWVzKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSkuY2F0Y2goKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZWplY3QoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcHJvbWlzZXMucHVzaChhbGxTdmNBc3NvY2lhdGlvbnNQcm9taXNlKTtcbiAgICAgICAgICAgIHNlbGVjdGVkLnB1c2goc2VydmljZUl0ZW0pO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKHByb21pc2VzKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB7c2VsZWN0ZWRJdGVtczogc2VsZWN0ZWQsIGFsbEl0ZW06IGFsbEl0ZW19O1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBpc0NvbmZpZ0FkZGVkKGNvbmZpZ1RvQWRkLCBhbGxJdGVtKSB7XG4gICAgICAgIHJldHVybiBhbGxJdGVtLmFzc29jaWF0ZWRDb25maWdzLnNvbWUoKGNvbmZpZykgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGNvbmZpZy5pZCA9PT0gY29uZmlnVG9BZGQuaWQ7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGlzU2VydmljZVBvbGljeUFkZGVkKHBvbGljeVRvQWRkLCBhbGxJdGVtKSB7XG4gICAgICAgIHJldHVybiBhbGxJdGVtLmFzc29jaWF0ZWRTZXJ2aWNlUG9saWNpZXMuc29tZSgocG9saWN5KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gcG9saWN5LmlkID09PSBwb2xpY3lUb0FkZC5pZDtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmVtb3ZlQWxsU2VydmljZXNBbmRPcnBoYW5zKGFsbEl0ZW1zKSB7XG4gICAgICAgIGNvbnN0IHByb21pc2VzID0gW107XG4gICAgICAgIGFsbEl0ZW1zLmZvckVhY2goKHNlcnZpY2UpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHByb20gPSB0aGlzLmRhdGFTZXJ2aWNlLmRlbGV0ZSgnc2VydmljZXMnLCBzZXJ2aWNlLmlkKTtcbiAgICAgICAgICAgIHByb21pc2VzLnB1c2gocHJvbSk7XG4gICAgICAgICAgICBzZXJ2aWNlLmFzc29jaWF0ZWRDb25maWdzLmZvckVhY2goKGNvbmZpZykgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNmZ1Byb21pc2UgPSB0aGlzLmRhdGFTZXJ2aWNlLmRlbGV0ZSgnY29uZmlncycsIGNvbmZpZy5pZCk7XG4gICAgICAgICAgICAgICAgcHJvbWlzZXMucHVzaChjZmdQcm9taXNlKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgc2VydmljZS5hc3NvY2lhdGVkU2VydmljZVBvbGljaWVzLmZvckVhY2goKHBvbGljeSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHN2Y1BvbFByb21pc2UgPSB0aGlzLmRhdGFTZXJ2aWNlLmRlbGV0ZSgnc2VydmljZS1wb2xpY2llcycsIHBvbGljeS5pZCk7XG4gICAgICAgICAgICAgICAgcHJvbWlzZXMucHVzaChzdmNQb2xQcm9taXNlKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKHByb21pc2VzKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -268,7 +268,11 @@ class NodeDataService extends ZitiDataService {
|
|
|
268
268
|
let filterVal = '';
|
|
269
269
|
switch (filter.type) {
|
|
270
270
|
case 'TEXTINPUT':
|
|
271
|
-
|
|
271
|
+
const verb = filter.verb ? filter.verb : 'contains';
|
|
272
|
+
filterVal = `${filter.columnId} ${verb} "${filter.value}"`;
|
|
273
|
+
if (filter.rawFilter) {
|
|
274
|
+
paging.rawFilter = true;
|
|
275
|
+
}
|
|
272
276
|
break;
|
|
273
277
|
case 'SELECT':
|
|
274
278
|
case 'COMBO':
|
|
@@ -336,4 +340,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
336
340
|
type: Inject,
|
|
337
341
|
args: [SETTINGS_SERVICE]
|
|
338
342
|
}] }, { type: i3.HttpClient }, { type: i4.Router }]; } });
|
|
339
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1kYXRhLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy96aXRpLWNvbnNvbGUtbGliL3NyYy9saWIvc2VydmljZXMvbm9kZS1kYXRhLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0VBY0U7QUFFRixPQUFPLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUlqRCxPQUFPLEVBQUMsZ0JBQWdCLEVBQWtCLE1BQU0sb0JBQW9CLENBQUM7QUFDckUsT0FBTyxFQUFDLGNBQWMsRUFBRSxHQUFHLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDekMsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRzFDLE9BQU8sRUFBQyxPQUFPLEVBQU8sT0FBTyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUMsTUFBTSxRQUFRLENBQUM7QUFDNUQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUN0RCxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7Ozs7Ozs7QUFFNUIsTUFHYSxlQUFnQixTQUFRLGVBQWU7SUFFaEQsWUFBcUIsTUFBcUIsRUFDckIsT0FBdUIsRUFDRyxlQUFnQyxFQUMxRCxVQUFzQixFQUN0QixNQUFjO1FBRS9CLEtBQUssQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUE7UUFOMUMsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUNyQixZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUNHLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUMxRCxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLFdBQU0sR0FBTixNQUFNLENBQVE7SUFHbkMsQ0FBQztJQUVELElBQUksQ0FB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ICAgQ29weXJpZ2h0IE5ldEZvdW5kcnkgSW5jLlxuXG4gICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG5cbiAgICBodHRwczovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG5cbiAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiovXG5cbmltcG9ydCB7SW5qZWN0LCBJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcbmltcG9ydCB7TG9nZ2VyU2VydmljZX0gZnJvbSBcIi4uL2ZlYXR1cmVzL21lc3NhZ2luZy9sb2dnZXIuc2VydmljZVwiO1xuaW1wb3J0IHtHcm93bGVyU2VydmljZX0gZnJvbSBcIi4uL2ZlYXR1cmVzL21lc3NhZ2luZy9ncm93bGVyLnNlcnZpY2VcIjtcbmltcG9ydCB7U0VUVElOR1NfU0VSVklDRSwgU2V0dGluZ3NTZXJ2aWNlfSBmcm9tIFwiLi9zZXR0aW5ncy5zZXJ2aWNlXCI7XG5pbXBvcnQge2ZpcnN0VmFsdWVGcm9tLCBtYXB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQge2NhdGNoRXJyb3J9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuaW1wb3J0IHtIdHRwQ2xpZW50fSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcbmltcG9ydCB7RmlsdGVyT2JqfSBmcm9tIFwiLi4vZmVhdHVyZXMvZGF0YS10YWJsZS9kYXRhLXRhYmxlLWZpbHRlci5zZXJ2aWNlXCI7XG5pbXBvcnQge2lzRW1wdHksIGdldCwgaXNBcnJheSwgaXNOdW1iZXIsIHNldH0gZnJvbSBcImxvZGFzaFwiO1xuaW1wb3J0IHtaaXRpRGF0YVNlcnZpY2V9IGZyb20gXCIuL3ppdGktZGF0YS5zZXJ2aWNlXCI7XG5pbXBvcnQge1Jlc29sdmVyfSBmcm9tIFwiQHN0b3BsaWdodC9qc29uLXJlZi1yZXNvbHZlclwiO1xuaW1wb3J0IG1vbWVudCBmcm9tIFwibW9tZW50XCI7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgTm9kZURhdGFTZXJ2aWNlIGV4dGVuZHMgWml0aURhdGFTZXJ2aWNlIHtcblxuICAgIGNvbnN0cnVjdG9yKG92ZXJyaWRlIGxvZ2dlcjogTG9nZ2VyU2VydmljZSxcbiAgICAgICAgICAgICAgICBvdmVycmlkZSBncm93bGVyOiBHcm93bGVyU2VydmljZSxcbiAgICAgICAgICAgICAgICBASW5qZWN0KFNFVFRJTkdTX1NFUlZJQ0UpIG92ZXJyaWRlIHNldHRpbmdzU2VydmljZTogU2V0dGluZ3NTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIG92ZXJyaWRlIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQsXG4gICAgICAgICAgICAgICAgb3ZlcnJpZGUgcm91dGVyOiBSb3V0ZXJcbiAgICApIHtcbiAgICAgICAgc3VwZXIobG9nZ2VyLCBncm93bGVyLCBzZXR0aW5nc1NlcnZpY2UsIGh0dHBDbGllbnQsIHJvdXRlcilcbiAgICB9XG5cbiAgICBwb3N0KHR5cGUsIG1vZGVsLCBjaGFpbmVkID0gZmFsc2UpIHtcbiAgICAgICAgbGV0IGNsaWVudFN1YjtcbiAgICAgICAgY29uc3Qgbm9kZVNlcnZlclVSTCA9IHdpbmRvdy5sb2NhdGlvbi5vcmlnaW47XG4gICAgICAgIGNvbnN0IHNlcnZpY2VVcmwgPSBub2RlU2VydmVyVVJMICsgJy9hcGkvZGF0YVNhdmUnO1xuICAgICAgICBjb25zdCBib2R5ID0ge3BhZ2luZzogdGhpcy5ERUZBVUxUX1BBR0lORywgdHlwZTogdHlwZSwgc2F2ZTogbW9kZWwsIGNoYWluZWQ6IGNoYWluZWR9O1xuXG4gICAgICAgIHJldHVybiBmaXJzdFZhbHVlRnJvbSh0aGlzLmh0dHBDbGllbnQucG9zdChzZXJ2aWNlVXJsLGJvZHkse30pLnBpcGUoXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZXJyb3IgPSBcIlNlcnZlciBOb3QgQWNjZXNzaWJsZVwiO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZXJyLmNvZGUgIT09IFwiRUNPTk5SRUZVU0VEXCIpIHRocm93KGVycik7XG4gICAgICAgICAgICAgICAgICAgIHRocm93KHtlcnJvcjogZXJyb3J9KTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBtYXAoKHJlc3VsdHM6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZighaXNFbXB0eShyZXN1bHRzLmVycm9yKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3coe2Vycm9yOiByZXN1bHRzLmVycm9yfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdHM7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdXQodHlwZSwgbW9kZWwsIGlkLCBjaGFpbmVkID0gZmFsc2UpIHtcbiAgICAgICAgbGV0IGNsaWVudFN1YjtcbiAgICAgICAgY29uc3Qgbm9kZVNlcnZlclVSTCA9IHdpbmRvdy5sb2NhdGlvbi5vcmlnaW47XG4gICAgICAgIGNvbnN0IHNlcnZpY2VVcmwgPSBub2RlU2VydmVyVVJMICsgJy9hcGkvZGF0YVNhdmUnO1xuICAgICAgICBjb25zdCBib2R5ID0ge3BhZ2luZzogdGhpcy5ERUZBVUxUX1BBR0lORywgdHlwZTogdHlwZSwgc2F2ZTogbW9kZWwsIGlkOiBpZCwgY2hhaW5lZDogY2hhaW5lZH07XG5cbiAgICAgICAgcmV0dXJuIGZpcnN0VmFsdWVGcm9tKHRoaXMuaHR0cENsaWVudC5wb3N0KHNlcnZpY2VVcmwsYm9keSx7fSkucGlwZShcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChlcnI6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlcnJvciA9IFwiU2VydmVyIE5vdCBBY2Nlc3NpYmxlXCI7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlcnIuY29kZSAhPT0gXCJFQ09OTlJFRlVTRURcIikgdGhyb3coZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3coe2Vycm9yOiBlcnJvcn0pO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIG1hcCgocmVzdWx0czogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmKCFpc0VtcHR5KHJlc3VsdHMuZXJyb3IpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyh7ZXJyb3I6IHJlc3VsdHMuZXJyb3J9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0cztcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHBhdGNoKHR5cGUsIG1vZGVsLCBpZCwgY2hhaW5lZCA9IGZhbHNlKSB7XG4gICAgICAgIGxldCBjbGllbnRTdWI7XG4gICAgICAgIGNvbnN0IG5vZGVTZXJ2ZXJVUkwgPSB3aW5kb3cubG9jYXRpb24ub3JpZ2luO1xuICAgICAgICBjb25zdCBzZXJ2aWNlVXJsID0gbm9kZVNlcnZlclVSTCArICcvYXBpL2RhdGFTYXZlJztcbiAgICAgICAgY29uc3QgYm9keSA9IHtwYWdpbmc6IHRoaXMuREVGQVVMVF9QQUdJTkcsIHR5cGU6IHR5cGUsIHNhdmU6IG1vZGVsLCBpZDogaWQsIGNoYWluZWQ6IGNoYWluZWR9O1xuXG4gICAgICAgIHJldHVybiBmaXJzdFZhbHVlRnJvbSh0aGlzLmh0dHBDbGllbnQucG9zdChzZXJ2aWNlVXJsLGJvZHkse30pLnBpcGUoXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZXJyb3IgPSBcIlNlcnZlciBOb3QgQWNjZXNzaWJsZVwiO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZXJyLmNvZGUgIT09IFwiRUNPTk5SRUZVU0VEXCIpIHRocm93KGVycik7XG4gICAgICAgICAgICAgICAgICAgIHRocm93KHtlcnJvcjogZXJyb3J9KTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBtYXAoKHJlc3VsdHM6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZighaXNFbXB0eShyZXN1bHRzLmVycm9yKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3coe2Vycm9yOiByZXN1bHRzLmVycm9yfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdHM7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXQodHlwZTogc3RyaW5nLCBwYWdpbmc6IGFueSwgZmlsdGVyczogRmlsdGVyT2JqW10gPSBbXSwgdXJsPykge1xuICAgICAgICBjb25zdCBub2RlU2VydmVyVVJMID0gd2luZG93LmxvY2F0aW9uLm9yaWdpbjtcbiAgICAgICAgY29uc3Qgc2VydmljZVVybCA9IG5vZGVTZXJ2ZXJVUkwgKyAnL2FwaS9kYXRhJztcbiAgICAgICAgY29uc3QgdXJsRmlsdGVyID0gdGhpcy5nZXRVcmxGaWx0ZXIocGFnaW5nLCBmaWx0ZXJzKTtcbiAgICAgICAgcGFnaW5nLmZpbHRlciA9IHVybEZpbHRlcjtcbiAgICAgICAgY29uc3QgYm9keSA9IHtwYWdpbmc6IHBhZ2luZywgdHlwZTogdHlwZSwgdXJsOiB1cmx9O1xuXG4gICAgICAgIHJldHVybiBmaXJzdFZhbHVlRnJvbSh0aGlzLmh0dHBDbGllbnQucG9zdChzZXJ2aWNlVXJsLGJvZHkse30pLnBpcGUoXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZXJyb3IgPSBcIlNlcnZlciBOb3QgQWNjZXNzaWJsZVwiO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZXJyLmNvZGUgIT0gXCJFQ09OTlJFRlVTRURcIikgdGhyb3coe2Vycm9yOiBlcnIuY29kZX0pO1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyh7ZXJyb3I6IGVycm9yfSk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgbWFwKChyZXN1bHRzOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdHMuZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlRXJyb3IocmVzdWx0cylcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0cztcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldFN1YmRhdGEoZW50aXR5VHlwZTogc3RyaW5nLCBpZDogYW55LCBkYXRhVHlwZTogc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IG5vZGVTZXJ2ZXJVUkwgPSB3aW5kb3cubG9jYXRpb24ub3JpZ2luO1xuICAgICAgICBjb25zdCBzZXJ2aWNlVXJsID0gbm9kZVNlcnZlclVSTCArICcvYXBpL3N1YmRhdGEnO1xuICAgICAgICBjb25zdCBib2R5ID0ge3VybDpgLi8ke2VudGl0eVR5cGV9LyR7aWR9LyR7ZGF0YVR5cGV9YCwgbmFtZTogZW50aXR5VHlwZSwgdHlwZTogZGF0YVR5cGUgfTtcbiAgICAgICAgcmV0dXJuIGZpcnN0VmFsdWVGcm9tKHRoaXMuaHR0cENsaWVudC5wb3N0KHNlcnZpY2VVcmwsIGJvZHksIHt9KS5waXBlKFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycjogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVycm9yID0gXCJTZXJ2ZXIgTm90IEFjY2Vzc2libGVcIjtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVyci5jb2RlICE9IFwiRUNPTk5SRUZVU0VEXCIpIHRocm93KHtlcnJvcjogZXJyLmNvZGV9KTtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3coe2Vycm9yOiBlcnJvcn0pO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIG1hcCgocmVzdWx0czogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmKCFpc0VtcHR5KHJlc3VsdHMuZXJyb3IpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyh7ZXJyb3I6IHJlc3VsdHMuZXJyb3J9KTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChyZXN1bHRzLmVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZUVycm9yKHJlc3VsdHMpXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdHM7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBvdmVycmlkZSBzYXZlU3ViZGF0YShlbnRpdHlUeXBlOiBzdHJpbmcsIGlkOiBhbnksIGRhdGFUeXBlOiBzdHJpbmcsIGRhdGE6IGFueSk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIGNvbnN0IG5vZGVTZXJ2ZXJVUkwgPSB3aW5kb3cubG9jYXRpb24ub3JpZ2luO1xuICAgICAgICBjb25zdCBzZXJ2aWNlVXJsID0gbm9kZVNlcnZlclVSTCArICcvYXBpL3N1YlNhdmUnO1xuICAgICAgICBjb25zdCBib2R5ID0ge1xuICAgICAgICAgICAgdHlwZTogZGF0YVR5cGUsXG4gICAgICAgICAgICBwYXJlbnRUeXBlOiBlbnRpdHlUeXBlLFxuICAgICAgICAgICAgaWQ6IGlkLFxuICAgICAgICAgICAgZG9pbmc6IFwiUE9TVFwiLFxuICAgICAgICAgICAgc2F2ZTogZGF0YVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmaXJzdFZhbHVlRnJvbSh0aGlzLmh0dHBDbGllbnQucG9zdChzZXJ2aWNlVXJsLCBib2R5LCB7fSkucGlwZShcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChlcnI6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlcnJvciA9IFwiU2VydmVyIE5vdCBBY2Nlc3NpYmxlXCI7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlcnIuY29kZSAhPSBcIkVDT05OUkVGVVNFRFwiKSB0aHJvdyh7ZXJyb3I6IGVyci5jb2RlfSk7XG4gICAgICAgICAgICAgICAgICAgIHRocm93KHtlcnJvcjogZXJyb3J9KTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBtYXAoKHJlc3VsdHM6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZighaXNFbXB0eShyZXN1bHRzLmVycm9yKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3coe2Vycm9yOiByZXN1bHRzLmVycm9yfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdHM7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBvdmVycmlkZSByZXNldEVucm9sbG1lbnQoaWQ6IHN0cmluZywgZGF0ZTogYW55KTogUHJvbWlzZTxhbnk+IHtcbiAgICAgICAgY29uc3Qgbm9kZVNlcnZlclVSTCA9IHdpbmRvdy5sb2NhdGlvbi5vcmlnaW47XG4gICAgICAgIGNvbnN0IHNlcnZpY2VVcmwgPSBub2RlU2VydmVyVVJMICsgJy9hcGkvcmVzZXRFbnJvbGwnO1xuICAgICAgICBjb25zdCBkYXRlU3RyID0gbW9tZW50KGRhdGUpLmZvcm1hdChcIk0vRC9ZWVlZIGhoOm1tIEFcIik7XG4gICAgICAgIGNvbnN0IGJvZHkgPSB7XG4gICAgICAgICAgICBkYXRlOiBkYXRlU3RyLFxuICAgICAgICAgICAgaWQ6IGlkXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZpcnN0VmFsdWVGcm9tKHRoaXMuaHR0cENsaWVudC5wb3N0KHNlcnZpY2VVcmwsIGJvZHksIHt9KS5waXBlKFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycjogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVycm9yID0gXCJTZXJ2ZXIgTm90IEFjY2Vzc2libGVcIjtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVyci5jb2RlICE9IFwiRUNPTk5SRUZVU0VEXCIpIHRocm93KHtlcnJvcjogZXJyLmNvZGV9KTtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3coe2Vycm9yOiBlcnJvcn0pO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIG1hcCgocmVzdWx0czogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmKCFpc0VtcHR5KHJlc3VsdHMuZXJyb3IpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyh7ZXJyb3I6IHJlc3VsdHMuZXJyb3J9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0cztcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIG92ZXJyaWRlIHJlaXNzdWVFbnJvbGxtZW50KGlkOiBzdHJpbmcsIGRhdGU6IHN0cmluZyk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIGNvbnN0IG5vZGVTZXJ2ZXJVUkwgPSB3aW5kb3cubG9jYXRpb24ub3JpZ2luO1xuICAgICAgICBjb25zdCBzZXJ2aWNlVXJsID0gbm9kZVNlcnZlclVSTCArICcvYXBpL3JlaXNzdWVFbnJvbGwnO1xuICAgICAgICBjb25zdCBkYXRlU3RyID0gbW9tZW50KGRhdGUpLmZvcm1hdChcIk0vRC9ZWVlZIGhoOm1tIEFcIik7XG4gICAgICAgIGNvbnN0IGJvZHkgPSB7XG4gICAgICAgICAgICBkYXRlOiBkYXRlU3RyLFxuICAgICAgICAgICAgaWQ6IGlkXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZpcnN0VmFsdWVGcm9tKHRoaXMuaHR0cENsaWVudC5wb3N0KHNlcnZpY2VVcmwsIGJvZHksIHt9KS5waXBlKFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycjogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVycm9yID0gXCJTZXJ2ZXIgTm90IEFjY2Vzc2libGVcIjtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVyci5jb2RlICE9IFwiRUNPTk5SRUZVU0VEXCIpIHRocm93KHtlcnJvcjogZXJyLmNvZGV9KTtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3coe2Vycm9yOiBlcnJvcn0pO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIG1hcCgocmVzdWx0czogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmKCFpc0VtcHR5KHJlc3VsdHMuZXJyb3IpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyh7ZXJyb3I6IHJlc3VsdHMuZXJyb3J9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0cztcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIG92ZXJyaWRlIGRlbGV0ZVN1YmRhdGEoZW50aXR5VHlwZTogc3RyaW5nLCBpZDogYW55LCBkYXRhVHlwZTogc3RyaW5nLCBkYXRhOiBhbnkpOiBQcm9taXNlPGFueT4ge1xuICAgICAgICBjb25zdCBub2RlU2VydmVyVVJMID0gd2luZG93LmxvY2F0aW9uLm9yaWdpbjtcbiAgICAgICAgY29uc3Qgc2VydmljZVVybCA9IG5vZGVTZXJ2ZXJVUkwgKyAnL2FwaS9zdWJTYXZlJztcbiAgICAgICAgY29uc3QgYm9keSA9IHtcbiAgICAgICAgICAgIHR5cGU6IGRhdGFUeXBlLFxuICAgICAgICAgICAgcGFyZW50VHlwZTogZW50aXR5VHlwZSxcbiAgICAgICAgICAgIGlkOiBpZCxcbiAgICAgICAgICAgIGRvaW5nOiBcIkRFTEVURVwiLFxuICAgICAgICAgICAgc2F2ZTogZGF0YVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmaXJzdFZhbHVlRnJvbSh0aGlzLmh0dHBDbGllbnQucG9zdChzZXJ2aWNlVXJsLCBib2R5LCB7fSkucGlwZShcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChlcnI6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlcnJvciA9IFwiU2VydmVyIE5vdCBBY2Nlc3NpYmxlXCI7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlcnIuY29kZSAhPSBcIkVDT05OUkVGVVNFRFwiKSB0aHJvdyh7ZXJyb3I6IGVyci5jb2RlfSk7XG4gICAgICAgICAgICAgICAgICAgIHRocm93KHtlcnJvcjogZXJyb3J9KTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBtYXAoKHJlc3VsdHM6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZighaXNFbXB0eShyZXN1bHRzLmVycm9yKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3coe2Vycm9yOiByZXN1bHRzLmVycm9yfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdHM7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBkZWxldGUodHlwZTogc3RyaW5nLCBpZDogc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IG5vZGVTZXJ2ZXJVUkwgPSB3aW5kb3cubG9jYXRpb24ub3JpZ2luO1xuICAgICAgICBjb25zdCBzZXJ2aWNlVXJsID0gbm9kZVNlcnZlclVSTCArICcvYXBpL2RlbGV0ZSc7XG4gICAgICAgIGNvbnN0IGJvZHkgPSB7cGFnaW5nOiB0aGlzLkRFRkFVTFRfUEFHSU5HLCB0eXBlOiB0eXBlLCBpZHM6IFtpZF19O1xuXG4gICAgICAgIHJldHVybiBmaXJzdFZhbHVlRnJvbSh0aGlzLmh0dHBDbGllbnQucG9zdChzZXJ2aWNlVXJsLGJvZHkse30pLnBpcGUoXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZXJyb3IgPSBcIlNlcnZlciBOb3QgQWNjZXNzaWJsZVwiO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZXJyLmNvZGUgIT0gXCJFQ09OTlJFRlVTRURcIikgdGhyb3coe2Vycm9yOiBlcnIuY29kZX0pO1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyh7ZXJyb3I6IGVycm9yfSk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgbWFwKChyZXN1bHRzOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYoIWlzRW1wdHkocmVzdWx0cy5lcnJvcikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93KHtlcnJvcjogcmVzdWx0cy5lcnJvcn0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHRzO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgY2FsbCh1cmwpIHtcbiAgICAgICAgY29uc3Qgbm9kZVNlcnZlclVSTCA9IHdpbmRvdy5sb2NhdGlvbi5vcmlnaW47XG4gICAgICAgIGNvbnN0IHNlcnZpY2VVcmwgPSBub2RlU2VydmVyVVJMICsgJy9hcGkvY2FsbCc7XG4gICAgICAgIGNvbnN0IGJvZHkgPSB7dXJsOiB1cmx9O1xuXG4gICAgICAgIHJldHVybiBmaXJzdFZhbHVlRnJvbSh0aGlzLmh0dHBDbGllbnQucG9zdChzZXJ2aWNlVXJsLGJvZHkse30pLnBpcGUoXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZXJyb3IgPSBcIlNlcnZlciBOb3QgQWNjZXNzaWJsZVwiO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZXJyLmNvZGUgIT0gXCJFQ09OTlJFRlVTRURcIikgdGhyb3coe2Vycm9yOiBlcnIuY29kZX0pO1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyh7ZXJyb3I6IGVycm9yfSk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgbWFwKChyZXN1bHRzOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYoIWlzRW1wdHkocmVzdWx0cy5lcnJvcikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93KHtlcnJvcjogcmVzdWx0cy5lcnJvcn0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHRzO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgc2NoZW1hKGRhdGE6IGFueSk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIGNvbnN0IHJlc29sdmVyID0gbmV3IFJlc29sdmVyKCk7XG4gICAgICAgIHJldHVybiByZXNvbHZlci5yZXNvbHZlKGRhdGEpLnRoZW4oKHNjaGVtYSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHNjaGVtYS5yZXN1bHRcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRVcmxGaWx0ZXIocGFnaW5nLCBmaWx0ZXJzOiBhbnlbXSkge1xuICAgICAgICBsZXQgdXJsRmlsdGVyID0gJyc7XG4gICAgICAgIGxldCB0b1NlYXJjaE9uID0gXCJuYW1lXCI7XG4gICAgICAgIGxldCBub1NlYXJjaCA9IGZpbHRlcnM/Lmxlbmd0aCA8PSAwO1xuICAgICAgICBpZiAoaXNFbXB0eShwYWdpbmcpKSB7XG4gICAgICAgICAgICBwYWdpbmcgPSB7fTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocGFnaW5nICYmIHBhZ2luZy5zb3J0ICE9IG51bGwpIHtcbiAgICAgICAgICAgIGlmIChwYWdpbmcuc2VhcmNoT24pIHRvU2VhcmNoT24gPSBwYWdpbmcuc2VhcmNoT247XG4gICAgICAgICAgICBpZiAocGFnaW5nLm5vU2VhcmNoKSBub1NlYXJjaCA9IHRydWU7XG4gICAgICAgICAgICBpZiAoIXBhZ2luZy5maWx0ZXIpIHBhZ2luZy5maWx0ZXIgPSBcIlwiO1xuICAgICAgICAgICAgaWYgKCFpc0FycmF5KHBhZ2luZy5maWx0ZXIpICYmIGlzTmFOKHBhZ2luZy5maWx0ZXIpKSB7XG4gICAgICAgICAgICAgICAgcGFnaW5nLmZpbHRlciA9IHBhZ2luZy5maWx0ZXIuc3BsaXQoJyMnKS5qb2luKCcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBmaWx0ZXJzLmZvckVhY2goKGZpbHRlciwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIGxldCBmaWx0ZXJWYWwgPSAnJztcbiAgICAgICAgICAgIHN3aXRjaCAoZmlsdGVyLnR5cGUpIHtcbiAgICAgICAgICAgICAgICBjYXNlICdURVhUSU5QVVQnOlxuICAgICAgICAgICAgICAgICAgICBmaWx0ZXJWYWwgPSBgJHtmaWx0ZXIuY29sdW1uSWR9IGNvbnRhaW5zIFwiJHtmaWx0ZXIudmFsdWV9XCJgO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdTRUxFQ1QnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ0NPTUJPJzpcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsID0gaXNOdW1iZXIoZmlsdGVyLnZhbHVlKSA/IGAke2ZpbHRlci52YWx1ZX1gIDogYFwiJHtmaWx0ZXIudmFsdWV9XCJgO1xuICAgICAgICAgICAgICAgICAgICBmaWx0ZXJWYWwgPSBgJHtmaWx0ZXIuY29sdW1uSWR9ID0gJHt2YWx9YDtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnREFURVRJTUUnOlxuICAgICAgICAgICAgICAgICAgICBwYWdpbmcucmF3RmlsdGVyID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyVmFsID0gYCR7ZmlsdGVyLmNvbHVtbklkfSA+PSBkYXRldGltZSgke2ZpbHRlci52YWx1ZVswXX0pIGFuZCAke2ZpbHRlci5jb2x1bW5JZH0gPD0gZGF0ZXRpbWUoJHtmaWx0ZXIudmFsdWVbMV19KWA7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ0FUVFJJQlVURSc6XG4gICAgICAgICAgICAgICAgICAgIHBhZ2luZy5yYXdGaWx0ZXIgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBmaWx0ZXJWYWwgPSB0aGlzLmdldEF0dHJpYnV0ZUZpbHRlcihmaWx0ZXIudmFsdWUsIGZpbHRlci5jb2x1bW5JZCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIGZpbHRlclZhbCA9IGAke2ZpbHRlci5jb2x1bW5JZH0gY29udGFpbnMgXCIke2ZpbHRlci52YWx1ZX1cImA7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGluZGV4IDw9IDApIHtcbiAgICAgICAgICAgICAgICB1cmxGaWx0ZXIgPSBgJHtmaWx0ZXJWYWx9YDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdXJsRmlsdGVyICs9IGAgYW5kICR7ZmlsdGVyVmFsfWBcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHVybEZpbHRlcjtcbiAgICB9XG5cbiAgICBnZXRBdHRyaWJ1dGVGaWx0ZXIodmFsLCBjb2x1bW5JZCkge1xuICAgICAgICBsZXQgZmlsdGVyID0gJyc7XG4gICAgICAgIGlmIChpc0FycmF5KHZhbCkpIHtcbiAgICAgICAgICAgIHZhbC5mb3JFYWNoKChhdHRyLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChpbmRleCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyICs9ICcgb3IgJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZmlsdGVyICs9IGBhbnlPZigke2NvbHVtbklkfSkgPSBcIiR7YXR0cn1cImA7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGZpbHRlciA9IGBhbnlPZigke2NvbHVtbklkfSkgPSBcIiR7dmFsfVwiYDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmlsdGVyO1xuICAgIH1cblxuICAgIGhhbmRsZUVycm9yKHJlc3VsdHMpIHtcbiAgICAgICAgaWYgKHJlc3VsdHM/LmVycm9yT2JqPy5jb2RlID09PSAnVU5BVVRIT1JJWkVEJykge1xuICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ3ppdGkuc2V0dGluZ3MnKTtcbiAgICAgICAgICAgIC8vd2luZG93LmxvY2F0aW9uLmhyZWYgPSAnL2xvZ2luJztcbiAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL2xvZ2luJ10pO1xuICAgICAgICAgICAgc2V0KHRoaXMuc2V0dGluZ3NTZXJ2aWNlLCAnaGFzTm9kZVNlc3Npb24nLCBmYWxzZSk7XG4gICAgICAgICAgICB0aGlzLnNldHRpbmdzU2VydmljZS5zZXQodGhpcy5zZXR0aW5nc1NlcnZpY2Uuc2V0dGluZ3MpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5sb2dnZXIuZXJyb3IocmVzdWx0cz8uZXJyb3IpXG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
|
|
343
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1kYXRhLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy96aXRpLWNvbnNvbGUtbGliL3NyYy9saWIvc2VydmljZXMvbm9kZS1kYXRhLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0VBY0U7QUFFRixPQUFPLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUlqRCxPQUFPLEVBQUMsZ0JBQWdCLEVBQWtCLE1BQU0sb0JBQW9CLENBQUM7QUFDckUsT0FBTyxFQUFDLGNBQWMsRUFBRSxHQUFHLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDekMsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRzFDLE9BQU8sRUFBQyxPQUFPLEVBQU8sT0FBTyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUMsTUFBTSxRQUFRLENBQUM7QUFDNUQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUN0RCxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7Ozs7Ozs7QUFFNUIsTUFHYSxlQUFnQixTQUFRLGVBQWU7SUFFaEQsWUFBcUIsTUFBcUIsRUFDckIsT0FBdUIsRUFDRyxlQUFnQyxFQUMxRCxVQUFzQixFQUN0QixNQUFjO1FBRS9CLEtBQUssQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUE7UUFOMUMsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUNyQixZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUNHLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUMxRCxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLFdBQU0sR0FBTixNQUFNLENBQVE7SUFHbkMsQ0FBQztJQUVELElBQUksQ0FB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O0lBQ0wsQ0FBQzsrR0E1VlEsZUFBZSw2RUFJSixnQkFBZ0I7bUhBSjNCLGVBQWUsY0FGWixNQUFNOztTQUVULGVBQWU7NEZBQWYsZUFBZTtrQkFIM0IsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckI7OzBCQUtnQixNQUFNOzJCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gICAgQ29weXJpZ2h0IE5ldEZvdW5kcnkgSW5jLlxuXG4gICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG5cbiAgICBodHRwczovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG5cbiAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiovXG5cbmltcG9ydCB7SW5qZWN0LCBJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcbmltcG9ydCB7TG9nZ2VyU2VydmljZX0gZnJvbSBcIi4uL2ZlYXR1cmVzL21lc3NhZ2luZy9sb2dnZXIuc2VydmljZVwiO1xuaW1wb3J0IHtHcm93bGVyU2VydmljZX0gZnJvbSBcIi4uL2ZlYXR1cmVzL21lc3NhZ2luZy9ncm93bGVyLnNlcnZpY2VcIjtcbmltcG9ydCB7U0VUVElOR1NfU0VSVklDRSwgU2V0dGluZ3NTZXJ2aWNlfSBmcm9tIFwiLi9zZXR0aW5ncy5zZXJ2aWNlXCI7XG5pbXBvcnQge2ZpcnN0VmFsdWVGcm9tLCBtYXB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQge2NhdGNoRXJyb3J9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuaW1wb3J0IHtIdHRwQ2xpZW50fSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcbmltcG9ydCB7RmlsdGVyT2JqfSBmcm9tIFwiLi4vZmVhdHVyZXMvZGF0YS10YWJsZS9kYXRhLXRhYmxlLWZpbHRlci5zZXJ2aWNlXCI7XG5pbXBvcnQge2lzRW1wdHksIGdldCwgaXNBcnJheSwgaXNOdW1iZXIsIHNldH0gZnJvbSBcImxvZGFzaFwiO1xuaW1wb3J0IHtaaXRpRGF0YVNlcnZpY2V9IGZyb20gXCIuL3ppdGktZGF0YS5zZXJ2aWNlXCI7XG5pbXBvcnQge1Jlc29sdmVyfSBmcm9tIFwiQHN0b3BsaWdodC9qc29uLXJlZi1yZXNvbHZlclwiO1xuaW1wb3J0IG1vbWVudCBmcm9tIFwibW9tZW50XCI7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgTm9kZURhdGFTZXJ2aWNlIGV4dGVuZHMgWml0aURhdGFTZXJ2aWNlIHtcblxuICAgIGNvbnN0cnVjdG9yKG92ZXJyaWRlIGxvZ2dlcjogTG9nZ2VyU2VydmljZSxcbiAgICAgICAgICAgICAgICBvdmVycmlkZSBncm93bGVyOiBHcm93bGVyU2VydmljZSxcbiAgICAgICAgICAgICAgICBASW5qZWN0KFNFVFRJTkdTX1NFUlZJQ0UpIG92ZXJyaWRlIHNldHRpbmdzU2VydmljZTogU2V0dGluZ3NTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIG92ZXJyaWRlIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQsXG4gICAgICAgICAgICAgICAgb3ZlcnJpZGUgcm91dGVyOiBSb3V0ZXJcbiAgICApIHtcbiAgICAgICAgc3VwZXIobG9nZ2VyLCBncm93bGVyLCBzZXR0aW5nc1NlcnZpY2UsIGh0dHBDbGllbnQsIHJvdXRlcilcbiAgICB9XG5cbiAgICBwb3N0KHR5cGUsIG1vZGVsLCBjaGFpbmVkID0gZmFsc2UpIHtcbiAgICAgICAgbGV0IGNsaWVudFN1YjtcbiAgICAgICAgY29uc3Qgbm9kZVNlcnZlclVSTCA9IHdpbmRvdy5sb2NhdGlvbi5vcmlnaW47XG4gICAgICAgIGNvbnN0IHNlcnZpY2VVcmwgPSBub2RlU2VydmVyVVJMICsgJy9hcGkvZGF0YVNhdmUnO1xuICAgICAgICBjb25zdCBib2R5ID0ge3BhZ2luZzogdGhpcy5ERUZBVUxUX1BBR0lORywgdHlwZTogdHlwZSwgc2F2ZTogbW9kZWwsIGNoYWluZWQ6IGNoYWluZWR9O1xuXG4gICAgICAgIHJldHVybiBmaXJzdFZhbHVlRnJvbSh0aGlzLmh0dHBDbGllbnQucG9zdChzZXJ2aWNlVXJsLGJvZHkse30pLnBpcGUoXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZXJyb3IgPSBcIlNlcnZlciBOb3QgQWNjZXNzaWJsZVwiO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZXJyLmNvZGUgIT09IFwiRUNPTk5SRUZVU0VEXCIpIHRocm93KGVycik7XG4gICAgICAgICAgICAgICAgICAgIHRocm93KHtlcnJvcjogZXJyb3J9KTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBtYXAoKHJlc3VsdHM6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZighaXNFbXB0eShyZXN1bHRzLmVycm9yKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3coe2Vycm9yOiByZXN1bHRzLmVycm9yfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdHM7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdXQodHlwZSwgbW9kZWwsIGlkLCBjaGFpbmVkID0gZmFsc2UpIHtcbiAgICAgICAgbGV0IGNsaWVudFN1YjtcbiAgICAgICAgY29uc3Qgbm9kZVNlcnZlclVSTCA9IHdpbmRvdy5sb2NhdGlvbi5vcmlnaW47XG4gICAgICAgIGNvbnN0IHNlcnZpY2VVcmwgPSBub2RlU2VydmVyVVJMICsgJy9hcGkvZGF0YVNhdmUnO1xuICAgICAgICBjb25zdCBib2R5ID0ge3BhZ2luZzogdGhpcy5ERUZBVUxUX1BBR0lORywgdHlwZTogdHlwZSwgc2F2ZTogbW9kZWwsIGlkOiBpZCwgY2hhaW5lZDogY2hhaW5lZH07XG5cbiAgICAgICAgcmV0dXJuIGZpcnN0VmFsdWVGcm9tKHRoaXMuaHR0cENsaWVudC5wb3N0KHNlcnZpY2VVcmwsYm9keSx7fSkucGlwZShcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChlcnI6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlcnJvciA9IFwiU2VydmVyIE5vdCBBY2Nlc3NpYmxlXCI7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlcnIuY29kZSAhPT0gXCJFQ09OTlJFRlVTRURcIikgdGhyb3coZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3coe2Vycm9yOiBlcnJvcn0pO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIG1hcCgocmVzdWx0czogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmKCFpc0VtcHR5KHJlc3VsdHMuZXJyb3IpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyh7ZXJyb3I6IHJlc3VsdHMuZXJyb3J9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0cztcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHBhdGNoKHR5cGUsIG1vZGVsLCBpZCwgY2hhaW5lZCA9IGZhbHNlKSB7XG4gICAgICAgIGxldCBjbGllbnRTdWI7XG4gICAgICAgIGNvbnN0IG5vZGVTZXJ2ZXJVUkwgPSB3aW5kb3cubG9jYXRpb24ub3JpZ2luO1xuICAgICAgICBjb25zdCBzZXJ2aWNlVXJsID0gbm9kZVNlcnZlclVSTCArICcvYXBpL2RhdGFTYXZlJztcbiAgICAgICAgY29uc3QgYm9keSA9IHtwYWdpbmc6IHRoaXMuREVGQVVMVF9QQUdJTkcsIHR5cGU6IHR5cGUsIHNhdmU6IG1vZGVsLCBpZDogaWQsIGNoYWluZWQ6IGNoYWluZWR9O1xuXG4gICAgICAgIHJldHVybiBmaXJzdFZhbHVlRnJvbSh0aGlzLmh0dHBDbGllbnQucG9zdChzZXJ2aWNlVXJsLGJvZHkse30pLnBpcGUoXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZXJyb3IgPSBcIlNlcnZlciBOb3QgQWNjZXNzaWJsZVwiO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZXJyLmNvZGUgIT09IFwiRUNPTk5SRUZVU0VEXCIpIHRocm93KGVycik7XG4gICAgICAgICAgICAgICAgICAgIHRocm93KHtlcnJvcjogZXJyb3J9KTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBtYXAoKHJlc3VsdHM6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZighaXNFbXB0eShyZXN1bHRzLmVycm9yKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3coe2Vycm9yOiByZXN1bHRzLmVycm9yfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdHM7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXQodHlwZTogc3RyaW5nLCBwYWdpbmc6IGFueSwgZmlsdGVyczogRmlsdGVyT2JqW10gPSBbXSwgdXJsPykge1xuICAgICAgICBjb25zdCBub2RlU2VydmVyVVJMID0gd2luZG93LmxvY2F0aW9uLm9yaWdpbjtcbiAgICAgICAgY29uc3Qgc2VydmljZVVybCA9IG5vZGVTZXJ2ZXJVUkwgKyAnL2FwaS9kYXRhJztcbiAgICAgICAgY29uc3QgdXJsRmlsdGVyID0gdGhpcy5nZXRVcmxGaWx0ZXIocGFnaW5nLCBmaWx0ZXJzKTtcbiAgICAgICAgcGFnaW5nLmZpbHRlciA9IHVybEZpbHRlcjtcbiAgICAgICAgY29uc3QgYm9keSA9IHtwYWdpbmc6IHBhZ2luZywgdHlwZTogdHlwZSwgdXJsOiB1cmx9O1xuXG4gICAgICAgIHJldHVybiBmaXJzdFZhbHVlRnJvbSh0aGlzLmh0dHBDbGllbnQucG9zdChzZXJ2aWNlVXJsLGJvZHkse30pLnBpcGUoXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZXJyb3IgPSBcIlNlcnZlciBOb3QgQWNjZXNzaWJsZVwiO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZXJyLmNvZGUgIT0gXCJFQ09OTlJFRlVTRURcIikgdGhyb3coe2Vycm9yOiBlcnIuY29kZX0pO1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyh7ZXJyb3I6IGVycm9yfSk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgbWFwKChyZXN1bHRzOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdHMuZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlRXJyb3IocmVzdWx0cylcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0cztcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldFN1YmRhdGEoZW50aXR5VHlwZTogc3RyaW5nLCBpZDogYW55LCBkYXRhVHlwZTogc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IG5vZGVTZXJ2ZXJVUkwgPSB3aW5kb3cubG9jYXRpb24ub3JpZ2luO1xuICAgICAgICBjb25zdCBzZXJ2aWNlVXJsID0gbm9kZVNlcnZlclVSTCArICcvYXBpL3N1YmRhdGEnO1xuICAgICAgICBjb25zdCBib2R5ID0ge3VybDpgLi8ke2VudGl0eVR5cGV9LyR7aWR9LyR7ZGF0YVR5cGV9YCwgbmFtZTogZW50aXR5VHlwZSwgdHlwZTogZGF0YVR5cGUgfTtcbiAgICAgICAgcmV0dXJuIGZpcnN0VmFsdWVGcm9tKHRoaXMuaHR0cENsaWVudC5wb3N0KHNlcnZpY2VVcmwsIGJvZHksIHt9KS5waXBlKFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycjogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVycm9yID0gXCJTZXJ2ZXIgTm90IEFjY2Vzc2libGVcIjtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVyci5jb2RlICE9IFwiRUNPTk5SRUZVU0VEXCIpIHRocm93KHtlcnJvcjogZXJyLmNvZGV9KTtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3coe2Vycm9yOiBlcnJvcn0pO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIG1hcCgocmVzdWx0czogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmKCFpc0VtcHR5KHJlc3VsdHMuZXJyb3IpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyh7ZXJyb3I6IHJlc3VsdHMuZXJyb3J9KTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChyZXN1bHRzLmVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZUVycm9yKHJlc3VsdHMpXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdHM7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBvdmVycmlkZSBzYXZlU3ViZGF0YShlbnRpdHlUeXBlOiBzdHJpbmcsIGlkOiBhbnksIGRhdGFUeXBlOiBzdHJpbmcsIGRhdGE6IGFueSk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIGNvbnN0IG5vZGVTZXJ2ZXJVUkwgPSB3aW5kb3cubG9jYXRpb24ub3JpZ2luO1xuICAgICAgICBjb25zdCBzZXJ2aWNlVXJsID0gbm9kZVNlcnZlclVSTCArICcvYXBpL3N1YlNhdmUnO1xuICAgICAgICBjb25zdCBib2R5ID0ge1xuICAgICAgICAgICAgdHlwZTogZGF0YVR5cGUsXG4gICAgICAgICAgICBwYXJlbnRUeXBlOiBlbnRpdHlUeXBlLFxuICAgICAgICAgICAgaWQ6IGlkLFxuICAgICAgICAgICAgZG9pbmc6IFwiUE9TVFwiLFxuICAgICAgICAgICAgc2F2ZTogZGF0YVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmaXJzdFZhbHVlRnJvbSh0aGlzLmh0dHBDbGllbnQucG9zdChzZXJ2aWNlVXJsLCBib2R5LCB7fSkucGlwZShcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChlcnI6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlcnJvciA9IFwiU2VydmVyIE5vdCBBY2Nlc3NpYmxlXCI7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlcnIuY29kZSAhPSBcIkVDT05OUkVGVVNFRFwiKSB0aHJvdyh7ZXJyb3I6IGVyci5jb2RlfSk7XG4gICAgICAgICAgICAgICAgICAgIHRocm93KHtlcnJvcjogZXJyb3J9KTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBtYXAoKHJlc3VsdHM6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZighaXNFbXB0eShyZXN1bHRzLmVycm9yKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3coe2Vycm9yOiByZXN1bHRzLmVycm9yfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdHM7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBvdmVycmlkZSByZXNldEVucm9sbG1lbnQoaWQ6IHN0cmluZywgZGF0ZTogYW55KTogUHJvbWlzZTxhbnk+IHtcbiAgICAgICAgY29uc3Qgbm9kZVNlcnZlclVSTCA9IHdpbmRvdy5sb2NhdGlvbi5vcmlnaW47XG4gICAgICAgIGNvbnN0IHNlcnZpY2VVcmwgPSBub2RlU2VydmVyVVJMICsgJy9hcGkvcmVzZXRFbnJvbGwnO1xuICAgICAgICBjb25zdCBkYXRlU3RyID0gbW9tZW50KGRhdGUpLmZvcm1hdChcIk0vRC9ZWVlZIGhoOm1tIEFcIik7XG4gICAgICAgIGNvbnN0IGJvZHkgPSB7XG4gICAgICAgICAgICBkYXRlOiBkYXRlU3RyLFxuICAgICAgICAgICAgaWQ6IGlkXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZpcnN0VmFsdWVGcm9tKHRoaXMuaHR0cENsaWVudC5wb3N0KHNlcnZpY2VVcmwsIGJvZHksIHt9KS5waXBlKFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycjogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVycm9yID0gXCJTZXJ2ZXIgTm90IEFjY2Vzc2libGVcIjtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVyci5jb2RlICE9IFwiRUNPTk5SRUZVU0VEXCIpIHRocm93KHtlcnJvcjogZXJyLmNvZGV9KTtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3coe2Vycm9yOiBlcnJvcn0pO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIG1hcCgocmVzdWx0czogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmKCFpc0VtcHR5KHJlc3VsdHMuZXJyb3IpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyh7ZXJyb3I6IHJlc3VsdHMuZXJyb3J9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0cztcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIG92ZXJyaWRlIHJlaXNzdWVFbnJvbGxtZW50KGlkOiBzdHJpbmcsIGRhdGU6IHN0cmluZyk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIGNvbnN0IG5vZGVTZXJ2ZXJVUkwgPSB3aW5kb3cubG9jYXRpb24ub3JpZ2luO1xuICAgICAgICBjb25zdCBzZXJ2aWNlVXJsID0gbm9kZVNlcnZlclVSTCArICcvYXBpL3JlaXNzdWVFbnJvbGwnO1xuICAgICAgICBjb25zdCBkYXRlU3RyID0gbW9tZW50KGRhdGUpLmZvcm1hdChcIk0vRC9ZWVlZIGhoOm1tIEFcIik7XG4gICAgICAgIGNvbnN0IGJvZHkgPSB7XG4gICAgICAgICAgICBkYXRlOiBkYXRlU3RyLFxuICAgICAgICAgICAgaWQ6IGlkXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZpcnN0VmFsdWVGcm9tKHRoaXMuaHR0cENsaWVudC5wb3N0KHNlcnZpY2VVcmwsIGJvZHksIHt9KS5waXBlKFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycjogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVycm9yID0gXCJTZXJ2ZXIgTm90IEFjY2Vzc2libGVcIjtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVyci5jb2RlICE9IFwiRUNPTk5SRUZVU0VEXCIpIHRocm93KHtlcnJvcjogZXJyLmNvZGV9KTtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3coe2Vycm9yOiBlcnJvcn0pO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIG1hcCgocmVzdWx0czogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmKCFpc0VtcHR5KHJlc3VsdHMuZXJyb3IpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyh7ZXJyb3I6IHJlc3VsdHMuZXJyb3J9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0cztcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIG92ZXJyaWRlIGRlbGV0ZVN1YmRhdGEoZW50aXR5VHlwZTogc3RyaW5nLCBpZDogYW55LCBkYXRhVHlwZTogc3RyaW5nLCBkYXRhOiBhbnkpOiBQcm9taXNlPGFueT4ge1xuICAgICAgICBjb25zdCBub2RlU2VydmVyVVJMID0gd2luZG93LmxvY2F0aW9uLm9yaWdpbjtcbiAgICAgICAgY29uc3Qgc2VydmljZVVybCA9IG5vZGVTZXJ2ZXJVUkwgKyAnL2FwaS9zdWJTYXZlJztcbiAgICAgICAgY29uc3QgYm9keSA9IHtcbiAgICAgICAgICAgIHR5cGU6IGRhdGFUeXBlLFxuICAgICAgICAgICAgcGFyZW50VHlwZTogZW50aXR5VHlwZSxcbiAgICAgICAgICAgIGlkOiBpZCxcbiAgICAgICAgICAgIGRvaW5nOiBcIkRFTEVURVwiLFxuICAgICAgICAgICAgc2F2ZTogZGF0YVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmaXJzdFZhbHVlRnJvbSh0aGlzLmh0dHBDbGllbnQucG9zdChzZXJ2aWNlVXJsLCBib2R5LCB7fSkucGlwZShcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChlcnI6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlcnJvciA9IFwiU2VydmVyIE5vdCBBY2Nlc3NpYmxlXCI7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlcnIuY29kZSAhPSBcIkVDT05OUkVGVVNFRFwiKSB0aHJvdyh7ZXJyb3I6IGVyci5jb2RlfSk7XG4gICAgICAgICAgICAgICAgICAgIHRocm93KHtlcnJvcjogZXJyb3J9KTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBtYXAoKHJlc3VsdHM6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZighaXNFbXB0eShyZXN1bHRzLmVycm9yKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3coe2Vycm9yOiByZXN1bHRzLmVycm9yfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdHM7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBkZWxldGUodHlwZTogc3RyaW5nLCBpZDogc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IG5vZGVTZXJ2ZXJVUkwgPSB3aW5kb3cubG9jYXRpb24ub3JpZ2luO1xuICAgICAgICBjb25zdCBzZXJ2aWNlVXJsID0gbm9kZVNlcnZlclVSTCArICcvYXBpL2RlbGV0ZSc7XG4gICAgICAgIGNvbnN0IGJvZHkgPSB7cGFnaW5nOiB0aGlzLkRFRkFVTFRfUEFHSU5HLCB0eXBlOiB0eXBlLCBpZHM6IFtpZF19O1xuXG4gICAgICAgIHJldHVybiBmaXJzdFZhbHVlRnJvbSh0aGlzLmh0dHBDbGllbnQucG9zdChzZXJ2aWNlVXJsLGJvZHkse30pLnBpcGUoXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZXJyb3IgPSBcIlNlcnZlciBOb3QgQWNjZXNzaWJsZVwiO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZXJyLmNvZGUgIT0gXCJFQ09OTlJFRlVTRURcIikgdGhyb3coe2Vycm9yOiBlcnIuY29kZX0pO1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyh7ZXJyb3I6IGVycm9yfSk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgbWFwKChyZXN1bHRzOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYoIWlzRW1wdHkocmVzdWx0cy5lcnJvcikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93KHtlcnJvcjogcmVzdWx0cy5lcnJvcn0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHRzO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgY2FsbCh1cmwpIHtcbiAgICAgICAgY29uc3Qgbm9kZVNlcnZlclVSTCA9IHdpbmRvdy5sb2NhdGlvbi5vcmlnaW47XG4gICAgICAgIGNvbnN0IHNlcnZpY2VVcmwgPSBub2RlU2VydmVyVVJMICsgJy9hcGkvY2FsbCc7XG4gICAgICAgIGNvbnN0IGJvZHkgPSB7dXJsOiB1cmx9O1xuXG4gICAgICAgIHJldHVybiBmaXJzdFZhbHVlRnJvbSh0aGlzLmh0dHBDbGllbnQucG9zdChzZXJ2aWNlVXJsLGJvZHkse30pLnBpcGUoXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZXJyb3IgPSBcIlNlcnZlciBOb3QgQWNjZXNzaWJsZVwiO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZXJyLmNvZGUgIT0gXCJFQ09OTlJFRlVTRURcIikgdGhyb3coe2Vycm9yOiBlcnIuY29kZX0pO1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyh7ZXJyb3I6IGVycm9yfSk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgbWFwKChyZXN1bHRzOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYoIWlzRW1wdHkocmVzdWx0cy5lcnJvcikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93KHtlcnJvcjogcmVzdWx0cy5lcnJvcn0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHRzO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgc2NoZW1hKGRhdGE6IGFueSk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIGNvbnN0IHJlc29sdmVyID0gbmV3IFJlc29sdmVyKCk7XG4gICAgICAgIHJldHVybiByZXNvbHZlci5yZXNvbHZlKGRhdGEpLnRoZW4oKHNjaGVtYSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHNjaGVtYS5yZXN1bHRcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRVcmxGaWx0ZXIocGFnaW5nLCBmaWx0ZXJzOiBhbnlbXSkge1xuICAgICAgICBsZXQgdXJsRmlsdGVyID0gJyc7XG4gICAgICAgIGxldCB0b1NlYXJjaE9uID0gXCJuYW1lXCI7XG4gICAgICAgIGxldCBub1NlYXJjaCA9IGZpbHRlcnM/Lmxlbmd0aCA8PSAwO1xuICAgICAgICBpZiAoaXNFbXB0eShwYWdpbmcpKSB7XG4gICAgICAgICAgICBwYWdpbmcgPSB7fTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocGFnaW5nICYmIHBhZ2luZy5zb3J0ICE9IG51bGwpIHtcbiAgICAgICAgICAgIGlmIChwYWdpbmcuc2VhcmNoT24pIHRvU2VhcmNoT24gPSBwYWdpbmcuc2VhcmNoT247XG4gICAgICAgICAgICBpZiAocGFnaW5nLm5vU2VhcmNoKSBub1NlYXJjaCA9IHRydWU7XG4gICAgICAgICAgICBpZiAoIXBhZ2luZy5maWx0ZXIpIHBhZ2luZy5maWx0ZXIgPSBcIlwiO1xuICAgICAgICAgICAgaWYgKCFpc0FycmF5KHBhZ2luZy5maWx0ZXIpICYmIGlzTmFOKHBhZ2luZy5maWx0ZXIpKSB7XG4gICAgICAgICAgICAgICAgcGFnaW5nLmZpbHRlciA9IHBhZ2luZy5maWx0ZXIuc3BsaXQoJyMnKS5qb2luKCcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBmaWx0ZXJzLmZvckVhY2goKGZpbHRlciwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIGxldCBmaWx0ZXJWYWwgPSAnJztcbiAgICAgICAgICAgIHN3aXRjaCAoZmlsdGVyLnR5cGUpIHtcbiAgICAgICAgICAgICAgICBjYXNlICdURVhUSU5QVVQnOlxuICAgICAgICAgICAgICAgICAgICBjb25zdCB2ZXJiID0gZmlsdGVyLnZlcmIgPyBmaWx0ZXIudmVyYiA6ICdjb250YWlucyc7XG4gICAgICAgICAgICAgICAgICAgIGZpbHRlclZhbCA9IGAke2ZpbHRlci5jb2x1bW5JZH0gJHt2ZXJifSBcIiR7ZmlsdGVyLnZhbHVlfVwiYDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZpbHRlci5yYXdGaWx0ZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2luZy5yYXdGaWx0ZXIgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ1NFTEVDVCc6XG4gICAgICAgICAgICAgICAgY2FzZSAnQ09NQk8nOlxuICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWwgPSBpc051bWJlcihmaWx0ZXIudmFsdWUpID8gYCR7ZmlsdGVyLnZhbHVlfWAgOiBgXCIke2ZpbHRlci52YWx1ZX1cImA7XG4gICAgICAgICAgICAgICAgICAgIGZpbHRlclZhbCA9IGAke2ZpbHRlci5jb2x1bW5JZH0gPSAke3ZhbH1gO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdEQVRFVElNRSc6XG4gICAgICAgICAgICAgICAgICAgIHBhZ2luZy5yYXdGaWx0ZXIgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBmaWx0ZXJWYWwgPSBgJHtmaWx0ZXIuY29sdW1uSWR9ID49IGRhdGV0aW1lKCR7ZmlsdGVyLnZhbHVlWzBdfSkgYW5kICR7ZmlsdGVyLmNvbHVtbklkfSA8PSBkYXRldGltZSgke2ZpbHRlci52YWx1ZVsxXX0pYDtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnQVRUUklCVVRFJzpcbiAgICAgICAgICAgICAgICAgICAgcGFnaW5nLnJhd0ZpbHRlciA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIGZpbHRlclZhbCA9IHRoaXMuZ2V0QXR0cmlidXRlRmlsdGVyKGZpbHRlci52YWx1ZSwgZmlsdGVyLmNvbHVtbklkKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyVmFsID0gYCR7ZmlsdGVyLmNvbHVtbklkfSBjb250YWlucyBcIiR7ZmlsdGVyLnZhbHVlfVwiYDtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaW5kZXggPD0gMCkge1xuICAgICAgICAgICAgICAgIHVybEZpbHRlciA9IGAke2ZpbHRlclZhbH1gO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB1cmxGaWx0ZXIgKz0gYCBhbmQgJHtmaWx0ZXJWYWx9YFxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gdXJsRmlsdGVyO1xuICAgIH1cblxuICAgIGdldEF0dHJpYnV0ZUZpbHRlcih2YWwsIGNvbHVtbklkKSB7XG4gICAgICAgIGxldCBmaWx0ZXIgPSAnJztcbiAgICAgICAgaWYgKGlzQXJyYXkodmFsKSkge1xuICAgICAgICAgICAgdmFsLmZvckVhY2goKGF0dHIsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGluZGV4ID4gMCkge1xuICAgICAgICAgICAgICAgICAgICBmaWx0ZXIgKz0gJyBvciAnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBmaWx0ZXIgKz0gYGFueU9mKCR7Y29sdW1uSWR9KSA9IFwiJHthdHRyfVwiYDtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZmlsdGVyID0gYGFueU9mKCR7Y29sdW1uSWR9KSA9IFwiJHt2YWx9XCJgO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmaWx0ZXI7XG4gICAgfVxuXG4gICAgaGFuZGxlRXJyb3IocmVzdWx0cykge1xuICAgICAgICBpZiAocmVzdWx0cz8uZXJyb3JPYmo/LmNvZGUgPT09ICdVTkFVVEhPUklaRUQnKSB7XG4gICAgICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgneml0aS5zZXR0aW5ncycpO1xuICAgICAgICAgICAgLy93aW5kb3cubG9jYXRpb24uaHJlZiA9ICcvbG9naW4nO1xuICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvbG9naW4nXSk7XG4gICAgICAgICAgICBzZXQodGhpcy5zZXR0aW5nc1NlcnZpY2UsICdoYXNOb2RlU2Vzc2lvbicsIGZhbHNlKTtcbiAgICAgICAgICAgIHRoaXMuc2V0dGluZ3NTZXJ2aWNlLnNldCh0aGlzLnNldHRpbmdzU2VydmljZS5zZXR0aW5ncyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmxvZ2dlci5lcnJvcihyZXN1bHRzPy5lcnJvcilcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
|
|
@@ -58,6 +58,7 @@ class SettingsServiceClass {
|
|
|
58
58
|
this.apiVersions = [];
|
|
59
59
|
this.protocol = DEFAULTS.protocol;
|
|
60
60
|
this.host = DEFAULTS.host;
|
|
61
|
+
this.zitiSemver = '';
|
|
61
62
|
this.supportedFeatures = {
|
|
62
63
|
organization: false,
|
|
63
64
|
tags: true,
|
|
@@ -128,4 +129,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
128
129
|
providedIn: 'root'
|
|
129
130
|
}]
|
|
130
131
|
}], ctorParameters: function () { return [{ type: i1.HttpBackend }, { type: i2.GrowlerService }]; } });
|
|
131
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3Mtc2VydmljZS5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ppdGktY29uc29sZS1saWIvc3JjL2xpYi9zZXJ2aWNlcy9zZXR0aW5ncy1zZXJ2aWNlLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztFQWNFO0FBRUYsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQWMsVUFBVSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDN0QsT0FBTyxFQUFDLGVBQWUsRUFBMkIsTUFBTSxNQUFNLENBQUM7Ozs7QUFJL0QsYUFBYTtBQUNiLE1BQU0sRUFBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFDLEdBQUcsTUFBTSxDQUFDO0FBQzNELE1BQU0sUUFBUSxHQUFHO0lBQ2IsU0FBUyxFQUFFLEVBQUU7SUFDYixpQkFBaUIsRUFBRSxFQUFFO0lBQ3JCLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLFFBQVEsRUFBRSxLQUFLO0lBQ2YsVUFBVSxFQUFFLFNBQVM7SUFDckIsVUFBVSxFQUFFLE1BQU07SUFDbEIsTUFBTSxFQUFFLFdBQVc7SUFDbkIsTUFBTSxFQUFFLElBQUk7SUFDWixTQUFTLEVBQUUsSUFBSTtJQUNmLG9CQUFvQixFQUFFLEtBQUs7SUFDM0IsTUFBTSxFQUFFO1FBQ0osTUFBTSxFQUFFLEVBQUU7UUFDVixNQUFNLEVBQUUsRUFBRTtRQUNWLFFBQVEsRUFBRSxLQUFLO1FBQ2YsTUFBTSxFQUFFO1lBQ0osTUFBTSxFQUFFLEVBQUU7WUFDVixNQUFNLEVBQUUsRUFBRTtTQUNiO0tBQ0o7SUFDRCxNQUFNLEVBQUUsRUFBRTtJQUNWLElBQUksRUFBRSxFQUFFO0NBQ1gsQ0FBQTtBQUVELE1BR3NCLG9CQUFvQjtJQXNCdEMsWUFBc0IsV0FBd0IsRUFBWSxjQUE4QjtRQUFs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SSxJQUFJLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRTtZQUNwRixNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxRQUFRLENBQUM7U0FDbkM7SUFDTCxDQUFDO0lBRU0sY0FBYztRQUNqQixNQUFNLE9BQU8sR0FBUTtZQUNqQixPQUFPLEVBQUU7Z0JBQ0wsTUFBTSxFQUFFLEdBQUc7YUFDZDtZQUNELE1BQU0sRUFBRSxFQUFFO1lBQ1YsWUFBWSxFQUFFLE1BQWU7U0FDaEMsQ0FBQztRQUNGLE9BQU8sT0FBTyxDQUFDO0lBQ25CLENBQUM7SUFFTSxZQUFZLENBQUMsSUFBWSxFQUFFLEdBQVc7UUFDekMsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRTtZQUNuRCxPQUFPLENBQUMsS0FBSyxDQUFDLHVCQUF1QixDQUFDLENBQUM7U0FDMUM7YUFBTTtZQUNILElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1NBQ2xDO0lBQ0wsQ0FBQzsrR0F0RmlCLG9CQUFvQjttSEFBcEIsb0JBQW9CLGNBRjFCLE1BQU07O1NBRUEsb0JBQW9COzRGQUFwQixvQkFBb0I7a0JBSHpDLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAgICBDb3B5cmlnaHQgTmV0Rm91bmRyeSBJbmMuXG5cbiAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcblxuICAgIGh0dHBzOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcblxuICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuKi9cblxuaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7aXNFbXB0eSwgZGVmZXJ9IGZyb20gXCJsb2Rhc2hcIjtcbmltcG9ydCB7SHR0cEJhY2tlbmQsIEh0dHBDbGllbnR9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIGZpcnN0VmFsdWVGcm9tLCBtYXAsIHRhcH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7Y2F0Y2hFcnJvcn0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5pbXBvcnQge0dyb3dsZXJTZXJ2aWNlfSBmcm9tIFwiLi4vZmVhdHVyZXMvbWVzc2FnaW5nL2dyb3dsZXIuc2VydmljZVwiO1xuXG4vLyBAdHMtaWdub3JlXG5jb25zdCB7c2VydmljZSwgZ3Jvd2xlciwgY29udGV4dCwgcGFnZSwgc2V0dGluZ3N9ID0gd2luZG93O1xuY29uc3QgREVGQVVMVFMgPSB7XG4gICAgXCJzZXNzaW9uXCI6IHt9LFxuICAgIFwiZWRnZUNvbnRyb2xsZXJzXCI6IFtdLFxuICAgIFwiZWRpdGFibGVcIjogdHJ1ZSxcbiAgICBcInVwZGF0ZVwiOiBmYWxzZSxcbiAgICBcImxvY2F0aW9uXCI6IFwiLi4veml0aVwiLFxuICAgIFwicHJvdG9jb2xcIjogXCJodHRwXCIsXG4gICAgXCJob3N0XCI6IFwibG9jYWxob3N0XCIsXG4gICAgXCJwb3J0XCI6IDE0MDgsXG4gICAgXCJwb3J0VExTXCI6IDg0NDMsXG4gICAgXCJyZWplY3RVbmF1dGhvcml6ZWRcIjogZmFsc2UsXG4gICAgXCJtYWlsXCI6IHtcbiAgICAgICAgXCJob3N0XCI6IFwiXCIsXG4gICAgICAgIFwicG9ydFwiOiAyNSxcbiAgICAgICAgXCJzZWN1cmVcIjogZmFsc2UsXG4gICAgICAgIFwiYXV0aFwiOiB7XG4gICAgICAgICAgICBcInVzZXJcIjogXCJcIixcbiAgICAgICAgICAgIFwicGFzc1wiOiBcIlwiXG4gICAgICAgIH1cbiAgICB9LFxuICAgIFwiZnJvbVwiOiBcIlwiLFxuICAgIFwidG9cIjogXCJcIixcbn1cblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBTZXR0aW5nc1NlcnZpY2VDbGFzcyB7XG5cbiAgICBuYW1lID0gXCJzZXR0aW5nc1wiO1xuICAgIHNldHRpbmdzOiBhbnkgPSB7fTtcbiAgICB2ZXJzaW9uRGF0YTogYW55ID0ge307XG4gICAgc2V0dGluZ3NDaGFuZ2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4oe30pXG4gICAgcmVqZWN0VW5hdXRob3JpemVkID0gZmFsc2U7XG4gICAgcG9ydCA9IERFRkFVTFRTLnBvcnQ7XG4gICAgcG9ydFRMUyA9IERFRkFVTFRTLnBvcnRUTFM7XG4gICAgYXBpVmVyc2lvbnM6IGFueVtdID0gW107XG4gICAgcHJvdG9jb2wgPSBERUZBVUxUUy5wcm90b2NvbDtcbiAgICBob3N0ID0gREVGQVVMVFMuaG9zdDtcbiAgICBodHRwQ2xpZW50OiBIdHRwQ2xpZW50O1xuXG4gICAgcHVibGljIHN1cHBvcnRlZEZlYXR1cmVzOiBhbnkgPSB7XG4gICAgICAgIG9yZ2FuaXphdGlvbjogZmFsc2UsXG4gICAgICAgIHRhZ3M6IHRydWUsXG4gICAgICAgIGN1c3RvbUZpZWxkczogZmFsc2UsXG4gICAgICAgIG1haWxlcjogZmFsc2UsXG4gICAgICAgIHJlY2lwZXM6IGZhbHNlXG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIGh0dHBCYWNrZW5kOiBIdHRwQmFja2VuZCwgcHJvdGVjdGVkIGdyb3dsZXJTZXJ2aWNlOiBHcm93bGVyU2VydmljZSkge1xuICAgICAgICB0aGlzLmh0dHBDbGllbnQgPSBuZXcgSHR0cENsaWVudChodHRwQmFja2VuZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFic3RyYWN0IGluaXQoKTtcbiAgICBwdWJsaWMgYWJzdHJhY3QgY29udHJvbGxlclNhdmUobmFtZTogc3RyaW5nLCB1cmw6IHN0cmluZyk7XG4gICAgcHVibGljIGFic3RyYWN0IGluaXRBcGlWZXJzaW9ucyh1cmwpO1xuICAgIHB1YmxpYyBhYnN0cmFjdCBsb2FkU2V0dGluZ3MoKTtcbiAgICBwdWJsaWMgYWJzdHJhY3QgaGFzU2Vzc2lvbigpO1xuXG4gICAgcHVibGljIGdldCgpIHtcbiAgICAgICAgY29uc3QgdG1wID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3ppdGkuc2V0dGluZ3MnKTtcbiAgICAgICAgaWYgKHRtcCkge1xuICAgICAgICAgICAgdGhpcy5zZXR0aW5ncyA9IEpTT04ucGFyc2UodG1wKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2V0dGluZ3MgPSB7Li4uREVGQVVMVFN9O1xuICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3ppdGkuc2V0dGluZ3MnLCBKU09OLnN0cmluZ2lmeSh0aGlzLnNldHRpbmdzKSk7XG4gICAgICAgIH1cbiAgICAgICAgc2V0dGluZ3MuZGF0YSA9IHRoaXMuc2V0dGluZ3M7XG4gICAgICAgIGNvbnRleHQuc2V0KHRoaXMubmFtZSwgdGhpcy5zZXR0aW5ncyk7XG4gICAgICAgIHRoaXMuc2V0dGluZ3NDaGFuZ2UubmV4dCh0aGlzLnNldHRpbmdzKVxuICAgIH1cblxuICAgIHB1YmxpYyBzZXQoZGF0YTogYW55KSB7XG4gICAgICAgIHRoaXMuc2V0dGluZ3MgPSBkYXRhO1xuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgneml0aS5zZXR0aW5ncycsIEpTT04uc3RyaW5naWZ5KGRhdGEpKTtcbiAgICAgICAgY29udGV4dC5zZXQodGhpcy5uYW1lLCB0aGlzLnNldHRpbmdzKTtcbiAgICAgICAgdGhpcy5zZXR0aW5nc0NoYW5nZS5uZXh0KHRoaXMuc2V0dGluZ3MpO1xuICAgIH1cblxuICAgIHB1YmxpYyB2ZXJzaW9uKCkge1xuICAgICAgICB0aGlzLnZlcnNpb25EYXRhID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3ppdGkudmVyc2lvbicpO1xuICAgICAgICBjb250ZXh0LnNldChcInZlcnNpb25cIiwgdGhpcy52ZXJzaW9uRGF0YSk7XG4gICAgICAgIHRoaXMuc2V0dGluZ3MgPSB7Li4udGhpcy5zZXR0aW5ncywgdmVyc2lvbjogdGhpcy52ZXJzaW9uRGF0YX07XG4gICAgICAgIHRoaXMuc2V0dGluZ3NDaGFuZ2UubmV4dCh0aGlzLnNldHRpbmdzKVxuICAgIH1cblxuICAgIHB1YmxpYyBkZWxldGUodXJsOiBzdHJpbmcpIHtcbiAgICAgICAgc2VydmljZS5jYWxsKFwic2VydmVyXCIsIHt1cmw6IHVybH0sIHRoaXMuZGVsZXRlZCwgXCJERUxFVEVcIik7XG4gICAgfVxuXG4gICAgcHVibGljIGRlbGV0ZWQoZTogYW55KSB7XG4gICAgICAgIGlmIChwYWdlICE9IG51bGwgJiYgcGFnZS5kZWxldGluZyAhPSBudWxsICYmIHBhZ2UuZGVsZXRpbmcgPT0gdGhpcy52ZXJzaW9uRGF0YS5iYXNlVXJsKSB7XG4gICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IFwiL2xvZ2luXCI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0SHR0cE9wdGlvbnMoKSB7XG4gICAgICAgIGNvbnN0IG9wdGlvbnM6IGFueSA9IHtcbiAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgICBhY2NlcHQ6ICcqJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBwYXJhbXM6IHt9LFxuICAgICAgICAgICAgcmVzcG9uc2VUeXBlOiAndGV4dCcgYXMgY29uc3QsXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBvcHRpb25zO1xuICAgIH1cblxuICAgIHB1YmxpYyBhZGRDb250b2xsZXIobmFtZTogc3RyaW5nLCB1cmw6IHN0cmluZykge1xuICAgICAgICBpZiAobmFtZS50cmltKCkubGVuZ3RoID09IDAgfHwgdXJsLnRyaW0oKS5sZW5ndGggPT0gMCkge1xuICAgICAgICAgICAgZ3Jvd2xlci5lcnJvcihcIk5hbWUgYW5kIFVSTCByZXF1aXJlZFwiKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuY29udHJvbGxlclNhdmUobmFtZSwgdXJsKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
|
|
132
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3Mtc2VydmljZS5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ppdGktY29uc29sZS1saWIvc3JjL2xpYi9zZXJ2aWNlcy9zZXR0aW5ncy1zZXJ2aWNlLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztFQWNFO0FBRUYsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQWMsVUFBVSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDN0QsT0FBTyxFQUFDLGVBQWUsRUFBMkIsTUFBTSxNQUFNLENBQUM7Ozs7QUFJL0QsYUFBYTtBQUNiLE1BQU0sRUFBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFDLEdBQUcsTUFBTSxDQUFDO0FBQzNELE1BQU0sUUFBUSxHQUFHO0lBQ2IsU0FBUyxFQUFFLEVBQUU7SUFDYixpQkFBaUIsRUFBRSxFQUFFO0lBQ3JCLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLFFBQVEsRUFBRSxLQUFLO0lBQ2YsVUFBVSxFQUFFLFNBQVM7SUFDckIsVUFBVSxFQUFFLE1BQU07SUFDbEIsTUFBTSxFQUFFLFdBQVc7SUFDbkIsTUFBTSxFQUFFLElBQUk7SUFDWixTQUFTLEVBQUUsSUFBSTtJQUNmLG9CQUFvQixFQUFFLEtBQUs7SUFDM0IsTUFBTSxFQUFFO1FBQ0osTUFBTSxFQUFFLEVBQUU7UUFDVixNQUFNLEVBQUUsRUFBRTtRQUNWLFFBQVEsRUFBRSxLQUFLO1FBQ2YsTUFBTSxFQUFFO1lBQ0osTUFBTSxFQUFFLEVBQUU7WUFDVixNQUFNLEVBQUUsRUFBRTtTQUNiO0tBQ0o7SUFDRCxNQUFNLEVBQUUsRUFBRTtJQUNWLElBQUksRUFBRSxFQUFFO0NBQ1gsQ0FBQTtBQUVELE1BR3NCLG9CQUFvQjtJQXVCdEMsWUFBc0IsV0FBd0IsRUFBWSxjQUE4QjtRQUFs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QyxDQUFNO1FBQ2pCLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFO1lBQ3BGLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQztTQUNuQztJQUNMLENBQUM7SUFFTSxjQUFjO1FBQ2pCLE1BQU0sT0FBTyxHQUFRO1lBQ2pCLE9BQU8sRUFBRTtnQkFDTCxNQUFNLEVBQUUsR0FBRzthQUNkO1lBQ0QsTUFBTSxFQUFFLEVBQUU7WUFDVixZQUFZLEVBQUUsTUFBZTtTQUNoQyxDQUFDO1FBQ0YsT0FBTyxPQUFPLENBQUM7SUFDbkIsQ0FBQztJQUVNLFlBQVksQ0FBQyxJQUFZLEVBQUUsR0FBVztRQUN6QyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFO1lBQ25ELE9BQU8sQ0FBQyxLQUFLLENBQUMsdUJBQXVCLENBQUMsQ0FBQztTQUMxQzthQUFNO1lBQ0gsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7U0FDbEM7SUFDTCxDQUFDOytHQXZGaUIsb0JBQW9CO21IQUFwQixvQkFBb0IsY0FGMUIsTUFBTTs7U0FFQSxvQkFBb0I7NEZBQXBCLG9CQUFvQjtrQkFIekMsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICAgIENvcHlyaWdodCBOZXRGb3VuZHJ5IEluYy5cblxuICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuXG4gICAgaHR0cHM6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuXG4gICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4qL1xuXG5pbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtpc0VtcHR5LCBkZWZlcn0gZnJvbSBcImxvZGFzaFwiO1xuaW1wb3J0IHtIdHRwQmFja2VuZCwgSHR0cENsaWVudH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgZmlyc3RWYWx1ZUZyb20sIG1hcCwgdGFwfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHtjYXRjaEVycm9yfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcbmltcG9ydCB7R3Jvd2xlclNlcnZpY2V9IGZyb20gXCIuLi9mZWF0dXJlcy9tZXNzYWdpbmcvZ3Jvd2xlci5zZXJ2aWNlXCI7XG5cbi8vIEB0cy1pZ25vcmVcbmNvbnN0IHtzZXJ2aWNlLCBncm93bGVyLCBjb250ZXh0LCBwYWdlLCBzZXR0aW5nc30gPSB3aW5kb3c7XG5jb25zdCBERUZBVUxUUyA9IHtcbiAgICBcInNlc3Npb25cIjoge30sXG4gICAgXCJlZGdlQ29udHJvbGxlcnNcIjogW10sXG4gICAgXCJlZGl0YWJsZVwiOiB0cnVlLFxuICAgIFwidXBkYXRlXCI6IGZhbHNlLFxuICAgIFwibG9jYXRpb25cIjogXCIuLi96aXRpXCIsXG4gICAgXCJwcm90b2NvbFwiOiBcImh0dHBcIixcbiAgICBcImhvc3RcIjogXCJsb2NhbGhvc3RcIixcbiAgICBcInBvcnRcIjogMTQwOCxcbiAgICBcInBvcnRUTFNcIjogODQ0MyxcbiAgICBcInJlamVjdFVuYXV0aG9yaXplZFwiOiBmYWxzZSxcbiAgICBcIm1haWxcIjoge1xuICAgICAgICBcImhvc3RcIjogXCJcIixcbiAgICAgICAgXCJwb3J0XCI6IDI1LFxuICAgICAgICBcInNlY3VyZVwiOiBmYWxzZSxcbiAgICAgICAgXCJhdXRoXCI6IHtcbiAgICAgICAgICAgIFwidXNlclwiOiBcIlwiLFxuICAgICAgICAgICAgXCJwYXNzXCI6IFwiXCJcbiAgICAgICAgfVxuICAgIH0sXG4gICAgXCJmcm9tXCI6IFwiXCIsXG4gICAgXCJ0b1wiOiBcIlwiLFxufVxuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNldHRpbmdzU2VydmljZUNsYXNzIHtcblxuICAgIG5hbWUgPSBcInNldHRpbmdzXCI7XG4gICAgc2V0dGluZ3M6IGFueSA9IHt9O1xuICAgIHZlcnNpb25EYXRhOiBhbnkgPSB7fTtcbiAgICBzZXR0aW5nc0NoYW5nZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55Pih7fSlcbiAgICByZWplY3RVbmF1dGhvcml6ZWQgPSBmYWxzZTtcbiAgICBwb3J0ID0gREVGQVVMVFMucG9ydDtcbiAgICBwb3J0VExTID0gREVGQVVMVFMucG9ydFRMUztcbiAgICBhcGlWZXJzaW9uczogYW55W10gPSBbXTtcbiAgICBwcm90b2NvbCA9IERFRkFVTFRTLnByb3RvY29sO1xuICAgIGhvc3QgPSBERUZBVUxUUy5ob3N0O1xuICAgIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQ7XG4gICAgeml0aVNlbXZlciA9ICcnO1xuXG4gICAgcHVibGljIHN1cHBvcnRlZEZlYXR1cmVzOiBhbnkgPSB7XG4gICAgICAgIG9yZ2FuaXphdGlvbjogZmFsc2UsXG4gICAgICAgIHRhZ3M6IHRydWUsXG4gICAgICAgIGN1c3RvbUZpZWxkczogZmFsc2UsXG4gICAgICAgIG1haWxlcjogZmFsc2UsXG4gICAgICAgIHJlY2lwZXM6IGZhbHNlXG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIGh0dHBCYWNrZW5kOiBIdHRwQmFja2VuZCwgcHJvdGVjdGVkIGdyb3dsZXJTZXJ2aWNlOiBHcm93bGVyU2VydmljZSkge1xuICAgICAgICB0aGlzLmh0dHBDbGllbnQgPSBuZXcgSHR0cENsaWVudChodHRwQmFja2VuZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFic3RyYWN0IGluaXQoKTtcbiAgICBwdWJsaWMgYWJzdHJhY3QgY29udHJvbGxlclNhdmUobmFtZTogc3RyaW5nLCB1cmw6IHN0cmluZyk7XG4gICAgcHVibGljIGFic3RyYWN0IGluaXRBcGlWZXJzaW9ucyh1cmwpO1xuICAgIHB1YmxpYyBhYnN0cmFjdCBsb2FkU2V0dGluZ3MoKTtcbiAgICBwdWJsaWMgYWJzdHJhY3QgaGFzU2Vzc2lvbigpO1xuXG4gICAgcHVibGljIGdldCgpIHtcbiAgICAgICAgY29uc3QgdG1wID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3ppdGkuc2V0dGluZ3MnKTtcbiAgICAgICAgaWYgKHRtcCkge1xuICAgICAgICAgICAgdGhpcy5zZXR0aW5ncyA9IEpTT04ucGFyc2UodG1wKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2V0dGluZ3MgPSB7Li4uREVGQVVMVFN9O1xuICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3ppdGkuc2V0dGluZ3MnLCBKU09OLnN0cmluZ2lmeSh0aGlzLnNldHRpbmdzKSk7XG4gICAgICAgIH1cbiAgICAgICAgc2V0dGluZ3MuZGF0YSA9IHRoaXMuc2V0dGluZ3M7XG4gICAgICAgIGNvbnRleHQuc2V0KHRoaXMubmFtZSwgdGhpcy5zZXR0aW5ncyk7XG4gICAgICAgIHRoaXMuc2V0dGluZ3NDaGFuZ2UubmV4dCh0aGlzLnNldHRpbmdzKVxuICAgIH1cblxuICAgIHB1YmxpYyBzZXQoZGF0YTogYW55KSB7XG4gICAgICAgIHRoaXMuc2V0dGluZ3MgPSBkYXRhO1xuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgneml0aS5zZXR0aW5ncycsIEpTT04uc3RyaW5naWZ5KGRhdGEpKTtcbiAgICAgICAgY29udGV4dC5zZXQodGhpcy5uYW1lLCB0aGlzLnNldHRpbmdzKTtcbiAgICAgICAgdGhpcy5zZXR0aW5nc0NoYW5nZS5uZXh0KHRoaXMuc2V0dGluZ3MpO1xuICAgIH1cblxuICAgIHB1YmxpYyB2ZXJzaW9uKCkge1xuICAgICAgICB0aGlzLnZlcnNpb25EYXRhID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3ppdGkudmVyc2lvbicpO1xuICAgICAgICBjb250ZXh0LnNldChcInZlcnNpb25cIiwgdGhpcy52ZXJzaW9uRGF0YSk7XG4gICAgICAgIHRoaXMuc2V0dGluZ3MgPSB7Li4udGhpcy5zZXR0aW5ncywgdmVyc2lvbjogdGhpcy52ZXJzaW9uRGF0YX07XG4gICAgICAgIHRoaXMuc2V0dGluZ3NDaGFuZ2UubmV4dCh0aGlzLnNldHRpbmdzKVxuICAgIH1cblxuICAgIHB1YmxpYyBkZWxldGUodXJsOiBzdHJpbmcpIHtcbiAgICAgICAgc2VydmljZS5jYWxsKFwic2VydmVyXCIsIHt1cmw6IHVybH0sIHRoaXMuZGVsZXRlZCwgXCJERUxFVEVcIik7XG4gICAgfVxuXG4gICAgcHVibGljIGRlbGV0ZWQoZTogYW55KSB7XG4gICAgICAgIGlmIChwYWdlICE9IG51bGwgJiYgcGFnZS5kZWxldGluZyAhPSBudWxsICYmIHBhZ2UuZGVsZXRpbmcgPT0gdGhpcy52ZXJzaW9uRGF0YS5iYXNlVXJsKSB7XG4gICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IFwiL2xvZ2luXCI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0SHR0cE9wdGlvbnMoKSB7XG4gICAgICAgIGNvbnN0IG9wdGlvbnM6IGFueSA9IHtcbiAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgICBhY2NlcHQ6ICcqJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBwYXJhbXM6IHt9LFxuICAgICAgICAgICAgcmVzcG9uc2VUeXBlOiAndGV4dCcgYXMgY29uc3QsXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBvcHRpb25zO1xuICAgIH1cblxuICAgIHB1YmxpYyBhZGRDb250b2xsZXIobmFtZTogc3RyaW5nLCB1cmw6IHN0cmluZykge1xuICAgICAgICBpZiAobmFtZS50cmltKCkubGVuZ3RoID09IDAgfHwgdXJsLnRyaW0oKS5sZW5ndGggPT0gMCkge1xuICAgICAgICAgICAgZ3Jvd2xlci5lcnJvcihcIk5hbWUgYW5kIFVSTCByZXF1aXJlZFwiKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuY29udHJvbGxlclNhdmUobmFtZSwgdXJsKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
|