fabrikantencore 2.21.2 → 2.21.3

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.
@@ -177,6 +177,19 @@ class FabActionmenuComponent {
177
177
  window.open(customdownload.fileName, '_blank');
178
178
  }
179
179
  Download(downloaditem, custombcbeboid) {
180
+ var downloads = this.FabrikantenService.FabrikantenSettingsViewModel.downloadCategories;
181
+ if (downloads != null) {
182
+ for (var i = 0; i < downloads.length; i++) {
183
+ var items = downloads[i].items;
184
+ if (items != null) {
185
+ for (var j = 0; j < items.length; j++) {
186
+ if (items[j].loading) {
187
+ return;
188
+ }
189
+ }
190
+ }
191
+ }
192
+ }
180
193
  this.FabrikantenService.Download(downloaditem, custombcbeboid);
181
194
  }
182
195
  RefreshSnede() {
@@ -199,4 +212,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
199
212
  }], ctorParameters: function () { return [{ type: i1.MobileService }, { type: i2.FabrikantenService }, { type: i3.TranslateService }, { type: i4.BestekService }, { type: i5.TextureService }, { type: i6.SVGService }, { type: i7.MatLegacyDialog }, { type: i8.WebGLService }, { type: i9.ToebehorenService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { display: [{
200
213
  type: Input
201
214
  }] } });
202
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFiLWFjdGlvbm1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL2ZhYnJpa2FudGVuY29yZS9jb21wb25lbnRzL2ZhYi1hY3Rpb25tZW51L2ZhYi1hY3Rpb25tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9mYWJyaWthbnRlbmNvcmUvY29tcG9uZW50cy9mYWItYWN0aW9ubWVudS9mYWItYWN0aW9ubWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFVdkYsT0FBTyxFQUFpSCxtQkFBbUIsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3pNLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRXRGLE1BTWEsc0JBQXNCO0lBWWQ7SUFDVjtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFuQlQsSUFBVyxtQkFBbUI7UUFDNUIsT0FBTyxtQkFBbUIsQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBVyxzQkFBc0I7UUFDL0IsT0FBTyxzQkFBc0IsQ0FBQztJQUNoQyxDQUFDO0lBRVEsT0FBTyxDQUFTO0lBRXpCLFlBQW1CLGFBQTRCLEVBQ3RDLGtCQUFzQyxFQUN0QyxnQkFBa0MsRUFDbEMsYUFBNEIsRUFDNUIsY0FBOEIsRUFDOUIsVUFBc0IsRUFDdEIsTUFBaUIsRUFDakIsWUFBMEIsRUFDMUIsaUJBQW9DLEVBQ3BDLGlCQUFvQztRQVQxQixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUN0Qyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLHFCQUFnQixH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QUMsU0FBUyxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1NBQzdIO0lBQ0gsQ0FBQzt3R0FuTVUsc0JBQXNCOzRGQUF0QixzQkFBc0IsMEZDbkJuQywrK1lBb09BOztTRGpOYSxzQkFBc0I7NEZBQXRCLHNCQUFzQjtrQkFObEMsU0FBUzsrQkFDRSxvQkFBb0IsaUJBR2YsaUJBQWlCLENBQUMsSUFBSTsrV0FZNUIsT0FBTztzQkFBZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSW5wdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdExlZ2FjeURpYWxvZyBhcyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9sZWdhY3ktZGlhbG9nJztcclxuaW1wb3J0IHsgQmVzdGVrU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2Jlc3Rlay5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRmFicmlrYW50ZW5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZmFicmlrYW50ZW4uc2VydmljZSc7XHJcbmltcG9ydCB7IE1vYmlsZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9tb2JpbGUuc2VydmljZSc7XHJcbmltcG9ydCB7IFNWR1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zdmcuc2VydmljZSc7XHJcbmltcG9ydCB7IFRleHR1cmVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdGV4dHVyZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVG9lYmVob3JlblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90b2ViZWhvcmVuLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdHJhbnNsYXRlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBXZWJHTFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy93ZWJnbC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRmFicmlrYW50ZW5DdXN0b21Eb3dubG9hZFZpZXdNb2RlbCwgRmFicmlrYW50ZW5QREZUZW1wbGF0ZVZpZXdNb2RlbCwgRmFicmlrYW50ZW5TZXR0aW5nc0Rvd25sb2FkSXRlbVZpZXdNb2RlbCwgVHJhbnNsYXRpb25DYXRlZ29yeSwgVHJhbnNsYXRpb25TdWJDYXRlZ29yeSB9IGZyb20gJy4uLy4uL3N3YWdnZXIvU3dhZ2dlckNsaWVudCc7XHJcbmltcG9ydCB7IEZhYkZvcm1EaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi9mYWItZm9ybS1kaWFsb2cvZmFiLWZvcm0tZGlhbG9nLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1mYWItYWN0aW9ubWVudScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2ZhYi1hY3Rpb25tZW51LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9mYWItYWN0aW9ubWVudS5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIEZhYkFjdGlvbm1lbnVDb21wb25lbnQge1xyXG5cclxuICBwdWJsaWMgZ2V0IFRyYW5zbGF0aW9uQ2F0ZWdvcnkoKSB7XHJcbiAgICByZXR1cm4gVHJhbnNsYXRpb25DYXRlZ29yeTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgVHJhbnNsYXRpb25TdWJDYXRlZ29yeSgpIHtcclxuICAgIHJldHVybiBUcmFuc2xhdGlvblN1YkNhdGVnb3J5O1xyXG4gIH1cclxuXHJcbiAgQElucHV0KCkgZGlzcGxheTogc3RyaW5nO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgTW9iaWxlU2VydmljZTogTW9iaWxlU2VydmljZSxcclxuICAgIHB1YmxpYyBGYWJyaWthbnRlblNlcnZpY2U6IEZhYnJpa2FudGVuU2VydmljZSxcclxuICAgIHB1YmxpYyBUcmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgcHVibGljIEJlc3Rla1NlcnZpY2U6IEJlc3Rla1NlcnZpY2UsXHJcbiAgICBwdWJsaWMgVGV4dHVyZVNlcnZpY2U6IFRleHR1cmVTZXJ2aWNlLFxyXG4gICAgcHVibGljIFNWR1NlcnZpY2U6IFNWR1NlcnZpY2UsXHJcbiAgICBwdWJsaWMgZGlhbG9nOiBNYXREaWFsb2csXHJcbiAgICBwdWJsaWMgV2ViR0xTZXJ2aWNlOiBXZWJHTFNlcnZpY2UsXHJcbiAgICBwdWJsaWMgVG9lYmVob3JlblNlcnZpY2U6IFRvZWJlaG9yZW5TZXJ2aWNlLFxyXG4gICAgcHVibGljIENoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge1xyXG4gIH1cclxuXHJcbiAgcHVibGljIE9wZW5MaW5rKHVybDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB3aW5kb3cub3Blbih1cmwsIFwiX2JsYW5rXCIpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIFNob3dEb3dubG9hZENhdGVnb3J5KG5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZGlzcGxheSA9PSBuYW1lO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIFNob3czREJ1dHRvbnMoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5kaXNwbGF5ID09IFwiM0RcIjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBTaG93MkRCdXR0b25zKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZGlzcGxheSA9PSBcIjJEXCI7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgU2hvd0Jlc3Rla0J1dHRvbnMoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5kaXNwbGF5ID09IFwiQmVzdGVrXCI7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgU2hvd0F1dG9TcGVjaWZpY2F0aW9uQnV0dG9ucygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmRpc3BsYXkgPT0gXCJBdXRvU3BlY2lmaWNhdGlvblwiO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIFNob3dUZXh0dXJlQnV0dG9ucygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmRpc3BsYXkgPT0gXCJUZXh0dXJlXCI7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgU2hvd1RvZWJlaG9yZW5CdXR0b25zKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZGlzcGxheSA9PSBcIlRvZWJlaG9yZW5cIjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBTaG93QkNCQnV0dG9uKCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHRoaXMuZGlzcGxheSA9PSBcIkF1dG9TcGVjaWZpY2F0aW9uXCIpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLkZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblNldHRpbmdzVmlld01vZGVsPy5zaG93QkNCQnV0dG9uID09IHRydWUpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIERvd25sb2FkQmVzdGVrKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuQmVzdGVrU2VydmljZS5UeXBlQmVzdGVrID09IFwiU1RBQlVcIiAmJiB0aGlzLkJlc3Rla1NlcnZpY2UuRmFicmlrYW50ZW5CZXN0ZWtWaWV3TW9kZWwuc3VmICE9IG51bGwpIHtcclxuICAgICAgdGhpcy5GYWJyaWthbnRlblNlcnZpY2UuRG93bmxvYWRCZXN0ZWsodGhpcy5CZXN0ZWtTZXJ2aWNlLkZhYnJpa2FudGVuQmVzdGVrVmlld01vZGVsLnN1Zik7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICh0aGlzLkJlc3Rla1NlcnZpY2UuVHlwZUJlc3RlayA9PSBcIlZyaWpcIiAmJiB0aGlzLkJlc3Rla1NlcnZpY2UuZmFiUHJvZHVjdEJlc3RlayAhPSBudWxsKSB7XHJcbiAgICAgIHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLkRvd25sb2FkQmVzdGVrKHRoaXMuQmVzdGVrU2VydmljZS5mYWJQcm9kdWN0QmVzdGVrLm5hdGl2ZUVsZW1lbnQuaW5uZXJUZXh0KTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBhbGVydChcIkVycm9yOiB1bmFibGVkIHRvIGRvd25sb2FkIHNwZWNpZmljYXRpb25zXCIpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIERvd25sb2FkQXV0b1NwZWNpZmljYXRpb24oKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5CZXN0ZWtTZXJ2aWNlLmZhYlByb2R1Y3RBdXRvU3BlY2lmY2F0aW9uICE9IG51bGwpIHtcclxuICAgICAgdGhpcy5CZXN0ZWtTZXJ2aWNlLlR5cGVCZXN0ZWsgPSBcIkF1dG9TcGVjaWZpY2F0aW9uXCI7XHJcbiAgICAgIHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLkRvd25sb2FkQmVzdGVrKHRoaXMuQmVzdGVrU2VydmljZS5mYWJQcm9kdWN0QXV0b1NwZWNpZmNhdGlvbi5uYXRpdmVFbGVtZW50LmlubmVyVGV4dCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgYWxlcnQoXCJFcnJvcjogdW5hYmxlZCB0byBkb3dubG9hZCBzcGVjaWZpY2F0aW9uc1wiKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBDb3B5VG9DbGlwQm9hcmQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5CZXN0ZWtTZXJ2aWNlLmZhYlByb2R1Y3RCZXN0ZWsgIT0gbnVsbCkge1xyXG4gICAgICB0aGlzLkJlc3Rla1NlcnZpY2UuQ29weVRvQ2xpcGJvYXJkKHRoaXMuQmVzdGVrU2VydmljZS5mYWJQcm9kdWN0QmVzdGVrLm5hdGl2ZUVsZW1lbnQuaW5uZXJUZXh0KTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBhbGVydChcIkVycm9yOiB1bmFibGVkIHRvIGNvcHkgc3BlY2lmaWNhdGlvbnNcIik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgQ29weVRvQ2xpcEJvYXJkU1VGKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuQmVzdGVrU2VydmljZS5GYWJyaWthbnRlbkJlc3Rla1ZpZXdNb2RlbC5zdWYgIT0gbnVsbCkge1xyXG4gICAgICB0aGlzLkJlc3Rla1NlcnZpY2UuQ29weVRvQ2xpcGJvYXJkKHRoaXMuQmVzdGVrU2VydmljZS5GYWJyaWthbnRlbkJlc3Rla1ZpZXdNb2RlbC5zdWYpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIGFsZXJ0KFwiRXJyb3I6IHVuYWJsZWQgdG8gY29weSBzcGVjaWZpY2F0aW9uc1wiKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBDb3B5VG9DbGlwQm9hcmRBdXRvU3BlY2lmaWNhdGlvbigpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLkJlc3Rla1NlcnZpY2UuZmFiUHJvZHVjdEF1dG9TcGVjaWZjYXRpb24gIT0gbnVsbCkge1xyXG4gICAgICB0aGlzLkJlc3Rla1NlcnZpY2UuQ29weVRvQ2xpcGJvYXJkKHRoaXMuQmVzdGVrU2VydmljZS5mYWJQcm9kdWN0QXV0b1NwZWNpZmNhdGlvbi5uYXRpdmVFbGVtZW50LmlubmVyVGV4dCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgYWxlcnQoXCJFcnJvcjogdW5hYmxlZCB0byBjb3B5IHNwZWNpZmljYXRpb25zXCIpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIFNob3dCZXN0ZWtTZWxlY3QoKTogYm9vbGVhbiB7XHJcbiAgICBpZiAodGhpcy5TaG93VnJpaigpKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBTaG93U1RBQlUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5CZXN0ZWtTZXJ2aWNlLkZhYnJpa2FudGVuQmVzdGVrVmlld01vZGVsPy5zdGFidSAhPSAnJyAmJiB0aGlzLkJlc3Rla1NlcnZpY2UuRmFicmlrYW50ZW5CZXN0ZWtWaWV3TW9kZWw/LnN0YWJ1ICE9IHVuZGVmaW5lZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBTaG93U1VGKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuQmVzdGVrU2VydmljZS5GYWJyaWthbnRlbkJlc3Rla1ZpZXdNb2RlbD8uc3VmICE9ICcnICYmIHRoaXMuQmVzdGVrU2VydmljZS5GYWJyaWthbnRlbkJlc3Rla1ZpZXdNb2RlbD8uc3VmICE9IHVuZGVmaW5lZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBTaG93T1NGKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuQmVzdGVrU2VydmljZS5GYWJyaWthbnRlbkJlc3Rla1ZpZXdNb2RlbD8ub3NmaHRtbCAhPSAnJyAmJiB0aGlzLkJlc3Rla1NlcnZpY2UuRmFicmlrYW50ZW5CZXN0ZWtWaWV3TW9kZWw/Lm9zZmh0bWwgIT0gdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIFNob3dWcmlqKCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuU2V0dGluZ3NWaWV3TW9kZWw/LmVuYWJsZVZyaWplQmVzdGVrVGVrc3QgPT0gZmFsc2UpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLkJlc3Rla1NlcnZpY2UuRmFicmlrYW50ZW5CZXN0ZWtWaWV3TW9kZWw/LnZyaWpCZXN0ZWtIVE1MICE9ICcnICYmIHRoaXMuQmVzdGVrU2VydmljZS5GYWJyaWthbnRlbkJlc3Rla1ZpZXdNb2RlbD8udnJpakJlc3Rla0hUTUwgIT0gdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIE9wZW5CQ0JMaW5rKCk6IHZvaWQge1xyXG4gICAgdGhpcy5GYWJyaWthbnRlblNlcnZpY2UuT3BlbkJDQkxpbmsoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBEb3dubG9hZFBERlRlbXBsYXRlKHRlbXBsYXRlOiBGYWJyaWthbnRlblBERlRlbXBsYXRlVmlld01vZGVsKTogdm9pZCB7XHJcblxyXG4gICAgaWYgKHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuU2V0dGluZ3NWaWV3TW9kZWwuZG93bmxvYWRGb3JtRW5hYmxlZCAmJiAhdGhpcy5GYWJyaWthbnRlblNlcnZpY2UuRmFicmlrYW50ZW5WaWV3TW9kZWwuaGFzRmlsbGVkRm9ybXMpIHtcclxuICAgICAgdmFyIGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oRmFiRm9ybURpYWxvZ0NvbXBvbmVudCwge1xyXG4gICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgIGZvcm06IHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuU2V0dGluZ3NWaWV3TW9kZWwuZG93bmxvYWRGb3JtXHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuVmlld01vZGVsLmhhc0ZpbGxlZEZvcm1zKSB7XHJcbiAgICAgICAgICB0aGlzLkRvd25sb2FkUERGVGVtcGxhdGUodGVtcGxhdGUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdmFyIHVybCA9IFwiL0Rvd25sb2FkL0NyZWF0ZVBERj9wTGFuZ3VhZ2VJZD1cIiArIHRoaXMuVHJhbnNsYXRlU2VydmljZS5BY3RpdmVMYW5ndWFnZS5pZDtcclxuICAgICAgdXJsICs9IFwiJnBQREZUZW1wbGF0ZUlkPVwiICsgdGVtcGxhdGUudGVtcGxhdGVJZDtcclxuICAgICAgdXJsICs9IFwiJnBTZXNzaW9uSWQ9XCIgKyB0aGlzLkZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblZpZXdNb2RlbC5zZXNzaW9uSWQ7XHJcblxyXG4gICAgICB3aW5kb3cub3Blbih1cmwsIFwiX2JsYW5rXCIpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIERvd25sb2FkQ3VzdG9tKGN1c3RvbWRvd25sb2FkOiBGYWJyaWthbnRlbkN1c3RvbURvd25sb2FkVmlld01vZGVsKTogdm9pZCB7XHJcbiAgICB0aGlzLkZhYnJpa2FudGVuU2VydmljZS5Eb3dubG9hZEN1c3RvbShjdXN0b21kb3dubG9hZCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgT3BlblBERihjdXN0b21kb3dubG9hZDogRmFicmlrYW50ZW5DdXN0b21Eb3dubG9hZFZpZXdNb2RlbCk6IHZvaWQge1xyXG4gICAgd2luZG93Lm9wZW4oY3VzdG9tZG93bmxvYWQuZmlsZU5hbWUsICdfYmxhbmsnKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBEb3dubG9hZChkb3dubG9hZGl0ZW06IEZhYnJpa2FudGVuU2V0dGluZ3NEb3dubG9hZEl0ZW1WaWV3TW9kZWwsIGN1c3RvbWJjYmVib2lkOiBudW1iZXIgfCB1bmRlZmluZWQpOiB2b2lkIHtcclxuICAgICAgdGhpcy5GYWJyaWthbnRlblNlcnZpY2UuRG93bmxvYWQoZG93bmxvYWRpdGVtLCBjdXN0b21iY2JlYm9pZCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgUmVmcmVzaFNuZWRlKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlPy5GYWJyaWthbnRlblZpZXdNb2RlbD8uc2Vzc2lvbklkICE9IG51bGwpIHtcclxuICAgICAgdGhpcy5TVkdTZXJ2aWNlLkxvYWRGYWJyaWthbnRlblNWR1ZpZXdNb2RlbCh0aGlzLkZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblZpZXdNb2RlbC5zZXNzaW9uSWQsIHRoaXMuQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIFJlZnJlc2hTY2hhYWwoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5GYWJyaWthbnRlblNlcnZpY2U/LkZhYnJpa2FudGVuVmlld01vZGVsPy5zZXNzaW9uSWQgIT0gbnVsbCkge1xyXG4gICAgICB0aGlzLlNWR1NlcnZpY2UuTG9hZEZhYnJpa2FudGVuU1ZHVmlld01vZGVsKHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuVmlld01vZGVsLnNlc3Npb25JZCwgdGhpcy5DaGFuZ2VEZXRlY3RvclJlZik7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJGYWJyaWthbnRlblNlcnZpY2UuRmFicmlrYW50ZW5TZXR0aW5nc1ZpZXdNb2RlbCAhPSBudWxsXCI+XHJcbiAgPGRpdiBjbGFzcz1cImNvbHVtblwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIlNob3cyREJ1dHRvbnMoKVwiPlxyXG4gICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIj5cclxuICAgICAgICA8bWF0LWxhYmVsIGNsYXNzPVwic2VsZWN0LW1hdC1sYWJlbFwiPnt7IFRyYW5zbGF0ZVNlcnZpY2UuR2V0QWN0aXZlVmFsdWUoVHJhbnNsYXRpb25DYXRlZ29yeS5Db21tb24sIFRyYW5zbGF0aW9uU3ViQ2F0ZWdvcnkuU25lZGUpIH19PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgPG1hdC1zZWxlY3QgWyhuZ01vZGVsKV09XCJTVkdTZXJ2aWNlLlNuZWRlXCIgKHNlbGVjdGlvbkNoYW5nZSk9XCJSZWZyZXNoU25lZGUoKVwiPlxyXG4gICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IHNuZWRlIG9mIFNWR1NlcnZpY2UuU25lZGVzXCIgW3ZhbHVlXT1cInNuZWRlXCI+XHJcbiAgICAgICAgICAgIHt7IFRyYW5zbGF0ZVNlcnZpY2UuR2V0QWN0aXZlVmFsdWUoVHJhbnNsYXRpb25DYXRlZ29yeS5Db21tb24sIFRyYW5zbGF0aW9uU3ViQ2F0ZWdvcnkuU25lZGVJdGVtLCBudWxsLCBzbmVkZSkgfX1cclxuICAgICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiPlxyXG4gICAgICAgIDxtYXQtbGFiZWwgY2xhc3M9XCJzZWxlY3QtbWF0LWxhYmVsXCI+e3sgVHJhbnNsYXRlU2VydmljZS5HZXRBY3RpdmVWYWx1ZShUcmFuc2xhdGlvbkNhdGVnb3J5LkNvbW1vbiwgVHJhbnNsYXRpb25TdWJDYXRlZ29yeS5TY2hhYWwpIH19PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgPG1hdC1zZWxlY3QgWyhuZ01vZGVsKV09XCJTVkdTZXJ2aWNlLlNjaGFhbFwiIChzZWxlY3Rpb25DaGFuZ2UpPVwiUmVmcmVzaFNjaGFhbCgpXCI+XHJcbiAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwiJzAnXCI+MToxPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cIicxJ1wiPjE6MjwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCInMidcIj4xOjU8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwiJzMnXCI+MToxMDwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCInNCdcIj4xOjIwPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cIic1J1wiPjE6NTA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwiJzYnXCI+MToxMDA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwiJzcnXCI+MToyMDA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwiJzgnXCI+MTo1MDA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwiJzknXCI+MToxMDAwPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cIicxMCdcIj4xOjIwMDA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwiJzExJ1wiPjE6NTAwMDwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCInMTInXCI+MToxMDAwMDwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCInMTMnXCI+MToyMDAwMDwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCInMTQnXCI+MTo1MDAwMDwvbWF0LW9wdGlvbj5cclxuICAgICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiU2hvd0Jlc3Rla0J1dHRvbnMoKVwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiU2hvd0Jlc3Rla1NlbGVjdCgpXCI+XHJcbiAgICAgICAgPG1hdC1idXR0b24tdG9nZ2xlLWdyb3VwIFt2YWx1ZV09XCJCZXN0ZWtTZXJ2aWNlLlR5cGVCZXN0ZWtcIiAoY2hhbmdlKT1cIkJlc3Rla1NlcnZpY2UuVHlwZUJlc3RlayA9ICRldmVudC5zb3VyY2UudmFsdWVcIiBhcHBlYXJhbmNlPVwibGVnYWN5XCI+XHJcbiAgICAgICAgICA8bWF0LWJ1dHRvbi10b2dnbGUgKm5nSWY9XCJTaG93U1RBQlUoKVwiIHZhbHVlPVwiU1RBQlVcIj57eyBUcmFuc2xhdGVTZXJ2aWNlLkdldEFjdGl2ZVZhbHVlKFRyYW5zbGF0aW9uQ2F0ZWdvcnkuQ29tbW9uLCBUcmFuc2xhdGlvblN1YkNhdGVnb3J5LlNUQUJVKSB9fTwvbWF0LWJ1dHRvbi10b2dnbGU+XHJcbiAgICAgICAgICA8bWF0LWJ1dHRvbi10b2dnbGUgKm5nSWY9XCJTaG93T1NGKClcIiB2YWx1ZT1cIk9TRlwiPnt7IFRyYW5zbGF0ZVNlcnZpY2UuR2V0QWN0aXZlVmFsdWUoVHJhbnNsYXRpb25DYXRlZ29yeS5Db21tb24sIFRyYW5zbGF0aW9uU3ViQ2F0ZWdvcnkuT1NGKSB9fTwvbWF0LWJ1dHRvbi10b2dnbGU+XHJcbiAgICAgICAgICA8bWF0LWJ1dHRvbi10b2dnbGUgKm5nSWY9XCJTaG93VnJpaigpXCIgdmFsdWU9XCJWcmlqXCI+e3sgVHJhbnNsYXRlU2VydmljZS5HZXRBY3RpdmVWYWx1ZShUcmFuc2xhdGlvbkNhdGVnb3J5LkNvbW1vbiwgVHJhbnNsYXRpb25TdWJDYXRlZ29yeS5TcGVjaWZpY2F0aW9uVGV4dCkgfX08L21hdC1idXR0b24tdG9nZ2xlPlxyXG4gICAgICAgIDwvbWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXA+XHJcbiAgICAgICAgPGRpdj5cclxuICAgICAgICAgICZuYnNwO1xyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgIDxidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uIGNsYXNzPVwidG9vbGJhci1idXR0b24gY29weS1idXR0b25cIiAoY2xpY2spPVwiQ29weVRvQ2xpcEJvYXJkKClcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93LWljb25cIj5cclxuICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiaWNvbiBjb250ZW50X2NvcHlcIj5jb250ZW50X2NvcHk8L21hdC1pY29uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93LXRpdGxlXCI+XHJcbiAgICAgICAgICAgIHt7IFRyYW5zbGF0ZVNlcnZpY2UuR2V0QWN0aXZlVmFsdWUoVHJhbnNsYXRpb25DYXRlZ29yeS5Db21tb24sIFRyYW5zbGF0aW9uU3ViQ2F0ZWdvcnkuQ2xpcGJvYXJkKSB9fVxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiBjbGFzcz1cInRvb2xiYXItYnV0dG9uIGNvcHktc3VmLWJ1dHRvblwiIChjbGljayk9XCJDb3B5VG9DbGlwQm9hcmRTVUYoKVwiICpuZ0lmPVwiQmVzdGVrU2VydmljZS5UeXBlQmVzdGVrID09ICdTVEFCVSdcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93LWljb25cIj5cclxuICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiaWNvbiBjb250ZW50X2NvcHlcIj5jb250ZW50X2NvcHk8L21hdC1pY29uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93LXRpdGxlXCI+XHJcbiAgICAgICAgICAgIHt7IFRyYW5zbGF0ZVNlcnZpY2UuR2V0QWN0aXZlVmFsdWUoVHJhbnNsYXRpb25DYXRlZ29yeS5Db21tb24sIFRyYW5zbGF0aW9uU3ViQ2F0ZWdvcnkuQ2xpcGJvYXJkU1VGKSB9fVxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiBjbGFzcz1cInRvb2xiYXItYnV0dG9uIGRvd25sb2FkLWJlc3Rlay1idXR0b25cIiAoY2xpY2spPVwiRG93bmxvYWRCZXN0ZWsoKVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3ctaWNvblwiPlxyXG4gICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJpY29uIGZpbGVfZG93bmxvYWRcIj5maWxlX2Rvd25sb2FkPC9tYXQtaWNvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvdy10aXRsZVwiPlxyXG4gICAgICAgICAgICB7eyBUcmFuc2xhdGVTZXJ2aWNlLkdldEFjdGl2ZVZhbHVlKFRyYW5zbGF0aW9uQ2F0ZWdvcnkuQ29tbW9uLCBUcmFuc2xhdGlvblN1YkNhdGVnb3J5LkRvd25sb2FkKSB9fVxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIlNob3dBdXRvU3BlY2lmaWNhdGlvbkJ1dHRvbnMoKVwiPlxyXG4gICAgICA8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiBjbGFzcz1cInRvb2xiYXItYnV0dG9uIGNvcHktYnV0dG9uXCIgKGNsaWNrKT1cIkNvcHlUb0NsaXBCb2FyZEF1dG9TcGVjaWZpY2F0aW9uKClcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93LWljb25cIj5cclxuICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiaWNvbiBjb250ZW50X2NvcHlcIj5jb250ZW50X2NvcHk8L21hdC1pY29uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93LXRpdGxlXCI+XHJcbiAgICAgICAgICAgIHt7IFRyYW5zbGF0ZVNlcnZpY2UuR2V0QWN0aXZlVmFsdWUoVHJhbnNsYXRpb25DYXRlZ29yeS5Db21tb24sIFRyYW5zbGF0aW9uU3ViQ2F0ZWdvcnkuQ2xpcGJvYXJkKSB9fVxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiBjbGFzcz1cInRvb2xiYXItYnV0dG9uIGRvd25sb2FkLWJlc3Rlay1idXR0b25cIiAoY2xpY2spPVwiRG93bmxvYWRBdXRvU3BlY2lmaWNhdGlvbigpXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvdy1pY29uXCI+XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImljb24gZmlsZV9kb3dubG9hZFwiPmZpbGVfZG93bmxvYWQ8L21hdC1pY29uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93LXRpdGxlXCI+XHJcbiAgICAgICAgICAgIHt7IFRyYW5zbGF0ZVNlcnZpY2UuR2V0QWN0aXZlVmFsdWUoVHJhbnNsYXRpb25DYXRlZ29yeS5Db21tb24sIFRyYW5zbGF0aW9uU3ViQ2F0ZWdvcnkuRG93bmxvYWQpIH19XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiU2hvd1RvZWJlaG9yZW5CdXR0b25zKClcIj5cclxuICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCI+XHJcbiAgICAgICAgPG1hdC1sYWJlbCBjbGFzcz1cInNlbGVjdC1tYXQtbGFiZWxcIj5Ub2ViZWhvcmVuPC9tYXQtbGFiZWw+XHJcbiAgICAgICAgPG1hdC1zZWxlY3QgWyhuZ01vZGVsKV09XCJGYWJyaWthbnRlblNlcnZpY2UuU2VsZWN0ZWRUb2ViZWhvcmVuXCIgKHNlbGVjdGlvbkNoYW5nZSk9XCJUb2ViZWhvcmVuU2VydmljZS5PcGVuVG9lYmVob3Jlbih0aGlzLkNoYW5nZURldGVjdG9yUmVmKVwiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBGYWJyaWthbnRlblNlcnZpY2UuRmFicmlrYW50ZW5WaWV3TW9kZWwuc2VsZWN0ZWRQcm9kdWN0LmZhYnJpa2FudGVuQkNCUHJvZHVjdFZpZXdNb2RlbHNbMF0uYmNiUHJvZHVjdFRvZWJlaG9yZW5cIj5cclxuICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nSWY9XCIhaXRlbS5iY2JQcm9kdWN0XCIgW3ZhbHVlXT1cIml0ZW1cIj5cclxuICAgICAgICAgICAgICB7eyBUcmFuc2xhdGVTZXJ2aWNlLkdldEFjdGl2ZVZhbHVlKFRyYW5zbGF0aW9uQ2F0ZWdvcnkuVG9lYmVob3JlbiwgVHJhbnNsYXRpb25TdWJDYXRlZ29yeS5OYW1lLCBpdGVtLmlkKSB9fVxyXG4gICAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0lmPVwiaXRlbS5iY2JQcm9kdWN0XCIgW3ZhbHVlXT1cIml0ZW1cIj5cclxuICAgICAgICAgICAgICB7eyBpdGVtLm5hbWUgfX1cclxuICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZG93bmxvYWRjYXRlZ29yeSBvZiBGYWJyaWthbnRlblNlcnZpY2UuRmFicmlrYW50ZW5TZXR0aW5nc1ZpZXdNb2RlbC5kb3dubG9hZENhdGVnb3JpZXNcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIlNob3dEb3dubG9hZENhdGVnb3J5KGRvd25sb2FkY2F0ZWdvcnkubmFtZSlcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBkb3dubG9hZGl0ZW0gb2YgZG93bmxvYWRjYXRlZ29yeS5pdGVtc1wiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRvd25sb2FkY2F0ZWdvcnkubmFtZSA9PSAnVG9lYmVob3JlbidcIj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gY2xhc3M9XCJ0b29sYmFyLWJ1dHRvblwiIFtuZ0NsYXNzXT1cImRvd25sb2FkaXRlbS5maWxlVHlwZSArICctYnV0dG9uJ1wiIChjbGljayk9XCJEb3dubG9hZChkb3dubG9hZGl0ZW0sIEZhYnJpa2FudGVuU2VydmljZS5HZXRTZWxlY3RlZFRvZWJlaG9yZW4oKT8uYmNiZWJvSWQpXCIgKm5nSWY9XCIoIWRvd25sb2FkaXRlbS5pc05hdGl2ZVJldml0IHx8IFdlYkdMU2VydmljZS5IYXNOYXRpdmVSRkEoKSkgJiYgKEZhYnJpa2FudGVuU2VydmljZS5HZXRTZWxlY3RlZFRvZWJlaG9yZW4oKSAhPSBudWxsKVwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3ctaWNvblwiPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJpY29uIGZpbGVfZG93bmxvYWRcIj5maWxlX2Rvd25sb2FkPC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdy10aXRsZVwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImRvd25sb2FkaXRlbS5sb2FkaW5nXCI+Li4uPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIiFkb3dubG9hZGl0ZW0ubG9hZGluZ1wiPnt7IFRyYW5zbGF0ZVNlcnZpY2UuR2V0QWN0aXZlVmFsdWUoVHJhbnNsYXRpb25DYXRlZ29yeS5Db21tb24sIGRvd25sb2FkaXRlbS50cmFuc2xhdGlvblN1YkNhdGVnb3J5KSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRvd25sb2FkY2F0ZWdvcnkubmFtZSAhPSAnVG9lYmVob3JlbidcIj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gY2xhc3M9XCJ0b29sYmFyLWJ1dHRvblwiIFtuZ0NsYXNzXT1cImRvd25sb2FkaXRlbS5maWxlVHlwZSArICctYnV0dG9uJ1wiIChjbGljayk9XCJEb3dubG9hZChkb3dubG9hZGl0ZW0sIHVuZGVmaW5lZClcIiAqbmdJZj1cIiFkb3dubG9hZGl0ZW0uaXNOYXRpdmVSZXZpdCB8fCBXZWJHTFNlcnZpY2UuSGFzTmF0aXZlUkZBKClcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93LWljb25cIj5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiaWNvbiBmaWxlX2Rvd25sb2FkXCI+ZmlsZV9kb3dubG9hZDwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3ctdGl0bGVcIj5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJkb3dubG9hZGl0ZW0ubG9hZGluZ1wiPi4uLjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCIhZG93bmxvYWRpdGVtLmxvYWRpbmdcIj57eyBUcmFuc2xhdGVTZXJ2aWNlLkdldEFjdGl2ZVZhbHVlKFRyYW5zbGF0aW9uQ2F0ZWdvcnkuQ29tbW9uLCBkb3dubG9hZGl0ZW0udHJhbnNsYXRpb25TdWJDYXRlZ29yeSkgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuVmlld01vZGVsPy5zZWxlY3RlZFByb2R1Y3QgIT0gbnVsbFwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjdXN0b21Eb3dubG9hZCBvZiBGYWJyaWthbnRlblNlcnZpY2UuRmFicmlrYW50ZW5WaWV3TW9kZWwuc2VsZWN0ZWRQcm9kdWN0LmN1c3RvbURvd25sb2Fkc1wiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjdXN0b21Eb3dubG9hZC5kb3dubG9hZFR5cGUgPT0gMVwiPlxyXG4gICAgICAgICAgPGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gY2xhc3M9XCJ0b29sYmFyLWJ1dHRvbiBjdXN0b20tYnV0dG9uXCIgKGNsaWNrKT1cIkRvd25sb2FkQ3VzdG9tKGN1c3RvbURvd25sb2FkKVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdy1pY29uXCI+XHJcbiAgICAgICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJpY29uIGZpbGVfZG93bmxvYWRcIj5maWxlX2Rvd25sb2FkPC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93LXRpdGxlXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImN1c3RvbURvd25sb2FkLmxvYWRpbmdcIj4uLi48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIiFjdXN0b21Eb3dubG9hZC5sb2FkaW5nXCI+e3sgVHJhbnNsYXRlU2VydmljZS5HZXRBY3RpdmVWYWx1ZShUcmFuc2xhdGlvbkNhdGVnb3J5LkNvbW1vbiwgVHJhbnNsYXRpb25TdWJDYXRlZ29yeS5Eb3dubG9hZFJldml0KSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY3VzdG9tRG93bmxvYWQuZG93bmxvYWRUeXBlID09IDJcIj5cclxuICAgICAgICAgIDxidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uIGNsYXNzPVwidG9vbGJhci1idXR0b24gY3VzdG9tLWJ1dHRvblwiIChjbGljayk9XCJPcGVuUERGKGN1c3RvbURvd25sb2FkKVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdy1pY29uXCI+XHJcbiAgICAgICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJpY29uIG9wZW5faW5fbmV3XCI+b3Blbl9pbl9uZXc8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3ctdGl0bGVcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiY3VzdG9tRG93bmxvYWQubG9hZGluZ1wiPi4uLjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIWN1c3RvbURvd25sb2FkLmxvYWRpbmdcIj57eyBjdXN0b21Eb3dubG9hZC5uYW1lIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHBkZnRlbXBsYXRlIG9mIEZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblZpZXdNb2RlbC5zZWxlY3RlZFByb2R1Y3QucGRmVGVtcGxhdGVzXCI+XHJcbiAgICAgICAgPGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gY2xhc3M9XCJ0b29sYmFyLWJ1dHRvbiB0ZW1wbGF0ZS1idXR0b25cIiAoY2xpY2spPVwiRG93bmxvYWRQREZUZW1wbGF0ZShwZGZ0ZW1wbGF0ZSlcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdy1pY29uXCI+XHJcbiAgICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiaWNvbiBmaWxlX2Rvd25sb2FkXCI+ZmlsZV9kb3dubG9hZDwvbWF0LWljb24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93LXRpdGxlXCI+XHJcbiAgICAgICAgICAgICAge3sgVHJhbnNsYXRlU2VydmljZS5HZXRBY3RpdmVWYWx1ZShUcmFuc2xhdGlvbkNhdGVnb3J5LkNvbW1vbiwgVHJhbnNsYXRpb25TdWJDYXRlZ29yeS5TcGVjaWZpY2F0aW9uKSB9fVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJTaG93VGV4dHVyZUJ1dHRvbnMoKVwiPlxyXG4gICAgICA8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiBjbGFzcz1cInRvb2xiYXItYnV0dG9uXCIgKGNsaWNrKT1cIk9wZW5MaW5rKFRleHR1cmVTZXJ2aWNlLkZhYnJpa2FudGVuVGV4dHVyZVZpZXdNb2RlbC5wYXRyb29uVVJMKVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3ctaWNvblwiPlxyXG4gICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJpY29uIG9wZW5faW5fbmV3XCI+b3Blbl9pbl9uZXc8L21hdC1pY29uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93LXRpdGxlXCI+XHJcbiAgICAgICAgICAgIHt7IFRyYW5zbGF0ZVNlcnZpY2UuR2V0QWN0aXZlVmFsdWUoVHJhbnNsYXRpb25DYXRlZ29yeS5Db21tb24sIFRyYW5zbGF0aW9uU3ViQ2F0ZWdvcnkuVGV4dHVyZSkgfX1cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gY2xhc3M9XCJ0b29sYmFyLWJ1dHRvblwiIChjbGljayk9XCJPcGVuTGluayhUZXh0dXJlU2VydmljZS5GYWJyaWthbnRlblRleHR1cmVWaWV3TW9kZWwuYnVtcFVSTClcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93LWljb25cIj5cclxuICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiaWNvbiBvcGVuX2luX25ld1wiPm9wZW5faW5fbmV3PC9tYXQtaWNvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvdy10aXRsZVwiPlxyXG4gICAgICAgICAgICB7eyBUcmFuc2xhdGVTZXJ2aWNlLkdldEFjdGl2ZVZhbHVlKFRyYW5zbGF0aW9uQ2F0ZWdvcnkuQ29tbW9uLCBUcmFuc2xhdGlvblN1YkNhdGVnb3J5LkJ1bXBtYXApIH19XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiBjbGFzcz1cInRvb2xiYXItYnV0dG9uIGJjYi1idXR0b25cIiAoY2xpY2spPVwiT3BlbkJDQkxpbmsoKVwiICpuZ0lmPVwiU2hvd0JDQkJ1dHRvbigpXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93LWljb25cIj5cclxuICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImljb24gb3Blbl9pbl9uZXdcIj5vcGVuX2luX25ldzwvbWF0LWljb24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvdy10aXRsZVwiPlxyXG4gICAgICAgICAge3sgVHJhbnNsYXRlU2VydmljZS5HZXRBY3RpdmVWYWx1ZShUcmFuc2xhdGlvbkNhdGVnb3J5LkNvbW1vbiwgVHJhbnNsYXRpb25TdWJDYXRlZ29yeS5CQ0IpIH19XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9kaXY+XHJcbjwvbmctY29udGFpbmVyPlxyXG4iXX0=
215
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFiLWFjdGlvbm1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL2ZhYnJpa2FudGVuY29yZS9jb21wb25lbnRzL2ZhYi1hY3Rpb25tZW51L2ZhYi1hY3Rpb25tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9mYWJyaWthbnRlbmNvcmUvY29tcG9uZW50cy9mYWItYWN0aW9ubWVudS9mYWItYWN0aW9ubWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFVdkYsT0FBTyxFQUFpSCxtQkFBbUIsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3pNLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRXRGLE1BTWEsc0JBQXNCO0lBWWQ7SUFDVjtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFuQlQsSUFBVyxtQkFBbUI7UUFDNUIsT0FBTyxtQkFBbUIsQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBVyxzQkFBc0I7UUFDL0IsT0FBTyxzQkFBc0IsQ0FBQztJQUNoQyxDQUFDO0lBRVEsT0FBTyxDQUFTO0lBRXpCLFlBQW1CLGFBQTRCLEVBQ3RDLGtCQUFzQyxFQUN0QyxnQkFBa0MsRUFDbEMsYUFBNEIsRUFDNUIsY0FBOEIsRUFDOUIsVUFBc0IsRUFDdEIsTUFBaUIsRUFDakIsWUFBMEIsRUFDMUIsaUJBQW9DLEVBQ3BDLGlCQUFvQztRQVQxQixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUN0Qyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLHFCQUFnQixH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Q0Y7aUJBQ0Y7YUFDRjtTQUNGO1FBRUQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVNLFlBQVk7UUFDakIsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsb0JBQW9CLEVBQUUsU0FBUyxJQUFJLElBQUksRUFBRTtZQUNwRSxJQUFJLENBQUMsVUFBVSxDQUFDLDJCQUEyQixDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7U0FDN0g7SUFDSCxDQUFDO0lBRU0sYUFBYTtRQUNsQixJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxvQkFBb0IsRUFBRSxTQUFTLElBQUksSUFBSSxFQUFFO1lBQ3BFLElBQUksQ0FBQyxVQUFVLENBQUMsMkJBQTJCLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLG9CQUFvQixDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztTQUM3SDtJQUNILENBQUM7d0dBcE5VLHNCQUFzQjs0RkFBdEIsc0JBQXNCLDBGQ25CbkMsKytZQW9PQTs7U0RqTmEsc0JBQXNCOzRGQUF0QixzQkFBc0I7a0JBTmxDLFNBQVM7K0JBQ0Usb0JBQW9CLGlCQUdmLGlCQUFpQixDQUFDLElBQUk7K1dBWTVCLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIElucHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRMZWdhY3lEaWFsb2cgYXMgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGVnYWN5LWRpYWxvZyc7XHJcbmltcG9ydCB7IEJlc3Rla1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9iZXN0ZWsuc2VydmljZSc7XHJcbmltcG9ydCB7IEZhYnJpa2FudGVuU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2ZhYnJpa2FudGVuLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNb2JpbGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbW9iaWxlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTVkdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc3ZnLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUZXh0dXJlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RleHR1cmUuc2VydmljZSc7XHJcbmltcG9ydCB7IFRvZWJlaG9yZW5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdG9lYmVob3Jlbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RyYW5zbGF0ZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgV2ViR0xTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvd2ViZ2wuc2VydmljZSc7XHJcbmltcG9ydCB7IEZhYnJpa2FudGVuQ3VzdG9tRG93bmxvYWRWaWV3TW9kZWwsIEZhYnJpa2FudGVuUERGVGVtcGxhdGVWaWV3TW9kZWwsIEZhYnJpa2FudGVuU2V0dGluZ3NEb3dubG9hZEl0ZW1WaWV3TW9kZWwsIFRyYW5zbGF0aW9uQ2F0ZWdvcnksIFRyYW5zbGF0aW9uU3ViQ2F0ZWdvcnkgfSBmcm9tICcuLi8uLi9zd2FnZ2VyL1N3YWdnZXJDbGllbnQnO1xyXG5pbXBvcnQgeyBGYWJGb3JtRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vZmFiLWZvcm0tZGlhbG9nL2ZhYi1mb3JtLWRpYWxvZy5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtZmFiLWFjdGlvbm1lbnUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9mYWItYWN0aW9ubWVudS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZmFiLWFjdGlvbm1lbnUuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGYWJBY3Rpb25tZW51Q29tcG9uZW50IHtcclxuXHJcbiAgcHVibGljIGdldCBUcmFuc2xhdGlvbkNhdGVnb3J5KCkge1xyXG4gICAgcmV0dXJuIFRyYW5zbGF0aW9uQ2F0ZWdvcnk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IFRyYW5zbGF0aW9uU3ViQ2F0ZWdvcnkoKSB7XHJcbiAgICByZXR1cm4gVHJhbnNsYXRpb25TdWJDYXRlZ29yeTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIGRpc3BsYXk6IHN0cmluZztcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIE1vYmlsZVNlcnZpY2U6IE1vYmlsZVNlcnZpY2UsXHJcbiAgICBwdWJsaWMgRmFicmlrYW50ZW5TZXJ2aWNlOiBGYWJyaWthbnRlblNlcnZpY2UsXHJcbiAgICBwdWJsaWMgVHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgIHB1YmxpYyBCZXN0ZWtTZXJ2aWNlOiBCZXN0ZWtTZXJ2aWNlLFxyXG4gICAgcHVibGljIFRleHR1cmVTZXJ2aWNlOiBUZXh0dXJlU2VydmljZSxcclxuICAgIHB1YmxpYyBTVkdTZXJ2aWNlOiBTVkdTZXJ2aWNlLFxyXG4gICAgcHVibGljIGRpYWxvZzogTWF0RGlhbG9nLFxyXG4gICAgcHVibGljIFdlYkdMU2VydmljZTogV2ViR0xTZXJ2aWNlLFxyXG4gICAgcHVibGljIFRvZWJlaG9yZW5TZXJ2aWNlOiBUb2ViZWhvcmVuU2VydmljZSxcclxuICAgIHB1YmxpYyBDaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBPcGVuTGluayh1cmw6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgd2luZG93Lm9wZW4odXJsLCBcIl9ibGFua1wiKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBTaG93RG93bmxvYWRDYXRlZ29yeShuYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmRpc3BsYXkgPT0gbmFtZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBTaG93M0RCdXR0b25zKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZGlzcGxheSA9PSBcIjNEXCI7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgU2hvdzJEQnV0dG9ucygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmRpc3BsYXkgPT0gXCIyRFwiO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIFNob3dCZXN0ZWtCdXR0b25zKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZGlzcGxheSA9PSBcIkJlc3Rla1wiO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIFNob3dBdXRvU3BlY2lmaWNhdGlvbkJ1dHRvbnMoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5kaXNwbGF5ID09IFwiQXV0b1NwZWNpZmljYXRpb25cIjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBTaG93VGV4dHVyZUJ1dHRvbnMoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5kaXNwbGF5ID09IFwiVGV4dHVyZVwiO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIFNob3dUb2ViZWhvcmVuQnV0dG9ucygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmRpc3BsYXkgPT0gXCJUb2ViZWhvcmVuXCI7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgU2hvd0JDQkJ1dHRvbigpOiBib29sZWFuIHtcclxuICAgIGlmICh0aGlzLmRpc3BsYXkgPT0gXCJBdXRvU3BlY2lmaWNhdGlvblwiKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5GYWJyaWthbnRlblNlcnZpY2UuRmFicmlrYW50ZW5TZXR0aW5nc1ZpZXdNb2RlbD8uc2hvd0JDQkJ1dHRvbiA9PSB0cnVlKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBEb3dubG9hZEJlc3RlaygpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLkJlc3Rla1NlcnZpY2UuVHlwZUJlc3RlayA9PSBcIlNUQUJVXCIgJiYgdGhpcy5CZXN0ZWtTZXJ2aWNlLkZhYnJpa2FudGVuQmVzdGVrVmlld01vZGVsLnN1ZiAhPSBudWxsKSB7XHJcbiAgICAgIHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLkRvd25sb2FkQmVzdGVrKHRoaXMuQmVzdGVrU2VydmljZS5GYWJyaWthbnRlbkJlc3Rla1ZpZXdNb2RlbC5zdWYpO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAodGhpcy5CZXN0ZWtTZXJ2aWNlLlR5cGVCZXN0ZWsgPT0gXCJWcmlqXCIgJiYgdGhpcy5CZXN0ZWtTZXJ2aWNlLmZhYlByb2R1Y3RCZXN0ZWsgIT0gbnVsbCkge1xyXG4gICAgICB0aGlzLkZhYnJpa2FudGVuU2VydmljZS5Eb3dubG9hZEJlc3Rlayh0aGlzLkJlc3Rla1NlcnZpY2UuZmFiUHJvZHVjdEJlc3Rlay5uYXRpdmVFbGVtZW50LmlubmVyVGV4dCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgYWxlcnQoXCJFcnJvcjogdW5hYmxlZCB0byBkb3dubG9hZCBzcGVjaWZpY2F0aW9uc1wiKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBEb3dubG9hZEF1dG9TcGVjaWZpY2F0aW9uKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuQmVzdGVrU2VydmljZS5mYWJQcm9kdWN0QXV0b1NwZWNpZmNhdGlvbiAhPSBudWxsKSB7XHJcbiAgICAgIHRoaXMuQmVzdGVrU2VydmljZS5UeXBlQmVzdGVrID0gXCJBdXRvU3BlY2lmaWNhdGlvblwiO1xyXG4gICAgICB0aGlzLkZhYnJpa2FudGVuU2VydmljZS5Eb3dubG9hZEJlc3Rlayh0aGlzLkJlc3Rla1NlcnZpY2UuZmFiUHJvZHVjdEF1dG9TcGVjaWZjYXRpb24ubmF0aXZlRWxlbWVudC5pbm5lclRleHQpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIGFsZXJ0KFwiRXJyb3I6IHVuYWJsZWQgdG8gZG93bmxvYWQgc3BlY2lmaWNhdGlvbnNcIik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgQ29weVRvQ2xpcEJvYXJkKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuQmVzdGVrU2VydmljZS5mYWJQcm9kdWN0QmVzdGVrICE9IG51bGwpIHtcclxuICAgICAgdGhpcy5CZXN0ZWtTZXJ2aWNlLkNvcHlUb0NsaXBib2FyZCh0aGlzLkJlc3Rla1NlcnZpY2UuZmFiUHJvZHVjdEJlc3Rlay5uYXRpdmVFbGVtZW50LmlubmVyVGV4dCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgYWxlcnQoXCJFcnJvcjogdW5hYmxlZCB0byBjb3B5IHNwZWNpZmljYXRpb25zXCIpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIENvcHlUb0NsaXBCb2FyZFNVRigpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLkJlc3Rla1NlcnZpY2UuRmFicmlrYW50ZW5CZXN0ZWtWaWV3TW9kZWwuc3VmICE9IG51bGwpIHtcclxuICAgICAgdGhpcy5CZXN0ZWtTZXJ2aWNlLkNvcHlUb0NsaXBib2FyZCh0aGlzLkJlc3Rla1NlcnZpY2UuRmFicmlrYW50ZW5CZXN0ZWtWaWV3TW9kZWwuc3VmKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBhbGVydChcIkVycm9yOiB1bmFibGVkIHRvIGNvcHkgc3BlY2lmaWNhdGlvbnNcIik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgQ29weVRvQ2xpcEJvYXJkQXV0b1NwZWNpZmljYXRpb24oKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5CZXN0ZWtTZXJ2aWNlLmZhYlByb2R1Y3RBdXRvU3BlY2lmY2F0aW9uICE9IG51bGwpIHtcclxuICAgICAgdGhpcy5CZXN0ZWtTZXJ2aWNlLkNvcHlUb0NsaXBib2FyZCh0aGlzLkJlc3Rla1NlcnZpY2UuZmFiUHJvZHVjdEF1dG9TcGVjaWZjYXRpb24ubmF0aXZlRWxlbWVudC5pbm5lclRleHQpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIGFsZXJ0KFwiRXJyb3I6IHVuYWJsZWQgdG8gY29weSBzcGVjaWZpY2F0aW9uc1wiKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBTaG93QmVzdGVrU2VsZWN0KCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHRoaXMuU2hvd1ZyaWooKSkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgU2hvd1NUQUJVKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuQmVzdGVrU2VydmljZS5GYWJyaWthbnRlbkJlc3Rla1ZpZXdNb2RlbD8uc3RhYnUgIT0gJycgJiYgdGhpcy5CZXN0ZWtTZXJ2aWNlLkZhYnJpa2FudGVuQmVzdGVrVmlld01vZGVsPy5zdGFidSAhPSB1bmRlZmluZWQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgU2hvd1NVRigpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLkJlc3Rla1NlcnZpY2UuRmFicmlrYW50ZW5CZXN0ZWtWaWV3TW9kZWw/LnN1ZiAhPSAnJyAmJiB0aGlzLkJlc3Rla1NlcnZpY2UuRmFicmlrYW50ZW5CZXN0ZWtWaWV3TW9kZWw/LnN1ZiAhPSB1bmRlZmluZWQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgU2hvd09TRigpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLkJlc3Rla1NlcnZpY2UuRmFicmlrYW50ZW5CZXN0ZWtWaWV3TW9kZWw/Lm9zZmh0bWwgIT0gJycgJiYgdGhpcy5CZXN0ZWtTZXJ2aWNlLkZhYnJpa2FudGVuQmVzdGVrVmlld01vZGVsPy5vc2ZodG1sICE9IHVuZGVmaW5lZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBTaG93VnJpaigpOiBib29sZWFuIHtcclxuICAgIGlmICh0aGlzLkZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblNldHRpbmdzVmlld01vZGVsPy5lbmFibGVWcmlqZUJlc3Rla1Rla3N0ID09IGZhbHNlKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5CZXN0ZWtTZXJ2aWNlLkZhYnJpa2FudGVuQmVzdGVrVmlld01vZGVsPy52cmlqQmVzdGVrSFRNTCAhPSAnJyAmJiB0aGlzLkJlc3Rla1NlcnZpY2UuRmFicmlrYW50ZW5CZXN0ZWtWaWV3TW9kZWw/LnZyaWpCZXN0ZWtIVE1MICE9IHVuZGVmaW5lZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBPcGVuQkNCTGluaygpOiB2b2lkIHtcclxuICAgIHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLk9wZW5CQ0JMaW5rKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgRG93bmxvYWRQREZUZW1wbGF0ZSh0ZW1wbGF0ZTogRmFicmlrYW50ZW5QREZUZW1wbGF0ZVZpZXdNb2RlbCk6IHZvaWQge1xyXG5cclxuICAgIGlmICh0aGlzLkZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblNldHRpbmdzVmlld01vZGVsLmRvd25sb2FkRm9ybUVuYWJsZWQgJiYgIXRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuVmlld01vZGVsLmhhc0ZpbGxlZEZvcm1zKSB7XHJcbiAgICAgIHZhciBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKEZhYkZvcm1EaWFsb2dDb21wb25lbnQsIHtcclxuICAgICAgICBkYXRhOiB7XHJcbiAgICAgICAgICBmb3JtOiB0aGlzLkZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblNldHRpbmdzVmlld01vZGVsLmRvd25sb2FkRm9ybVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG4gICAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLkZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblZpZXdNb2RlbC5oYXNGaWxsZWRGb3Jtcykge1xyXG4gICAgICAgICAgdGhpcy5Eb3dubG9hZFBERlRlbXBsYXRlKHRlbXBsYXRlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHZhciB1cmwgPSBcIi9Eb3dubG9hZC9DcmVhdGVQREY/cExhbmd1YWdlSWQ9XCIgKyB0aGlzLlRyYW5zbGF0ZVNlcnZpY2UuQWN0aXZlTGFuZ3VhZ2UuaWQ7XHJcbiAgICAgIHVybCArPSBcIiZwUERGVGVtcGxhdGVJZD1cIiArIHRlbXBsYXRlLnRlbXBsYXRlSWQ7XHJcbiAgICAgIHVybCArPSBcIiZwU2Vzc2lvbklkPVwiICsgdGhpcy5GYWJyaWthbnRlblNlcnZpY2UuRmFicmlrYW50ZW5WaWV3TW9kZWwuc2Vzc2lvbklkO1xyXG5cclxuICAgICAgd2luZG93Lm9wZW4odXJsLCBcIl9ibGFua1wiKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBEb3dubG9hZEN1c3RvbShjdXN0b21kb3dubG9hZDogRmFicmlrYW50ZW5DdXN0b21Eb3dubG9hZFZpZXdNb2RlbCk6IHZvaWQge1xyXG4gICAgdGhpcy5GYWJyaWthbnRlblNlcnZpY2UuRG93bmxvYWRDdXN0b20oY3VzdG9tZG93bmxvYWQpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIE9wZW5QREYoY3VzdG9tZG93bmxvYWQ6IEZhYnJpa2FudGVuQ3VzdG9tRG93bmxvYWRWaWV3TW9kZWwpOiB2b2lkIHtcclxuICAgIHdpbmRvdy5vcGVuKGN1c3RvbWRvd25sb2FkLmZpbGVOYW1lLCAnX2JsYW5rJyk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgRG93bmxvYWQoZG93bmxvYWRpdGVtOiBGYWJyaWthbnRlblNldHRpbmdzRG93bmxvYWRJdGVtVmlld01vZGVsLCBjdXN0b21iY2JlYm9pZDogbnVtYmVyIHwgdW5kZWZpbmVkKTogdm9pZCB7XHJcblxyXG4gICAgdmFyIGRvd25sb2FkcyA9IHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuU2V0dGluZ3NWaWV3TW9kZWwuZG93bmxvYWRDYXRlZ29yaWVzO1xyXG5cclxuICAgIGlmIChkb3dubG9hZHMgIT0gbnVsbCkge1xyXG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRvd25sb2Fkcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIHZhciBpdGVtcyA9IGRvd25sb2Fkc1tpXS5pdGVtcztcclxuXHJcbiAgICAgICAgaWYgKGl0ZW1zICE9IG51bGwpIHtcclxuICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgaXRlbXMubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICAgICAgaWYgKGl0ZW1zW2pdLmxvYWRpbmcpIHtcclxuICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB0aGlzLkZhYnJpa2FudGVuU2VydmljZS5Eb3dubG9hZChkb3dubG9hZGl0ZW0sIGN1c3RvbWJjYmVib2lkKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBSZWZyZXNoU25lZGUoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5GYWJyaWthbnRlblNlcnZpY2U/LkZhYnJpa2FudGVuVmlld01vZGVsPy5zZXNzaW9uSWQgIT0gbnVsbCkge1xyXG4gICAgICB0aGlzLlNWR1NlcnZpY2UuTG9hZEZhYnJpa2FudGVuU1ZHVmlld01vZGVsKHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuVmlld01vZGVsLnNlc3Npb25JZCwgdGhpcy5DaGFuZ2VEZXRlY3RvclJlZik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgUmVmcmVzaFNjaGFhbCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLkZhYnJpa2FudGVuU2VydmljZT8uRmFicmlrYW50ZW5WaWV3TW9kZWw/LnNlc3Npb25JZCAhPSBudWxsKSB7XHJcbiAgICAgIHRoaXMuU1ZHU2VydmljZS5Mb2FkRmFicmlrYW50ZW5TVkdWaWV3TW9kZWwodGhpcy5GYWJyaWthbnRlblNlcnZpY2UuRmFicmlrYW50ZW5WaWV3TW9kZWwuc2Vzc2lvbklkLCB0aGlzLkNoYW5nZURldGVjdG9yUmVmKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cIkZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblNldHRpbmdzVmlld01vZGVsICE9IG51bGxcIj5cclxuICA8ZGl2IGNsYXNzPVwiY29sdW1uXCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiU2hvdzJEQnV0dG9ucygpXCI+XHJcbiAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiPlxyXG4gICAgICAgIDxtYXQtbGFiZWwgY2xhc3M9XCJzZWxlY3QtbWF0LWxhYmVsXCI+e3sgVHJhbnNsYXRlU2VydmljZS5HZXRBY3RpdmVWYWx1ZShUcmFuc2xhdGlvbkNhdGVnb3J5LkNvbW1vbiwgVHJhbnNsYXRpb25TdWJDYXRlZ29yeS5TbmVkZSkgfX08L21hdC1sYWJlbD5cclxuICAgICAgICA8bWF0LXNlbGVjdCBbKG5nTW9kZWwpXT1cIlNWR1NlcnZpY2UuU25lZGVcIiAoc2VsZWN0aW9uQ2hhbmdlKT1cIlJlZnJlc2hTbmVkZSgpXCI+XHJcbiAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgc25lZGUgb2YgU1ZHU2VydmljZS5TbmVkZXNcIiBbdmFsdWVdPVwic25lZGVcIj5cclxuICAgICAgICAgICAge3sgVHJhbnNsYXRlU2VydmljZS5HZXRBY3RpdmVWYWx1ZShUcmFuc2xhdGlvbkNhdGVnb3J5LkNvbW1vbiwgVHJhbnNsYXRpb25TdWJDYXRlZ29yeS5TbmVkZUl0ZW0sIG51bGwsIHNuZWRlKSB9fVxyXG4gICAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCI+XHJcbiAgICAgICAgPG1hdC1sYWJlbCBjbGFzcz1cInNlbGVjdC1tYXQtbGFiZWxcIj57eyBUcmFuc2xhdGVTZXJ2aWNlLkdldEFjdGl2ZVZhbHVlKFRyYW5zbGF0aW9uQ2F0ZWdvcnkuQ29tbW9uLCBUcmFuc2xhdGlvblN1YkNhdGVnb3J5LlNjaGFhbCkgfX08L21hdC1sYWJlbD5cclxuICAgICAgICA8bWF0LXNlbGVjdCBbKG5nTW9kZWwpXT1cIlNWR1NlcnZpY2UuU2NoYWFsXCIgKHNlbGVjdGlvbkNoYW5nZSk9XCJSZWZyZXNoU2NoYWFsKClcIj5cclxuICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCInMCdcIj4xOjE8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwiJzEnXCI+MToyPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cIicyJ1wiPjE6NTwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCInMydcIj4xOjEwPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cIic0J1wiPjE6MjA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwiJzUnXCI+MTo1MDwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCInNidcIj4xOjEwMDwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCInNydcIj4xOjIwMDwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCInOCdcIj4xOjUwMDwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCInOSdcIj4xOjEwMDA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwiJzEwJ1wiPjE6MjAwMDwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCInMTEnXCI+MTo1MDAwPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cIicxMidcIj4xOjEwMDAwPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cIicxMydcIj4xOjIwMDAwPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cIicxNCdcIj4xOjUwMDAwPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJTaG93QmVzdGVrQnV0dG9ucygpXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJTaG93QmVzdGVrU2VsZWN0KClcIj5cclxuICAgICAgICA8bWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAgW3ZhbHVlXT1cIkJlc3Rla1NlcnZpY2UuVHlwZUJlc3Rla1wiIChjaGFuZ2UpPVwiQmVzdGVrU2VydmljZS5UeXBlQmVzdGVrID0gJGV2ZW50LnNvdXJjZS52YWx1ZVwiIGFwcGVhcmFuY2U9XCJsZWdhY3lcIj5cclxuICAgICAgICAgIDxtYXQtYnV0dG9uLXRvZ2dsZSAqbmdJZj1cIlNob3dTVEFCVSgpXCIgdmFsdWU9XCJTVEFCVVwiPnt7IFRyYW5zbGF0ZVNlcnZpY2UuR2V0QWN0aXZlVmFsdWUoVHJhbnNsYXRpb25DYXRlZ29yeS5Db21tb24sIFRyYW5zbGF0aW9uU3ViQ2F0ZWdvcnkuU1RBQlUpIH19PC9tYXQtYnV0dG9uLXRvZ2dsZT5cclxuICAgICAgICAgIDxtYXQtYnV0dG9uLXRvZ2dsZSAqbmdJZj1cIlNob3dPU0YoKVwiIHZhbHVlPVwiT1NGXCI+e3sgVHJhbnNsYXRlU2VydmljZS5HZXRBY3RpdmVWYWx1ZShUcmFuc2xhdGlvbkNhdGVnb3J5LkNvbW1vbiwgVHJhbnNsYXRpb25TdWJDYXRlZ29yeS5PU0YpIH19PC9tYXQtYnV0dG9uLXRvZ2dsZT5cclxuICAgICAgICAgIDxtYXQtYnV0dG9uLXRvZ2dsZSAqbmdJZj1cIlNob3dWcmlqKClcIiB2YWx1ZT1cIlZyaWpcIj57eyBUcmFuc2xhdGVTZXJ2aWNlLkdldEFjdGl2ZVZhbHVlKFRyYW5zbGF0aW9uQ2F0ZWdvcnkuQ29tbW9uLCBUcmFuc2xhdGlvblN1YkNhdGVnb3J5LlNwZWNpZmljYXRpb25UZXh0KSB9fTwvbWF0LWJ1dHRvbi10b2dnbGU+XHJcbiAgICAgICAgPC9tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cD5cclxuICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgJm5ic3A7XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgPGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gY2xhc3M9XCJ0b29sYmFyLWJ1dHRvbiBjb3B5LWJ1dHRvblwiIChjbGljayk9XCJDb3B5VG9DbGlwQm9hcmQoKVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3ctaWNvblwiPlxyXG4gICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJpY29uIGNvbnRlbnRfY29weVwiPmNvbnRlbnRfY29weTwvbWF0LWljb24+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3ctdGl0bGVcIj5cclxuICAgICAgICAgICAge3sgVHJhbnNsYXRlU2VydmljZS5HZXRBY3RpdmVWYWx1ZShUcmFuc2xhdGlvbkNhdGVnb3J5LkNvbW1vbiwgVHJhbnNsYXRpb25TdWJDYXRlZ29yeS5DbGlwYm9hcmQpIH19XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICAgIDxidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uIGNsYXNzPVwidG9vbGJhci1idXR0b24gY29weS1zdWYtYnV0dG9uXCIgKGNsaWNrKT1cIkNvcHlUb0NsaXBCb2FyZFNVRigpXCIgKm5nSWY9XCJCZXN0ZWtTZXJ2aWNlLlR5cGVCZXN0ZWsgPT0gJ1NUQUJVJ1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3ctaWNvblwiPlxyXG4gICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJpY29uIGNvbnRlbnRfY29weVwiPmNvbnRlbnRfY29weTwvbWF0LWljb24+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3ctdGl0bGVcIj5cclxuICAgICAgICAgICAge3sgVHJhbnNsYXRlU2VydmljZS5HZXRBY3RpdmVWYWx1ZShUcmFuc2xhdGlvbkNhdGVnb3J5LkNvbW1vbiwgVHJhbnNsYXRpb25TdWJDYXRlZ29yeS5DbGlwYm9hcmRTVUYpIH19XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICAgIDxidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uIGNsYXNzPVwidG9vbGJhci1idXR0b24gZG93bmxvYWQtYmVzdGVrLWJ1dHRvblwiIChjbGljayk9XCJEb3dubG9hZEJlc3RlaygpXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvdy1pY29uXCI+XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImljb24gZmlsZV9kb3dubG9hZFwiPmZpbGVfZG93bmxvYWQ8L21hdC1pY29uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93LXRpdGxlXCI+XHJcbiAgICAgICAgICAgIHt7IFRyYW5zbGF0ZVNlcnZpY2UuR2V0QWN0aXZlVmFsdWUoVHJhbnNsYXRpb25DYXRlZ29yeS5Db21tb24sIFRyYW5zbGF0aW9uU3ViQ2F0ZWdvcnkuRG93bmxvYWQpIH19XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiU2hvd0F1dG9TcGVjaWZpY2F0aW9uQnV0dG9ucygpXCI+XHJcbiAgICAgIDxidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uIGNsYXNzPVwidG9vbGJhci1idXR0b24gY29weS1idXR0b25cIiAoY2xpY2spPVwiQ29weVRvQ2xpcEJvYXJkQXV0b1NwZWNpZmljYXRpb24oKVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3ctaWNvblwiPlxyXG4gICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJpY29uIGNvbnRlbnRfY29weVwiPmNvbnRlbnRfY29weTwvbWF0LWljb24+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3ctdGl0bGVcIj5cclxuICAgICAgICAgICAge3sgVHJhbnNsYXRlU2VydmljZS5HZXRBY3RpdmVWYWx1ZShUcmFuc2xhdGlvbkNhdGVnb3J5LkNvbW1vbiwgVHJhbnNsYXRpb25TdWJDYXRlZ29yeS5DbGlwYm9hcmQpIH19XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICAgIDxidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uIGNsYXNzPVwidG9vbGJhci1idXR0b24gZG93bmxvYWQtYmVzdGVrLWJ1dHRvblwiIChjbGljayk9XCJEb3dubG9hZEF1dG9TcGVjaWZpY2F0aW9uKClcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93LWljb25cIj5cclxuICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiaWNvbiBmaWxlX2Rvd25sb2FkXCI+ZmlsZV9kb3dubG9hZDwvbWF0LWljb24+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3ctdGl0bGVcIj5cclxuICAgICAgICAgICAge3sgVHJhbnNsYXRlU2VydmljZS5HZXRBY3RpdmVWYWx1ZShUcmFuc2xhdGlvbkNhdGVnb3J5LkNvbW1vbiwgVHJhbnNsYXRpb25TdWJDYXRlZ29yeS5Eb3dubG9hZCkgfX1cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJTaG93VG9lYmVob3JlbkJ1dHRvbnMoKVwiPlxyXG4gICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIj5cclxuICAgICAgICA8bWF0LWxhYmVsIGNsYXNzPVwic2VsZWN0LW1hdC1sYWJlbFwiPlRvZWJlaG9yZW48L21hdC1sYWJlbD5cclxuICAgICAgICA8bWF0LXNlbGVjdCBbKG5nTW9kZWwpXT1cIkZhYnJpa2FudGVuU2VydmljZS5TZWxlY3RlZFRvZWJlaG9yZW5cIiAoc2VsZWN0aW9uQ2hhbmdlKT1cIlRvZWJlaG9yZW5TZXJ2aWNlLk9wZW5Ub2ViZWhvcmVuKHRoaXMuQ2hhbmdlRGV0ZWN0b3JSZWYpXCI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIEZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblZpZXdNb2RlbC5zZWxlY3RlZFByb2R1Y3QuZmFicmlrYW50ZW5CQ0JQcm9kdWN0Vmlld01vZGVsc1swXS5iY2JQcm9kdWN0VG9lYmVob3JlblwiPlxyXG4gICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdJZj1cIiFpdGVtLmJjYlByb2R1Y3RcIiBbdmFsdWVdPVwiaXRlbVwiPlxyXG4gICAgICAgICAgICAgIHt7IFRyYW5zbGF0ZVNlcnZpY2UuR2V0QWN0aXZlVmFsdWUoVHJhbnNsYXRpb25DYXRlZ29yeS5Ub2ViZWhvcmVuLCBUcmFuc2xhdGlvblN1YkNhdGVnb3J5Lk5hbWUsIGl0ZW0uaWQpIH19XHJcbiAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nSWY9XCJpdGVtLmJjYlByb2R1Y3RcIiBbdmFsdWVdPVwiaXRlbVwiPlxyXG4gICAgICAgICAgICAgIHt7IGl0ZW0ubmFtZSB9fVxyXG4gICAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBkb3dubG9hZGNhdGVnb3J5IG9mIEZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblNldHRpbmdzVmlld01vZGVsLmRvd25sb2FkQ2F0ZWdvcmllc1wiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiU2hvd0Rvd25sb2FkQ2F0ZWdvcnkoZG93bmxvYWRjYXRlZ29yeS5uYW1lKVwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGRvd25sb2FkaXRlbSBvZiBkb3dubG9hZGNhdGVnb3J5Lml0ZW1zXCI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZG93bmxvYWRjYXRlZ29yeS5uYW1lID09ICdUb2ViZWhvcmVuJ1wiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiBjbGFzcz1cInRvb2xiYXItYnV0dG9uXCIgW25nQ2xhc3NdPVwiZG93bmxvYWRpdGVtLmZpbGVUeXBlICsgJy1idXR0b24nXCIgKGNsaWNrKT1cIkRvd25sb2FkKGRvd25sb2FkaXRlbSwgRmFicmlrYW50ZW5TZXJ2aWNlLkdldFNlbGVjdGVkVG9lYmVob3JlbigpPy5iY2JlYm9JZClcIiAqbmdJZj1cIighZG93bmxvYWRpdGVtLmlzTmF0aXZlUmV2aXQgfHwgV2ViR0xTZXJ2aWNlLkhhc05hdGl2ZVJGQSgpKSAmJiAoRmFicmlrYW50ZW5TZXJ2aWNlLkdldFNlbGVjdGVkVG9lYmVob3JlbigpICE9IG51bGwpXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdy1pY29uXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImljb24gZmlsZV9kb3dubG9hZFwiPmZpbGVfZG93bmxvYWQ8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93LXRpdGxlXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiZG93bmxvYWRpdGVtLmxvYWRpbmdcIj4uLi48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIWRvd25sb2FkaXRlbS5sb2FkaW5nXCI+e3sgVHJhbnNsYXRlU2VydmljZS5HZXRBY3RpdmVWYWx1ZShUcmFuc2xhdGlvbkNhdGVnb3J5LkNvbW1vbiwgZG93bmxvYWRpdGVtLnRyYW5zbGF0aW9uU3ViQ2F0ZWdvcnkpIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZG93bmxvYWRjYXRlZ29yeS5uYW1lICE9ICdUb2ViZWhvcmVuJ1wiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiBjbGFzcz1cInRvb2xiYXItYnV0dG9uXCIgW25nQ2xhc3NdPVwiZG93bmxvYWRpdGVtLmZpbGVUeXBlICsgJy1idXR0b24nXCIgKGNsaWNrKT1cIkRvd25sb2FkKGRvd25sb2FkaXRlbSwgdW5kZWZpbmVkKVwiICpuZ0lmPVwiIWRvd25sb2FkaXRlbS5pc05hdGl2ZVJldml0IHx8IFdlYkdMU2VydmljZS5IYXNOYXRpdmVSRkEoKVwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3ctaWNvblwiPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJpY29uIGZpbGVfZG93bmxvYWRcIj5maWxlX2Rvd25sb2FkPC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdy10aXRsZVwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImRvd25sb2FkaXRlbS5sb2FkaW5nXCI+Li4uPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIiFkb3dubG9hZGl0ZW0ubG9hZGluZ1wiPnt7IFRyYW5zbGF0ZVNlcnZpY2UuR2V0QWN0aXZlVmFsdWUoVHJhbnNsYXRpb25DYXRlZ29yeS5Db21tb24sIGRvd25sb2FkaXRlbS50cmFuc2xhdGlvblN1YkNhdGVnb3J5KSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJGYWJyaWthbnRlblNlcnZpY2UuRmFicmlrYW50ZW5WaWV3TW9kZWw/LnNlbGVjdGVkUHJvZHVjdCAhPSBudWxsXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGN1c3RvbURvd25sb2FkIG9mIEZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblZpZXdNb2RlbC5zZWxlY3RlZFByb2R1Y3QuY3VzdG9tRG93bmxvYWRzXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImN1c3RvbURvd25sb2FkLmRvd25sb2FkVHlwZSA9PSAxXCI+XHJcbiAgICAgICAgICA8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiBjbGFzcz1cInRvb2xiYXItYnV0dG9uIGN1c3RvbS1idXR0b25cIiAoY2xpY2spPVwiRG93bmxvYWRDdXN0b20oY3VzdG9tRG93bmxvYWQpXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93LWljb25cIj5cclxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImljb24gZmlsZV9kb3dubG9hZFwiPmZpbGVfZG93bmxvYWQ8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3ctdGl0bGVcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiY3VzdG9tRG93bmxvYWQubG9hZGluZ1wiPi4uLjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIWN1c3RvbURvd25sb2FkLmxvYWRpbmdcIj57eyBUcmFuc2xhdGVTZXJ2aWNlLkdldEFjdGl2ZVZhbHVlKFRyYW5zbGF0aW9uQ2F0ZWdvcnkuQ29tbW9uLCBUcmFuc2xhdGlvblN1YkNhdGVnb3J5LkRvd25sb2FkUmV2aXQpIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjdXN0b21Eb3dubG9hZC5kb3dubG9hZFR5cGUgPT0gMlwiPlxyXG4gICAgICAgICAgPGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gY2xhc3M9XCJ0b29sYmFyLWJ1dHRvbiBjdXN0b20tYnV0dG9uXCIgKGNsaWNrKT1cIk9wZW5QREYoY3VzdG9tRG93bmxvYWQpXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93LWljb25cIj5cclxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImljb24gb3Blbl9pbl9uZXdcIj5vcGVuX2luX25ldzwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdy10aXRsZVwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJjdXN0b21Eb3dubG9hZC5sb2FkaW5nXCI+Li4uPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCIhY3VzdG9tRG93bmxvYWQubG9hZGluZ1wiPnt7IGN1c3RvbURvd25sb2FkLm5hbWUgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcGRmdGVtcGxhdGUgb2YgRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuVmlld01vZGVsLnNlbGVjdGVkUHJvZHVjdC5wZGZUZW1wbGF0ZXNcIj5cclxuICAgICAgICA8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiBjbGFzcz1cInRvb2xiYXItYnV0dG9uIHRlbXBsYXRlLWJ1dHRvblwiIChjbGljayk9XCJEb3dubG9hZFBERlRlbXBsYXRlKHBkZnRlbXBsYXRlKVwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93LWljb25cIj5cclxuICAgICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJpY29uIGZpbGVfZG93bmxvYWRcIj5maWxlX2Rvd25sb2FkPC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3ctdGl0bGVcIj5cclxuICAgICAgICAgICAgICB7eyBUcmFuc2xhdGVTZXJ2aWNlLkdldEFjdGl2ZVZhbHVlKFRyYW5zbGF0aW9uQ2F0ZWdvcnkuQ29tbW9uLCBUcmFuc2xhdGlvblN1YkNhdGVnb3J5LlNwZWNpZmljYXRpb24pIH19XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIlNob3dUZXh0dXJlQnV0dG9ucygpXCI+XHJcbiAgICAgIDxidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uIGNsYXNzPVwidG9vbGJhci1idXR0b25cIiAoY2xpY2spPVwiT3BlbkxpbmsoVGV4dHVyZVNlcnZpY2UuRmFicmlrYW50ZW5UZXh0dXJlVmlld01vZGVsLnBhdHJvb25VUkwpXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvdy1pY29uXCI+XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImljb24gb3Blbl9pbl9uZXdcIj5vcGVuX2luX25ldzwvbWF0LWljb24+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3ctdGl0bGVcIj5cclxuICAgICAgICAgICAge3sgVHJhbnNsYXRlU2VydmljZS5HZXRBY3RpdmVWYWx1ZShUcmFuc2xhdGlvbkNhdGVnb3J5LkNvbW1vbiwgVHJhbnNsYXRpb25TdWJDYXRlZ29yeS5UZXh0dXJlKSB9fVxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiBjbGFzcz1cInRvb2xiYXItYnV0dG9uXCIgKGNsaWNrKT1cIk9wZW5MaW5rKFRleHR1cmVTZXJ2aWNlLkZhYnJpa2FudGVuVGV4dHVyZVZpZXdNb2RlbC5idW1wVVJMKVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3ctaWNvblwiPlxyXG4gICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJpY29uIG9wZW5faW5fbmV3XCI+b3Blbl9pbl9uZXc8L21hdC1pY29uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93LXRpdGxlXCI+XHJcbiAgICAgICAgICAgIHt7IFRyYW5zbGF0ZVNlcnZpY2UuR2V0QWN0aXZlVmFsdWUoVHJhbnNsYXRpb25DYXRlZ29yeS5Db21tb24sIFRyYW5zbGF0aW9uU3ViQ2F0ZWdvcnkuQnVtcG1hcCkgfX1cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDxidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uIGNsYXNzPVwidG9vbGJhci1idXR0b24gYmNiLWJ1dHRvblwiIChjbGljayk9XCJPcGVuQkNCTGluaygpXCIgKm5nSWY9XCJTaG93QkNCQnV0dG9uKClcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3ctaWNvblwiPlxyXG4gICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiaWNvbiBvcGVuX2luX25ld1wiPm9wZW5faW5fbmV3PC9tYXQtaWNvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93LXRpdGxlXCI+XHJcbiAgICAgICAgICB7eyBUcmFuc2xhdGVTZXJ2aWNlLkdldEFjdGl2ZVZhbHVlKFRyYW5zbGF0aW9uQ2F0ZWdvcnkuQ29tbW9uLCBUcmFuc2xhdGlvblN1YkNhdGVnb3J5LkJDQikgfX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuPC9uZy1jb250YWluZXI+XHJcbiJdfQ==
@@ -21668,6 +21668,19 @@ class FabActionmenuComponent {
21668
21668
  window.open(customdownload.fileName, '_blank');
21669
21669
  }
21670
21670
  Download(downloaditem, custombcbeboid) {
21671
+ var downloads = this.FabrikantenService.FabrikantenSettingsViewModel.downloadCategories;
21672
+ if (downloads != null) {
21673
+ for (var i = 0; i < downloads.length; i++) {
21674
+ var items = downloads[i].items;
21675
+ if (items != null) {
21676
+ for (var j = 0; j < items.length; j++) {
21677
+ if (items[j].loading) {
21678
+ return;
21679
+ }
21680
+ }
21681
+ }
21682
+ }
21683
+ }
21671
21684
  this.FabrikantenService.Download(downloaditem, custombcbeboid);
21672
21685
  }
21673
21686
  RefreshSnede() {