raain-app 1.0.7 → 1.0.9
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/profile.service.mjs +3 -2
- package/esm2020/raain-configuration/raain-configuration.component.mjs +3 -3
- package/esm2020/tools/RefreshManager.mjs +9 -6
- package/fesm2015/raain-app.mjs +12 -8
- package/fesm2015/raain-app.mjs.map +1 -1
- package/fesm2020/raain-app.mjs +12 -8
- package/fesm2020/raain-app.mjs.map +1 -1
- package/package.json +2 -2
- package/profile.service.d.ts +1 -1
- package/tools/RefreshManager.d.ts +4 -2
|
@@ -181,13 +181,14 @@ export class ProfileService {
|
|
|
181
181
|
data['configurationAsJSON'] = configurationAsJSON;
|
|
182
182
|
}
|
|
183
183
|
try {
|
|
184
|
-
await this.fidjAngularService.sendOnEndpoint({
|
|
184
|
+
const resp = await this.fidjAngularService.sendOnEndpoint({
|
|
185
185
|
key: 'radars',
|
|
186
186
|
relativePath: radarNode.id,
|
|
187
187
|
verb: 'PUT',
|
|
188
188
|
data,
|
|
189
189
|
defaultKeyUrl: this.defaultUrlForAPI + '/radars/'
|
|
190
190
|
});
|
|
191
|
+
return new RadarNode(resp);
|
|
191
192
|
}
|
|
192
193
|
catch (e) {
|
|
193
194
|
console.error('removeRadar error:', e);
|
|
@@ -443,4 +444,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
443
444
|
providedIn: 'root'
|
|
444
445
|
}]
|
|
445
446
|
}], ctorParameters: function () { return [{ type: i1.Storage }, { type: i2.FidjService }, { type: i3.HttpClient }]; } });
|
|
446
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FwcC9zaGFyZWQvcHJvZmlsZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNyQyxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixTQUFTLEVBQ1QsU0FBUyxFQUNULGVBQWUsRUFDZixrQkFBa0IsRUFDbEIsc0JBQXNCLEVBQ3RCLFFBQVEsRUFDUixvQkFBb0IsRUFDcEIsUUFBUSxFQUNULE1BQU0sYUFBYSxDQUFDO0FBSXJCLE9BQU8sRUFBQyxXQUFXLEVBQWtCLE1BQU0sc0JBQXNCLENBQUM7QUFFbEUsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLFVBQVUsQ0FBQztBQUNoQyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sU0FBUyxDQUFDOzs7OztBQUt4QyxNQUFNLE9BQU8sY0FBYztJQVV6QixZQUFzQixPQUFnQixFQUNoQixrQkFBK0IsRUFDL0IsSUFBZ0I7UUFGaEIsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUNoQix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQWE7UUFDL0IsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUdwQyxrREFBa0Q7UUFDbEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBRXZDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksSUFBSSxDQUFDO1FBQy9DLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksSUFBSSxDQUFDO1FBQ3JELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFD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R0FBRyxPQUFPLEdBQUcsa0JBQWtCLEdBQUcsS0FBSyxDQUFDLFdBQVcsRUFBRSxHQUFHLE9BQU8sR0FBRyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDeEcsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsa0JBQWtCLENBQUMsY0FBYyxDQUFDO1lBQ3hELEdBQUcsRUFBRSxRQUFRO1lBQ2IsSUFBSSxFQUFFLEtBQUs7WUFDWCxZQUFZLEVBQUUsU0FBUztZQUN2QixhQUFhLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFNBQVM7U0FDakQsQ0FBQyxDQUFDO1FBRUgsTUFBTSxhQUFhLEdBQW1CLEVBQUUsQ0FBQztRQUN6QyxLQUFLLE1BQU0sWUFBWSxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDN0MsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO1NBQ3BEO1FBQ0QsT0FBTyxhQUFhLENBQUM7SUFDdkIsQ0FBQztJQUVELGtCQUFrQjtJQUVSLFFBQVEsQ0FBQyxLQUFvQjtRQUNyQyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNyQixDQUFDOzs0R0E5ZVUsY0FBYztnSEFBZCxjQUFjLGNBRmIsTUFBTTs0RkFFUCxjQUFjO2tCQUgxQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0h0dHBDbGllbnR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIEV2ZW50Tm9kZSxcbiAgR2F1Z2VNZWFzdXJlLFxuICBHYXVnZU5vZGUsXG4gIFJhZGFyTm9kZSxcbiAgUmFpbkNvbXB1dGF0aW9uLFxuICBSYWluQ29tcHV0YXRpb25NYXAsXG4gIFJhaW5Db21wdXRhdGlvblF1YWxpdHksXG4gIFJhaW5Ob2RlLFxuICBTcGVlZE1hdHJpeENvbnRhaW5lcixcbiAgVGVhbU5vZGVcbn0gZnJvbSAncmFhaW4tbW9kZWwnO1xuXG5pbXBvcnQge1N0b3JhZ2V9IGZyb20gJy4vc3RvcmFnZS5zZXJ2aWNlJztcblxuaW1wb3J0IHtGaWRqU3RvcmFnZSwgRmlkalN0b3JhZ2VOb2RlfSBmcm9tICcuL2ZpZGotc3RvcmFnZS5tb2RlbCc7XG5pbXBvcnQge0ZpZGpTZXJ2aWNlfSBmcm9tICdmaWRqJztcbmltcG9ydCB7WFlUeXBlfSBmcm9tICcuL3h5dHlwZSc7XG5pbXBvcnQge0dhdWdlTm9kZUZpbHRlcn0gZnJvbSAnLi90b29scyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFByb2ZpbGVTZXJ2aWNlIHtcbiAgcHVibGljIHJlYWR5Rm9yU3luYzogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+O1xuICBwdWJsaWMgYXNUZWFtSWQ6IHN0cmluZztcblxuICBwcm90ZWN0ZWQgZW1haWw6IHN0cmluZztcbiAgcHJvdGVjdGVkIGlzRGVtbzogYm9vbGVhbjtcbiAgcHJvdGVjdGVkIHJvbGVzOiBBcnJheTxzdHJpbmc+O1xuICBwcm90ZWN0ZWQgbm9kZURhdGE6IEZpZGpTdG9yYWdlTm9kZTtcbiAgcHJvdGVjdGVkIGZpZGpTdG9yYWdlOiBGaWRqU3RvcmFnZTtcblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgc3RvcmFnZTogU3RvcmFnZSxcbiAgICAgICAgICAgICAgcHJvdGVjdGVkIGZpZGpBbmd1bGFyU2VydmljZTogRmlkalNlcnZpY2UsXG4gICAgICAgICAgICAgIHByb3RlY3RlZCBodHRwOiBIdHRwQ2xpZW50KSB7XG5cblxuICAgIC8vIGNvbnN0IGRlZmF1bHRVcmxGb3JBUEkgPSBlbnZpcm9ubWVudC5zZXJ2ZXJVcmw7XG4gICAgY29uc29sZS5sb2coJ1Byb2ZpbGVTZXJ2aWNlOiBOZXcjIyMjJyk7XG5cbiAgICB0aGlzLmVtYWlsID0gdGhpcy5zdG9yYWdlLmdldCgnZW1haWwnKSB8fCBudWxsO1xuICAgIHRoaXMuYXNUZWFtSWQgPSB0aGlzLnN0b3JhZ2UuZ2V0KCdhc1RlYW1JZCcpIHx8IG51bGw7XG4gICAgdGhpcy5yZWFkeUZvclN5bmMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgICB0aGlzLnJvbGVzID0gW107XG4gICAgdGhpcy5maWRqU3RvcmFnZSA9IG5ldyBGaWRqU3RvcmFnZShzdG9yYWdlKTtcbiAgICB0aGlzLmlzRGVtb01vZGUgPSBmYWxzZTtcbiAgfVxuXG4gIGdldCBpc0RlbW9Nb2RlKCkge1xuICAgIHJldHVybiB0aGlzLmlzRGVtbztcbiAgfVxuXG4gIHNldCBpc0RlbW9Nb2RlKG1vZGUpIHtcbiAgICB0aGlzLmlzRGVtbyA9IG1vZGUgPyBtb2RlIDogdHJ1ZTtcbiAgICB0aGlzLmZpZGpTdG9yYWdlLnNldERlbW9Nb2RlKHRoaXMuaXNEZW1vKTtcbiAgfVxuXG4gIGdldCBkZWZhdWx0VXJsRm9yQVBJKCkge1xuICAgIHJldHVybiB0aGlzLnN0b3JhZ2UuZ2V0KCdVcmxGb3JBUEknKTtcbiAgfVxuXG4gIHNldCBkZWZhdWx0VXJsRm9yQVBJKHVybDogc3RyaW5nKSB7XG4gICAgdGhpcy5zdG9yYWdlLnNldCgnVXJsRm9yQVBJJywgdXJsKTtcbiAgfVxuXG4gIGFzeW5jIHJlZnJlc2hQcm9maWxlKCk6IFByb21pc2U8RmlkalN0b3JhZ2VOb2RlPiB7XG4gICAgdGhpcy5ub2RlRGF0YSA9IGF3YWl0IHRoaXMuZmlkalN0b3JhZ2UuZ2V0UmVmcmVzaGVkTm9kZUNvcHkodGhpcy5maWRqQW5ndWxhclNlcnZpY2UpO1xuICAgIHRoaXMuc2V0Um9sZXMoYXdhaXQgdGhpcy5maWRqQW5ndWxhclNlcnZpY2UuZ2V0Um9sZXMoKSk7XG4gICAgcmV0dXJuIHRoaXMubm9kZURhdGE7XG4gIH1cblxuICBnZXRFbWFpbCgpIHtcbiAgICByZXR1cm4gdGhpcy5lbWFpbDtcbiAgfVxuXG4gIHNldEVtYWlsKGVtYWlsOiBzdHJpbmcpIHtcbiAgICB0aGlzLmVtYWlsID0gZW1haWw7XG4gICAgdGhpcy5zdG9yYWdlLnNldCgnZW1haWwnLCB0aGlzLmVtYWlsKTtcbiAgfVxuXG4gIGxvZ291dCgpIHtcbiAgICB0aGlzLnN0b3JhZ2UucmVtb3ZlKCdlbWFpbCcpO1xuICB9XG5cbiAgaXNMb2dnZWRJbigpIHtcbiAgICByZXR1cm4gdGhpcy5maWRqQW5ndWxhclNlcnZpY2UuaXNMb2dnZWRJbigpO1xuICB9XG5cbiAgYXN5bmMgc3RvcmVBbGwoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmlkalN0b3JhZ2Uuc3RvcmVEYXRhKHRoaXMuZmlkakFuZ3VsYXJTZXJ2aWNlLCB0aGlzLm5vZGVEYXRhKTtcbiAgfVxuXG4gIC8vID09PSBOb3RpZmljYXRpb25zID09PVxuXG4gIGFzeW5jIGNyZWF0ZU5vdGlmaWNhdGlvbihyYWluSWQ6IHN0cmluZywgbWVzc2FnZTogc3RyaW5nKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3AgPSBhd2FpdCB0aGlzLmZpZGpBbmd1bGFyU2VydmljZS5zZW5kT25FbmRwb2ludCh7XG4gICAgICAgIGtleTogJ25vdGlmaWNhdGlvbnMnLFxuICAgICAgICB2ZXJiOiAnUE9TVCcsXG4gICAgICAgIGRlZmF1bHRLZXlVcmw6IHRoaXMuZGVmYXVsdFVybEZvckFQSSArICcvbm90aWZpY2F0aW9ucycsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICByYWluOiByYWluSWQsXG4gICAgICAgICAgbWVzc2FnZSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIG5ldyBFdmVudE5vZGUocmVzcCk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS5lcnJvcignY3JlYXRlTm90aWZpY2F0aW9uIGVycm9yOicsIGUpO1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgYXN5bmMgZ2V0Tm90aWZpY2F0aW9ucyhyYWluSWQ6IHN0cmluZykge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBhcmdzID0gJz9yYWluPScgKyByYWluSWQ7XG4gICAgICBjb25zdCByZXNwID0gYXdhaXQgdGhpcy5maWRqQW5ndWxhclNlcnZpY2Uuc2VuZE9uRW5kcG9pbnQoe1xuICAgICAgICBrZXk6ICdub3RpZmljYXRpb25zJyxcbiAgICAgICAgdmVyYjogJ0dFVCcsXG4gICAgICAgIHJlbGF0aXZlUGF0aDogYXJncyxcbiAgICAgICAgZGVmYXVsdEtleVVybDogdGhpcy5kZWZhdWx0VXJsRm9yQVBJICsgJy9ub3RpZmljYXRpb25zJyxcbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gcmVzcC5ub3RpZmljYXRpb25zLm1hcChuID0+IG5ldyBFdmVudE5vZGUobikpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ2NyZWF0ZU5vdGlmaWNhdGlvbiBlcnJvcjonLCBlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGFzeW5jIGdldEFsbE5vdGlmaWNhdGlvbnMoKTogUHJvbWlzZTxFdmVudE5vZGVbXT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwID0gYXdhaXQgdGhpcy5maWRqQW5ndWxhclNlcnZpY2Uuc2VuZE9uRW5kcG9pbnQoe1xuICAgICAgICBrZXk6ICdub3RpZmljYXRpb25zJyxcbiAgICAgICAgdmVyYjogJ0dFVCcsXG4gICAgICAgIGRlZmF1bHRLZXlVcmw6IHRoaXMuZGVmYXVsdFVybEZvckFQSSArICcvbm90aWZpY2F0aW9ucycsXG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIHJlc3Aubm90aWZpY2F0aW9ucy5tYXAobiA9PiBuZXcgRXZlbnROb2RlKG4pKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdjcmVhdGVOb3RpZmljYXRpb24gZXJyb3I6JywgZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgLy8gPT09IFRlYW1zID09PVxuXG4gIGFzeW5jIGdldFRlYW1zKCk6IFByb21pc2U8QXJyYXk8VGVhbU5vZGU+PiB7XG4gICAgY29uc3QgdGVhbXMgPSBbXTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcCA9IGF3YWl0IHRoaXMuZmlkakFuZ3VsYXJTZXJ2aWNlLnNlbmRPbkVuZHBvaW50KHtcbiAgICAgICAga2V5OiAndGVhbXNfYWxsJyxcbiAgICAgICAgdmVyYjogJ0dFVCcsXG4gICAgICAgIGRlZmF1bHRLZXlVcmw6IHRoaXMuZGVmYXVsdFVybEZvckFQSSArICcvdGVhbXNfYWxsJ1xuICAgICAgfSk7XG4gICAgICBmb3IgKGNvbnN0IHRlYW0gb2YgcmVzcC50ZWFtcykge1xuICAgICAgICB0ZWFtcy5wdXNoKG5ldyBUZWFtTm9kZSh0ZWFtKSk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS5lcnJvcignZ2V0VGVhbXMgZXJyb3I6JywgZSk7XG4gICAgfVxuICAgIHJldHVybiB0ZWFtcztcbiAgfVxuXG4gIGFzeW5jIGdldFRlYW0oaWQpOiBQcm9taXNlPFRlYW1Ob2RlPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3AgPSBhd2FpdCB0aGlzLmZpZGpBbmd1bGFyU2VydmljZS5zZW5kT25FbmRwb2ludCh7XG4gICAgICAgIGtleTogJ3RlYW1zJyxcbiAgICAgICAgdmVyYjogJ0dFVCcsXG4gICAgICAgIHJlbGF0aXZlUGF0aDogaWQsXG4gICAgICAgIGRlZmF1bHRLZXlVcmw6IHRoaXMuZGVmYXVsdFVybEZvckFQSSArICcvdGVhbXMnXG4gICAgICB9KTtcbiAgICAgIHJldHVybiBuZXcgVGVhbU5vZGUocmVzcCk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS5lcnJvcignZ2V0UmFkYXJzIGVycm9yOicsIGUpO1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLy8gPT09IFJhZGFycyA9PT1cblxuICBhc3luYyBnZXRSYWRhcnModGVhbUlkOiBzdHJpbmcpOiBQcm9taXNlPEFycmF5PFJhZGFyTm9kZT4+IHtcbiAgICBjb25zdCByYWRhcnMgPSBbXTtcbiAgICBjb25zdCB1cmwgPSB0aGlzLmRlZmF1bHRVcmxGb3JBUEkgKyAnL3JhZGFycycgKyAnP3RlYW1JZD0nICsgdGVhbUlkO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwID0gYXdhaXQgdGhpcy5maWRqQW5ndWxhclNlcnZpY2Uuc2VuZE9uRW5kcG9pbnQoe1xuICAgICAgICBrZXk6ICdyYWRhcnMnLFxuICAgICAgICB2ZXJiOiAnR0VUJyxcbiAgICAgICAgZGVmYXVsdEtleVVybDogdXJsLFxuICAgICAgfSk7XG4gICAgICBmb3IgKGNvbnN0IHIgb2YgcmVzcC5yYWRhcnMpIHtcbiAgICAgICAgY29uc3QgcmFkYXIgPSBuZXcgUmFkYXJOb2RlKHIpO1xuICAgICAgICByYWRhcnMucHVzaChyYWRhcik7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS5lcnJvcignZ2V0UmFkYXJzIGVycm9yOicsIGUpO1xuICAgIH1cbiAgICByZXR1cm4gcmFkYXJzO1xuICB9XG5cbiAgYXN5bmMgZ2V0UmFkYXIoaWQ6IHN0cmluZyk6IFByb21pc2U8UmFkYXJOb2RlPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3AgPSBhd2FpdCB0aGlzLmZpZGpBbmd1bGFyU2VydmljZS5zZW5kT25FbmRwb2ludCh7XG4gICAgICAgIGtleTogJ3JhZGFycycsXG4gICAgICAgIHZlcmI6ICdHRVQnLFxuICAgICAgICByZWxhdGl2ZVBhdGg6IGlkLFxuICAgICAgICBkZWZhdWx0S2V5VXJsOiB0aGlzLmRlZmF1bHRVcmxGb3JBUEkgKyAnL3JhZGFycydcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIG5ldyBSYWRhck5vZGUocmVzcCk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS5lcnJvcignZ2V0UmFkYXJzIGVycm9yOicsIGUpO1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgYXN5bmMgcHV0UmFkYXIocmFkYXJOb2RlOiBSYWRhck5vZGUsIGNvbmZpZ3VyYXRpb25Bc0pTT04/OiBhbnkpIHtcbiAgICBjb25zdCBkYXRhID0ge1xuICAgICAgbmFtZTogcmFkYXJOb2RlLm5hbWUsXG4gICAgfTtcblxuICAgIGlmIChjb25maWd1cmF0aW9uQXNKU09OKSB7XG4gICAgICBkYXRhWydjb25maWd1cmF0aW9uQXNKU09OJ10gPSBjb25maWd1cmF0aW9uQXNKU09OO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLmZpZGpBbmd1bGFyU2VydmljZS5zZW5kT25FbmRwb2ludCh7XG4gICAgICAgIGtleTogJ3JhZGFycycsXG4gICAgICAgIHJlbGF0aXZlUGF0aDogcmFkYXJOb2RlLmlkLFxuICAgICAgICB2ZXJiOiAnUFVUJyxcbiAgICAgICAgZGF0YSxcbiAgICAgICAgZGVmYXVsdEtleVVybDogdGhpcy5kZWZhdWx0VXJsRm9yQVBJICsgJy9yYWRhcnMvJ1xuICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS5lcnJvcigncmVtb3ZlUmFkYXIgZXJyb3I6JywgZSk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgZ2V0TG9uZWx5UmFkYXJzKHJhaW5zOiBSYWluTm9kZVtdKTogUHJvbWlzZTxSYWRhck5vZGVbXT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwID0gYXdhaXQgdGhpcy5maWRqQW5ndWxhclNlcnZpY2Uuc2VuZE9uRW5kcG9pbnQoe1xuICAgICAgICBrZXk6ICdyYWRhcnMnLFxuICAgICAgICB2ZXJiOiAnR0VUJyxcbiAgICAgICAgZGVmYXVsdEtleVVybDogdGhpcy5kZWZhdWx0VXJsRm9yQVBJICsgJy9yYWRhcnMnXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IGxvbmVseVJhZGFyczogUmFkYXJOb2RlW10gPSBbXTtcbiAgICAgIGNvbnN0IHJhZGFycyA9IHJlc3AucmFkYXJzO1xuICAgICAgcmFkYXJzLmZvckVhY2gocmFkYXIgPT4ge1xuICAgICAgICBsZXQgZm91bmQgPSBmYWxzZTtcbiAgICAgICAgcmFpbnMuZm9yRWFjaChyYWluID0+IHtcbiAgICAgICAgICBjb25zdCByZElkID0gcmFpbi5nZXRMaW5rSWQoJ3JhZGFyJywgMCk7XG4gICAgICAgICAgaWYgKHJkSWQgPT09IHJhZGFyLmlkKSB7XG4gICAgICAgICAgICBmb3VuZCA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKCFmb3VuZCkge1xuICAgICAgICAgIGxvbmVseVJhZGFycy5wdXNoKHJhZGFyKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICByZXR1cm4gbG9uZWx5UmFkYXJzO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ2dldExvbmVseVJhZGFycyBlcnJvcjonLCBlKTtcbiAgICB9XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgYXN5bmMgZ2V0UmFpblRpbWVmcmFtZShyYWluSWQ6IHN0cmluZywgYmVnaW46IERhdGUsIGVuZDogRGF0ZSk6IFByb21pc2U8UmFpbk5vZGU+IHtcbiAgICB0cnkge1xuICAgICAgbGV0IHF1ZXJ5UGF0aCA9ICcnICsgcmFpbklkICsgJz9mb3JtYXQ9dGltZWZyYW1lJztcbiAgICAgIGlmIChiZWdpbikge1xuICAgICAgICBxdWVyeVBhdGggKz0gJyZiZWdpbj0nICsgYmVnaW4udG9JU09TdHJpbmcoKTtcbiAgICAgIH1cbiAgICAgIGlmIChlbmQpIHtcbiAgICAgICAgcXVlcnlQYXRoICs9ICcmZW5kPScgKyBlbmQudG9JU09TdHJpbmcoKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHJlc3AgPSBhd2FpdCB0aGlzLmZpZGpBbmd1bGFyU2VydmljZS5zZW5kT25FbmRwb2ludCh7XG4gICAgICAgIGtleTogJ3JhaW5zJyxcbiAgICAgICAgdmVyYjogJ0dFVCcsXG4gICAgICAgIHJlbGF0aXZlUGF0aDogcXVlcnlQYXRoLFxuICAgICAgICBkZWZhdWx0S2V5VXJsOiB0aGlzLmRlZmF1bHRVcmxGb3JBUEkgKyAnL3JhaW5zJ1xuICAgICAgfSk7XG4gICAgICBjb25zdCByYWluTm9kZSA9IG5ldyBSYWluTm9kZShyZXNwWyd0aW1lZnJhbWUnXSk7XG4gICAgICByYWluTm9kZS5uYW1lICs9ICcucmFkYXIudGltZWZyYW1lJztcbiAgICAgIHJldHVybiByYWluTm9kZTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdnZXRSYWRhclRpbWVmcmFtZSBlcnJvcjonLCBlKTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvLyA9PT0gUmFpbnMgPT09XG5cbiAgYXN5bmMgZ2V0UmFpbnModGVhbUlkOiBzdHJpbmcpOiBQcm9taXNlPEFycmF5PFJhaW5Ob2RlPj4ge1xuICAgIGNvbnN0IHJhaW5zID0gW107XG4gICAgY29uc3QgdXJsID0gdGhpcy5kZWZhdWx0VXJsRm9yQVBJICsgJy9yYWlucz90ZWFtSWQ9JyArIHRlYW1JZDtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcCA9IGF3YWl0IHRoaXMuZmlkakFuZ3VsYXJTZXJ2aWNlLnNlbmRPbkVuZHBvaW50KHtcbiAgICAgICAga2V5OiAncmFpbnMnLFxuICAgICAgICB2ZXJiOiAnR0VUJyxcbiAgICAgICAgZGVmYXVsdEtleVVybDogdXJsLFxuICAgICAgfSk7XG4gICAgICBmb3IgKGNvbnN0IHJhaW4gb2YgcmVzcC5yYWlucykge1xuICAgICAgICByYWlucy5wdXNoKG5ldyBSYWluTm9kZShyYWluKSk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS5lcnJvcignZ2V0UmFpbnMgZXJyb3I6JywgZSk7XG4gICAgfVxuICAgIHJldHVybiByYWlucztcbiAgfVxuXG4gIGFzeW5jIGdldFJhaW4oaWQ6IHN0cmluZyk6IFByb21pc2U8UmFpbk5vZGU+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcCA9IGF3YWl0IHRoaXMuZmlkakFuZ3VsYXJTZXJ2aWNlLnNlbmRPbkVuZHBvaW50KHtcbiAgICAgICAga2V5OiAncmFpbnMnLFxuICAgICAgICByZWxhdGl2ZVBhdGg6IGlkLFxuICAgICAgICB2ZXJiOiAnR0VUJyxcbiAgICAgICAgZGVmYXVsdEtleVVybDogdGhpcy5kZWZhdWx0VXJsRm9yQVBJICsgJy9yYWlucy8nXG4gICAgICB9KTtcbiAgICAgIHJldHVybiBuZXcgUmFpbk5vZGUocmVzcCk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS5lcnJvcignZ2V0UmFpbnMgZXJyb3I6JywgZSk7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLy8gPT09IENvdW50XG5cbiAgYXN5bmMgZ2V0Q291bnRzKHJhaW5JZDogc3RyaW5nLFxuICAgICAgICAgICAgICAgICAgcGVyaW9kQmVnaW4/OiBEYXRlLFxuICAgICAgICAgICAgICAgICAgcGVyaW9kRW5kPzogRGF0ZSxcbiAgICAgICAgICAgICAgICAgIHdpdGhRdWFsaXRpZXM/OiBib29sZWFuKTogUHJvbWlzZTx7XG4gICAgcmFkYXJNZWFzdXJlczogWFlUeXBlW10sXG4gICAgZ2F1Z2VNZWFzdXJlczogWFlUeXBlW10sXG4gICAgY29tcHV0YXRpb25zQnlUZWFtOiBYWVR5cGVbXSxcbiAgfT4ge1xuICAgIHRyeSB7XG5cbiAgICAgIGxldCBhcmdzID0gJyc7XG4gICAgICBpZiAocGVyaW9kQmVnaW4gJiYgcGVyaW9kRW5kKSB7XG4gICAgICAgIGFyZ3MgPSAnP3BlcmlvZEJlZ2luPScgKyBwZXJpb2RCZWdpbi50b0lTT1N0cmluZygpICsgJyZwZXJpb2RFbmQ9JyArIHBlcmlvZEVuZC50b0lTT1N0cmluZygpO1xuICAgICAgfVxuICAgICAgaWYgKHdpdGhRdWFsaXRpZXMpIHtcbiAgICAgICAgYXJncyArPSAnJndpdGhRdWFsaXRpZXM9JyArIHdpdGhRdWFsaXRpZXM7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHJlc3AgPSBhd2FpdCB0aGlzLmZpZGpBbmd1bGFyU2VydmljZS5zZW5kT25FbmRwb2ludCh7XG4gICAgICAgIGtleTogJ3JhaW5zJyxcbiAgICAgICAgcmVsYXRpdmVQYXRoOiByYWluSWQgKyAnL2NvdW50cycgKyBhcmdzLFxuICAgICAgICB2ZXJiOiAnR0VUJyxcbiAgICAgICAgZGVmYXVsdEtleVVybDogdGhpcy5kZWZhdWx0VXJsRm9yQVBJICsgJy9yYWlucy8nLFxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IGNvdW50cyA9IHJlc3AuY291bnRzO1xuICAgICAgY29uc3QgcmFkYXJNZWFzdXJlczogWFlUeXBlW10gPSBbXSxcbiAgICAgICAgZ2F1Z2VNZWFzdXJlczogWFlUeXBlW10gPSBbXSxcbiAgICAgICAgY29tcHV0YXRpb25zQnlUZWFtOiBYWVR5cGVbXSA9IFtdO1xuXG4gICAgICBjb3VudHMuZm9yRWFjaChjID0+IHtcbiAgICAgICAgcmFkYXJNZWFzdXJlcy5wdXNoKG5ldyBYWVR5cGUoMSwgTmFOLCBOYU4sIGMuX2lkKSk7XG4gICAgICAgIGdhdWdlTWVhc3VyZXMucHVzaChuZXcgWFlUeXBlKGMuZ2F1Z2VNZWFzdXJlcywgTmFOLCBOYU4sIGMuX2lkKSk7XG4gICAgICAgIGNvbXB1dGF0aW9uc0J5VGVhbS5wdXNoKG5ldyBYWVR5cGUoYy5jb21wdXRhdGlvbnNCeVRlYW0sIE5hTiwgTmFOLCBjLl9pZCkpO1xuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHJhZGFyTWVhc3VyZXMsXG4gICAgICAgIGdhdWdlTWVhc3VyZXMsXG4gICAgICAgIGNvbXB1dGF0aW9uc0J5VGVhbSxcbiAgICAgIH07XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS5lcnJvcignZ2V0UmFpbnMgZXJyb3I6JywgZSk7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLy8gPT09IENvbXB1dGluZyA9PT1cblxuICBhc3luYyBsYXVuY2hSYWluQ29tcHV0YXRpb24ocmFpbklkOiBzdHJpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlOiBEYXRlKTogUHJvbWlzZTxSYWluQ29tcHV0YXRpb25bXT4ge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5maWRqQW5ndWxhclNlcnZpY2Uuc2VuZE9uRW5kcG9pbnQoe1xuICAgICAgdmVyYjogJ1BPU1QnLFxuICAgICAga2V5OiAncmFpbnMnLFxuICAgICAgcmVsYXRpdmVQYXRoOiAnJyArIHJhaW5JZCArICcvY29tcHV0YXRpb25zJyxcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgZGF0ZTogZGF0ZS50b0lTT1N0cmluZygpLFxuICAgICAgfSxcbiAgICAgIGRlZmF1bHRLZXlVcmw6IHRoaXMuZGVmYXVsdFVybEZvckFQSSArICcvcmFpbnMnXG4gICAgfSk7XG5cbiAgICByZXR1cm4gcmVzcG9uc2UuY29tcHV0YXRpb25zPy5tYXAoYyA9PiBuZXcgUmFpbkNvbXB1dGF0aW9uKGMpKTtcbiAgfVxuXG4gIGFzeW5jIGdldFJhaW5Db21wdXRhdGlvbkNhcnRlc2lhbk1hcEJ5SWQocmFpbklkOiBzdHJpbmcsIHJhaW5Db21wdXRhdGlvbklkOiBzdHJpbmcpOiBQcm9taXNlPFJhaW5Db21wdXRhdGlvbk1hcD4ge1xuICAgIGNvbnN0IHF1ZXJ5UGF0aCA9ICcnICsgcmFpbklkICsgJy9jb21wdXRhdGlvbnMvJyArIHJhaW5Db21wdXRhdGlvbklkICsgJz9mb3JtYXQ9Y2FydGVzaWFuLW1hcCc7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmZpZGpBbmd1bGFyU2VydmljZS5zZW5kT25FbmRwb2ludCh7XG4gICAgICBrZXk6ICdyYWlucycsXG4gICAgICB2ZXJiOiAnR0VUJyxcbiAgICAgIHJlbGF0aXZlUGF0aDogcXVlcnlQYXRoLFxuICAgICAgZGVmYXVsdEtleVVybDogdGhpcy5kZWZhdWx0VXJsRm9yQVBJICsgJy9yYWlucydcbiAgICB9KTtcbiAgICBpZiAoIXJlc3BvbnNlWydjYXJ0ZXNpYW4tbWFwJ10pIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IHJhaW5Db21wdXRhdGlvbk1hcCA9IG5ldyBSYWluQ29tcHV0YXRpb25NYXAocmVzcG9uc2VbJ2NhcnRlc2lhbi1tYXAnXSk7XG4gICAgcmFpbkNvbXB1dGF0aW9uTWFwLm5hbWUgPSByYWluSWQgKyAnLnJhaW4uY2FydGVzaWFuLW1hcCc7XG4gICAgcmV0dXJuIHJhaW5Db21wdXRhdGlvbk1hcDtcbiAgfVxuXG4gIGFzeW5jIGdldFJhaW5Db21wYXJlcyhyYWluSWQ6IHN0cmluZywgcmFpbkNvbXB1dGF0aW9uSWQ6IHN0cmluZyk6IFByb21pc2U8eyBpZDogc3RyaW5nLCB2ZXJzaW9uOiBzdHJpbmcgfVtdPiB7XG4gICAgY29uc3QgcXVlcnlQYXRoID0gJycgKyByYWluSWQgKyAnL2NvbXB1dGF0aW9ucy8nICsgcmFpbkNvbXB1dGF0aW9uSWQ7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmZpZGpBbmd1bGFyU2VydmljZS5zZW5kT25FbmRwb2ludCh7XG4gICAgICBrZXk6ICdyYWlucycsXG4gICAgICB2ZXJiOiAnR0VUJyxcbiAgICAgIHJlbGF0aXZlUGF0aDogcXVlcnlQYXRoLFxuICAgICAgZGVmYXVsdEtleVVybDogdGhpcy5kZWZhdWx0VXJsRm9yQVBJICsgJy9yYWlucycsXG4gICAgICAvLyB0aW1lb3V0OiAyMDAwMDAsXG4gICAgfSk7XG5cbiAgICBjb25zdCByYWluQ29tcHV0YXRpb24gPSBuZXcgUmFpbkNvbXB1dGF0aW9uKHJlc3BvbnNlKTtcbiAgICBjb25zdCBsaW5rcyA9IHJhaW5Db21wdXRhdGlvbi5nZXRMaW5rcygpO1xuICAgIGNvbnN0IHJhaW5Db21wdXRhdGlvblF1YWxpdGllcyA9IFtdO1xuICAgIGZvciAoY29uc3QgbGluayBvZiBsaW5rcykge1xuICAgICAgaWYgKGxpbmsuaHJlZi5pbmRleE9mKCcvY29tcGFyZXMvJykgPiAwKSB7XG4gICAgICAgIGNvbnN0IGlkID0gbGluay5nZXRJZCgpO1xuICAgICAgICBjb25zdCB2ZXJzaW9uID0gbGluay5ocmVmLnN1YnN0cmluZyhsaW5rLmhyZWYuaW5kZXhPZigndmVyc2lvbi8nKSArIDgsIGxpbmsuaHJlZi5pbmRleE9mKCcvJyArIGlkKSk7XG4gICAgICAgIHJhaW5Db21wdXRhdGlvblF1YWxpdGllcy5wdXNoKHtpZCwgdmVyc2lvbn0pO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmFpbkNvbXB1dGF0aW9uUXVhbGl0aWVzO1xuICB9XG5cbiAgYXN5bmMgZ2V0UmFpbkNvbXBhcmVCeUlkKHJhaW5JZDogc3RyaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgcmFpbkNvbXB1dGF0aW9uSWQ6IHN0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhaW5Db21wdXRhdGlvblF1YWxpdHlJZDogc3RyaW5nKTogUHJvbWlzZTxSYWluQ29tcHV0YXRpb25RdWFsaXR5PiB7XG4gICAgY29uc3QgcXVlcnlQYXRoID0gJycgKyByYWluSWQgKyAnL2NvbXB1dGF0aW9ucy8nICsgcmFpbkNvbXB1dGF0aW9uSWQgKyAnL2NvbXBhcmVzLycgKyByYWluQ29tcHV0YXRpb25RdWFsaXR5SWQ7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmZpZGpBbmd1bGFyU2VydmljZS5zZW5kT25FbmRwb2ludCh7XG4gICAgICBrZXk6ICdyYWlucycsXG4gICAgICB2ZXJiOiAnR0VUJyxcbiAgICAgIHJlbGF0aXZlUGF0aDogcXVlcnlQYXRoLFxuICAgICAgZGVmYXVsdEtleVVybDogdGhpcy5kZWZhdWx0VXJsRm9yQVBJICsgJy9yYWlucycsXG4gICAgICAvLyB0aW1lb3V0OiAyMDAwMDAsXG4gICAgfSk7XG5cbiAgICBjb25zdCByYWluQ29tcHV0YXRpb25RdWFsaXR5ID0gbmV3IFJhaW5Db21wdXRhdGlvblF1YWxpdHkocmVzcG9uc2UpO1xuICAgIHJhaW5Db21wdXRhdGlvblF1YWxpdHkucXVhbGl0eVNwZWVkTWF0cml4Q29udGFpbmVyID0gU3BlZWRNYXRyaXhDb250YWluZXIuQ3JlYXRlRnJvbUpzb24oXG4gICAgICByYWluQ29tcHV0YXRpb25RdWFsaXR5LnF1YWxpdHlTcGVlZE1hdHJpeENvbnRhaW5lcik7XG4gICAgcmV0dXJuIHJhaW5Db21wdXRhdGlvblF1YWxpdHk7XG4gIH1cblxuICAvLyA9PT0gR2F1Z2VzID09PVxuXG4gIGFzeW5jIGdldEdhdWdlKGdhdWdlSWQ6IHN0cmluZyk6IFByb21pc2U8R2F1Z2VOb2RlPiB7XG4gICAgY29uc3QgcmVzcCA9IGF3YWl0IHRoaXMuZmlkakFuZ3VsYXJTZXJ2aWNlLnNlbmRPbkVuZHBvaW50KHtcbiAgICAgIGtleTogJ2dhdWdlcycsXG4gICAgICB2ZXJiOiAnR0VUJyxcbiAgICAgIHJlbGF0aXZlUGF0aDogZ2F1Z2VJZCxcbiAgICAgIGRlZmF1bHRLZXlVcmw6IHRoaXMuZGVmYXVsdFVybEZvckFQSSArICcvZ2F1Z2VzJ1xuICAgIH0pO1xuICAgIHJldHVybiBuZXcgR2F1Z2VOb2RlKHJlc3ApO1xuICB9XG5cbiAgYXN5bmMgZ2V0R2F1Z2VzKHJhaW5JZD86IHN0cmluZyk6IFByb21pc2U8QXJyYXk8R2F1Z2VOb2RlRmlsdGVyPj4ge1xuICAgIGxldCBxdWVyeVBhdGggPSAnJztcbiAgICBpZiAodGhpcy5hc1RlYW1JZCkge1xuICAgICAgcXVlcnlQYXRoICs9ICc/dGVhbUlkPScgKyB0aGlzLmFzVGVhbUlkO1xuICAgIH1cbiAgICBpZiAocmFpbklkKSB7XG4gICAgICBpZiAocXVlcnlQYXRoKSB7XG4gICAgICAgIHF1ZXJ5UGF0aCArPSAnJic7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBxdWVyeVBhdGggKz0gJz8nO1xuICAgICAgfVxuICAgICAgcXVlcnlQYXRoICs9ICdyYWluSWQ9JyArIHJhaW5JZDtcbiAgICB9XG5cbiAgICBjb25zdCBnYXVnZXMgPSBbXTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcCA9IGF3YWl0IHRoaXMuZmlkakFuZ3VsYXJTZXJ2aWNlLnNlbmRPbkVuZHBvaW50KHtcbiAgICAgICAga2V5OiAnZ2F1Z2VzJyxcbiAgICAgICAgdmVyYjogJ0dFVCcsXG4gICAgICAgIHJlbGF0aXZlUGF0aDogcXVlcnlQYXRoLFxuICAgICAgICBkZWZhdWx0S2V5VXJsOiB0aGlzLmRlZmF1bHRVcmxGb3JBUEkgKyAnL2dhdWdlcydcbiAgICAgIH0pO1xuXG4gICAgICBmb3IgKGNvbnN0IGdhdWdlIG9mIHJlc3AuZ2F1Z2VzKSB7XG4gICAgICAgIGdhdWdlcy5wdXNoKG5ldyBHYXVnZU5vZGVGaWx0ZXIoZ2F1Z2UpKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdnZXRHYXVnZXMgZXJyb3I6JywgZSk7XG4gICAgfVxuICAgIHJldHVybiBnYXVnZXM7XG4gIH1cblxuICBhc3luYyBnZXRHYXVnZU1lYXN1cmVzKGdhdWdlSWQ6IHN0cmluZywgYmVnaW46IERhdGUsIGVuZDogRGF0ZSk6IFByb21pc2U8R2F1Z2VNZWFzdXJlW10+IHtcbiAgICBjb25zdCBxdWVyeVBhdGggPSAnJyArIGdhdWdlSWQgKyAnL21lYXN1cmVzP2JlZ2luPScgKyBiZWdpbi50b0lTT1N0cmluZygpICsgJyZlbmQ9JyArIGVuZC50b0lTT1N0cmluZygpO1xuICAgIGNvbnN0IHJlc3AgPSBhd2FpdCB0aGlzLmZpZGpBbmd1bGFyU2VydmljZS5zZW5kT25FbmRwb2ludCh7XG4gICAgICBrZXk6ICdnYXVnZXMnLFxuICAgICAgdmVyYjogJ0dFVCcsXG4gICAgICByZWxhdGl2ZVBhdGg6IHF1ZXJ5UGF0aCxcbiAgICAgIGRlZmF1bHRLZXlVcmw6IHRoaXMuZGVmYXVsdFVybEZvckFQSSArICcvZ2F1Z2VzJ1xuICAgIH0pO1xuXG4gICAgY29uc3QgZ2F1Z2VNZWFzdXJlczogR2F1Z2VNZWFzdXJlW10gPSBbXTtcbiAgICBmb3IgKGNvbnN0IGdhdWdlTWVhc3VyZSBvZiByZXNwLmdhdWdlTWVhc3VyZXMpIHtcbiAgICAgIGdhdWdlTWVhc3VyZXMucHVzaChuZXcgR2F1Z2VNZWFzdXJlKGdhdWdlTWVhc3VyZSkpO1xuICAgIH1cbiAgICByZXR1cm4gZ2F1Z2VNZWFzdXJlcztcbiAgfVxuXG4gIC8vID09PSBQcml2YXRlID09PVxuXG4gIHByb3RlY3RlZCBzZXRSb2xlcyhyb2xlczogQXJyYXk8c3RyaW5nPik6IHZvaWQge1xuICAgIHRoaXMucm9sZXMgPSByb2xlcztcbiAgfVxuXG4gIC8vIGFzeW5jIGdldERvbWFpbnMoKSB7XG4gIC8vICAgIGF3YWl0IHRoaXMuZmlkakFuZ3VsYXJTZXJ2aWNlLmdldERvbWFpbigpOyAvLyB3aXRoIG93bmVyICYgbWVtYmVycyAmIHJvbGVzXG4gIC8vIH1cblxuICAvLyBhc3luYyB1cGRhdGVEb21haW4odGVhbTogRG9tYWluKSB7XG4gIC8vIGF3YWl0IHRoaXMuZmlkakFuZ3VsYXJTZXJ2aWNlLnVwZGF0ZURvbWFpbih0ZWFtKTtcbiAgLy8gfVxuXG59XG4iXX0=
|
|
447
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FwcC9zaGFyZWQvcHJvZmlsZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNyQyxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixTQUFTLEVBQ1QsU0FBUyxFQUNULGVBQWUsRUFDZixrQkFBa0IsRUFDbEIsc0JBQXNCLEVBQ3RCLFFBQVEsRUFDUixvQkFBb0IsRUFDcEIsUUFBUSxFQUNULE1BQU0sYUFBYSxDQUFDO0FBSXJCLE9BQU8sRUFBQyxXQUFXLEVBQWtCLE1BQU0sc0JBQXNCLENBQUM7QUFFbEUsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLFVBQVUsQ0FBQztBQUNoQyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sU0FBUyxDQUFDOzs7OztBQUt4QyxNQUFNLE9BQU8sY0FBYztJQVV6QixZQUFzQixPQUFnQixFQUNoQixrQkFBK0IsRUFDL0IsSUFBZ0I7UUFGaEIsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUNoQix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQWE7UUFDL0IsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUdwQyxrREFBa0Q7UUFDbEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBRXZDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksSUFBSSxDQUFDO1FBQy9DLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksSUFBSSxDQUFDO1FBQ3JELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFD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Q0FBQyxPQUFlLEVBQUUsS0FBVyxFQUFFLEdBQVM7UUFDNUQsTUFBTSxTQUFTLEdBQUcsRUFBRSxHQUFHLE9BQU8sR0FBRyxrQkFBa0IsR0FBRyxLQUFLLENBQUMsV0FBVyxFQUFFLEdBQUcsT0FBTyxHQUFHLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN4RyxNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLENBQUM7WUFDeEQsR0FBRyxFQUFFLFFBQVE7WUFDYixJQUFJLEVBQUUsS0FBSztZQUNYLFlBQVksRUFBRSxTQUFTO1lBQ3ZCLGFBQWEsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsU0FBUztTQUNqRCxDQUFDLENBQUM7UUFFSCxNQUFNLGFBQWEsR0FBbUIsRUFBRSxDQUFDO1FBQ3pDLEtBQUssTUFBTSxZQUFZLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUM3QyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7U0FDcEQ7UUFDRCxPQUFPLGFBQWEsQ0FBQztJQUN2QixDQUFDO0lBRUQsa0JBQWtCO0lBRVIsUUFBUSxDQUFDLEtBQW9CO1FBQ3JDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLENBQUM7OzRHQWhmVSxjQUFjO2dIQUFkLGNBQWMsY0FGYixNQUFNOzRGQUVQLGNBQWM7a0JBSDFCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7SHR0cENsaWVudH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgRXZlbnROb2RlLFxuICBHYXVnZU1lYXN1cmUsXG4gIEdhdWdlTm9kZSxcbiAgUmFkYXJOb2RlLFxuICBSYWluQ29tcHV0YXRpb24sXG4gIFJhaW5Db21wdXRhdGlvbk1hcCxcbiAgUmFpbkNvbXB1dGF0aW9uUXVhbGl0eSxcbiAgUmFpbk5vZGUsXG4gIFNwZWVkTWF0cml4Q29udGFpbmVyLFxuICBUZWFtTm9kZVxufSBmcm9tICdyYWFpbi1tb2RlbCc7XG5cbmltcG9ydCB7U3RvcmFnZX0gZnJvbSAnLi9zdG9yYWdlLnNlcnZpY2UnO1xuXG5pbXBvcnQge0ZpZGpTdG9yYWdlLCBGaWRqU3RvcmFnZU5vZGV9IGZyb20gJy4vZmlkai1zdG9yYWdlLm1vZGVsJztcbmltcG9ydCB7RmlkalNlcnZpY2V9IGZyb20gJ2ZpZGonO1xuaW1wb3J0IHtYWVR5cGV9IGZyb20gJy4veHl0eXBlJztcbmltcG9ydCB7R2F1Z2VOb2RlRmlsdGVyfSBmcm9tICcuL3Rvb2xzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgUHJvZmlsZVNlcnZpY2Uge1xuICBwdWJsaWMgcmVhZHlGb3JTeW5jOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj47XG4gIHB1YmxpYyBhc1RlYW1JZDogc3RyaW5nO1xuXG4gIHByb3RlY3RlZCBlbWFpbDogc3RyaW5nO1xuICBwcm90ZWN0ZWQgaXNEZW1vOiBib29sZWFuO1xuICBwcm90ZWN0ZWQgcm9sZXM6IEFycmF5PHN0cmluZz47XG4gIHByb3RlY3RlZCBub2RlRGF0YTogRmlkalN0b3JhZ2VOb2RlO1xuICBwcm90ZWN0ZWQgZmlkalN0b3JhZ2U6IEZpZGpTdG9yYWdlO1xuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBzdG9yYWdlOiBTdG9yYWdlLFxuICAgICAgICAgICAgICBwcm90ZWN0ZWQgZmlkakFuZ3VsYXJTZXJ2aWNlOiBGaWRqU2VydmljZSxcbiAgICAgICAgICAgICAgcHJvdGVjdGVkIGh0dHA6IEh0dHBDbGllbnQpIHtcblxuXG4gICAgLy8gY29uc3QgZGVmYXVsdFVybEZvckFQSSA9IGVudmlyb25tZW50LnNlcnZlclVybDtcbiAgICBjb25zb2xlLmxvZygnUHJvZmlsZVNlcnZpY2U6IE5ldyMjIyMnKTtcblxuICAgIHRoaXMuZW1haWwgPSB0aGlzLnN0b3JhZ2UuZ2V0KCdlbWFpbCcpIHx8IG51bGw7XG4gICAgdGhpcy5hc1RlYW1JZCA9IHRoaXMuc3RvcmFnZS5nZXQoJ2FzVGVhbUlkJykgfHwgbnVsbDtcbiAgICB0aGlzLnJlYWR5Rm9yU3luYyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICAgIHRoaXMucm9sZXMgPSBbXTtcbiAgICB0aGlzLmZpZGpTdG9yYWdlID0gbmV3IEZpZGpTdG9yYWdlKHN0b3JhZ2UpO1xuICAgIHRoaXMuaXNEZW1vTW9kZSA9IGZhbHNlO1xuICB9XG5cbiAgZ2V0IGlzRGVtb01vZGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNEZW1vO1xuICB9XG5cbiAgc2V0IGlzRGVtb01vZGUobW9kZSkge1xuICAgIHRoaXMuaXNEZW1vID0gbW9kZSA/IG1vZGUgOiB0cnVlO1xuICAgIHRoaXMuZmlkalN0b3JhZ2Uuc2V0RGVtb01vZGUodGhpcy5pc0RlbW8pO1xuICB9XG5cbiAgZ2V0IGRlZmF1bHRVcmxGb3JBUEkoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmFnZS5nZXQoJ1VybEZvckFQSScpO1xuICB9XG5cbiAgc2V0IGRlZmF1bHRVcmxGb3JBUEkodXJsOiBzdHJpbmcpIHtcbiAgICB0aGlzLnN0b3JhZ2Uuc2V0KCdVcmxGb3JBUEknLCB1cmwpO1xuICB9XG5cbiAgYXN5bmMgcmVmcmVzaFByb2ZpbGUoKTogUHJvbWlzZTxGaWRqU3RvcmFnZU5vZGU+IHtcbiAgICB0aGlzLm5vZGVEYXRhID0gYXdhaXQgdGhpcy5maWRqU3RvcmFnZS5nZXRSZWZyZXNoZWROb2RlQ29weSh0aGlzLmZpZGpBbmd1bGFyU2VydmljZSk7XG4gICAgdGhpcy5zZXRSb2xlcyhhd2FpdCB0aGlzLmZpZGpBbmd1bGFyU2VydmljZS5nZXRSb2xlcygpKTtcbiAgICByZXR1cm4gdGhpcy5ub2RlRGF0YTtcbiAgfVxuXG4gIGdldEVtYWlsKCkge1xuICAgIHJldHVybiB0aGlzLmVtYWlsO1xuICB9XG5cbiAgc2V0RW1haWwoZW1haWw6IHN0cmluZykge1xuICAgIHRoaXMuZW1haWwgPSBlbWFpbDtcbiAgICB0aGlzLnN0b3JhZ2Uuc2V0KCdlbWFpbCcsIHRoaXMuZW1haWwpO1xuICB9XG5cbiAgbG9nb3V0KCkge1xuICAgIHRoaXMuc3RvcmFnZS5yZW1vdmUoJ2VtYWlsJyk7XG4gIH1cblxuICBpc0xvZ2dlZEluKCkge1xuICAgIHJldHVybiB0aGlzLmZpZGpBbmd1bGFyU2VydmljZS5pc0xvZ2dlZEluKCk7XG4gIH1cblxuICBhc3luYyBzdG9yZUFsbCgpIHtcbiAgICByZXR1cm4gdGhpcy5maWRqU3RvcmFnZS5zdG9yZURhdGEodGhpcy5maWRqQW5ndWxhclNlcnZpY2UsIHRoaXMubm9kZURhdGEpO1xuICB9XG5cbiAgLy8gPT09IE5vdGlmaWNhdGlvbnMgPT09XG5cbiAgYXN5bmMgY3JlYXRlTm90aWZpY2F0aW9uKHJhaW5JZDogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmcpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcCA9IGF3YWl0IHRoaXMuZmlkakFuZ3VsYXJTZXJ2aWNlLnNlbmRPbkVuZHBvaW50KHtcbiAgICAgICAga2V5OiAnbm90aWZpY2F0aW9ucycsXG4gICAgICAgIHZlcmI6ICdQT1NUJyxcbiAgICAgICAgZGVmYXVsdEtleVVybDogdGhpcy5kZWZhdWx0VXJsRm9yQVBJICsgJy9ub3RpZmljYXRpb25zJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHJhaW46IHJhaW5JZCxcbiAgICAgICAgICBtZXNzYWdlLFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgICByZXR1cm4gbmV3IEV2ZW50Tm9kZShyZXNwKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdjcmVhdGVOb3RpZmljYXRpb24gZXJyb3I6JywgZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBhc3luYyBnZXROb3RpZmljYXRpb25zKHJhaW5JZDogc3RyaW5nKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGFyZ3MgPSAnP3JhaW49JyArIHJhaW5JZDtcbiAgICAgIGNvbnN0IHJlc3AgPSBhd2FpdCB0aGlzLmZpZGpBbmd1bGFyU2VydmljZS5zZW5kT25FbmRwb2ludCh7XG4gICAgICAgIGtleTogJ25vdGlmaWNhdGlvbnMnLFxuICAgICAgICB2ZXJiOiAnR0VUJyxcbiAgICAgICAgcmVsYXRpdmVQYXRoOiBhcmdzLFxuICAgICAgICBkZWZhdWx0S2V5VXJsOiB0aGlzLmRlZmF1bHRVcmxGb3JBUEkgKyAnL25vdGlmaWNhdGlvbnMnLFxuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiByZXNwLm5vdGlmaWNhdGlvbnMubWFwKG4gPT4gbmV3IEV2ZW50Tm9kZShuKSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS5lcnJvcignY3JlYXRlTm90aWZpY2F0aW9uIGVycm9yOicsIGUpO1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgYXN5bmMgZ2V0QWxsTm90aWZpY2F0aW9ucygpOiBQcm9taXNlPEV2ZW50Tm9kZVtdPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3AgPSBhd2FpdCB0aGlzLmZpZGpBbmd1bGFyU2VydmljZS5zZW5kT25FbmRwb2ludCh7XG4gICAgICAgIGtleTogJ25vdGlmaWNhdGlvbnMnLFxuICAgICAgICB2ZXJiOiAnR0VUJyxcbiAgICAgICAgZGVmYXVsdEtleVVybDogdGhpcy5kZWZhdWx0VXJsRm9yQVBJICsgJy9ub3RpZmljYXRpb25zJyxcbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gcmVzcC5ub3RpZmljYXRpb25zLm1hcChuID0+IG5ldyBFdmVudE5vZGUobikpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ2NyZWF0ZU5vdGlmaWNhdGlvbiBlcnJvcjonLCBlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gW107XG4gIH1cblxuICAvLyA9PT0gVGVhbXMgPT09XG5cbiAgYXN5bmMgZ2V0VGVhbXMoKTogUHJvbWlzZTxBcnJheTxUZWFtTm9kZT4+IHtcbiAgICBjb25zdCB0ZWFtcyA9IFtdO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwID0gYXdhaXQgdGhpcy5maWRqQW5ndWxhclNlcnZpY2Uuc2VuZE9uRW5kcG9pbnQoe1xuICAgICAgICBrZXk6ICd0ZWFtc19hbGwnLFxuICAgICAgICB2ZXJiOiAnR0VUJyxcbiAgICAgICAgZGVmYXVsdEtleVVybDogdGhpcy5kZWZhdWx0VXJsRm9yQVBJICsgJy90ZWFtc19hbGwnXG4gICAgICB9KTtcbiAgICAgIGZvciAoY29uc3QgdGVhbSBvZiByZXNwLnRlYW1zKSB7XG4gICAgICAgIHRlYW1zLnB1c2gobmV3IFRlYW1Ob2RlKHRlYW0pKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdnZXRUZWFtcyBlcnJvcjonLCBlKTtcbiAgICB9XG4gICAgcmV0dXJuIHRlYW1zO1xuICB9XG5cbiAgYXN5bmMgZ2V0VGVhbShpZCk6IFByb21pc2U8VGVhbU5vZGU+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcCA9IGF3YWl0IHRoaXMuZmlkakFuZ3VsYXJTZXJ2aWNlLnNlbmRPbkVuZHBvaW50KHtcbiAgICAgICAga2V5OiAndGVhbXMnLFxuICAgICAgICB2ZXJiOiAnR0VUJyxcbiAgICAgICAgcmVsYXRpdmVQYXRoOiBpZCxcbiAgICAgICAgZGVmYXVsdEtleVVybDogdGhpcy5kZWZhdWx0VXJsRm9yQVBJICsgJy90ZWFtcydcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIG5ldyBUZWFtTm9kZShyZXNwKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdnZXRSYWRhcnMgZXJyb3I6JywgZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvLyA9PT0gUmFkYXJzID09PVxuXG4gIGFzeW5jIGdldFJhZGFycyh0ZWFtSWQ6IHN0cmluZyk6IFByb21pc2U8QXJyYXk8UmFkYXJOb2RlPj4ge1xuICAgIGNvbnN0IHJhZGFycyA9IFtdO1xuICAgIGNvbnN0IHVybCA9IHRoaXMuZGVmYXVsdFVybEZvckFQSSArICcvcmFkYXJzJyArICc/dGVhbUlkPScgKyB0ZWFtSWQ7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3AgPSBhd2FpdCB0aGlzLmZpZGpBbmd1bGFyU2VydmljZS5zZW5kT25FbmRwb2ludCh7XG4gICAgICAgIGtleTogJ3JhZGFycycsXG4gICAgICAgIHZlcmI6ICdHRVQnLFxuICAgICAgICBkZWZhdWx0S2V5VXJsOiB1cmwsXG4gICAgICB9KTtcbiAgICAgIGZvciAoY29uc3QgciBvZiByZXNwLnJhZGFycykge1xuICAgICAgICBjb25zdCByYWRhciA9IG5ldyBSYWRhck5vZGUocik7XG4gICAgICAgIHJhZGFycy5wdXNoKHJhZGFyKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdnZXRSYWRhcnMgZXJyb3I6JywgZSk7XG4gICAgfVxuICAgIHJldHVybiByYWRhcnM7XG4gIH1cblxuICBhc3luYyBnZXRSYWRhcihpZDogc3RyaW5nKTogUHJvbWlzZTxSYWRhck5vZGU+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcCA9IGF3YWl0IHRoaXMuZmlkakFuZ3VsYXJTZXJ2aWNlLnNlbmRPbkVuZHBvaW50KHtcbiAgICAgICAga2V5OiAncmFkYXJzJyxcbiAgICAgICAgdmVyYjogJ0dFVCcsXG4gICAgICAgIHJlbGF0aXZlUGF0aDogaWQsXG4gICAgICAgIGRlZmF1bHRLZXlVcmw6IHRoaXMuZGVmYXVsdFVybEZvckFQSSArICcvcmFkYXJzJ1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gbmV3IFJhZGFyTm9kZShyZXNwKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdnZXRSYWRhcnMgZXJyb3I6JywgZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBhc3luYyBwdXRSYWRhcihyYWRhck5vZGU6IFJhZGFyTm9kZSwgY29uZmlndXJhdGlvbkFzSlNPTj86IGFueSk6IFByb21pc2U8UmFkYXJOb2RlPiB7XG4gICAgY29uc3QgZGF0YSA9IHtcbiAgICAgIG5hbWU6IHJhZGFyTm9kZS5uYW1lLFxuICAgIH07XG5cbiAgICBpZiAoY29uZmlndXJhdGlvbkFzSlNPTikge1xuICAgICAgZGF0YVsnY29uZmlndXJhdGlvbkFzSlNPTiddID0gY29uZmlndXJhdGlvbkFzSlNPTjtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcCA9IGF3YWl0IHRoaXMuZmlkakFuZ3VsYXJTZXJ2aWNlLnNlbmRPbkVuZHBvaW50KHtcbiAgICAgICAga2V5OiAncmFkYXJzJyxcbiAgICAgICAgcmVsYXRpdmVQYXRoOiByYWRhck5vZGUuaWQsXG4gICAgICAgIHZlcmI6ICdQVVQnLFxuICAgICAgICBkYXRhLFxuICAgICAgICBkZWZhdWx0S2V5VXJsOiB0aGlzLmRlZmF1bHRVcmxGb3JBUEkgKyAnL3JhZGFycy8nXG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIG5ldyBSYWRhck5vZGUocmVzcCk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS5lcnJvcigncmVtb3ZlUmFkYXIgZXJyb3I6JywgZSk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgZ2V0TG9uZWx5UmFkYXJzKHJhaW5zOiBSYWluTm9kZVtdKTogUHJvbWlzZTxSYWRhck5vZGVbXT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwID0gYXdhaXQgdGhpcy5maWRqQW5ndWxhclNlcnZpY2Uuc2VuZE9uRW5kcG9pbnQoe1xuICAgICAgICBrZXk6ICdyYWRhcnMnLFxuICAgICAgICB2ZXJiOiAnR0VUJyxcbiAgICAgICAgZGVmYXVsdEtleVVybDogdGhpcy5kZWZhdWx0VXJsRm9yQVBJICsgJy9yYWRhcnMnXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IGxvbmVseVJhZGFyczogUmFkYXJOb2RlW10gPSBbXTtcbiAgICAgIGNvbnN0IHJhZGFycyA9IHJlc3AucmFkYXJzO1xuICAgICAgcmFkYXJzLmZvckVhY2gocmFkYXIgPT4ge1xuICAgICAgICBsZXQgZm91bmQgPSBmYWxzZTtcbiAgICAgICAgcmFpbnMuZm9yRWFjaChyYWluID0+IHtcbiAgICAgICAgICBjb25zdCByZElkID0gcmFpbi5nZXRMaW5rSWQoJ3JhZGFyJywgMCk7XG4gICAgICAgICAgaWYgKHJkSWQgPT09IHJhZGFyLmlkKSB7XG4gICAgICAgICAgICBmb3VuZCA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKCFmb3VuZCkge1xuICAgICAgICAgIGxvbmVseVJhZGFycy5wdXNoKHJhZGFyKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICByZXR1cm4gbG9uZWx5UmFkYXJzO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ2dldExvbmVseVJhZGFycyBlcnJvcjonLCBlKTtcbiAgICB9XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgYXN5bmMgZ2V0UmFpblRpbWVmcmFtZShyYWluSWQ6IHN0cmluZywgYmVnaW46IERhdGUsIGVuZDogRGF0ZSk6IFByb21pc2U8UmFpbk5vZGU+IHtcbiAgICB0cnkge1xuICAgICAgbGV0IHF1ZXJ5UGF0aCA9ICcnICsgcmFpbklkICsgJz9mb3JtYXQ9dGltZWZyYW1lJztcbiAgICAgIGlmIChiZWdpbikge1xuICAgICAgICBxdWVyeVBhdGggKz0gJyZiZWdpbj0nICsgYmVnaW4udG9JU09TdHJpbmcoKTtcbiAgICAgIH1cbiAgICAgIGlmIChlbmQpIHtcbiAgICAgICAgcXVlcnlQYXRoICs9ICcmZW5kPScgKyBlbmQudG9JU09TdHJpbmcoKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHJlc3AgPSBhd2FpdCB0aGlzLmZpZGpBbmd1bGFyU2VydmljZS5zZW5kT25FbmRwb2ludCh7XG4gICAgICAgIGtleTogJ3JhaW5zJyxcbiAgICAgICAgdmVyYjogJ0dFVCcsXG4gICAgICAgIHJlbGF0aXZlUGF0aDogcXVlcnlQYXRoLFxuICAgICAgICBkZWZhdWx0S2V5VXJsOiB0aGlzLmRlZmF1bHRVcmxGb3JBUEkgKyAnL3JhaW5zJ1xuICAgICAgfSk7XG4gICAgICBjb25zdCByYWluTm9kZSA9IG5ldyBSYWluTm9kZShyZXNwWyd0aW1lZnJhbWUnXSk7XG4gICAgICByYWluTm9kZS5uYW1lICs9ICcucmFkYXIudGltZWZyYW1lJztcbiAgICAgIHJldHVybiByYWluTm9kZTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdnZXRSYWRhclRpbWVmcmFtZSBlcnJvcjonLCBlKTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvLyA9PT0gUmFpbnMgPT09XG5cbiAgYXN5bmMgZ2V0UmFpbnModGVhbUlkOiBzdHJpbmcpOiBQcm9taXNlPEFycmF5PFJhaW5Ob2RlPj4ge1xuICAgIGNvbnN0IHJhaW5zID0gW107XG4gICAgY29uc3QgdXJsID0gdGhpcy5kZWZhdWx0VXJsRm9yQVBJICsgJy9yYWlucz90ZWFtSWQ9JyArIHRlYW1JZDtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcCA9IGF3YWl0IHRoaXMuZmlkakFuZ3VsYXJTZXJ2aWNlLnNlbmRPbkVuZHBvaW50KHtcbiAgICAgICAga2V5OiAncmFpbnMnLFxuICAgICAgICB2ZXJiOiAnR0VUJyxcbiAgICAgICAgZGVmYXVsdEtleVVybDogdXJsLFxuICAgICAgfSk7XG4gICAgICBmb3IgKGNvbnN0IHJhaW4gb2YgcmVzcC5yYWlucykge1xuICAgICAgICByYWlucy5wdXNoKG5ldyBSYWluTm9kZShyYWluKSk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS5lcnJvcignZ2V0UmFpbnMgZXJyb3I6JywgZSk7XG4gICAgfVxuICAgIHJldHVybiByYWlucztcbiAgfVxuXG4gIGFzeW5jIGdldFJhaW4oaWQ6IHN0cmluZyk6IFByb21pc2U8UmFpbk5vZGU+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcCA9IGF3YWl0IHRoaXMuZmlkakFuZ3VsYXJTZXJ2aWNlLnNlbmRPbkVuZHBvaW50KHtcbiAgICAgICAga2V5OiAncmFpbnMnLFxuICAgICAgICByZWxhdGl2ZVBhdGg6IGlkLFxuICAgICAgICB2ZXJiOiAnR0VUJyxcbiAgICAgICAgZGVmYXVsdEtleVVybDogdGhpcy5kZWZhdWx0VXJsRm9yQVBJICsgJy9yYWlucy8nXG4gICAgICB9KTtcbiAgICAgIHJldHVybiBuZXcgUmFpbk5vZGUocmVzcCk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS5lcnJvcignZ2V0UmFpbnMgZXJyb3I6JywgZSk7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLy8gPT09IENvdW50XG5cbiAgYXN5bmMgZ2V0Q291bnRzKHJhaW5JZDogc3RyaW5nLFxuICAgICAgICAgICAgICAgICAgcGVyaW9kQmVnaW4/OiBEYXRlLFxuICAgICAgICAgICAgICAgICAgcGVyaW9kRW5kPzogRGF0ZSxcbiAgICAgICAgICAgICAgICAgIHdpdGhRdWFsaXRpZXM/OiBib29sZWFuKTogUHJvbWlzZTx7XG4gICAgcmFkYXJNZWFzdXJlczogWFlUeXBlW10sXG4gICAgZ2F1Z2VNZWFzdXJlczogWFlUeXBlW10sXG4gICAgY29tcHV0YXRpb25zQnlUZWFtOiBYWVR5cGVbXSxcbiAgfT4ge1xuICAgIHRyeSB7XG5cbiAgICAgIGxldCBhcmdzID0gJyc7XG4gICAgICBpZiAocGVyaW9kQmVnaW4gJiYgcGVyaW9kRW5kKSB7XG4gICAgICAgIGFyZ3MgPSAnP3BlcmlvZEJlZ2luPScgKyBwZXJpb2RCZWdpbi50b0lTT1N0cmluZygpICsgJyZwZXJpb2RFbmQ9JyArIHBlcmlvZEVuZC50b0lTT1N0cmluZygpO1xuICAgICAgfVxuICAgICAgaWYgKHdpdGhRdWFsaXRpZXMpIHtcbiAgICAgICAgYXJncyArPSAnJndpdGhRdWFsaXRpZXM9JyArIHdpdGhRdWFsaXRpZXM7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHJlc3AgPSBhd2FpdCB0aGlzLmZpZGpBbmd1bGFyU2VydmljZS5zZW5kT25FbmRwb2ludCh7XG4gICAgICAgIGtleTogJ3JhaW5zJyxcbiAgICAgICAgcmVsYXRpdmVQYXRoOiByYWluSWQgKyAnL2NvdW50cycgKyBhcmdzLFxuICAgICAgICB2ZXJiOiAnR0VUJyxcbiAgICAgICAgZGVmYXVsdEtleVVybDogdGhpcy5kZWZhdWx0VXJsRm9yQVBJICsgJy9yYWlucy8nLFxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IGNvdW50cyA9IHJlc3AuY291bnRzO1xuICAgICAgY29uc3QgcmFkYXJNZWFzdXJlczogWFlUeXBlW10gPSBbXSxcbiAgICAgICAgZ2F1Z2VNZWFzdXJlczogWFlUeXBlW10gPSBbXSxcbiAgICAgICAgY29tcHV0YXRpb25zQnlUZWFtOiBYWVR5cGVbXSA9IFtdO1xuXG4gICAgICBjb3VudHMuZm9yRWFjaChjID0+IHtcbiAgICAgICAgcmFkYXJNZWFzdXJlcy5wdXNoKG5ldyBYWVR5cGUoMSwgTmFOLCBOYU4sIGMuX2lkKSk7XG4gICAgICAgIGdhdWdlTWVhc3VyZXMucHVzaChuZXcgWFlUeXBlKGMuZ2F1Z2VNZWFzdXJlcywgTmFOLCBOYU4sIGMuX2lkKSk7XG4gICAgICAgIGNvbXB1dGF0aW9uc0J5VGVhbS5wdXNoKG5ldyBYWVR5cGUoYy5jb21wdXRhdGlvbnNCeVRlYW0sIE5hTiwgTmFOLCBjLl9pZCkpO1xuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHJhZGFyTWVhc3VyZXMsXG4gICAgICAgIGdhdWdlTWVhc3VyZXMsXG4gICAgICAgIGNvbXB1dGF0aW9uc0J5VGVhbSxcbiAgICAgIH07XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS5lcnJvcignZ2V0UmFpbnMgZXJyb3I6JywgZSk7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLy8gPT09IENvbXB1dGluZyA9PT1cblxuICBhc3luYyBsYXVuY2hSYWluQ29tcHV0YXRpb24ocmFpbklkOiBzdHJpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlOiBEYXRlKTogUHJvbWlzZTxSYWluQ29tcHV0YXRpb25bXT4ge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5maWRqQW5ndWxhclNlcnZpY2Uuc2VuZE9uRW5kcG9pbnQoe1xuICAgICAgdmVyYjogJ1BPU1QnLFxuICAgICAga2V5OiAncmFpbnMnLFxuICAgICAgcmVsYXRpdmVQYXRoOiAnJyArIHJhaW5JZCArICcvY29tcHV0YXRpb25zJyxcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgZGF0ZTogZGF0ZS50b0lTT1N0cmluZygpLFxuICAgICAgfSxcbiAgICAgIGRlZmF1bHRLZXlVcmw6IHRoaXMuZGVmYXVsdFVybEZvckFQSSArICcvcmFpbnMnXG4gICAgfSk7XG5cbiAgICByZXR1cm4gcmVzcG9uc2UuY29tcHV0YXRpb25zPy5tYXAoYyA9PiBuZXcgUmFpbkNvbXB1dGF0aW9uKGMpKTtcbiAgfVxuXG4gIGFzeW5jIGdldFJhaW5Db21wdXRhdGlvbkNhcnRlc2lhbk1hcEJ5SWQocmFpbklkOiBzdHJpbmcsIHJhaW5Db21wdXRhdGlvbklkOiBzdHJpbmcpOiBQcm9taXNlPFJhaW5Db21wdXRhdGlvbk1hcD4ge1xuICAgIGNvbnN0IHF1ZXJ5UGF0aCA9ICcnICsgcmFpbklkICsgJy9jb21wdXRhdGlvbnMvJyArIHJhaW5Db21wdXRhdGlvbklkICsgJz9mb3JtYXQ9Y2FydGVzaWFuLW1hcCc7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmZpZGpBbmd1bGFyU2VydmljZS5zZW5kT25FbmRwb2ludCh7XG4gICAgICBrZXk6ICdyYWlucycsXG4gICAgICB2ZXJiOiAnR0VUJyxcbiAgICAgIHJlbGF0aXZlUGF0aDogcXVlcnlQYXRoLFxuICAgICAgZGVmYXVsdEtleVVybDogdGhpcy5kZWZhdWx0VXJsRm9yQVBJICsgJy9yYWlucydcbiAgICB9KTtcbiAgICBpZiAoIXJlc3BvbnNlWydjYXJ0ZXNpYW4tbWFwJ10pIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IHJhaW5Db21wdXRhdGlvbk1hcCA9IG5ldyBSYWluQ29tcHV0YXRpb25NYXAocmVzcG9uc2VbJ2NhcnRlc2lhbi1tYXAnXSk7XG4gICAgcmFpbkNvbXB1dGF0aW9uTWFwLm5hbWUgPSByYWluSWQgKyAnLnJhaW4uY2FydGVzaWFuLW1hcCc7XG4gICAgcmV0dXJuIHJhaW5Db21wdXRhdGlvbk1hcDtcbiAgfVxuXG4gIGFzeW5jIGdldFJhaW5Db21wYXJlcyhyYWluSWQ6IHN0cmluZywgcmFpbkNvbXB1dGF0aW9uSWQ6IHN0cmluZyk6IFByb21pc2U8eyBpZDogc3RyaW5nLCB2ZXJzaW9uOiBzdHJpbmcgfVtdPiB7XG4gICAgY29uc3QgcXVlcnlQYXRoID0gJycgKyByYWluSWQgKyAnL2NvbXB1dGF0aW9ucy8nICsgcmFpbkNvbXB1dGF0aW9uSWQ7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmZpZGpBbmd1bGFyU2VydmljZS5zZW5kT25FbmRwb2ludCh7XG4gICAgICBrZXk6ICdyYWlucycsXG4gICAgICB2ZXJiOiAnR0VUJyxcbiAgICAgIHJlbGF0aXZlUGF0aDogcXVlcnlQYXRoLFxuICAgICAgZGVmYXVsdEtleVVybDogdGhpcy5kZWZhdWx0VXJsRm9yQVBJICsgJy9yYWlucycsXG4gICAgICAvLyB0aW1lb3V0OiAyMDAwMDAsXG4gICAgfSk7XG5cbiAgICBjb25zdCByYWluQ29tcHV0YXRpb24gPSBuZXcgUmFpbkNvbXB1dGF0aW9uKHJlc3BvbnNlKTtcbiAgICBjb25zdCBsaW5rcyA9IHJhaW5Db21wdXRhdGlvbi5nZXRMaW5rcygpO1xuICAgIGNvbnN0IHJhaW5Db21wdXRhdGlvblF1YWxpdGllcyA9IFtdO1xuICAgIGZvciAoY29uc3QgbGluayBvZiBsaW5rcykge1xuICAgICAgaWYgKGxpbmsuaHJlZi5pbmRleE9mKCcvY29tcGFyZXMvJykgPiAwKSB7XG4gICAgICAgIGNvbnN0IGlkID0gbGluay5nZXRJZCgpO1xuICAgICAgICBjb25zdCB2ZXJzaW9uID0gbGluay5ocmVmLnN1YnN0cmluZyhsaW5rLmhyZWYuaW5kZXhPZigndmVyc2lvbi8nKSArIDgsIGxpbmsuaHJlZi5pbmRleE9mKCcvJyArIGlkKSk7XG4gICAgICAgIHJhaW5Db21wdXRhdGlvblF1YWxpdGllcy5wdXNoKHtpZCwgdmVyc2lvbn0pO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmFpbkNvbXB1dGF0aW9uUXVhbGl0aWVzO1xuICB9XG5cbiAgYXN5bmMgZ2V0UmFpbkNvbXBhcmVCeUlkKHJhaW5JZDogc3RyaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgcmFpbkNvbXB1dGF0aW9uSWQ6IHN0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhaW5Db21wdXRhdGlvblF1YWxpdHlJZDogc3RyaW5nKTogUHJvbWlzZTxSYWluQ29tcHV0YXRpb25RdWFsaXR5PiB7XG4gICAgY29uc3QgcXVlcnlQYXRoID0gJycgKyByYWluSWQgKyAnL2NvbXB1dGF0aW9ucy8nICsgcmFpbkNvbXB1dGF0aW9uSWQgKyAnL2NvbXBhcmVzLycgKyByYWluQ29tcHV0YXRpb25RdWFsaXR5SWQ7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmZpZGpBbmd1bGFyU2VydmljZS5zZW5kT25FbmRwb2ludCh7XG4gICAgICBrZXk6ICdyYWlucycsXG4gICAgICB2ZXJiOiAnR0VUJyxcbiAgICAgIHJlbGF0aXZlUGF0aDogcXVlcnlQYXRoLFxuICAgICAgZGVmYXVsdEtleVVybDogdGhpcy5kZWZhdWx0VXJsRm9yQVBJICsgJy9yYWlucycsXG4gICAgICAvLyB0aW1lb3V0OiAyMDAwMDAsXG4gICAgfSk7XG5cbiAgICBjb25zdCByYWluQ29tcHV0YXRpb25RdWFsaXR5ID0gbmV3IFJhaW5Db21wdXRhdGlvblF1YWxpdHkocmVzcG9uc2UpO1xuICAgIHJhaW5Db21wdXRhdGlvblF1YWxpdHkucXVhbGl0eVNwZWVkTWF0cml4Q29udGFpbmVyID0gU3BlZWRNYXRyaXhDb250YWluZXIuQ3JlYXRlRnJvbUpzb24oXG4gICAgICByYWluQ29tcHV0YXRpb25RdWFsaXR5LnF1YWxpdHlTcGVlZE1hdHJpeENvbnRhaW5lcik7XG4gICAgcmV0dXJuIHJhaW5Db21wdXRhdGlvblF1YWxpdHk7XG4gIH1cblxuICAvLyA9PT0gR2F1Z2VzID09PVxuXG4gIGFzeW5jIGdldEdhdWdlKGdhdWdlSWQ6IHN0cmluZyk6IFByb21pc2U8R2F1Z2VOb2RlPiB7XG4gICAgY29uc3QgcmVzcCA9IGF3YWl0IHRoaXMuZmlkakFuZ3VsYXJTZXJ2aWNlLnNlbmRPbkVuZHBvaW50KHtcbiAgICAgIGtleTogJ2dhdWdlcycsXG4gICAgICB2ZXJiOiAnR0VUJyxcbiAgICAgIHJlbGF0aXZlUGF0aDogZ2F1Z2VJZCxcbiAgICAgIGRlZmF1bHRLZXlVcmw6IHRoaXMuZGVmYXVsdFVybEZvckFQSSArICcvZ2F1Z2VzJ1xuICAgIH0pO1xuICAgIHJldHVybiBuZXcgR2F1Z2VOb2RlKHJlc3ApO1xuICB9XG5cbiAgYXN5bmMgZ2V0R2F1Z2VzKHJhaW5JZD86IHN0cmluZyk6IFByb21pc2U8QXJyYXk8R2F1Z2VOb2RlRmlsdGVyPj4ge1xuICAgIGxldCBxdWVyeVBhdGggPSAnJztcbiAgICBpZiAodGhpcy5hc1RlYW1JZCkge1xuICAgICAgcXVlcnlQYXRoICs9ICc/dGVhbUlkPScgKyB0aGlzLmFzVGVhbUlkO1xuICAgIH1cbiAgICBpZiAocmFpbklkKSB7XG4gICAgICBpZiAocXVlcnlQYXRoKSB7XG4gICAgICAgIHF1ZXJ5UGF0aCArPSAnJic7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBxdWVyeVBhdGggKz0gJz8nO1xuICAgICAgfVxuICAgICAgcXVlcnlQYXRoICs9ICdyYWluSWQ9JyArIHJhaW5JZDtcbiAgICB9XG5cbiAgICBjb25zdCBnYXVnZXMgPSBbXTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcCA9IGF3YWl0IHRoaXMuZmlkakFuZ3VsYXJTZXJ2aWNlLnNlbmRPbkVuZHBvaW50KHtcbiAgICAgICAga2V5OiAnZ2F1Z2VzJyxcbiAgICAgICAgdmVyYjogJ0dFVCcsXG4gICAgICAgIHJlbGF0aXZlUGF0aDogcXVlcnlQYXRoLFxuICAgICAgICBkZWZhdWx0S2V5VXJsOiB0aGlzLmRlZmF1bHRVcmxGb3JBUEkgKyAnL2dhdWdlcydcbiAgICAgIH0pO1xuXG4gICAgICBmb3IgKGNvbnN0IGdhdWdlIG9mIHJlc3AuZ2F1Z2VzKSB7XG4gICAgICAgIGdhdWdlcy5wdXNoKG5ldyBHYXVnZU5vZGVGaWx0ZXIoZ2F1Z2UpKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdnZXRHYXVnZXMgZXJyb3I6JywgZSk7XG4gICAgfVxuICAgIHJldHVybiBnYXVnZXM7XG4gIH1cblxuICBhc3luYyBnZXRHYXVnZU1lYXN1cmVzKGdhdWdlSWQ6IHN0cmluZywgYmVnaW46IERhdGUsIGVuZDogRGF0ZSk6IFByb21pc2U8R2F1Z2VNZWFzdXJlW10+IHtcbiAgICBjb25zdCBxdWVyeVBhdGggPSAnJyArIGdhdWdlSWQgKyAnL21lYXN1cmVzP2JlZ2luPScgKyBiZWdpbi50b0lTT1N0cmluZygpICsgJyZlbmQ9JyArIGVuZC50b0lTT1N0cmluZygpO1xuICAgIGNvbnN0IHJlc3AgPSBhd2FpdCB0aGlzLmZpZGpBbmd1bGFyU2VydmljZS5zZW5kT25FbmRwb2ludCh7XG4gICAgICBrZXk6ICdnYXVnZXMnLFxuICAgICAgdmVyYjogJ0dFVCcsXG4gICAgICByZWxhdGl2ZVBhdGg6IHF1ZXJ5UGF0aCxcbiAgICAgIGRlZmF1bHRLZXlVcmw6IHRoaXMuZGVmYXVsdFVybEZvckFQSSArICcvZ2F1Z2VzJ1xuICAgIH0pO1xuXG4gICAgY29uc3QgZ2F1Z2VNZWFzdXJlczogR2F1Z2VNZWFzdXJlW10gPSBbXTtcbiAgICBmb3IgKGNvbnN0IGdhdWdlTWVhc3VyZSBvZiByZXNwLmdhdWdlTWVhc3VyZXMpIHtcbiAgICAgIGdhdWdlTWVhc3VyZXMucHVzaChuZXcgR2F1Z2VNZWFzdXJlKGdhdWdlTWVhc3VyZSkpO1xuICAgIH1cbiAgICByZXR1cm4gZ2F1Z2VNZWFzdXJlcztcbiAgfVxuXG4gIC8vID09PSBQcml2YXRlID09PVxuXG4gIHByb3RlY3RlZCBzZXRSb2xlcyhyb2xlczogQXJyYXk8c3RyaW5nPik6IHZvaWQge1xuICAgIHRoaXMucm9sZXMgPSByb2xlcztcbiAgfVxuXG4gIC8vIGFzeW5jIGdldERvbWFpbnMoKSB7XG4gIC8vICAgIGF3YWl0IHRoaXMuZmlkakFuZ3VsYXJTZXJ2aWNlLmdldERvbWFpbigpOyAvLyB3aXRoIG93bmVyICYgbWVtYmVycyAmIHJvbGVzXG4gIC8vIH1cblxuICAvLyBhc3luYyB1cGRhdGVEb21haW4odGVhbTogRG9tYWluKSB7XG4gIC8vIGF3YWl0IHRoaXMuZmlkakFuZ3VsYXJTZXJ2aWNlLnVwZGF0ZURvbWFpbih0ZWFtKTtcbiAgLy8gfVxuXG59XG4iXX0=
|
|
@@ -54,8 +54,8 @@ export class RaainConfigurationComponent {
|
|
|
54
54
|
}
|
|
55
55
|
async change(changes) {
|
|
56
56
|
// console.log('changed', changes);
|
|
57
|
-
|
|
58
|
-
|
|
57
|
+
await this.delete();
|
|
58
|
+
this.create();
|
|
59
59
|
}
|
|
60
60
|
updateMapSize() {
|
|
61
61
|
const mapDivWidth = this.canvasElement.nativeElement.parentNode?.parentNode['clientWidth'];
|
|
@@ -94,4 +94,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
94
94
|
type: HostListener,
|
|
95
95
|
args: ['window:resize', ['$event']]
|
|
96
96
|
}] } });
|
|
97
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
97
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFhaW4tY29uZmlndXJhdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC9yYWFpbi1jb25maWd1cmF0aW9uL3JhYWluLWNvbmZpZ3VyYXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvcmFhaW4tY29uZmlndXJhdGlvbi9yYWFpbi1jb25maWd1cmF0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBRVQsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBSUwsTUFBTSxFQUVOLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXVCLHlCQUF5QixFQUFFLGVBQWUsRUFBQyxNQUFNLFVBQVUsQ0FBQztBQUMxRixPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sV0FBVyxDQUFDOzs7QUFPakMsTUFBTSxPQUFPLDJCQUEyQjtJQTBCdEMsWUFBb0IsTUFBYztRQUFkLFdBQU0sR0FBTixNQUFNLENBQVE7UUFwQjNCLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVksQ0FBQztRQU83QyxhQUFRLEdBQVcsRUFBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQztRQUdoQyxhQUFRLEdBQVcsRUFBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUMsQ0FBQztRQVd6QyxJQUFJLENBQUMsYUFBYSxHQUFHLEdBQUcsRUFBRTtRQUMxQixDQUFDLENBQUM7UUFDRixJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBTSxFQUFFLEVBQUU7WUFDdkIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3ZDLENBQUMsQ0FBQTtJQUNILENBQUM7SUFFTSxrQkFBa0I7UUFDdkIsSUFBSSxDQUFD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RyxDQUFDLEdBQUcsRUFBRTtZQUNuQixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDdkIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzt5SEEzR1UsMkJBQTJCOzZHQUEzQiwyQkFBMkIscVpDdEJ4QywrZEFZQTs0RkRVYSwyQkFBMkI7a0JBTHZDLFNBQVM7K0JBQ0UscUJBQXFCOzZGQU94QixNQUFNO3NCQURaLEtBQUs7Z0JBSUMsYUFBYTtzQkFEbkIsTUFBTTtnQkFJQSxhQUFhO3NCQURuQixLQUFLO2dCQUtDLFFBQVE7c0JBRGQsS0FBSztnQkFJQyxRQUFRO3NCQURkLEtBQUs7Z0JBSUksYUFBYTtzQkFEdEIsU0FBUzt1QkFBQyxlQUFlO2dCQXdDbEIsUUFBUTtzQkFEZixZQUFZO3VCQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0NoZWNrZWQsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBOZ1pvbmUsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q29uZmlndXJhdGlvbkVsZW1lbnQsIENvbmZpZ3VyYXRpb25FbGVtZW50SW5wdXQsIEVsZW1lbnRzRmFjdG9yeX0gZnJvbSAncmFhaW4tdWknO1xuaW1wb3J0IHtYWVR5cGV9IGZyb20gJy4uL3h5dHlwZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JhYWluLWNvbmZpZ3VyYXRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vcmFhaW4tY29uZmlndXJhdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3JhYWluLWNvbmZpZ3VyYXRpb24uY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgUmFhaW5Db25maWd1cmF0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3Q2hlY2tlZCwgT25EZXN0cm95LCBPbkNoYW5nZXMge1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBwb2ludHM6IFhZVHlwZVtdO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgY2hhbmdlZFBvaW50cyA9IG5ldyBFdmVudEVtaXR0ZXI8WFlUeXBlW10+KCk7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGN1cnJlbnRIZWlnaHQ6IG51bWJlcjtcbiAgcHVibGljIGN1cnJlbnRXaWR0aDogbnVtYmVyO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBtaW5Qb2ludDogWFlUeXBlID0ge3g6IDAsIHk6IDB9O1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBtYXhQb2ludDogWFlUeXBlID0ge3g6IDMwMCwgeTogMTAwfTtcblxuICBAVmlld0NoaWxkKCdjYW52YXNFbGVtZW50JylcbiAgcHJvdGVjdGVkIGNhbnZhc0VsZW1lbnQ6IEVsZW1lbnRSZWY7XG5cbiAgcHJpdmF0ZSBjb25maWd1cmF0aW9uRWxlbWVudDogQ29uZmlndXJhdGlvbkVsZW1lbnQ7XG4gIHByaXZhdGUgb25EcmFnO1xuICBwcml2YXRlIG9uU2l6ZUNoYW5nZWQ7XG4gIHByaXZhdGUgY3JlYXRlZDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG5nWm9uZTogTmdab25lKSB7XG4gICAgdGhpcy5vblNpemVDaGFuZ2VkID0gKCkgPT4ge1xuICAgIH07XG4gICAgdGhpcy5vbkRyYWcgPSAoZTogYW55KSA9PiB7XG4gICAgICB0aGlzLmNoYW5nZWRQb2ludHMuZW1pdCh0aGlzLnBvaW50cyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmNyZWF0ZSgpO1xuICB9XG5cbiAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICB0aGlzLmNoYW5nZShjaGFuZ2VzKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlbGV0ZSgpO1xuICB9XG5cbiAgYXN5bmMgcmVzZXQoY291bnQgPSA0KSB7XG4gICAgY29uc3QgcG9pbnRzID0gW107XG4gICAgZm9yIChsZXQgYyA9IDA7IGMgPCBjb3VudDsgYysrKSB7XG4gICAgICBwb2ludHMucHVzaChuZXcgWFlUeXBlKChjICsgMSkgKiAxMCwgKGMgKyAxKSAqIDEwKSk7XG4gICAgfVxuICAgIHRoaXMucG9pbnRzID0gcG9pbnRzO1xuXG4gICAgYXdhaXQgdGhpcy5kZWxldGUoKTtcbiAgICB0aGlzLmNyZWF0ZSgpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScsIFsnJGV2ZW50J10pXG4gIHByaXZhdGUgb25SZXNpemUoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIC8vIHRoaXMudXBkYXRlTWFwU2l6ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGUoKSB7XG4gICAgaWYgKHRoaXMuY3JlYXRlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmNyZWF0ZWQgPSB0cnVlO1xuXG4gICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGZhY3RvcnkgPSBuZXcgRWxlbWVudHNGYWN0b3J5KCk7XG4gICAgICAgIHRoaXMuY29uZmlndXJhdGlvbkVsZW1lbnQgPSBmYWN0b3J5LmNyZWF0ZUNvbmZpZ3VyYXRpb24odGhpcy5jYW52YXNFbGVtZW50Lm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgbmV3IENvbmZpZ3VyYXRpb25FbGVtZW50SW5wdXQodGhpcy5wb2ludHMsXG4gICAgICAgICAgICB0aGlzLm1pblBvaW50LFxuICAgICAgICAgICAgdGhpcy5tYXhQb2ludCxcbiAgICAgICAgICAgIHRoaXMub25EcmFnKSk7XG4gICAgICB9LCAxMCk7XG4gICAgfSk7XG5cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZGVsZXRlKCkge1xuICAgIGF3YWl0IHRoaXMuY29uZmlndXJhdGlvbkVsZW1lbnQ/LmNoYXJ0Py5kZXN0cm95KCk7XG4gICAgdGhpcy5jcmVhdGVkID0gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGNoYW5nZShjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgLy8gY29uc29sZS5sb2coJ2NoYW5nZWQnLCBjaGFuZ2VzKTtcbiAgICBhd2FpdCB0aGlzLmRlbGV0ZSgpO1xuICAgIHRoaXMuY3JlYXRlKCk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZU1hcFNpemUoKTogdm9pZCB7XG5cbiAgICBjb25zdCBtYXBEaXZXaWR0aCA9IHRoaXMuY2FudmFzRWxlbWVudC5uYXRpdmVFbGVtZW50LnBhcmVudE5vZGU/LnBhcmVudE5vZGVbJ2NsaWVudFdpZHRoJ107XG4gICAgY29uc3QgcGFkZGluZyA9IDIwO1xuICAgIGxldCBjdXJyZW50V2lkdGggPSBtYXBEaXZXaWR0aCB8fFxuICAgICAgKHdpbmRvdy5pbm5lcldpZHRoIHx8IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCB8fCBkb2N1bWVudC5ib2R5LmNsaWVudFdpZHRoKTtcbiAgICBjb25zdCBjdXJyZW50SGVpZ2h0ID0gdGhpcy5jdXJyZW50SGVpZ2h0IHx8XG4gICAgICAod2luZG93LmlubmVySGVpZ2h0IHx8IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQgfHwgZG9jdW1lbnQuYm9keS5jbGllbnRIZWlnaHQpO1xuICAgIGN1cnJlbnRXaWR0aCAtPSBwYWRkaW5nO1xuICAgIHRoaXMuY3VycmVudFdpZHRoID0gY3VycmVudFdpZHRoO1xuICAgIHRoaXMuY3VycmVudEhlaWdodCA9IGN1cnJlbnRIZWlnaHQ7XG5cbiAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgdGhpcy5vblNpemVDaGFuZ2VkKCk7XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxpb24tZ3JpZD5cbiAgPGlvbi1yb3c+XG4gICAgPGlvbi1jb2wgaWQ9XCJjb2wtY29udGFpbmVyXCI+XG4gICAgICA8ZGl2IFtzdHlsZS5oZWlnaHQucHhdPVwiY3VycmVudEhlaWdodFwiIFtzdHlsZS53aWR0aC5weF09XCJjdXJyZW50V2lkdGhcIiBpZD1cImNhbnZhcy1jb250YWluZXJcIj5cbiAgICAgICAgPGNhbnZhcyAjY2FudmFzRWxlbWVudD48L2NhbnZhcz5cbiAgICAgIDwvZGl2PlxuICAgICAgPGlvbi1idXR0b24gKGNsaWNrKT1cInJlc2V0KDIpXCI+cmVzZXQgKDIgcG9pbnRzKTwvaW9uLWJ1dHRvbj5cbiAgICAgIDxpb24tYnV0dG9uIChjbGljayk9XCJyZXNldCg0KVwiPnJlc2V0ICg0IHBvaW50cyk8L2lvbi1idXR0b24+XG4gICAgICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwicmVzZXQoNilcIj5yZXNldCAoNiBwb2ludHMpPC9pb24tYnV0dG9uPlxuICAgIDwvaW9uLWNvbD5cbiAgPC9pb24tcm93PlxuPC9pb24tZ3JpZD5cbiJdfQ==
|
|
@@ -23,7 +23,7 @@ export class RefreshManager {
|
|
|
23
23
|
this.timeframeDates = [];
|
|
24
24
|
this.closeRefreshTimer?.next(null);
|
|
25
25
|
}
|
|
26
|
-
async fetch(dateShown, withGaugesMeasures
|
|
26
|
+
async fetch(dateShown, withGaugesMeasures) {
|
|
27
27
|
// set the target
|
|
28
28
|
const currents = this.timeframesFromRadarsExtended.filter(t => t.date.getTime() === dateShown.getTime());
|
|
29
29
|
if (currents.length !== 1) {
|
|
@@ -65,7 +65,7 @@ export class RefreshManager {
|
|
|
65
65
|
}
|
|
66
66
|
}
|
|
67
67
|
// align Compare with targets
|
|
68
|
-
this.refreshCompareQuality(current, targets
|
|
68
|
+
this.refreshCompareQuality(current, targets).then((ignored) => {
|
|
69
69
|
});
|
|
70
70
|
return current;
|
|
71
71
|
}
|
|
@@ -111,6 +111,9 @@ export class RefreshManager {
|
|
|
111
111
|
async selectGauge(gaugeId, compareIndex) {
|
|
112
112
|
return this.compareManager.selectGauge(gaugeId, compareIndex);
|
|
113
113
|
}
|
|
114
|
+
setRemoveDuplicate(b) {
|
|
115
|
+
this.removeDuplicate = b;
|
|
116
|
+
}
|
|
114
117
|
async refreshCounts() {
|
|
115
118
|
const counts = await this.profileService.getCounts(this.rainNode.id, this.begin, this.end, true);
|
|
116
119
|
this.countsPeriod = {
|
|
@@ -166,7 +169,7 @@ export class RefreshManager {
|
|
|
166
169
|
target.rainComputationQualityId = this.getRainComputationQualityTarget(frameSet);
|
|
167
170
|
targets.push(target);
|
|
168
171
|
}
|
|
169
|
-
await this.compareManager.refreshGlobalCompareQuality(targets,
|
|
172
|
+
await this.compareManager.refreshGlobalCompareQuality(targets, !this.removeDuplicate);
|
|
170
173
|
}
|
|
171
174
|
async refreshMapTimeframeContainers(target) {
|
|
172
175
|
if (!target || !target.rainComputationId) {
|
|
@@ -192,9 +195,9 @@ export class RefreshManager {
|
|
|
192
195
|
}
|
|
193
196
|
return newCreatedTimeframeContainers;
|
|
194
197
|
}
|
|
195
|
-
async refreshCompareQuality(frameSet, targets
|
|
196
|
-
await this.compareManager.refreshCompareQuality(frameSet, targets,
|
|
198
|
+
async refreshCompareQuality(frameSet, targets) {
|
|
199
|
+
await this.compareManager.refreshCompareQuality(frameSet, targets, !this.removeDuplicate);
|
|
197
200
|
await this.compareManager.setGauges();
|
|
198
201
|
}
|
|
199
202
|
}
|
|
200
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVmcmVzaE1hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC90b29scy9SZWZyZXNoTWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDL0MsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRXpDLE9BQU8sRUFBcUIsbUJBQW1CLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFLakUsTUFBTSxPQUFPLGNBQWM7SUFlekIsWUFDWSxRQUFrQixFQUNsQixZQUEwQixFQUMxQixjQUE4QixFQUM5QixjQUE4QixFQUM5QixtQkFBaUYsRUFDakYsYUFBd0QsRUFDeEQsV0FBd0U7UUFOeEUsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBOEQ7UUFDakYsa0JBQWEsR0FBYixhQUFhLENBQTJDO1FBQ3hELGdCQUFXLEdBQVgsV0FBVyxDQUE2RDtRQUVsRixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxPQUFPLEVBQU8sQ0FBQztRQUM1QyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbEIsQ0FBQztJQUVNLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBVTtRQUM1QixPQUFPLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRCxRQUFRO1FBRU4sSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEVBQUUsQ0FBQztRQUMv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RiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RnJhbWVTZXR9IGZyb20gJy4vRnJhbWVTZXQnO1xuaW1wb3J0IHtTdWJqZWN0LCB0YWtlVW50aWwsIHRpbWVyfSBmcm9tICdyeGpzJztcbmltcG9ydCB7c3dpdGNoTWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1JhaW5Ob2RlfSBmcm9tICdyYWFpbi1tb2RlbCc7XG5pbXBvcnQge1RpbWVmcmFtZUNvbnRhaW5lciwgVGltZWZyYW1lQ29udGFpbmVyc30gZnJvbSAncmFhaW4tdWknO1xuaW1wb3J0IHtSYWRhclNlcnZpY2V9IGZyb20gJy4uL3JhZGFyLnNlcnZpY2UnO1xuaW1wb3J0IHtQcm9maWxlU2VydmljZX0gZnJvbSAnLi4vcHJvZmlsZS5zZXJ2aWNlJztcbmltcG9ydCB7Q29tcGFyZU1hbmFnZXJ9IGZyb20gJy4vQ29tcGFyZU1hbmFnZXInO1xuXG5leHBvcnQgY2xhc3MgUmVmcmVzaE1hbmFnZXIge1xuXG4gIHB1YmxpYyByYWluQ29tcHV0YXRpb25NYXBEYXRlOiBEYXRlO1xuICBwdWJsaWMgcmFpbkNvbXB1dGF0aW9uTWFwRG9uZURhdGU6IERhdGU7XG4gIHB1YmxpYyByYWluQ29tcHV0YXRpb25NYXBMYXVuY2hlZEJ5OiBzdHJpbmc7XG4gIHB1YmxpYyByYWluQ29tcHV0YXRpb25NYXBUaW1lU3BlbnRJbk1zOiBudW1iZXI7XG5cbiAgcHJvdGVjdGVkIGNsb3NlUmVmcmVzaFRpbWVyOiBTdWJqZWN0PGFueT47XG4gIHByb3RlY3RlZCBjb3VudHNQZXJpb2Q6IGFueTtcbiAgcHJvdGVjdGVkIHRpbWVmcmFtZXNGcm9tUmFkYXJzOiBGcmFtZVNldFtdO1xuICBwcm90ZWN0ZWQgdGltZWZyYW1lc0Zyb21SYWRhcnNFeHRlbmRlZDogRnJhbWVTZXRbXTtcbiAgcHJvdGVjdGVkIHRpbWVmcmFtZURhdGVzOiBEYXRlW107XG4gIHByb3RlY3RlZCBiZWdpbjogRGF0ZTtcbiAgcHJvdGVjdGVkIGVuZDogRGF0ZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgcmFpbk5vZGU6IFJhaW5Ob2RlLFxuICAgIHByb3RlY3RlZCByYWRhclNlcnZpY2U6IFJhZGFyU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgcHJvZmlsZVNlcnZpY2U6IFByb2ZpbGVTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBjb21wYXJlTWFuYWdlcjogQ29tcGFyZU1hbmFnZXIsXG4gICAgcHJvdGVjdGVkIG9uUmVmcmVzaEluUHJvZ3Jlc3M6IChjb3VudFBlcmlvZHM6IGFueSwgdGltZWZyYW1lRGF0ZXM6IERhdGVbXSkgPT4gUHJvbWlzZTx2b2lkPixcbiAgICBwcm90ZWN0ZWQgb25SZWZyZXNoRG9uZTogKHRpbWVmcmFtZURhdGVzOiBEYXRlW10pID0+IFByb21pc2U8dm9pZD4sXG4gICAgcHJvdGVjdGVkIG9uRmV0Y2hEb25lOiAodGltZWZyYW1lQ29udGFpbmVyczogVGltZWZyYW1lQ29udGFpbmVycykgPT4gUHJvbWlzZTx2b2lkPixcbiAgKSB7XG4gICAgdGhpcy5jbG9zZVJlZnJlc2hUaW1lciA9IG5ldyBTdWJqZWN0PGFueT4oKTtcbiAgICB0aGlzLmNsZWFuQWxsKCk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIERlbGF5KG1zOiBudW1iZXIpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIG1zKSk7XG4gIH1cblxuICBjbGVhbkFsbCgpIHtcblxuICAgIHRoaXMuY291bnRzUGVyaW9kID0ge307XG4gICAgdGhpcy50aW1lZnJhbWVzRnJvbVJhZGFycyA9IFtdO1xuICAgIHRoaXMudGltZWZyYW1lc0Zyb21SYWRhcnNFeHRlbmRlZCA9IFtdO1xuICAgIHRoaXMudGltZWZyYW1lRGF0ZXMgPSBbXTtcbiAgICB0aGlzLmNsb3NlUmVmcmVzaFRpbWVyPy5uZXh0KG51bGwpO1xuICB9XG5cbiAgYXN5bmMgZmV0Y2goZGF0ZVNob3duOiBEYXRlLCB3aXRoR2F1Z2VzTWVhc3VyZXM6IGJvb2xlYW4sIHdpdGhDb21wYXJlRHVwbGljYXRlOiBib29sZWFuKTogUHJvbWlzZTxGcmFtZVNldD4ge1xuICAgIC8vIHNldCB0aGUgdGFyZ2V0XG4gICAgY29uc3QgY3VycmVudHMgPSB0aGlzLnRpbWVmcmFtZXNGcm9tUmFkYXJzRXh0ZW5kZWQuZmlsdGVyKHQgPT4gdC5kYXRlLmdldFRpbWUoKSA9PT0gZGF0ZVNob3duLmdldFRpbWUoKSk7XG4gICAgaWYgKGN1cnJlbnRzLmxlbmd0aCAhPT0gMSkge1xuICAgICAgY29uc29sZS5sb2coJ25vIGNvcnJlY3QgZGF0ZVNob3duJywgZGF0ZVNob3duLCB0aGlzLnRpbWVmcmFtZXNGcm9tUmFkYXJzRXh0ZW5kZWQpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIGJ1aWxkIFtjdXJyZW50LCBwcmV2aW91cywgbmV4dF0gdGFyZ2V0c1xuICAgIGNvbnN0IGN1cnJlbnQ6IEZyYW1lU2V0ID0gY3VycmVudHNbMF07XG4gICAgY29uc3QgcG9zaXRpb24gPSB0aGlzLnRpbWVmcmFtZXNGcm9tUmFkYXJzRXh0ZW5kZWQuaW5kZXhPZihjdXJyZW50KTtcbiAgICBsZXQgcHJldmlvdXM6IEZyYW1lU2V0ID0gbnVsbCwgbmV4dDogRnJhbWVTZXQgPSBudWxsO1xuICAgIGNvbnN0IHBvc2l0aW9uTmFtZXM6IHN0cmluZ1tdID0gWycnICsgY3VycmVudC5kYXRlLmdldFRpbWUoKV07XG4gICAgY29uc3QgZnJhbWVTZXRzID0ge307XG4gICAgZnJhbWVTZXRzWycnICsgY3VycmVudC5kYXRlLmdldFRpbWUoKV0gPSBjdXJyZW50O1xuICAgIGlmIChwb3NpdGlvbiA+IDApIHtcbiAgICAgIHByZXZpb3VzID0gdGhpcy50aW1lZnJhbWVzRnJvbVJhZGFyc0V4dGVuZGVkW3Bvc2l0aW9uIC0gMV07XG4gICAgICBwb3NpdGlvbk5hbWVzLnB1c2goJycgKyBwcmV2aW91cy5kYXRlLmdldFRpbWUoKSk7XG4gICAgICBmcmFtZVNldHNbJycgKyBwcmV2aW91cy5kYXRlLmdldFRpbWUoKV0gPSBwcmV2aW91cztcbiAgICB9XG4gICAgaWYgKHBvc2l0aW9uIDwgdGhpcy50aW1lZnJhbWVzRnJvbVJhZGFyc0V4dGVuZGVkLmxlbmd0aCkge1xuICAgICAgbmV4dCA9IHRoaXMudGltZWZyYW1lc0Zyb21SYWRhcnNFeHRlbmRlZFtwb3NpdGlvbiArIDFdO1xuICAgICAgaWYgKG5leHQ/LmRhdGUpIHtcbiAgICAgICAgcG9zaXRpb25OYW1lcy5wdXNoKCcnICsgbmV4dC5kYXRlLmdldFRpbWUoKSk7XG4gICAgICAgIGZyYW1lU2V0c1snJyArIG5leHQuZGF0ZS5nZXRUaW1lKCldID0gbmV4dDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBhbGlnbiBNYXAgd2l0aCB0YXJnZXRzXG4gICAgY29uc3QgdGFyZ2V0czoge1xuICAgICAgZGF0ZTogRGF0ZSxcbiAgICAgIHJhaW5Db21wdXRhdGlvbklkOiBzdHJpbmcsXG4gICAgICByYWluQ29tcHV0YXRpb25RdWFsaXR5SWQ6IHN0cmluZyxcbiAgICB9W10gPSBbXTtcbiAgICBmb3IgKGNvbnN0IHBvc2l0aW9uTmFtZSBvZiBwb3NpdGlvbk5hbWVzKSB7XG4gICAgICBpZiAoZnJhbWVTZXRzW3Bvc2l0aW9uTmFtZV0pIHtcbiAgICAgICAgY29uc3QgdGFyZ2V0ID0gZnJhbWVTZXRzW3Bvc2l0aW9uTmFtZV07XG4gICAgICAgIHRhcmdldC5yYWluQ29tcHV0YXRpb25RdWFsaXR5SWQgPSB0aGlzLmdldFJhaW5Db21wdXRhdGlvblF1YWxpdHlUYXJnZXQodGFyZ2V0KTtcbiAgICAgICAgdGFyZ2V0LndpdGhHYXVnZSA9IHdpdGhHYXVnZXNNZWFzdXJlcztcbiAgICAgICAgdGFyZ2V0cy5wdXNoKHRhcmdldCk7XG5cbiAgICAgICAgY29uc3QgdGltZWZyYW1lQ29udGFpbmVycyA9IGF3YWl0IHRoaXMucmVmcmVzaE1hcFRpbWVmcmFtZUNvbnRhaW5lcnModGFyZ2V0KTtcblxuICAgICAgICBpZiAocG9zaXRpb25OYW1lID09PSAoJycgKyBjdXJyZW50LmRhdGUuZ2V0VGltZSgpKSkge1xuICAgICAgICAgIHRoaXMub25GZXRjaERvbmUodGltZWZyYW1lQ29udGFpbmVycykudGhlbihpZ25vcmVkID0+IHtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIGFsaWduIENvbXBhcmUgd2l0aCB0YXJnZXRzXG4gICAgdGhpcy5yZWZyZXNoQ29tcGFyZVF1YWxpdHkoY3VycmVudCwgdGFyZ2V0cywgd2l0aENvbXBhcmVEdXBsaWNhdGUpLnRoZW4oKGlnbm9yZWQpID0+IHtcbiAgICB9KTtcblxuICAgIHJldHVybiBjdXJyZW50O1xuICB9XG5cbiAgYXN5bmMgc2V0UGVyaW9kKGJlZ2luOiBEYXRlLCBlbmQ6IERhdGUpIHtcbiAgICB0aGlzLmJlZ2luID0gYmVnaW47XG4gICAgdGhpcy5lbmQgPSBlbmQ7XG5cbiAgICByZXR1cm4gdGhpcy5yZWZyZXNoQ291bnRzKCk7XG4gIH1cblxuICBhc3luYyByZWZyZXNoKGxhdW5jaFF1YWxpdHlBZnRlcjogYm9vbGVhbikge1xuXG4gICAgaWYgKCF0aGlzLmJlZ2luIHx8ICF0aGlzLmVuZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCduZWVkIGEgcGVyaW9kJyk7XG4gICAgfVxuXG4gICAgdGhpcy5jb21wYXJlTWFuYWdlci5jbGVhbkFsbCgpO1xuICAgIGxldCByZWZyZXNoSW5Qcm9ncmVzcyA9IGZhbHNlO1xuICAgIGxldCByZWZyZXNoRG9uZSA9IGZhbHNlO1xuXG4gICAgdGltZXIoMTAwMCwgMTUwMDApXG4gICAgICAucGlwZShcbiAgICAgICAgc3dpdGNoTWFwKGFzeW5jICgpID0+IHtcbiAgICAgICAgICBpZiAocmVmcmVzaEluUHJvZ3Jlc3MpIHtcbiAgICAgICAgICAgIHJldHVybiByZWZyZXNoRG9uZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZWZyZXNoSW5Qcm9ncmVzcyA9IHRydWU7XG4gICAgICAgICAgdGhpcy5vblJlZnJlc2hJblByb2dyZXNzKGF3YWl0IHRoaXMucmVmcmVzaENvdW50cygpLCB0aGlzLnRpbWVmcmFtZURhdGVzKS50aGVuKGlnbm9yZWQgPT4ge1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIHJlZnJlc2hEb25lID0gYXdhaXQgdGhpcy5yZWZyZXNoUGVyaW9kSW5zaWRlUG9sbGluZygpO1xuICAgICAgICAgIGlmICghcmVmcmVzaERvbmUpIHtcbiAgICAgICAgICAgIHJlZnJlc2hJblByb2dyZXNzID0gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiByZWZyZXNoRG9uZTtcbiAgICAgICAgfSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmNsb3NlUmVmcmVzaFRpbWVyKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiBhc3luYyAocmVmcmVzaEZpbmlzaGVkOiBib29sZWFuKSA9PiB7XG4gICAgICAgICAgY29uc29sZS5sb2coJ3JlZnJlc2hGaW5pc2hlZCcsIHJlZnJlc2hGaW5pc2hlZCwgbGF1bmNoUXVhbGl0eUFmdGVyKTtcbiAgICAgICAgICBpZiAocmVmcmVzaEZpbmlzaGVkKSB7XG4gICAgICAgICAgICB0aGlzLmNsb3NlUmVmcmVzaFRpbWVyLm5leHQobnVsbCk7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLm9uUmVmcmVzaERvbmUodGhpcy50aW1lZnJhbWVEYXRlcyk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBlcnJvcjogKGVycm9yOiBhbnkpID0+IHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdlcnJvciBpbiByZWZyZXNoJywgZXJyb3IpO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICB9XG5cbiAgYXN5bmMgc2VsZWN0R2F1Z2UoZ2F1Z2VJZDogc3RyaW5nLCBjb21wYXJlSW5kZXg6IG51bWJlcikge1xuICAgIHJldHVybiB0aGlzLmNvbXBhcmVNYW5hZ2VyLnNlbGVjdEdhdWdlKGdhdWdlSWQsIGNvbXBhcmVJbmRleCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgcmVmcmVzaENvdW50cygpIHtcbiAgICBjb25zdCBjb3VudHMgPSBhd2FpdCB0aGlzLnByb2ZpbGVTZXJ2aWNlLmdldENvdW50cyh0aGlzLnJhaW5Ob2RlLmlkLCB0aGlzLmJlZ2luLCB0aGlzLmVuZCwgdHJ1ZSk7XG4gICAgdGhpcy5jb3VudHNQZXJpb2QgPSB7XG4gICAgICByYWRhck1lYXN1cmVzOiBjb3VudHMucmFkYXJNZWFzdXJlcy5yZWR1Y2UoKHBhcnRpYWxTdW0sIGEpID0+IHBhcnRpYWxTdW0gKyBhLngsIDApLFxuICAgICAgZ2F1Z2VNZWFzdXJlczogY291bnRzLmdhdWdlTWVhc3VyZXMucmVkdWNlKChwYXJ0aWFsU3VtLCBhKSA9PiBwYXJ0aWFsU3VtICsgYS54LCAwKSxcbiAgICAgIGNvbXB1dGF0aW9uc0J5VGVhbTogY291bnRzLmNvbXB1dGF0aW9uc0J5VGVhbS5yZWR1Y2UoKHBhcnRpYWxTdW0sIGEpID0+IHBhcnRpYWxTdW0gKyBhLngsIDApLFxuICAgIH07XG4gICAgcmV0dXJuIHRoaXMuY291bnRzUGVyaW9kO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldFJhaW5Db21wdXRhdGlvblF1YWxpdHlUYXJnZXQoZnJhbWVzZXQ6IEZyYW1lU2V0KTogc3RyaW5nIHtcbiAgICBpZiAoZnJhbWVzZXQucmFpbkNvbXB1dGF0aW9uUXVhbGl0aWVzLmxlbmd0aCA8PSAwKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICByZXR1cm4gZnJhbWVzZXQucmFpbkNvbXB1dGF0aW9uUXVhbGl0aWVzWzBdLmlkO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIHJlZnJlc2hQZXJpb2RJbnNpZGVQb2xsaW5nKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuXG4gICAgLy8gYXdhaXQgUmVmcmVzaE1hbmFnZXIuRGVsYXkoMTAwMCk7XG4gICAgY29uc3QgZG9uZSA9IHRoaXMucmVmcmVzaENoZWNrSWZEb25lKCk7XG4gICAgYXdhaXQgdGhpcy5yZWZyZXNoVGltZWZyYW1lc0Zyb21SYWRhcnMoZG9uZSk7XG5cbiAgICB0aGlzLnJlZnJlc2hHbG9iYWxDb21wYXJlUmVwb3J0KGRvbmUpLnRoZW4oaWdub3JlZCA9PiB7XG4gICAgfSlcblxuICAgIHJldHVybiBkb25lO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlZnJlc2hDaGVja0lmRG9uZSgpOiBib29sZWFuIHtcbiAgICAvLyBjb25zb2xlLmxvZygncmVmcmVzaFBlcmlvZEluc2lkZVBvbGxpbmcnLCB0aGlzLmNvdW50c1BlcmlvZC5jb21wdXRhdGlvbnNCeVRlYW0sIHRoaXMuY291bnRzUGVyaW9kLnJhZGFyTWVhc3VyZXMpXG4gICAgcmV0dXJuIHRoaXMuY291bnRzUGVyaW9kLmNvbXB1dGF0aW9uc0J5VGVhbSA9PT0gdGhpcy5jb3VudHNQZXJpb2QucmFkYXJNZWFzdXJlcztcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyByZWZyZXNoVGltZWZyYW1lc0Zyb21SYWRhcnMoZG9uZTogYm9vbGVhbikge1xuXG4gICAgaWYgKCFkb25lKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgY29uc3QgYmVnaW5FeHRlbmRlZCA9IG5ldyBEYXRlKHRoaXMuYmVnaW4pO1xuICAgIGNvbnN0IGVuZEV4dGVuZGVkID0gbmV3IERhdGUodGhpcy5lbmQpO1xuICAgIGJlZ2luRXh0ZW5kZWQuc2V0TWludXRlcyhiZWdpbkV4dGVuZGVkLmdldE1pbnV0ZXMoKSAtIDcpO1xuICAgIGVuZEV4dGVuZGVkLnNldE1pbnV0ZXMoZW5kRXh0ZW5kZWQuZ2V0TWludXRlcygpICsgNyk7XG4gICAgdGhpcy5yYWluTm9kZSA9IGF3YWl0IHRoaXMucHJvZmlsZVNlcnZpY2UuZ2V0UmFpblRpbWVmcmFtZSh0aGlzLnJhaW5Ob2RlLmdldElkKCksIGJlZ2luRXh0ZW5kZWQsIGVuZEV4dGVuZGVkKTtcblxuICAgIHRoaXMudGltZWZyYW1lc0Zyb21SYWRhcnNFeHRlbmRlZCA9IGF3YWl0IHRoaXMucmFkYXJTZXJ2aWNlLmdldFRpbWVsaW5lKHRoaXMucmFpbk5vZGUpO1xuICAgIHRoaXMudGltZWZyYW1lc0Zyb21SYWRhcnMgPSB0aGlzLnRpbWVmcmFtZXNGcm9tUmFkYXJzRXh0ZW5kZWRcbiAgICAgIC5maWx0ZXIoKGZyYW1lU2V0KSA9PiB0aGlzLmJlZ2luLmdldFRpbWUoKSA8PSBmcmFtZVNldC5kYXRlLmdldFRpbWUoKSAmJiBmcmFtZVNldC5kYXRlLmdldFRpbWUoKSA8PSB0aGlzLmVuZC5nZXRUaW1lKCkpXG4gICAgICAuc29ydCgoYSwgYikgPT4gYS5kYXRlLmdldFRpbWUoKSAtIGIuZGF0ZS5nZXRUaW1lKCkpO1xuXG4gICAgLy8gY29uc29sZS5sb2coJ3RpbWVmcmFtZXNGcm9tUmFkYXJzRXh0ZW5kZWQ6JywgdGhpcy50aW1lZnJhbWVzRnJvbVJhZGFyc0V4dGVuZGVkKTtcblxuICAgIHRoaXMudGltZWZyYW1lRGF0ZXMgPSB0aGlzLnRpbWVmcmFtZXNGcm9tUmFkYXJzLm1hcChmcmFtZVNldCA9PiBmcmFtZVNldC5kYXRlKTtcbiAgICByZXR1cm4gdGhpcy50aW1lZnJhbWVzRnJvbVJhZGFycztcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyByZWZyZXNoR2xvYmFsQ29tcGFyZVJlcG9ydChkb25lOiBib29sZWFuKSB7XG4gICAgaWYgKCFkb25lKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgdGFyZ2V0cyA9IFtdO1xuICAgIGZvciAoY29uc3QgZnJhbWVTZXQgb2YgdGhpcy50aW1lZnJhbWVzRnJvbVJhZGFyc0V4dGVuZGVkKSB7XG4gICAgICBjb25zdCB0YXJnZXQgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGZyYW1lU2V0KSk7XG4gICAgICB0YXJnZXQuZGF0ZSA9IG5ldyBEYXRlKHRhcmdldC5kYXRlKTtcbiAgICAgIHRhcmdldC5yYWluQ29tcHV0YXRpb25RdWFsaXR5SWQgPSB0aGlzLmdldFJhaW5Db21wdXRhdGlvblF1YWxpdHlUYXJnZXQoZnJhbWVTZXQpO1xuICAgICAgdGFyZ2V0cy5wdXNoKHRhcmdldCk7XG4gICAgfVxuICAgIGF3YWl0IHRoaXMuY29tcGFyZU1hbmFnZXIucmVmcmVzaEdsb2JhbENvbXBhcmVRdWFsaXR5KHRhcmdldHMsIGZhbHNlKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyByZWZyZXNoTWFwVGltZWZyYW1lQ29udGFpbmVycyh0YXJnZXQ6IHtcbiAgICBkYXRlOiBEYXRlLFxuICAgIHJhaW5Db21wdXRhdGlvbklkOiBzdHJpbmcsXG4gICAgd2l0aEdhdWdlOiBib29sZWFuXG4gIH0pIHtcbiAgICBpZiAoIXRhcmdldCB8fCAhdGFyZ2V0LnJhaW5Db21wdXRhdGlvbklkKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ1BiIHdpdGggcmVmcmVzaE1hcFRpbWVmcmFtZUNvbnRhaW5lcnMgaW5zaWdodHMnKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCByYWluTm9kZSA9IHRoaXMucmFpbk5vZGU7XG4gICAgY29uc3QgY29udGFpbmVyczogVGltZWZyYW1lQ29udGFpbmVyW10gPSBbXTtcbiAgICBjb25zdCBuZXdDcmVhdGVkVGltZWZyYW1lQ29udGFpbmVycyA9IG5ldyBUaW1lZnJhbWVDb250YWluZXJzKGNvbnRhaW5lcnMpO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByYWluTm9kZUNhcnRlc2lhbk1hcCA9IGF3YWl0IHRoaXMucHJvZmlsZVNlcnZpY2VcbiAgICAgICAgLmdldFJhaW5Db21wdXRhdGlvbkNhcnRlc2lhbk1hcEJ5SWQocmFpbk5vZGUuZ2V0SWQoKSwgdGFyZ2V0LnJhaW5Db21wdXRhdGlvbklkKTtcbiAgICAgIGlmIChyYWluTm9kZUNhcnRlc2lhbk1hcCkge1xuICAgICAgICBuZXdDcmVhdGVkVGltZWZyYW1lQ29udGFpbmVycy5hZGRGcm9tUmFpbkNvbXB1dGF0aW9uTWFwKHJhaW5Ob2RlQ2FydGVzaWFuTWFwLCBmYWxzZSk7XG5cbiAgICAgICAgdGhpcy5yYWluQ29tcHV0YXRpb25NYXBEYXRlID0gcmFpbk5vZGVDYXJ0ZXNpYW5NYXAuZGF0ZTtcbiAgICAgICAgdGhpcy5yYWluQ29tcHV0YXRpb25NYXBEb25lRGF0ZSA9IHJhaW5Ob2RlQ2FydGVzaWFuTWFwLmlzRG9uZURhdGU7XG4gICAgICAgIHRoaXMucmFpbkNvbXB1dGF0aW9uTWFwTGF1bmNoZWRCeSA9IHJhaW5Ob2RlQ2FydGVzaWFuTWFwLmxhdW5jaGVkQnk7XG4gICAgICAgIHRoaXMucmFpbkNvbXB1dGF0aW9uTWFwVGltZVNwZW50SW5NcyA9IHJhaW5Ob2RlQ2FydGVzaWFuTWFwLnRpbWVTcGVudEluTXM7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS53YXJuKCdQYiB3aXRoIGNvbXB1dGF0aW9ucyBmb3IgaWQ6JywgdGFyZ2V0LnJhaW5Db21wdXRhdGlvbklkLCBlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3Q3JlYXRlZFRpbWVmcmFtZUNvbnRhaW5lcnM7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgcmVmcmVzaENvbXBhcmVRdWFsaXR5KGZyYW1lU2V0OiBGcmFtZVNldCwgdGFyZ2V0czoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZTogRGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhaW5Db21wdXRhdGlvbklkOiBzdHJpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByYWluQ29tcHV0YXRpb25RdWFsaXR5SWQ6IHN0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9W10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aENvbXBhcmVEdXBsaWNhdGU6IGJvb2xlYW4pIHtcbiAgICBhd2FpdCB0aGlzLmNvbXBhcmVNYW5hZ2VyLnJlZnJlc2hDb21wYXJlUXVhbGl0eShmcmFtZVNldCwgdGFyZ2V0cywgd2l0aENvbXBhcmVEdXBsaWNhdGUpO1xuICAgIGF3YWl0IHRoaXMuY29tcGFyZU1hbmFnZXIuc2V0R2F1Z2VzKCk7XG4gIH1cblxufVxuIl19
|
|
203
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVmcmVzaE1hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC90b29scy9SZWZyZXNoTWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDL0MsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRXpDLE9BQU8sRUFBcUIsbUJBQW1CLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFLakUsTUFBTSxPQUFPLGNBQWM7SUFnQnpCLFlBQ1ksUUFBa0IsRUFDbEIsWUFBMEIsRUFDMUIsY0FBOEIsRUFDOUIsY0FBOEIsRUFDOUIsbUJBQWlGLEVBQ2pGLGFBQXdELEVBQ3hELFdBQXdFO1FBTnhFLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5Qix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQThEO1FBQ2pGLGtCQUFhLEdBQWIsYUFBYSxDQUEyQztRQUN4RCxnQkFBVyxHQUFYLFdBQVcsQ0FBNkQ7UUFFbEYsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksT0FBTyxFQUFPLENBQUM7UUFDNUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2xCLENBQUM7SUFFTSxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQVU7UUFDNUIsT0FBTyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQsUUFBUTtRQUVOLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxFQUFFLENBQUM7UUFD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O1FBQzFGLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0ZyYW1lU2V0fSBmcm9tICcuL0ZyYW1lU2V0JztcbmltcG9ydCB7U3ViamVjdCwgdGFrZVVudGlsLCB0aW1lcn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge3N3aXRjaE1hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtSYWluTm9kZX0gZnJvbSAncmFhaW4tbW9kZWwnO1xuaW1wb3J0IHtUaW1lZnJhbWVDb250YWluZXIsIFRpbWVmcmFtZUNvbnRhaW5lcnN9IGZyb20gJ3JhYWluLXVpJztcbmltcG9ydCB7UmFkYXJTZXJ2aWNlfSBmcm9tICcuLi9yYWRhci5zZXJ2aWNlJztcbmltcG9ydCB7UHJvZmlsZVNlcnZpY2V9IGZyb20gJy4uL3Byb2ZpbGUuc2VydmljZSc7XG5pbXBvcnQge0NvbXBhcmVNYW5hZ2VyfSBmcm9tICcuL0NvbXBhcmVNYW5hZ2VyJztcblxuZXhwb3J0IGNsYXNzIFJlZnJlc2hNYW5hZ2VyIHtcblxuICBwdWJsaWMgcmFpbkNvbXB1dGF0aW9uTWFwRGF0ZTogRGF0ZTtcbiAgcHVibGljIHJhaW5Db21wdXRhdGlvbk1hcERvbmVEYXRlOiBEYXRlO1xuICBwdWJsaWMgcmFpbkNvbXB1dGF0aW9uTWFwTGF1bmNoZWRCeTogc3RyaW5nO1xuICBwdWJsaWMgcmFpbkNvbXB1dGF0aW9uTWFwVGltZVNwZW50SW5NczogbnVtYmVyO1xuXG4gIHByb3RlY3RlZCBjbG9zZVJlZnJlc2hUaW1lcjogU3ViamVjdDxhbnk+O1xuICBwcm90ZWN0ZWQgY291bnRzUGVyaW9kOiBhbnk7XG4gIHByb3RlY3RlZCB0aW1lZnJhbWVzRnJvbVJhZGFyczogRnJhbWVTZXRbXTtcbiAgcHJvdGVjdGVkIHRpbWVmcmFtZXNGcm9tUmFkYXJzRXh0ZW5kZWQ6IEZyYW1lU2V0W107XG4gIHByb3RlY3RlZCB0aW1lZnJhbWVEYXRlczogRGF0ZVtdO1xuICBwcm90ZWN0ZWQgYmVnaW46IERhdGU7XG4gIHByb3RlY3RlZCBlbmQ6IERhdGU7XG4gIHByb3RlY3RlZCByZW1vdmVEdXBsaWNhdGU6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIHJhaW5Ob2RlOiBSYWluTm9kZSxcbiAgICBwcm90ZWN0ZWQgcmFkYXJTZXJ2aWNlOiBSYWRhclNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIHByb2ZpbGVTZXJ2aWNlOiBQcm9maWxlU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgY29tcGFyZU1hbmFnZXI6IENvbXBhcmVNYW5hZ2VyLFxuICAgIHByb3RlY3RlZCBvblJlZnJlc2hJblByb2dyZXNzOiAoY291bnRQZXJpb2RzOiBhbnksIHRpbWVmcmFtZURhdGVzOiBEYXRlW10pID0+IFByb21pc2U8dm9pZD4sXG4gICAgcHJvdGVjdGVkIG9uUmVmcmVzaERvbmU6ICh0aW1lZnJhbWVEYXRlczogRGF0ZVtdKSA9PiBQcm9taXNlPHZvaWQ+LFxuICAgIHByb3RlY3RlZCBvbkZldGNoRG9uZTogKHRpbWVmcmFtZUNvbnRhaW5lcnM6IFRpbWVmcmFtZUNvbnRhaW5lcnMpID0+IFByb21pc2U8dm9pZD4sXG4gICkge1xuICAgIHRoaXMuY2xvc2VSZWZyZXNoVGltZXIgPSBuZXcgU3ViamVjdDxhbnk+KCk7XG4gICAgdGhpcy5jbGVhbkFsbCgpO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBEZWxheShtczogbnVtYmVyKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc2V0VGltZW91dChyZXNvbHZlLCBtcykpO1xuICB9XG5cbiAgY2xlYW5BbGwoKSB7XG5cbiAgICB0aGlzLmNvdW50c1BlcmlvZCA9IHt9O1xuICAgIHRoaXMudGltZWZyYW1lc0Zyb21SYWRhcnMgPSBbXTtcbiAgICB0aGlzLnRpbWVmcmFtZXNGcm9tUmFkYXJzRXh0ZW5kZWQgPSBbXTtcbiAgICB0aGlzLnRpbWVmcmFtZURhdGVzID0gW107XG4gICAgdGhpcy5jbG9zZVJlZnJlc2hUaW1lcj8ubmV4dChudWxsKTtcbiAgfVxuXG4gIGFzeW5jIGZldGNoKGRhdGVTaG93bjogRGF0ZSwgd2l0aEdhdWdlc01lYXN1cmVzOiBib29sZWFuKTogUHJvbWlzZTxGcmFtZVNldD4ge1xuICAgIC8vIHNldCB0aGUgdGFyZ2V0XG4gICAgY29uc3QgY3VycmVudHMgPSB0aGlzLnRpbWVmcmFtZXNGcm9tUmFkYXJzRXh0ZW5kZWQuZmlsdGVyKHQgPT4gdC5kYXRlLmdldFRpbWUoKSA9PT0gZGF0ZVNob3duLmdldFRpbWUoKSk7XG4gICAgaWYgKGN1cnJlbnRzLmxlbmd0aCAhPT0gMSkge1xuICAgICAgY29uc29sZS5sb2coJ25vIGNvcnJlY3QgZGF0ZVNob3duJywgZGF0ZVNob3duLCB0aGlzLnRpbWVmcmFtZXNGcm9tUmFkYXJzRXh0ZW5kZWQpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIGJ1aWxkIFtjdXJyZW50LCBwcmV2aW91cywgbmV4dF0gdGFyZ2V0c1xuICAgIGNvbnN0IGN1cnJlbnQ6IEZyYW1lU2V0ID0gY3VycmVudHNbMF07XG4gICAgY29uc3QgcG9zaXRpb24gPSB0aGlzLnRpbWVmcmFtZXNGcm9tUmFkYXJzRXh0ZW5kZWQuaW5kZXhPZihjdXJyZW50KTtcbiAgICBsZXQgcHJldmlvdXM6IEZyYW1lU2V0ID0gbnVsbCwgbmV4dDogRnJhbWVTZXQgPSBudWxsO1xuICAgIGNvbnN0IHBvc2l0aW9uTmFtZXM6IHN0cmluZ1tdID0gWycnICsgY3VycmVudC5kYXRlLmdldFRpbWUoKV07XG4gICAgY29uc3QgZnJhbWVTZXRzID0ge307XG4gICAgZnJhbWVTZXRzWycnICsgY3VycmVudC5kYXRlLmdldFRpbWUoKV0gPSBjdXJyZW50O1xuICAgIGlmIChwb3NpdGlvbiA+IDApIHtcbiAgICAgIHByZXZpb3VzID0gdGhpcy50aW1lZnJhbWVzRnJvbVJhZGFyc0V4dGVuZGVkW3Bvc2l0aW9uIC0gMV07XG4gICAgICBwb3NpdGlvbk5hbWVzLnB1c2goJycgKyBwcmV2aW91cy5kYXRlLmdldFRpbWUoKSk7XG4gICAgICBmcmFtZVNldHNbJycgKyBwcmV2aW91cy5kYXRlLmdldFRpbWUoKV0gPSBwcmV2aW91cztcbiAgICB9XG4gICAgaWYgKHBvc2l0aW9uIDwgdGhpcy50aW1lZnJhbWVzRnJvbVJhZGFyc0V4dGVuZGVkLmxlbmd0aCkge1xuICAgICAgbmV4dCA9IHRoaXMudGltZWZyYW1lc0Zyb21SYWRhcnNFeHRlbmRlZFtwb3NpdGlvbiArIDFdO1xuICAgICAgaWYgKG5leHQ/LmRhdGUpIHtcbiAgICAgICAgcG9zaXRpb25OYW1lcy5wdXNoKCcnICsgbmV4dC5kYXRlLmdldFRpbWUoKSk7XG4gICAgICAgIGZyYW1lU2V0c1snJyArIG5leHQuZGF0ZS5nZXRUaW1lKCldID0gbmV4dDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBhbGlnbiBNYXAgd2l0aCB0YXJnZXRzXG4gICAgY29uc3QgdGFyZ2V0czoge1xuICAgICAgZGF0ZTogRGF0ZSxcbiAgICAgIHJhaW5Db21wdXRhdGlvbklkOiBzdHJpbmcsXG4gICAgICByYWluQ29tcHV0YXRpb25RdWFsaXR5SWQ6IHN0cmluZyxcbiAgICB9W10gPSBbXTtcbiAgICBmb3IgKGNvbnN0IHBvc2l0aW9uTmFtZSBvZiBwb3NpdGlvbk5hbWVzKSB7XG4gICAgICBpZiAoZnJhbWVTZXRzW3Bvc2l0aW9uTmFtZV0pIHtcbiAgICAgICAgY29uc3QgdGFyZ2V0ID0gZnJhbWVTZXRzW3Bvc2l0aW9uTmFtZV07XG4gICAgICAgIHRhcmdldC5yYWluQ29tcHV0YXRpb25RdWFsaXR5SWQgPSB0aGlzLmdldFJhaW5Db21wdXRhdGlvblF1YWxpdHlUYXJnZXQodGFyZ2V0KTtcbiAgICAgICAgdGFyZ2V0LndpdGhHYXVnZSA9IHdpdGhHYXVnZXNNZWFzdXJlcztcbiAgICAgICAgdGFyZ2V0cy5wdXNoKHRhcmdldCk7XG5cbiAgICAgICAgY29uc3QgdGltZWZyYW1lQ29udGFpbmVycyA9IGF3YWl0IHRoaXMucmVmcmVzaE1hcFRpbWVmcmFtZUNvbnRhaW5lcnModGFyZ2V0KTtcblxuICAgICAgICBpZiAocG9zaXRpb25OYW1lID09PSAoJycgKyBjdXJyZW50LmRhdGUuZ2V0VGltZSgpKSkge1xuICAgICAgICAgIHRoaXMub25GZXRjaERvbmUodGltZWZyYW1lQ29udGFpbmVycykudGhlbihpZ25vcmVkID0+IHtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIGFsaWduIENvbXBhcmUgd2l0aCB0YXJnZXRzXG4gICAgdGhpcy5yZWZyZXNoQ29tcGFyZVF1YWxpdHkoY3VycmVudCwgdGFyZ2V0cykudGhlbigoaWdub3JlZCkgPT4ge1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIGN1cnJlbnQ7XG4gIH1cblxuICBhc3luYyBzZXRQZXJpb2QoYmVnaW46IERhdGUsIGVuZDogRGF0ZSkge1xuICAgIHRoaXMuYmVnaW4gPSBiZWdpbjtcbiAgICB0aGlzLmVuZCA9IGVuZDtcblxuICAgIHJldHVybiB0aGlzLnJlZnJlc2hDb3VudHMoKTtcbiAgfVxuXG4gIGFzeW5jIHJlZnJlc2gobGF1bmNoUXVhbGl0eUFmdGVyOiBib29sZWFuKSB7XG5cbiAgICBpZiAoIXRoaXMuYmVnaW4gfHwgIXRoaXMuZW5kKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ25lZWQgYSBwZXJpb2QnKTtcbiAgICB9XG5cbiAgICB0aGlzLmNvbXBhcmVNYW5hZ2VyLmNsZWFuQWxsKCk7XG4gICAgbGV0IHJlZnJlc2hJblByb2dyZXNzID0gZmFsc2U7XG4gICAgbGV0IHJlZnJlc2hEb25lID0gZmFsc2U7XG5cbiAgICB0aW1lcigxMDAwLCAxNTAwMClcbiAgICAgIC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoYXN5bmMgKCkgPT4ge1xuICAgICAgICAgIGlmIChyZWZyZXNoSW5Qcm9ncmVzcykge1xuICAgICAgICAgICAgcmV0dXJuIHJlZnJlc2hEb25lO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJlZnJlc2hJblByb2dyZXNzID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLm9uUmVmcmVzaEluUHJvZ3Jlc3MoYXdhaXQgdGhpcy5yZWZyZXNoQ291bnRzKCksIHRoaXMudGltZWZyYW1lRGF0ZXMpLnRoZW4oaWdub3JlZCA9PiB7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcmVmcmVzaERvbmUgPSBhd2FpdCB0aGlzLnJlZnJlc2hQZXJpb2RJbnNpZGVQb2xsaW5nKCk7XG4gICAgICAgICAgaWYgKCFyZWZyZXNoRG9uZSkge1xuICAgICAgICAgICAgcmVmcmVzaEluUHJvZ3Jlc3MgPSBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHJlZnJlc2hEb25lO1xuICAgICAgICB9KSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuY2xvc2VSZWZyZXNoVGltZXIpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IGFzeW5jIChyZWZyZXNoRmluaXNoZWQ6IGJvb2xlYW4pID0+IHtcbiAgICAgICAgICBjb25zb2xlLmxvZygncmVmcmVzaEZpbmlzaGVkJywgcmVmcmVzaEZpbmlzaGVkLCBsYXVuY2hRdWFsaXR5QWZ0ZXIpO1xuICAgICAgICAgIGlmIChyZWZyZXNoRmluaXNoZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2VSZWZyZXNoVGltZXIubmV4dChudWxsKTtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMub25SZWZyZXNoRG9uZSh0aGlzLnRpbWVmcmFtZURhdGVzKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiAoZXJyb3I6IGFueSkgPT4ge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ2Vycm9yIGluIHJlZnJlc2gnLCBlcnJvcik7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gIH1cblxuICBhc3luYyBzZWxlY3RHYXVnZShnYXVnZUlkOiBzdHJpbmcsIGNvbXBhcmVJbmRleDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIHRoaXMuY29tcGFyZU1hbmFnZXIuc2VsZWN0R2F1Z2UoZ2F1Z2VJZCwgY29tcGFyZUluZGV4KTtcbiAgfVxuXG4gIHNldFJlbW92ZUR1cGxpY2F0ZShiOiBib29sZWFuKSB7XG4gICAgdGhpcy5yZW1vdmVEdXBsaWNhdGUgPSBiO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIHJlZnJlc2hDb3VudHMoKSB7XG4gICAgY29uc3QgY291bnRzID0gYXdhaXQgdGhpcy5wcm9maWxlU2VydmljZS5nZXRDb3VudHModGhpcy5yYWluTm9kZS5pZCwgdGhpcy5iZWdpbiwgdGhpcy5lbmQsIHRydWUpO1xuICAgIHRoaXMuY291bnRzUGVyaW9kID0ge1xuICAgICAgcmFkYXJNZWFzdXJlczogY291bnRzLnJhZGFyTWVhc3VyZXMucmVkdWNlKChwYXJ0aWFsU3VtLCBhKSA9PiBwYXJ0aWFsU3VtICsgYS54LCAwKSxcbiAgICAgIGdhdWdlTWVhc3VyZXM6IGNvdW50cy5nYXVnZU1lYXN1cmVzLnJlZHVjZSgocGFydGlhbFN1bSwgYSkgPT4gcGFydGlhbFN1bSArIGEueCwgMCksXG4gICAgICBjb21wdXRhdGlvbnNCeVRlYW06IGNvdW50cy5jb21wdXRhdGlvbnNCeVRlYW0ucmVkdWNlKChwYXJ0aWFsU3VtLCBhKSA9PiBwYXJ0aWFsU3VtICsgYS54LCAwKSxcbiAgICB9O1xuICAgIHJldHVybiB0aGlzLmNvdW50c1BlcmlvZDtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRSYWluQ29tcHV0YXRpb25RdWFsaXR5VGFyZ2V0KGZyYW1lc2V0OiBGcmFtZVNldCk6IHN0cmluZyB7XG4gICAgaWYgKGZyYW1lc2V0LnJhaW5Db21wdXRhdGlvblF1YWxpdGllcy5sZW5ndGggPD0gMCkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgcmV0dXJuIGZyYW1lc2V0LnJhaW5Db21wdXRhdGlvblF1YWxpdGllc1swXS5pZDtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyByZWZyZXNoUGVyaW9kSW5zaWRlUG9sbGluZygpOiBQcm9taXNlPGJvb2xlYW4+IHtcblxuICAgIC8vIGF3YWl0IFJlZnJlc2hNYW5hZ2VyLkRlbGF5KDEwMDApO1xuICAgIGNvbnN0IGRvbmUgPSB0aGlzLnJlZnJlc2hDaGVja0lmRG9uZSgpO1xuICAgIGF3YWl0IHRoaXMucmVmcmVzaFRpbWVmcmFtZXNGcm9tUmFkYXJzKGRvbmUpO1xuXG4gICAgdGhpcy5yZWZyZXNoR2xvYmFsQ29tcGFyZVJlcG9ydChkb25lKS50aGVuKGlnbm9yZWQgPT4ge1xuICAgIH0pXG5cbiAgICByZXR1cm4gZG9uZTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZWZyZXNoQ2hlY2tJZkRvbmUoKTogYm9vbGVhbiB7XG4gICAgLy8gY29uc29sZS5sb2coJ3JlZnJlc2hQZXJpb2RJbnNpZGVQb2xsaW5nJywgdGhpcy5jb3VudHNQZXJpb2QuY29tcHV0YXRpb25zQnlUZWFtLCB0aGlzLmNvdW50c1BlcmlvZC5yYWRhck1lYXN1cmVzKVxuICAgIHJldHVybiB0aGlzLmNvdW50c1BlcmlvZC5jb21wdXRhdGlvbnNCeVRlYW0gPT09IHRoaXMuY291bnRzUGVyaW9kLnJhZGFyTWVhc3VyZXM7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgcmVmcmVzaFRpbWVmcmFtZXNGcm9tUmFkYXJzKGRvbmU6IGJvb2xlYW4pIHtcblxuICAgIGlmICghZG9uZSkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIGNvbnN0IGJlZ2luRXh0ZW5kZWQgPSBuZXcgRGF0ZSh0aGlzLmJlZ2luKTtcbiAgICBjb25zdCBlbmRFeHRlbmRlZCA9IG5ldyBEYXRlKHRoaXMuZW5kKTtcbiAgICBiZWdpbkV4dGVuZGVkLnNldE1pbnV0ZXMoYmVnaW5FeHRlbmRlZC5nZXRNaW51dGVzKCkgLSA3KTtcbiAgICBlbmRFeHRlbmRlZC5zZXRNaW51dGVzKGVuZEV4dGVuZGVkLmdldE1pbnV0ZXMoKSArIDcpO1xuICAgIHRoaXMucmFpbk5vZGUgPSBhd2FpdCB0aGlzLnByb2ZpbGVTZXJ2aWNlLmdldFJhaW5UaW1lZnJhbWUodGhpcy5yYWluTm9kZS5nZXRJZCgpLCBiZWdpbkV4dGVuZGVkLCBlbmRFeHRlbmRlZCk7XG5cbiAgICB0aGlzLnRpbWVmcmFtZXNGcm9tUmFkYXJzRXh0ZW5kZWQgPSBhd2FpdCB0aGlzLnJhZGFyU2VydmljZS5nZXRUaW1lbGluZSh0aGlzLnJhaW5Ob2RlKTtcbiAgICB0aGlzLnRpbWVmcmFtZXNGcm9tUmFkYXJzID0gdGhpcy50aW1lZnJhbWVzRnJvbVJhZGFyc0V4dGVuZGVkXG4gICAgICAuZmlsdGVyKChmcmFtZVNldCkgPT4gdGhpcy5iZWdpbi5nZXRUaW1lKCkgPD0gZnJhbWVTZXQuZGF0ZS5nZXRUaW1lKCkgJiYgZnJhbWVTZXQuZGF0ZS5nZXRUaW1lKCkgPD0gdGhpcy5lbmQuZ2V0VGltZSgpKVxuICAgICAgLnNvcnQoKGEsIGIpID0+IGEuZGF0ZS5nZXRUaW1lKCkgLSBiLmRhdGUuZ2V0VGltZSgpKTtcblxuICAgIC8vIGNvbnNvbGUubG9nKCd0aW1lZnJhbWVzRnJvbVJhZGFyc0V4dGVuZGVkOicsIHRoaXMudGltZWZyYW1lc0Zyb21SYWRhcnNFeHRlbmRlZCk7XG5cbiAgICB0aGlzLnRpbWVmcmFtZURhdGVzID0gdGhpcy50aW1lZnJhbWVzRnJvbVJhZGFycy5tYXAoZnJhbWVTZXQgPT4gZnJhbWVTZXQuZGF0ZSk7XG4gICAgcmV0dXJuIHRoaXMudGltZWZyYW1lc0Zyb21SYWRhcnM7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgcmVmcmVzaEdsb2JhbENvbXBhcmVSZXBvcnQoZG9uZTogYm9vbGVhbikge1xuICAgIGlmICghZG9uZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHRhcmdldHMgPSBbXTtcbiAgICBmb3IgKGNvbnN0IGZyYW1lU2V0IG9mIHRoaXMudGltZWZyYW1lc0Zyb21SYWRhcnNFeHRlbmRlZCkge1xuICAgICAgY29uc3QgdGFyZ2V0ID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShmcmFtZVNldCkpO1xuICAgICAgdGFyZ2V0LmRhdGUgPSBuZXcgRGF0ZSh0YXJnZXQuZGF0ZSk7XG4gICAgICB0YXJnZXQucmFpbkNvbXB1dGF0aW9uUXVhbGl0eUlkID0gdGhpcy5nZXRSYWluQ29tcHV0YXRpb25RdWFsaXR5VGFyZ2V0KGZyYW1lU2V0KTtcbiAgICAgIHRhcmdldHMucHVzaCh0YXJnZXQpO1xuICAgIH1cbiAgICBhd2FpdCB0aGlzLmNvbXBhcmVNYW5hZ2VyLnJlZnJlc2hHbG9iYWxDb21wYXJlUXVhbGl0eSh0YXJnZXRzLCAhdGhpcy5yZW1vdmVEdXBsaWNhdGUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIHJlZnJlc2hNYXBUaW1lZnJhbWVDb250YWluZXJzKHRhcmdldDoge1xuICAgIGRhdGU6IERhdGUsXG4gICAgcmFpbkNvbXB1dGF0aW9uSWQ6IHN0cmluZyxcbiAgICB3aXRoR2F1Z2U6IGJvb2xlYW5cbiAgfSkge1xuICAgIGlmICghdGFyZ2V0IHx8ICF0YXJnZXQucmFpbkNvbXB1dGF0aW9uSWQpIHtcbiAgICAgIGNvbnNvbGUud2FybignUGIgd2l0aCByZWZyZXNoTWFwVGltZWZyYW1lQ29udGFpbmVycyBpbnNpZ2h0cycpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHJhaW5Ob2RlID0gdGhpcy5yYWluTm9kZTtcbiAgICBjb25zdCBjb250YWluZXJzOiBUaW1lZnJhbWVDb250YWluZXJbXSA9IFtdO1xuICAgIGNvbnN0IG5ld0NyZWF0ZWRUaW1lZnJhbWVDb250YWluZXJzID0gbmV3IFRpbWVmcmFtZUNvbnRhaW5lcnMoY29udGFpbmVycyk7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJhaW5Ob2RlQ2FydGVzaWFuTWFwID0gYXdhaXQgdGhpcy5wcm9maWxlU2VydmljZVxuICAgICAgICAuZ2V0UmFpbkNvbXB1dGF0aW9uQ2FydGVzaWFuTWFwQnlJZChyYWluTm9kZS5nZXRJZCgpLCB0YXJnZXQucmFpbkNvbXB1dGF0aW9uSWQpO1xuICAgICAgaWYgKHJhaW5Ob2RlQ2FydGVzaWFuTWFwKSB7XG4gICAgICAgIG5ld0NyZWF0ZWRUaW1lZnJhbWVDb250YWluZXJzLmFkZEZyb21SYWluQ29tcHV0YXRpb25NYXAocmFpbk5vZGVDYXJ0ZXNpYW5NYXAsIGZhbHNlKTtcblxuICAgICAgICB0aGlzLnJhaW5Db21wdXRhdGlvbk1hcERhdGUgPSByYWluTm9kZUNhcnRlc2lhbk1hcC5kYXRlO1xuICAgICAgICB0aGlzLnJhaW5Db21wdXRhdGlvbk1hcERvbmVEYXRlID0gcmFpbk5vZGVDYXJ0ZXNpYW5NYXAuaXNEb25lRGF0ZTtcbiAgICAgICAgdGhpcy5yYWluQ29tcHV0YXRpb25NYXBMYXVuY2hlZEJ5ID0gcmFpbk5vZGVDYXJ0ZXNpYW5NYXAubGF1bmNoZWRCeTtcbiAgICAgICAgdGhpcy5yYWluQ29tcHV0YXRpb25NYXBUaW1lU3BlbnRJbk1zID0gcmFpbk5vZGVDYXJ0ZXNpYW5NYXAudGltZVNwZW50SW5NcztcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ1BiIHdpdGggY29tcHV0YXRpb25zIGZvciBpZDonLCB0YXJnZXQucmFpbkNvbXB1dGF0aW9uSWQsIGUpO1xuICAgIH1cblxuICAgIHJldHVybiBuZXdDcmVhdGVkVGltZWZyYW1lQ29udGFpbmVycztcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyByZWZyZXNoQ29tcGFyZVF1YWxpdHkoZnJhbWVTZXQ6IEZyYW1lU2V0LCB0YXJnZXRzOiB7XG4gICAgZGF0ZTogRGF0ZSxcbiAgICByYWluQ29tcHV0YXRpb25JZDogc3RyaW5nLFxuICAgIHJhaW5Db21wdXRhdGlvblF1YWxpdHlJZDogc3RyaW5nLFxuICB9W10pIHtcbiAgICBhd2FpdCB0aGlzLmNvbXBhcmVNYW5hZ2VyLnJlZnJlc2hDb21wYXJlUXVhbGl0eShmcmFtZVNldCwgdGFyZ2V0cywgIXRoaXMucmVtb3ZlRHVwbGljYXRlKTtcbiAgICBhd2FpdCB0aGlzLmNvbXBhcmVNYW5hZ2VyLnNldEdhdWdlcygpO1xuICB9XG59XG4iXX0=
|
package/fesm2015/raain-app.mjs
CHANGED
|
@@ -492,8 +492,8 @@ class RaainConfigurationComponent {
|
|
|
492
492
|
change(changes) {
|
|
493
493
|
return __awaiter(this, void 0, void 0, function* () {
|
|
494
494
|
// console.log('changed', changes);
|
|
495
|
-
|
|
496
|
-
|
|
495
|
+
yield this.delete();
|
|
496
|
+
this.create();
|
|
497
497
|
});
|
|
498
498
|
}
|
|
499
499
|
updateMapSize() {
|
|
@@ -1037,7 +1037,7 @@ class RefreshManager {
|
|
|
1037
1037
|
this.timeframeDates = [];
|
|
1038
1038
|
(_a = this.closeRefreshTimer) === null || _a === void 0 ? void 0 : _a.next(null);
|
|
1039
1039
|
}
|
|
1040
|
-
fetch(dateShown, withGaugesMeasures
|
|
1040
|
+
fetch(dateShown, withGaugesMeasures) {
|
|
1041
1041
|
return __awaiter(this, void 0, void 0, function* () {
|
|
1042
1042
|
// set the target
|
|
1043
1043
|
const currents = this.timeframesFromRadarsExtended.filter(t => t.date.getTime() === dateShown.getTime());
|
|
@@ -1080,7 +1080,7 @@ class RefreshManager {
|
|
|
1080
1080
|
}
|
|
1081
1081
|
}
|
|
1082
1082
|
// align Compare with targets
|
|
1083
|
-
this.refreshCompareQuality(current, targets
|
|
1083
|
+
this.refreshCompareQuality(current, targets).then((ignored) => {
|
|
1084
1084
|
});
|
|
1085
1085
|
return current;
|
|
1086
1086
|
});
|
|
@@ -1133,6 +1133,9 @@ class RefreshManager {
|
|
|
1133
1133
|
return this.compareManager.selectGauge(gaugeId, compareIndex);
|
|
1134
1134
|
});
|
|
1135
1135
|
}
|
|
1136
|
+
setRemoveDuplicate(b) {
|
|
1137
|
+
this.removeDuplicate = b;
|
|
1138
|
+
}
|
|
1136
1139
|
refreshCounts() {
|
|
1137
1140
|
return __awaiter(this, void 0, void 0, function* () {
|
|
1138
1141
|
const counts = yield this.profileService.getCounts(this.rainNode.id, this.begin, this.end, true);
|
|
@@ -1195,7 +1198,7 @@ class RefreshManager {
|
|
|
1195
1198
|
target.rainComputationQualityId = this.getRainComputationQualityTarget(frameSet);
|
|
1196
1199
|
targets.push(target);
|
|
1197
1200
|
}
|
|
1198
|
-
yield this.compareManager.refreshGlobalCompareQuality(targets,
|
|
1201
|
+
yield this.compareManager.refreshGlobalCompareQuality(targets, !this.removeDuplicate);
|
|
1199
1202
|
});
|
|
1200
1203
|
}
|
|
1201
1204
|
refreshMapTimeframeContainers(target) {
|
|
@@ -1224,9 +1227,9 @@ class RefreshManager {
|
|
|
1224
1227
|
return newCreatedTimeframeContainers;
|
|
1225
1228
|
});
|
|
1226
1229
|
}
|
|
1227
|
-
refreshCompareQuality(frameSet, targets
|
|
1230
|
+
refreshCompareQuality(frameSet, targets) {
|
|
1228
1231
|
return __awaiter(this, void 0, void 0, function* () {
|
|
1229
|
-
yield this.compareManager.refreshCompareQuality(frameSet, targets,
|
|
1232
|
+
yield this.compareManager.refreshCompareQuality(frameSet, targets, !this.removeDuplicate);
|
|
1230
1233
|
yield this.compareManager.setGauges();
|
|
1231
1234
|
});
|
|
1232
1235
|
}
|
|
@@ -1705,13 +1708,14 @@ class ProfileService {
|
|
|
1705
1708
|
data['configurationAsJSON'] = configurationAsJSON;
|
|
1706
1709
|
}
|
|
1707
1710
|
try {
|
|
1708
|
-
yield this.fidjAngularService.sendOnEndpoint({
|
|
1711
|
+
const resp = yield this.fidjAngularService.sendOnEndpoint({
|
|
1709
1712
|
key: 'radars',
|
|
1710
1713
|
relativePath: radarNode.id,
|
|
1711
1714
|
verb: 'PUT',
|
|
1712
1715
|
data,
|
|
1713
1716
|
defaultKeyUrl: this.defaultUrlForAPI + '/radars/'
|
|
1714
1717
|
});
|
|
1718
|
+
return new RadarNode(resp);
|
|
1715
1719
|
}
|
|
1716
1720
|
catch (e) {
|
|
1717
1721
|
console.error('removeRadar error:', e);
|