@c8y/ngx-components 1017.0.449 → 1017.0.454
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/esm2020/device-grid/columns/registration-date.device-grid-column.mjs +4 -10
- package/esm2020/ecosystem/application-plugins/application-plugins.component.mjs +23 -11
- package/esm2020/ecosystem/application-plugins/plugin-list.component.mjs +10 -4
- package/esm2020/ecosystem/packages/deploy-application/deploy-application.component.mjs +14 -3
- package/esm2020/repository/shared/repository.service.mjs +4 -4
- package/esm2020/services/services-device-tab/columns/last-updated-date.device-grid-column.mjs +4 -10
- package/fesm2015/c8y-ngx-components-device-grid.mjs +3 -9
- package/fesm2015/c8y-ngx-components-device-grid.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components-ecosystem-application-plugins.mjs +28 -18
- package/fesm2015/c8y-ngx-components-ecosystem-application-plugins.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components-ecosystem.mjs +39 -25
- package/fesm2015/c8y-ngx-components-ecosystem.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components-repository-shared.mjs +3 -3
- package/fesm2015/c8y-ngx-components-repository-shared.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components-services.mjs +3 -9
- package/fesm2015/c8y-ngx-components-services.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-device-grid.mjs +3 -9
- package/fesm2020/c8y-ngx-components-device-grid.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-ecosystem-application-plugins.mjs +31 -14
- package/fesm2020/c8y-ngx-components-ecosystem-application-plugins.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-ecosystem.mjs +43 -16
- package/fesm2020/c8y-ngx-components-ecosystem.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-repository-shared.mjs +3 -3
- package/fesm2020/c8y-ngx-components-repository-shared.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-services.mjs +3 -9
- package/fesm2020/c8y-ngx-components-services.mjs.map +1 -1
- package/package.json +2 -2
|
@@ -51,19 +51,13 @@ export class RegistrationDateDeviceGridColumn extends BaseColumn {
|
|
|
51
51
|
if (dates.after) {
|
|
52
52
|
const after = self.formatDate(dates.after);
|
|
53
53
|
filter.__and.push({
|
|
54
|
-
|
|
55
|
-
[self.path]: { __gt: after },
|
|
56
|
-
[`${self.path}.date`]: { __gt: after }
|
|
57
|
-
}
|
|
54
|
+
'creationTime.date': { __gt: after }
|
|
58
55
|
});
|
|
59
56
|
}
|
|
60
57
|
if (dates.before) {
|
|
61
58
|
const before = self.formatDate(dates.before);
|
|
62
59
|
filter.__and.push({
|
|
63
|
-
|
|
64
|
-
[self.path]: { __lt: before },
|
|
65
|
-
[`${self.path}.date`]: { __lt: before }
|
|
66
|
-
}
|
|
60
|
+
'creationTime.date': { __lt: before }
|
|
67
61
|
});
|
|
68
62
|
}
|
|
69
63
|
}
|
|
@@ -72,11 +66,11 @@ export class RegistrationDateDeviceGridColumn extends BaseColumn {
|
|
|
72
66
|
};
|
|
73
67
|
this.sortable = true;
|
|
74
68
|
this.sortingConfig = {
|
|
75
|
-
pathSortingConfigs: [{ path:
|
|
69
|
+
pathSortingConfigs: [{ path: 'creationTime.date' }]
|
|
76
70
|
};
|
|
77
71
|
}
|
|
78
72
|
formatDate(dateToFormat) {
|
|
79
73
|
return new Date(dateToFormat).toISOString();
|
|
80
74
|
}
|
|
81
75
|
}
|
|
82
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0cmF0aW9uLWRhdGUuZGV2aWNlLWdyaWQtY29sdW1uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vZGV2aWNlLWdyaWQvY29sdW1ucy9yZWdpc3RyYXRpb24tZGF0ZS5kZXZpY2UtZ3JpZC1jb2x1bW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQWdCLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxxQ0FBcUMsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBRXBHLE1BQU0sT0FBTyxnQ0FBaUMsU0FBUSxVQUFVO0lBQzlELFlBQVksbUJBQWtDO1FBQzVDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBRTNCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQztRQUVsQixJQUFJLENBQUMsSUFBSSxHQUFHLGNBQWMsQ0FBQztRQUMzQixJQUFJLENBQUMsSUFBSSxHQUFHLGtCQUFrQixDQUFDO1FBQy9CLElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDM0MsSUFBSSxDQUFDLHFCQUFxQixHQUFHLHFDQUFxQyxDQUFDO1FBRW5FLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxlQUFlLEdBQUc7WUFDckIsTUFBTSxFQUFFO2dCQUNOO29CQUNFLElBQUksRUFBRSxRQUFRO29CQUNkLEdBQUcsRUFBRSxrQkFBa0I7b0JBQ3ZCLGVBQWUsRUFBRTt3QkFDZixLQUFLLEVBQUUsT0FBTyxDQUFDLHNDQUFzQyxDQUFDO3FCQUN2RDtvQkFDRCxVQUFVLEVBQUU7d0JBQ1Y7NEJBQ0UsSUFBSSxFQUFFLFdBQVc7NEJBQ2pCLEdBQUcsRUFBRSxPQUFPOzRCQUNaLGVBQWUsRUFBRTtnQ0FDZixLQUFLLEVBQUUsT0FBTyxDQUFDLFlBQVksQ0FBQzs2QkFDN0I7NEJBQ0Qsb0JBQW9CLEVBQUU7Z0NBQ3BCLHlCQUF5QixFQUFFLENBQUMsS0FBVSxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsTUFBTTs2QkFDekQ7eUJBQ0Y7d0JBQ0Q7NEJBQ0UsSUFBSSxFQUFFLFdBQVc7NEJBQ2pCLEdBQUcsRUFBRSxRQUFROzRCQUNiLGVBQWUsRUFBRTtnQ0FDZixLQUFLLEVBQUUsT0FBTyxDQUFDLFVBQVUsQ0FBQzs2QkFDM0I7NEJBQ0Qsb0JBQW9CLEVBQUU7Z0NBQ3BCLHlCQUF5QixFQUFFLENBQUMsS0FBVSxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsS0FBSzs2QkFDeEQ7eUJBQ0Y7cUJBQ0Y7aUJBQ0Y7YUFDRjtZQUNELFNBQVMsRUFBRSxJQUFJLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDNUIsU0FBUyxDQUFDLEtBQUs7Z0JBQ2IsTUFBTSxNQUFNLEdBQVEsRUFBRSxDQUFDO2dCQUN2QixNQUFNLEtBQUssR0FBRyxLQUFLLElBQUksS0FBSyxDQUFDLGdCQUFnQixDQUFDO2dCQUM5QyxJQUFJLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFO29CQUMxQyxNQUFNLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztvQkFDbEIsSUFBSSxLQUFLLENBQUMsS0FBSyxFQUFFO3dCQUNmLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO3dCQUMzQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQzs0QkFDaEIsbUJBQW1CLEVBQUUsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFO3lCQUNyQyxDQUFDLENBQUM7cUJBQ0o7b0JBQ0QsSUFBSSxLQUFLLENBQUMsTUFBTSxFQUFFO3dCQUNoQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQzt3QkFDN0MsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7NEJBQ2hCLG1CQUFtQixFQUFFLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRTt5QkFDdEMsQ0FBQyxDQUFDO3FCQUNKO2lCQUNGO2dCQUNELE9BQU8sTUFBTSxDQUFDO1lBQ2hCLENBQUM7U0FDRixDQUFDO1FBRUYsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDckIsSUFBSSxDQUFDLGFBQWEsR0FBRztZQUNuQixrQkFBa0IsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLG1CQUFtQixFQUFFLENBQUM7U0FDcEQsQ0FBQztJQUNKLENBQUM7SUFFUyxVQUFVLENBQUMsWUFBb0I7UUFDdkMsT0FBTyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUM5QyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBCYXNlQ29sdW1uLCBDb2x1bW5Db25maWcsIGdldHRleHQgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IFJlZ2lzdHJhdGlvbkRhdGVDZWxsUmVuZGVyZXJDb21wb25lbnQgfSBmcm9tICcuL3JlZ2lzdHJhdGlvbi1kYXRlLmNlbGwtcmVuZGVyZXIuY29tcG9uZW50JztcblxuZXhwb3J0IGNsYXNzIFJlZ2lzdHJhdGlvbkRhdGVEZXZpY2VHcmlkQ29sdW1uIGV4dGVuZHMgQmFzZUNvbHVtbiB7XG4gIGNvbnN0cnVjdG9yKGluaXRpYWxDb2x1bW5Db25maWc/OiBDb2x1bW5Db25maWcpIHtcbiAgICBzdXBlcihpbml0aWFsQ29sdW1uQ29uZmlnKTtcblxuICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xuXG4gICAgdGhpcy5wYXRoID0gJ2NyZWF0aW9uVGltZSc7XG4gICAgdGhpcy5uYW1lID0gJ3JlZ2lzdHJhdGlvbkRhdGUnO1xuICAgIHRoaXMuaGVhZGVyID0gZ2V0dGV4dCgnUmVnaXN0cmF0aW9uIGRhdGUnKTtcbiAgICB0aGlzLmNlbGxSZW5kZXJlckNvbXBvbmVudCA9IFJlZ2lzdHJhdGlvbkRhdGVDZWxsUmVuZGVyZXJDb21wb25lbnQ7XG5cbiAgICB0aGlzLmZpbHRlcmFibGUgPSB0cnVlO1xuICAgIHRoaXMuZmlsdGVyaW5nQ29uZmlnID0ge1xuICAgICAgZmllbGRzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgICAgICBrZXk6ICdyZWdpc3RyYXRpb25EYXRlJyxcbiAgICAgICAgICB0ZW1wbGF0ZU9wdGlvbnM6IHtcbiAgICAgICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdTaG93IGl0ZW1zIHJlZ2lzdGVyZWRgYmV0d2VlbiBkYXRlc2AnKVxuICAgICAgICAgIH0sXG4gICAgICAgICAgZmllbGRHcm91cDogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0eXBlOiAnZGF0ZS10aW1lJyxcbiAgICAgICAgICAgICAga2V5OiAnYWZ0ZXInLFxuICAgICAgICAgICAgICB0ZW1wbGF0ZU9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICBsYWJlbDogZ2V0dGV4dCgnZnJvbWBkYXRlYCcpXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIGV4cHJlc3Npb25Qcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgICAgJ3RlbXBsYXRlT3B0aW9ucy5tYXhEYXRlJzogKG1vZGVsOiBhbnkpID0+IG1vZGVsPy5iZWZvcmVcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdHlwZTogJ2RhdGUtdGltZScsXG4gICAgICAgICAgICAgIGtleTogJ2JlZm9yZScsXG4gICAgICAgICAgICAgIHRlbXBsYXRlT3B0aW9uczoge1xuICAgICAgICAgICAgICAgIGxhYmVsOiBnZXR0ZXh0KCd0b2BkYXRlYCcpXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIGV4cHJlc3Npb25Qcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgICAgJ3RlbXBsYXRlT3B0aW9ucy5taW5EYXRlJzogKG1vZGVsOiBhbnkpID0+IG1vZGVsPy5hZnRlclxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgXVxuICAgICAgICB9XG4gICAgICBdLFxuICAgICAgZm9ybUdyb3VwOiBuZXcgRm9ybUdyb3VwKHt9KSxcbiAgICAgIGdldEZpbHRlcihtb2RlbCkge1xuICAgICAgICBjb25zdCBmaWx0ZXI6IGFueSA9IHt9O1xuICAgICAgICBjb25zdCBkYXRlcyA9IG1vZGVsICYmIG1vZGVsLnJlZ2lzdHJhdGlvbkRhdGU7XG4gICAgICAgIGlmIChkYXRlcyAmJiAoZGF0ZXMuYWZ0ZXIgfHwgZGF0ZXMuYmVmb3JlKSkge1xuICAgICAgICAgIGZpbHRlci5fX2FuZCA9IFtdO1xuICAgICAgICAgIGlmIChkYXRlcy5hZnRlcikge1xuICAgICAgICAgICAgY29uc3QgYWZ0ZXIgPSBzZWxmLmZvcm1hdERhdGUoZGF0ZXMuYWZ0ZXIpO1xuICAgICAgICAgICAgZmlsdGVyLl9fYW5kLnB1c2goe1xuICAgICAgICAgICAgICAnY3JlYXRpb25UaW1lLmRhdGUnOiB7IF9fZ3Q6IGFmdGVyIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoZGF0ZXMuYmVmb3JlKSB7XG4gICAgICAgICAgICBjb25zdCBiZWZvcmUgPSBzZWxmLmZvcm1hdERhdGUoZGF0ZXMuYmVmb3JlKTtcbiAgICAgICAgICAgIGZpbHRlci5fX2FuZC5wdXNoKHtcbiAgICAgICAgICAgICAgJ2NyZWF0aW9uVGltZS5kYXRlJzogeyBfX2x0OiBiZWZvcmUgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmaWx0ZXI7XG4gICAgICB9XG4gICAgfTtcblxuICAgIHRoaXMuc29ydGFibGUgPSB0cnVlO1xuICAgIHRoaXMuc29ydGluZ0NvbmZpZyA9IHtcbiAgICAgIHBhdGhTb3J0aW5nQ29uZmlnczogW3sgcGF0aDogJ2NyZWF0aW9uVGltZS5kYXRlJyB9XVxuICAgIH07XG4gIH1cblxuICBwcm90ZWN0ZWQgZm9ybWF0RGF0ZShkYXRlVG9Gb3JtYXQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKGRhdGVUb0Zvcm1hdCkudG9JU09TdHJpbmcoKTtcbiAgfVxufVxuIl19
|
|
@@ -114,10 +114,15 @@ export class ApplicationPluginsComponent {
|
|
|
114
114
|
this.isLoading = true;
|
|
115
115
|
await this.handleRemotesInstallation(pluginsToAdd);
|
|
116
116
|
this.alertService.success(gettext('Plugins installed.'));
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
117
|
+
pluginsToAdd.forEach(plugin => {
|
|
118
|
+
this.gainsightService.triggerEvent(PRODUCT_EXPERIENCE.APPLICATIONS.EVENTS.INSTALLED_PLUGINS, {
|
|
119
|
+
component: PRODUCT_EXPERIENCE.APPLICATIONS.COMPONENTS.APPLICATION_PLUGINS,
|
|
120
|
+
result: PRODUCT_EXPERIENCE.APPLICATIONS.RESULTS.PLUGIN_INSTALLED,
|
|
121
|
+
url: this.CURRENT_LOCATION,
|
|
122
|
+
id: plugin,
|
|
123
|
+
targetApplicationName: this.app.name,
|
|
124
|
+
targetApplicationContextPath: this.app.contextPath
|
|
125
|
+
});
|
|
121
126
|
});
|
|
122
127
|
}
|
|
123
128
|
catch (ex) {
|
|
@@ -126,7 +131,8 @@ export class ApplicationPluginsComponent {
|
|
|
126
131
|
this.gainsightService.triggerEvent(PRODUCT_EXPERIENCE.APPLICATIONS.EVENTS.INSTALLED_PLUGINS, {
|
|
127
132
|
component: PRODUCT_EXPERIENCE.APPLICATIONS.COMPONENTS.APPLICATION_PLUGINS,
|
|
128
133
|
result: PRODUCT_EXPERIENCE.APPLICATIONS.RESULTS.SERVER_FAILURE,
|
|
129
|
-
url: this.CURRENT_LOCATION
|
|
134
|
+
url: this.CURRENT_LOCATION,
|
|
135
|
+
error: ex
|
|
130
136
|
});
|
|
131
137
|
}
|
|
132
138
|
}
|
|
@@ -142,10 +148,15 @@ export class ApplicationPluginsComponent {
|
|
|
142
148
|
this.isLoading = false;
|
|
143
149
|
this.dataGrid.cancel();
|
|
144
150
|
this.alertService.success(gettext('Plugins removed.'));
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
151
|
+
plugins.forEach(plugin => {
|
|
152
|
+
this.gainsightService.triggerEvent(PRODUCT_EXPERIENCE.APPLICATIONS.EVENTS.INSTALLED_PLUGINS, {
|
|
153
|
+
component: PRODUCT_EXPERIENCE.APPLICATIONS.COMPONENTS.APPLICATION_PLUGINS,
|
|
154
|
+
result: PRODUCT_EXPERIENCE.APPLICATIONS.RESULTS.PLUGIN_REMOVED,
|
|
155
|
+
url: this.CURRENT_LOCATION,
|
|
156
|
+
id: plugin,
|
|
157
|
+
targetApplicationName: this.app.name,
|
|
158
|
+
targetApplicationContextPath: this.app.contextPath
|
|
159
|
+
});
|
|
149
160
|
});
|
|
150
161
|
}
|
|
151
162
|
catch (ex) {
|
|
@@ -154,7 +165,8 @@ export class ApplicationPluginsComponent {
|
|
|
154
165
|
this.gainsightService.triggerEvent(PRODUCT_EXPERIENCE.APPLICATIONS.EVENTS.INSTALLED_PLUGINS, {
|
|
155
166
|
component: PRODUCT_EXPERIENCE.APPLICATIONS.COMPONENTS.APPLICATION_PLUGINS,
|
|
156
167
|
result: PRODUCT_EXPERIENCE.APPLICATIONS.RESULTS.SERVER_FAILURE,
|
|
157
|
-
url: this.CURRENT_LOCATION
|
|
168
|
+
url: this.CURRENT_LOCATION,
|
|
169
|
+
error: ex
|
|
158
170
|
});
|
|
159
171
|
}
|
|
160
172
|
}
|
|
@@ -398,4 +410,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
|
|
|
398
410
|
type: ViewChild,
|
|
399
411
|
args: [DataGridComponent, { static: false }]
|
|
400
412
|
}] } });
|
|
401
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24tcGx1Z2lucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9lY29zeXN0ZW0vYXBwbGljYXRpb24tcGx1Z2lucy9hcHBsaWNhdGlvbi1wbHVnaW5zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL2Vjb3N5c3RlbS9hcHBsaWNhdGlvbi1wbHVnaW5zL2FwcGxpY2F0aW9uLXBsdWdpbnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFakQsT0FBTyxFQUVMLFlBQVksRUFFWix1QkFBdUIsRUFHdkIsaUJBQWlCLEVBRWpCLGdCQUFnQixFQUVoQixZQUFZLEVBRVosY0FBYyxFQUNkLE9BQU8sRUFDUixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzVGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZUFBZSxFQUFjLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0UsT0FBTyxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNoRyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUs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QkFBMkIsNkhBSzNCLGlCQUFpQixnREN0QzlCLHlpSEFrR0E7MkZEakVhLDJCQUEyQjtrQkFKdkMsU0FBUzsrQkFDRSxpQkFBaUI7a1RBT2xCLEtBQUs7c0JBQWIsS0FBSztnQkFFTixRQUFRO3NCQURQLFNBQVM7dUJBQUMsaUJBQWlCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQXBwbGljYXRpb25SZW1vdGVQbHVnaW5zLCBJQXBwbGljYXRpb24gfSBmcm9tICdAYzh5L2NsaWVudCc7XG5pbXBvcnQge1xuICBBY3Rpb25Db250cm9sLFxuICBBbGVydFNlcnZpY2UsXG4gIEFwcGxpY2F0aW9uUGx1Z2luLFxuICBBcHBsaWNhdGlvblBsdWdpblN0YXR1cyxcbiAgQnVsa0FjdGlvbkNvbnRyb2wsXG4gIENvbHVtbixcbiAgRGF0YUdyaWRDb21wb25lbnQsXG4gIERpc3BsYXlPcHRpb25zLFxuICBHYWluc2lnaHRTZXJ2aWNlLFxuICBIZWFkZXJBY3Rpb25Db250cm9sLFxuICBNb2RhbFNlcnZpY2UsXG4gIFBhZ2luYXRpb24sXG4gIFBsdWdpbnNTZXJ2aWNlLFxuICBnZXR0ZXh0XG59IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgRWNvc3lzdGVtU2VydmljZSwgUFJPRFVDVF9FWFBFUklFTkNFIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9lY29zeXN0ZW0vc2hhcmVkJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IEJzTW9kYWxTZXJ2aWNlIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9tb2RhbCc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YmplY3QsIGNvbWJpbmVMYXRlc3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCwgc2hhcmVSZXBsYXkgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBJbnN0YWxsUGx1Z2luQ29tcG9uZW50IH0gZnJvbSAnLi9pbnN0YWxsLXBsdWdpbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGFiZWxDZWxsUmVuZGVyZXJDb21wb25lbnQgfSBmcm9tICcuL2xhYmVsLWNlbGwtcmVuZGVyZXIuY29tcG9uZW50JztcbmltcG9ydCB7IE9ycGhhbmVkU3RhdHVzQ2VsbFJlbmRlcmVyQ29tcG9uZW50IH0gZnJvbSAnLi9vcnBoYW5lZC1zdGF0dXMtY2VsbC1yZW5kZXJlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVXBkYXRlUGx1Z2luT2ZBcHBDb21wb25lbnQgfSBmcm9tICcuL3VwZGF0ZS1wbHVnaW4tb2YtYXBwL3VwZGF0ZS1wbHVnaW4tb2YtYXBwLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1hcHAtcGx1Z2lucycsXG4gIHRlbXBsYXRlVXJsOiAnLi9hcHBsaWNhdGlvbi1wbHVnaW5zLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBBcHBsaWNhdGlvblBsdWdpbnNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIFBST0RVQ1RfRVhQRVJJRU5DRSA9IFBST0RVQ1RfRVhQRVJJRU5DRTtcbiAgQ1VSUkVOVF9MT0NBVElPTiA9IGxvY2F0aW9uLmhyZWY7XG5cbiAgQElucHV0KCkgYXBwSWQ6IHN0cmluZyB8IG51bWJlcjtcbiAgQFZpZXdDaGlsZChEYXRhR3JpZENvbXBvbmVudCwgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIGRhdGFHcmlkOiBEYXRhR3JpZENvbXBvbmVudDtcblxuICBleHBvcnRlZFBsdWdpbnMkOiBCZWhhdmlvclN1YmplY3Q8QXBwbGljYXRpb25QbHVnaW5bXT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KFtdKTtcbiAgcmVtb3RlUGx1Z2lucyQ6IEJlaGF2aW9yU3ViamVjdDxBcHBsaWNhdGlvblJlbW90ZVBsdWdpbnM+ID0gbmV3IEJlaGF2aW9yU3ViamVjdCh7fSk7XG4gIGFsbEF2YWlsYWJsZVBsdWdpbnMkOiBCZWhhdmlvclN1YmplY3Q8QXBwbGljYXRpb25QbHVnaW5bXT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KFtdKTtcblxuICBpbnN0YWxsZWRQbHVnaW5zJDogT2JzZXJ2YWJsZTxBcHBsaWNhdGlvblBsdWdpbltdPiA9IGNvbWJpbmVMYXRlc3QoW1xuICAgIHRoaXMucmVtb3RlUGx1Z2lucyQucGlwZShtYXAocmVtb3RlcyA9PiB0aGlzLmNvbnZlcnRJbnN0YWxsZWRSZW1vdGVzVG9JZHMocmVtb3RlcykpKSxcbiAgICB0aGlzLmFsbEF2YWlsYWJsZVBsdWdpbnMkXG4gIF0pLnBpcGUoXG4gICAgbWFwKChbcmVtb3RlUGx1Z2lucywgYWxsUGx1Z2luc10pID0+IHRoaXMuZ2V0SW5zdGFsbGVkUGx1Z2lucyhhbGxQbHVnaW5zLCByZW1vdGVQbHVnaW5zKSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcbiAgb3JwaGFuZWRQbHVnaW5zJCA9IHRoaXMuaW5zdGFsbGVkUGx1Z2lucyQucGlwZShcbiAgICBtYXAocGx1Z2lucyA9PiBwbHVnaW5zLmZpbHRlcihwID0+IHAuc3RhdHVzID09PSBBcHBsaWNhdGlvblBsdWdpblN0YXR1cy5PUlBIQU5FRCkpXG4gICk7XG4gIGFwcDogSUFwcGxpY2F0aW9uO1xuICBpc0xvYWRpbmc6IGJvb2xlYW47XG4gIHRpdGxlOiBzdHJpbmcgPSBnZXR0ZXh0KCdJbnN0YWxsZWQgcGx1Z2lucycpO1xuICBsb2FkTW9yZUl0ZW1zTGFiZWw6IHN0cmluZyA9IGdldHRleHQoJ0xvYWQgbW9yZSBwYWNrYWdlcycpO1xuICBsb2FkaW5nSXRlbXNMYWJlbDogc3RyaW5nID0gZ2V0dGV4dCgnTG9hZGluZyBwYWNrYWdlc+KApicpO1xuICBhY3Rpb25Db250cm9sczogQWN0aW9uQ29udHJvbFtdID0gdGhpcy5nZXRBY3Rpb25Db250cm9scygpO1xuICBidWxrQWN0aW9uQ29udHJvbHM6IEJ1bGtBY3Rpb25Db250cm9sW10gPSB0aGlzLmdldEJ1bGtBY3Rpb25Db250cm9scygpO1xuICBoZWFkZXJBY3Rpb25Db250cm9sczogSGVhZGVyQWN0aW9uQ29udHJvbFtdID0gW107XG4gIHBhZ2luYXRpb246IFBhZ2luYXRpb24gPSB7XG4gICAgcGFnZVNpemU6IDEwLFxuICAgIGN1cnJlbnRQYWdlOiAxXG4gIH07XG4gIGRpc3BsYXlPcHRpb25zOiBEaXNwbGF5T3B0aW9ucyA9IHtcbiAgICBib3JkZXJlZDogZmFsc2UsXG4gICAgc3RyaXBlZDogdHJ1ZSxcbiAgICBmaWx0ZXI6IHRydWUsXG4gICAgZ3JpZEhlYWRlcjogdHJ1ZVxuICB9O1xuICBjb2x1bW5zOiBDb2x1bW5bXSA9IFtcbiAgICB7XG4gICAgICBuYW1lOiAnbmFtZScsXG4gICAgICBoZWFkZXI6IGdldHRleHQoJ1BsdWdpbiBuYW1lJyksXG4gICAgICBwYXRoOiAnbmFtZScsXG4gICAgICBmaWx0ZXJhYmxlOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiAnVmVyc2lvbicsXG4gICAgICBoZWFkZXI6IGdldHRleHQoJ1ZlcnNpb24nKSxcbiAgICAgIHBhdGg6ICd2ZXJzaW9uJyxcbiAgICAgIGZpbHRlcmFibGU6IGZhbHNlXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiAnZGVzY3JpcHRpb24nLFxuICAgICAgaGVhZGVyOiBnZXR0ZXh0KCdEZXNjcmlwdGlvbicpLFxuICAgICAgcGF0aDogJ2Rlc2NyaXB0aW9uJyxcbiAgICAgIGZpbHRlcmFibGU6IGZhbHNlLFxuICAgICAgY2VsbENTU0NsYXNzTmFtZTogJ3NtYWxsJ1xuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogJ2NvbnRleHRQYXRoJyxcbiAgICAgIGhlYWRlcjogZ2V0dGV4dCgnU291cmNlJyksXG4gICAgICBwYXRoOiAnY29udGV4dFBhdGgnLFxuICAgICAgZmlsdGVyYWJsZTogZmFsc2UsXG4gICAgICBjZWxsUmVuZGVyZXJDb21wb25lbnQ6IExhYmVsQ2VsbFJlbmRlcmVyQ29tcG9uZW50XG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiAnc3RhdHVzJyxcbiAgICAgIGhlYWRlcjogZ2V0dGV4dCgnU3RhdHVzJyksXG4gICAgICBwYXRoOiAnc3RhdHVzJyxcbiAgICAgIGZpbHRlcmFibGU6IGZhbHNlLFxuICAgICAgY2VsbFJlbmRlcmVyQ29tcG9uZW50OiBPcnBoYW5lZFN0YXR1c0NlbGxSZW5kZXJlckNvbXBvbmVudFxuICAgIH1cbiAgXTtcbiAgcHJpdmF0ZSBkZXN0cm95JDogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3QoKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIGVjb3N5c3RlbVNlcnZpY2U6IEVjb3N5c3RlbVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBic01vZGFsU2VydmljZTogQnNNb2RhbFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBtb2RhbDogTW9kYWxTZXJ2aWNlLFxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIHBsdWdpbnNTZXJ2aWNlOiBQbHVnaW5zU2VydmljZSxcbiAgICBwcml2YXRlIGFsZXJ0U2VydmljZTogQWxlcnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgZ2FpbnNpZ2h0U2VydmljZTogR2FpbnNpZ2h0U2VydmljZVxuICApIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5hZGRJbnN0YWxsQnV0dG9uVG9IZWFkZXJBY3Rpb25Db250cm9scygpO1xuICAgIHRoaXMubG9hZERhdGEoKTtcbiAgfVxuXG4gIGFzeW5jIGxvYWREYXRhKCkge1xuICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcbiAgICBhd2FpdCB0aGlzLmdldEFwcGxpY2F0aW9uTU8oKTtcbiAgICBhd2FpdCB0aGlzLmdldEFwcGxpY2F0aW9uTUZFeHBvcnRzKHRoaXMuYXBwKTtcbiAgICBhd2FpdCB0aGlzLmdldEFwcGxpY2F0aW9uTUZSZW1vdGVzKHRoaXMuYXBwKTtcbiAgICBhd2FpdCB0aGlzLmdldEFsbEFwcGxpY2F0aW9uc01GRXhwb3J0cygpO1xuICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gIH1cblxuICBhc3luYyBpbnN0YWxsUGx1Z2lucygpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcGx1Z2luc1RvQWRkOiBzdHJpbmdbXSA9IChhd2FpdCAoXG4gICAgICAgIHRoaXMuYnNNb2RhbFNlcnZpY2Uuc2hvdyhJbnN0YWxsUGx1Z2luQ29tcG9uZW50LCB7XG4gICAgICAgICAgY2xhc3M6ICdtb2RhbC1zbScsXG4gICAgICAgICAgYXJpYURlc2NyaWJlZGJ5OiAnbW9kYWwtYm9keScsXG4gICAgICAgICAgYXJpYUxhYmVsbGVkQnk6ICdtb2RhbC10aXRsZScsXG4gICAgICAgICAgaW5pdGlhbFN0YXRlOiB0aGlzLmdldEluc3RhbGxNb2RhbEluaXRTdGF0ZSgpLFxuICAgICAgICAgIGlnbm9yZUJhY2tkcm9wQ2xpY2s6IHRydWVcbiAgICAgICAgfSkuY29udGVudCBhcyBJbnN0YWxsUGx1Z2luQ29tcG9uZW50XG4gICAgICApLnJlc3VsdCkgYXMgYW55IGFzIHN0cmluZ1tdO1xuXG4gICAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG4gICAgICBhd2FpdCB0aGlzLmhhbmRsZVJlbW90ZXNJbnN0YWxsYXRpb24ocGx1Z2luc1RvQWRkKTtcblxuICAgICAgdGhpcy5hbGVydFNlcnZpY2Uuc3VjY2VzcyhnZXR0ZXh0KCdQbHVnaW5zIGluc3RhbGxlZC4nKSk7XG4gICAgICB0aGlzLmdhaW5zaWdodFNlcnZpY2UudHJpZ2dlckV2ZW50KFBST0RVQ1RfRVhQRVJJRU5DRS5BUFBMSUNBVElPTlMuRVZFTlRTLklOU1RBTExFRF9QTFVHSU5TLCB7XG4gICAgICAgIGNvbXBvbmVudDogUFJPRFVDVF9FWFBFUklFTkNFLkFQUExJQ0FUSU9OUy5DT01QT05FTlRTLkFQUExJQ0FUSU9OX1BMVUdJTlMsXG4gICAgICAgIHJlc3VsdDogUFJPRFVDVF9FWFBFUklFTkNFLkFQUExJQ0FUSU9OUy5SRVNVTFRTLlBMVUdJTl9JTlNUQUxMRUQsXG4gICAgICAgIHVybDogdGhpcy5DVVJSRU5UX0xPQ0FUSU9OXG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChleCkge1xuICAgICAgaWYgKGV4KSB7XG4gICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmFkZFNlcnZlckZhaWx1cmUoZXgpO1xuICAgICAgICB0aGlzLmdhaW5zaWdodFNlcnZpY2UudHJpZ2dlckV2ZW50KFxuICAgICAgICAgIFBST0RVQ1RfRVhQRVJJRU5DRS5BUFBMSUNBVElPTlMuRVZFTlRTLklOU1RBTExFRF9QTFVHSU5TLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNvbXBvbmVudDogUFJPRFVDVF9FWFBFUklFTkNFLkFQUExJQ0FUSU9OUy5DT01QT05FTlRTLkFQUExJQ0FUSU9OX1BMVUdJTlMsXG4gICAgICAgICAgICByZXN1bHQ6IFBST0RVQ1RfRVhQRVJJRU5DRS5BUFBMSUNBVElPTlMuUkVTVUxUUy5TRVJWRVJfRkFJTFVSRSxcbiAgICAgICAgICAgIHVybDogdGhpcy5DVVJSRU5UX0xPQ0FUSU9OXG4gICAgICAgICAgfVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHJlbW92ZVBsdWdpbnMocGx1Z2luczogc3RyaW5nW10pIHtcbiAgICB0cnkge1xuICAgICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xuICAgICAgY29uc3QgdXBkYXRlZFJlbW90ZXMgPSBhd2FpdCB0aGlzLnBsdWdpbnNTZXJ2aWNlLnJlbW92ZVJlbW90ZXMoXG4gICAgICAgIHRoaXMuYXBwLFxuICAgICAgICBwbHVnaW5zLm1hcChpZCA9PiAoeyBpZCB9IGFzIEFwcGxpY2F0aW9uUGx1Z2luKSlcbiAgICAgICk7XG4gICAgICB0aGlzLmVtaXRSZW1vdGVzKHVwZGF0ZWRSZW1vdGVzKTtcblxuICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgIHRoaXMuZGF0YUdyaWQuY2FuY2VsKCk7XG4gICAgICB0aGlzLmFsZXJ0U2VydmljZS5zdWNjZXNzKGdldHRleHQoJ1BsdWdpbnMgcmVtb3ZlZC4nKSk7XG4gICAgICB0aGlzLmdhaW5zaWdodFNlcnZpY2UudHJpZ2dlckV2ZW50KFBST0RVQ1RfRVhQRVJJRU5DRS5BUFBMSUNBVElPTlMuRVZFTlRTLklOU1RBTExFRF9QTFVHSU5TLCB7XG4gICAgICAgIGNvbXBvbmVudDogUFJPRFVDVF9FWFBFUklFTkNFLkFQUExJQ0FUSU9OUy5DT01QT05FTlRTLkFQUExJQ0FUSU9OX1BMVUdJTlMsXG4gICAgICAgIHJlc3VsdDogUFJPRFVDVF9FWFBFUklFTkNFLkFQUExJQ0FUSU9OUy5SRVNVTFRTLlBMVUdJTl9SRU1PVkVELFxuICAgICAgICB1cmw6IHRoaXMuQ1VSUkVOVF9MT0NBVElPTlxuICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZXgpIHtcbiAgICAgIGlmIChleCkge1xuICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5hZGRTZXJ2ZXJGYWlsdXJlKGV4KTtcbiAgICAgICAgdGhpcy5nYWluc2lnaHRTZXJ2aWNlLnRyaWdnZXJFdmVudChcbiAgICAgICAgICBQUk9EVUNUX0VYUEVSSUVOQ0UuQVBQTElDQVRJT05TLkVWRU5UUy5JTlNUQUxMRURfUExVR0lOUyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjb21wb25lbnQ6IFBST0RVQ1RfRVhQRVJJRU5DRS5BUFBMSUNBVElPTlMuQ09NUE9ORU5UUy5BUFBMSUNBVElPTl9QTFVHSU5TLFxuICAgICAgICAgICAgcmVzdWx0OiBQUk9EVUNUX0VYUEVSSUVOQ0UuQVBQTElDQVRJT05TLlJFU1VMVFMuU0VSVkVSX0ZBSUxVUkUsXG4gICAgICAgICAgICB1cmw6IHRoaXMuQ1VSUkVOVF9MT0NBVElPTlxuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBjbGVhbnVwT3JwaGFuZWRQbHVnaW5zKHBsdWdpbnM6IEFwcGxpY2F0aW9uUGx1Z2luW10pIHtcbiAgICBjb25zdCBwbHVnaW5JZHMgPSBwbHVnaW5zLm1hcChwID0+IHAuaWQpO1xuICAgIGF3YWl0IHRoaXMucmVtb3ZlUGx1Z2lucyhwbHVnaW5JZHMpO1xuICB9XG5cbiAgZ2V0QWN0aW9uQ29udHJvbHMoKTogQWN0aW9uQ29udHJvbFtdIHtcbiAgICByZXR1cm4gW1xuICAgICAge1xuICAgICAgICB0eXBlOiAnY3VzdG9tVXBkYXRlJyxcbiAgICAgICAgdGV4dDogZ2V0dGV4dCgnVXBkYXRlJyksXG4gICAgICAgIGljb246ICdjYXJldC1zcXVhcmUtby11cCcsXG4gICAgICAgIHNob3dJZjogcGx1Z2luID0+IHtcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgcGx1Z2luLnN0YXR1cyA9PT0gQXBwbGljYXRpb25QbHVnaW5TdGF0dXMuT1VUREFURUQgfHxcbiAgICAgICAgICAgIHBsdWdpbi5zdGF0dXMgPT09IEFwcGxpY2F0aW9uUGx1Z2luU3RhdHVzLlJFVk9LRURcbiAgICAgICAgICApO1xuICAgICAgICB9LFxuICAgICAgICBjYWxsYmFjazogcGx1Z2luID0+IHRoaXMudXBkYXRlUGx1Z2luKHRoaXMuYXBwLCBwbHVnaW4gYXMgQXBwbGljYXRpb25QbHVnaW4pXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0eXBlOiAnY3VzdG9tRG93bmdyYWRlJyxcbiAgICAgICAgdGV4dDogZ2V0dGV4dCgnRG93bmdyYWRlJyksXG4gICAgICAgIGljb246ICdjYXJldC1zcXVhcmUtby1kb3duJyxcbiAgICAgICAgc2hvd0lmOiBwbHVnaW4gPT4ge1xuICAgICAgICAgIHJldHVybiBwbHVnaW4uc3RhdHVzID09PSBBcHBsaWNhdGlvblBsdWdpblN0YXR1cy5MQVRFU1Q7XG4gICAgICAgIH0sXG4gICAgICAgIGNhbGxiYWNrOiBwbHVnaW4gPT4gdGhpcy51cGRhdGVQbHVnaW4odGhpcy5hcHAsIHBsdWdpbiBhcyBBcHBsaWNhdGlvblBsdWdpbiwgdHJ1ZSlcbiAgICAgIH1cbiAgICBdO1xuICB9XG5cbiAgZ2V0QnVsa0FjdGlvbkNvbnRyb2xzKCk6IEJ1bGtBY3Rpb25Db250cm9sW10ge1xuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6ICdjdXN0b21EZWxldGUnLFxuICAgICAgICB0ZXh0OiBnZXR0ZXh0KCdSZW1vdmUnKSxcbiAgICAgICAgaWNvbjogJ3RyYXNoJyxcbiAgICAgICAgY2FsbGJhY2s6IHBsdWdpbnMgPT4gdGhpcy5yZW1vdmVQbHVnaW5zKHBsdWdpbnMpXG4gICAgICB9XG4gICAgXTtcbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZVBsdWdpbihhcHA6IElBcHBsaWNhdGlvbiwgcGx1Z2luOiBBcHBsaWNhdGlvblBsdWdpbiwgZG93bmdyYWRlID0gZmFsc2UpIHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgKFxuICAgICAgICB0aGlzLmJzTW9kYWxTZXJ2aWNlLnNob3coVXBkYXRlUGx1Z2luT2ZBcHBDb21wb25lbnQsIHtcbiAgICAgICAgICBjbGFzczogJ21vZGFsLXNtJyxcbiAgICAgICAgICBhcmlhRGVzY3JpYmVkYnk6ICdtb2RhbC1ib2R5JyxcbiAgICAgICAgICBhcmlhTGFiZWxsZWRCeTogJ21vZGFsLXRpdGxlJyxcbiAgICAgICAgICBpbml0aWFsU3RhdGU6IHtcbiAgICAgICAgICAgIGFwcCxcbiAgICAgICAgICAgIHBsdWdpbixcbiAgICAgICAgICAgIGRvd25ncmFkZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgaWdub3JlQmFja2Ryb3BDbGljazogdHJ1ZVxuICAgICAgICB9KS5jb250ZW50IGFzIFVwZGF0ZVBsdWdpbk9mQXBwQ29tcG9uZW50XG4gICAgICApLnJlc3VsdDtcbiAgICAgIHRoaXMucmVmcmVzaCgpO1xuICAgIH0gY2F0Y2ggKGVyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9XG5cbiAgcmVmcmVzaCgpIHtcbiAgICB0aGlzLmxvYWREYXRhKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwcml2YXRlIGFkZEluc3RhbGxCdXR0b25Ub0hlYWRlckFjdGlvbkNvbnRyb2xzKCkge1xuICAgIGlmICh0aGlzLmFwcElkKSB7XG4gICAgICB0aGlzLmhlYWRlckFjdGlvbkNvbnRyb2xzID0gW1xuICAgICAgICB7XG4gICAgICAgICAgdGV4dDogZ2V0dGV4dCgnSW5zdGFsbCBwbHVnaW5zJyksXG4gICAgICAgICAgY2FsbGJhY2s6ICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuaW5zdGFsbFBsdWdpbnMoKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGljb246ICdwbHVzLWNpcmNsZScsXG4gICAgICAgICAgdHlwZTogJ2N1c3RvbSdcbiAgICAgICAgfVxuICAgICAgXTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGhhbmRsZVJlbW90ZXNJbnN0YWxsYXRpb24ocmVtb3Rlc0lkczogc3RyaW5nW10pIHtcbiAgICAvLyBXaGVuIHJlbW90ZXMgb2JqZWN0IGlzIG5vdCBzZXQgaW4gdGhlIGNvbmZpZ3VyYXRpb24gb2JqZWN0IG9mIGFuIGFwcGxpY2F0aW9uLlxuICAgIC8vIEZhbGxiYWNrIHRvIHNldEluaXRpYWxSZW1vdGVzIGlzIHRyaWdnZXJlZC5cbiAgICBsZXQgdXBkYXRlZFJlbW90ZXMgPSBhd2FpdCB0aGlzLnBsdWdpbnNTZXJ2aWNlLmFkZFJlbW90ZXMoXG4gICAgICB0aGlzLmFwcCxcbiAgICAgIHJlbW90ZXNJZHMubWFwKGlkID0+ICh7IGlkIH0gYXMgQXBwbGljYXRpb25QbHVnaW4pKVxuICAgICk7XG5cbiAgICBpZiAoIXVwZGF0ZWRSZW1vdGVzKSB7XG4gICAgICAvLyBUT0RPIGRpc2N1c3MgaWYgd2UgbmVlZCB0byBoYW5kbGUgaXQgbGlrZSB0aGF0LlxuICAgICAgLy8gUmlnaHQgbm93IHJlbW90ZXMgZnJvbSB0aGUgY3VtdWxvY2l0eS5qc29uIGFyZSB0YWtlbiBpbnRvIGFjY291bnQgd2hlbiByZW1vdGVzIG9iamVjdCBpcyBtaXNzaW5nIGluIHRoZSBjb25maWd1cmF0aW9uLlxuICAgICAgdXBkYXRlZFJlbW90ZXMgPSBhd2FpdCB0aGlzLnBsdWdpbnNTZXJ2aWNlLnNldEluaXRpYWxSZW1vdGVzKHRoaXMuYXBwKTtcbiAgICAgIC8vIEZyZXNoIGFwcGxpY2F0aW9uIE1PIGlzIG5lZWRlZCwgYWZ0ZXIgaW5pdGlhbCBzdGF0ZSB3YXMgc2V0LlxuICAgICAgYXdhaXQgdGhpcy5nZXRBcHBsaWNhdGlvbk1PKCk7XG4gICAgICB1cGRhdGVkUmVtb3RlcyA9IGF3YWl0IHRoaXMucGx1Z2luc1NlcnZpY2UuYWRkUmVtb3RlcyhcbiAgICAgICAgdGhpcy5hcHAsXG4gICAgICAgIHJlbW90ZXNJZHMubWFwKGlkID0+ICh7IGlkIH0gYXMgQXBwbGljYXRpb25QbHVnaW4pKVxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZW1pdFJlbW90ZXModXBkYXRlZFJlbW90ZXMpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0UmVtb3Rlcyh1cGRhdGVkUmVtb3RlczogQXBwbGljYXRpb25SZW1vdGVQbHVnaW5zKSB7XG4gICAgdGhpcy5yZW1vdGVQbHVnaW5zJC5uZXh0KHVwZGF0ZWRSZW1vdGVzKTtcbiAgICB0aGlzLmFwcC5jb25maWcucmVtb3RlcyA9IHVwZGF0ZWRSZW1vdGVzO1xuICAgIHJldHVybiB7IC4uLnRoaXMucmVtb3RlUGx1Z2lucyQudmFsdWUgfTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0QXBwbGljYXRpb25NTygpOiBQcm9taXNlPElBcHBsaWNhdGlvbj4ge1xuICAgIGxldCBpZCA9IHRoaXMuYXBwSWQ7XG4gICAgaWYgKCFpZCkge1xuICAgICAgY29uc3QgeyBpZDogcm91dGVJZCB9ID0gdGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5wYXJlbnQuZGF0YS5jb250ZXh0RGF0YTtcbiAgICAgIGlkID0gcm91dGVJZDtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgdGhpcy5hcHAgPSBhd2FpdCB0aGlzLmVjb3N5c3RlbVNlcnZpY2UuZ2V0QXBwbGljYXRpb24oaWQpO1xuICAgIH0gY2F0Y2ggKGVyKSB7XG4gICAgICBpZiAoZXIpIHtcbiAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuYWRkU2VydmVyRmFpbHVyZShlcik7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmFwcDtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0QXBwbGljYXRpb25NRkV4cG9ydHMoYXBwOiBJQXBwbGljYXRpb24pIHtcbiAgICBjb25zdCBleHBvcnRzID0gdGhpcy5wbHVnaW5zU2VydmljZS5nZXRNRkV4cG9ydHMoYXBwKTtcbiAgICB0aGlzLmV4cG9ydGVkUGx1Z2lucyQubmV4dChleHBvcnRzKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0QXBwbGljYXRpb25NRlJlbW90ZXMoYXBwOiBJQXBwbGljYXRpb24pIHtcbiAgICBsZXQgYXBwQ29uZmlnUmVtb3RlcyA9IHRoaXMucGx1Z2luc1NlcnZpY2UuZ2V0TUZSZW1vdGVzKGFwcCk7XG5cbiAgICBpZiAoIWFwcENvbmZpZ1JlbW90ZXMpIHtcbiAgICAgIGFwcENvbmZpZ1JlbW90ZXMgPSBhd2FpdCB0aGlzLnBsdWdpbnNTZXJ2aWNlLnNldEluaXRpYWxSZW1vdGVzKGFwcCk7XG4gICAgICB0aGlzLmFwcCA9IGF3YWl0IHRoaXMuZ2V0QXBwbGljYXRpb25NTygpO1xuICAgIH1cbiAgICB0aGlzLnJlbW90ZVBsdWdpbnMkLm5leHQoYXBwQ29uZmlnUmVtb3RlcyB8fCB7fSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGdldEFsbEFwcGxpY2F0aW9uc01GRXhwb3J0cygpIHtcbiAgICBjb25zdCBhbGxBcHBzTUZFeHBvcnRzID0gYXdhaXQgdGhpcy5wbHVnaW5zU2VydmljZS5nZXRBbGxNRkV4cG9ydHModHJ1ZSk7XG4gICAgdGhpcy5hbGxBdmFpbGFibGVQbHVnaW5zJC5uZXh0KGFsbEFwcHNNRkV4cG9ydHMpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRJbnN0YWxsTW9kYWxJbml0U3RhdGUoKTogYW55IHtcbiAgICByZXR1cm4ge1xuICAgICAgcGx1Z2lucyQ6IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICB0aGlzLmFsbEF2YWlsYWJsZVBsdWdpbnMkLFxuICAgICAgICB0aGlzLmluc3RhbGxlZFBsdWdpbnMkLnBpcGUobWFwKHBsdWdpbnMgPT4gcGx1Z2lucy5tYXAocCA9PiBwLmlkKSkpLFxuICAgICAgICB0aGlzLmV4cG9ydGVkUGx1Z2lucyQucGlwZShtYXAocGx1Z2lucyA9PiBwbHVnaW5zLm1hcChwID0+IHAuaWQpKSlcbiAgICAgIF0pLnBpcGUoXG4gICAgICAgIG1hcCgoW2FsbFBsdWdpbnMsIGluc3RhbGxlZFBsdWdpbnMsIGV4cG9ydGVkUGx1Z2luTmFtZXNdKSA9PiB7XG4gICAgICAgICAgY29uc3QgcGx1Z2lucyA9IFtdO1xuICAgICAgICAgIGFsbFBsdWdpbnNcbiAgICAgICAgICAgIC5maWx0ZXIocCA9PiAhZXhwb3J0ZWRQbHVnaW5OYW1lcy5pbmNsdWRlcyhwLmlkKSlcbiAgICAgICAgICAgIC5tYXAocCA9PiBwbHVnaW5zLnB1c2goeyAuLi5wLCBpbnN0YWxsZWQ6ICEhaW5zdGFsbGVkUGx1Z2lucy5pbmNsdWRlcyhwLmlkKSB9KSk7XG4gICAgICAgICAgcmV0dXJuIHBsdWdpbnM7XG4gICAgICAgIH0pLFxuICAgICAgICBzaGFyZVJlcGxheSgxKVxuICAgICAgKVxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGNvbnZlcnRJbnN0YWxsZWRSZW1vdGVzVG9JZHMocmVtb3RlczogQXBwbGljYXRpb25SZW1vdGVQbHVnaW5zKTogc3RyaW5nW10ge1xuICAgIGlmICghcmVtb3Rlcykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBpbXBvcnRDb250ZXh0UGF0aHMgPSBPYmplY3Qua2V5cyhyZW1vdGVzKTtcbiAgICBjb25zdCBwbHVnaW5zID0gW107XG4gICAgaW1wb3J0Q29udGV4dFBhdGhzLmZvckVhY2goY29udGV4dFBhdGggPT4ge1xuICAgICAgY29uc3QgbW9kdWxlTmFtZXMgPSByZW1vdGVzW2NvbnRleHRQYXRoXTtcbiAgICAgIHBsdWdpbnMucHVzaCguLi5tb2R1bGVOYW1lcy5tYXAobW9kdWxlID0+IHRoaXMuY3JlYXRlSWQoY29udGV4dFBhdGgsIG1vZHVsZSkpKTtcbiAgICB9KTtcbiAgICByZXR1cm4gcGx1Z2lucztcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlSWQoY29udGV4dFBhdGg6IHN0cmluZywgcGx1Z2luTW9kdWxlTmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7Y29udGV4dFBhdGh9LyR7cGx1Z2luTW9kdWxlTmFtZX1gO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRPcnBoYW5lZFBsdWdpbnMoXG4gICAgb3JwaGFuZWRQbHVnaW5JZHM6IHN0cmluZ1tdLFxuICAgIGFsbFBsdWdpbnM6IEFwcGxpY2F0aW9uUGx1Z2luW11cbiAgKTogQXBwbGljYXRpb25QbHVnaW5bXSB7XG4gICAgY29uc3Qgb3JwaGFuZWRQbHVnaW5zOiBBcHBsaWNhdGlvblBsdWdpbltdID0gb3JwaGFuZWRQbHVnaW5JZHMubWFwKHAgPT4gdGhpcy5leHRyYWN0RGV0YWlscyhwKSk7XG4gICAgY29uc3Qgb3JwaGFuZWRQbHVnaW5zVXBkYXRlZCA9IG9ycGhhbmVkUGx1Z2lucy5tYXAocCA9PiB7XG4gICAgICBjb25zdCBwbHVnaW5JbkRpZmZlcmVudFZlcnNpb24gPSBhbGxQbHVnaW5zLmZpbmQoXG4gICAgICAgIHRtcCA9PiB0bXAuY29udGV4dFBhdGggPT09IHAuY29udGV4dFBhdGggJiYgdG1wLm1vZHVsZSA9PT0gcC5tb2R1bGVcbiAgICAgICk7XG4gICAgICBpZiAocGx1Z2luSW5EaWZmZXJlbnRWZXJzaW9uKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4ucGx1Z2luSW5EaWZmZXJlbnRWZXJzaW9uLFxuICAgICAgICAgIHZlcnNpb246IHAudmVyc2lvbiB8fCBwbHVnaW5JbkRpZmZlcmVudFZlcnNpb24udmVyc2lvbixcbiAgICAgICAgICBpZDogcC5pZCxcbiAgICAgICAgICBzdGF0dXM6IHAudmVyc2lvbiA/IEFwcGxpY2F0aW9uUGx1Z2luU3RhdHVzLk9VVERBVEVEIDogQXBwbGljYXRpb25QbHVnaW5TdGF0dXMuTEFURVNUXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICByZXR1cm4gcDtcbiAgICB9KTtcblxuICAgIHJldHVybiBvcnBoYW5lZFBsdWdpbnNVcGRhdGVkO1xuICB9XG5cbiAgcHJpdmF0ZSBzcGxpdE9ycGhhbmVkUGx1Z2luc0ludG9PcnBoYW5lZEFuZFJldm9rZWRQbHVnaW5zKFxuICAgIGFsbFBsdWdpbnM6IEFwcGxpY2F0aW9uUGx1Z2luW10sXG4gICAgb3JwaGFuZWRQbHVnaW5zOiBBcHBsaWNhdGlvblBsdWdpbltdXG4gICkge1xuICAgIGNvbnN0IHJldm9rZWRQbHVnaW5zID0gbmV3IEFycmF5PEFwcGxpY2F0aW9uUGx1Z2luPigpO1xuICAgIGNvbnN0IGFjdHVhbGx5T3JwaGFuZWRQbHVnaW5zID0gbmV3IEFycmF5PEFwcGxpY2F0aW9uUGx1Z2luPigpO1xuXG4gICAgZm9yIChjb25zdCBwbHVnaW4gb2Ygb3JwaGFuZWRQbHVnaW5zKSB7XG4gICAgICBjb25zdCBmb3VuZEZhbWlsaWFyUGx1Z2luID0gYWxsUGx1Z2lucy5maW5kKFxuICAgICAgICBwbHVnaW4xID0+IHBsdWdpbi5jb250ZXh0UGF0aCA9PT0gcGx1Z2luMS5jb250ZXh0UGF0aCAmJiBwbHVnaW4ubW9kdWxlID09PSBwbHVnaW4xLm1vZHVsZVxuICAgICAgKTtcbiAgICAgIGlmIChmb3VuZEZhbWlsaWFyUGx1Z2luKSB7XG4gICAgICAgIHJldm9rZWRQbHVnaW5zLnB1c2goXG4gICAgICAgICAgT2JqZWN0LmFzc2lnbih7fSwgZm91bmRGYW1pbGlhclBsdWdpbiwgcGx1Z2luLCB7XG4gICAgICAgICAgICBzdGF0dXM6IEFwcGxpY2F0aW9uUGx1Z2luU3RhdHVzLlJFVk9LRURcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYWN0dWFsbHlPcnBoYW5lZFBsdWdpbnMucHVzaChwbHVnaW4pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7IHJldm9rZWRQbHVnaW5zLCBhY3R1YWxseU9ycGhhbmVkUGx1Z2lucyB9O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRJbnN0YWxsZWRQbHVnaW5zKFxuICAgIGFsbFBsdWdpbnM6IEFwcGxpY2F0aW9uUGx1Z2luW10sXG4gICAgcmVtb3RlUGx1Z2luczogc3RyaW5nW11cbiAgKTogQXBwbGljYXRpb25QbHVnaW5bXSB7XG4gICAgY29uc3QgYXZhaWxhYmxlUGx1Z2lucyA9IGFsbFBsdWdpbnNcbiAgICAgIC5maWx0ZXIocGx1Z2luID0+IHJlbW90ZVBsdWdpbnMuaW5jbHVkZXMocGx1Z2luLmlkKSlcbiAgICAgIC5tYXAocGx1Z2luID0+XG4gICAgICAgIE9iamVjdC5hc3NpZ24ocGx1Z2luLCB7XG4gICAgICAgICAgc3RhdHVzOiBwbHVnaW4udGFncz8uaW5jbHVkZXMoJ2xhdGVzdCcpXG4gICAgICAgICAgICA/IEFwcGxpY2F0aW9uUGx1Z2luU3RhdHVzLkxBVEVTVFxuICAgICAgICAgICAgOiBBcHBsaWNhdGlvblBsdWdpblN0YXR1cy5PVVREQVRFRFxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICBjb25zdCBvcnBoYW5lZFBsdWdpbklkcyA9IHJlbW90ZVBsdWdpbnMuZmlsdGVyKFxuICAgICAgciA9PiAhYXZhaWxhYmxlUGx1Z2lucy5maW5kKHBsdWdpbiA9PiBwbHVnaW4uaWQgPT09IHIpXG4gICAgKTtcbiAgICBjb25zdCBvcnBoYW5lZFBsdWdpbnM6IEFwcGxpY2F0aW9uUGx1Z2luW10gPSB0aGlzLmdldE9ycGhhbmVkUGx1Z2lucyhcbiAgICAgIG9ycGhhbmVkUGx1Z2luSWRzLFxuICAgICAgYWxsUGx1Z2luc1xuICAgICk7XG5cbiAgICBjb25zdCB7IGFjdHVhbGx5T3JwaGFuZWRQbHVnaW5zLCByZXZva2VkUGx1Z2lucyB9ID1cbiAgICAgIHRoaXMuc3BsaXRPcnBoYW5lZFBsdWdpbnNJbnRvT3JwaGFuZWRBbmRSZXZva2VkUGx1Z2lucyhhbGxQbHVnaW5zLCBvcnBoYW5lZFBsdWdpbnMpO1xuXG4gICAgcmV0dXJuIFsuLi5hdmFpbGFibGVQbHVnaW5zLCAuLi5yZXZva2VkUGx1Z2lucywgLi4uYWN0dWFsbHlPcnBoYW5lZFBsdWdpbnNdO1xuICB9XG5cbiAgcHJpdmF0ZSBleHRyYWN0RGV0YWlscyhwbHVnaW5JZDogc3RyaW5nKTogQXBwbGljYXRpb25QbHVnaW4ge1xuICAgIGNvbnN0IGNvbnRleHRQYXRoID0gdGhpcy5nZXRTdHJpbmdNYXRjaGluZ1JlZ2V4KHBsdWdpbklkLCAvXlteQF0qKEB8XFwvKS8pO1xuICAgIGNvbnN0IHZlcnNpb24gPSB0aGlzLmdldFN0cmluZ01hdGNoaW5nUmVnZXgocGx1Z2luSWQsIC9ALipcXC8vKTtcbiAgICBjb25zdCBtb2R1bGUgPSB0aGlzLmdldFN0cmluZ01hdGNoaW5nUmVnZXgocGx1Z2luSWQsIC9cXC8uKiQvKTtcbiAgICBjb25zdCB1bmF2YWlsYWJsZSA9IGdldHRleHQoJ3VuYXZhaWxhYmxlYHBsdWdpbmAnKTtcbiAgICByZXR1cm4ge1xuICAgICAgaWQ6IHBsdWdpbklkLFxuICAgICAgcGF0aDogJycsXG4gICAgICBtb2R1bGUsXG4gICAgICBuYW1lOiBtb2R1bGUsXG4gICAgICBzdGF0dXM6IEFwcGxpY2F0aW9uUGx1Z2luU3RhdHVzLk9SUEhBTkVELFxuICAgICAgY29udGV4dFBhdGg6IGNvbnRleHRQYXRoLFxuICAgICAgZGVzY3JpcHRpb246IHVuYXZhaWxhYmxlLFxuICAgICAgdmVyc2lvbjogdmVyc2lvblxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGdldFN0cmluZ01hdGNoaW5nUmVnZXgoXG4gICAgc3RyOiBzdHJpbmcsXG4gICAgcmVnZXg6IHsgW1N5bWJvbC5tYXRjaF0oc3RyaW5nOiBzdHJpbmcpOiBSZWdFeHBNYXRjaEFycmF5IHwgbnVsbCB9XG4gICk6IHN0cmluZyB7XG4gICAgY29uc3QgbWF0Y2hlcyA9IHN0ci5tYXRjaChyZWdleCk7XG4gICAgY29uc3QgdmFsdWUgPSBtYXRjaGVzID8gbWF0Y2hlc1swXSA6ICcnO1xuXG4gICAgcmV0dXJuIHZhbHVlLnJlcGxhY2UoLyhAfFxcLykvZywgJycpO1xuICB9XG59XG4iLCI8Yzh5LXRpdGxlPnt7IGFwcCB8IGh1bWFuaXplQXBwTmFtZSB8IGFzeW5jIH19PC9jOHktdGl0bGU+XG5cbjxjOHktYnJlYWRjcnVtYj5cbiAgPGM4eS1icmVhZGNydW1iLWl0ZW0gW2ljb25dPVwiJ2M4eS1hdG9tJ1wiIFtsYWJlbF09XCInRWNvc3lzdGVtJyB8IHRyYW5zbGF0ZVwiPjwvYzh5LWJyZWFkY3J1bWItaXRlbT5cbiAgPGM4eS1icmVhZGNydW1iLWl0ZW1cbiAgICBbaWNvbl09XCInYzh5LW1vZHVsZXMnXCJcbiAgICBbbGFiZWxdPVwiJ0FwcGxpY2F0aW9ucycgfCB0cmFuc2xhdGVcIlxuICAgIFtwYXRoXT1cIidlY29zeXN0ZW0vYXBwbGljYXRpb25zJ1wiXG4gID48L2M4eS1icmVhZGNydW1iLWl0ZW0+XG4gIDxjOHktYnJlYWRjcnVtYi1pdGVtXG4gICAgW2ljb25dPVwiJ2M4eS1tb2R1bGVzJ1wiXG4gICAgW2xhYmVsXT1cIidBbGwgYXBwbGljYXRpb25zJyB8IHRyYW5zbGF0ZVwiXG4gICAgW3BhdGhdPVwiJ2Vjb3N5c3RlbS9hcHBsaWNhdGlvbnMnXCJcbiAgPjwvYzh5LWJyZWFkY3J1bWItaXRlbT5cbiAgPGM4eS1icmVhZGNydW1iLWl0ZW0gW2xhYmVsXT1cImFwcCB8IGh1bWFuaXplQXBwTmFtZSB8IGFzeW5jXCI+PC9jOHktYnJlYWRjcnVtYi1pdGVtPlxuICA8Yzh5LWJyZWFkY3J1bWItaXRlbSBbbGFiZWxdPVwiJ1BsdWdpbnMnIHwgdHJhbnNsYXRlXCI+PC9jOHktYnJlYWRjcnVtYi1pdGVtPlxuPC9jOHktYnJlYWRjcnVtYj5cblxuPGM4eS1hY3Rpb24tYmFyLWl0ZW0gW3BsYWNlbWVudF09XCIncmlnaHQnXCI+XG4gIDxidXR0b25cbiAgICAoY2xpY2spPVwiaW5zdGFsbFBsdWdpbnMoKVwiXG4gICAgW25nQ2xhc3NdPVwieyAnYnRuLXBlbmRpbmcnOiBpc0xvYWRpbmcgfVwiXG4gICAgY2xhc3M9XCJidG4gYnRuLWxpbmtcIlxuICAgIHRpdGxlPVwie3sgJ0luc3RhbGwgcGx1Z2lucycgfCB0cmFuc2xhdGUgfX1cIlxuICA+XG4gICAgPGkgYzh5SWNvbj1cInBsdXMtY2lyY2xlXCI+PC9pPlxuICAgIHt7ICdJbnN0YWxsIHBsdWdpbnMnIHwgdHJhbnNsYXRlIH19XG4gIDwvYnV0dG9uPlxuPC9jOHktYWN0aW9uLWJhci1pdGVtPlxuXG48bmctY29udGFpbmVyICpuZ0lmPVwib3JwaGFuZWRQbHVnaW5zJCB8IGFzeW5jIGFzIG9ycGhhbmVkUGx1Z2luc1wiPlxuICA8Yzh5LWFjdGlvbi1iYXItaXRlbSAqbmdJZj1cIm9ycGhhbmVkUGx1Z2lucz8ubGVuZ3RoXCIgW3BsYWNlbWVudF09XCIncmlnaHQnXCI+XG4gICAgPGJ1dHRvblxuICAgICAgKGNsaWNrKT1cImNsZWFudXBPcnBoYW5lZFBsdWdpbnMob3JwaGFuZWRQbHVnaW5zKVwiXG4gICAgICBbbmdDbGFzc109XCJ7ICdidG4tcGVuZGluZyc6IGlzTG9hZGluZyB9XCJcbiAgICAgIGNsYXNzPVwiYnRuIGJ0bi1saW5rXCJcbiAgICAgIHRpdGxlPVwie3sgJ0NsZWFuIHVwIG9ycGhhbmVkIHBsdWdpbnMnIHwgdHJhbnNsYXRlIH19XCJcbiAgICA+XG4gICAgICA8aSBjOHlJY29uPVwiZXJhc2VcIj48L2k+XG4gICAgICB7eyAnQ2xlYW4gdXAgb3JwaGFuZWQgcGx1Z2lucycgfCB0cmFuc2xhdGUgfX1cbiAgICA8L2J1dHRvbj5cbiAgPC9jOHktYWN0aW9uLWJhci1pdGVtPlxuPC9uZy1jb250YWluZXI+XG5cbjxkaXYgY2xhc3M9XCJjb250ZW50LWZ1bGxwYWdlIGQtZmxleCBkLWNvbCBib3JkZXItdG9wXCI+XG4gIDxjOHktZGF0YS1ncmlkXG4gICAgW3RpdGxlXT1cInRpdGxlXCJcbiAgICBbbG9hZE1vcmVJdGVtc0xhYmVsXT1cImxvYWRNb3JlSXRlbXNMYWJlbFwiXG4gICAgW2xvYWRpbmdJdGVtc0xhYmVsXT1cImxvYWRpbmdJdGVtc0xhYmVsXCJcbiAgICBbZGlzcGxheU9wdGlvbnNdPVwiZGlzcGxheU9wdGlvbnNcIlxuICAgIFtjb2x1bW5zXT1cImNvbHVtbnNcIlxuICAgIFtyb3dzXT1cImluc3RhbGxlZFBsdWdpbnMkIHwgYXN5bmNcIlxuICAgIFtwYWdpbmF0aW9uXT1cInBhZ2luYXRpb25cIlxuICAgIFtzZWxlY3RhYmxlXT1cInRydWVcIlxuICAgIFthY3Rpb25Db250cm9sc109XCJhY3Rpb25Db250cm9sc1wiXG4gICAgW2J1bGtBY3Rpb25Db250cm9sc109XCJidWxrQWN0aW9uQ29udHJvbHNcIlxuICAgIFtoZWFkZXJBY3Rpb25Db250cm9sc109XCJoZWFkZXJBY3Rpb25Db250cm9sc1wiXG4gICAgKG9uUmVsb2FkKT1cInJlZnJlc2goKVwiXG4gICAgY2xhc3M9XCJkLWNvbnRlbnRzXCJcbiAgPlxuICAgIDwhLS0gTm8gc2VhcmNoL2ZpbHRlcmVkIHJlc3VsdHMgZW1wdHkgc3RhdGUgLS0+XG4gICAgPGM4eS11aS1lbXB0eS1zdGF0ZVxuICAgICAgKm5nSWY9XCIoaW5zdGFsbGVkUGx1Z2lucyQgfCBhc3luYyk/Lmxlbmd0aFwiXG4gICAgICBbaWNvbl09XCInc2VhcmNoJ1wiXG4gICAgICBbdGl0bGVdPVwiJ05vIHBsdWdpbnMgdG8gZGlzcGxheS4nIHwgdHJhbnNsYXRlXCJcbiAgICAgIFtzdWJ0aXRsZV09XCInUmVmaW5lIHlvdXIgc2VhcmNoIHRlcm1zIG9yIGNoZWNrIHlvdXIgc3BlbGxpbmcuJyB8IHRyYW5zbGF0ZVwiXG4gICAgICBbaG9yaXpvbnRhbF09XCJ0cnVlXCJcbiAgICA+XG4gICAgPC9jOHktdWktZW1wdHktc3RhdGU+XG4gICAgPCEtLSBObyBpbnN0YWxsZWQgcGx1Z2lucyBlbXB0eSBzdGF0ZSAtLT5cbiAgICA8Yzh5LXVpLWVtcHR5LXN0YXRlXG4gICAgICAqbmdJZj1cIiEoaW5zdGFsbGVkUGx1Z2lucyQgfCBhc3luYyk/Lmxlbmd0aCAmJiAhaXNMb2FkaW5nXCJcbiAgICAgIFtpY29uXT1cIidwbHVnaW4nXCJcbiAgICAgIFt0aXRsZV09XCInTm8gcGx1Z2lucyBpbnN0YWxsZWQuJyB8IHRyYW5zbGF0ZVwiXG4gICAgICBbc3VidGl0bGVdPVwiJ1RoaXMgYXBwbGljYXRpb24gZG9lc25cXCd0IGhhdmUgYW55IHBsdWdpbi4gQ2xpY2sgYmVsb3cgdG8gaW5zdGFsbC4nIHwgdHJhbnNsYXRlXCJcbiAgICAgIFtob3Jpem9udGFsXT1cInRydWVcIlxuICAgID5cbiAgICAgIDxkaXYgY2xhc3M9XCJmaXQtdyBwLXQtMTZcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGM4eVByb2R1Y3RFeHBlcmllbmNlXG4gICAgICAgICAgW2FjdGlvbk5hbWVdPVwiUFJPRFVDVF9FWFBFUklFTkNFLkFQUExJQ0FUSU9OUy5FVkVOVFMuSU5TVEFMTEVEX1BMVUdJTlNcIlxuICAgICAgICAgIFthY3Rpb25EYXRhXT1cIntcbiAgICAgICAgICAgIGNvbXBvbmVudDogUFJPRFVDVF9FWFBFUklFTkNFLkFQUExJQ0FUSU9OUy5DT01QT05FTlRTLkFQUExJQ0FUSU9OX1BMVUdJTlMsXG4gICAgICAgICAgICBhY3Rpb246IFBST0RVQ1RfRVhQRVJJRU5DRS5BUFBMSUNBVElPTlMuQUNUSU9OUy5JTlNUQUxMX1BMVUdJTlMsXG4gICAgICAgICAgICB1cmw6IENVUlJFTlRfTE9DQVRJT05cbiAgICAgICAgICB9XCJcbiAgICAgICAgICAoY2xpY2spPVwiaW5zdGFsbFBsdWdpbnMoKVwiXG4gICAgICAgICAgW25nQ2xhc3NdPVwieyAnYnRuLXBlbmRpbmcnOiBpc0xvYWRpbmcgfVwiXG4gICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLXNtXCJcbiAgICAgICAgICB0aXRsZT1cInt7ICdJbnN0YWxsIHBsdWdpbnMnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICB0cmFuc2xhdGVcbiAgICAgICAgPlxuICAgICAgICAgIEluc3RhbGwgcGx1Z2luc1xuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvYzh5LXVpLWVtcHR5LXN0YXRlPlxuICA8L2M4eS1kYXRhLWdyaWQ+XG48L2Rpdj5cbiJdfQ==
|
|
413
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24tcGx1Z2lucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9lY29zeXN0ZW0vYXBwbGljYXRpb24tcGx1Z2lucy9hcHBsaWNhdGlvbi1wbHVnaW5zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL2Vjb3N5c3RlbS9hcHBsaWNhdGlvbi1wbHVnaW5zL2FwcGxpY2F0aW9uLXBsdWdpbnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFakQsT0FBTyxFQUVMLFlBQVksRUFFWix1QkFBdUIsRUFHdkIsaUJBQWlCLEVBRWpCLGdCQUFnQixFQUVoQixZQUFZLEVBRVosY0FBYyxFQUNkLE9BQU8sRUFDUixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzVGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZUFBZSxFQUFjLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0UsT0FBTyxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNoRyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUs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LE1BQU07WUFDWixNQUFNLEVBQUUsdUJBQXVCLENBQUMsUUFBUTtZQUN4QyxXQUFXLEVBQUUsV0FBVztZQUN4QixXQUFXLEVBQUUsV0FBVztZQUN4QixPQUFPLEVBQUUsT0FBTztTQUNqQixDQUFDO0lBQ0osQ0FBQztJQUVPLHNCQUFzQixDQUM1QixHQUFXLEVBQ1gsS0FBa0U7UUFFbEUsTUFBTSxPQUFPLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqQyxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBRXhDLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDdEMsQ0FBQzs7d0hBaGVVLDJCQUEyQjs0R0FBM0IsMkJBQTJCLDZIQUszQixpQkFBaUIsZ0RDdEM5Qix5aUhBa0dBOzJGRGpFYSwyQkFBMkI7a0JBSnZDLFNBQVM7K0JBQ0UsaUJBQWlCO2tUQU9sQixLQUFLO3NCQUFiLEtBQUs7Z0JBRU4sUUFBUTtzQkFEUCxTQUFTO3VCQUFDLGlCQUFpQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uUmVtb3RlUGx1Z2lucywgSUFwcGxpY2F0aW9uIH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHtcbiAgQWN0aW9uQ29udHJvbCxcbiAgQWxlcnRTZXJ2aWNlLFxuICBBcHBsaWNhdGlvblBsdWdpbixcbiAgQXBwbGljYXRpb25QbHVnaW5TdGF0dXMsXG4gIEJ1bGtBY3Rpb25Db250cm9sLFxuICBDb2x1bW4sXG4gIERhdGFHcmlkQ29tcG9uZW50LFxuICBEaXNwbGF5T3B0aW9ucyxcbiAgR2FpbnNpZ2h0U2VydmljZSxcbiAgSGVhZGVyQWN0aW9uQ29udHJvbCxcbiAgTW9kYWxTZXJ2aWNlLFxuICBQYWdpbmF0aW9uLFxuICBQbHVnaW5zU2VydmljZSxcbiAgZ2V0dGV4dFxufSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IEVjb3N5c3RlbVNlcnZpY2UsIFBST0RVQ1RfRVhQRVJJRU5DRSB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvZWNvc3lzdGVtL3NoYXJlZCc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBCc01vZGFsU2VydmljZSB9IGZyb20gJ25neC1ib290c3RyYXAvbW9kYWwnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0LCBjb21iaW5lTGF0ZXN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIHNoYXJlUmVwbGF5IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgSW5zdGFsbFBsdWdpbkNvbXBvbmVudCB9IGZyb20gJy4vaW5zdGFsbC1wbHVnaW4uY29tcG9uZW50JztcbmltcG9ydCB7IExhYmVsQ2VsbFJlbmRlcmVyQ29tcG9uZW50IH0gZnJvbSAnLi9sYWJlbC1jZWxsLXJlbmRlcmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBPcnBoYW5lZFN0YXR1c0NlbGxSZW5kZXJlckNvbXBvbmVudCB9IGZyb20gJy4vb3JwaGFuZWQtc3RhdHVzLWNlbGwtcmVuZGVyZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFVwZGF0ZVBsdWdpbk9mQXBwQ29tcG9uZW50IH0gZnJvbSAnLi91cGRhdGUtcGx1Z2luLW9mLWFwcC91cGRhdGUtcGx1Z2luLW9mLWFwcC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktYXBwLXBsdWdpbnMnLFxuICB0ZW1wbGF0ZVVybDogJy4vYXBwbGljYXRpb24tcGx1Z2lucy5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgQXBwbGljYXRpb25QbHVnaW5zQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBQUk9EVUNUX0VYUEVSSUVOQ0UgPSBQUk9EVUNUX0VYUEVSSUVOQ0U7XG4gIENVUlJFTlRfTE9DQVRJT04gPSBsb2NhdGlvbi5ocmVmO1xuXG4gIEBJbnB1dCgpIGFwcElkOiBzdHJpbmcgfCBudW1iZXI7XG4gIEBWaWV3Q2hpbGQoRGF0YUdyaWRDb21wb25lbnQsIHsgc3RhdGljOiBmYWxzZSB9KVxuICBkYXRhR3JpZDogRGF0YUdyaWRDb21wb25lbnQ7XG5cbiAgZXhwb3J0ZWRQbHVnaW5zJDogQmVoYXZpb3JTdWJqZWN0PEFwcGxpY2F0aW9uUGx1Z2luW10+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChbXSk7XG4gIHJlbW90ZVBsdWdpbnMkOiBCZWhhdmlvclN1YmplY3Q8QXBwbGljYXRpb25SZW1vdGVQbHVnaW5zPiA9IG5ldyBCZWhhdmlvclN1YmplY3Qoe30pO1xuICBhbGxBdmFpbGFibGVQbHVnaW5zJDogQmVoYXZpb3JTdWJqZWN0PEFwcGxpY2F0aW9uUGx1Z2luW10+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChbXSk7XG5cbiAgaW5zdGFsbGVkUGx1Z2lucyQ6IE9ic2VydmFibGU8QXBwbGljYXRpb25QbHVnaW5bXT4gPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLnJlbW90ZVBsdWdpbnMkLnBpcGUobWFwKHJlbW90ZXMgPT4gdGhpcy5jb252ZXJ0SW5zdGFsbGVkUmVtb3Rlc1RvSWRzKHJlbW90ZXMpKSksXG4gICAgdGhpcy5hbGxBdmFpbGFibGVQbHVnaW5zJFxuICBdKS5waXBlKFxuICAgIG1hcCgoW3JlbW90ZVBsdWdpbnMsIGFsbFBsdWdpbnNdKSA9PiB0aGlzLmdldEluc3RhbGxlZFBsdWdpbnMoYWxsUGx1Z2lucywgcmVtb3RlUGx1Z2lucykpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG4gIG9ycGhhbmVkUGx1Z2lucyQgPSB0aGlzLmluc3RhbGxlZFBsdWdpbnMkLnBpcGUoXG4gICAgbWFwKHBsdWdpbnMgPT4gcGx1Z2lucy5maWx0ZXIocCA9PiBwLnN0YXR1cyA9PT0gQXBwbGljYXRpb25QbHVnaW5TdGF0dXMuT1JQSEFORUQpKVxuICApO1xuICBhcHA6IElBcHBsaWNhdGlvbjtcbiAgaXNMb2FkaW5nOiBib29sZWFuO1xuICB0aXRsZTogc3RyaW5nID0gZ2V0dGV4dCgnSW5zdGFsbGVkIHBsdWdpbnMnKTtcbiAgbG9hZE1vcmVJdGVtc0xhYmVsOiBzdHJpbmcgPSBnZXR0ZXh0KCdMb2FkIG1vcmUgcGFja2FnZXMnKTtcbiAgbG9hZGluZ0l0ZW1zTGFiZWw6IHN0cmluZyA9IGdldHRleHQoJ0xvYWRpbmcgcGFja2FnZXPigKYnKTtcbiAgYWN0aW9uQ29udHJvbHM6IEFjdGlvbkNvbnRyb2xbXSA9IHRoaXMuZ2V0QWN0aW9uQ29udHJvbHMoKTtcbiAgYnVsa0FjdGlvbkNvbnRyb2xzOiBCdWxrQWN0aW9uQ29udHJvbFtdID0gdGhpcy5nZXRCdWxrQWN0aW9uQ29udHJvbHMoKTtcbiAgaGVhZGVyQWN0aW9uQ29udHJvbHM6IEhlYWRlckFjdGlvbkNvbnRyb2xbXSA9IFtdO1xuICBwYWdpbmF0aW9uOiBQYWdpbmF0aW9uID0ge1xuICAgIHBhZ2VTaXplOiAxMCxcbiAgICBjdXJyZW50UGFnZTogMVxuICB9O1xuICBkaXNwbGF5T3B0aW9uczogRGlzcGxheU9wdGlvbnMgPSB7XG4gICAgYm9yZGVyZWQ6IGZhbHNlLFxuICAgIHN0cmlwZWQ6IHRydWUsXG4gICAgZmlsdGVyOiB0cnVlLFxuICAgIGdyaWRIZWFkZXI6IHRydWVcbiAgfTtcbiAgY29sdW1uczogQ29sdW1uW10gPSBbXG4gICAge1xuICAgICAgbmFtZTogJ25hbWUnLFxuICAgICAgaGVhZGVyOiBnZXR0ZXh0KCdQbHVnaW4gbmFtZScpLFxuICAgICAgcGF0aDogJ25hbWUnLFxuICAgICAgZmlsdGVyYWJsZTogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogJ1ZlcnNpb24nLFxuICAgICAgaGVhZGVyOiBnZXR0ZXh0KCdWZXJzaW9uJyksXG4gICAgICBwYXRoOiAndmVyc2lvbicsXG4gICAgICBmaWx0ZXJhYmxlOiBmYWxzZVxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogJ2Rlc2NyaXB0aW9uJyxcbiAgICAgIGhlYWRlcjogZ2V0dGV4dCgnRGVzY3JpcHRpb24nKSxcbiAgICAgIHBhdGg6ICdkZXNjcmlwdGlvbicsXG4gICAgICBmaWx0ZXJhYmxlOiBmYWxzZSxcbiAgICAgIGNlbGxDU1NDbGFzc05hbWU6ICdzbWFsbCdcbiAgICB9LFxuICAgIHtcbiAgICAgIG5hbWU6ICdjb250ZXh0UGF0aCcsXG4gICAgICBoZWFkZXI6IGdldHRleHQoJ1NvdXJjZScpLFxuICAgICAgcGF0aDogJ2NvbnRleHRQYXRoJyxcbiAgICAgIGZpbHRlcmFibGU6IGZhbHNlLFxuICAgICAgY2VsbFJlbmRlcmVyQ29tcG9uZW50OiBMYWJlbENlbGxSZW5kZXJlckNvbXBvbmVudFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogJ3N0YXR1cycsXG4gICAgICBoZWFkZXI6IGdldHRleHQoJ1N0YXR1cycpLFxuICAgICAgcGF0aDogJ3N0YXR1cycsXG4gICAgICBmaWx0ZXJhYmxlOiBmYWxzZSxcbiAgICAgIGNlbGxSZW5kZXJlckNvbXBvbmVudDogT3JwaGFuZWRTdGF0dXNDZWxsUmVuZGVyZXJDb21wb25lbnRcbiAgICB9XG4gIF07XG4gIHByaXZhdGUgZGVzdHJveSQ6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSBlY29zeXN0ZW1TZXJ2aWNlOiBFY29zeXN0ZW1TZXJ2aWNlLFxuICAgIHByaXZhdGUgYnNNb2RhbFNlcnZpY2U6IEJzTW9kYWxTZXJ2aWNlLFxuICAgIHByaXZhdGUgbW9kYWw6IE1vZGFsU2VydmljZSxcbiAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwbHVnaW5zU2VydmljZTogUGx1Z2luc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZSxcbiAgICBwcml2YXRlIGdhaW5zaWdodFNlcnZpY2U6IEdhaW5zaWdodFNlcnZpY2VcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuYWRkSW5zdGFsbEJ1dHRvblRvSGVhZGVyQWN0aW9uQ29udHJvbHMoKTtcbiAgICB0aGlzLmxvYWREYXRhKCk7XG4gIH1cblxuICBhc3luYyBsb2FkRGF0YSgpIHtcbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG4gICAgYXdhaXQgdGhpcy5nZXRBcHBsaWNhdGlvbk1PKCk7XG4gICAgYXdhaXQgdGhpcy5nZXRBcHBsaWNhdGlvbk1GRXhwb3J0cyh0aGlzLmFwcCk7XG4gICAgYXdhaXQgdGhpcy5nZXRBcHBsaWNhdGlvbk1GUmVtb3Rlcyh0aGlzLmFwcCk7XG4gICAgYXdhaXQgdGhpcy5nZXRBbGxBcHBsaWNhdGlvbnNNRkV4cG9ydHMoKTtcbiAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICB9XG5cbiAgYXN5bmMgaW5zdGFsbFBsdWdpbnMoKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHBsdWdpbnNUb0FkZDogc3RyaW5nW10gPSAoYXdhaXQgKFxuICAgICAgICB0aGlzLmJzTW9kYWxTZXJ2aWNlLnNob3coSW5zdGFsbFBsdWdpbkNvbXBvbmVudCwge1xuICAgICAgICAgIGNsYXNzOiAnbW9kYWwtc20nLFxuICAgICAgICAgIGFyaWFEZXNjcmliZWRieTogJ21vZGFsLWJvZHknLFxuICAgICAgICAgIGFyaWFMYWJlbGxlZEJ5OiAnbW9kYWwtdGl0bGUnLFxuICAgICAgICAgIGluaXRpYWxTdGF0ZTogdGhpcy5nZXRJbnN0YWxsTW9kYWxJbml0U3RhdGUoKSxcbiAgICAgICAgICBpZ25vcmVCYWNrZHJvcENsaWNrOiB0cnVlXG4gICAgICAgIH0pLmNvbnRlbnQgYXMgSW5zdGFsbFBsdWdpbkNvbXBvbmVudFxuICAgICAgKS5yZXN1bHQpIGFzIGFueSBhcyBzdHJpbmdbXTtcblxuICAgICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xuICAgICAgYXdhaXQgdGhpcy5oYW5kbGVSZW1vdGVzSW5zdGFsbGF0aW9uKHBsdWdpbnNUb0FkZCk7XG5cbiAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLnN1Y2Nlc3MoZ2V0dGV4dCgnUGx1Z2lucyBpbnN0YWxsZWQuJykpO1xuICAgICAgcGx1Z2luc1RvQWRkLmZvckVhY2gocGx1Z2luID0+IHtcbiAgICAgICAgdGhpcy5nYWluc2lnaHRTZXJ2aWNlLnRyaWdnZXJFdmVudChcbiAgICAgICAgICBQUk9EVUNUX0VYUEVSSUVOQ0UuQVBQTElDQVRJT05TLkVWRU5UUy5JTlNUQUxMRURfUExVR0lOUyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjb21wb25lbnQ6IFBST0RVQ1RfRVhQRVJJRU5DRS5BUFBMSUNBVElPTlMuQ09NUE9ORU5UUy5BUFBMSUNBVElPTl9QTFVHSU5TLFxuICAgICAgICAgICAgcmVzdWx0OiBQUk9EVUNUX0VYUEVSSUVOQ0UuQVBQTElDQVRJT05TLlJFU1VMVFMuUExVR0lOX0lOU1RBTExFRCxcbiAgICAgICAgICAgIHVybDogdGhpcy5DVVJSRU5UX0xPQ0FUSU9OLFxuICAgICAgICAgICAgaWQ6IHBsdWdpbixcbiAgICAgICAgICAgIHRhcmdldEFwcGxpY2F0aW9uTmFtZTogdGhpcy5hcHAubmFtZSxcbiAgICAgICAgICAgIHRhcmdldEFwcGxpY2F0aW9uQ29udGV4dFBhdGg6IHRoaXMuYXBwLmNvbnRleHRQYXRoXG4gICAgICAgICAgfVxuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZXgpIHtcbiAgICAgIGlmIChleCkge1xuICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5hZGRTZXJ2ZXJGYWlsdXJlKGV4KTtcbiAgICAgICAgdGhpcy5nYWluc2lnaHRTZXJ2aWNlLnRyaWdnZXJFdmVudChcbiAgICAgICAgICBQUk9EVUNUX0VYUEVSSUVOQ0UuQVBQTElDQVRJT05TLkVWRU5UUy5JTlNUQUxMRURfUExVR0lOUyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjb21wb25lbnQ6IFBST0RVQ1RfRVhQRVJJRU5DRS5BUFBMSUNBVElPTlMuQ09NUE9ORU5UUy5BUFBMSUNBVElPTl9QTFVHSU5TLFxuICAgICAgICAgICAgcmVzdWx0OiBQUk9EVUNUX0VYUEVSSUVOQ0UuQVBQTElDQVRJT05TLlJFU1VMVFMuU0VSVkVSX0ZBSUxVUkUsXG4gICAgICAgICAgICB1cmw6IHRoaXMuQ1VSUkVOVF9MT0NBVElPTixcbiAgICAgICAgICAgIGVycm9yOiBleFxuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBhc3luYyByZW1vdmVQbHVnaW5zKHBsdWdpbnM6IHN0cmluZ1tdKSB7XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcbiAgICAgIGNvbnN0IHVwZGF0ZWRSZW1vdGVzID0gYXdhaXQgdGhpcy5wbHVnaW5zU2VydmljZS5yZW1vdmVSZW1vdGVzKFxuICAgICAgICB0aGlzLmFwcCxcbiAgICAgICAgcGx1Z2lucy5tYXAoaWQgPT4gKHsgaWQgfSBhcyBBcHBsaWNhdGlvblBsdWdpbikpXG4gICAgICApO1xuICAgICAgdGhpcy5lbWl0UmVtb3Rlcyh1cGRhdGVkUmVtb3Rlcyk7XG5cbiAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICB0aGlzLmRhdGFHcmlkLmNhbmNlbCgpO1xuICAgICAgdGhpcy5hbGVydFNlcnZpY2Uuc3VjY2VzcyhnZXR0ZXh0KCdQbHVnaW5zIHJlbW92ZWQuJykpO1xuICAgICAgcGx1Z2lucy5mb3JFYWNoKHBsdWdpbiA9PiB7XG4gICAgICAgIHRoaXMuZ2FpbnNpZ2h0U2VydmljZS50cmlnZ2VyRXZlbnQoXG4gICAgICAgICAgUFJPRFVDVF9FWFBFUklFTkNFLkFQUExJQ0FUSU9OUy5FVkVOVFMuSU5TVEFMTEVEX1BMVUdJTlMsXG4gICAgICAgICAge1xuICAgICAgICAgICAgY29tcG9uZW50OiBQUk9EVUNUX0VYUEVSSUVOQ0UuQVBQTElDQVRJT05TLkNPTVBPTkVOVFMuQVBQTElDQVRJT05fUExVR0lOUyxcbiAgICAgICAgICAgIHJlc3VsdDogUFJPRFVDVF9FWFBFUklFTkNFLkFQUExJQ0FUSU9OUy5SRVNVTFRTLlBMVUdJTl9SRU1PVkVELFxuICAgICAgICAgICAgdXJsOiB0aGlzLkNVUlJFTlRfTE9DQVRJT04sXG4gICAgICAgICAgICBpZDogcGx1Z2luLFxuICAgICAgICAgICAgdGFyZ2V0QXBwbGljYXRpb25OYW1lOiB0aGlzLmFwcC5uYW1lLFxuICAgICAgICAgICAgdGFyZ2V0QXBwbGljYXRpb25Db250ZXh0UGF0aDogdGhpcy5hcHAuY29udGV4dFBhdGhcbiAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChleCkge1xuICAgICAgaWYgKGV4KSB7XG4gICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmFkZFNlcnZlckZhaWx1cmUoZXgpO1xuICAgICAgICB0aGlzLmdhaW5zaWdodFNlcnZpY2UudHJpZ2dlckV2ZW50KFxuICAgICAgICAgIFBST0RVQ1RfRVhQRVJJRU5DRS5BUFBMSUNBVElPTlMuRVZFTlRTLklOU1RBTExFRF9QTFVHSU5TLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNvbXBvbmVudDogUFJPRFVDVF9FWFBFUklFTkNFLkFQUExJQ0FUSU9OUy5DT01QT05FTlRTLkFQUExJQ0FUSU9OX1BMVUdJTlMsXG4gICAgICAgICAgICByZXN1bHQ6IFBST0RVQ1RfRVhQRVJJRU5DRS5BUFBMSUNBVElPTlMuUkVTVUxUUy5TRVJWRVJfRkFJTFVSRSxcbiAgICAgICAgICAgIHVybDogdGhpcy5DVVJSRU5UX0xPQ0FUSU9OLFxuICAgICAgICAgICAgZXJyb3I6IGV4XG4gICAgICAgICAgfVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGNsZWFudXBPcnBoYW5lZFBsdWdpbnMocGx1Z2luczogQXBwbGljYXRpb25QbHVnaW5bXSkge1xuICAgIGNvbnN0IHBsdWdpbklkcyA9IHBsdWdpbnMubWFwKHAgPT4gcC5pZCk7XG4gICAgYXdhaXQgdGhpcy5yZW1vdmVQbHVnaW5zKHBsdWdpbklkcyk7XG4gIH1cblxuICBnZXRBY3Rpb25Db250cm9scygpOiBBY3Rpb25Db250cm9sW10ge1xuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6ICdjdXN0b21VcGRhdGUnLFxuICAgICAgICB0ZXh0OiBnZXR0ZXh0KCdVcGRhdGUnKSxcbiAgICAgICAgaWNvbjogJ2NhcmV0LXNxdWFyZS1vLXVwJyxcbiAgICAgICAgc2hvd0lmOiBwbHVnaW4gPT4ge1xuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBwbHVnaW4uc3RhdHVzID09PSBBcHBsaWNhdGlvblBsdWdpblN0YXR1cy5PVVREQVRFRCB8fFxuICAgICAgICAgICAgcGx1Z2luLnN0YXR1cyA9PT0gQXBwbGljYXRpb25QbHVnaW5TdGF0dXMuUkVWT0tFRFxuICAgICAgICAgICk7XG4gICAgICAgIH0sXG4gICAgICAgIGNhbGxiYWNrOiBwbHVnaW4gPT4gdGhpcy51cGRhdGVQbHVnaW4odGhpcy5hcHAsIHBsdWdpbiBhcyBBcHBsaWNhdGlvblBsdWdpbilcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHR5cGU6ICdjdXN0b21Eb3duZ3JhZGUnLFxuICAgICAgICB0ZXh0OiBnZXR0ZXh0KCdEb3duZ3JhZGUnKSxcbiAgICAgICAgaWNvbjogJ2NhcmV0LXNxdWFyZS1vLWRvd24nLFxuICAgICAgICBzaG93SWY6IHBsdWdpbiA9PiB7XG4gICAgICAgICAgcmV0dXJuIHBsdWdpbi5zdGF0dXMgPT09IEFwcGxpY2F0aW9uUGx1Z2luU3RhdHVzLkxBVEVTVDtcbiAgICAgICAgfSxcbiAgICAgICAgY2FsbGJhY2s6IHBsdWdpbiA9PiB0aGlzLnVwZGF0ZVBsdWdpbih0aGlzLmFwcCwgcGx1Z2luIGFzIEFwcGxpY2F0aW9uUGx1Z2luLCB0cnVlKVxuICAgICAgfVxuICAgIF07XG4gIH1cblxuICBnZXRCdWxrQWN0aW9uQ29udHJvbHMoKTogQnVsa0FjdGlvbkNvbnRyb2xbXSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogJ2N1c3RvbURlbGV0ZScsXG4gICAgICAgIHRleHQ6IGdldHRleHQoJ1JlbW92ZScpLFxuICAgICAgICBpY29uOiAndHJhc2gnLFxuICAgICAgICBjYWxsYmFjazogcGx1Z2lucyA9PiB0aGlzLnJlbW92ZVBsdWdpbnMocGx1Z2lucylcbiAgICAgIH1cbiAgICBdO1xuICB9XG5cbiAgYXN5bmMgdXBkYXRlUGx1Z2luKGFwcDogSUFwcGxpY2F0aW9uLCBwbHVnaW46IEFwcGxpY2F0aW9uUGx1Z2luLCBkb3duZ3JhZGUgPSBmYWxzZSkge1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCAoXG4gICAgICAgIHRoaXMuYnNNb2RhbFNlcnZpY2Uuc2hvdyhVcGRhdGVQbHVnaW5PZkFwcENvbXBvbmVudCwge1xuICAgICAgICAgIGNsYXNzOiAnbW9kYWwtc20nLFxuICAgICAgICAgIGFyaWFEZXNjcmliZWRieTogJ21vZGFsLWJvZHknLFxuICAgICAgICAgIGFyaWFMYWJlbGxlZEJ5OiAnbW9kYWwtdGl0bGUnLFxuICAgICAgICAgIGluaXRpYWxTdGF0ZToge1xuICAgICAgICAgICAgYXBwLFxuICAgICAgICAgICAgcGx1Z2luLFxuICAgICAgICAgICAgZG93bmdyYWRlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBpZ25vcmVCYWNrZHJvcENsaWNrOiB0cnVlXG4gICAgICAgIH0pLmNvbnRlbnQgYXMgVXBkYXRlUGx1Z2luT2ZBcHBDb21wb25lbnRcbiAgICAgICkucmVzdWx0O1xuICAgICAgdGhpcy5yZWZyZXNoKCk7XG4gICAgfSBjYXRjaCAoZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cblxuICByZWZyZXNoKCkge1xuICAgIHRoaXMubG9hZERhdGEoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkSW5zdGFsbEJ1dHRvblRvSGVhZGVyQWN0aW9uQ29udHJvbHMoKSB7XG4gICAgaWYgKHRoaXMuYXBwSWQpIHtcbiAgICAgIHRoaXMuaGVhZGVyQWN0aW9uQ29udHJvbHMgPSBbXG4gICAgICAgIHtcbiAgICAgICAgICB0ZXh0OiBnZXR0ZXh0KCdJbnN0YWxsIHBsdWdpbnMnKSxcbiAgICAgICAgICBjYWxsYmFjazogKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5pbnN0YWxsUGx1Z2lucygpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgaWNvbjogJ3BsdXMtY2lyY2xlJyxcbiAgICAgICAgICB0eXBlOiAnY3VzdG9tJ1xuICAgICAgICB9XG4gICAgICBdO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgaGFuZGxlUmVtb3Rlc0luc3RhbGxhdGlvbihyZW1vdGVzSWRzOiBzdHJpbmdbXSkge1xuICAgIC8vIFdoZW4gcmVtb3RlcyBvYmplY3QgaXMgbm90IHNldCBpbiB0aGUgY29uZmlndXJhdGlvbiBvYmplY3Qgb2YgYW4gYXBwbGljYXRpb24uXG4gICAgLy8gRmFsbGJhY2sgdG8gc2V0SW5pdGlhbFJlbW90ZXMgaXMgdHJpZ2dlcmVkLlxuICAgIGxldCB1cGRhdGVkUmVtb3RlcyA9IGF3YWl0IHRoaXMucGx1Z2luc1NlcnZpY2UuYWRkUmVtb3RlcyhcbiAgICAgIHRoaXMuYXBwLFxuICAgICAgcmVtb3Rlc0lkcy5tYXAoaWQgPT4gKHsgaWQgfSBhcyBBcHBsaWNhdGlvblBsdWdpbikpXG4gICAgKTtcblxuICAgIGlmICghdXBkYXRlZFJlbW90ZXMpIHtcbiAgICAgIC8vIFRPRE8gZGlzY3VzcyBpZiB3ZSBuZWVkIHRvIGhhbmRsZSBpdCBsaWtlIHRoYXQuXG4gICAgICAvLyBSaWdodCBub3cgcmVtb3RlcyBmcm9tIHRoZSBjdW11bG9jaXR5Lmpzb24gYXJlIHRha2VuIGludG8gYWNjb3VudCB3aGVuIHJlbW90ZXMgb2JqZWN0IGlzIG1pc3NpbmcgaW4gdGhlIGNvbmZpZ3VyYXRpb24uXG4gICAgICB1cGRhdGVkUmVtb3RlcyA9IGF3YWl0IHRoaXMucGx1Z2luc1NlcnZpY2Uuc2V0SW5pdGlhbFJlbW90ZXModGhpcy5hcHApO1xuICAgICAgLy8gRnJlc2ggYXBwbGljYXRpb24gTU8gaXMgbmVlZGVkLCBhZnRlciBpbml0aWFsIHN0YXRlIHdhcyBzZXQuXG4gICAgICBhd2FpdCB0aGlzLmdldEFwcGxpY2F0aW9uTU8oKTtcbiAgICAgIHVwZGF0ZWRSZW1vdGVzID0gYXdhaXQgdGhpcy5wbHVnaW5zU2VydmljZS5hZGRSZW1vdGVzKFxuICAgICAgICB0aGlzLmFwcCxcbiAgICAgICAgcmVtb3Rlc0lkcy5tYXAoaWQgPT4gKHsgaWQgfSBhcyBBcHBsaWNhdGlvblBsdWdpbikpXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5lbWl0UmVtb3Rlcyh1cGRhdGVkUmVtb3Rlcyk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRSZW1vdGVzKHVwZGF0ZWRSZW1vdGVzOiBBcHBsaWNhdGlvblJlbW90ZVBsdWdpbnMpIHtcbiAgICB0aGlzLnJlbW90ZVBsdWdpbnMkLm5leHQodXBkYXRlZFJlbW90ZXMpO1xuICAgIHRoaXMuYXBwLmNvbmZpZy5yZW1vdGVzID0gdXBkYXRlZFJlbW90ZXM7XG4gICAgcmV0dXJuIHsgLi4udGhpcy5yZW1vdGVQbHVnaW5zJC52YWx1ZSB9O1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBnZXRBcHBsaWNhdGlvbk1PKCk6IFByb21pc2U8SUFwcGxpY2F0aW9uPiB7XG4gICAgbGV0IGlkID0gdGhpcy5hcHBJZDtcbiAgICBpZiAoIWlkKSB7XG4gICAgICBjb25zdCB7IGlkOiByb3V0ZUlkIH0gPSB0aGlzLmFjdGl2YXRlZFJvdXRlLnNuYXBzaG90LnBhcmVudC5kYXRhLmNvbnRleHREYXRhO1xuICAgICAgaWQgPSByb3V0ZUlkO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICB0aGlzLmFwcCA9IGF3YWl0IHRoaXMuZWNvc3lzdGVtU2VydmljZS5nZXRBcHBsaWNhdGlvbihpZCk7XG4gICAgfSBjYXRjaCAoZXIpIHtcbiAgICAgIGlmIChlcikge1xuICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5hZGRTZXJ2ZXJGYWlsdXJlKGVyKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuYXBwO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBnZXRBcHBsaWNhdGlvbk1GRXhwb3J0cyhhcHA6IElBcHBsaWNhdGlvbikge1xuICAgIGNvbnN0IGV4cG9ydHMgPSB0aGlzLnBsdWdpbnNTZXJ2aWNlLmdldE1GRXhwb3J0cyhhcHApO1xuICAgIHRoaXMuZXhwb3J0ZWRQbHVnaW5zJC5uZXh0KGV4cG9ydHMpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBnZXRBcHBsaWNhdGlvbk1GUmVtb3RlcyhhcHA6IElBcHBsaWNhdGlvbikge1xuICAgIGxldCBhcHBDb25maWdSZW1vdGVzID0gdGhpcy5wbHVnaW5zU2VydmljZS5nZXRNRlJlbW90ZXMoYXBwKTtcblxuICAgIGlmICghYXBwQ29uZmlnUmVtb3Rlcykge1xuICAgICAgYXBwQ29uZmlnUmVtb3RlcyA9IGF3YWl0IHRoaXMucGx1Z2luc1NlcnZpY2Uuc2V0SW5pdGlhbFJlbW90ZXMoYXBwKTtcbiAgICAgIHRoaXMuYXBwID0gYXdhaXQgdGhpcy5nZXRBcHBsaWNhdGlvbk1PKCk7XG4gICAgfVxuICAgIHRoaXMucmVtb3RlUGx1Z2lucyQubmV4dChhcHBDb25maWdSZW1vdGVzIHx8IHt9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0QWxsQXBwbGljYXRpb25zTUZFeHBvcnRzKCkge1xuICAgIGNvbnN0IGFsbEFwcHNNRkV4cG9ydHMgPSBhd2FpdCB0aGlzLnBsdWdpbnNTZXJ2aWNlLmdldEFsbE1GRXhwb3J0cyh0cnVlKTtcbiAgICB0aGlzLmFsbEF2YWlsYWJsZVBsdWdpbnMkLm5leHQoYWxsQXBwc01GRXhwb3J0cyk7XG4gIH1cblxuICBwcml2YXRlIGdldEluc3RhbGxNb2RhbEluaXRTdGF0ZSgpOiBhbnkge1xuICAgIHJldHVybiB7XG4gICAgICBwbHVnaW5zJDogY29tYmluZUxhdGVzdChbXG4gICAgICAgIHRoaXMuYWxsQXZhaWxhYmxlUGx1Z2lucyQsXG4gICAgICAgIHRoaXMuaW5zdGFsbGVkUGx1Z2lucyQucGlwZShtYXAocGx1Z2lucyA9PiBwbHVnaW5zLm1hcChwID0+IHAuaWQpKSksXG4gICAgICAgIHRoaXMuZXhwb3J0ZWRQbHVnaW5zJC5waXBlKG1hcChwbHVnaW5zID0+IHBsdWdpbnMubWFwKHAgPT4gcC5pZCkpKVxuICAgICAgXSkucGlwZShcbiAgICAgICAgbWFwKChbYWxsUGx1Z2lucywgaW5zdGFsbGVkUGx1Z2lucywgZXhwb3J0ZWRQbHVnaW5OYW1lc10pID0+IHtcbiAgICAgICAgICBjb25zdCBwbHVnaW5zID0gW107XG4gICAgICAgICAgYWxsUGx1Z2luc1xuICAgICAgICAgICAgLmZpbHRlcihwID0+ICFleHBvcnRlZFBsdWdpbk5hbWVzLmluY2x1ZGVzKHAuaWQpKVxuICAgICAgICAgICAgLm1hcChwID0+IHBsdWdpbnMucHVzaCh7IC4uLnAsIGluc3RhbGxlZDogISFpbnN0YWxsZWRQbHVnaW5zLmluY2x1ZGVzKHAuaWQpIH0pKTtcbiAgICAgICAgICByZXR1cm4gcGx1Z2lucztcbiAgICAgICAgfSksXG4gICAgICAgIHNoYXJlUmVwbGF5KDEpXG4gICAgICApXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgY29udmVydEluc3RhbGxlZFJlbW90ZXNUb0lkcyhyZW1vdGVzOiBBcHBsaWNhdGlvblJlbW90ZVBsdWdpbnMpOiBzdHJpbmdbXSB7XG4gICAgaWYgKCFyZW1vdGVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGltcG9ydENvbnRleHRQYXRocyA9IE9iamVjdC5rZXlzKHJlbW90ZXMpO1xuICAgIGNvbnN0IHBsdWdpbnMgPSBbXTtcbiAgICBpbXBvcnRDb250ZXh0UGF0aHMuZm9yRWFjaChjb250ZXh0UGF0aCA9PiB7XG4gICAgICBjb25zdCBtb2R1bGVOYW1lcyA9IHJlbW90ZXNbY29udGV4dFBhdGhdO1xuICAgICAgcGx1Z2lucy5wdXNoKC4uLm1vZHVsZU5hbWVzLm1hcChtb2R1bGUgPT4gdGhpcy5jcmVhdGVJZChjb250ZXh0UGF0aCwgbW9kdWxlKSkpO1xuICAgIH0pO1xuICAgIHJldHVybiBwbHVnaW5zO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVJZChjb250ZXh0UGF0aDogc3RyaW5nLCBwbHVnaW5Nb2R1bGVOYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHtjb250ZXh0UGF0aH0vJHtwbHVnaW5Nb2R1bGVOYW1lfWA7XG4gIH1cblxuICBwcml2YXRlIGdldE9ycGhhbmVkUGx1Z2lucyhcbiAgICBvcnBoYW5lZFBsdWdpbklkczogc3RyaW5nW10sXG4gICAgYWxsUGx1Z2luczogQXBwbGljYXRpb25QbHVnaW5bXVxuICApOiBBcHBsaWNhdGlvblBsdWdpbltdIHtcbiAgICBjb25zdCBvcnBoYW5lZFBsdWdpbnM6IEFwcGxpY2F0aW9uUGx1Z2luW10gPSBvcnBoYW5lZFBsdWdpbklkcy5tYXAocCA9PiB0aGlzLmV4dHJhY3REZXRhaWxzKHApKTtcbiAgICBjb25zdCBvcnBoYW5lZFBsdWdpbnNVcGRhdGVkID0gb3JwaGFuZWRQbHVnaW5zLm1hcChwID0+IHtcbiAgICAgIGNvbnN0IHBsdWdpbkluRGlmZmVyZW50VmVyc2lvbiA9IGFsbFBsdWdpbnMuZmluZChcbiAgICAgICAgdG1wID0+IHRtcC5jb250ZXh0UGF0aCA9PT0gcC5jb250ZXh0UGF0aCAmJiB0bXAubW9kdWxlID09PSBwLm1vZHVsZVxuICAgICAgKTtcbiAgICAgIGlmIChwbHVnaW5JbkRpZmZlcmVudFZlcnNpb24pIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5wbHVnaW5JbkRpZmZlcmVudFZlcnNpb24sXG4gICAgICAgICAgdmVyc2lvbjogcC52ZXJzaW9uIHx8IHBsdWdpbkluRGlmZmVyZW50VmVyc2lvbi52ZXJzaW9uLFxuICAgICAgICAgIGlkOiBwLmlkLFxuICAgICAgICAgIHN0YXR1czogcC52ZXJzaW9uID8gQXBwbGljYXRpb25QbHVnaW5TdGF0dXMuT1VUREFURUQgOiBBcHBsaWNhdGlvblBsdWdpblN0YXR1cy5MQVRFU1RcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBwO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIG9ycGhhbmVkUGx1Z2luc1VwZGF0ZWQ7XG4gIH1cblxuICBwcml2YXRlIHNwbGl0T3JwaGFuZWRQbHVnaW5zSW50b09ycGhhbmVkQW5kUmV2b2tlZFBsdWdpbnMoXG4gICAgYWxsUGx1Z2luczogQXBwbGljYXRpb25QbHVnaW5bXSxcbiAgICBvcnBoYW5lZFBsdWdpbnM6IEFwcGxpY2F0aW9uUGx1Z2luW11cbiAgKSB7XG4gICAgY29uc3QgcmV2b2tlZFBsdWdpbnMgPSBuZXcgQXJyYXk8QXBwbGljYXRpb25QbHVnaW4+KCk7XG4gICAgY29uc3QgYWN0dWFsbHlPcnBoYW5lZFBsdWdpbnMgPSBuZXcgQXJyYXk8QXBwbGljYXRpb25QbHVnaW4+KCk7XG5cbiAgICBmb3IgKGNvbnN0IHBsdWdpbiBvZiBvcnBoYW5lZFBsdWdpbnMpIHtcbiAgICAgIGNvbnN0IGZvdW5kRmFtaWxpYXJQbHVnaW4gPSBhbGxQbHVnaW5zLmZpbmQoXG4gICAgICAgIHBsdWdpbjEgPT4gcGx1Z2luLmNvbnRleHRQYXRoID09PSBwbHVnaW4xLmNvbnRleHRQYXRoICYmIHBsdWdpbi5tb2R1bGUgPT09IHBsdWdpbjEubW9kdWxlXG4gICAgICApO1xuICAgICAgaWYgKGZvdW5kRmFtaWxpYXJQbHVnaW4pIHtcbiAgICAgICAgcmV2b2tlZFBsdWdpbnMucHVzaChcbiAgICAgICAgICBPYmplY3QuYXNzaWduKHt9LCBmb3VuZEZhbWlsaWFyUGx1Z2luLCBwbHVnaW4sIHtcbiAgICAgICAgICAgIHN0YXR1czogQXBwbGljYXRpb25QbHVnaW5TdGF0dXMuUkVWT0tFRFxuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhY3R1YWxseU9ycGhhbmVkUGx1Z2lucy5wdXNoKHBsdWdpbik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHsgcmV2b2tlZFBsdWdpbnMsIGFjdHVhbGx5T3JwaGFuZWRQbHVnaW5zIH07XG4gIH1cblxuICBwcml2YXRlIGdldEluc3RhbGxlZFBsdWdpbnMoXG4gICAgYWxsUGx1Z2luczogQXBwbGljYXRpb25QbHVnaW5bXSxcbiAgICByZW1vdGVQbHVnaW5zOiBzdHJpbmdbXVxuICApOiBBcHBsaWNhdGlvblBsdWdpbltdIHtcbiAgICBjb25zdCBhdmFpbGFibGVQbHVnaW5zID0gYWxsUGx1Z2luc1xuICAgICAgLmZpbHRlcihwbHVnaW4gPT4gcmVtb3RlUGx1Z2lucy5pbmNsdWRlcyhwbHVnaW4uaWQpKVxuICAgICAgLm1hcChwbHVnaW4gPT5cbiAgICAgICAgT2JqZWN0LmFzc2lnbihwbHVnaW4sIHtcbiAgICAgICAgICBzdGF0dXM6IHBsdWdpbi50YWdzPy5pbmNsdWRlcygnbGF0ZXN0JylcbiAgICAgICAgICAgID8gQXBwbGljYXRpb25QbHVnaW5TdGF0dXMuTEFURVNUXG4gICAgICAgICAgICA6IEFwcGxpY2F0aW9uUGx1Z2luU3RhdHVzLk9VVERBVEVEXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIGNvbnN0IG9ycGhhbmVkUGx1Z2luSWRzID0gcmVtb3RlUGx1Z2lucy5maWx0ZXIoXG4gICAgICByID0+ICFhdmFpbGFibGVQbHVnaW5zLmZpbmQocGx1Z2luID0+IHBsdWdpbi5pZCA9PT0gcilcbiAgICApO1xuICAgIGNvbnN0IG9ycGhhbmVkUGx1Z2luczogQXBwbGljYXRpb25QbHVnaW5bXSA9IHRoaXMuZ2V0T3JwaGFuZWRQbHVnaW5zKFxuICAgICAgb3JwaGFuZWRQbHVnaW5JZHMsXG4gICAgICBhbGxQbHVnaW5zXG4gICAgKTtcblxuICAgIGNvbnN0IHsgYWN0dWFsbHlPcnBoYW5lZFBsdWdpbnMsIHJldm9rZWRQbHVnaW5zIH0gPVxuICAgICAgdGhpcy5zcGxpdE9ycGhhbmVkUGx1Z2luc0ludG9PcnBoYW5lZEFuZFJldm9rZWRQbHVnaW5zKGFsbFBsdWdpbnMsIG9ycGhhbmVkUGx1Z2lucyk7XG5cbiAgICByZXR1cm4gWy4uLmF2YWlsYWJsZVBsdWdpbnMsIC4uLnJldm9rZWRQbHVnaW5zLCAuLi5hY3R1YWxseU9ycGhhbmVkUGx1Z2luc107XG4gIH1cblxuICBwcml2YXRlIGV4dHJhY3REZXRhaWxzKHBsdWdpbklkOiBzdHJpbmcpOiBBcHBsaWNhdGlvblBsdWdpbiB7XG4gICAgY29uc3QgY29udGV4dFBhdGggPSB0aGlzLmdldFN0cmluZ01hdGNoaW5nUmVnZXgocGx1Z2luSWQsIC9eW15AXSooQHxcXC8pLyk7XG4gICAgY29uc3QgdmVyc2lvbiA9IHRoaXMuZ2V0U3RyaW5nTWF0Y2hpbmdSZWdleChwbHVnaW5JZCwgL0AuKlxcLy8pO1xuICAgIGNvbnN0IG1vZHVsZSA9IHRoaXMuZ2V0U3RyaW5nTWF0Y2hpbmdSZWdleChwbHVnaW5JZCwgL1xcLy4qJC8pO1xuICAgIGNvbnN0IHVuYXZhaWxhYmxlID0gZ2V0dGV4dCgndW5hdmFpbGFibGVgcGx1Z2luYCcpO1xuICAgIHJldHVybiB7XG4gICAgICBpZDogcGx1Z2luSWQsXG4gICAgICBwYXRoOiAnJyxcbiAgICAgIG1vZHVsZSxcbiAgICAgIG5hbWU6IG1vZHVsZSxcbiAgICAgIHN0YXR1czogQXBwbGljYXRpb25QbHVnaW5TdGF0dXMuT1JQSEFORUQsXG4gICAgICBjb250ZXh0UGF0aDogY29udGV4dFBhdGgsXG4gICAgICBkZXNjcmlwdGlvbjogdW5hdmFpbGFibGUsXG4gICAgICB2ZXJzaW9uOiB2ZXJzaW9uXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0U3RyaW5nTWF0Y2hpbmdSZWdleChcbiAgICBzdHI6IHN0cmluZyxcbiAgICByZWdleDogeyBbU3ltYm9sLm1hdGNoXShzdHJpbmc6IHN0cmluZyk6IFJlZ0V4cE1hdGNoQXJyYXkgfCBudWxsIH1cbiAgKTogc3RyaW5nIHtcbiAgICBjb25zdCBtYXRjaGVzID0gc3RyLm1hdGNoKHJlZ2V4KTtcbiAgICBjb25zdCB2YWx1ZSA9IG1hdGNoZXMgPyBtYXRjaGVzWzBdIDogJyc7XG5cbiAgICByZXR1cm4gdmFsdWUucmVwbGFjZSgvKEB8XFwvKS9nLCAnJyk7XG4gIH1cbn1cbiIsIjxjOHktdGl0bGU+e3sgYXBwIHwgaHVtYW5pemVBcHBOYW1lIHwgYXN5bmMgfX08L2M4eS10aXRsZT5cblxuPGM4eS1icmVhZGNydW1iPlxuICA8Yzh5LWJyZWFkY3J1bWItaXRlbSBbaWNvbl09XCInYzh5LWF0b20nXCIgW2xhYmVsXT1cIidFY29zeXN0ZW0nIHwgdHJhbnNsYXRlXCI+PC9jOHktYnJlYWRjcnVtYi1pdGVtPlxuICA8Yzh5LWJyZWFkY3J1bWItaXRlbVxuICAgIFtpY29uXT1cIidjOHktbW9kdWxlcydcIlxuICAgIFtsYWJlbF09XCInQXBwbGljYXRpb25zJyB8IHRyYW5zbGF0ZVwiXG4gICAgW3BhdGhdPVwiJ2Vjb3N5c3RlbS9hcHBsaWNhdGlvbnMnXCJcbiAgPjwvYzh5LWJyZWFkY3J1bWItaXRlbT5cbiAgPGM4eS1icmVhZGNydW1iLWl0ZW1cbiAgICBbaWNvbl09XCInYzh5LW1vZHVsZXMnXCJcbiAgICBbbGFiZWxdPVwiJ0FsbCBhcHBsaWNhdGlvbnMnIHwgdHJhbnNsYXRlXCJcbiAgICBbcGF0aF09XCInZWNvc3lzdGVtL2FwcGxpY2F0aW9ucydcIlxuICA+PC9jOHktYnJlYWRjcnVtYi1pdGVtPlxuICA8Yzh5LWJyZWFkY3J1bWItaXRlbSBbbGFiZWxdPVwiYXBwIHwgaHVtYW5pemVBcHBOYW1lIHwgYXN5bmNcIj48L2M4eS1icmVhZGNydW1iLWl0ZW0+XG4gIDxjOHktYnJlYWRjcnVtYi1pdGVtIFtsYWJlbF09XCInUGx1Z2lucycgfCB0cmFuc2xhdGVcIj48L2M4eS1icmVhZGNydW1iLWl0ZW0+XG48L2M4eS1icmVhZGNydW1iPlxuXG48Yzh5LWFjdGlvbi1iYXItaXRlbSBbcGxhY2VtZW50XT1cIidyaWdodCdcIj5cbiAgPGJ1dHRvblxuICAgIChjbGljayk9XCJpbnN0YWxsUGx1Z2lucygpXCJcbiAgICBbbmdDbGFzc109XCJ7ICdidG4tcGVuZGluZyc6IGlzTG9hZGluZyB9XCJcbiAgICBjbGFzcz1cImJ0biBidG4tbGlua1wiXG4gICAgdGl0bGU9XCJ7eyAnSW5zdGFsbCBwbHVnaW5zJyB8IHRyYW5zbGF0ZSB9fVwiXG4gID5cbiAgICA8aSBjOHlJY29uPVwicGx1cy1jaXJjbGVcIj48L2k+XG4gICAge3sgJ0luc3RhbGwgcGx1Z2lucycgfCB0cmFuc2xhdGUgfX1cbiAgPC9idXR0b24+XG48L2M4eS1hY3Rpb24tYmFyLWl0ZW0+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJvcnBoYW5lZFBsdWdpbnMkIHwgYXN5bmMgYXMgb3JwaGFuZWRQbHVnaW5zXCI+XG4gIDxjOHktYWN0aW9uLWJhci1pdGVtICpuZ0lmPVwib3JwaGFuZWRQbHVnaW5zPy5sZW5ndGhcIiBbcGxhY2VtZW50XT1cIidyaWdodCdcIj5cbiAgICA8YnV0dG9uXG4gICAgICAoY2xpY2spPVwiY2xlYW51cE9ycGhhbmVkUGx1Z2lucyhvcnBoYW5lZFBsdWdpbnMpXCJcbiAgICAgIFtuZ0NsYXNzXT1cInsgJ2J0bi1wZW5kaW5nJzogaXNMb2FkaW5nIH1cIlxuICAgICAgY2xhc3M9XCJidG4gYnRuLWxpbmtcIlxuICAgICAgdGl0bGU9XCJ7eyAnQ2xlYW4gdXAgb3JwaGFuZWQgcGx1Z2lucycgfCB0cmFuc2xhdGUgfX1cIlxuICAgID5cbiAgICAgIDxpIGM4eUljb249XCJlcmFzZVwiPjwvaT5cbiAgICAgIHt7ICdDbGVhbiB1cCBvcnBoYW5lZCBwbHVnaW5zJyB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvYnV0dG9uPlxuICA8L2M4eS1hY3Rpb24tYmFyLWl0ZW0+XG48L25nLWNvbnRhaW5lcj5cblxuPGRpdiBjbGFzcz1cImNvbnRlbnQtZnVsbHBhZ2UgZC1mbGV4IGQtY29sIGJvcmRlci10b3BcIj5cbiAgPGM4eS1kYXRhLWdyaWRcbiAgICBbdGl0bGVdPVwidGl0bGVcIlxuICAgIFtsb2FkTW9yZUl0ZW1zTGFiZWxdPVwibG9hZE1vcmVJdGVtc0xhYmVsXCJcbiAgICBbbG9hZGluZ0l0ZW1zTGFiZWxdPVwibG9hZGluZ0l0ZW1zTGFiZWxcIlxuICAgIFtkaXNwbGF5T3B0aW9uc109XCJkaXNwbGF5T3B0aW9uc1wiXG4gICAgW2NvbHVtbnNdPVwiY29sdW1uc1wiXG4gICAgW3Jvd3NdPVwiaW5zdGFsbGVkUGx1Z2lucyQgfCBhc3luY1wiXG4gICAgW3BhZ2luYXRpb25dPVwicGFnaW5hdGlvblwiXG4gICAgW3NlbGVjdGFibGVdPVwidHJ1ZVwiXG4gICAgW2FjdGlvbkNvbnRyb2xzXT1cImFjdGlvbkNvbnRyb2xzXCJcbiAgICBbYnVsa0FjdGlvbkNvbnRyb2xzXT1cImJ1bGtBY3Rpb25Db250cm9sc1wiXG4gICAgW2hlYWRlckFjdGlvbkNvbnRyb2xzXT1cImhlYWRlckFjdGlvbkNvbnRyb2xzXCJcbiAgICAob25SZWxvYWQpPVwicmVmcmVzaCgpXCJcbiAgICBjbGFzcz1cImQtY29udGVudHNcIlxuICA+XG4gICAgPCEtLSBObyBzZWFyY2gvZmlsdGVyZWQgcmVzdWx0cyBlbXB0eSBzdGF0ZSAtLT5cbiAgICA8Yzh5LXVpLWVtcHR5LXN0YXRlXG4gICAgICAqbmdJZj1cIihpbnN0YWxsZWRQbHVnaW5zJCB8IGFzeW5jKT8ubGVuZ3RoXCJcbiAgICAgIFtpY29uXT1cIidzZWFyY2gnXCJcbiAgICAgIFt0aXRsZV09XCInTm8gcGx1Z2lucyB0byBkaXNwbGF5LicgfCB0cmFuc2xhdGVcIlxuICAgICAgW3N1YnRpdGxlXT1cIidSZWZpbmUgeW91ciBzZWFyY2ggdGVybXMgb3IgY2hlY2sgeW91ciBzcGVsbGluZy4nIHwgdHJhbnNsYXRlXCJcbiAgICAgIFtob3Jpem9udGFsXT1cInRydWVcIlxuICAgID5cbiAgICA8L2M4eS11aS1lbXB0eS1zdGF0ZT5cbiAgICA8IS0tIE5vIGluc3RhbGxlZCBwbHVnaW5zIGVtcHR5IHN0YXRlIC0tPlxuICAgIDxjOHktdWktZW1wdHktc3RhdGVcbiAgICAgICpuZ0lmPVwiIShpbnN0YWxsZWRQbHVnaW5zJCB8IGFzeW5jKT8ubGVuZ3RoICYmICFpc0xvYWRpbmdcIlxuICAgICAgW2ljb25dPVwiJ3BsdWdpbidcIlxuICAgICAgW3RpdGxlXT1cIidObyBwbHVnaW5zIGluc3RhbGxlZC4nIHwgdHJhbnNsYXRlXCJcbiAgICAgIFtzdWJ0aXRsZV09XCInVGhpcyBhcHBsaWNhdGlvbiBkb2VzblxcJ3QgaGF2ZSBhbnkgcGx1Z2luLiBDbGljayBiZWxvdyB0byBpbnN0YWxsLicgfCB0cmFuc2xhdGVcIlxuICAgICAgW2hvcml6b250YWxdPVwidHJ1ZVwiXG4gICAgPlxuICAgICAgPGRpdiBjbGFzcz1cImZpdC13IHAtdC0xNlwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgYzh5UHJvZHVjdEV4cGVyaWVuY2VcbiAgICAgICAgICBbYWN0aW9uTmFtZV09XCJQUk9EVUNUX0VYUEVSSUVOQ0UuQVBQTElDQVRJT05TLkVWRU5UUy5JTlNUQUxMRURfUExVR0lOU1wiXG4gICAgICAgICAgW2FjdGlvbkRhdGFdPVwie1xuICAgICAgICAgICAgY29tcG9uZW50OiBQUk9EVUNUX0VYUEVSSUVOQ0UuQVBQTElDQVRJT05TLkNPTVBPTkVOVFMuQVBQTElDQVRJT05fUExVR0lOUyxcbiAgICAgICAgICAgIGFjdGlvbjogUFJPRFVDVF9FWFBFUklFTkNFLkFQUExJQ0FUSU9OUy5BQ1RJT05TLklOU1RBTExfUExVR0lOUyxcbiAgICAgICAgICAgIHVybDogQ1VSUkVOVF9MT0NBVElPTlxuICAgICAgICAgIH1cIlxuICAgICAgICAgIChjbGljayk9XCJpbnN0YWxsUGx1Z2lucygpXCJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7ICdidG4tcGVuZGluZyc6IGlzTG9hZGluZyB9XCJcbiAgICAgICAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBidG4tc21cIlxuICAgICAgICAgIHRpdGxlPVwie3sgJ0luc3RhbGwgcGx1Z2lucycgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgIHRyYW5zbGF0ZVxuICAgICAgICA+XG4gICAgICAgICAgSW5zdGFsbCBwbHVnaW5zXG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9jOHktdWktZW1wdHktc3RhdGU+XG4gIDwvYzh5LWRhdGEtZ3JpZD5cbjwvZGl2PlxuIl19
|
|
@@ -6,6 +6,7 @@ import { TranslateService } from '@ngx-translate/core';
|
|
|
6
6
|
import { BsModalService } from 'ngx-bootstrap/modal';
|
|
7
7
|
import { BehaviorSubject, Observable } from 'rxjs';
|
|
8
8
|
import { InstallPluginToAppComponent } from './install-plugin-to-app.component';
|
|
9
|
+
import { pick } from 'lodash-es';
|
|
9
10
|
import * as i0 from "@angular/core";
|
|
10
11
|
import * as i1 from "@c8y/ngx-components/ecosystem/shared";
|
|
11
12
|
import * as i2 from "ngx-bootstrap/modal";
|
|
@@ -63,19 +64,24 @@ export class PluginListComponent {
|
|
|
63
64
|
try {
|
|
64
65
|
await this.handleRemotesInstallation(app, plugin);
|
|
65
66
|
const successText = this.translateService.instant(gettext('Plugin installed successfully to app "{{ appName }}".'), { appName: app.name });
|
|
67
|
+
const pluginCustomEventInfo = pick(plugin, ['name', 'module', 'version', 'id']);
|
|
66
68
|
this.alertService.success(successText);
|
|
67
69
|
this.gainsightService.triggerEvent(PRODUCT_EXPERIENCE.APPLICATIONS.EVENTS.PACKAGE_PLUGINS, {
|
|
68
70
|
component: PRODUCT_EXPERIENCE.APPLICATIONS.COMPONENTS.PLUGIN_LIST,
|
|
69
71
|
result: PRODUCT_EXPERIENCE.APPLICATIONS.RESULTS.PLUGIN_INSTALLED,
|
|
70
|
-
url: this.CURRENT_LOCATION
|
|
72
|
+
url: this.CURRENT_LOCATION,
|
|
73
|
+
...pluginCustomEventInfo,
|
|
74
|
+
targetApplicationName: app.name,
|
|
75
|
+
targetApplicationContextPath: app.contextPath
|
|
71
76
|
});
|
|
72
77
|
}
|
|
73
|
-
catch {
|
|
78
|
+
catch (error) {
|
|
74
79
|
// nothing to do
|
|
75
80
|
this.gainsightService.triggerEvent(PRODUCT_EXPERIENCE.APPLICATIONS.EVENTS.PACKAGE_PLUGINS, {
|
|
76
81
|
component: PRODUCT_EXPERIENCE.APPLICATIONS.COMPONENTS.PLUGIN_LIST,
|
|
77
82
|
result: PRODUCT_EXPERIENCE.APPLICATIONS.RESULTS.SERVER_FAILURE,
|
|
78
|
-
url: this.CURRENT_LOCATION
|
|
83
|
+
url: this.CURRENT_LOCATION,
|
|
84
|
+
error
|
|
79
85
|
});
|
|
80
86
|
}
|
|
81
87
|
}
|
|
@@ -140,4 +146,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
|
|
|
140
146
|
}], selectedItems: [{
|
|
141
147
|
type: Output
|
|
142
148
|
}] } });
|
|
143
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vZWNvc3lzdGVtL2FwcGxpY2F0aW9uLXBsdWdpbnMvcGx1Z2luLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vZWNvc3lzdGVtL2FwcGxpY2F0aW9uLXBsdWdpbnMvcGx1Z2luLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQTRCLGVBQWUsRUFBZ0IsTUFBTSxhQUFhLENBQUM7QUFDdEYsT0FBTyxFQUNMLFlBQVksRUFFWixnQkFBZ0IsRUFDaEIsY0FBYyxFQUNkLE9BQU8sRUFDUixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzVGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7Ozs7Ozs7QUFNaEYsTUFBTSxPQUFPLG1CQUFtQjtJQWdCOUIsWUFDVSxnQkFBa0MsRUFDbEMsY0FBOEIsRUFDOUIsY0FBOEIsRUFDOUIsWUFBMEIsRUFDMUIsZ0JBQWtDLEVBQ2xDLGdCQUFrQztRQUxsQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBckI1QyxxQkFBZ0IsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDO1FBR3hCLGtCQUFhLEdBQVcsRUFBRSxDQUFDO1FBRXBDOztXQUVHO1FBQ00sZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFFNUIsa0JBQWEsR0FBMkIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNyRSxtQkFBYyxHQUE4QyxJQUFJLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNwRixvQkFBZSxHQUFXLEVBQUUsQ0FBQztJQVUxQixDQUFDO0lBRUosbUJBQW1CLENBQUMsS0FBYyxFQUFFLFFBQWdCO1FBQ2xELElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLEdBQUcsS0FBSyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2xHLENBQUM7SUFFRCxLQUFLLENBQUMsYUFBYSxDQUFDLE1BQXlCO1FBQzNDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxNQUFNLEVBQUUsRUFBRSxDQUFDO1FBQ3JDLElBQUksWUFBWSxDQUFDO1FBQ2pCLElBQUk7WUFDRixZQUFZLEdBQUc7Z0JBQ2IsSUFBSSxFQUFFLENBQUMsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FDN0QsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxJQUFJLEtBQUssZUFBZSxDQUFDLFFBQVEsQ0FDbkY7YUFDRixDQUFDO1NBQ0g7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNWLElBQUksQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdEMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEVBQUUsQ0FBQztZQUM3QixPQUFPO1NBQ1I7UUFFRCxJQUFJLFlBQTRCLENBQUM7UUFDakMsSUFBSTtZQUNGLFlBQVksR0FBRyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDbkQsSUFBSSxDQUFDLFlBQVksRUFBRTtnQkFDakIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEVBQUUsQ0FBQztnQkFDN0IsT0FBTzthQUNSO1NBQ0Y7UUFBQyxNQUFNO1lBQ04sWUFBWTtTQUNiO1FBRUQsS0FBSyxNQUFNLEdBQUcsSUFBSSxZQUFZLEVBQUU7WUFDOUIsSUFBSTtnQkFDRixNQUFNLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBQ2xELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQy9DLE9BQU8sQ0FBQyx1REFBdUQsQ0FBQyxFQUNoRSxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQUMsSUFBSSxFQUFFLENBQ3RCLENBQUM7Z0JBQ0YsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQ3ZDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsa0JBQWtCLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxlQUFlLEVBQUU7b0JBQ3pGLFNBQVMsRUFBRSxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLFdBQVc7b0JBQ2pFLE1BQU0sRUFBRSxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLGdCQUFnQjtvQkFDaEUsR0FBRyxFQUFFLElBQUksQ0FBQyxnQkFBZ0I7aUJBQzNCLENBQUMsQ0FBQzthQUNKO1lBQUMsTUFBTTtnQkFDTixnQkFBZ0I7Z0JBQ2hCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsa0JBQWtCLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxlQUFlLEVBQUU7b0JBQ3pGLFNBQVMsRUFBRSxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLFdBQVc7b0JBQ2pFLE1BQU0sRUFBRSxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLGNBQWM7b0JBQzlELEdBQUcsRUFBRSxJQUFJLENBQUMsZ0JBQWdCO2lCQUMzQixDQUFDLENBQUM7YUFDSjtTQUNGO1FBQ0QsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRU8sS0FBSyxDQUFDLHlCQUF5QixDQUFDLFdBQXlCLEVBQUUsTUFBeUI7UUFDMUYsSUFBSTtZQUNGLGdGQUFnRjtZQUNoRiw4Q0FBOEM7WUFDOUMsSUFBSSxjQUFjLEdBQUcsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDL0UsSUFBSSxDQUFDLGNBQWMsRUFBRTtnQkFDbkIsa0RBQWtEO2dCQUNsRCx5SEFBeUg7Z0JBQ3pILGNBQWMsR0FBRyxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQzFFLCtEQUErRDtnQkFDL0QsTUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDdkUsY0FBYyxHQUFHLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFDO2FBQ3BFO1lBQ0QsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1NBQ3pDO1FBQUMsT0FBTyxFQUFFLEVBQUU7WUFDWCxJQUFJLEVBQUUsRUFBRTtnQkFDTixJQUFJLENBQUMsWUFBWSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxDQUFDO2FBQ3hDO1lBQ0QsTUFBTSxFQUFFLENBQUM7U0FDVjtJQUNILENBQUM7SUFFTyxXQUFXLENBQUMsT0FBaUM7UUFDbkQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbEMsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUMxQyxDQUFDO0lBRU8sS0FBSyxDQUFDLFVBQVUsQ0FDdEIsWUFBdUQ7UUFFdkQsSUFBSTtZQUNGLE9BQU8sTUFDTCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQywyQkFBMkIsRUFBRTtnQkFDcEQsS0FBSyxFQUFFLFVBQVU7Z0JBQ2pCLGVBQWUsRUFBRSxZQUFZO2dCQUM3QixjQUFjLEVBQUUsYUFBYTtnQkFDN0IsWUFBWTtnQkFDWixtQkFBbUIsRUFBRSxJQUFJO2FBQzFCLENBQUMsQ0FBQyxPQUNKLENBQUMsTUFBTSxDQUFDO1NBQ1Y7UUFBQyxPQUFPLEVBQUUsRUFBRTtZQUNYLE9BQU87U0FDUjtJQUNILENBQUM7O2dIQTVIVSxtQkFBbUI7b0dBQW5CLG1CQUFtQixnUENuQmhDLGt4Q0FtQ0E7MkZEaEJhLG1CQUFtQjtrQkFKL0IsU0FBUzsrQkFDRSxpQkFBaUI7MFBBTWxCLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUlHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNJLGFBQWE7c0JBQXRCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQXBwbGljYXRpb25SZW1vdGVQbHVnaW5zLCBBcHBsaWNhdGlvblR5cGUsIElBcHBsaWNhdGlvbiB9IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB7XG4gIEFsZXJ0U2VydmljZSxcbiAgQXBwbGljYXRpb25QbHVnaW4sXG4gIEdhaW5zaWdodFNlcnZpY2UsXG4gIFBsdWdpbnNTZXJ2aWNlLFxuICBnZXR0ZXh0XG59IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgRWNvc3lzdGVtU2VydmljZSwgUFJPRFVDVF9FWFBFUklFTkNFIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9lY29zeXN0ZW0vc2hhcmVkJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IEJzTW9kYWxTZXJ2aWNlIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9tb2RhbCc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEluc3RhbGxQbHVnaW5Ub0FwcENvbXBvbmVudCB9IGZyb20gJy4vaW5zdGFsbC1wbHVnaW4tdG8tYXBwLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1wbHVnaW4tbGlzdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9wbHVnaW4tbGlzdC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgUGx1Z2luTGlzdENvbXBvbmVudCB7XG4gIENVUlJFTlRfTE9DQVRJT04gPSBsb2NhdGlvbi5ocmVmO1xuXG4gIEBJbnB1dCgpIHBsdWdpbnMkOiBPYnNlcnZhYmxlPEFwcGxpY2F0aW9uUGx1Z2luW10+O1xuICBASW5wdXQoKSBlbXB0eUxpc3RUZXh0OiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgc2VsZWN0YWJsZTogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFNob3dzIHRoZSBpbnN0YWxsIGJ1dHRvbiBmb3IgZWFjaCBwbHVnaW4gc2VwYXJhdGVseS4gQ3VycmVudGx5IHVzZWQgaW4gcGFja2FnZS1kZXRhaWxzIHZpZXcuXG4gICAqL1xuICBASW5wdXQoKSBpbnN0YWxsYWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBwYWNrYWdlOiBJQXBwbGljYXRpb247XG4gIEBPdXRwdXQoKSBzZWxlY3RlZEl0ZW1zOiBFdmVudEVtaXR0ZXI8c3RyaW5nW10+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICByZW1vdGVQbHVnaW5zJDogQmVoYXZpb3JTdWJqZWN0PEFwcGxpY2F0aW9uUmVtb3RlUGx1Z2lucz4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHt9KTtcbiAgc2VsZWN0ZWRQbHVnaW5zOiBvYmplY3QgPSB7fTtcbiAgaW5zdGFsbGluZ1BsdWdpbklkOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBlY29zeXN0ZW1TZXJ2aWNlOiBFY29zeXN0ZW1TZXJ2aWNlLFxuICAgIHByaXZhdGUgYnNNb2RhbFNlcnZpY2U6IEJzTW9kYWxTZXJ2aWNlLFxuICAgIHByaXZhdGUgcGx1Z2luc1NlcnZpY2U6IFBsdWdpbnNTZXJ2aWNlLFxuICAgIHByaXZhdGUgYWxlcnRTZXJ2aWNlOiBBbGVydFNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgZ2FpbnNpZ2h0U2VydmljZTogR2FpbnNpZ2h0U2VydmljZVxuICApIHt9XG5cbiAgdXBkYXRlU2VsZWN0ZWRJdGVtcyh2YWx1ZTogYm9vbGVhbiwgcGx1Z2luSWQ6IHN0cmluZykge1xuICAgIHRoaXMuc2VsZWN0ZWRQbHVnaW5zW3BsdWdpbklkXSA9IHZhbHVlO1xuICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5lbWl0KE9iamVjdC5rZXlzKHRoaXMuc2VsZWN0ZWRQbHVnaW5zKS5maWx0ZXIoayA9PiB0aGlzLnNlbGVjdGVkUGx1Z2luc1trXSkpO1xuICB9XG5cbiAgYXN5bmMgaW5zdGFsbFBsdWdpbihwbHVnaW46IEFwcGxpY2F0aW9uUGx1Z2luKSB7XG4gICAgdGhpcy5pbnN0YWxsaW5nUGx1Z2luSWQgPSBwbHVnaW4/LmlkO1xuICAgIGxldCBpbml0aWFsU3RhdGU7XG4gICAgdHJ5IHtcbiAgICAgIGluaXRpYWxTdGF0ZSA9IHtcbiAgICAgICAgYXBwczogKGF3YWl0IHRoaXMuZWNvc3lzdGVtU2VydmljZS5nZXRXZWJBcHBsaWNhdGlvbnMoKSkuZmlsdGVyKFxuICAgICAgICAgIGFwcCA9PiB0aGlzLmVjb3N5c3RlbVNlcnZpY2UuaXNPd25lcihhcHApICYmIGFwcC50eXBlICE9PSBBcHBsaWNhdGlvblR5cGUuRVhURVJOQUxcbiAgICAgICAgKVxuICAgICAgfTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aGlzLmFsZXJ0U2VydmljZS5hZGRTZXJ2ZXJGYWlsdXJlKGUpO1xuICAgICAgdGhpcy5pbnN0YWxsaW5nUGx1Z2luSWQgPSAnJztcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgc2VsZWN0ZWRBcHBzOiBJQXBwbGljYXRpb25bXTtcbiAgICB0cnkge1xuICAgICAgc2VsZWN0ZWRBcHBzID0gYXdhaXQgdGhpcy5zZWxlY3RBcHBzKGluaXRpYWxTdGF0ZSk7XG4gICAgICBpZiAoIXNlbGVjdGVkQXBwcykge1xuICAgICAgICB0aGlzLmluc3RhbGxpbmdQbHVnaW5JZCA9ICcnO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfSBjYXRjaCB7XG4gICAgICAvLyB1bnJlYWNoZWRcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGFwcCBvZiBzZWxlY3RlZEFwcHMpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IHRoaXMuaGFuZGxlUmVtb3Rlc0luc3RhbGxhdGlvbihhcHAsIHBsdWdpbik7XG4gICAgICAgIGNvbnN0IHN1Y2Nlc3NUZXh0ID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXG4gICAgICAgICAgZ2V0dGV4dCgnUGx1Z2luIGluc3RhbGxlZCBzdWNjZXNzZnVsbHkgdG8gYXBwIFwie3sgYXBwTmFtZSB9fVwiLicpLFxuICAgICAgICAgIHsgYXBwTmFtZTogYXBwLm5hbWUgfVxuICAgICAgICApO1xuICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5zdWNjZXNzKHN1Y2Nlc3NUZXh0KTtcbiAgICAgICAgdGhpcy5nYWluc2lnaHRTZXJ2aWNlLnRyaWdnZXJFdmVudChQUk9EVUNUX0VYUEVSSUVOQ0UuQVBQTElDQVRJT05TLkVWRU5UUy5QQUNLQUdFX1BMVUdJTlMsIHtcbiAgICAgICAgICBjb21wb25lbnQ6IFBST0RVQ1RfRVhQRVJJRU5DRS5BUFBMSUNBVElPTlMuQ09NUE9ORU5UUy5QTFVHSU5fTElTVCxcbiAgICAgICAgICByZXN1bHQ6IFBST0RVQ1RfRVhQRVJJRU5DRS5BUFBMSUNBVElPTlMuUkVTVUxUUy5QTFVHSU5fSU5TVEFMTEVELFxuICAgICAgICAgIHVybDogdGhpcy5DVVJSRU5UX0xPQ0FUSU9OXG4gICAgICAgIH0pO1xuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIC8vIG5vdGhpbmcgdG8gZG9cbiAgICAgICAgdGhpcy5nYWluc2lnaHRTZXJ2aWNlLnRyaWdnZXJFdmVudChQUk9EVUNUX0VYUEVSSUVOQ0UuQVBQTElDQVRJT05TLkVWRU5UUy5QQUNLQUdFX1BMVUdJTlMsIHtcbiAgICAgICAgICBjb21wb25lbnQ6IFBST0RVQ1RfRVhQRVJJRU5DRS5BUFBMSUNBVElPTlMuQ09NUE9ORU5UUy5QTFVHSU5fTElTVCxcbiAgICAgICAgICByZXN1bHQ6IFBST0RVQ1RfRVhQRVJJRU5DRS5BUFBMSUNBVElPTlMuUkVTVUxUUy5TRVJWRVJfRkFJTFVSRSxcbiAgICAgICAgICB1cmw6IHRoaXMuQ1VSUkVOVF9MT0NBVElPTlxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5pbnN0YWxsaW5nUGx1Z2luSWQgPSAnJztcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgaGFuZGxlUmVtb3Rlc0luc3RhbGxhdGlvbihhcHBsaWNhdGlvbjogSUFwcGxpY2F0aW9uLCBwbHVnaW46IEFwcGxpY2F0aW9uUGx1Z2luKSB7XG4gICAgdHJ5IHtcbiAgICAgIC8vIFdoZW4gcmVtb3RlcyBvYmplY3QgaXMgbm90IHNldCBpbiB0aGUgY29uZmlndXJhdGlvbiBvYmplY3Qgb2YgYW4gYXBwbGljYXRpb24uXG4gICAgICAvLyBGYWxsYmFjayB0byBzZXRJbml0aWFsUmVtb3RlcyBpcyB0cmlnZ2VyZWQuXG4gICAgICBsZXQgdXBkYXRlZFJlbW90ZXMgPSBhd2FpdCB0aGlzLnBsdWdpbnNTZXJ2aWNlLmFkZFJlbW90ZXMoYXBwbGljYXRpb24sIHBsdWdpbik7XG4gICAgICBpZiAoIXVwZGF0ZWRSZW1vdGVzKSB7XG4gICAgICAgIC8vIFRPRE8gZGlzY3VzcyBpZiB3ZSBuZWVkIHRvIGhhbmRsZSBpdCBsaWtlIHRoYXQuXG4gICAgICAgIC8vIFJpZ2h0IG5vdyByZW1vdGVzIGZyb20gdGhlIGN1bXVsb2NpdHkuanNvbiBhcmUgdGFrZW4gaW50byBhY2NvdW50IHdoZW4gcmVtb3RlcyBvYmplY3QgaXMgbWlzc2luZyBpbiB0aGUgY29uZmlndXJhdGlvbi5cbiAgICAgICAgdXBkYXRlZFJlbW90ZXMgPSBhd2FpdCB0aGlzLnBsdWdpbnNTZXJ2aWNlLnNldEluaXRpYWxSZW1vdGVzKGFwcGxpY2F0aW9uKTtcbiAgICAgICAgLy8gRnJlc2ggYXBwbGljYXRpb24gTU8gaXMgbmVlZGVkLCBhZnRlciBpbml0aWFsIHN0YXRlIHdhcyBzZXQuXG4gICAgICAgIGNvbnN0IGFwcCA9IGF3YWl0IHRoaXMuZWNvc3lzdGVtU2VydmljZS5nZXRBcHBsaWNhdGlvbihhcHBsaWNhdGlvbi5pZCk7XG4gICAgICAgIHVwZGF0ZWRSZW1vdGVzID0gYXdhaXQgdGhpcy5wbHVnaW5zU2VydmljZS5hZGRSZW1vdGVzKGFwcCwgcGx1Z2luKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLmVtaXRSZW1vdGVzKHVwZGF0ZWRSZW1vdGVzKTtcbiAgICB9IGNhdGNoIChlcikge1xuICAgICAgaWYgKGVyKSB7XG4gICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmFkZFNlcnZlckZhaWx1cmUoZXIpO1xuICAgICAgfVxuICAgICAgdGhyb3cgZXI7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBlbWl0UmVtb3RlcyhyZW1vdGVzOiBBcHBsaWNhdGlvblJlbW90ZVBsdWdpbnMpOiBBcHBsaWNhdGlvblJlbW90ZVBsdWdpbnMge1xuICAgIHRoaXMucmVtb3RlUGx1Z2lucyQubmV4dChyZW1vdGVzKTtcbiAgICByZXR1cm4geyAuLi50aGlzLnJlbW90ZVBsdWdpbnMkLnZhbHVlIH07XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHNlbGVjdEFwcHMoXG4gICAgaW5pdGlhbFN0YXRlOiBQaWNrPEluc3RhbGxQbHVnaW5Ub0FwcENvbXBvbmVudCwgJ2FwcHMnPlxuICApOiBQcm9taXNlPElBcHBsaWNhdGlvbltdPiB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBhd2FpdCAoXG4gICAgICAgIHRoaXMuYnNNb2RhbFNlcnZpY2Uuc2hvdyhJbnN0YWxsUGx1Z2luVG9BcHBDb21wb25lbnQsIHtcbiAgICAgICAgICBjbGFzczogJ21vZGFsLXNtJyxcbiAgICAgICAgICBhcmlhRGVzY3JpYmVkYnk6ICdtb2RhbC1ib2R5JyxcbiAgICAgICAgICBhcmlhTGFiZWxsZWRCeTogJ21vZGFsLXRpdGxlJyxcbiAgICAgICAgICBpbml0aWFsU3RhdGUsXG4gICAgICAgICAgaWdub3JlQmFja2Ryb3BDbGljazogdHJ1ZVxuICAgICAgICB9KS5jb250ZW50IGFzIEluc3RhbGxQbHVnaW5Ub0FwcENvbXBvbmVudFxuICAgICAgKS5yZXN1bHQ7XG4gICAgfSBjYXRjaCAoZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cbn1cbiIsIjxjOHktbGlzdC1ncm91cCBjbGFzcz1cImJnLWluaGVyaXRcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihwbHVnaW5zJCB8IGFzeW5jKT8ubGVuZ3RoICE9PSAwOyBlbHNlIGVtcHR5TGlzdFwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHBsdWdpbiBvZiBwbHVnaW5zJCB8IGFzeW5jXCI+XG4gICAgICA8Yzh5LWxpIFtuZ0NsYXNzXT1cInsgZGlzYWJsZWQ6IHBsdWdpbi5pbnN0YWxsZWQgfVwiIGNsYXNzPVwiYmctaW5oZXJpdFwiPlxuICAgICAgICA8Yzh5LXBsdWdpbi1saXN0LWl0ZW1cbiAgICAgICAgICAoaXNJdGVtU2VsZWN0ZWQpPVwidXBkYXRlU2VsZWN0ZWRJdGVtcygkZXZlbnQsIHBsdWdpbj8uaWQpXCJcbiAgICAgICAgICBbcGx1Z2luXT1cInBsdWdpblwiXG4gICAgICAgICAgW3NlbGVjdGFibGVdPVwic2VsZWN0YWJsZVwiXG4gICAgICAgICAgY2xhc3M9XCJkLWZsZXhcIlxuICAgICAgICA+PC9jOHktcGx1Z2luLWxpc3QtaXRlbT5cbiAgICAgICAgPGRpdiBjbGFzcz1cInAtbC00MCBtLXQtNFwiPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICpuZ0lmPVwiaW5zdGFsbGFibGVcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImluc3RhbGxQbHVnaW4ocGx1Z2luKVwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdidG4tcGVuZGluZyc6IHBsdWdpbi5pZCA9PT0gaW5zdGFsbGluZ1BsdWdpbklkIH1cIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImluc3RhbGxpbmdQbHVnaW5JZCAmJiBwbHVnaW4uaWQgIT09IGluc3RhbGxpbmdQbHVnaW5JZFwiXG4gICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tZGVmYXVsdCBidG4tc20gbS1sLTRcIlxuICAgICAgICAgICAgdGl0bGU9XCJ7eyAnSW5zdGFsbCBwbHVnaW4nIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgIHRyYW5zbGF0ZVxuICAgICAgICAgID5cbiAgICAgICAgICAgIEluc3RhbGwgcGx1Z2luXG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9jOHktbGk+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbmctY29udGFpbmVyPlxuPC9jOHktbGlzdC1ncm91cD5cbjxuZy10ZW1wbGF0ZSAjZW1wdHlMaXN0PlxuICA8ZGl2IGNsYXNzPVwiYzh5LWVtcHR5LXN0YXRlIHRleHQtbGVmdFwiICpuZ0lmPVwiZW1wdHlMaXN0VGV4dFwiPlxuICAgIDxoMSBjOHlJY29uPVwicGx1Z2luXCI+PC9oMT5cbiAgICA8cD5cbiAgICAgIHt7IGVtcHR5TGlzdFRleHQgfCB0cmFuc2xhdGUgfX1cbiAgICA8L3A+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
149
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vZWNvc3lzdGVtL2FwcGxpY2F0aW9uLXBsdWdpbnMvcGx1Z2luLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vZWNvc3lzdGVtL2FwcGxpY2F0aW9uLXBsdWdpbnMvcGx1Z2luLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQTRCLGVBQWUsRUFBZ0IsTUFBTSxhQUFhLENBQUM7QUFDdEYsT0FBTyxFQUNMLFlBQVksRUFFWixnQkFBZ0IsRUFDaEIsY0FBYyxFQUNkLE9BQU8sRUFDUixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzVGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNoRixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sV0FBVyxDQUFDOzs7Ozs7OztBQU1qQyxNQUFNLE9BQU8sbUJBQW1CO0lBZ0I5QixZQUNVLGdCQUFrQyxFQUNsQyxjQUE4QixFQUM5QixjQUE4QixFQUM5QixZQUEwQixFQUMxQixnQkFBa0MsRUFDbEMsZ0JBQWtDO1FBTGxDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLG1CQUFjLEdBQWQsY0FB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bnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uUmVtb3RlUGx1Z2lucywgQXBwbGljYXRpb25UeXBlLCBJQXBwbGljYXRpb24gfSBmcm9tICdAYzh5L2NsaWVudCc7XG5pbXBvcnQge1xuICBBbGVydFNlcnZpY2UsXG4gIEFwcGxpY2F0aW9uUGx1Z2luLFxuICBHYWluc2lnaHRTZXJ2aWNlLFxuICBQbHVnaW5zU2VydmljZSxcbiAgZ2V0dGV4dFxufSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IEVjb3N5c3RlbVNlcnZpY2UsIFBST0RVQ1RfRVhQRVJJRU5DRSB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvZWNvc3lzdGVtL3NoYXJlZCc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBCc01vZGFsU2VydmljZSB9IGZyb20gJ25neC1ib290c3RyYXAvbW9kYWwnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJbnN0YWxsUGx1Z2luVG9BcHBDb21wb25lbnQgfSBmcm9tICcuL2luc3RhbGwtcGx1Z2luLXRvLWFwcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgcGljayB9IGZyb20gJ2xvZGFzaC1lcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1wbHVnaW4tbGlzdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9wbHVnaW4tbGlzdC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgUGx1Z2luTGlzdENvbXBvbmVudCB7XG4gIENVUlJFTlRfTE9DQVRJT04gPSBsb2NhdGlvbi5ocmVmO1xuXG4gIEBJbnB1dCgpIHBsdWdpbnMkOiBPYnNlcnZhYmxlPEFwcGxpY2F0aW9uUGx1Z2luW10+O1xuICBASW5wdXQoKSBlbXB0eUxpc3RUZXh0OiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgc2VsZWN0YWJsZTogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFNob3dzIHRoZSBpbnN0YWxsIGJ1dHRvbiBmb3IgZWFjaCBwbHVnaW4gc2VwYXJhdGVseS4gQ3VycmVudGx5IHVzZWQgaW4gcGFja2FnZS1kZXRhaWxzIHZpZXcuXG4gICAqL1xuICBASW5wdXQoKSBpbnN0YWxsYWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBwYWNrYWdlOiBJQXBwbGljYXRpb247XG4gIEBPdXRwdXQoKSBzZWxlY3RlZEl0ZW1zOiBFdmVudEVtaXR0ZXI8c3RyaW5nW10+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICByZW1vdGVQbHVnaW5zJDogQmVoYXZpb3JTdWJqZWN0PEFwcGxpY2F0aW9uUmVtb3RlUGx1Z2lucz4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHt9KTtcbiAgc2VsZWN0ZWRQbHVnaW5zOiBvYmplY3QgPSB7fTtcbiAgaW5zdGFsbGluZ1BsdWdpbklkOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBlY29zeXN0ZW1TZXJ2aWNlOiBFY29zeXN0ZW1TZXJ2aWNlLFxuICAgIHByaXZhdGUgYnNNb2RhbFNlcnZpY2U6IEJzTW9kYWxTZXJ2aWNlLFxuICAgIHByaXZhdGUgcGx1Z2luc1NlcnZpY2U6IFBsdWdpbnNTZXJ2aWNlLFxuICAgIHByaXZhdGUgYWxlcnRTZXJ2aWNlOiBBbGVydFNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgZ2FpbnNpZ2h0U2VydmljZTogR2FpbnNpZ2h0U2VydmljZVxuICApIHt9XG5cbiAgdXBkYXRlU2VsZWN0ZWRJdGVtcyh2YWx1ZTogYm9vbGVhbiwgcGx1Z2luSWQ6IHN0cmluZykge1xuICAgIHRoaXMuc2VsZWN0ZWRQbHVnaW5zW3BsdWdpbklkXSA9IHZhbHVlO1xuICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5lbWl0KE9iamVjdC5rZXlzKHRoaXMuc2VsZWN0ZWRQbHVnaW5zKS5maWx0ZXIoayA9PiB0aGlzLnNlbGVjdGVkUGx1Z2luc1trXSkpO1xuICB9XG5cbiAgYXN5bmMgaW5zdGFsbFBsdWdpbihwbHVnaW46IEFwcGxpY2F0aW9uUGx1Z2luKSB7XG4gICAgdGhpcy5pbnN0YWxsaW5nUGx1Z2luSWQgPSBwbHVnaW4/LmlkO1xuICAgIGxldCBpbml0aWFsU3RhdGU7XG4gICAgdHJ5IHtcbiAgICAgIGluaXRpYWxTdGF0ZSA9IHtcbiAgICAgICAgYXBwczogKGF3YWl0IHRoaXMuZWNvc3lzdGVtU2VydmljZS5nZXRXZWJBcHBsaWNhdGlvbnMoKSkuZmlsdGVyKFxuICAgICAgICAgIGFwcCA9PiB0aGlzLmVjb3N5c3RlbVNlcnZpY2UuaXNPd25lcihhcHApICYmIGFwcC50eXBlICE9PSBBcHBsaWNhdGlvblR5cGUuRVhURVJOQUxcbiAgICAgICAgKVxuICAgICAgfTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aGlzLmFsZXJ0U2VydmljZS5hZGRTZXJ2ZXJGYWlsdXJlKGUpO1xuICAgICAgdGhpcy5pbnN0YWxsaW5nUGx1Z2luSWQgPSAnJztcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgc2VsZWN0ZWRBcHBzOiBJQXBwbGljYXRpb25bXTtcbiAgICB0cnkge1xuICAgICAgc2VsZWN0ZWRBcHBzID0gYXdhaXQgdGhpcy5zZWxlY3RBcHBzKGluaXRpYWxTdGF0ZSk7XG4gICAgICBpZiAoIXNlbGVjdGVkQXBwcykge1xuICAgICAgICB0aGlzLmluc3RhbGxpbmdQbHVnaW5JZCA9ICcnO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfSBjYXRjaCB7XG4gICAgICAvLyB1bnJlYWNoZWRcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGFwcCBvZiBzZWxlY3RlZEFwcHMpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IHRoaXMuaGFuZGxlUmVtb3Rlc0luc3RhbGxhdGlvbihhcHAsIHBsdWdpbik7XG4gICAgICAgIGNvbnN0IHN1Y2Nlc3NUZXh0ID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXG4gICAgICAgICAgZ2V0dGV4dCgnUGx1Z2luIGluc3RhbGxlZCBzdWNjZXNzZnVsbHkgdG8gYXBwIFwie3sgYXBwTmFtZSB9fVwiLicpLFxuICAgICAgICAgIHsgYXBwTmFtZTogYXBwLm5hbWUgfVxuICAgICAgICApO1xuICAgICAgICBjb25zdCBwbHVnaW5DdXN0b21FdmVudEluZm8gPSBwaWNrKHBsdWdpbiwgWyduYW1lJywgJ21vZHVsZScsICd2ZXJzaW9uJywgJ2lkJ10pO1xuICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5zdWNjZXNzKHN1Y2Nlc3NUZXh0KTtcbiAgICAgICAgdGhpcy5nYWluc2lnaHRTZXJ2aWNlLnRyaWdnZXJFdmVudChQUk9EVUNUX0VYUEVSSUVOQ0UuQVBQTElDQVRJT05TLkVWRU5UUy5QQUNLQUdFX1BMVUdJTlMsIHtcbiAgICAgICAgICBjb21wb25lbnQ6IFBST0RVQ1RfRVhQRVJJRU5DRS5BUFBMSUNBVElPTlMuQ09NUE9ORU5UUy5QTFVHSU5fTElTVCxcbiAgICAgICAgICByZXN1bHQ6IFBST0RVQ1RfRVhQRVJJRU5DRS5BUFBMSUNBVElPTlMuUkVTVUxUUy5QTFVHSU5fSU5TVEFMTEVELFxuICAgICAgICAgIHVybDogdGhpcy5DVVJSRU5UX0xPQ0FUSU9OLFxuICAgICAgICAgIC4uLnBsdWdpbkN1c3RvbUV2ZW50SW5mbyxcbiAgICAgICAgICB0YXJnZXRBcHBsaWNhdGlvbk5hbWU6IGFwcC5uYW1lLFxuICAgICAgICAgIHRhcmdldEFwcGxpY2F0aW9uQ29udGV4dFBhdGg6IGFwcC5jb250ZXh0UGF0aFxuICAgICAgICB9KTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIC8vIG5vdGhpbmcgdG8gZG9cbiAgICAgICAgdGhpcy5nYWluc2lnaHRTZXJ2aWNlLnRyaWdnZXJFdmVudChQUk9EVUNUX0VYUEVSSUVOQ0UuQVBQTElDQVRJT05TLkVWRU5UUy5QQUNLQUdFX1BMVUdJTlMsIHtcbiAgICAgICAgICBjb21wb25lbnQ6IFBST0RVQ1RfRVhQRVJJRU5DRS5BUFBMSUNBVElPTlMuQ09NUE9ORU5UUy5QTFVHSU5fTElTVCxcbiAgICAgICAgICByZXN1bHQ6IFBST0RVQ1RfRVhQRVJJRU5DRS5BUFBMSUNBVElPTlMuUkVTVUxUUy5TRVJWRVJfRkFJTFVSRSxcbiAgICAgICAgICB1cmw6IHRoaXMuQ1VSUkVOVF9MT0NBVElPTixcbiAgICAgICAgICBlcnJvclxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5pbnN0YWxsaW5nUGx1Z2luSWQgPSAnJztcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgaGFuZGxlUmVtb3Rlc0luc3RhbGxhdGlvbihhcHBsaWNhdGlvbjogSUFwcGxpY2F0aW9uLCBwbHVnaW46IEFwcGxpY2F0aW9uUGx1Z2luKSB7XG4gICAgdHJ5IHtcbiAgICAgIC8vIFdoZW4gcmVtb3RlcyBvYmplY3QgaXMgbm90IHNldCBpbiB0aGUgY29uZmlndXJhdGlvbiBvYmplY3Qgb2YgYW4gYXBwbGljYXRpb24uXG4gICAgICAvLyBGYWxsYmFjayB0byBzZXRJbml0aWFsUmVtb3RlcyBpcyB0cmlnZ2VyZWQuXG4gICAgICBsZXQgdXBkYXRlZFJlbW90ZXMgPSBhd2FpdCB0aGlzLnBsdWdpbnNTZXJ2aWNlLmFkZFJlbW90ZXMoYXBwbGljYXRpb24sIHBsdWdpbik7XG4gICAgICBpZiAoIXVwZGF0ZWRSZW1vdGVzKSB7XG4gICAgICAgIC8vIFRPRE8gZGlzY3VzcyBpZiB3ZSBuZWVkIHRvIGhhbmRsZSBpdCBsaWtlIHRoYXQuXG4gICAgICAgIC8vIFJpZ2h0IG5vdyByZW1vdGVzIGZyb20gdGhlIGN1bXVsb2NpdHkuanNvbiBhcmUgdGFrZW4gaW50byBhY2NvdW50IHdoZW4gcmVtb3RlcyBvYmplY3QgaXMgbWlzc2luZyBpbiB0aGUgY29uZmlndXJhdGlvbi5cbiAgICAgICAgdXBkYXRlZFJlbW90ZXMgPSBhd2FpdCB0aGlzLnBsdWdpbnNTZXJ2aWNlLnNldEluaXRpYWxSZW1vdGVzKGFwcGxpY2F0aW9uKTtcbiAgICAgICAgLy8gRnJlc2ggYXBwbGljYXRpb24gTU8gaXMgbmVlZGVkLCBhZnRlciBpbml0aWFsIHN0YXRlIHdhcyBzZXQuXG4gICAgICAgIGNvbnN0IGFwcCA9IGF3YWl0IHRoaXMuZWNvc3lzdGVtU2VydmljZS5nZXRBcHBsaWNhdGlvbihhcHBsaWNhdGlvbi5pZCk7XG4gICAgICAgIHVwZGF0ZWRSZW1vdGVzID0gYXdhaXQgdGhpcy5wbHVnaW5zU2VydmljZS5hZGRSZW1vdGVzKGFwcCwgcGx1Z2luKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLmVtaXRSZW1vdGVzKHVwZGF0ZWRSZW1vdGVzKTtcbiAgICB9IGNhdGNoIChlcikge1xuICAgICAgaWYgKGVyKSB7XG4gICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmFkZFNlcnZlckZhaWx1cmUoZXIpO1xuICAgICAgfVxuICAgICAgdGhyb3cgZXI7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBlbWl0UmVtb3RlcyhyZW1vdGVzOiBBcHBsaWNhdGlvblJlbW90ZVBsdWdpbnMpOiBBcHBsaWNhdGlvblJlbW90ZVBsdWdpbnMge1xuICAgIHRoaXMucmVtb3RlUGx1Z2lucyQubmV4dChyZW1vdGVzKTtcbiAgICByZXR1cm4geyAuLi50aGlzLnJlbW90ZVBsdWdpbnMkLnZhbHVlIH07XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHNlbGVjdEFwcHMoXG4gICAgaW5pdGlhbFN0YXRlOiBQaWNrPEluc3RhbGxQbHVnaW5Ub0FwcENvbXBvbmVudCwgJ2FwcHMnPlxuICApOiBQcm9taXNlPElBcHBsaWNhdGlvbltdPiB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBhd2FpdCAoXG4gICAgICAgIHRoaXMuYnNNb2RhbFNlcnZpY2Uuc2hvdyhJbnN0YWxsUGx1Z2luVG9BcHBDb21wb25lbnQsIHtcbiAgICAgICAgICBjbGFzczogJ21vZGFsLXNtJyxcbiAgICAgICAgICBhcmlhRGVzY3JpYmVkYnk6ICdtb2RhbC1ib2R5JyxcbiAgICAgICAgICBhcmlhTGFiZWxsZWRCeTogJ21vZGFsLXRpdGxlJyxcbiAgICAgICAgICBpbml0aWFsU3RhdGUsXG4gICAgICAgICAgaWdub3JlQmFja2Ryb3BDbGljazogdHJ1ZVxuICAgICAgICB9KS5jb250ZW50IGFzIEluc3RhbGxQbHVnaW5Ub0FwcENvbXBvbmVudFxuICAgICAgKS5yZXN1bHQ7XG4gICAgfSBjYXRjaCAoZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cbn1cbiIsIjxjOHktbGlzdC1ncm91cCBjbGFzcz1cImJnLWluaGVyaXRcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihwbHVnaW5zJCB8IGFzeW5jKT8ubGVuZ3RoICE9PSAwOyBlbHNlIGVtcHR5TGlzdFwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHBsdWdpbiBvZiBwbHVnaW5zJCB8IGFzeW5jXCI+XG4gICAgICA8Yzh5LWxpIFtuZ0NsYXNzXT1cInsgZGlzYWJsZWQ6IHBsdWdpbi5pbnN0YWxsZWQgfVwiIGNsYXNzPVwiYmctaW5oZXJpdFwiPlxuICAgICAgICA8Yzh5LXBsdWdpbi1saXN0LWl0ZW1cbiAgICAgICAgICAoaXNJdGVtU2VsZWN0ZWQpPVwidXBkYXRlU2VsZWN0ZWRJdGVtcygkZXZlbnQsIHBsdWdpbj8uaWQpXCJcbiAgICAgICAgICBbcGx1Z2luXT1cInBsdWdpblwiXG4gICAgICAgICAgW3NlbGVjdGFibGVdPVwic2VsZWN0YWJsZVwiXG4gICAgICAgICAgY2xhc3M9XCJkLWZsZXhcIlxuICAgICAgICA+PC9jOHktcGx1Z2luLWxpc3QtaXRlbT5cbiAgICAgICAgPGRpdiBjbGFzcz1cInAtbC00MCBtLXQtNFwiPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICpuZ0lmPVwiaW5zdGFsbGFibGVcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImluc3RhbGxQbHVnaW4ocGx1Z2luKVwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdidG4tcGVuZGluZyc6IHBsdWdpbi5pZCA9PT0gaW5zdGFsbGluZ1BsdWdpbklkIH1cIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImluc3RhbGxpbmdQbHVnaW5JZCAmJiBwbHVnaW4uaWQgIT09IGluc3RhbGxpbmdQbHVnaW5JZFwiXG4gICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tZGVmYXVsdCBidG4tc20gbS1sLTRcIlxuICAgICAgICAgICAgdGl0bGU9XCJ7eyAnSW5zdGFsbCBwbHVnaW4nIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgIHRyYW5zbGF0ZVxuICAgICAgICAgID5cbiAgICAgICAgICAgIEluc3RhbGwgcGx1Z2luXG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9jOHktbGk+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbmctY29udGFpbmVyPlxuPC9jOHktbGlzdC1ncm91cD5cbjxuZy10ZW1wbGF0ZSAjZW1wdHlMaXN0PlxuICA8ZGl2IGNsYXNzPVwiYzh5LWVtcHR5LXN0YXRlIHRleHQtbGVmdFwiICpuZ0lmPVwiZW1wdHlMaXN0VGV4dFwiPlxuICAgIDxoMSBjOHlJY29uPVwicGx1Z2luXCI+PC9oMT5cbiAgICA8cD5cbiAgICAgIHt7IGVtcHR5TGlzdFRleHQgfCB0cmFuc2xhdGUgfX1cbiAgICA8L3A+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
@@ -3,6 +3,7 @@ import { Router } from '@angular/router';
|
|
|
3
3
|
import { GainsightService, ViewContext, WizardComponent, gettext } from '@c8y/ngx-components';
|
|
4
4
|
import { ApplicationPropertiesFormComponent, EcosystemService, PRODUCT_EXPERIENCE } from '@c8y/ngx-components/ecosystem/shared';
|
|
5
5
|
import { TranslateService } from '@ngx-translate/core';
|
|
6
|
+
import { pick } from 'lodash-es';
|
|
6
7
|
import * as i0 from "@angular/core";
|
|
7
8
|
import * as i1 from "@c8y/ngx-components/ecosystem/shared";
|
|
8
9
|
import * as i2 from "@c8y/ngx-components";
|
|
@@ -47,11 +48,20 @@ export class DeployApplicationComponent {
|
|
|
47
48
|
try {
|
|
48
49
|
this.deployedApp = await this.ecosystemService.deployApp(this.package, formGroupValue, this.model);
|
|
49
50
|
this.deployedWithSuccess = true;
|
|
51
|
+
const applicationCustomEventInfo = pick(this.package, [
|
|
52
|
+
'id',
|
|
53
|
+
'name',
|
|
54
|
+
'contextPath',
|
|
55
|
+
'label',
|
|
56
|
+
'key'
|
|
57
|
+
]);
|
|
50
58
|
this.gainsightService.triggerEvent(PRODUCT_EXPERIENCE.APPLICATIONS.EVENTS.DEPLOY_APPLICATION, {
|
|
51
59
|
component: PRODUCT_EXPERIENCE.APPLICATIONS.COMPONENTS.DEPLOY_APPLICATION,
|
|
52
60
|
action: PRODUCT_EXPERIENCE.APPLICATIONS.ACTIONS.DEPLOY_APPLICATION,
|
|
53
61
|
result: PRODUCT_EXPERIENCE.APPLICATIONS.RESULTS.DEPLOYED,
|
|
54
|
-
url: this.CURRENT_LOCATION
|
|
62
|
+
url: this.CURRENT_LOCATION,
|
|
63
|
+
...applicationCustomEventInfo,
|
|
64
|
+
package: this.deployedApp?.manifest?.package ?? null
|
|
55
65
|
});
|
|
56
66
|
}
|
|
57
67
|
catch (error) {
|
|
@@ -60,7 +70,8 @@ export class DeployApplicationComponent {
|
|
|
60
70
|
component: PRODUCT_EXPERIENCE.APPLICATIONS.COMPONENTS.DEPLOY_APPLICATION,
|
|
61
71
|
action: PRODUCT_EXPERIENCE.APPLICATIONS.ACTIONS.DEPLOY_APPLICATION,
|
|
62
72
|
result: PRODUCT_EXPERIENCE.APPLICATIONS.RESULTS.SERVER_FAILURE,
|
|
63
|
-
url: this.CURRENT_LOCATION
|
|
73
|
+
url: this.CURRENT_LOCATION,
|
|
74
|
+
error
|
|
64
75
|
});
|
|
65
76
|
}
|
|
66
77
|
finally {
|
|
@@ -99,4 +110,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
|
|
|
99
110
|
type: ViewChild,
|
|
100
111
|
args: [ApplicationPropertiesFormComponent]
|
|
101
112
|
}] } });
|
|
102
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95LWFwcGxpY2F0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2Vjb3N5c3RlbS9wYWNrYWdlcy9kZXBsb3ktYXBwbGljYXRpb24vZGVwbG95LWFwcGxpY2F0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2Vjb3N5c3RlbS9wYWNrYWdlcy9kZXBsb3ktYXBwbGljYXRpb24vZGVwbG95LWFwcGxpY2F0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV6QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM5RixPQUFPLEVBQ0wsa0NBQWtDLEVBQ2xDLGdCQUFnQixFQUNoQixrQkFBa0IsRUFDbkIsTUFBTSxzQ0FBc0MsQ0FBQztBQUM5QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7Ozs7QUFNdkQsTUFBTSxPQUFPLDBCQUEwQjtJQTZCckMsWUFDVSxnQkFBa0MsRUFDbEMsZUFBZ0MsRUFDaEMsU0FBMkIsRUFDM0IsZ0JBQWtDLEVBQ2xDLE1BQWM7UUFKZCxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFqQ3hCLHFCQUFnQixHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFFakMsZUFBVSxHQUFZLElBQUksQ0FBQztRQUUzQixlQUFVLEdBQVksS0FBSyxDQUFDO1FB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S0FBSyxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVELGtCQUFrQixDQUFDLFVBQStCO1FBQ2hELE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUN4QixRQUFRLEVBQUUsVUFBVTtTQUNyQixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBSTtRQUNGLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzVGLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNoQixDQUFDO0lBRU8sY0FBYztRQUNwQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUN2QixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztJQUMxQixDQUFDO0lBRU8sYUFBYTtRQUNuQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRTtZQUN0RCxXQUFXLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJO1NBQy9CLENBQUMsQ0FBQztJQUNMLENBQUM7O3VIQTVHVSwwQkFBMEI7MkdBQTFCLDBCQUEwQix5SEFrQjFCLGtDQUFrQyxnRENqQy9DLHVyR0FtR0E7MkZEcEZhLDBCQUEwQjtrQkFKdEMsU0FBUzsrQkFDRSx3QkFBd0I7d05Bc0JsQyx5QkFBeUI7c0JBRHhCLFNBQVM7dUJBQUMsa0NBQWtDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IElBcHBsaWNhdGlvbiwgSUFwcGxpY2F0aW9uVmVyc2lvbiB9IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB7IEdhaW5zaWdodFNlcnZpY2UsIFZpZXdDb250ZXh0LCBXaXphcmRDb21wb25lbnQsIGdldHRleHQgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7XG4gIEFwcGxpY2F0aW9uUHJvcGVydGllc0Zvcm1Db21wb25lbnQsXG4gIEVjb3N5c3RlbVNlcnZpY2UsXG4gIFBST0RVQ1RfRVhQRVJJRU5DRVxufSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL2Vjb3N5c3RlbS9zaGFyZWQnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktZGVwbG95LWFwcGxpY2F0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RlcGxveS1hcHBsaWNhdGlvbi5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgRGVwbG95QXBwbGljYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBDVVJSRU5UX0xPQ0FUSU9OID0gbG9jYXRpb24uaHJlZjtcblxuICBpblByb2dyZXNzOiBib29sZWFuID0gdHJ1ZTtcbiAgcGFja2FnZTogSUFwcGxpY2F0aW9uO1xuICBpc0RlcGxveWVkOiBib29sZWFuID0gZmFsc2U7XG4gIGRlcGxveWVkV2l0aFN1Y2Nlc3M6IGJvb2xlYW4gPSBmYWxzZTtcbiAgbmV3QXBwQ29uZmlnOiBJQXBwbGljYXRpb247XG4gIGRlcGxveWVkQXBwOiBJQXBwbGljYXRpb247XG5cbiAgbW9kZWwgPSB7XG4gICAgc2VsZWN0ZWQ6IHVuZGVmaW5lZCxcbiAgICBiaW5hcnk6IHtcbiAgICAgIGlkOiB1bmRlZmluZWRcbiAgICB9XG4gIH07XG4gIGNhbkRlcGxveTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBWaWV3Q2hpbGQoQXBwbGljYXRpb25Qcm9wZXJ0aWVzRm9ybUNvbXBvbmVudClcbiAgYXBwbGljYXRpb25Qcm9wZXJ0aWVzRm9ybTogQXBwbGljYXRpb25Qcm9wZXJ0aWVzRm9ybUNvbXBvbmVudDtcblxuICByZWFkb25seSBkZXNjcmlwdGlvblRlbXBsYXRlOiBzdHJpbmcgPSBnZXR0ZXh0KFxuICAgICdEZXBsb3kgYXBwbGljYXRpb24gdXNpbmcgXCJ7eyBwYWNrYWdlTmFtZSB9fVwiIHBhY2thZ2UnXG4gICk7XG4gIHJlYWRvbmx5IHN1Y2Nlc3NNZXNzYWdlVGVtcGxhdGUgPSBnZXR0ZXh0KCdBcHBsaWNhdGlvbiBcInt7IHBhY2thZ2VOYW1lIH19XCIgY3JlYXRlZCcpO1xuICByZWFkb25seSBkb25lTGFiZWwgPSBnZXR0ZXh0KCdEb25lJyk7XG4gIHJlYWRvbmx5IGNhbmNlbExhYmVsID0gZ2V0dGV4dCgnQ2FuY2VsJyk7XG4gIGhlYWRlclRleHQ6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVjb3N5c3RlbVNlcnZpY2U6IEVjb3N5c3RlbVNlcnZpY2UsXG4gICAgcHJpdmF0ZSB3aXphcmRDb21wb25lbnQ6IFdpemFyZENvbXBvbmVudCxcbiAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIGdhaW5zaWdodFNlcnZpY2U6IEdhaW5zaWdodFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlclxuICApIHtcbiAgICB0aGlzLnBhY2thZ2UgPSAodGhpcy53aXphcmRDb21wb25lbnQgYXMgYW55KS5wYWNrYWdlO1xuICB9XG5cbiAgYXN5bmMgbmdPbkluaXQoKSB7XG4gICAgY29uc3QgYXBwcyA9IGF3YWl0IHRoaXMuZWNvc3lzdGVtU2VydmljZS5nZXRIb3N0ZWRBbmRQYWNrYWdlQXBwbGljYXRpb25zKCk7XG4gICAgdGhpcy5uZXdBcHBDb25maWcgPSB0aGlzLmVjb3N5c3RlbVNlcnZpY2UuZ2V0VW5pcXVlQXBwQ29uZmlnKHRoaXMucGFja2FnZSwgYXBwcyk7XG4gICAgdGhpcy5oZWFkZXJUZXh0ID0gdGhpcy5nZXRIZWFkZXJUZXh0KCk7XG4gICAgdGhpcy5pblByb2dyZXNzID0gZmFsc2U7XG4gIH1cblxuICBhc3luYyBkZXBsb3lBcHAoKSB7XG4gICAgdGhpcy5pblByb2dyZXNzID0gdHJ1ZTtcbiAgICBjb25zdCBmb3JtR3JvdXBWYWx1ZSA9IHRoaXMuYXBwbGljYXRpb25Qcm9wZXJ0aWVzRm9ybS5mb3JtR3JvdXAuZ2V0UmF3VmFsdWUoKTtcbiAgICB0aGlzLnBhY2thZ2UubWFuaWZlc3QudmVyc2lvbiA9IHRoaXMubW9kZWwuc2VsZWN0ZWQudmVyc2lvbjtcblxuICAgIHRyeSB7XG4gICAgICB0aGlzLmRlcGxveWVkQXBwID0gYXdhaXQgdGhpcy5lY29zeXN0ZW1TZXJ2aWNlLmRlcGxveUFwcChcbiAgICAgICAgdGhpcy5wYWNrYWdlLFxuICAgICAgICBmb3JtR3JvdXBWYWx1ZSxcbiAgICAgICAgdGhpcy5tb2RlbFxuICAgICAgKTtcbiAgICAgIHRoaXMuZGVwbG95ZWRXaXRoU3VjY2VzcyA9IHRydWU7XG4gICAgICB0aGlzLmdhaW5zaWdodFNlcnZpY2UudHJpZ2dlckV2ZW50KFxuICAgICAgICBQUk9EVUNUX0VYUEVSSUVOQ0UuQVBQTElDQVRJT05TLkVWRU5UUy5ERVBMT1lfQVBQTElDQVRJT04sXG4gICAgICAgIHtcbiAgICAgICAgICBjb21wb25lbnQ6IFBST0RVQ1RfRVhQRVJJRU5DRS5BUFBMSUNBVElPTlMuQ09NUE9ORU5UUy5ERVBMT1lfQVBQTElDQVRJT04sXG4gICAgICAgICAgYWN0aW9uOiBQUk9EVUNUX0VYUEVSSUVOQ0UuQVBQTElDQVRJT05TLkFDVElPTlMuREVQTE9ZX0FQUExJQ0FUSU9OLFxuICAgICAgICAgIHJlc3VsdDogUFJPRFVDVF9FWFBFUklFTkNFLkFQUExJQ0FUSU9OUy5SRVNVTFRTLkRFUExPWUVELFxuICAgICAgICAgIHVybDogdGhpcy5DVVJSRU5UX0xPQ0FUSU9OXG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRoaXMuZWNvc3lzdGVtU2VydmljZS5hbGVydEVycm9yKGVycm9yKTtcbiAgICAgIHRoaXMuZ2FpbnNpZ2h0U2VydmljZS50cmlnZ2VyRXZlbnQoXG4gICAgICAgIFBST0RVQ1RfRVhQRVJJRU5DRS5BUFBMSUNBVElPTlMuRVZFTlRTLkRFUExPWV9BUFBMSUNBVElPTixcbiAgICAgICAge1xuICAgICAgICAgIGNvbXBvbmVudDogUFJPRFVDVF9FWFBFUklFTkNFLkFQUExJQ0FUSU9OUy5DT01QT05FTlRTLkRFUExPWV9BUFBMSUNBVElPTixcbiAgICAgICAgICBhY3Rpb246IFBST0RVQ1RfRVhQRVJJRU5DRS5BUFBMSUNBVElPTlMuQUNUSU9OUy5ERVBMT1lfQVBQTElDQVRJT04sXG4gICAgICAgICAgcmVzdWx0OiBQUk9EVUNUX0VYUEVSSUVOQ0UuQVBQTElDQVRJT05TLlJFU1VMVFMuU0VSVkVSX0ZBSUxVUkUsXG4gICAgICAgICAgdXJsOiB0aGlzLkNVUlJFTlRfTE9DQVRJT05cbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5tYXJrQXNEZXBsb3llZCgpO1xuICAgIH1cbiAgfVxuXG4gIGNhbmNlbCgpIHtcbiAgICB0aGlzLndpemFyZENvbXBvbmVudC5jbG9zZSgpO1xuICB9XG5cbiAgb25BcHBWZXJzaW9uU2VsZWN0KGFwcFZlcnNpb246IElBcHBsaWNhdGlvblZlcnNpb24pIHtcbiAgICBPYmplY3QuYXNzaWduKHRoaXMubW9kZWwsIHtcbiAgICAgIHNlbGVjdGVkOiBhcHBWZXJzaW9uXG4gICAgfSk7XG4gICAgdGhpcy5jYW5EZXBsb3kgPSB0cnVlO1xuICB9XG5cbiAgb3BlbigpIHtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKFZpZXdDb250ZXh0LkFwcGxpY2F0aW9uLnJlcGxhY2UoJzppZCcsIGAke3RoaXMuZGVwbG95ZWRBcHAuaWR9YCkpO1xuICAgIHRoaXMuY2FuY2VsKCk7XG4gIH1cblxuICBwcml2YXRlIG1hcmtBc0RlcGxveWVkKCkge1xuICAgIHRoaXMuaXNEZXBsb3llZCA9IHRydWU7XG4gICAgdGhpcy5pblByb2dyZXNzID0gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGdldEhlYWRlclRleHQoKSB7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmluc3RhbnQodGhpcy5kZXNjcmlwdGlvblRlbXBsYXRlLCB7XG4gICAgICBwYWNrYWdlTmFtZTogdGhpcy5wYWNrYWdlLm5hbWVcbiAgICB9KTtcbiAgfVxufVxuIiwiPGM4eS13aXphcmQtaGVhZGVyPlxuICA8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyIGRpYWxvZy1oZWFkZXJcIj5cbiAgICA8aSBjOHlJY29uPVwib3V0cHV0XCI+PC9pPlxuICAgIDxoNCBpZD1cIm1vZGFsLXRpdGxlXCI+e3sgJ0RlcGxveSBhcHBsaWNhdGlvbicgfCB0cmFuc2xhdGUgfX08L2g0PlxuICA8L2Rpdj5cbjwvYzh5LXdpemFyZC1oZWFkZXI+XG5cbjxjOHktd2l6YXJkLWJvZHkgaWQ9XCJtb2RhbC1ib2R5XCI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNEZXBsb3llZFwiPlxuICAgIDxkaXYgY2xhc3M9XCJmYWRlSW4gYW5pbWF0ZWQgZC1mbGV4IGEtaS1jZW50ZXIgai1jLWNlbnRlciBkLWNvbFwiIHN0eWxlPVwibWluLWhlaWdodDogMzA5cHhcIj5cbiAgICAgIDxwXG4gICAgICAgIGNsYXNzPVwiYmctbGV2ZWwtMCBmaXQtdyBwLTE2IHRleHQtY2VudGVyIHRleHQtbWVkaXVtIHN0aWNreS10b3AgYmctbGV2ZWwtMCBzZXBhcmF0b3ItYm90dG9tXCJcbiAgICAgICAgKm5nSWY9XCIhaW5Qcm9ncmVzc1wiXG4gICAgICA+XG4gICAgICAgIHt7IGhlYWRlclRleHQgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvcD5cbiAgICAgIDxjOHktYXBwbGljYXRpb24tcHJvcGVydGllcy1mb3JtXG4gICAgICAgICpuZ0lmPVwiIWluUHJvZ3Jlc3NcIlxuICAgICAgICBbYXBwbGljYXRpb25dPVwibmV3QXBwQ29uZmlnXCJcbiAgICAgICAgY2xhc3M9XCJkLWJsb2NrIGZpdC13IGJnLWxldmVsLTFcIlxuICAgICAgPjwvYzh5LWFwcGxpY2F0aW9uLXByb3BlcnRpZXMtZm9ybT5cblxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpblByb2dyZXNzXCI+XG4gICAgICAgIDxkaXYgW25nU3R5bGVdPVwieyBwYWRkaW5nOiAnMCAxNnB4JyB9XCIgY2xhc3M9XCJkLWJsb2NrIGZpdC13IGJnLWdyYXktd2hpdGVcIj5cbiAgICAgICAgICA8Yzh5LXBhY2thZ2UtdmVyc2lvbi1zZWxlY3QgW25nTW9kZWxdPVwibW9kZWwuc2VsZWN0ZWRcIiAobmdNb2RlbENoYW5nZSk9XCJvbkFwcFZlcnNpb25TZWxlY3QoJGV2ZW50KVwiIFtwYWNrYWdlSWRdPVwicGFja2FnZT8uaWRcIiBbbGFiZWxdPVwiJ1VzZSBwYWNrYWdlIHZlcnNpb24nIHwgdHJhbnNsYXRlXCI+PC9jOHktcGFja2FnZS12ZXJzaW9uLXNlbGVjdD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPGM4eS1wcm9ncmVzcy1iYXJcbiAgICAgICAgKm5nSWY9XCJpblByb2dyZXNzXCJcbiAgICAgICAgW21lc3NhZ2VdPVwiJ0RlcGxveWluZ+KApicgfCB0cmFuc2xhdGVcIlxuICAgICAgICBjbGFzcz1cInRleHQtY2VudGVyXCJcbiAgICAgID48L2M4eS1wcm9ncmVzcy1iYXI+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0RlcGxveWVkXCI+XG4gICAgPGRpdlxuICAgICAgKm5nSWY9XCJkZXBsb3llZFdpdGhTdWNjZXNzOyBlbHNlIGZhaWxlZERlcGxveVwiXG4gICAgICBjbGFzcz1cIm1vZGFsLWJvZHkgZmFkZUluIGFuaW1hdGVkXCJcbiAgICAgIHN0eWxlPVwibWluLWhlaWdodDogMzA5cHhcIlxuICAgID5cbiAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYS1pLWNlbnRlciBqLWMtY2VudGVyIGQtY29sXCI+XG4gICAgICAgIDxjOHktb3BlcmF0aW9uLXJlc3VsdFxuICAgICAgICAgIHR5cGU9XCJzdWNjZXNzXCJcbiAgICAgICAgICBbc2l6ZV09XCI4NFwiXG4gICAgICAgICAgW3ZlcnRpY2FsXT1cInRydWVcIlxuICAgICAgICAgIFt0ZXh0XT1cInN1Y2Nlc3NNZXNzYWdlVGVtcGxhdGUgfCB0cmFuc2xhdGU6IHsgcGFja2FnZU5hbWU6IHBhY2thZ2UubmFtZSB9XCJcbiAgICAgICAgICBjbGFzcz1cImxlYWQgZC1ibG9jayBtLWItMTZcIlxuICAgICAgICA+PC9jOHktb3BlcmF0aW9uLXJlc3VsdD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxuZy10ZW1wbGF0ZSAjZmFpbGVkRGVwbG95PlxuICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHkgZmFkZUluIGFuaW1hdGVkIHRleHQtY2VudGVyXCIgc3R5bGU9XCJtaW4taGVpZ2h0OiAyNTdweFwiPlxuICAgICAgICA8Yzh5LW9wZXJhdGlvbi1yZXN1bHRcbiAgICAgICAgICB0eXBlPVwiZXJyb3JcIlxuICAgICAgICAgIFtzaXplXT1cIjg0XCJcbiAgICAgICAgICBbdmVydGljYWxdPVwidHJ1ZVwiXG4gICAgICAgICAgdGV4dD1cInt7ICdBcHBsaWNhdGlvbiBjcmVhdGlvbiBmYWlsZWQnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICBjbGFzcz1cImxlYWRcIlxuICAgICAgICA+PC9jOHktb3BlcmF0aW9uLXJlc3VsdD5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvbmctY29udGFpbmVyPlxuPC9jOHktd2l6YXJkLWJvZHk+XG5cbjxjOHktd2l6YXJkLWZvb3Rlcj5cbiAgPGJ1dHRvblxuICAgIChjbGljayk9XCJjYW5jZWwoKVwiXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHRcIlxuICAgIHRpdGxlPVwie3sgKGlzRGVwbG95ZWQgJiYgZGVwbG95ZWRXaXRoU3VjY2VzcyA/IGRvbmVMYWJlbCA6IGNhbmNlbExhYmVsKSB8IHRyYW5zbGF0ZSB9fVwiXG4gID5cbiAgICB7eyAoaXNEZXBsb3llZCAmJiBkZXBsb3llZFdpdGhTdWNjZXNzID8gZG9uZUxhYmVsIDogY2FuY2VsTGFiZWwpIHwgdHJhbnNsYXRlIH19XG4gIDwvYnV0dG9uPlxuXG4gIDxidXR0b25cbiAgICAoY2xpY2spPVwiZGVwbG95QXBwKClcIlxuICAgICpuZ0lmPVwiIWlzRGVwbG95ZWRcIlxuICAgIFtkaXNhYmxlZF09XCJpblByb2dyZXNzIHx8ICFjYW5EZXBsb3lcIlxuICAgIFtuZ0NsYXNzXT1cInsgJ2J0bi1wZW5kaW5nJzogaW5Qcm9ncmVzcyB9XCJcbiAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgdGl0bGU9XCJ7eyAnRGVwbG95JyB8IHRyYW5zbGF0ZSB9fVwiXG4gID5cbiAgICB7eyAnRGVwbG95JyB8IHRyYW5zbGF0ZSB9fVxuICA8L2J1dHRvbj5cblxuICA8YnV0dG9uXG4gICAgKGNsaWNrKT1cIm9wZW4oKVwiXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIlxuICAgICpuZ0lmPVwiaXNEZXBsb3llZCAmJiBkZXBsb3llZFdpdGhTdWNjZXNzXCJcbiAgICB0aXRsZT1cInt7ICdPcGVuIHRoZSBhcHBsaWNhdGlvbiBkZXRhaWxzJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgdHJhbnNsYXRlXG4gID5cbiAgICBPcGVuXG4gIDwvYnV0dG9uPlxuPC9jOHktd2l6YXJkLWZvb3Rlcj5cbiJdfQ==
|
|
113
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95LWFwcGxpY2F0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2Vjb3N5c3RlbS9wYWNrYWdlcy9kZXBsb3ktYXBwbGljYXRpb24vZGVwbG95LWFwcGxpY2F0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2Vjb3N5c3RlbS9wYWNrYWdlcy9kZXBsb3ktYXBwbGljYXRpb24vZGVwbG95LWFwcGxpY2F0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV6QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM5RixPQUFPLEVBQ0wsa0NBQWtDLEVBQ2xDLGdCQUFnQixFQUNoQixrQkFBa0IsRUFDbkIsTUFBTSxzQ0FBc0MsQ0FBQztBQUM5QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sV0FBVyxDQUFDOzs7Ozs7OztBQU1qQyxNQUFNLE9BQU8sMEJBQTBCO0lBNkJyQyxZQUNVLGdCQUFrQyxFQUNsQyxlQUFnQyxFQUNoQyxTQUEyQixFQUMzQixnQkFBa0MsRUFDbEMsTUFBYztRQUpkLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzNCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQWpDeEIscUJBQWdCLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQztRQUVqQyxlQUFVLEdB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bUdBOzJGRG5GYSwwQkFBMEI7a0JBSnRDLFNBQVM7K0JBQ0Usd0JBQXdCO3dOQXNCbEMseUJBQXlCO3NCQUR4QixTQUFTO3VCQUFDLGtDQUFrQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBJQXBwbGljYXRpb24sIElBcHBsaWNhdGlvblZlcnNpb24gfSBmcm9tICdAYzh5L2NsaWVudCc7XG5pbXBvcnQgeyBHYWluc2lnaHRTZXJ2aWNlLCBWaWV3Q29udGV4dCwgV2l6YXJkQ29tcG9uZW50LCBnZXR0ZXh0IH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQge1xuICBBcHBsaWNhdGlvblByb3BlcnRpZXNGb3JtQ29tcG9uZW50LFxuICBFY29zeXN0ZW1TZXJ2aWNlLFxuICBQUk9EVUNUX0VYUEVSSUVOQ0Vcbn0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9lY29zeXN0ZW0vc2hhcmVkJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IHBpY2sgfSBmcm9tICdsb2Rhc2gtZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktZGVwbG95LWFwcGxpY2F0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RlcGxveS1hcHBsaWNhdGlvbi5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgRGVwbG95QXBwbGljYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBDVVJSRU5UX0xPQ0FUSU9OID0gbG9jYXRpb24uaHJlZjtcblxuICBpblByb2dyZXNzOiBib29sZWFuID0gdHJ1ZTtcbiAgcGFja2FnZTogSUFwcGxpY2F0aW9uO1xuICBpc0RlcGxveWVkOiBib29sZWFuID0gZmFsc2U7XG4gIGRlcGxveWVkV2l0aFN1Y2Nlc3M6IGJvb2xlYW4gPSBmYWxzZTtcbiAgbmV3QXBwQ29uZmlnOiBJQXBwbGljYXRpb247XG4gIGRlcGxveWVkQXBwOiBJQXBwbGljYXRpb247XG5cbiAgbW9kZWwgPSB7XG4gICAgc2VsZWN0ZWQ6IHVuZGVmaW5lZCxcbiAgICBiaW5hcnk6IHtcbiAgICAgIGlkOiB1bmRlZmluZWRcbiAgICB9XG4gIH07XG4gIGNhbkRlcGxveTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBWaWV3Q2hpbGQoQXBwbGljYXRpb25Qcm9wZXJ0aWVzRm9ybUNvbXBvbmVudClcbiAgYXBwbGljYXRpb25Qcm9wZXJ0aWVzRm9ybTogQXBwbGljYXRpb25Qcm9wZXJ0aWVzRm9ybUNvbXBvbmVudDtcblxuICByZWFkb25seSBkZXNjcmlwdGlvblRlbXBsYXRlOiBzdHJpbmcgPSBnZXR0ZXh0KFxuICAgICdEZXBsb3kgYXBwbGljYXRpb24gdXNpbmcgXCJ7eyBwYWNrYWdlTmFtZSB9fVwiIHBhY2thZ2UnXG4gICk7XG4gIHJlYWRvbmx5IHN1Y2Nlc3NNZXNzYWdlVGVtcGxhdGUgPSBnZXR0ZXh0KCdBcHBsaWNhdGlvbiBcInt7IHBhY2thZ2VOYW1lIH19XCIgY3JlYXRlZCcpO1xuICByZWFkb25seSBkb25lTGFiZWwgPSBnZXR0ZXh0KCdEb25lJyk7XG4gIHJlYWRvbmx5IGNhbmNlbExhYmVsID0gZ2V0dGV4dCgnQ2FuY2VsJyk7XG4gIGhlYWRlclRleHQ6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVjb3N5c3RlbVNlcnZpY2U6IEVjb3N5c3RlbVNlcnZpY2UsXG4gICAgcHJpdmF0ZSB3aXphcmRDb21wb25lbnQ6IFdpemFyZENvbXBvbmVudCxcbiAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIGdhaW5zaWdodFNlcnZpY2U6IEdhaW5zaWdodFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlclxuICApIHtcbiAgICB0aGlzLnBhY2thZ2UgPSAodGhpcy53aXphcmRDb21wb25lbnQgYXMgYW55KS5wYWNrYWdlO1xuICB9XG5cbiAgYXN5bmMgbmdPbkluaXQoKSB7XG4gICAgY29uc3QgYXBwcyA9IGF3YWl0IHRoaXMuZWNvc3lzdGVtU2VydmljZS5nZXRIb3N0ZWRBbmRQYWNrYWdlQXBwbGljYXRpb25zKCk7XG4gICAgdGhpcy5uZXdBcHBDb25maWcgPSB0aGlzLmVjb3N5c3RlbVNlcnZpY2UuZ2V0VW5pcXVlQXBwQ29uZmlnKHRoaXMucGFja2FnZSwgYXBwcyk7XG4gICAgdGhpcy5oZWFkZXJUZXh0ID0gdGhpcy5nZXRIZWFkZXJUZXh0KCk7XG4gICAgdGhpcy5pblByb2dyZXNzID0gZmFsc2U7XG4gIH1cblxuICBhc3luYyBkZXBsb3lBcHAoKSB7XG4gICAgdGhpcy5pblByb2dyZXNzID0gdHJ1ZTtcbiAgICBjb25zdCBmb3JtR3JvdXBWYWx1ZSA9IHRoaXMuYXBwbGljYXRpb25Qcm9wZXJ0aWVzRm9ybS5mb3JtR3JvdXAuZ2V0UmF3VmFsdWUoKTtcbiAgICB0aGlzLnBhY2thZ2UubWFuaWZlc3QudmVyc2lvbiA9IHRoaXMubW9kZWwuc2VsZWN0ZWQudmVyc2lvbjtcblxuICAgIHRyeSB7XG4gICAgICB0aGlzLmRlcGxveWVkQXBwID0gYXdhaXQgdGhpcy5lY29zeXN0ZW1TZXJ2aWNlLmRlcGxveUFwcChcbiAgICAgICAgdGhpcy5wYWNrYWdlLFxuICAgICAgICBmb3JtR3JvdXBWYWx1ZSxcbiAgICAgICAgdGhpcy5tb2RlbFxuICAgICAgKTtcbiAgICAgIHRoaXMuZGVwbG95ZWRXaXRoU3VjY2VzcyA9IHRydWU7XG4gICAgICBjb25zdCBhcHBsaWNhdGlvbkN1c3RvbUV2ZW50SW5mbyA9IHBpY2sodGhpcy5wYWNrYWdlLCBbXG4gICAgICAgICdpZCcsXG4gICAgICAgICduYW1lJyxcbiAgICAgICAgJ2NvbnRleHRQYXRoJyxcbiAgICAgICAgJ2xhYmVsJyxcbiAgICAgICAgJ2tleSdcbiAgICAgIF0pO1xuICAgICAgdGhpcy5nYWluc2lnaHRTZXJ2aWNlLnRyaWdnZXJFdmVudChcbiAgICAgICAgUFJPRFVDVF9FWFBFUklFTkNFLkFQUExJQ0FUSU9OUy5FVkVOVFMuREVQTE9ZX0FQUExJQ0FUSU9OLFxuICAgICAgICB7XG4gICAgICAgICAgY29tcG9uZW50OiBQUk9EVUNUX0VYUEVSSUVOQ0UuQVBQTElDQVRJT05TLkNPTVBPTkVOVFMuREVQTE9ZX0FQUExJQ0FUSU9OLFxuICAgICAgICAgIGFjdGlvbjogUFJPRFVDVF9FWFBFUklFTkNFLkFQUExJQ0FUSU9OUy5BQ1RJT05TLkRFUExPWV9BUFBMSUNBVElPTixcbiAgICAgICAgICByZXN1bHQ6IFBST0RVQ1RfRVhQRVJJRU5DRS5BUFBMSUNBVElPTlMuUkVTVUxUUy5ERVBMT1lFRCxcbiAgICAgICAgICB1cmw6IHRoaXMuQ1VSUkVOVF9MT0NBVElPTixcbiAgICAgICAgICAuLi5hcHBsaWNhdGlvbkN1c3RvbUV2ZW50SW5mbyxcbiAgICAgICAgICBwYWNrYWdlOiB0aGlzLmRlcGxveWVkQXBwPy5tYW5pZmVzdD8ucGFja2FnZSA/PyBudWxsXG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRoaXMuZWNvc3lzdGVtU2VydmljZS5hbGVydEVycm9yKGVycm9yKTtcbiAgICAgIHRoaXMuZ2FpbnNpZ2h0U2VydmljZS50cmlnZ2VyRXZlbnQoXG4gICAgICAgIFBST0RVQ1RfRVhQRVJJRU5DRS5BUFBMSUNBVElPTlMuRVZFTlRTLkRFUExPWV9BUFBMSUNBVElPTixcbiAgICAgICAge1xuICAgICAgICAgIGNvbXBvbmVudDogUFJPRFVDVF9FWFBFUklFTkNFLkFQUExJQ0FUSU9OUy5DT01QT05FTlRTLkRFUExPWV9BUFBMSUNBVElPTixcbiAgICAgICAgICBhY3Rpb246IFBST0RVQ1RfRVhQRVJJRU5DRS5BUFBMSUNBVElPTlMuQUNUSU9OUy5ERVBMT1lfQVBQTElDQVRJT04sXG4gICAgICAgICAgcmVzdWx0OiBQUk9EVUNUX0VYUEVSSUVOQ0UuQVBQTElDQVRJT05TLlJFU1VMVFMuU0VSVkVSX0ZBSUxVUkUsXG4gICAgICAgICAgdXJsOiB0aGlzLkNVUlJFTlRfTE9DQVRJT04sXG4gICAgICAgICAgZXJyb3JcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5tYXJrQXNEZXBsb3llZCgpO1xuICAgIH1cbiAgfVxuXG4gIGNhbmNlbCgpIHtcbiAgICB0aGlzLndpemFyZENvbXBvbmVudC5jbG9zZSgpO1xuICB9XG5cbiAgb25BcHBWZXJzaW9uU2VsZWN0KGFwcFZlcnNpb246IElBcHBsaWNhdGlvblZlcnNpb24pIHtcbiAgICBPYmplY3QuYXNzaWduKHRoaXMubW9kZWwsIHtcbiAgICAgIHNlbGVjdGVkOiBhcHBWZXJzaW9uXG4gICAgfSk7XG4gICAgdGhpcy5jYW5EZXBsb3kgPSB0cnVlO1xuICB9XG5cbiAgb3BlbigpIHtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKFZpZXdDb250ZXh0LkFwcGxpY2F0aW9uLnJlcGxhY2UoJzppZCcsIGAke3RoaXMuZGVwbG95ZWRBcHAuaWR9YCkpO1xuICAgIHRoaXMuY2FuY2VsKCk7XG4gIH1cblxuICBwcml2YXRlIG1hcmtBc0RlcGxveWVkKCkge1xuICAgIHRoaXMuaXNEZXBsb3llZCA9IHRydWU7XG4gICAgdGhpcy5pblByb2dyZXNzID0gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGdldEhlYWRlclRleHQoKSB7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmluc3RhbnQodGhpcy5kZXNjcmlwdGlvblRlbXBsYXRlLCB7XG4gICAgICBwYWNrYWdlTmFtZTogdGhpcy5wYWNrYWdlLm5hbWVcbiAgICB9KTtcbiAgfVxufVxuIiwiPGM4eS13aXphcmQtaGVhZGVyPlxuICA8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyIGRpYWxvZy1oZWFkZXJcIj5cbiAgICA8aSBjOHlJY29uPVwib3V0cHV0XCI+PC9pPlxuICAgIDxoNCBpZD1cIm1vZGFsLXRpdGxlXCI+e3sgJ0RlcGxveSBhcHBsaWNhdGlvbicgfCB0cmFuc2xhdGUgfX08L2g0PlxuICA8L2Rpdj5cbjwvYzh5LXdpemFyZC1oZWFkZXI+XG5cbjxjOHktd2l6YXJkLWJvZHkgaWQ9XCJtb2RhbC1ib2R5XCI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNEZXBsb3llZFwiPlxuICAgIDxkaXYgY2xhc3M9XCJmYWRlSW4gYW5pbWF0ZWQgZC1mbGV4IGEtaS1jZW50ZXIgai1jLWNlbnRlciBkLWNvbFwiIHN0eWxlPVwibWluLWhlaWdodDogMzA5cHhcIj5cbiAgICAgIDxwXG4gICAgICAgIGNsYXNzPVwiYmctbGV2ZWwtMCBmaXQtdyBwLTE2IHRleHQtY2VudGVyIHRleHQtbWVkaXVtIHN0aWNreS10b3AgYmctbGV2ZWwtMCBzZXBhcmF0b3ItYm90dG9tXCJcbiAgICAgICAgKm5nSWY9XCIhaW5Qcm9ncmVzc1wiXG4gICAgICA+XG4gICAgICAgIHt7IGhlYWRlclRleHQgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvcD5cbiAgICAgIDxjOHktYXBwbGljYXRpb24tcHJvcGVydGllcy1mb3JtXG4gICAgICAgICpuZ0lmPVwiIWluUHJvZ3Jlc3NcIlxuICAgICAgICBbYXBwbGljYXRpb25dPVwibmV3QXBwQ29uZmlnXCJcbiAgICAgICAgY2xhc3M9XCJkLWJsb2NrIGZpdC13IGJnLWxldmVsLTFcIlxuICAgICAgPjwvYzh5LWFwcGxpY2F0aW9uLXByb3BlcnRpZXMtZm9ybT5cblxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpblByb2dyZXNzXCI+XG4gICAgICAgIDxkaXYgW25nU3R5bGVdPVwieyBwYWRkaW5nOiAnMCAxNnB4JyB9XCIgY2xhc3M9XCJkLWJsb2NrIGZpdC13IGJnLWdyYXktd2hpdGVcIj5cbiAgICAgICAgICA8Yzh5LXBhY2thZ2UtdmVyc2lvbi1zZWxlY3QgW25nTW9kZWxdPVwibW9kZWwuc2VsZWN0ZWRcIiAobmdNb2RlbENoYW5nZSk9XCJvbkFwcFZlcnNpb25TZWxlY3QoJGV2ZW50KVwiIFtwYWNrYWdlSWRdPVwicGFja2FnZT8uaWRcIiBbbGFiZWxdPVwiJ1VzZSBwYWNrYWdlIHZlcnNpb24nIHwgdHJhbnNsYXRlXCI+PC9jOHktcGFja2FnZS12ZXJzaW9uLXNlbGVjdD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPGM4eS1wcm9ncmVzcy1iYXJcbiAgICAgICAgKm5nSWY9XCJpblByb2dyZXNzXCJcbiAgICAgICAgW21lc3NhZ2VdPVwiJ0RlcGxveWluZ+KApicgfCB0cmFuc2xhdGVcIlxuICAgICAgICBjbGFzcz1cInRleHQtY2VudGVyXCJcbiAgICAgID48L2M4eS1wcm9ncmVzcy1iYXI+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0RlcGxveWVkXCI+XG4gICAgPGRpdlxuICAgICAgKm5nSWY9XCJkZXBsb3llZFdpdGhTdWNjZXNzOyBlbHNlIGZhaWxlZERlcGxveVwiXG4gICAgICBjbGFzcz1cIm1vZGFsLWJvZHkgZmFkZUluIGFuaW1hdGVkXCJcbiAgICAgIHN0eWxlPVwibWluLWhlaWdodDogMzA5cHhcIlxuICAgID5cbiAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYS1pLWNlbnRlciBqLWMtY2VudGVyIGQtY29sXCI+XG4gICAgICAgIDxjOHktb3BlcmF0aW9uLXJlc3VsdFxuICAgICAgICAgIHR5cGU9XCJzdWNjZXNzXCJcbiAgICAgICAgICBbc2l6ZV09XCI4NFwiXG4gICAgICAgICAgW3ZlcnRpY2FsXT1cInRydWVcIlxuICAgICAgICAgIFt0ZXh0XT1cInN1Y2Nlc3NNZXNzYWdlVGVtcGxhdGUgfCB0cmFuc2xhdGU6IHsgcGFja2FnZU5hbWU6IHBhY2thZ2UubmFtZSB9XCJcbiAgICAgICAgICBjbGFzcz1cImxlYWQgZC1ibG9jayBtLWItMTZcIlxuICAgICAgICA+PC9jOHktb3BlcmF0aW9uLXJlc3VsdD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxuZy10ZW1wbGF0ZSAjZmFpbGVkRGVwbG95PlxuICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHkgZmFkZUluIGFuaW1hdGVkIHRleHQtY2VudGVyXCIgc3R5bGU9XCJtaW4taGVpZ2h0OiAyNTdweFwiPlxuICAgICAgICA8Yzh5LW9wZXJhdGlvbi1yZXN1bHRcbiAgICAgICAgICB0eXBlPVwiZXJyb3JcIlxuICAgICAgICAgIFtzaXplXT1cIjg0XCJcbiAgICAgICAgICBbdmVydGljYWxdPVwidHJ1ZVwiXG4gICAgICAgICAgdGV4dD1cInt7ICdBcHBsaWNhdGlvbiBjcmVhdGlvbiBmYWlsZWQnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICBjbGFzcz1cImxlYWRcIlxuICAgICAgICA+PC9jOHktb3BlcmF0aW9uLXJlc3VsdD5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvbmctY29udGFpbmVyPlxuPC9jOHktd2l6YXJkLWJvZHk+XG5cbjxjOHktd2l6YXJkLWZvb3Rlcj5cbiAgPGJ1dHRvblxuICAgIChjbGljayk9XCJjYW5jZWwoKVwiXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHRcIlxuICAgIHRpdGxlPVwie3sgKGlzRGVwbG95ZWQgJiYgZGVwbG95ZWRXaXRoU3VjY2VzcyA/IGRvbmVMYWJlbCA6IGNhbmNlbExhYmVsKSB8IHRyYW5zbGF0ZSB9fVwiXG4gID5cbiAgICB7eyAoaXNEZXBsb3llZCAmJiBkZXBsb3llZFdpdGhTdWNjZXNzID8gZG9uZUxhYmVsIDogY2FuY2VsTGFiZWwpIHwgdHJhbnNsYXRlIH19XG4gIDwvYnV0dG9uPlxuXG4gIDxidXR0b25cbiAgICAoY2xpY2spPVwiZGVwbG95QXBwKClcIlxuICAgICpuZ0lmPVwiIWlzRGVwbG95ZWRcIlxuICAgIFtkaXNhYmxlZF09XCJpblByb2dyZXNzIHx8ICFjYW5EZXBsb3lcIlxuICAgIFtuZ0NsYXNzXT1cInsgJ2J0bi1wZW5kaW5nJzogaW5Qcm9ncmVzcyB9XCJcbiAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgdGl0bGU9XCJ7eyAnRGVwbG95JyB8IHRyYW5zbGF0ZSB9fVwiXG4gID5cbiAgICB7eyAnRGVwbG95JyB8IHRyYW5zbGF0ZSB9fVxuICA8L2J1dHRvbj5cblxuICA8YnV0dG9uXG4gICAgKGNsaWNrKT1cIm9wZW4oKVwiXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIlxuICAgICpuZ0lmPVwiaXNEZXBsb3llZCAmJiBkZXBsb3llZFdpdGhTdWNjZXNzXCJcbiAgICB0aXRsZT1cInt7ICdPcGVuIHRoZSBhcHBsaWNhdGlvbiBkZXRhaWxzJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgdHJhbnNsYXRlXG4gID5cbiAgICBPcGVuXG4gIDwvYnV0dG9uPlxuPC9jOHktd2l6YXJkLWZvb3Rlcj5cbiJdfQ==
|