@igo2/context 1.13.0 → 1.13.1
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/lib/context-manager/shared/context.service.mjs +1 -7
- package/esm2020/lib/context-map-button/poi-button/poi-button.component.mjs +2 -2
- package/esm2020/lib/share-map/share-map/share-map-url.component.mjs +89 -73
- package/esm2020/lib/share-map/share-map.module.mjs +8 -4
- package/fesm2015/igo2-context.mjs +117 -99
- package/fesm2015/igo2-context.mjs.map +1 -1
- package/fesm2020/igo2-context.mjs +111 -99
- package/fesm2020/igo2-context.mjs.map +1 -1
- package/lib/share-map/share-map/share-map-url.component.d.ts +2 -3
- package/lib/share-map/share-map.module.d.ts +2 -1
- package/package.json +8 -8
|
@@ -470,12 +470,6 @@ export class ContextService {
|
|
|
470
470
|
context.messages.push(context.message);
|
|
471
471
|
context.messages.map(message => {
|
|
472
472
|
if (message) {
|
|
473
|
-
message.title = message.title
|
|
474
|
-
? this.languageService.translate.instant(message.title)
|
|
475
|
-
: undefined;
|
|
476
|
-
message.text = message.text
|
|
477
|
-
? this.languageService.translate.instant(message.text)
|
|
478
|
-
: undefined;
|
|
479
473
|
this.messageService.message(message);
|
|
480
474
|
}
|
|
481
475
|
});
|
|
@@ -624,4 +618,4 @@ ContextService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: ContextSe
|
|
|
624
618
|
}], function () { return [{ type: i1.HttpClient }, { type: i2.AuthService }, { type: i3.LanguageService }, { type: i3.ConfigService }, { type: i3.MessageService }, { type: i3.StorageService }, { type: i3.RouteService, decorators: [{
|
|
625
619
|
type: Optional
|
|
626
620
|
}] }]; }, null); })();
|
|
627
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29udGV4dC9zcmMvbGliL2NvbnRleHQtbWFuYWdlci9zaGFyZWQvY29udGV4dC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3JELE9BQU8sRUFBRSxlQUFlLEVBQWMsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRSxPQUFPLEVBQ0wsR0FBRyxFQUNILEdBQUcsRUFDSCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFFBQVEsRUFDUixLQUFLLEVBQ0wsSUFBSSxFQUNMLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxPQUFPLE1BQU0sZUFBZSxDQUFDO0FBQ3BDLE9BQU8sT0FBTyxNQUFNLG1CQUFtQixDQUFDO0FBQ3hDLE9BQU8sT0FBTyxNQUFNLG1CQUFtQixDQUFDO0FBQ3hDLE9BQU8sY0FBYyxNQUFNLGtCQUFrQixDQUFDO0FBRzlDLE9BQU8sRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBYWhELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFjaEQsTUFBTSxPQUFPLGNBQWM7SUF3QnpCLFlBQ1UsSUFBZ0IsRUFDaEIsV0FBd0IsRUFDeEIsZUFBZ0MsRUFDaEMsTUFBcUIsRUFDckIsY0FBOEIsRUFDOUIsY0FBOEIsRUFDbEIsS0FBbUI7UUFOL0IsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUNyQixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQ2xC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LCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5cbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIG1hcCxcbiAgdGFwLFxuICBjYXRjaEVycm9yLFxuICBkZWJvdW5jZVRpbWUsXG4gIG1lcmdlTWFwLFxuICBmaXJzdCxcbiAgc2tpcFxufSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCBvbFBvaW50IGZyb20gJ29sL2dlb20vUG9pbnQnO1xuaW1wb3J0IEdlb0pTT04gZnJvbSAnb2wvZm9ybWF0L0dlb0pTT04nO1xuaW1wb3J0IENsdXN0ZXIgZnJvbSAnb2wvc291cmNlL0NsdXN0ZXInO1xuaW1wb3J0IG9sVmVjdG9yU291cmNlIGZyb20gJ29sL3NvdXJjZS9WZWN0b3InO1xuXG5pbXBvcnQgeyBUb29sIH0gZnJvbSAnQGlnbzIvY29tbW9uJztcbmltcG9ydCB7IHV1aWQsIE9iamVjdFV0aWxzIH0gZnJvbSAnQGlnbzIvdXRpbHMnO1xuaW1wb3J0IHtcbiAgQ29uZmlnU2VydmljZSxcbiAgUm91dGVTZXJ2aWNlLFxuICBNZXNzYWdlLFxuICBNZXNzYWdlU2VydmljZSxcbiAgTGFuZ3VhZ2VTZXJ2aWNlLFxuICBTdG9yYWdlU2VydmljZVxufSBmcm9tICdAaWdvMi9jb3JlJztcblxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICdAaWdvMi9hdXRoJztcbmltcG9ydCB0eXBlIHsgSWdvTWFwLCBMYXllciB9IGZyb20gJ0BpZ28yL2dlbyc7XG5cbmltcG9ydCB7IFR5cGVQZXJtaXNzaW9uIH0gZnJvbSAnLi9jb250ZXh0LmVudW0nO1xuaW1wb3J0IHtcbiAgQ29udGV4dHNMaXN0LFxuICBDb250ZXh0U2VydmljZU9wdGlvbnMsXG4gIENvbnRleHQsXG4gIERldGFpbGVkQ29udGV4dCxcbiAgQ29udGV4dE1hcFZpZXcsXG4gIENvbnRleHRQZXJtaXNzaW9uLFxuICBDb250ZXh0UHJvZmlsc1xufSBmcm9tICcuL2NvbnRleHQuaW50ZXJmYWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQ29udGV4dFNlcnZpY2Uge1xuICBwdWJsaWMgY29udGV4dCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PERldGFpbGVkQ29udGV4dD4odW5kZWZpbmVkKTtcbiAgcHVibGljIGNvbnRleHRzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Q29udGV4dHNMaXN0Pih7IG91cnM6IFtdIH0pO1xuICBwdWJsaWMgZGVmYXVsdENvbnRleHRJZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4odW5kZWZpbmVkKTtcbiAgcHVibGljIGVkaXRlZENvbnRleHQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxEZXRhaWxlZENvbnRleHQ+KHVuZGVmaW5lZCk7XG4gIHB1YmxpYyBpbXBvcnRlZENvbnRleHQ6IEFycmF5PERldGFpbGVkQ29udGV4dD4gPSBbXTtcbiAgcHVibGljIHRvb2xzQ2hhbmdlZCQgPSBuZXcgU3ViamVjdDxEZXRhaWxlZENvbnRleHQ+KCk7XG4gIHByaXZhdGUgbWFwVmlld0Zyb21Sb3V0ZTogQ29udGV4dE1hcFZpZXcgPSB7fTtcbiAgcHJpdmF0ZSBvcHRpb25zOiBDb250ZXh0U2VydmljZU9wdGlvbnM7XG4gIHByaXZhdGUgYmFzZVVybDogc3RyaW5nO1xuXG4gIC8vIFVudGlsIHRoZSBDb250ZXh0U2VydmljZSBpcyBjb21wbGV0ZWx5IHJlZmFjdG9yZWQsIHRoaXMgaXMgbmVlZGVkXG4gIC8vIHRvIHRyYWNrIHRoZSBjdXJyZW50IHRvb2xzXG4gIHByaXZhdGUgdG9vbHM6IFRvb2xbXTtcbiAgcHJpdmF0ZSB0b29sYmFyOiBzdHJpbmdbXTtcblxuICBnZXQgZGVmYXVsdENvbnRleHRVcmkoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5zdG9yYWdlU2VydmljZS5nZXQoJ2Zhdm9yaXRlLmNvbnRleHQudXJpJykgYXMgc3RyaW5nIHx8IHRoaXMuX2RlZmF1bHRDb250ZXh0VXJpIHx8IHRoaXMub3B0aW9ucy5kZWZhdWx0Q29udGV4dFVyaTtcbiAgfVxuICBzZXQgZGVmYXVsdENvbnRleHRVcmkodXJpOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9kZWZhdWx0Q29udGV4dFVyaSA9IHVyaTtcbiAgfVxuICBwcml2YXRlIF9kZWZhdWx0Q29udGV4dFVyaTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcbiAgICBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSxcbiAgICBwcml2YXRlIGxhbmd1YWdlU2VydmljZTogTGFuZ3VhZ2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29uZmlnOiBDb25maWdTZXJ2aWNlLFxuICAgIHByaXZhdGUgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgc3RvcmFnZVNlcnZpY2U6IFN0b3JhZ2VTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgcm91dGU6IFJvdXRlU2VydmljZVxuICApIHtcbiAgICB0aGlzLm9wdGlvbnMgPSBPYmplY3QuYXNzaWduKFxuICAgICAge1xuICAgICAgICBiYXNlUGF0aDogJ2NvbnRleHRzJyxcbiAgICAgICAgY29udGV4dExpc3RGaWxlOiAnX2NvbnRleHRzLmpzb24nLFxuICAgICAgICBkZWZhdWx0Q29udGV4dFVyaTogJ19kZWZhdWx0J1xuICAgICAgfSxcbiAgICAgIHRoaXMuY29uZmlnLmdldENvbmZpZygnY29udGV4dCcpXG4gICAgKTtcblxuICAgIHRoaXMuYmFzZVVybCA9IHRoaXMub3B0aW9ucy51cmw7XG5cbiAgICB0aGlzLnJlYWRQYXJhbXNGcm9tUm91dGUoKTtcblxuICAgIGlmICh0aGlzLmF1dGhTZXJ2aWNlLmhhc0F1dGhTZXJ2aWNlKSB7XG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmxvZ2dlZCQuc3Vic2NyaWJlKChsb2dnZWQpID0+IHtcbiAgICAgICAgaWYgKGxvZ2dlZCkge1xuICAgICAgICAgIHRoaXMuY29udGV4dHMkLnBpcGUoc2tpcCgxKSwgZmlyc3QoKSkuc3Vic2NyaWJlKChjKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZUNvbnRleHRzQ2hhbmdlKCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgdGhpcy5sb2FkQ29udGV4dHMoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubG9hZENvbnRleHRzKCk7XG4gICAgICB0aGlzLmhhbmRsZUNvbnRleHRzQ2hhbmdlKGZhbHNlKTtcbiAgICB9XG4gIH1cblxuICBnZXQocGVybWlzc2lvbnM/OiBzdHJpbmdbXSwgaGlkZGVuPzogYm9vbGVhbik6IE9ic2VydmFibGU8Q29udGV4dHNMaXN0PiB7XG4gICAgbGV0IHVybCA9IHRoaXMuYmFzZVVybCArICcvY29udGV4dHMnO1xuICAgIGlmIChwZXJtaXNzaW9ucyAmJiB0aGlzLmF1dGhTZXJ2aWNlLmF1dGhlbnRpY2F0ZWQpIHtcbiAgICAgIHVybCArPSAnP3Blcm1pc3Npb249JyArIHBlcm1pc3Npb25zLmpvaW4oKTtcbiAgICAgIGlmIChoaWRkZW4pIHtcbiAgICAgICAgdXJsICs9ICcmaGlkZGVuPXRydWUnO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxDb250ZXh0c0xpc3Q+KHVybCk7XG4gIH1cblxuICBnZXRCeUlkKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPENvbnRleHQ+IHtcbiAgICBjb25zdCB1cmwgPSB0aGlzLmJhc2VVcmwgKyAnL2NvbnRleHRzLycgKyBpZDtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxDb250ZXh0Pih1cmwpO1xuICB9XG5cbiAgZ2V0RGV0YWlscyhpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxEZXRhaWxlZENvbnRleHQ+IHtcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLmJhc2VVcmx9L2NvbnRleHRzLyR7aWR9L2RldGFpbHNgO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PERldGFpbGVkQ29udGV4dD4odXJsKS5waXBlKFxuICAgICAgY2F0Y2hFcnJvcigocmVzKSA9PiB7XG4gICAgICAgIHRoaXMuaGFuZGxlRXJyb3IocmVzLCBpZCk7XG4gICAgICAgIHRocm93IHJlcztcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGdldERlZmF1bHQoKTogT2JzZXJ2YWJsZTxEZXRhaWxlZENvbnRleHQ+IHtcbiAgICBpZiAodGhpcy5hdXRoU2VydmljZS5hdXRoZW50aWNhdGVkKSB7XG4gICAgICBjb25zdCB1cmwgPSB0aGlzLmJhc2VVcmwgKyAnL2NvbnRleHRzL2RlZmF1bHQnO1xuICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8RGV0YWlsZWRDb250ZXh0Pih1cmwpLnBpcGUoXG4gICAgICAgIHRhcCgoY29udGV4dCkgPT4ge1xuICAgICAgICAgIHRoaXMuZGVmYXVsdENvbnRleHRJZCQubmV4dChjb250ZXh0LmlkKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHVyaSA9IHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0KCdmYXZvcml0ZS5jb250ZXh0LnVyaScpIGFzIHN0cmluZztcbiAgICAgIHRoaXMuZGVmYXVsdENvbnRleHRJZCQubmV4dCh1cmkpO1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0Q29udGV4dEJ5VXJpKHVyaSk7XG4gICAgfVxuXG4gIH1cblxuICBnZXRQcm9maWxCeVVzZXIoKTogT2JzZXJ2YWJsZTxDb250ZXh0UHJvZmlsc1tdPiB7XG4gICAgaWYgKHRoaXMuYmFzZVVybCkge1xuICAgICAgY29uc3QgdXJsID0gdGhpcy5iYXNlVXJsICsgJy9wcm9maWxzPyc7XG4gICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxDb250ZXh0UHJvZmlsc1tdPih1cmwpO1xuICAgIH1cbiAgICByZXR1cm4gb2YoW10pO1xuICB9XG5cbiAgc2V0RGVmYXVsdChpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBpZiAodGhpcy5hdXRoU2VydmljZS5hdXRoZW50aWNhdGVkKSB7XG4gICAgICBjb25zdCB1cmwgPSB0aGlzLmJhc2VVcmwgKyAnL2NvbnRleHRzL2RlZmF1bHQnO1xuICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHVybCwgeyBkZWZhdWx0Q29udGV4dElkOiBpZCB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zdG9yYWdlU2VydmljZS5zZXQoJ2Zhdm9yaXRlLmNvbnRleHQudXJpJywgaWQpO1xuICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZCk7XG4gICAgfVxuICB9XG5cbiAgaGlkZUNvbnRleHQoaWQ6IHN0cmluZykge1xuICAgIGNvbnN0IHVybCA9IHRoaXMuYmFzZVVybCArICcvY29udGV4dHMvJyArIGlkICsgJy9oaWRlJztcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QodXJsLCB7fSk7XG4gIH1cblxuICBzaG93Q29udGV4dChpZDogc3RyaW5nKSB7XG4gICAgY29uc3QgdXJsID0gdGhpcy5iYXNlVXJsICsgJy9jb250ZXh0cy8nICsgaWQgKyAnL3Nob3cnO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh1cmwsIHt9KTtcbiAgfVxuXG4gIGRlbGV0ZShpZDogc3RyaW5nLCBpbXBvcnRlZCA9IGZhbHNlKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgY29uc3QgY29udGV4dHM6IENvbnRleHRzTGlzdCA9IHsgb3VyczogW10gfTtcbiAgICBPYmplY3Qua2V5cyh0aGlzLmNvbnRleHRzJC52YWx1ZSkuZm9yRWFjaChcbiAgICAgIChrZXkpID0+XG4gICAgICAgIChjb250ZXh0c1trZXldID0gdGhpcy5jb250ZXh0cyQudmFsdWVba2V5XS5maWx0ZXIoKGMpID0+IGMuaWQgIT09IGlkKSlcbiAgICApO1xuXG4gICAgaWYgKGltcG9ydGVkKSB7XG4gICAgICB0aGlzLmltcG9ydGVkQ29udGV4dCA9IHRoaXMuaW1wb3J0ZWRDb250ZXh0LmZpbHRlcigoYykgPT4gYy5pZCAhPT0gaWQpO1xuICAgICAgcmV0dXJuIG9mKHRoaXMuY29udGV4dHMkLm5leHQoY29udGV4dHMpKTtcbiAgICB9XG5cbiAgICBjb25zdCB1cmwgPSB0aGlzLmJhc2VVcmwgKyAnL2NvbnRleHRzLycgKyBpZDtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZTx2b2lkPih1cmwpLnBpcGUoXG4gICAgICB0YXAoKHJlcykgPT4ge1xuICAgICAgICB0aGlzLmNvbnRleHRzJC5uZXh0KGNvbnRleHRzKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGNyZWF0ZShjb250ZXh0OiBEZXRhaWxlZENvbnRleHQpOiBPYnNlcnZhYmxlPENvbnRleHQ+IHtcbiAgICBjb25zdCB1cmwgPSB0aGlzLmJhc2VVcmwgKyAnL2NvbnRleHRzJztcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8Q29udGV4dD4odXJsLCBjb250ZXh0KS5waXBlKFxuICAgICAgbWFwKChjb250ZXh0Q3JlYXRlZCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5hdXRoU2VydmljZS5hdXRoZW50aWNhdGVkKSB7XG4gICAgICAgICAgY29udGV4dENyZWF0ZWQucGVybWlzc2lvbiA9IFR5cGVQZXJtaXNzaW9uW1R5cGVQZXJtaXNzaW9uLndyaXRlXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb250ZXh0Q3JlYXRlZC5wZXJtaXNzaW9uID0gVHlwZVBlcm1pc3Npb25bVHlwZVBlcm1pc3Npb24ucmVhZF07XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jb250ZXh0cyQudmFsdWUub3Vycy51bnNoaWZ0KGNvbnRleHRDcmVhdGVkKTtcbiAgICAgICAgdGhpcy5jb250ZXh0cyQubmV4dCh0aGlzLmNvbnRleHRzJC52YWx1ZSk7XG4gICAgICAgIHJldHVybiBjb250ZXh0Q3JlYXRlZDtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGNsb25lKGlkOiBzdHJpbmcsIHByb3BlcnRpZXMgPSB7fSk6IE9ic2VydmFibGU8Q29udGV4dD4ge1xuICAgIGNvbnN0IHVybCA9IHRoaXMuYmFzZVVybCArICcvY29udGV4dHMvJyArIGlkICsgJy9jbG9uZSc7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PENvbnRleHQ+KHVybCwgcHJvcGVydGllcykucGlwZShcbiAgICAgIG1hcCgoY29udGV4dENsb25lZCkgPT4ge1xuICAgICAgICBjb250ZXh0Q2xvbmVkLnBlcm1pc3Npb24gPSBUeXBlUGVybWlzc2lvbltUeXBlUGVybWlzc2lvbi53cml0ZV07XG4gICAgICAgIHRoaXMuY29udGV4dHMkLnZhbHVlLm91cnMudW5zaGlmdChjb250ZXh0Q2xvbmVkKTtcbiAgICAgICAgdGhpcy5jb250ZXh0cyQubmV4dCh0aGlzLmNvbnRleHRzJC52YWx1ZSk7XG4gICAgICAgIHJldHVybiBjb250ZXh0Q2xvbmVkO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgdXBkYXRlKGlkOiBzdHJpbmcsIGNvbnRleHQ6IENvbnRleHQpOiBPYnNlcnZhYmxlPENvbnRleHQ+IHtcbiAgICBjb25zdCB1cmwgPSB0aGlzLmJhc2VVcmwgKyAnL2NvbnRleHRzLycgKyBpZDtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBhdGNoPENvbnRleHQ+KHVybCwgY29udGV4dCk7XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIGFkZFRvb2xBc3NvY2lhdGlvbihjb250ZXh0SWQ6IHN0cmluZywgdG9vbElkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLmJhc2VVcmx9L2NvbnRleHRzLyR7Y29udGV4dElkfS90b29sc2A7XG4gICAgY29uc3QgYXNzb2NpYXRpb24gPSB7XG4gICAgICB0b29sSWRcbiAgICB9O1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDx2b2lkPih1cmwsIGFzc29jaWF0aW9uKTtcbiAgfVxuXG4gIGRlbGV0ZVRvb2xBc3NvY2lhdGlvbihjb250ZXh0SWQ6IHN0cmluZywgdG9vbElkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IHVybCA9IGAke3RoaXMuYmFzZVVybH0vY29udGV4dHMvJHtjb250ZXh0SWR9L3Rvb2xzLyR7dG9vbElkfWA7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGUodXJsKTtcbiAgfVxuXG4gIGdldFBlcm1pc3Npb25zKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPENvbnRleHRQZXJtaXNzaW9uW10+IHtcbiAgICBjb25zdCB1cmwgPSB0aGlzLmJhc2VVcmwgKyAnL2NvbnRleHRzLycgKyBpZCArICcvcGVybWlzc2lvbnMnO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PENvbnRleHRQZXJtaXNzaW9uW10+KHVybCk7XG4gIH1cblxuICBhZGRQZXJtaXNzaW9uQXNzb2NpYXRpb24oXG4gICAgY29udGV4dElkOiBzdHJpbmcsXG4gICAgcHJvZmlsOiBzdHJpbmcsXG4gICAgdHlwZTogVHlwZVBlcm1pc3Npb25cbiAgKTogT2JzZXJ2YWJsZTxDb250ZXh0UGVybWlzc2lvbltdPiB7XG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5iYXNlVXJsfS9jb250ZXh0cy8ke2NvbnRleHRJZH0vcGVybWlzc2lvbnNgO1xuICAgIGNvbnN0IGFzc29jaWF0aW9uID0ge1xuICAgICAgcHJvZmlsLFxuICAgICAgdHlwZVBlcm1pc3Npb246IHR5cGVcbiAgICB9O1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PENvbnRleHRQZXJtaXNzaW9uW10+KHVybCwgYXNzb2NpYXRpb24pLnBpcGUoXG4gICAgICBjYXRjaEVycm9yKChyZXMpID0+IHtcbiAgICAgICAgdGhpcy5oYW5kbGVFcnJvcihyZXMsIHVuZGVmaW5lZCwgdHJ1ZSk7XG4gICAgICAgIHRocm93IFtyZXNdOyAvLyBUT0RPIE5vdCBzdXJlIGFib3V0IHRoaXMuXG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBkZWxldGVQZXJtaXNzaW9uQXNzb2NpYXRpb24oXG4gICAgY29udGV4dElkOiBzdHJpbmcsXG4gICAgcGVybWlzc2lvbklkOiBzdHJpbmdcbiAgKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5iYXNlVXJsfS9jb250ZXh0cy8ke2NvbnRleHRJZH0vcGVybWlzc2lvbnMvJHtwZXJtaXNzaW9uSWR9YDtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZTx2b2lkPih1cmwpO1xuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIGdldExvY2FsQ29udGV4dHMoKTogT2JzZXJ2YWJsZTxDb250ZXh0c0xpc3Q+IHtcbiAgICBjb25zdCB1cmwgPSB0aGlzLmdldFBhdGgodGhpcy5vcHRpb25zLmNvbnRleHRMaXN0RmlsZSk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8Q29udGV4dHNMaXN0Pih1cmwpLnBpcGUoXG4gICAgICBtYXAoKHJlczogYW55KSA9PiB7XG4gICAgICAgIHJldHVybiB7IG91cnM6IHJlcyB9O1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgZ2V0TG9jYWxDb250ZXh0KHVyaTogc3RyaW5nKTogT2JzZXJ2YWJsZTxEZXRhaWxlZENvbnRleHQ+IHtcbiAgICBjb25zdCB1cmwgPSB0aGlzLmdldFBhdGgoYCR7dXJpfS5qc29uYCk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8RGV0YWlsZWRDb250ZXh0Pih1cmwpLnBpcGUoXG4gICAgICBtZXJnZU1hcCgocmVzKSA9PiB7XG4gICAgICAgIGlmICghcmVzLmJhc2UpIHtcbiAgICAgICAgICByZXR1cm4gb2YocmVzKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB1cmxCYXNlID0gdGhpcy5nZXRQYXRoKGAke3Jlcy5iYXNlfS5qc29uYCk7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PERldGFpbGVkQ29udGV4dD4odXJsQmFzZSkucGlwZShcbiAgICAgICAgICBtYXAoKHJlc0Jhc2U6IERldGFpbGVkQ29udGV4dCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcmVzTWVyZ2UgPSByZXM7XG4gICAgICAgICAgICByZXNNZXJnZS5tYXAgPSBPYmplY3RVdGlscy5tZXJnZURlZXAocmVzQmFzZS5tYXAsIHJlcy5tYXApO1xuICAgICAgICAgICAgcmVzTWVyZ2UubGF5ZXJzID0gKHJlc0Jhc2UubGF5ZXJzIHx8IFtdKVxuICAgICAgICAgICAgICAuY29uY2F0KHJlcy5sYXllcnMgfHwgW10pXG4gICAgICAgICAgICAgIC5yZXZlcnNlKClcbiAgICAgICAgICAgICAgLmZpbHRlcihcbiAgICAgICAgICAgICAgICAobCwgaW5kZXgsIHNlbGYpID0+XG4gICAgICAgICAgICAgICAgICAhbC5pZCB8fCBzZWxmLmZpbmRJbmRleCgobDIpID0+IGwyLmlkID09PSBsLmlkKSA9PT0gaW5kZXhcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAucmV2ZXJzZSgpO1xuICAgICAgICAgICAgcmVzTWVyZ2UudG9vbGJhciA9IHJlcy50b29sYmFyIHx8IHJlc0Jhc2UudG9vbGJhcjtcbiAgICAgICAgICAgIHJlc01lcmdlLm1lc3NhZ2UgPSByZXMubWVzc2FnZSB8fCByZXNCYXNlLm1lc3NhZ2U7XG4gICAgICAgICAgICByZXNNZXJnZS5tZXNzYWdlcyA9IHJlcy5tZXNzYWdlcyB8fCByZXNCYXNlLm1lc3NhZ2VzO1xuICAgICAgICAgICAgcmVzTWVyZ2UudG9vbHMgPSAocmVzLnRvb2xzIHx8IFtdKVxuICAgICAgICAgICAgICAuY29uY2F0KHJlc0Jhc2UudG9vbHMgfHwgW10pXG4gICAgICAgICAgICAgIC5maWx0ZXIoXG4gICAgICAgICAgICAgICAgKHQsIGluZGV4LCBzZWxmKSA9PlxuICAgICAgICAgICAgICAgICAgc2VsZi5maW5kSW5kZXgoKHQyKSA9PiB0Mi5uYW1lID09PSB0Lm5hbWUpID09PSBpbmRleFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgcmV0dXJuIHJlc01lcmdlO1xuICAgICAgICAgIH0pLFxuICAgICAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVFcnJvcihlcnIsIHVyaSk7XG4gICAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgIH0pLFxuICAgICAgY2F0Y2hFcnJvcigoZXJyMikgPT4ge1xuICAgICAgICB0aGlzLmhhbmRsZUVycm9yKGVycjIsIHVyaSk7XG4gICAgICAgIHRocm93IGVycjI7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBsb2FkQ29udGV4dHMocGVybWlzc2lvbnM/OiBzdHJpbmdbXSwgaGlkZGVuPzogYm9vbGVhbikge1xuICAgIGxldCByZXF1ZXN0O1xuICAgIGlmICh0aGlzLmJhc2VVcmwpIHtcbiAgICAgIHJlcXVlc3QgPSB0aGlzLmdldChwZXJtaXNzaW9ucywgaGlkZGVuKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVxdWVzdCA9IHRoaXMuZ2V0TG9jYWxDb250ZXh0cygpO1xuICAgIH1cbiAgICByZXF1ZXN0LnN1YnNjcmliZSgoY29udGV4dHMpID0+IHtcbiAgICAgIGNvbnRleHRzLm91cnMgPSB0aGlzLmltcG9ydGVkQ29udGV4dC5jb25jYXQoY29udGV4dHMub3Vycyk7XG4gICAgICB0aGlzLmNvbnRleHRzJC5uZXh0KGNvbnRleHRzKTtcbiAgICB9KTtcbiAgfVxuXG4gIGxvYWREZWZhdWx0Q29udGV4dCgpIHtcbiAgICBjb25zdCBsb2FkRmN0ID0gKGRpcmVjdCA9IGZhbHNlKSA9PiB7XG4gICAgICBpZiAoIWRpcmVjdCAmJiB0aGlzLmJhc2VVcmwgJiYgdGhpcy5hdXRoU2VydmljZS5hdXRoZW50aWNhdGVkKSB7XG4gICAgICAgIHRoaXMuZ2V0RGVmYXVsdCgpLnN1YnNjcmliZShcbiAgICAgICAgICAoX2NvbnRleHQ6IERldGFpbGVkQ29udGV4dCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5kZWZhdWx0Q29udGV4dFVyaSA9IF9jb250ZXh0LnVyaTtcbiAgICAgICAgICAgIHRoaXMuYWRkQ29udGV4dFRvTGlzdChfY29udGV4dCk7XG4gICAgICAgICAgICB0aGlzLnNldENvbnRleHQoX2NvbnRleHQpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5kZWZhdWx0Q29udGV4dElkJC5uZXh0KHVuZGVmaW5lZCk7XG4gICAgICAgICAgICB0aGlzLmxvYWRDb250ZXh0KHRoaXMuZGVmYXVsdENvbnRleHRVcmkpO1xuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMubG9hZENvbnRleHQodGhpcy5kZWZhdWx0Q29udGV4dFVyaSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGlmICh0aGlzLnJvdXRlICYmIHRoaXMucm91dGUub3B0aW9ucy5jb250ZXh0S2V5KSB7XG4gICAgICB0aGlzLnJvdXRlLnF1ZXJ5UGFyYW1zLnBpcGUoZGVib3VuY2VUaW1lKDEwMCkpLnN1YnNjcmliZSgocGFyYW1zKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbnRleHRQYXJhbSA9IHBhcmFtc1t0aGlzLnJvdXRlLm9wdGlvbnMuY29udGV4dEtleSBhcyBzdHJpbmddO1xuICAgICAgICBsZXQgZGlyZWN0ID0gZmFsc2U7XG4gICAgICAgIGlmIChjb250ZXh0UGFyYW0pIHtcbiAgICAgICAgICB0aGlzLmRlZmF1bHRDb250ZXh0VXJpID0gY29udGV4dFBhcmFtO1xuICAgICAgICAgIGRpcmVjdCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgbG9hZEZjdChkaXJlY3QpO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxvYWRGY3QoKTtcbiAgICB9XG4gIH1cblxuICBsb2FkQ29udGV4dCh1cmk6IHN0cmluZykge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmNvbnRleHQkLnZhbHVlO1xuXG4gICAgaWYgKGNvbnRleHQgJiYgY29udGV4dC51cmkgPT09IHVyaSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuZ2V0Q29udGV4dEJ5VXJpKHVyaSlcbiAgICAgIC5waXBlKGZpcnN0KCkpXG4gICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAoX2NvbnRleHQ6IERldGFpbGVkQ29udGV4dCkgPT4ge1xuICAgICAgICAgIHRoaXMuYWRkQ29udGV4dFRvTGlzdChfY29udGV4dCk7XG4gICAgICAgICAgdGhpcy5zZXRDb250ZXh0KF9jb250ZXh0KTtcbiAgICAgICAgfSxcbiAgICAgICAgKGVycikgPT4ge1xuICAgICAgICAgIGlmICh1cmkgIT09IHRoaXMub3B0aW9ucy5kZWZhdWx0Q29udGV4dFVyaSkge1xuICAgICAgICAgICAgdGhpcy5sb2FkQ29udGV4dCh0aGlzLm9wdGlvbnMuZGVmYXVsdENvbnRleHRVcmkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgKTtcbiAgfVxuXG4gIHNldENvbnRleHQoY29udGV4dDogRGV0YWlsZWRDb250ZXh0KSB7XG4gICAgdGhpcy5oYW5kbGVDb250ZXh0TWVzc2FnZShjb250ZXh0KTtcbiAgICBjb25zdCBjdXJyZW50Q29udGV4dCA9IHRoaXMuY29udGV4dCQudmFsdWU7XG4gICAgaWYgKGN1cnJlbnRDb250ZXh0ICYmIGNvbnRleHQgJiYgY29udGV4dC5pZCA9PT0gY3VycmVudENvbnRleHQuaWQpIHtcbiAgICAgIGlmIChjb250ZXh0Lm1hcC52aWV3LmtlZXBDdXJyZW50VmlldyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGNvbnRleHQubWFwLnZpZXcua2VlcEN1cnJlbnRWaWV3ID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIHRoaXMuY29udGV4dCQubmV4dChjb250ZXh0KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIWNvbnRleHQubWFwKSB7XG4gICAgICBjb250ZXh0Lm1hcCA9IHsgdmlldzoge30gfTtcbiAgICB9XG5cbiAgICBPYmplY3QuYXNzaWduKGNvbnRleHQubWFwLnZpZXcsIHRoaXMubWFwVmlld0Zyb21Sb3V0ZSk7XG5cbiAgICB0aGlzLmNvbnRleHQkLm5leHQoY29udGV4dCk7XG4gIH1cblxuICBsb2FkRWRpdGVkQ29udGV4dCh1cmk6IHN0cmluZykge1xuICAgIHRoaXMuZ2V0Q29udGV4dEJ5VXJpKHVyaSkuc3Vic2NyaWJlKChfY29udGV4dDogRGV0YWlsZWRDb250ZXh0KSA9PiB7XG4gICAgICB0aGlzLnNldEVkaXRlZENvbnRleHQoX2NvbnRleHQpO1xuICAgIH0pO1xuICB9XG5cbiAgc2V0RWRpdGVkQ29udGV4dChjb250ZXh0OiBEZXRhaWxlZENvbnRleHQpIHtcbiAgICB0aGlzLmVkaXRlZENvbnRleHQkLm5leHQoY29udGV4dCk7XG4gIH1cblxuICBnZXRDb250ZXh0RnJvbU1hcChpZ29NYXA6IElnb01hcCwgZW1wdHk/OiBib29sZWFuKTogRGV0YWlsZWRDb250ZXh0IHtcbiAgICBjb25zdCB2aWV3ID0gaWdvTWFwLm9sLmdldFZpZXcoKTtcbiAgICBjb25zdCBwcm9qID0gdmlldy5nZXRQcm9qZWN0aW9uKCkuZ2V0Q29kZSgpO1xuICAgIGNvbnN0IGNlbnRlcjogYW55ID0gbmV3IG9sUG9pbnQodmlldy5nZXRDZW50ZXIoKSkudHJhbnNmb3JtKFxuICAgICAgcHJvaixcbiAgICAgICdFUFNHOjQzMjYnXG4gICAgKTtcblxuICAgIGNvbnN0IGNvbnRleHQgPSB7XG4gICAgICB1cmk6IHV1aWQoKSxcbiAgICAgIHRpdGxlOiAnJyxcbiAgICAgIHNjb3BlOiAncHJpdmF0ZScsXG4gICAgICBtYXA6IHtcbiAgICAgICAgdmlldzoge1xuICAgICAgICAgIGNlbnRlcjogY2VudGVyLmdldENvb3JkaW5hdGVzKCksXG4gICAgICAgICAgem9vbTogdmlldy5nZXRab29tKCksXG4gICAgICAgICAgcHJvamVjdGlvbjogcHJvaixcbiAgICAgICAgICBtYXhab29tT25FeHRlbnQ6IGlnb01hcC52aWV3Q29udHJvbGxlci5tYXhab29tT25FeHRlbnRcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGxheWVyczogW10sXG4gICAgICB0b29sczogW11cbiAgICB9O1xuXG4gICAgbGV0IGxheWVycyA9IFtdO1xuICAgIGlmIChlbXB0eSA9PT0gdHJ1ZSkge1xuICAgICAgbGF5ZXJzID0gaWdvTWFwLmxheWVycyRcbiAgICAgICAgLmdldFZhbHVlKClcbiAgICAgICAgLmZpbHRlcihcbiAgICAgICAgICAobGF5KSA9PlxuICAgICAgICAgICAgbGF5LmJhc2VMYXllciA9PT0gdHJ1ZSB8fFxuICAgICAgICAgICAgbGF5Lm9wdGlvbnMuaWQgPT09ICdzZWFyY2hQb2ludGVyU3VtbWFyeUlkJ1xuICAgICAgICApXG4gICAgICAgIC5zb3J0KChhLCBiKSA9PiBhLnpJbmRleCAtIGIuekluZGV4KTtcbiAgICB9IGVsc2Uge1xuICAgICAgbGF5ZXJzID0gaWdvTWFwLmxheWVycyQuZ2V0VmFsdWUoKS5maWx0ZXIobGF5ID0+ICFsYXkuaWQuaW5jbHVkZXMoJ1dmc1dvcmtzcGFjZVRhYmxlRGVzdCcpKS5zb3J0KChhLCBiKSA9PiBhLnpJbmRleCAtIGIuekluZGV4KTtcbiAgICB9XG5cbiAgICBsZXQgaSA9IDA7XG4gICAgZm9yIChjb25zdCBsIG9mIGxheWVycykge1xuICAgICAgY29uc3QgbGF5ZXI6IGFueSA9IGw7XG4gICAgICBjb25zdCBvcHRzID0ge1xuICAgICAgICBpZDogbGF5ZXIub3B0aW9ucy5pZCA/IFN0cmluZyhsYXllci5vcHRpb25zLmlkKSA6IHVuZGVmaW5lZCxcbiAgICAgICAgbGF5ZXJPcHRpb25zOiB7XG4gICAgICAgICAgdGl0bGU6IGxheWVyLm9wdGlvbnMudGl0bGUsXG4gICAgICAgICAgekluZGV4OiArK2ksXG4gICAgICAgICAgdmlzaWJsZTogbGF5ZXIudmlzaWJsZVxuICAgICAgICB9LFxuICAgICAgICBzb3VyY2VPcHRpb25zOiB7XG4gICAgICAgICAgdHlwZTogbGF5ZXIuZGF0YVNvdXJjZS5vcHRpb25zLnR5cGUsXG4gICAgICAgICAgcGFyYW1zOiBsYXllci5kYXRhU291cmNlLm9wdGlvbnMucGFyYW1zLFxuICAgICAgICAgIHVybDogbGF5ZXIuZGF0YVNvdXJjZS5vcHRpb25zLnVybCxcbiAgICAgICAgICBxdWVyeWFibGU6IGxheWVyLnF1ZXJ5YWJsZVxuICAgICAgICB9XG4gICAgICB9O1xuICAgICAgaWYgKG9wdHMuc291cmNlT3B0aW9ucy50eXBlKSB7XG4gICAgICAgIGNvbnRleHQubGF5ZXJzLnB1c2gob3B0cyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29udGV4dC50b29scyA9IHRoaXMudG9vbHMubWFwKCh0b29sKSA9PiB7XG4gICAgICByZXR1cm4geyBpZDogU3RyaW5nKHRvb2wuaWQpLCBnbG9iYWw6IHRvb2wuZ2xvYmFsIH07XG4gICAgfSk7XG5cbiAgICByZXR1cm4gY29udGV4dDtcbiAgfVxuXG4gIGdldENvbnRleHRGcm9tTGF5ZXJzKFxuICAgIGlnb01hcDogSWdvTWFwLFxuICAgIGxheWVyczogTGF5ZXJbXSxcbiAgICBuYW1lOiBzdHJpbmdcbiAgKTogRGV0YWlsZWRDb250ZXh0IHtcbiAgICBjb25zdCBjdXJyZW50Q29udGV4dCA9IHRoaXMuY29udGV4dCQuZ2V0VmFsdWUoKTtcbiAgICBjb25zdCB2aWV3ID0gaWdvTWFwLm9sLmdldFZpZXcoKTtcbiAgICBjb25zdCBwcm9qID0gdmlldy5nZXRQcm9qZWN0aW9uKCkuZ2V0Q29kZSgpO1xuICAgIGNvbnN0IGNlbnRlcjogYW55ID0gbmV3IG9sUG9pbnQodmlldy5nZXRDZW50ZXIoKSkudHJhbnNmb3JtKFxuICAgICAgcHJvaixcbiAgICAgICdFUFNHOjQzMjYnXG4gICAgKTtcblxuICAgIGNvbnN0IGNvbnRleHQgPSB7XG4gICAgICB1cmk6IG5hbWUsXG4gICAgICB0aXRsZTogbmFtZSxcbiAgICAgIG1hcDoge1xuICAgICAgICB2aWV3OiB7XG4gICAgICAgICAgY2VudGVyOiBjZW50ZXIuZ2V0Q29vcmRpbmF0ZXMoKSxcbiAgICAgICAgICB6b29tOiB2aWV3LmdldFpvb20oKSxcbiAgICAgICAgICBwcm9qZWN0aW9uOiBwcm9qXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBsYXllcnM6IFtdLFxuICAgICAgdG9vbGJhcjogW10sXG4gICAgICB0b29sczogW10sXG4gICAgICBleHRyYUZlYXR1cmVzOiBbXVxuICAgIH07XG5cbiAgICBjb25zdCBjdXJyZW50TGF5ZXJzID0gaWdvTWFwLmxheWVycyQuZ2V0VmFsdWUoKTtcbiAgICBjb250ZXh0LmxheWVycyA9IGN1cnJlbnRMYXllcnNcbiAgICAgIC5maWx0ZXIoKGwpID0+IGwuYmFzZUxheWVyKVxuICAgICAgLm1hcCgobCkgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGJhc2VMYXllcjogdHJ1ZSxcbiAgICAgICAgICBzb3VyY2VPcHRpb25zOiBsLm9wdGlvbnMuc291cmNlT3B0aW9ucyxcbiAgICAgICAgICB0aXRsZTogbC5vcHRpb25zLnRpdGxlLFxuICAgICAgICAgIHZpc2libGU6IGwudmlzaWJsZVxuICAgICAgICB9O1xuICAgICAgfSk7XG5cbiAgICBsYXllcnMuZm9yRWFjaCgobGF5ZXIpID0+IHtcbiAgICAgIGNvbnN0IGxheWVyRm91bmQgPSBjdXJyZW50Q29udGV4dC5sYXllcnMuZmluZChcbiAgICAgICAgKGNvbnRleHRMYXllcikgPT4ge1xuICAgICAgICAgIGNvbnN0IHNvdXJjZSA9IGNvbnRleHRMYXllci5zb3VyY2U7XG4gICAgICAgICAgcmV0dXJuIHNvdXJjZSAmJiBsYXllci5pZCA9PT0gc291cmNlLmlkICYmICFjb250ZXh0TGF5ZXIuYmFzZUxheWVyO1xuICAgICAgICB9KTtcblxuICAgICAgaWYgKGxheWVyRm91bmQpIHtcbiAgICAgICAgbGV0IGxheWVyU3R5bGUgPSBsYXllckZvdW5kW2BzdHlsZWBdO1xuICAgICAgICBpZiAobGF5ZXJGb3VuZFtgc3R5bGVCeUF0dHJpYnV0ZWBdKSB7XG4gICAgICAgICAgbGF5ZXJTdHlsZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgfSBlbHNlIGlmIChsYXllckZvdW5kW2BjbHVzdGVyQmFzZVN0eWxlYF0pIHtcbiAgICAgICAgICBsYXllclN0eWxlID0gdW5kZWZpbmVkO1xuICAgICAgICAgIGRlbGV0ZSBsYXllckZvdW5kLnNvdXJjZU9wdGlvbnNbYHNvdXJjZWBdO1xuICAgICAgICAgIGRlbGV0ZSBsYXllckZvdW5kLnNvdXJjZU9wdGlvbnNbYGZvcm1hdGBdO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG9wdHMgPSB7XG4gICAgICAgICAgYmFzZUxheWVyOiBsYXllckZvdW5kLmJhc2VMYXllcixcbiAgICAgICAgICB0aXRsZTogbGF5ZXIub3B0aW9ucy50aXRsZSxcbiAgICAgICAgICB6SW5kZXg6IGxheWVyLnpJbmRleCxcbiAgICAgICAgICBzdHlsZUJ5QXR0cmlidXRlOiBsYXllckZvdW5kW2BzdHlsZUJ5QXR0cmlidXRlYF0sXG4gICAgICAgICAgY2x1c3RlckJhc2VTdHlsZTogbGF5ZXJGb3VuZFtgY2x1c3RlckJhc2VTdHlsZWBdLFxuICAgICAgICAgIHN0eWxlOiBsYXllclN0eWxlLFxuICAgICAgICAgIGNsdXN0ZXJQYXJhbTogbGF5ZXJGb3VuZFtgY2x1c3RlclBhcmFtYF0sXG4gICAgICAgICAgdmlzaWJsZTogbGF5ZXIudmlzaWJsZSxcbiAgICAgICAgICBvcGFjaXR5OiBsYXllci5vcGFjaXR5LFxuICAgICAgICAgIHNvdXJjZU9wdGlvbnM6IGxheWVyRm91bmQuc291cmNlT3B0aW9uc1xuICAgICAgICB9O1xuICAgICAgICBjb250ZXh0LmxheWVycy5wdXNoKG9wdHMpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKCEobGF5ZXIub2wuZ2V0U291cmNlKCkgaW5zdGFuY2VvZiBvbFZlY3RvclNvdXJjZSkpIHtcbiAgICAgICAgICBjb25zdCBjYXRhbG9nTGF5ZXIgPSBsYXllci5vcHRpb25zO1xuICAgICAgICAgIGNhdGFsb2dMYXllci56SW5kZXggPSBsYXllci56SW5kZXg7XG4gICAgICAgICAgZGVsZXRlIGNhdGFsb2dMYXllci5zb3VyY2U7XG4gICAgICAgICAgY29udGV4dC5sYXllcnMucHVzaChjYXRhbG9nTGF5ZXIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGxldCBmZWF0dXJlcztcbiAgICAgICAgICBjb25zdCB3cml0ZXIgPSBuZXcgR2VvSlNPTigpO1xuICAgICAgICAgIGlmIChsYXllci5vbC5nZXRTb3VyY2UoKSBpbnN0YW5jZW9mIENsdXN0ZXIpIHtcbiAgICAgICAgICAgIGNvbnN0IGNsdXN0ZXJTb3VyY2UgPSBsYXllci5vbC5nZXRTb3VyY2UoKSBhcyBDbHVzdGVyO1xuICAgICAgICAgICAgZmVhdHVyZXMgPSB3cml0ZXIud3JpdGVGZWF0dXJlcyhcbiAgICAgICAgICAgICAgY2x1c3RlclNvdXJjZS5nZXRGZWF0dXJlcygpLFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZGF0YVByb2plY3Rpb246ICdFUFNHOjQzMjYnLFxuICAgICAgICAgICAgICAgIGZlYXR1cmVQcm9qZWN0aW9uOiAnRVBTRzozODU3J1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBzb3VyY2UgPSBsYXllci5vbC5nZXRTb3VyY2UoKSBhcyBhbnk7XG4gICAgICAgICAgICBmZWF0dXJlcyA9IHdyaXRlci53cml0ZUZlYXR1cmVzKFxuICAgICAgICAgICAgICBzb3VyY2UuZ2V0RmVhdHVyZXMoKSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGRhdGFQcm9qZWN0aW9uOiAnRVBTRzo0MzI2JyxcbiAgICAgICAgICAgICAgICBmZWF0dXJlUHJvamVjdGlvbjogJ0VQU0c6Mzg1NydcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgZmVhdHVyZXMgPSBKU09OLnBhcnNlKGZlYXR1cmVzKTtcbiAgICAgICAgICBmZWF0dXJlcy5uYW1lID0gbGF5ZXIub3B0aW9ucy50aXRsZTtcbiAgICAgICAgICBjb250ZXh0LmV4dHJhRmVhdHVyZXMucHVzaChmZWF0dXJlcyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGNvbnRleHQudG9vbGJhciA9IHRoaXMudG9vbGJhcjtcbiAgICBjb250ZXh0LnRvb2xzID0gdGhpcy50b29scztcblxuICAgIHJldHVybiBjb250ZXh0O1xuICB9XG5cbiAgc2V0VG9vbHModG9vbHM6IFRvb2xbXSkge1xuICAgIHRoaXMudG9vbHMgPSB0b29scztcbiAgfVxuXG4gIHNldFRvb2xiYXIodG9vbGJhcjogc3RyaW5nW10pIHtcbiAgICB0aGlzLnRvb2xiYXIgPSB0b29sYmFyO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVDb250ZXh0TWVzc2FnZShjb250ZXh0OiBEZXRhaWxlZENvbnRleHQpIHtcbiAgICBpZiAodGhpcy5jb250ZXh0JC52YWx1ZSAmJiBjb250ZXh0LnVyaSAmJiB0aGlzLmNvbnRleHQkLnZhbHVlLnVyaSAhPT0gY29udGV4dC51cmkpIHtcbiAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UucmVtb3ZlQWxsQXJlTm90RXJyb3IoKTtcbiAgICB9XG5cbiAgICBjb250ZXh0Lm1lc3NhZ2VzID0gY29udGV4dC5tZXNzYWdlcyA/IGNvbnRleHQubWVzc2FnZXMgOiBbXTtcbiAgICBjb250ZXh0Lm1lc3NhZ2VzLnB1c2goY29udGV4dC5tZXNzYWdlKTtcbiAgICBjb250ZXh0Lm1lc3NhZ2VzLm1hcChtZXNzYWdlID0+IHtcbiAgICAgIGlmIChtZXNzYWdlKSB7XG4gICAgICAgIG1lc3NhZ2UudGl0bGUgPSBtZXNzYWdlLnRpdGxlXG4gICAgICAgICAgPyB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudChtZXNzYWdlLnRpdGxlKVxuICAgICAgICAgIDogdW5kZWZpbmVkO1xuICAgICAgICBtZXNzYWdlLnRleHQgPSBtZXNzYWdlLnRleHRcbiAgICAgICAgICA/IHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KG1lc3NhZ2UudGV4dClcbiAgICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5tZXNzYWdlKG1lc3NhZ2UgYXMgTWVzc2FnZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldENvbnRleHRCeVVyaSh1cmk6IHN0cmluZyk6IE9ic2VydmFibGU8RGV0YWlsZWRDb250ZXh0PiB7XG4gICAgaWYgKHRoaXMuYmFzZVVybCkge1xuICAgICAgbGV0IGNvbnRleHRUb0xvYWQ7XG4gICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyh0aGlzLmNvbnRleHRzJC52YWx1ZSkpIHtcbiAgICAgICAgY29udGV4dFRvTG9hZCA9IHRoaXMuY29udGV4dHMkLnZhbHVlW2tleV0uZmluZCgoYykgPT4ge1xuICAgICAgICAgIHJldHVybiBjLnVyaSA9PT0gdXJpO1xuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGNvbnRleHRUb0xvYWQpIHtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoY29udGV4dFRvTG9hZCAmJiBjb250ZXh0VG9Mb2FkLmltcG9ydGVkKSB7XG4gICAgICAgIHJldHVybiBvZihjb250ZXh0VG9Mb2FkKTtcbiAgICAgIH1cblxuICAgICAgLy8gVE9ETyA6IHVzZSBhbHdheXMgaWQgb3IgdXJpXG4gICAgICBjb25zdCBpZCA9IGNvbnRleHRUb0xvYWQgPyBjb250ZXh0VG9Mb2FkLmlkIDogdXJpO1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0RGV0YWlscyhpZCk7XG4gICAgfVxuXG4gICAgY29uc3QgaW1wb3J0ZWRDb250ZXh0ID0gdGhpcy5jb250ZXh0cyQudmFsdWUub3Vycy5maW5kKChjdXJyZW50Q29udGV4dCkgPT4ge1xuICAgICAgcmV0dXJuIGN1cnJlbnRDb250ZXh0LnVyaSA9PT0gdXJpICYmIGN1cnJlbnRDb250ZXh0LmltcG9ydGVkID09PSB0cnVlO1xuICAgIH0pO1xuXG4gICAgaWYgKGltcG9ydGVkQ29udGV4dCkge1xuICAgICAgcmV0dXJuIG9mKGltcG9ydGVkQ29udGV4dCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLmdldExvY2FsQ29udGV4dCh1cmkpO1xuICAgIH1cbiAgfVxuXG4gIGdldENvbnRleHRMYXllcnMoaWdvTWFwOiBJZ29NYXApIHtcbiAgICBjb25zdCBsYXllcnM6IExheWVyW10gPSBbXTtcbiAgICBjb25zdCBtYXBMYXllcnMgPSBpZ29NYXAubGF5ZXJzJC5nZXRWYWx1ZSgpO1xuICAgIG1hcExheWVycy5mb3JFYWNoKChsYXllcikgPT4ge1xuICAgICAgaWYgKCFsYXllci5iYXNlTGF5ZXIgJiYgbGF5ZXIub3B0aW9ucy5pZCAhPT0gJ3NlYXJjaFBvaW50ZXJTdW1tYXJ5SWQnKSB7XG4gICAgICAgIGxheWVycy5wdXNoKGxheWVyKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gbGF5ZXJzO1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkUGFyYW1zRnJvbVJvdXRlKCkge1xuICAgIGlmICghdGhpcy5yb3V0ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMucm91dGUucXVlcnlQYXJhbXMuc3Vic2NyaWJlKChwYXJhbXMpID0+IHtcbiAgICAgIGNvbnN0IGNlbnRlcktleSA9IHRoaXMucm91dGUub3B0aW9ucy5jZW50ZXJLZXk7XG4gICAgICBpZiAoY2VudGVyS2V5ICYmIHBhcmFtc1tjZW50ZXJLZXkgYXMgc3RyaW5nXSkge1xuICAgICAgICBjb25zdCBjZW50ZXJQYXJhbXMgPSBwYXJhbXNbY2VudGVyS2V5IGFzIHN0cmluZ107XG4gICAgICAgIHRoaXMubWFwVmlld0Zyb21Sb3V0ZS5jZW50ZXIgPSBjZW50ZXJQYXJhbXMuc3BsaXQoJywnKS5tYXAoTnVtYmVyKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgcHJvamVjdGlvbktleSA9IHRoaXMucm91dGUub3B0aW9ucy5wcm9qZWN0aW9uS2V5O1xuICAgICAgaWYgKHByb2plY3Rpb25LZXkgJiYgcGFyYW1zW3Byb2plY3Rpb25LZXkgYXMgc3RyaW5nXSkge1xuICAgICAgICBjb25zdCBwcm9qZWN0aW9uUGFyYW0gPSBwYXJhbXNbcHJvamVjdGlvbktleSBhcyBzdHJpbmddO1xuICAgICAgICB0aGlzLm1hcFZpZXdGcm9tUm91dGUucHJvamVjdGlvbiA9IHByb2plY3Rpb25QYXJhbTtcbiAgICAgIH1cblxuICAgICAgY29uc3Qgem9vbUtleSA9IHRoaXMucm91dGUub3B0aW9ucy56b29tS2V5O1xuICAgICAgaWYgKHpvb21LZXkgJiYgcGFyYW1zW3pvb21LZXkgYXMgc3RyaW5nXSkge1xuICAgICAgICBjb25zdCB6b29tUGFyYW0gPSBwYXJhbXNbem9vbUtleSBhcyBzdHJpbmddO1xuICAgICAgICB0aGlzLm1hcFZpZXdGcm9tUm91dGUuem9vbSA9IE51bWJlcih6b29tUGFyYW0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRQYXRoKGZpbGU6IHN0cmluZykge1xuICAgIGNvbnN0IGJhc2VQYXRoID0gdGhpcy5vcHRpb25zLmJhc2VQYXRoLnJlcGxhY2UoL1xcLyQvLCAnJyk7XG5cbiAgICByZXR1cm4gYCR7YmFzZVBhdGh9LyR7ZmlsZX1gO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVFcnJvcihcbiAgICBlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UsXG4gICAgdXJpOiBzdHJpbmcsXG4gICAgcGVybWlzc2lvbkVycm9yPzogYm9vbGVhblxuICApIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5jb250ZXh0cyQudmFsdWUub3Vycy5maW5kKChvYmopID0+IG9iai51cmkgPT09IHVyaSk7XG4gICAgY29uc3QgdGl0bGVDb250ZXh0ID0gY29udGV4dCA/IGNvbnRleHQudGl0bGUgOiB1cmk7XG4gICAgZXJyb3IuZXJyb3IudGl0bGUgPSB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudChcbiAgICAgICdpZ28uY29udGV4dC5jb250ZXh0TWFuYWdlci5pbnZhbGlkLnRpdGxlJ1xuICAgICk7XG5cbiAgICBlcnJvci5lcnJvci5tZXNzYWdlID0gdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAnaWdvLmNvbnRleHQuY29udGV4dE1hbmFnZXIuaW52YWxpZC50ZXh0JyxcbiAgICAgIHsgdmFsdWU6IHRpdGxlQ29udGV4dCB9XG4gICAgKTtcblxuICAgIGVycm9yLmVycm9yLnRvRGlzcGxheSA9IHRydWU7XG5cbiAgICBpZiAocGVybWlzc2lvbkVycm9yKSB7XG4gICAgICBlcnJvci5lcnJvci50aXRsZSA9IHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgICAnaWdvLmNvbnRleHQuY29udGV4dE1hbmFnZXIuZXJyb3JzLmFkZFBlcm1pc3Npb25UaXRsZSdcbiAgICAgICk7XG4gICAgICBlcnJvci5lcnJvci5tZXNzYWdlID0gdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICdpZ28uY29udGV4dC5jb250ZXh0TWFuYWdlci5lcnJvcnMuYWRkUGVybWlzc2lvbidcbiAgICAgICk7XG4gICAgfVxuICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuZXJyb3IoZXJyb3IuZXJyb3IubWVzc2FnZSwgZXJyb3IuZXJyb3IudGl0bGUpO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVDb250ZXh0c0NoYW5nZShcbiAgICBrZWVwQ3VycmVudENvbnRleHQgPSB0cnVlXG4gICkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmNvbnRleHQkLnZhbHVlO1xuICAgIGNvbnN0IGVkaXRlZENvbnRleHQgPSB0aGlzLmVkaXRlZENvbnRleHQkLnZhbHVlO1xuICAgIGlmICghY29udGV4dCB8fCBjb250ZXh0LnVyaSA9PT0gdGhpcy5vcHRpb25zLmRlZmF1bHRDb250ZXh0VXJpKSB7XG4gICAgICBrZWVwQ3VycmVudENvbnRleHQgPSBmYWxzZTtcbiAgICB9XG4gICAgaWYgKCFrZWVwQ3VycmVudENvbnRleHQgfHwgIXRoaXMuZmluZENvbnRleHQoY29udGV4dCkpIHtcbiAgICAgIHRoaXMuZGVmYXVsdENvbnRleHRVcmkgPSB1bmRlZmluZWQ7XG4gICAgICB0aGlzLmxvYWREZWZhdWx0Q29udGV4dCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmdldENvbnRleHRCeVVyaShjb250ZXh0LnVyaSlcbiAgICAgICAgLnBpcGUoZmlyc3QoKSlcbiAgICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgICAobmV3Q29udGV4dDogRGV0YWlsZWRDb250ZXh0KSA9PiB7XG4gICAgICAgICAgICB0aGlzLnRvb2xzQ2hhbmdlZCQubmV4dChuZXdDb250ZXh0KTtcbiAgICAgICAgICB9XG4gICAgICAgICk7XG5cbiAgICAgIGlmICh0aGlzLmJhc2VVcmwgJiYgdGhpcy5hdXRoU2VydmljZS5hdXRoZW50aWNhdGVkKSB7XG4gICAgICAgIHRoaXMuZ2V0RGVmYXVsdCgpLnN1YnNjcmliZSgpO1xuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBlZGl0ZWRGb3VuZCA9IHRoaXMuZmluZENvbnRleHQoZWRpdGVkQ29udGV4dCk7XG4gICAgaWYgKCFlZGl0ZWRGb3VuZCB8fCBlZGl0ZWRGb3VuZC5wZXJtaXNzaW9uICE9PSAnd3JpdGUnKSB7XG4gICAgICB0aGlzLnNldEVkaXRlZENvbnRleHQodW5kZWZpbmVkKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFkZENvbnRleHRUb0xpc3QoY29udGV4dDogQ29udGV4dCkge1xuICAgIGNvbnN0IGNvbnRleHRGb3VuZCA9IHRoaXMuZmluZENvbnRleHQoY29udGV4dCk7XG4gICAgaWYgKCFjb250ZXh0Rm91bmQpIHtcbiAgICAgIGNvbnN0IGNvbnRleHRTaW1wbGlmaWUgPSB7XG4gICAgICAgIGlkOiBjb250ZXh0LmlkLFxuICAgICAgICB1cmk6IGNvbnRleHQudXJpLFxuICAgICAgICB0aXRsZTogY29udGV4dC50aXRsZSxcbiAgICAgICAgc2NvcGU6IGNvbnRleHQuc2NvcGUsXG4gICAgICAgIHBlcm1pc3Npb246IFR5cGVQZXJtaXNzaW9uW1R5cGVQZXJtaXNzaW9uLnJlYWRdXG4gICAgICB9O1xuXG4gICAgICBpZiAodGhpcy5jb250ZXh0cyQudmFsdWUgJiYgdGhpcy5jb250ZXh0cyQudmFsdWUucHVibGljKSB7XG4gICAgICAgIHRoaXMuY29udGV4dHMkLnZhbHVlLnB1YmxpYy5wdXNoKGNvbnRleHRTaW1wbGlmaWUpO1xuICAgICAgICB0aGlzLmNvbnRleHRzJC5uZXh0KHRoaXMuY29udGV4dHMkLnZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGZpbmRDb250ZXh0KGNvbnRleHQ6IENvbnRleHQpIHtcbiAgICBpZiAoIWNvbnRleHQpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCBjb250ZXh0cyA9IHRoaXMuY29udGV4dHMkLnZhbHVlO1xuICAgIGxldCBmb3VuZDtcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhjb250ZXh0cykpIHtcbiAgICAgIGNvbnN0IHZhbHVlID0gY29udGV4dHNba2V5XTtcbiAgICAgIGZvdW5kID0gdmFsdWUuZmluZChcbiAgICAgICAgKGMpID0+XG4gICAgICAgICAgKGNvbnRleHQuaWQgJiYgYy5pZCA9PT0gY29udGV4dC5pZCkgfHxcbiAgICAgICAgICAoY29udGV4dC51cmkgJiYgYy51cmkgPT09IGNvbnRleHQudXJpKVxuICAgICAgKTtcbiAgICAgIGlmIChmb3VuZCkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZm91bmQ7XG4gIH1cbn1cbiJdfQ==
|
|
621
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29udGV4dC9zcmMvbGliL2NvbnRleHQtbWFuYWdlci9zaGFyZWQvY29udGV4dC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3JELE9BQU8sRUFBRSxlQUFlLEVBQWMsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRSxPQUFPLEVBQ0wsR0FBRyxFQUNILEdBQUcsRUFDSCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFFBQVEsRUFDUixLQUFLLEVBQ0wsSUFBSSxFQUNMLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxPQUFPLE1BQU0sZUFBZSxDQUFDO0FBQ3BDLE9BQU8sT0FBTyxNQUFNLG1CQUFtQixDQUFDO0FBQ3hDLE9BQU8sT0FBTyxNQUFNLG1CQUFtQixDQUFDO0FBQ3hDLE9BQU8sY0FBYyxNQUFNLGtCQUFrQixDQUFDO0FBRzlDLE9BQU8sRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBYWhELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFjaEQsTUFBTSxPQUFPLGNBQWM7SUF3QnpCLFlBQ1UsSUFBZ0IsRUFDaEIsV0FBd0IsRUFDeEIsZUFBZ0MsRUFDaEMsTUFBcUIsRUFDckIsY0FBOEIsRUFDOUIsY0FBOEIsRUFDbEIsS0FBbUI7UUFOL0IsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUNyQixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQ2xC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QUFDLE9BQU8sRUFBRTtZQUNaLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztRQUN0QyxJQUFJLEtBQUssQ0FBQztRQUNWLEtBQUssTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUN2QyxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDNUIsS0FBSyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQ2hCLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FDSixDQUFDLE9BQU8sQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQUUsS0FBSyxPQUFPLENBQUMsRUFBRSxDQUFDO2dCQUNuQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLEdBQUcsS0FBSyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQ3pDLENBQUM7WUFDRixJQUFJLEtBQUssRUFBRTtnQkFDVCxNQUFNO2FBQ1A7U0FDRjtRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs7NEVBcnZCVSxjQUFjO29FQUFkLGNBQWMsV0FBZCxjQUFjLG1CQUZiLE1BQU07dUZBRVAsY0FBYztjQUgxQixVQUFVO2VBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7O3NCQWdDSSxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIG9mLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBtYXAsXG4gIHRhcCxcbiAgY2F0Y2hFcnJvcixcbiAgZGVib3VuY2VUaW1lLFxuICBtZXJnZU1hcCxcbiAgZmlyc3QsXG4gIHNraXBcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgb2xQb2ludCBmcm9tICdvbC9nZW9tL1BvaW50JztcbmltcG9ydCBHZW9KU09OIGZyb20gJ29sL2Zvcm1hdC9HZW9KU09OJztcbmltcG9ydCBDbHVzdGVyIGZyb20gJ29sL3NvdXJjZS9DbHVzdGVyJztcbmltcG9ydCBvbFZlY3RvclNvdXJjZSBmcm9tICdvbC9zb3VyY2UvVmVjdG9yJztcblxuaW1wb3J0IHsgVG9vbCB9IGZyb20gJ0BpZ28yL2NvbW1vbic7XG5pbXBvcnQgeyB1dWlkLCBPYmplY3RVdGlscyB9IGZyb20gJ0BpZ28yL3V0aWxzJztcbmltcG9ydCB7XG4gIENvbmZpZ1NlcnZpY2UsXG4gIFJvdXRlU2VydmljZSxcbiAgTWVzc2FnZSxcbiAgTWVzc2FnZVNlcnZpY2UsXG4gIExhbmd1YWdlU2VydmljZSxcbiAgU3RvcmFnZVNlcnZpY2Vcbn0gZnJvbSAnQGlnbzIvY29yZSc7XG5cbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvYXV0aCc7XG5pbXBvcnQgdHlwZSB7IElnb01hcCwgTGF5ZXIgfSBmcm9tICdAaWdvMi9nZW8nO1xuXG5pbXBvcnQgeyBUeXBlUGVybWlzc2lvbiB9IGZyb20gJy4vY29udGV4dC5lbnVtJztcbmltcG9ydCB7XG4gIENvbnRleHRzTGlzdCxcbiAgQ29udGV4dFNlcnZpY2VPcHRpb25zLFxuICBDb250ZXh0LFxuICBEZXRhaWxlZENvbnRleHQsXG4gIENvbnRleHRNYXBWaWV3LFxuICBDb250ZXh0UGVybWlzc2lvbixcbiAgQ29udGV4dFByb2ZpbHNcbn0gZnJvbSAnLi9jb250ZXh0LmludGVyZmFjZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIENvbnRleHRTZXJ2aWNlIHtcbiAgcHVibGljIGNvbnRleHQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxEZXRhaWxlZENvbnRleHQ+KHVuZGVmaW5lZCk7XG4gIHB1YmxpYyBjb250ZXh0cyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PENvbnRleHRzTGlzdD4oeyBvdXJzOiBbXSB9KTtcbiAgcHVibGljIGRlZmF1bHRDb250ZXh0SWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KHVuZGVmaW5lZCk7XG4gIHB1YmxpYyBlZGl0ZWRDb250ZXh0JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RGV0YWlsZWRDb250ZXh0Pih1bmRlZmluZWQpO1xuICBwdWJsaWMgaW1wb3J0ZWRDb250ZXh0OiBBcnJheTxEZXRhaWxlZENvbnRleHQ+ID0gW107XG4gIHB1YmxpYyB0b29sc0NoYW5nZWQkID0gbmV3IFN1YmplY3Q8RGV0YWlsZWRDb250ZXh0PigpO1xuICBwcml2YXRlIG1hcFZpZXdGcm9tUm91dGU6IENvbnRleHRNYXBWaWV3ID0ge307XG4gIHByaXZhdGUgb3B0aW9uczogQ29udGV4dFNlcnZpY2VPcHRpb25zO1xuICBwcml2YXRlIGJhc2VVcmw6IHN0cmluZztcblxuICAvLyBVbnRpbCB0aGUgQ29udGV4dFNlcnZpY2UgaXMgY29tcGxldGVseSByZWZhY3RvcmVkLCB0aGlzIGlzIG5lZWRlZFxuICAvLyB0byB0cmFjayB0aGUgY3VycmVudCB0b29sc1xuICBwcml2YXRlIHRvb2xzOiBUb29sW107XG4gIHByaXZhdGUgdG9vbGJhcjogc3RyaW5nW107XG5cbiAgZ2V0IGRlZmF1bHRDb250ZXh0VXJpKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0KCdmYXZvcml0ZS5jb250ZXh0LnVyaScpIGFzIHN0cmluZyB8fCB0aGlzLl9kZWZhdWx0Q29udGV4dFVyaSB8fCB0aGlzLm9wdGlvbnMuZGVmYXVsdENvbnRleHRVcmk7XG4gIH1cbiAgc2V0IGRlZmF1bHRDb250ZXh0VXJpKHVyaTogc3RyaW5nKSB7XG4gICAgdGhpcy5fZGVmYXVsdENvbnRleHRVcmkgPSB1cmk7XG4gIH1cbiAgcHJpdmF0ZSBfZGVmYXVsdENvbnRleHRVcmk6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBsYW5ndWFnZVNlcnZpY2U6IExhbmd1YWdlU2VydmljZSxcbiAgICBwcml2YXRlIGNvbmZpZzogQ29uZmlnU2VydmljZSxcbiAgICBwcml2YXRlIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcbiAgICBwcml2YXRlIHN0b3JhZ2VTZXJ2aWNlOiBTdG9yYWdlU2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHJvdXRlOiBSb3V0ZVNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5vcHRpb25zID0gT2JqZWN0LmFzc2lnbihcbiAgICAgIHtcbiAgICAgICAgYmFzZVBhdGg6ICdjb250ZXh0cycsXG4gICAgICAgIGNvbnRleHRMaXN0RmlsZTogJ19jb250ZXh0cy5qc29uJyxcbiAgICAgICAgZGVmYXVsdENvbnRleHRVcmk6ICdfZGVmYXVsdCdcbiAgICAgIH0sXG4gICAgICB0aGlzLmNvbmZpZy5nZXRDb25maWcoJ2NvbnRleHQnKVxuICAgICk7XG5cbiAgICB0aGlzLmJhc2VVcmwgPSB0aGlzLm9wdGlvbnMudXJsO1xuXG4gICAgdGhpcy5yZWFkUGFyYW1zRnJvbVJvdXRlKCk7XG5cbiAgICBpZiAodGhpcy5hdXRoU2VydmljZS5oYXNBdXRoU2VydmljZSkge1xuICAgICAgdGhpcy5hdXRoU2VydmljZS5sb2dnZWQkLnN1YnNjcmliZSgobG9nZ2VkKSA9PiB7XG4gICAgICAgIGlmIChsb2dnZWQpIHtcbiAgICAgICAgICB0aGlzLmNvbnRleHRzJC5waXBlKHNraXAoMSksIGZpcnN0KCkpLnN1YnNjcmliZSgoYykgPT4ge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVDb250ZXh0c0NoYW5nZSgpO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIHRoaXMubG9hZENvbnRleHRzKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmxvYWRDb250ZXh0cygpO1xuICAgICAgdGhpcy5oYW5kbGVDb250ZXh0c0NoYW5nZShmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0KHBlcm1pc3Npb25zPzogc3RyaW5nW10sIGhpZGRlbj86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPENvbnRleHRzTGlzdD4ge1xuICAgIGxldCB1cmwgPSB0aGlzLmJhc2VVcmwgKyAnL2NvbnRleHRzJztcbiAgICBpZiAocGVybWlzc2lvbnMgJiYgdGhpcy5hdXRoU2VydmljZS5hdXRoZW50aWNhdGVkKSB7XG4gICAgICB1cmwgKz0gJz9wZXJtaXNzaW9uPScgKyBwZXJtaXNzaW9ucy5qb2luKCk7XG4gICAgICBpZiAoaGlkZGVuKSB7XG4gICAgICAgIHVybCArPSAnJmhpZGRlbj10cnVlJztcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8Q29udGV4dHNMaXN0Pih1cmwpO1xuICB9XG5cbiAgZ2V0QnlJZChpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxDb250ZXh0PiB7XG4gICAgY29uc3QgdXJsID0gdGhpcy5iYXNlVXJsICsgJy9jb250ZXh0cy8nICsgaWQ7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8Q29udGV4dD4odXJsKTtcbiAgfVxuXG4gIGdldERldGFpbHMoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8RGV0YWlsZWRDb250ZXh0PiB7XG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5iYXNlVXJsfS9jb250ZXh0cy8ke2lkfS9kZXRhaWxzYDtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxEZXRhaWxlZENvbnRleHQ+KHVybCkucGlwZShcbiAgICAgIGNhdGNoRXJyb3IoKHJlcykgPT4ge1xuICAgICAgICB0aGlzLmhhbmRsZUVycm9yKHJlcywgaWQpO1xuICAgICAgICB0aHJvdyByZXM7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBnZXREZWZhdWx0KCk6IE9ic2VydmFibGU8RGV0YWlsZWRDb250ZXh0PiB7XG4gICAgaWYgKHRoaXMuYXV0aFNlcnZpY2UuYXV0aGVudGljYXRlZCkge1xuICAgICAgY29uc3QgdXJsID0gdGhpcy5iYXNlVXJsICsgJy9jb250ZXh0cy9kZWZhdWx0JztcbiAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PERldGFpbGVkQ29udGV4dD4odXJsKS5waXBlKFxuICAgICAgICB0YXAoKGNvbnRleHQpID0+IHtcbiAgICAgICAgICB0aGlzLmRlZmF1bHRDb250ZXh0SWQkLm5leHQoY29udGV4dC5pZCk7XG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCB1cmkgPSB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldCgnZmF2b3JpdGUuY29udGV4dC51cmknKSBhcyBzdHJpbmc7XG4gICAgICB0aGlzLmRlZmF1bHRDb250ZXh0SWQkLm5leHQodXJpKTtcbiAgICAgIHJldHVybiB0aGlzLmdldENvbnRleHRCeVVyaSh1cmkpO1xuICAgIH1cblxuICB9XG5cbiAgZ2V0UHJvZmlsQnlVc2VyKCk6IE9ic2VydmFibGU8Q29udGV4dFByb2ZpbHNbXT4ge1xuICAgIGlmICh0aGlzLmJhc2VVcmwpIHtcbiAgICAgIGNvbnN0IHVybCA9IHRoaXMuYmFzZVVybCArICcvcHJvZmlscz8nO1xuICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8Q29udGV4dFByb2ZpbHNbXT4odXJsKTtcbiAgICB9XG4gICAgcmV0dXJuIG9mKFtdKTtcbiAgfVxuXG4gIHNldERlZmF1bHQoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgaWYgKHRoaXMuYXV0aFNlcnZpY2UuYXV0aGVudGljYXRlZCkge1xuICAgICAgY29uc3QgdXJsID0gdGhpcy5iYXNlVXJsICsgJy9jb250ZXh0cy9kZWZhdWx0JztcbiAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh1cmwsIHsgZGVmYXVsdENvbnRleHRJZDogaWQgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc3RvcmFnZVNlcnZpY2Uuc2V0KCdmYXZvcml0ZS5jb250ZXh0LnVyaScsIGlkKTtcbiAgICAgIHJldHVybiBvZih1bmRlZmluZWQpO1xuICAgIH1cbiAgfVxuXG4gIGhpZGVDb250ZXh0KGlkOiBzdHJpbmcpIHtcbiAgICBjb25zdCB1cmwgPSB0aGlzLmJhc2VVcmwgKyAnL2NvbnRleHRzLycgKyBpZCArICcvaGlkZSc7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHVybCwge30pO1xuICB9XG5cbiAgc2hvd0NvbnRleHQoaWQ6IHN0cmluZykge1xuICAgIGNvbnN0IHVybCA9IHRoaXMuYmFzZVVybCArICcvY29udGV4dHMvJyArIGlkICsgJy9zaG93JztcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QodXJsLCB7fSk7XG4gIH1cblxuICBkZWxldGUoaWQ6IHN0cmluZywgaW1wb3J0ZWQgPSBmYWxzZSk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIGNvbnN0IGNvbnRleHRzOiBDb250ZXh0c0xpc3QgPSB7IG91cnM6IFtdIH07XG4gICAgT2JqZWN0LmtleXModGhpcy5jb250ZXh0cyQudmFsdWUpLmZvckVhY2goXG4gICAgICAoa2V5KSA9PlxuICAgICAgICAoY29udGV4dHNba2V5XSA9IHRoaXMuY29udGV4dHMkLnZhbHVlW2tleV0uZmlsdGVyKChjKSA9PiBjLmlkICE9PSBpZCkpXG4gICAgKTtcblxuICAgIGlmIChpbXBvcnRlZCkge1xuICAgICAgdGhpcy5pbXBvcnRlZENvbnRleHQgPSB0aGlzLmltcG9ydGVkQ29udGV4dC5maWx0ZXIoKGMpID0+IGMuaWQgIT09IGlkKTtcbiAgICAgIHJldHVybiBvZih0aGlzLmNvbnRleHRzJC5uZXh0KGNvbnRleHRzKSk7XG4gICAgfVxuXG4gICAgY29uc3QgdXJsID0gdGhpcy5iYXNlVXJsICsgJy9jb250ZXh0cy8nICsgaWQ7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8dm9pZD4odXJsKS5waXBlKFxuICAgICAgdGFwKChyZXMpID0+IHtcbiAgICAgICAgdGhpcy5jb250ZXh0cyQubmV4dChjb250ZXh0cyk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBjcmVhdGUoY29udGV4dDogRGV0YWlsZWRDb250ZXh0KTogT2JzZXJ2YWJsZTxDb250ZXh0PiB7XG4gICAgY29uc3QgdXJsID0gdGhpcy5iYXNlVXJsICsgJy9jb250ZXh0cyc7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PENvbnRleHQ+KHVybCwgY29udGV4dCkucGlwZShcbiAgICAgIG1hcCgoY29udGV4dENyZWF0ZWQpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuYXV0aFNlcnZpY2UuYXV0aGVudGljYXRlZCkge1xuICAgICAgICAgIGNvbnRleHRDcmVhdGVkLnBlcm1pc3Npb24gPSBUeXBlUGVybWlzc2lvbltUeXBlUGVybWlzc2lvbi53cml0ZV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29udGV4dENyZWF0ZWQucGVybWlzc2lvbiA9IFR5cGVQZXJtaXNzaW9uW1R5cGVQZXJtaXNzaW9uLnJlYWRdO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY29udGV4dHMkLnZhbHVlLm91cnMudW5zaGlmdChjb250ZXh0Q3JlYXRlZCk7XG4gICAgICAgIHRoaXMuY29udGV4dHMkLm5leHQodGhpcy5jb250ZXh0cyQudmFsdWUpO1xuICAgICAgICByZXR1cm4gY29udGV4dENyZWF0ZWQ7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBjbG9uZShpZDogc3RyaW5nLCBwcm9wZXJ0aWVzID0ge30pOiBPYnNlcnZhYmxlPENvbnRleHQ+IHtcbiAgICBjb25zdCB1cmwgPSB0aGlzLmJhc2VVcmwgKyAnL2NvbnRleHRzLycgKyBpZCArICcvY2xvbmUnO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxDb250ZXh0Pih1cmwsIHByb3BlcnRpZXMpLnBpcGUoXG4gICAgICBtYXAoKGNvbnRleHRDbG9uZWQpID0+IHtcbiAgICAgICAgY29udGV4dENsb25lZC5wZXJtaXNzaW9uID0gVHlwZVBlcm1pc3Npb25bVHlwZVBlcm1pc3Npb24ud3JpdGVdO1xuICAgICAgICB0aGlzLmNvbnRleHRzJC52YWx1ZS5vdXJzLnVuc2hpZnQoY29udGV4dENsb25lZCk7XG4gICAgICAgIHRoaXMuY29udGV4dHMkLm5leHQodGhpcy5jb250ZXh0cyQudmFsdWUpO1xuICAgICAgICByZXR1cm4gY29udGV4dENsb25lZDtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHVwZGF0ZShpZDogc3RyaW5nLCBjb250ZXh0OiBDb250ZXh0KTogT2JzZXJ2YWJsZTxDb250ZXh0PiB7XG4gICAgY29uc3QgdXJsID0gdGhpcy5iYXNlVXJsICsgJy9jb250ZXh0cy8nICsgaWQ7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wYXRjaDxDb250ZXh0Pih1cmwsIGNvbnRleHQpO1xuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICBhZGRUb29sQXNzb2NpYXRpb24oY29udGV4dElkOiBzdHJpbmcsIHRvb2xJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5iYXNlVXJsfS9jb250ZXh0cy8ke2NvbnRleHRJZH0vdG9vbHNgO1xuICAgIGNvbnN0IGFzc29jaWF0aW9uID0ge1xuICAgICAgdG9vbElkXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8dm9pZD4odXJsLCBhc3NvY2lhdGlvbik7XG4gIH1cblxuICBkZWxldGVUb29sQXNzb2NpYXRpb24oY29udGV4dElkOiBzdHJpbmcsIHRvb2xJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLmJhc2VVcmx9L2NvbnRleHRzLyR7Y29udGV4dElkfS90b29scy8ke3Rvb2xJZH1gO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlKHVybCk7XG4gIH1cblxuICBnZXRQZXJtaXNzaW9ucyhpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxDb250ZXh0UGVybWlzc2lvbltdPiB7XG4gICAgY29uc3QgdXJsID0gdGhpcy5iYXNlVXJsICsgJy9jb250ZXh0cy8nICsgaWQgKyAnL3Blcm1pc3Npb25zJztcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxDb250ZXh0UGVybWlzc2lvbltdPih1cmwpO1xuICB9XG5cbiAgYWRkUGVybWlzc2lvbkFzc29jaWF0aW9uKFxuICAgIGNvbnRleHRJZDogc3RyaW5nLFxuICAgIHByb2ZpbDogc3RyaW5nLFxuICAgIHR5cGU6IFR5cGVQZXJtaXNzaW9uXG4gICk6IE9ic2VydmFibGU8Q29udGV4dFBlcm1pc3Npb25bXT4ge1xuICAgIGNvbnN0IHVybCA9IGAke3RoaXMuYmFzZVVybH0vY29udGV4dHMvJHtjb250ZXh0SWR9L3Blcm1pc3Npb25zYDtcbiAgICBjb25zdCBhc3NvY2lhdGlvbiA9IHtcbiAgICAgIHByb2ZpbCxcbiAgICAgIHR5cGVQZXJtaXNzaW9uOiB0eXBlXG4gICAgfTtcblxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxDb250ZXh0UGVybWlzc2lvbltdPih1cmwsIGFzc29jaWF0aW9uKS5waXBlKFxuICAgICAgY2F0Y2hFcnJvcigocmVzKSA9PiB7XG4gICAgICAgIHRoaXMuaGFuZGxlRXJyb3IocmVzLCB1bmRlZmluZWQsIHRydWUpO1xuICAgICAgICB0aHJvdyBbcmVzXTsgLy8gVE9ETyBOb3Qgc3VyZSBhYm91dCB0aGlzLlxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgZGVsZXRlUGVybWlzc2lvbkFzc29jaWF0aW9uKFxuICAgIGNvbnRleHRJZDogc3RyaW5nLFxuICAgIHBlcm1pc3Npb25JZDogc3RyaW5nXG4gICk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIGNvbnN0IHVybCA9IGAke3RoaXMuYmFzZVVybH0vY29udGV4dHMvJHtjb250ZXh0SWR9L3Blcm1pc3Npb25zLyR7cGVybWlzc2lvbklkfWA7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8dm9pZD4odXJsKTtcbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICBnZXRMb2NhbENvbnRleHRzKCk6IE9ic2VydmFibGU8Q29udGV4dHNMaXN0PiB7XG4gICAgY29uc3QgdXJsID0gdGhpcy5nZXRQYXRoKHRoaXMub3B0aW9ucy5jb250ZXh0TGlzdEZpbGUpO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PENvbnRleHRzTGlzdD4odXJsKS5waXBlKFxuICAgICAgbWFwKChyZXM6IGFueSkgPT4ge1xuICAgICAgICByZXR1cm4geyBvdXJzOiByZXMgfTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGdldExvY2FsQ29udGV4dCh1cmk6IHN0cmluZyk6IE9ic2VydmFibGU8RGV0YWlsZWRDb250ZXh0PiB7XG4gICAgY29uc3QgdXJsID0gdGhpcy5nZXRQYXRoKGAke3VyaX0uanNvbmApO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PERldGFpbGVkQ29udGV4dD4odXJsKS5waXBlKFxuICAgICAgbWVyZ2VNYXAoKHJlcykgPT4ge1xuICAgICAgICBpZiAoIXJlcy5iYXNlKSB7XG4gICAgICAgICAgcmV0dXJuIG9mKHJlcyk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdXJsQmFzZSA9IHRoaXMuZ2V0UGF0aChgJHtyZXMuYmFzZX0uanNvbmApO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxEZXRhaWxlZENvbnRleHQ+KHVybEJhc2UpLnBpcGUoXG4gICAgICAgICAgbWFwKChyZXNCYXNlOiBEZXRhaWxlZENvbnRleHQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHJlc01lcmdlID0gcmVzO1xuICAgICAgICAgICAgcmVzTWVyZ2UubWFwID0gT2JqZWN0VXRpbHMubWVyZ2VEZWVwKHJlc0Jhc2UubWFwLCByZXMubWFwKTtcbiAgICAgICAgICAgIHJlc01lcmdlLmxheWVycyA9IChyZXNCYXNlLmxheWVycyB8fCBbXSlcbiAgICAgICAgICAgICAgLmNvbmNhdChyZXMubGF5ZXJzIHx8IFtdKVxuICAgICAgICAgICAgICAucmV2ZXJzZSgpXG4gICAgICAgICAgICAgIC5maWx0ZXIoXG4gICAgICAgICAgICAgICAgKGwsIGluZGV4LCBzZWxmKSA9PlxuICAgICAgICAgICAgICAgICAgIWwuaWQgfHwgc2VsZi5maW5kSW5kZXgoKGwyKSA9PiBsMi5pZCA9PT0gbC5pZCkgPT09IGluZGV4XG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgLnJldmVyc2UoKTtcbiAgICAgICAgICAgIHJlc01lcmdlLnRvb2xiYXIgPSByZXMudG9vbGJhciB8fCByZXNCYXNlLnRvb2xiYXI7XG4gICAgICAgICAgICByZXNNZXJnZS5tZXNzYWdlID0gcmVzLm1lc3NhZ2UgfHwgcmVzQmFzZS5tZXNzYWdlO1xuICAgICAgICAgICAgcmVzTWVyZ2UubWVzc2FnZXMgPSByZXMubWVzc2FnZXMgfHwgcmVzQmFzZS5tZXNzYWdlcztcbiAgICAgICAgICAgIHJlc01lcmdlLnRvb2xzID0gKHJlcy50b29scyB8fCBbXSlcbiAgICAgICAgICAgICAgLmNvbmNhdChyZXNCYXNlLnRvb2xzIHx8IFtdKVxuICAgICAgICAgICAgICAuZmlsdGVyKFxuICAgICAgICAgICAgICAgICh0LCBpbmRleCwgc2VsZikgPT5cbiAgICAgICAgICAgICAgICAgIHNlbGYuZmluZEluZGV4KCh0MikgPT4gdDIubmFtZSA9PT0gdC5uYW1lKSA9PT0gaW5kZXhcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHJldHVybiByZXNNZXJnZTtcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnIpID0+IHtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlRXJyb3IoZXJyLCB1cmkpO1xuICAgICAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICB9KSxcbiAgICAgIGNhdGNoRXJyb3IoKGVycjIpID0+IHtcbiAgICAgICAgdGhpcy5oYW5kbGVFcnJvcihlcnIyLCB1cmkpO1xuICAgICAgICB0aHJvdyBlcnIyO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgbG9hZENvbnRleHRzKHBlcm1pc3Npb25zPzogc3RyaW5nW10sIGhpZGRlbj86IGJvb2xlYW4pIHtcbiAgICBsZXQgcmVxdWVzdDtcbiAgICBpZiAodGhpcy5iYXNlVXJsKSB7XG4gICAgICByZXF1ZXN0ID0gdGhpcy5nZXQocGVybWlzc2lvbnMsIGhpZGRlbik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlcXVlc3QgPSB0aGlzLmdldExvY2FsQ29udGV4dHMoKTtcbiAgICB9XG4gICAgcmVxdWVzdC5zdWJzY3JpYmUoKGNvbnRleHRzKSA9PiB7XG4gICAgICBjb250ZXh0cy5vdXJzID0gdGhpcy5pbXBvcnRlZENvbnRleHQuY29uY2F0KGNvbnRleHRzLm91cnMpO1xuICAgICAgdGhpcy5jb250ZXh0cyQubmV4dChjb250ZXh0cyk7XG4gICAgfSk7XG4gIH1cblxuICBsb2FkRGVmYXVsdENvbnRleHQoKSB7XG4gICAgY29uc3QgbG9hZEZjdCA9IChkaXJlY3QgPSBmYWxzZSkgPT4ge1xuICAgICAgaWYgKCFkaXJlY3QgJiYgdGhpcy5iYXNlVXJsICYmIHRoaXMuYXV0aFNlcnZpY2UuYXV0aGVudGljYXRlZCkge1xuICAgICAgICB0aGlzLmdldERlZmF1bHQoKS5zdWJzY3JpYmUoXG4gICAgICAgICAgKF9jb250ZXh0OiBEZXRhaWxlZENvbnRleHQpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZGVmYXVsdENvbnRleHRVcmkgPSBfY29udGV4dC51cmk7XG4gICAgICAgICAgICB0aGlzLmFkZENvbnRleHRUb0xpc3QoX2NvbnRleHQpO1xuICAgICAgICAgICAgdGhpcy5zZXRDb250ZXh0KF9jb250ZXh0KTtcbiAgICAgICAgICB9LFxuICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZGVmYXVsdENvbnRleHRJZCQubmV4dCh1bmRlZmluZWQpO1xuICAgICAgICAgICAgdGhpcy5sb2FkQ29udGV4dCh0aGlzLmRlZmF1bHRDb250ZXh0VXJpKTtcbiAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmxvYWRDb250ZXh0KHRoaXMuZGVmYXVsdENvbnRleHRVcmkpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBpZiAodGhpcy5yb3V0ZSAmJiB0aGlzLnJvdXRlLm9wdGlvbnMuY29udGV4dEtleSkge1xuICAgICAgdGhpcy5yb3V0ZS5xdWVyeVBhcmFtcy5waXBlKGRlYm91bmNlVGltZSgxMDApKS5zdWJzY3JpYmUoKHBhcmFtcykgPT4ge1xuICAgICAgICBjb25zdCBjb250ZXh0UGFyYW0gPSBwYXJhbXNbdGhpcy5yb3V0ZS5vcHRpb25zLmNvbnRleHRLZXkgYXMgc3RyaW5nXTtcbiAgICAgICAgbGV0IGRpcmVjdCA9IGZhbHNlO1xuICAgICAgICBpZiAoY29udGV4dFBhcmFtKSB7XG4gICAgICAgICAgdGhpcy5kZWZhdWx0Q29udGV4dFVyaSA9IGNvbnRleHRQYXJhbTtcbiAgICAgICAgICBkaXJlY3QgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGxvYWRGY3QoZGlyZWN0KTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBsb2FkRmN0KCk7XG4gICAgfVxuICB9XG5cbiAgbG9hZENvbnRleHQodXJpOiBzdHJpbmcpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5jb250ZXh0JC52YWx1ZTtcblxuICAgIGlmIChjb250ZXh0ICYmIGNvbnRleHQudXJpID09PSB1cmkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmdldENvbnRleHRCeVVyaSh1cmkpXG4gICAgICAucGlwZShmaXJzdCgpKVxuICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgKF9jb250ZXh0OiBEZXRhaWxlZENvbnRleHQpID0+IHtcbiAgICAgICAgICB0aGlzLmFkZENvbnRleHRUb0xpc3QoX2NvbnRleHQpO1xuICAgICAgICAgIHRoaXMuc2V0Q29udGV4dChfY29udGV4dCk7XG4gICAgICAgIH0sXG4gICAgICAgIChlcnIpID0+IHtcbiAgICAgICAgICBpZiAodXJpICE9PSB0aGlzLm9wdGlvbnMuZGVmYXVsdENvbnRleHRVcmkpIHtcbiAgICAgICAgICAgIHRoaXMubG9hZENvbnRleHQodGhpcy5vcHRpb25zLmRlZmF1bHRDb250ZXh0VXJpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICk7XG4gIH1cblxuICBzZXRDb250ZXh0KGNvbnRleHQ6IERldGFpbGVkQ29udGV4dCkge1xuICAgIHRoaXMuaGFuZGxlQ29udGV4dE1lc3NhZ2UoY29udGV4dCk7XG4gICAgY29uc3QgY3VycmVudENvbnRleHQgPSB0aGlzLmNvbnRleHQkLnZhbHVlO1xuICAgIGlmIChjdXJyZW50Q29udGV4dCAmJiBjb250ZXh0ICYmIGNvbnRleHQuaWQgPT09IGN1cnJlbnRDb250ZXh0LmlkKSB7XG4gICAgICBpZiAoY29udGV4dC5tYXAudmlldy5rZWVwQ3VycmVudFZpZXcgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBjb250ZXh0Lm1hcC52aWV3LmtlZXBDdXJyZW50VmlldyA9IHRydWU7XG4gICAgICB9XG4gICAgICB0aGlzLmNvbnRleHQkLm5leHQoY29udGV4dCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCFjb250ZXh0Lm1hcCkge1xuICAgICAgY29udGV4dC5tYXAgPSB7IHZpZXc6IHt9IH07XG4gICAgfVxuXG4gICAgT2JqZWN0LmFzc2lnbihjb250ZXh0Lm1hcC52aWV3LCB0aGlzLm1hcFZpZXdGcm9tUm91dGUpO1xuXG4gICAgdGhpcy5jb250ZXh0JC5uZXh0KGNvbnRleHQpO1xuICB9XG5cbiAgbG9hZEVkaXRlZENvbnRleHQodXJpOiBzdHJpbmcpIHtcbiAgICB0aGlzLmdldENvbnRleHRCeVVyaSh1cmkpLnN1YnNjcmliZSgoX2NvbnRleHQ6IERldGFpbGVkQ29udGV4dCkgPT4ge1xuICAgICAgdGhpcy5zZXRFZGl0ZWRDb250ZXh0KF9jb250ZXh0KTtcbiAgICB9KTtcbiAgfVxuXG4gIHNldEVkaXRlZENvbnRleHQoY29udGV4dDogRGV0YWlsZWRDb250ZXh0KSB7XG4gICAgdGhpcy5lZGl0ZWRDb250ZXh0JC5uZXh0KGNvbnRleHQpO1xuICB9XG5cbiAgZ2V0Q29udGV4dEZyb21NYXAoaWdvTWFwOiBJZ29NYXAsIGVtcHR5PzogYm9vbGVhbik6IERldGFpbGVkQ29udGV4dCB7XG4gICAgY29uc3QgdmlldyA9IGlnb01hcC5vbC5nZXRWaWV3KCk7XG4gICAgY29uc3QgcHJvaiA9IHZpZXcuZ2V0UHJvamVjdGlvbigpLmdldENvZGUoKTtcbiAgICBjb25zdCBjZW50ZXI6IGFueSA9IG5ldyBvbFBvaW50KHZpZXcuZ2V0Q2VudGVyKCkpLnRyYW5zZm9ybShcbiAgICAgIHByb2osXG4gICAgICAnRVBTRzo0MzI2J1xuICAgICk7XG5cbiAgICBjb25zdCBjb250ZXh0ID0ge1xuICAgICAgdXJpOiB1dWlkKCksXG4gICAgICB0aXRsZTogJycsXG4gICAgICBzY29wZTogJ3ByaXZhdGUnLFxuICAgICAgbWFwOiB7XG4gICAgICAgIHZpZXc6IHtcbiAgICAgICAgICBjZW50ZXI6IGNlbnRlci5nZXRDb29yZGluYXRlcygpLFxuICAgICAgICAgIHpvb206IHZpZXcuZ2V0Wm9vbSgpLFxuICAgICAgICAgIHByb2plY3Rpb246IHByb2osXG4gICAgICAgICAgbWF4Wm9vbU9uRXh0ZW50OiBpZ29NYXAudmlld0NvbnRyb2xsZXIubWF4Wm9vbU9uRXh0ZW50XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBsYXllcnM6IFtdLFxuICAgICAgdG9vbHM6IFtdXG4gICAgfTtcblxuICAgIGxldCBsYXllcnMgPSBbXTtcbiAgICBpZiAoZW1wdHkgPT09IHRydWUpIHtcbiAgICAgIGxheWVycyA9IGlnb01hcC5sYXllcnMkXG4gICAgICAgIC5nZXRWYWx1ZSgpXG4gICAgICAgIC5maWx0ZXIoXG4gICAgICAgICAgKGxheSkgPT5cbiAgICAgICAgICAgIGxheS5iYXNlTGF5ZXIgPT09IHRydWUgfHxcbiAgICAgICAgICAgIGxheS5vcHRpb25zLmlkID09PSAnc2VhcmNoUG9pbnRlclN1bW1hcnlJZCdcbiAgICAgICAgKVxuICAgICAgICAuc29ydCgoYSwgYikgPT4gYS56SW5kZXggLSBiLnpJbmRleCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxheWVycyA9IGlnb01hcC5sYXllcnMkLmdldFZhbHVlKCkuZmlsdGVyKGxheSA9PiAhbGF5LmlkLmluY2x1ZGVzKCdXZnNXb3Jrc3BhY2VUYWJsZURlc3QnKSkuc29ydCgoYSwgYikgPT4gYS56SW5kZXggLSBiLnpJbmRleCk7XG4gICAgfVxuXG4gICAgbGV0IGkgPSAwO1xuICAgIGZvciAoY29uc3QgbCBvZiBsYXllcnMpIHtcbiAgICAgIGNvbnN0IGxheWVyOiBhbnkgPSBsO1xuICAgICAgY29uc3Qgb3B0cyA9IHtcbiAgICAgICAgaWQ6IGxheWVyLm9wdGlvbnMuaWQgPyBTdHJpbmcobGF5ZXIub3B0aW9ucy5pZCkgOiB1bmRlZmluZWQsXG4gICAgICAgIGxheWVyT3B0aW9uczoge1xuICAgICAgICAgIHRpdGxlOiBsYXllci5vcHRpb25zLnRpdGxlLFxuICAgICAgICAgIHpJbmRleDogKytpLFxuICAgICAgICAgIHZpc2libGU6IGxheWVyLnZpc2libGVcbiAgICAgICAgfSxcbiAgICAgICAgc291cmNlT3B0aW9uczoge1xuICAgICAgICAgIHR5cGU6IGxheWVyLmRhdGFTb3VyY2Uub3B0aW9ucy50eXBlLFxuICAgICAgICAgIHBhcmFtczogbGF5ZXIuZGF0YVNvdXJjZS5vcHRpb25zLnBhcmFtcyxcbiAgICAgICAgICB1cmw6IGxheWVyLmRhdGFTb3VyY2Uub3B0aW9ucy51cmwsXG4gICAgICAgICAgcXVlcnlhYmxlOiBsYXllci5xdWVyeWFibGVcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICAgIGlmIChvcHRzLnNvdXJjZU9wdGlvbnMudHlwZSkge1xuICAgICAgICBjb250ZXh0LmxheWVycy5wdXNoKG9wdHMpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnRleHQudG9vbHMgPSB0aGlzLnRvb2xzLm1hcCgodG9vbCkgPT4ge1xuICAgICAgcmV0dXJuIHsgaWQ6IFN0cmluZyh0b29sLmlkKSwgZ2xvYmFsOiB0b29sLmdsb2JhbCB9O1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIGNvbnRleHQ7XG4gIH1cblxuICBnZXRDb250ZXh0RnJvbUxheWVycyhcbiAgICBpZ29NYXA6IElnb01hcCxcbiAgICBsYXllcnM6IExheWVyW10sXG4gICAgbmFtZTogc3RyaW5nXG4gICk6IERldGFpbGVkQ29udGV4dCB7XG4gICAgY29uc3QgY3VycmVudENvbnRleHQgPSB0aGlzLmNvbnRleHQkLmdldFZhbHVlKCk7XG4gICAgY29uc3QgdmlldyA9IGlnb01hcC5vbC5nZXRWaWV3KCk7XG4gICAgY29uc3QgcHJvaiA9IHZpZXcuZ2V0UHJvamVjdGlvbigpLmdldENvZGUoKTtcbiAgICBjb25zdCBjZW50ZXI6IGFueSA9IG5ldyBvbFBvaW50KHZpZXcuZ2V0Q2VudGVyKCkpLnRyYW5zZm9ybShcbiAgICAgIHByb2osXG4gICAgICAnRVBTRzo0MzI2J1xuICAgICk7XG5cbiAgICBjb25zdCBjb250ZXh0ID0ge1xuICAgICAgdXJpOiBuYW1lLFxuICAgICAgdGl0bGU6IG5hbWUsXG4gICAgICBtYXA6IHtcbiAgICAgICAgdmlldzoge1xuICAgICAgICAgIGNlbnRlcjogY2VudGVyLmdldENvb3JkaW5hdGVzKCksXG4gICAgICAgICAgem9vbTogdmlldy5nZXRab29tKCksXG4gICAgICAgICAgcHJvamVjdGlvbjogcHJvalxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgbGF5ZXJzOiBbXSxcbiAgICAgIHRvb2xiYXI6IFtdLFxuICAgICAgdG9vbHM6IFtdLFxuICAgICAgZXh0cmFGZWF0dXJlczogW11cbiAgICB9O1xuXG4gICAgY29uc3QgY3VycmVudExheWVycyA9IGlnb01hcC5sYXllcnMkLmdldFZhbHVlKCk7XG4gICAgY29udGV4dC5sYXllcnMgPSBjdXJyZW50TGF5ZXJzXG4gICAgICAuZmlsdGVyKChsKSA9PiBsLmJhc2VMYXllcilcbiAgICAgIC5tYXAoKGwpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBiYXNlTGF5ZXI6IHRydWUsXG4gICAgICAgICAgc291cmNlT3B0aW9uczogbC5vcHRpb25zLnNvdXJjZU9wdGlvbnMsXG4gICAgICAgICAgdGl0bGU6IGwub3B0aW9ucy50aXRsZSxcbiAgICAgICAgICB2aXNpYmxlOiBsLnZpc2libGVcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuXG4gICAgbGF5ZXJzLmZvckVhY2goKGxheWVyKSA9PiB7XG4gICAgICBjb25zdCBsYXllckZvdW5kID0gY3VycmVudENvbnRleHQubGF5ZXJzLmZpbmQoXG4gICAgICAgIChjb250ZXh0TGF5ZXIpID0+IHtcbiAgICAgICAgICBjb25zdCBzb3VyY2UgPSBjb250ZXh0TGF5ZXIuc291cmNlO1xuICAgICAgICAgIHJldHVybiBzb3VyY2UgJiYgbGF5ZXIuaWQgPT09IHNvdXJjZS5pZCAmJiAhY29udGV4dExheWVyLmJhc2VMYXllcjtcbiAgICAgICAgfSk7XG5cbiAgICAgIGlmIChsYXllckZvdW5kKSB7XG4gICAgICAgIGxldCBsYXllclN0eWxlID0gbGF5ZXJGb3VuZFtgc3R5bGVgXTtcbiAgICAgICAgaWYgKGxheWVyRm91bmRbYHN0eWxlQnlBdHRyaWJ1dGVgXSkge1xuICAgICAgICAgIGxheWVyU3R5bGUgPSB1bmRlZmluZWQ7XG4gICAgICAgIH0gZWxzZSBpZiAobGF5ZXJGb3VuZFtgY2x1c3RlckJhc2VTdHlsZWBdKSB7XG4gICAgICAgICAgbGF5ZXJTdHlsZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICBkZWxldGUgbGF5ZXJGb3VuZC5zb3VyY2VPcHRpb25zW2Bzb3VyY2VgXTtcbiAgICAgICAgICBkZWxldGUgbGF5ZXJGb3VuZC5zb3VyY2VPcHRpb25zW2Bmb3JtYXRgXTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBvcHRzID0ge1xuICAgICAgICAgIGJhc2VMYXllcjogbGF5ZXJGb3VuZC5iYXNlTGF5ZXIsXG4gICAgICAgICAgdGl0bGU6IGxheWVyLm9wdGlvbnMudGl0bGUsXG4gICAgICAgICAgekluZGV4OiBsYXllci56SW5kZXgsXG4gICAgICAgICAgc3R5bGVCeUF0dHJpYnV0ZTogbGF5ZXJGb3VuZFtgc3R5bGVCeUF0dHJpYnV0ZWBdLFxuICAgICAgICAgIGNsdXN0ZXJCYXNlU3R5bGU6IGxheWVyRm91bmRbYGNsdXN0ZXJCYXNlU3R5bGVgXSxcbiAgICAgICAgICBzdHlsZTogbGF5ZXJTdHlsZSxcbiAgICAgICAgICBjbHVzdGVyUGFyYW06IGxheWVyRm91bmRbYGNsdXN0ZXJQYXJhbWBdLFxuICAgICAgICAgIHZpc2libGU6IGxheWVyLnZpc2libGUsXG4gICAgICAgICAgb3BhY2l0eTogbGF5ZXIub3BhY2l0eSxcbiAgICAgICAgICBzb3VyY2VPcHRpb25zOiBsYXllckZvdW5kLnNvdXJjZU9wdGlvbnNcbiAgICAgICAgfTtcbiAgICAgICAgY29udGV4dC5sYXllcnMucHVzaChvcHRzKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmICghKGxheWVyLm9sLmdldFNvdXJjZSgpIGluc3RhbmNlb2Ygb2xWZWN0b3JTb3VyY2UpKSB7XG4gICAgICAgICAgY29uc3QgY2F0YWxvZ0xheWVyID0gbGF5ZXIub3B0aW9ucztcbiAgICAgICAgICBjYXRhbG9nTGF5ZXIuekluZGV4ID0gbGF5ZXIuekluZGV4O1xuICAgICAgICAgIGRlbGV0ZSBjYXRhbG9nTGF5ZXIuc291cmNlO1xuICAgICAgICAgIGNvbnRleHQubGF5ZXJzLnB1c2goY2F0YWxvZ0xheWVyKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBsZXQgZmVhdHVyZXM7XG4gICAgICAgICAgY29uc3Qgd3JpdGVyID0gbmV3IEdlb0pTT04oKTtcbiAgICAgICAgICBpZiAobGF5ZXIub2wuZ2V0U291cmNlKCkgaW5zdGFuY2VvZiBDbHVzdGVyKSB7XG4gICAgICAgICAgICBjb25zdCBjbHVzdGVyU291cmNlID0gbGF5ZXIub2wuZ2V0U291cmNlKCkgYXMgQ2x1c3RlcjtcbiAgICAgICAgICAgIGZlYXR1cmVzID0gd3JpdGVyLndyaXRlRmVhdHVyZXMoXG4gICAgICAgICAgICAgIGNsdXN0ZXJTb3VyY2UuZ2V0RmVhdHVyZXMoKSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGRhdGFQcm9qZWN0aW9uOiAnRVBTRzo0MzI2JyxcbiAgICAgICAgICAgICAgICBmZWF0dXJlUHJvamVjdGlvbjogJ0VQU0c6Mzg1NydcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3Qgc291cmNlID0gbGF5ZXIub2wuZ2V0U291cmNlKCkgYXMgYW55O1xuICAgICAgICAgICAgZmVhdHVyZXMgPSB3cml0ZXIud3JpdGVGZWF0dXJlcyhcbiAgICAgICAgICAgICAgc291cmNlLmdldEZlYXR1cmVzKCksXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBkYXRhUHJvamVjdGlvbjogJ0VQU0c6NDMyNicsXG4gICAgICAgICAgICAgICAgZmVhdHVyZVByb2plY3Rpb246ICdFUFNHOjM4NTcnXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGZlYXR1cmVzID0gSlNPTi5wYXJzZShmZWF0dXJlcyk7XG4gICAgICAgICAgZmVhdHVyZXMubmFtZSA9IGxheWVyLm9wdGlvbnMudGl0bGU7XG4gICAgICAgICAgY29udGV4dC5leHRyYUZlYXR1cmVzLnB1c2goZmVhdHVyZXMpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBjb250ZXh0LnRvb2xiYXIgPSB0aGlzLnRvb2xiYXI7XG4gICAgY29udGV4dC50b29scyA9IHRoaXMudG9vbHM7XG5cbiAgICByZXR1cm4gY29udGV4dDtcbiAgfVxuXG4gIHNldFRvb2xzKHRvb2xzOiBUb29sW10pIHtcbiAgICB0aGlzLnRvb2xzID0gdG9vbHM7XG4gIH1cblxuICBzZXRUb29sYmFyKHRvb2xiYXI6IHN0cmluZ1tdKSB7XG4gICAgdGhpcy50b29sYmFyID0gdG9vbGJhcjtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlQ29udGV4dE1lc3NhZ2UoY29udGV4dDogRGV0YWlsZWRDb250ZXh0KSB7XG4gICAgaWYgKHRoaXMuY29udGV4dCQudmFsdWUgJiYgY29udGV4dC51cmkgJiYgdGhpcy5jb250ZXh0JC52YWx1ZS51cmkgIT09IGNvbnRleHQudXJpKSB7XG4gICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLnJlbW92ZUFsbEFyZU5vdEVycm9yKCk7XG4gICAgfVxuXG4gICAgY29udGV4dC5tZXNzYWdlcyA9IGNvbnRleHQubWVzc2FnZXMgPyBjb250ZXh0Lm1lc3NhZ2VzIDogW107XG4gICAgY29udGV4dC5tZXNzYWdlcy5wdXNoKGNvbnRleHQubWVzc2FnZSk7XG4gICAgY29udGV4dC5tZXNzYWdlcy5tYXAobWVzc2FnZSA9PiB7XG4gICAgICBpZiAobWVzc2FnZSkge1xuICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLm1lc3NhZ2UobWVzc2FnZSBhcyBNZXNzYWdlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q29udGV4dEJ5VXJpKHVyaTogc3RyaW5nKTogT2JzZXJ2YWJsZTxEZXRhaWxlZENvbnRleHQ+IHtcbiAgICBpZiAodGhpcy5iYXNlVXJsKSB7XG4gICAgICBsZXQgY29udGV4dFRvTG9hZDtcbiAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHRoaXMuY29udGV4dHMkLnZhbHVlKSkge1xuICAgICAgICBjb250ZXh0VG9Mb2FkID0gdGhpcy5jb250ZXh0cyQudmFsdWVba2V5XS5maW5kKChjKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGMudXJpID09PSB1cmk7XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoY29udGV4dFRvTG9hZCkge1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChjb250ZXh0VG9Mb2FkICYmIGNvbnRleHRUb0xvYWQuaW1wb3J0ZWQpIHtcbiAgICAgICAgcmV0dXJuIG9mKGNvbnRleHRUb0xvYWQpO1xuICAgICAgfVxuXG4gICAgICAvLyBUT0RPIDogdXNlIGFsd2F5cyBpZCBvciB1cmlcbiAgICAgIGNvbnN0IGlkID0gY29udGV4dFRvTG9hZCA/IGNvbnRleHRUb0xvYWQuaWQgOiB1cmk7XG4gICAgICByZXR1cm4gdGhpcy5nZXREZXRhaWxzKGlkKTtcbiAgICB9XG5cbiAgICBjb25zdCBpbXBvcnRlZENvbnRleHQgPSB0aGlzLmNvbnRleHRzJC52YWx1ZS5vdXJzLmZpbmQoKGN1cnJlbnRDb250ZXh0KSA9PiB7XG4gICAgICByZXR1cm4gY3VycmVudENvbnRleHQudXJpID09PSB1cmkgJiYgY3VycmVudENvbnRleHQuaW1wb3J0ZWQgPT09IHRydWU7XG4gICAgfSk7XG5cbiAgICBpZiAoaW1wb3J0ZWRDb250ZXh0KSB7XG4gICAgICByZXR1cm4gb2YoaW1wb3J0ZWRDb250ZXh0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0TG9jYWxDb250ZXh0KHVyaSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0Q29udGV4dExheWVycyhpZ29NYXA6IElnb01hcCkge1xuICAgIGNvbnN0IGxheWVyczogTGF5ZXJbXSA9IFtdO1xuICAgIGNvbnN0IG1hcExheWVycyA9IGlnb01hcC5sYXllcnMkLmdldFZhbHVlKCk7XG4gICAgbWFwTGF5ZXJzLmZvckVhY2goKGxheWVyKSA9PiB7XG4gICAgICBpZiAoIWxheWVyLmJhc2VMYXllciAmJiBsYXllci5vcHRpb25zLmlkICE9PSAnc2VhcmNoUG9pbnRlclN1bW1hcnlJZCcpIHtcbiAgICAgICAgbGF5ZXJzLnB1c2gobGF5ZXIpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBsYXllcnM7XG4gIH1cblxuICBwcml2YXRlIHJlYWRQYXJhbXNGcm9tUm91dGUoKSB7XG4gICAgaWYgKCF0aGlzLnJvdXRlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5yb3V0ZS5xdWVyeVBhcmFtcy5zdWJzY3JpYmUoKHBhcmFtcykgPT4ge1xuICAgICAgY29uc3QgY2VudGVyS2V5ID0gdGhpcy5yb3V0ZS5vcHRpb25zLmNlbnRlcktleTtcbiAgICAgIGlmIChjZW50ZXJLZXkgJiYgcGFyYW1zW2NlbnRlcktleSBhcyBzdHJpbmddKSB7XG4gICAgICAgIGNvbnN0IGNlbnRlclBhcmFtcyA9IHBhcmFtc1tjZW50ZXJLZXkgYXMgc3RyaW5nXTtcbiAgICAgICAgdGhpcy5tYXBWaWV3RnJvbVJvdXRlLmNlbnRlciA9IGNlbnRlclBhcmFtcy5zcGxpdCgnLCcpLm1hcChOdW1iZXIpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBwcm9qZWN0aW9uS2V5ID0gdGhpcy5yb3V0ZS5vcHRpb25zLnByb2plY3Rpb25LZXk7XG4gICAgICBpZiAocHJvamVjdGlvbktleSAmJiBwYXJhbXNbcHJvamVjdGlvbktleSBhcyBzdHJpbmddKSB7XG4gICAgICAgIGNvbnN0IHByb2plY3Rpb25QYXJhbSA9IHBhcmFtc1twcm9qZWN0aW9uS2V5IGFzIHN0cmluZ107XG4gICAgICAgIHRoaXMubWFwVmlld0Zyb21Sb3V0ZS5wcm9qZWN0aW9uID0gcHJvamVjdGlvblBhcmFtO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB6b29tS2V5ID0gdGhpcy5yb3V0ZS5vcHRpb25zLnpvb21LZXk7XG4gICAgICBpZiAoem9vbUtleSAmJiBwYXJhbXNbem9vbUtleSBhcyBzdHJpbmddKSB7XG4gICAgICAgIGNvbnN0IHpvb21QYXJhbSA9IHBhcmFtc1t6b29tS2V5IGFzIHN0cmluZ107XG4gICAgICAgIHRoaXMubWFwVmlld0Zyb21Sb3V0ZS56b29tID0gTnVtYmVyKHpvb21QYXJhbSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldFBhdGgoZmlsZTogc3RyaW5nKSB7XG4gICAgY29uc3QgYmFzZVBhdGggPSB0aGlzLm9wdGlvbnMuYmFzZVBhdGgucmVwbGFjZSgvXFwvJC8sICcnKTtcblxuICAgIHJldHVybiBgJHtiYXNlUGF0aH0vJHtmaWxlfWA7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUVycm9yKFxuICAgIGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSxcbiAgICB1cmk6IHN0cmluZyxcbiAgICBwZXJtaXNzaW9uRXJyb3I/OiBib29sZWFuXG4gICkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmNvbnRleHRzJC52YWx1ZS5vdXJzLmZpbmQoKG9iaikgPT4gb2JqLnVyaSA9PT0gdXJpKTtcbiAgICBjb25zdCB0aXRsZUNvbnRleHQgPSBjb250ZXh0ID8gY29udGV4dC50aXRsZSA6IHVyaTtcbiAgICBlcnJvci5lcnJvci50aXRsZSA9IHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgJ2lnby5jb250ZXh0LmNvbnRleHRNYW5hZ2VyLmludmFsaWQudGl0bGUnXG4gICAgKTtcblxuICAgIGVycm9yLmVycm9yLm1lc3NhZ2UgPSB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudChcbiAgICAgICdpZ28uY29udGV4dC5jb250ZXh0TWFuYWdlci5pbnZhbGlkLnRleHQnLFxuICAgICAgeyB2YWx1ZTogdGl0bGVDb250ZXh0IH1cbiAgICApO1xuXG4gICAgZXJyb3IuZXJyb3IudG9EaXNwbGF5ID0gdHJ1ZTtcblxuICAgIGlmIChwZXJtaXNzaW9uRXJyb3IpIHtcbiAgICAgIGVycm9yLmVycm9yLnRpdGxlID0gdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICdpZ28uY29udGV4dC5jb250ZXh0TWFuYWdlci5lcnJvcnMuYWRkUGVybWlzc2lvblRpdGxlJ1xuICAgICAgKTtcbiAgICAgIGVycm9yLmVycm9yLm1lc3NhZ2UgPSB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudChcbiAgICAgICAgJ2lnby5jb250ZXh0LmNvbnRleHRNYW5hZ2VyLmVycm9ycy5hZGRQZXJtaXNzaW9uJ1xuICAgICAgKTtcbiAgICB9XG4gICAgdGhpcy5tZXNzYWdlU2VydmljZS5lcnJvcihlcnJvci5lcnJvci5tZXNzYWdlLCBlcnJvci5lcnJvci50aXRsZSk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUNvbnRleHRzQ2hhbmdlKFxuICAgIGtlZXBDdXJyZW50Q29udGV4dCA9IHRydWVcbiAgKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuY29udGV4dCQudmFsdWU7XG4gICAgY29uc3QgZWRpdGVkQ29udGV4dCA9IHRoaXMuZWRpdGVkQ29udGV4dCQudmFsdWU7XG4gICAgaWYgKCFjb250ZXh0IHx8IGNvbnRleHQudXJpID09PSB0aGlzLm9wdGlvbnMuZGVmYXVsdENvbnRleHRVcmkpIHtcbiAgICAgIGtlZXBDdXJyZW50Q29udGV4dCA9IGZhbHNlO1xuICAgIH1cbiAgICBpZiAoIWtlZXBDdXJyZW50Q29udGV4dCB8fCAhdGhpcy5maW5kQ29udGV4dChjb250ZXh0KSkge1xuICAgICAgdGhpcy5kZWZhdWx0Q29udGV4dFVyaSA9IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMubG9hZERlZmF1bHRDb250ZXh0KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZ2V0Q29udGV4dEJ5VXJpKGNvbnRleHQudXJpKVxuICAgICAgICAucGlwZShmaXJzdCgpKVxuICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgIChuZXdDb250ZXh0OiBEZXRhaWxlZENvbnRleHQpID0+IHtcbiAgICAgICAgICAgIHRoaXMudG9vbHNDaGFuZ2VkJC5uZXh0KG5ld0NvbnRleHQpO1xuICAgICAgICAgIH1cbiAgICAgICAgKTtcblxuICAgICAgaWYgKHRoaXMuYmFzZVVybCAmJiB0aGlzLmF1dGhTZXJ2aWNlLmF1dGhlbnRpY2F0ZWQpIHtcbiAgICAgICAgdGhpcy5nZXREZWZhdWx0KCkuc3Vic2NyaWJlKCk7XG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IGVkaXRlZEZvdW5kID0gdGhpcy5maW5kQ29udGV4dChlZGl0ZWRDb250ZXh0KTtcbiAgICBpZiAoIWVkaXRlZEZvdW5kIHx8IGVkaXRlZEZvdW5kLnBlcm1pc3Npb24gIT09ICd3cml0ZScpIHtcbiAgICAgIHRoaXMuc2V0RWRpdGVkQ29udGV4dCh1bmRlZmluZWQpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYWRkQ29udGV4dFRvTGlzdChjb250ZXh0OiBDb250ZXh0KSB7XG4gICAgY29uc3QgY29udGV4dEZvdW5kID0gdGhpcy5maW5kQ29udGV4dChjb250ZXh0KTtcbiAgICBpZiAoIWNvbnRleHRGb3VuZCkge1xuICAgICAgY29uc3QgY29udGV4dFNpbXBsaWZpZSA9IHtcbiAgICAgICAgaWQ6IGNvbnRleHQuaWQsXG4gICAgICAgIHVyaTogY29udGV4dC51cmksXG4gICAgICAgIHRpdGxlOiBjb250ZXh0LnRpdGxlLFxuICAgICAgICBzY29wZTogY29udGV4dC5zY29wZSxcbiAgICAgICAgcGVybWlzc2lvbjogVHlwZVBlcm1pc3Npb25bVHlwZVBlcm1pc3Npb24ucmVhZF1cbiAgICAgIH07XG5cbiAgICAgIGlmICh0aGlzLmNvbnRleHRzJC52YWx1ZSAmJiB0aGlzLmNvbnRleHRzJC52YWx1ZS5wdWJsaWMpIHtcbiAgICAgICAgdGhpcy5jb250ZXh0cyQudmFsdWUucHVibGljLnB1c2goY29udGV4dFNpbXBsaWZpZSk7XG4gICAgICAgIHRoaXMuY29udGV4dHMkLm5leHQodGhpcy5jb250ZXh0cyQudmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZmluZENvbnRleHQoY29udGV4dDogQ29udGV4dCkge1xuICAgIGlmICghY29udGV4dCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IGNvbnRleHRzID0gdGhpcy5jb250ZXh0cyQudmFsdWU7XG4gICAgbGV0IGZvdW5kO1xuICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKGNvbnRleHRzKSkge1xuICAgICAgY29uc3QgdmFsdWUgPSBjb250ZXh0c1trZXldO1xuICAgICAgZm91bmQgPSB2YWx1ZS5maW5kKFxuICAgICAgICAoYykgPT5cbiAgICAgICAgICAoY29udGV4dC5pZCAmJiBjLmlkID09PSBjb250ZXh0LmlkKSB8fFxuICAgICAgICAgIChjb250ZXh0LnVyaSAmJiBjLnVyaSA9PT0gY29udGV4dC51cmkpXG4gICAgICApO1xuICAgICAgaWYgKGZvdW5kKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBmb3VuZDtcbiAgfVxufVxuIl19
|
|
@@ -159,10 +159,10 @@ PoiButtonComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PoiButto
|
|
|
159
159
|
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(5, 5, "igo.context.poiButton.create"));
|
|
160
160
|
i0.ɵɵadvance(4);
|
|
161
161
|
i0.ɵɵproperty("ngForOf", ctx.pois);
|
|
162
|
-
} }, dependencies: [i6.NgForOf, i5.StopPropagationDirective, i7.MatIcon, i8.MatButton, i9.MatSelect, i10.MatOption, i11.TranslatePipe], styles: ["mat-select[_ngcontent-%COMP%]{width:150px;background-color:#fff;height:40px;padding-top:0}mat-select[_ngcontent-%COMP%] .mat-select-trigger{height:40px}mat-select[_ngcontent-%COMP%] .mat-select-value-text, mat-select[_ngcontent-%COMP%] .mat-select-placeholder{padding:5px;
|
|
162
|
+
} }, dependencies: [i6.NgForOf, i5.StopPropagationDirective, i7.MatIcon, i8.MatButton, i9.MatSelect, i10.MatOption, i11.TranslatePipe], styles: ["mat-select[_ngcontent-%COMP%]{width:150px;background-color:#fff;height:40px;padding-top:0}mat-select[_ngcontent-%COMP%] .mat-select-trigger{height:40px}mat-select[_ngcontent-%COMP%] .mat-select-value-text, mat-select[_ngcontent-%COMP%] .mat-select-placeholder{padding:5px;position:relative}.mat-option[_ngcontent-%COMP%]{text-overflow:inherit}.titlePoi[_ngcontent-%COMP%]{max-width:135px;overflow:hidden;text-overflow:ellipsis;float:left}.buttonPoi[_ngcontent-%COMP%]{float:right;margin:4px -10px 4px 0}.buttonPoi[_ngcontent-%COMP%] .mat-icon{margin:0 8px}"] });
|
|
163
163
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PoiButtonComponent, [{
|
|
164
164
|
type: Component,
|
|
165
|
-
args: [{ selector: 'igo-poi-button', template: "<mat-select [placeholder]=\"'igo.context.poiButton.placeholder' |\u00A0translate\"\n floatPlaceholder=\"never\">\n\n <mat-option (click)=\"createPoi()\">\n <div class=\"titlePoi\">{{ 'igo.context.poiButton.create' |\u00A0translate }}</div>\n <button igoStopPropagation class=\"addPoi buttonPoi\"\n mat-icon-button\n color=\"primary\"\n (click)=\"createPoi()\">\n <mat-icon svgIcon=\"plus-circle\"></mat-icon>\n </button>\n </mat-option>\n <mat-option *ngFor=\"let poi of pois\" [value]=\"poi.id\" (click)=\"zoomOnPoi(poi.id)\">\n <div class=\"titlePoi\">{{ poi.title }}</div>\n <button igoStopPropagation class=\"deletePoi buttonPoi\"\n mat-icon-button\n color=\"warn\"\n (click)=\"deletePoi(poi)\">\n <mat-icon svgIcon=\"delete\"></mat-icon>\n </button>\n </mat-option>\n</mat-select>\n", styles: ["mat-select{width:150px;background-color:#fff;height:40px;padding-top:0}mat-select ::ng-deep .mat-select-trigger{height:40px}mat-select ::ng-deep .mat-select-value-text,mat-select ::ng-deep .mat-select-placeholder{padding:5px;
|
|
165
|
+
args: [{ selector: 'igo-poi-button', template: "<mat-select [placeholder]=\"'igo.context.poiButton.placeholder' |\u00A0translate\"\n floatPlaceholder=\"never\">\n\n <mat-option (click)=\"createPoi()\">\n <div class=\"titlePoi\">{{ 'igo.context.poiButton.create' |\u00A0translate }}</div>\n <button igoStopPropagation class=\"addPoi buttonPoi\"\n mat-icon-button\n color=\"primary\"\n (click)=\"createPoi()\">\n <mat-icon svgIcon=\"plus-circle\"></mat-icon>\n </button>\n </mat-option>\n <mat-option *ngFor=\"let poi of pois\" [value]=\"poi.id\" (click)=\"zoomOnPoi(poi.id)\">\n <div class=\"titlePoi\">{{ poi.title }}</div>\n <button igoStopPropagation class=\"deletePoi buttonPoi\"\n mat-icon-button\n color=\"warn\"\n (click)=\"deletePoi(poi)\">\n <mat-icon svgIcon=\"delete\"></mat-icon>\n </button>\n </mat-option>\n</mat-select>\n", styles: ["mat-select{width:150px;background-color:#fff;height:40px;padding-top:0}mat-select ::ng-deep .mat-select-trigger{height:40px}mat-select ::ng-deep .mat-select-value-text,mat-select ::ng-deep .mat-select-placeholder{padding:5px;position:relative}.mat-option{text-overflow:inherit}.titlePoi{max-width:135px;overflow:hidden;text-overflow:ellipsis;float:left}.buttonPoi{float:right;margin:4px -10px 4px 0}.buttonPoi ::ng-deep .mat-icon{margin:0 8px}\n"] }]
|
|
166
166
|
}], function () { return [{ type: i1.MatDialog }, { type: i2.AuthService }, { type: i3.PoiService }, { type: i4.MessageService }, { type: i4.LanguageService }, { type: i5.ConfirmDialogService }]; }, { map: [{
|
|
167
167
|
type: Input
|
|
168
168
|
}], color: [{
|