@fundamental-ngx/platform 0.48.5-rc.1 → 0.48.5-rc.2

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.
@@ -54,6 +54,12 @@ export class IconTabBarBase {
54
54
  if (changes.isRtl && !changes.isRtl.firstChange) {
55
55
  this._triggerRecalculationVisibleItems();
56
56
  }
57
+ if (changes.selectedUid && !changes.selectedUid.firstChange) {
58
+ const isExtraTab = this._extraTabs$().find((tab) => tab.uId === this.selectedUid);
59
+ if (isExtraTab) {
60
+ this._selectExtraItem(isExtraTab);
61
+ }
62
+ }
57
63
  }
58
64
  /** @hidden */
59
65
  ngOnInit() {
@@ -267,4 +273,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImpor
267
273
  type: ViewChild,
268
274
  args: ['tablist', { read: ElementRef }]
269
275
  }] } });
270
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi10YWItYmFyLWJhc2UuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2ljb24tdGFiLWJhci9jb21wb25lbnRzL2ljb24tdGFiLWJhci1iYXNlLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCxpQkFBaUIsRUFDakIsVUFBVSxFQUNWLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsU0FBUyxFQUNULE1BQU0sRUFJTixNQUFNLEVBRU4sTUFBTSxFQUVOLFNBQVMsRUFDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDcEcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzVFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3RDLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFRMUQsTUFBTSxPQUFnQixjQUFjO0lBRHBDO1FBVUk7O1dBRUc7UUFFSCxTQUFJLEdBQXFCLEVBQUUsQ0FBQztRQStCNUI7O1dBRUc7UUFFSCxhQUFRLEdBQWlDLElBQUksWUFBWSxFQUFrQixDQUFDO1FBRTVFLGlEQUFpRDtRQUVqRCxzQkFBaUIsR0FBRyxJQUFJLFlBQVksRUFBc0IsQ0FBQztRQVkzRCxjQUFjO1FBQ2QsZ0JBQVcsR0FBRyxNQUFN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QUFNO2FBQ1Q7aUJBQU0sSUFBSSxHQUFHLENBQUMsUUFBUSxFQUFFO2dCQUNyQixTQUFTLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDaEQsSUFBSSxTQUFTLEVBQUU7b0JBQ1gsTUFBTTtpQkFDVDthQUNKO1NBQ0o7UUFFRCxPQUFPLFNBQVMsQ0FBQztJQUNyQixDQUFDOzhHQW5UaUIsY0FBYztrR0FBZCxjQUFjLGtTQXlEckIscUJBQXFCLHNIQUlGLFVBQVU7OzJGQTdEdEIsY0FBYztrQkFEbkMsU0FBUzs4QkFjTixJQUFJO3NCQURILEtBQUs7Z0JBT04sS0FBSztzQkFESixLQUFLO2dCQVFOLGlCQUFpQjtzQkFEaEIsS0FBSztnQkFPRixXQUFXO3NCQURkLEtBQUs7Z0JBV04sV0FBVztzQkFEVixLQUFLO2dCQU9OLFFBQVE7c0JBRFAsTUFBTTtnQkFLUCxpQkFBaUI7c0JBRGhCLE1BQU07Z0JBT1AsaUJBQWlCO3NCQURoQixTQUFTO3VCQUFDLHFCQUFxQjtnQkFLaEMsYUFBYTtzQkFEWixTQUFTO3VCQUFDLFNBQVMsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgRGVzdHJveVJlZixcbiAgICBEaXJlY3RpdmUsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgaW5qZWN0LFxuICAgIElucHV0LFxuICAgIGlzRGV2TW9kZSxcbiAgICBOZ1pvbmUsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBzaWduYWwsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBET1dOX0FSUk9XLCBFTlRFUiwgTEVGVF9BUlJPVywgUklHSFRfQVJST1csIFNQQUNFLCBVUF9BUlJPVyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBLZXlVdGlsLCBPdmVyZmxvd0xpc3REaXJlY3RpdmUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBGRF9EWU5BTUlDX1BBR0UgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvZHluYW1pYy1wYWdlJztcbmltcG9ydCB7IGNsb25lRGVlcCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBJQ09OX1RBQl9ISURERU5fQ0xBU1NfTkFNRSB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBJY29uVGFiQmFySXRlbSB9IGZyb20gJy4uL2ludGVyZmFjZXMvaWNvbi10YWItYmFyLWl0ZW0uaW50ZXJmYWNlJztcbmltcG9ydCB7IFRhYkNvbG9yQXNzb2NpYXRpb25zIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy90YWItY29sb3ItYXNzb2NpYXRpb25zLmludGVyZmFjZSc7XG5pbXBvcnQgeyBUYWJEZXN0aW55TW9kZSB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IEljb25UYWJCYXJQb3BvdmVyQmFzZSB9IGZyb20gJy4vcG9wb3ZlcnMvaWNvbi10YWItYmFyLXBvcG92ZXItYmFzZS5jbGFzcyc7XG5pbXBvcnQgeyBUZXh0VHlwZVBvcG92ZXJDb21wb25lbnQgfSBmcm9tICcuL3BvcG92ZXJzL3RleHQtdHlwZS1wb3BvdmVyL3RleHQtdHlwZS1wb3BvdmVyLmNvbXBvbmVudCc7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEljb25UYWJCYXJCYXNlIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIExpc3Qgb2YgdGFiIGVsZW1lbnRzLCB0aGF0IGNhbiByZWNlaXZlIGZvY3VzLlxuICAgICAqIFRoZXJlJ3MgYSBzZXBhcmF0ZSBtYXBwaW5nIGZ1bmN0aW9uIHRvIGdldCBhY3R1YWwgaHRtbCBlbGVtZW50OiBgX2dldFRhYlVJRWxlbWVudEZvY3VzYWJsZWBcbiAgICAgKi9cbiAgICBhYnN0cmFjdCBfdGFiVUlFbGVtZW50czogUXVlcnlMaXN0PHVua25vd24+O1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgYWJzdHJhY3QgX3RhYkJhclBvcG92ZXI6IEljb25UYWJCYXJQb3BvdmVyQmFzZTtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQSB0YWIgYmFyIGNvbmZpZ3VyYXRpb24gdGhhdCBzdG9yZXMgdGhlIHN0YXRlIG9mIGVhY2ggdGFiLiBCYXNlZCBvbiB0aGlzIGNvbmZpZ3VyYXRpb24sIGEgdGFiIGJhciBpcyByZXByZXNlbnRpbmcuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICB0YWJzOiBJY29uVGFiQmFySXRlbVtdID0gW107XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gRmxhZyByZXByZXNlbnRpbmcgcnRsIG1vZGVcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGlzUnRsOiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEFzc29jaWF0aW9ucyBmb3IgY29sb3JzIG9mIHRoZSB0YWJzLlxuICAgICAqIElmIGFueSBvZiB0aGUgY29sb3IgYXNzb2NpYXRpb25zIHByb3ZpZGVkLCB0aGV5J2xsIGJlIHJlYWQgYnkgc2NyZWVucmVhZGVyIGluc3RlYWQgb2YgdGhlIGFjdHVhbCBjb2xvclxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgY29sb3JBc3NvY2lhdGlvbnM6IFRhYkNvbG9yQXNzb2NpYXRpb25zO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIGRlbnNpdHlNb2RlIHNldHRlciB0cmlnZ2VycyB0YWJzIHRvIHJlLWNhbGN1bGF0aW9uIG92ZXJmbG93ZWQgdGFic1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IGRlbnNpdHlNb2RlKHZhbHVlOiBUYWJEZXN0aW55TW9kZSkge1xuICAgICAgICAvLyBTa2lwIGZpcnN0IHZhbHVlICYmIHZhbHVlIGRvZXNuJ3QgZXF1YWwgdG8gcHJldmlvdXMgb25lXG4gICAgICAgIGlmICh0aGlzLl9kZW5zaXR5TW9kZSAmJiB2YWx1ZSAhPT0gdGhpcy5fZGVuc2l0eU1vZGUpIHtcbiAgICAgICAgICAgIHRoaXMuX3RyaWdnZXJSZWNhbGN1bGF0aW9uVmlzaWJsZUl0ZW1zKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fZGVuc2l0eU1vZGUgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICAvKiogQ3VycmVudGx5IHNlbGVjdGVkIHRhYiBVbmlxdWUgSUQuICovXG4gICAgQElucHV0KClcbiAgICBzZWxlY3RlZFVpZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEVtaXRzIHdoZW4gc29tZSB0YWIgaXMgc2VsZWN0ZWQuXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgc2VsZWN0ZWQ6IEV2ZW50RW1pdHRlcjxJY29uVGFiQmFySXRlbT4gPSBuZXcgRXZlbnRFbWl0dGVyPEljb25UYWJCYXJJdGVtPigpO1xuXG4gICAgLyoqIEVtaXRzIHdoZW4gc2VsZWN0ZWQgdGFiIFVuaXF1ZSBJRCBjaGFuZ2VzLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHNlbGVjdGVkVWlkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmcgfCB1bmRlZmluZWQ+KCk7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gUmVmZXJlbmNlIHRvIE92ZXJmbG93TGlzdERpcmVjdGl2ZVxuICAgICAqL1xuICAgIEBWaWV3Q2hpbGQoT3ZlcmZsb3dMaXN0RGlyZWN0aXZlKVxuICAgIG92ZXJmbG93RGlyZWN0aXZlOiBPdmVyZmxvd0xpc3REaXJlY3RpdmU7XG5cbiAgICAvKiogSGVhZGVyIGVsZW1lbnQgcmVmZXJlbmNlLiAqL1xuICAgIEBWaWV3Q2hpbGQoJ3RhYmxpc3QnLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgICBoZWFkZXJFbGVtZW50OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2V4dHJhVGFicyQgPSBzaWduYWw8SWNvblRhYkJhckl0ZW1bXT4oW10pO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfbGFzdFZpc2libGVUYWJJbmRleDogbnVtYmVyO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfZXh0cmFJdGVtcyQgPSBzaWduYWwoZmFsc2UpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWFkb25seSBfaW5EeW5hbWljUGFnZSA9ICEhaW5qZWN0KEZEX0RZTkFNSUNfUEFHRSwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IF9jZCA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG5cbiAgICAvKiogQEhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBfbmdab25lID0gaW5qZWN0KE5nWm9uZSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2RlbnNpdHlNb2RlOiBUYWJEZXN0aW55TW9kZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZGVzdHJveWVkID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKGNoYW5nZXMudGFicyAmJiAhY2hhbmdlcy50YWJzLmZpcnN0Q2hhbmdlKSB7XG4gICAgICAgICAgICB0aGlzLl9pbml0VGFicygpO1xuICAgICAgICAgICAgdGhpcy5fdHJpZ2dlclJlY2FsY3VsYXRpb25WaXNpYmxlSXRlbXMoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY2hhbmdlcy5pc1J0bCAmJiAhY2hhbmdlcy5pc1J0bC5maXJzdENoYW5nZSkge1xuICAgICAgICAgICAgdGhpcy5fdHJpZ2dlclJlY2FsY3VsYXRpb25WaXNpYmxlSXRlbXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2luaXRUYWJzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3RyaWdnZXJSZWNhbGN1bGF0aW9uVmlzaWJsZUl0ZW1zKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZGVzdHJveWVkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQHBhcmFtIHNlbGVjdGVkSXRlbVxuICAgICAqIEBwYXJhbSBldmVudFxuICAgICAqL1xuICAgIF9zZWxlY3RJdGVtKHNlbGVjdGVkSXRlbTogSWNvblRhYkJhckl0ZW0sIGV2ZW50PzogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgZXZlbnQ/LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB0aGlzLnNlbGVjdGVkVWlkID0gc2VsZWN0ZWRJdGVtLnVJZDtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFVpZENoYW5nZS5lbWl0KHRoaXMuc2VsZWN0ZWRVaWQpO1xuICAgICAgICBzZWxlY3RlZEl0ZW0uYmFkZ2UgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZC5lbWl0KHNlbGVjdGVkSXRlbSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfa2V5RG93bkhhbmRsZXIoXG4gICAgICAgIGV2ZW50OiBLZXlib2FyZEV2ZW50LFxuICAgICAgICB0YWI6IEljb25UYWJCYXJJdGVtIHwgdW5kZWZpbmVkLFxuICAgICAgICBjdXJyZW50SW5kZXg6IG51bWJlcixcbiAgICAgICAgcG9wb3Zlcj86IFRleHRUeXBlUG9wb3ZlckNvbXBvbmVudFxuICAgICk6IHZvaWQge1xuICAgICAgICBpZiAodGFiICYmIEtleVV0aWwuaXNLZXlDb2RlKGV2ZW50LCBbU1BBQ0UsIEVOVEVSXSkpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICB0aGlzLl9zZWxlY3RJdGVtKHRhYik7XG4gICAgICAgIH0gZWxzZSBpZiAoS2V5VXRpbC5pc0tleUNvZGUoZXZlbnQsIFtSSUdIVF9BUlJPVywgRE9XTl9BUlJPV10pKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgaWYgKEtleVV0aWwuaXNLZXlDb2RlKGV2ZW50LCBET1dOX0FSUk9XKSAmJiB0YWI/LnN1Ykl0ZW1zPy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBwb3BvdmVyPy5fb3BlblBvcG92ZXIoKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmlzUnRsID8gdGhpcy5fZm9jdXNQcmV2aW91c0l0ZW0oY3VycmVudEluZGV4KSA6IHRoaXMuX2ZvY3VzTmV4dEl0ZW0oY3VycmVudEluZGV4KTtcbiAgICAgICAgfSBlbHNlIGlmIChLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgW0xFRlRfQVJST1csIFVQX0FSUk9XXSkpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICB0aGlzLmlzUnRsID8gdGhpcy5fZm9jdXNOZXh0SXRlbShjdXJyZW50SW5kZXgpIDogdGhpcy5fZm9jdXNQcmV2aW91c0l0ZW0oY3VycmVudEluZGV4KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIGZvY3VzZXMgbmV4dCB0YWIgKi9cbiAgICBfZm9jdXNOZXh0SXRlbShjdXJyZW50SW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBjb25zdCBuZXh0SW5kZXggPSBjdXJyZW50SW5kZXggPT09IHRoaXMudGFicy5sZW5ndGggLSAxID8gMCA6IGN1cnJlbnRJbmRleCArIDE7XG4gICAgICAgIHRoaXMuX2ZvY3VzSXRlbShuZXh0SW5kZXgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIGZvY3VzZXMgcHJldmlvdXMgdGFiICovXG4gICAgX2ZvY3VzUHJldmlvdXNJdGVtKGN1cnJlbnRJbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGlmIChjdXJyZW50SW5kZXggPT09IDApIHtcbiAgICAgICAgICAgIC8vIGlmIGN1cnJlbnQgZm9jdXNlZCBlbGVtZW50IGlzIGZpcnN0LCBmb2N1cyB0aGUgbGFzdCBvbmUuIElmIHRhYnMgYXJlIG92ZXJmbG93ZWQsIGZvY3VzIHRoZSBsYXN0IHRhYiBpbiB0aGUgcG9wb3ZlclxuICAgICAgICAgICAgdGhpcy5fZm9jdXNJdGVtKHRoaXMudGFicy5sZW5ndGggLSAxLCB0cnVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2ZvY3VzSXRlbShjdXJyZW50SW5kZXggLSAxKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAcGFyYW0gdGFiSW5kZXggaW5kZXggb2YgdGhlIHRhYiB0byBhcHBseSBmb2N1c1xuICAgICAqIEBwYXJhbSBmb2N1c0xhc3Qgd2hldGhlciB0byBmb2N1cyBmaXJzdCBvciBsYXN0IGl0ZW0gaW4gdGhlIHBvcG92ZXJcbiAgICAgKi9cbiAgICBfZm9jdXNJdGVtKHRhYkluZGV4OiBudW1iZXIsIGZvY3VzTGFzdCA9IGZhbHNlKTogdm9pZCB7XG4gICAgICAgIGlmICh0YWJJbmRleCA+IHRoaXMuX2xhc3RWaXNpYmxlVGFiSW5kZXgpIHtcbiAgICAgICAgICAgIHRoaXMuX3RhYkJhclBvcG92ZXIuX29wZW5Qb3BvdmVyKGZvY3VzTGFzdCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9nZXRUYWJVSUVsZW1lbnRGb2N1c2FibGUodGhpcy5fdGFiVUlFbGVtZW50cy5nZXQodGFiSW5kZXgpKT8uZm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAcGFyYW0gc2VsZWN0ZWRJdGVtXG4gICAgICogQGRlc2NyaXB0aW9uIHNlbGVjdCBleHRyYSBpdGVtIGluc2lkZSBwb3BvdmVyXG4gICAgICovXG4gICAgX3NlbGVjdEV4dHJhSXRlbShzZWxlY3RlZEl0ZW06IEljb25UYWJCYXJJdGVtKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHRhYnMgPSBbLi4udGhpcy50YWJzXTtcbiAgICAgICAgY29uc3QgZGVsZXRlZEl0ZW0gPSB0YWJzLnNwbGljZSh0aGlzLl9sYXN0VmlzaWJsZVRhYkluZGV4LCAxLCBzZWxlY3RlZEl0ZW0pWzBdIGFzIEljb25UYWJCYXJJdGVtO1xuICAgICAgICB0YWJzLnNwbGljZShzZWxlY3RlZEl0ZW0uaW5kZXgsIDEsIGRlbGV0ZWRJdGVtKTtcbiAgICAgICAgdGhpcy50YWJzID0gdGFicztcbiAgICAgICAgY29uc3QgZXh0cmFUYWJzID0gWy4uLnRoaXMuX2V4dHJhVGFicyQoKV07XG5cbiAgICAgICAgZGVsZXRlZEl0ZW0uaW5kZXggPSBzZWxlY3RlZEl0ZW0uaW5kZXg7XG4gICAgICAgIGRlbGV0ZWRJdGVtLnVJZCA9IGAke2RlbGV0ZWRJdGVtLmluZGV4fWA7XG4gICAgICAgIGNvbnN0IGl0ZW1Ub1BvcG92ZXIgPSBjbG9uZURlZXAoZGVsZXRlZEl0ZW0pO1xuICAgICAgICBkZWxldGVkSXRlbS5oaWRkZW4gPSB0cnVlO1xuICAgICAgICBkZWxldGVkSXRlbS5jc3NDbGFzc2VzLnB1c2goSUNPTl9UQUJfSElEREVOX0NMQVNTX05BTUUpO1xuXG4gICAgICAgIGxldCBpbmRleEluRXh0cmFJdGVtcztcbiAgICAgICAgdGhpcy5fZXh0cmFUYWJzJCgpLmZvckVhY2goKGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBpZiAoaXRlbS5pbmRleCA9PT0gc2VsZWN0ZWRJdGVtLmluZGV4KSB7XG4gICAgICAgICAgICAgICAgaW5kZXhJbkV4dHJhSXRlbXMgPSBpbmRleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgc2VsZWN0ZWRJdGVtLmluZGV4ID0gdGhpcy5fbGFzdFZpc2libGVUYWJJbmRleDtcbiAgICAgICAgc2VsZWN0ZWRJdGVtLnVJZCA9IGAke3NlbGVjdGVkSXRlbS5pbmRleH1gO1xuICAgICAgICBzZWxlY3RlZEl0ZW0uaGlkZGVuID0gZmFsc2U7XG4gICAgICAgIGlmIChzZWxlY3RlZEl0ZW0uY29sb3IpIHtcbiAgICAgICAgICAgIHNlbGVjdGVkSXRlbS5jc3NDbGFzc2VzID0gW2BmZC1pY29uLXRhYi1iYXJfX2l0ZW0tLSR7c2VsZWN0ZWRJdGVtLmNvbG9yfWBdO1xuICAgICAgICB9XG4gICAgICAgIGV4dHJhVGFicy5zcGxpY2UoaW5kZXhJbkV4dHJhSXRlbXMsIDEsIGl0ZW1Ub1BvcG92ZXIpO1xuICAgICAgICB0aGlzLl9leHRyYVRhYnMkLnNldChleHRyYVRhYnMpO1xuXG4gICAgICAgIHRoaXMuX3NlbGVjdEl0ZW0oc2VsZWN0ZWRJdGVtKTtcbiAgICAgICAgdGhpcy5fdHJpZ2dlclJlY2FsY3VsYXRpb25WaXNpYmxlSXRlbXMoKTtcbiAgICAgICAgdGhpcy5fZm9jdXNJdGVtKHRoaXMuX2xhc3RWaXNpYmxlVGFiSW5kZXgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAcGFyYW0gZXh0cmFJdGVtc1xuICAgICAqIEBkZXNjcmlwdGlvbiByZWNhbGN1bGF0ZSBfbmV4dFN0ZXBzIGFuZCBfcHJldlN0ZXBzIGFycmF5IGlmIHdlIGhhdmUgZXh0cmEgaXRlbXNcbiAgICAgKi9cbiAgICBfcmVjYWxjdWxhdGVWaXNpYmxlSXRlbXMoZXh0cmFJdGVtczogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2V4dHJhSXRlbXMkLnNldChleHRyYUl0ZW1zID4gMCk7XG4gICAgICAgIHRoaXMuX2NkLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgY29uc3QgdGFicyA9IFsuLi50aGlzLnRhYnNdO1xuICAgICAgICBjb25zdCBleHRyYVRhYnM6IEljb25UYWJCYXJJdGVtW10gPSBbXTtcbiAgICAgICAgdGhpcy5fbGFzdFZpc2libGVUYWJJbmRleCA9IHRhYnMubGVuZ3RoIC0gMSAtIGV4dHJhSXRlbXM7XG4gICAgICAgIHRhYnMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgaXRlbS5oaWRkZW4gPSBmYWxzZTtcbiAgICAgICAgICAgIGl0ZW0uY3NzQ2xhc3NlcyA9IGl0ZW0uY3NzQ2xhc3Nlcy5maWx0ZXIoKGNzc0NsYXNzKSA9PiBjc3NDbGFzcyAhPT0gSUNPTl9UQUJfSElEREVOX0NMQVNTX05BTUUpO1xuICAgICAgICB9KTtcblxuICAgICAgICBmb3IgKGxldCBpID0gdGhpcy5fbGFzdFZpc2libGVUYWJJbmRleCArIDE7IGkgPCB0YWJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCB0YWIgPSB0YWJzW2ldO1xuICAgICAgICAgICAgZXh0cmFUYWJzLnB1c2goY2xvbmVEZWVwKHRhYikpO1xuICAgICAgICAgICAgdGFiLmhpZGRlbiA9IHRydWU7XG4gICAgICAgICAgICB0YWIuY3NzQ2xhc3Nlcy5wdXNoKElDT05fVEFCX0hJRERFTl9DTEFTU19OQU1FKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9leHRyYVRhYnMkLnNldChleHRyYVRhYnMpO1xuICAgICAgICB0aGlzLl9jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIE1hcHBpbmcgZnVuY3Rpb24gdG8gcmVzb2x2ZSBVSSB0YWIgZWxlbWVudCB0byBpdCdzIGZvY3VzYWJsZSBwYXJ0L2Rlc2NlbmRhbnRcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgX2dldFRhYlVJRWxlbWVudEZvY3VzYWJsZSh0YWJVSUVsZW1lbnQ6IHVua25vd24pOiBIVE1MRWxlbWVudCB8IG51bGwge1xuICAgICAgICBpZiAodGFiVUlFbGVtZW50ICYmIHR5cGVvZiB0YWJVSUVsZW1lbnQgPT09ICdvYmplY3QnICYmICduYXRpdmVFbGVtZW50JyBpbiB0YWJVSUVsZW1lbnQpIHtcbiAgICAgICAgICAgIGlmICgoPEVsZW1lbnRSZWY+dGFiVUlFbGVtZW50KS5uYXRpdmVFbGVtZW50IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gKDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj50YWJVSUVsZW1lbnQpLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzRGV2TW9kZSgpKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oJ0ZhaWxlZCB0byBnZXQgZm9jdXNhYmxlIHRhYiBlbGVtZW50Jyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBkZXNjcmlwdGlvbiB0cmlnZ2VyIHJlY2FsY3VsYXRpb24gaXRlbXMsIG5lZWQgdG8gZG8gaXQgYXN5bmNocm9ub3VzbHkgYWZ0ZXIgZG9tIHdhcyByZXJlbmRlcmVkXG4gICAgICovXG4gICAgcHJvdGVjdGVkIF90cmlnZ2VyUmVjYWxjdWxhdGlvblZpc2libGVJdGVtcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fbmdab25lLm9uTWljcm90YXNrRW1wdHkucGlwZSh0YWtlKDEpLCB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZikpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5vdmVyZmxvd0RpcmVjdGl2ZSAmJiAhdGhpcy5fZGVzdHJveWVkKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZXh0cmEgPSB0aGlzLm92ZXJmbG93RGlyZWN0aXZlLmdldEFtb3VudE9mRXh0cmFJdGVtcygpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3JlY2FsY3VsYXRlVmlzaWJsZUl0ZW1zKGV4dHJhKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAZGVzY3JpcHRpb24gaW5pdGlhbGl6ZSBzdGF0ZSBvZiB0YWJzXG4gICAgICovXG4gICAgcHJvdGVjdGVkIF9pbml0VGFicygpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRJdGVtID0gdGhpcy5fZmluZEFjdGl2ZVRhYklkKHRoaXMudGFicykgfHwgdGhpcy50YWJzWzBdO1xuICAgICAgICB0aGlzLnNlbGVjdGVkVWlkID0gc2VsZWN0ZWRJdGVtPy51SWQ7XG4gICAgICAgIHRoaXMuX2xhc3RWaXNpYmxlVGFiSW5kZXggPSB0aGlzLnRhYnMubGVuZ3RoIC0gMTtcbiAgICAgICAgaWYgKHNlbGVjdGVkSXRlbSkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFVpZENoYW5nZS5lbWl0KHRoaXMuc2VsZWN0ZWRVaWQpO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZC5lbWl0KHNlbGVjdGVkSXRlbSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9maW5kQWN0aXZlVGFiSWQodGFiczogSWNvblRhYkJhckl0ZW1bXSk6IEljb25UYWJCYXJJdGVtIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgbGV0IGFjdGl2ZVRhYjogSWNvblRhYkJhckl0ZW0gfCB1bmRlZmluZWQ7XG4gICAgICAgIGZvciAoY29uc3QgdGFiIG9mIHRhYnMpIHtcbiAgICAgICAgICAgIGlmICh0YWIuYWN0aXZlKSB7XG4gICAgICAgICAgICAgICAgYWN0aXZlVGFiID0gdGFiO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0YWIuc3ViSXRlbXMpIHtcbiAgICAgICAgICAgICAgICBhY3RpdmVUYWIgPSB0aGlzLl9maW5kQWN0aXZlVGFiSWQodGFiLnN1Ykl0ZW1zKTtcbiAgICAgICAgICAgICAgICBpZiAoYWN0aXZlVGFiKSB7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBhY3RpdmVUYWI7XG4gICAgfVxufVxuIl19
276
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi10YWItYmFyLWJhc2UuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2ljb24tdGFiLWJhci9jb21wb25lbnRzL2ljb24tdGFiLWJhci1iYXNlLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCxpQkFBaUIsRUFDakIsVUFBVSxFQUNWLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsU0FBUyxFQUNULE1BQU0sRUFJTixNQUFNLEVBRU4sTUFBTSxFQUVOLFNBQVMsRUFDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDcEcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzVFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3RDLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFRMUQsTUFBTSxPQUFnQixjQUFjO0lBRHBDO1FBVUk7O1dBRUc7UUFFSCxTQUFJLEdBQXFCLEVBQUUsQ0FBQztRQStCNUI7O1dBRUc7UUFFSCxhQUFRLEdBQWlDLElBQUksWUFBWSxFQUFrQixDQUFDO1FBRTVFLGlEQUFpRDtRQUVqRCxzQkFBaUIsR0FBRyxJQUFJLFlBQVksRUFBc0IsQ0FBQztRQVkzRCxjQUFjO1FBQ2QsZ0JBQVcsR0FBRyxNQUFN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LENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUM5QyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUNwQztJQUNMLENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxJQUFzQjtRQUMzQyxJQUFJLFNBQXFDLENBQUM7UUFDMUMsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLEVBQUU7WUFDcEIsSUFBSSxHQUFHLENBQUMsTUFBTSxFQUFFO2dCQUNaLFNBQVMsR0FBRyxHQUFHLENBQUM7Z0JBQ2hCLE1BQU07YUFDVDtpQkFBTSxJQUFJLEdBQUcsQ0FBQyxRQUFRLEVBQUU7Z0JBQ3JCLFNBQVMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUNoRCxJQUFJLFNBQVMsRUFBRTtvQkFDWCxNQUFNO2lCQUNUO2FBQ0o7U0FDSjtRQUVELE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7OEdBMVRpQixjQUFjO2tHQUFkLGNBQWMsa1NBeURyQixxQkFBcUIsc0hBSUYsVUFBVTs7MkZBN0R0QixjQUFjO2tCQURuQyxTQUFTOzhCQWNOLElBQUk7c0JBREgsS0FBSztnQkFPTixLQUFLO3NCQURKLEtBQUs7Z0JBUU4saUJBQWlCO3NCQURoQixLQUFLO2dCQU9GLFdBQVc7c0JBRGQsS0FBSztnQkFXTixXQUFXO3NCQURWLEtBQUs7Z0JBT04sUUFBUTtzQkFEUCxNQUFNO2dCQUtQLGlCQUFpQjtzQkFEaEIsTUFBTTtnQkFPUCxpQkFBaUI7c0JBRGhCLFNBQVM7dUJBQUMscUJBQXFCO2dCQUtoQyxhQUFhO3NCQURaLFNBQVM7dUJBQUMsU0FBUyxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBEZXN0cm95UmVmLFxuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgaXNEZXZNb2RlLFxuICAgIE5nWm9uZSxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgUXVlcnlMaXN0LFxuICAgIHNpZ25hbCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IERPV05fQVJST1csIEVOVEVSLCBMRUZUX0FSUk9XLCBSSUdIVF9BUlJPVywgU1BBQ0UsIFVQX0FSUk9XIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IEtleVV0aWwsIE92ZXJmbG93TGlzdERpcmVjdGl2ZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IEZEX0RZTkFNSUNfUEFHRSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9keW5hbWljLXBhZ2UnO1xuaW1wb3J0IHsgY2xvbmVEZWVwIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IElDT05fVEFCX0hJRERFTl9DTEFTU19OQU1FIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IEljb25UYWJCYXJJdGVtIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9pY29uLXRhYi1iYXItaXRlbS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgVGFiQ29sb3JBc3NvY2lhdGlvbnMgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3RhYi1jb2xvci1hc3NvY2lhdGlvbnMuaW50ZXJmYWNlJztcbmltcG9ydCB7IFRhYkRlc3RpbnlNb2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgSWNvblRhYkJhclBvcG92ZXJCYXNlIH0gZnJvbSAnLi9wb3BvdmVycy9pY29uLXRhYi1iYXItcG9wb3Zlci1iYXNlLmNsYXNzJztcbmltcG9ydCB7IFRleHRUeXBlUG9wb3ZlckNvbXBvbmVudCB9IGZyb20gJy4vcG9wb3ZlcnMvdGV4dC10eXBlLXBvcG92ZXIvdGV4dC10eXBlLXBvcG92ZXIuY29tcG9uZW50JztcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgSWNvblRhYkJhckJhc2UgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogTGlzdCBvZiB0YWIgZWxlbWVudHMsIHRoYXQgY2FuIHJlY2VpdmUgZm9jdXMuXG4gICAgICogVGhlcmUncyBhIHNlcGFyYXRlIG1hcHBpbmcgZnVuY3Rpb24gdG8gZ2V0IGFjdHVhbCBodG1sIGVsZW1lbnQ6IGBfZ2V0VGFiVUlFbGVtZW50Rm9jdXNhYmxlYFxuICAgICAqL1xuICAgIGFic3RyYWN0IF90YWJVSUVsZW1lbnRzOiBRdWVyeUxpc3Q8dW5rbm93bj47XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBhYnN0cmFjdCBfdGFiQmFyUG9wb3ZlcjogSWNvblRhYkJhclBvcG92ZXJCYXNlO1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBBIHRhYiBiYXIgY29uZmlndXJhdGlvbiB0aGF0IHN0b3JlcyB0aGUgc3RhdGUgb2YgZWFjaCB0YWIuIEJhc2VkIG9uIHRoaXMgY29uZmlndXJhdGlvbiwgYSB0YWIgYmFyIGlzIHJlcHJlc2VudGluZy5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHRhYnM6IEljb25UYWJCYXJJdGVtW10gPSBbXTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBGbGFnIHJlcHJlc2VudGluZyBydGwgbW9kZVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgaXNSdGw6IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQXNzb2NpYXRpb25zIGZvciBjb2xvcnMgb2YgdGhlIHRhYnMuXG4gICAgICogSWYgYW55IG9mIHRoZSBjb2xvciBhc3NvY2lhdGlvbnMgcHJvdmlkZWQsIHRoZXknbGwgYmUgcmVhZCBieSBzY3JlZW5yZWFkZXIgaW5zdGVhZCBvZiB0aGUgYWN0dWFsIGNvbG9yXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBjb2xvckFzc29jaWF0aW9uczogVGFiQ29sb3JBc3NvY2lhdGlvbnM7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gZGVuc2l0eU1vZGUgc2V0dGVyIHRyaWdnZXJzIHRhYnMgdG8gcmUtY2FsY3VsYXRpb24gb3ZlcmZsb3dlZCB0YWJzXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgZGVuc2l0eU1vZGUodmFsdWU6IFRhYkRlc3RpbnlNb2RlKSB7XG4gICAgICAgIC8vIFNraXAgZmlyc3QgdmFsdWUgJiYgdmFsdWUgZG9lc24ndCBlcXVhbCB0byBwcmV2aW91cyBvbmVcbiAgICAgICAgaWYgKHRoaXMuX2RlbnNpdHlNb2RlICYmIHZhbHVlICE9PSB0aGlzLl9kZW5zaXR5TW9kZSkge1xuICAgICAgICAgICAgdGhpcy5fdHJpZ2dlclJlY2FsY3VsYXRpb25WaXNpYmxlSXRlbXMoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9kZW5zaXR5TW9kZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIC8qKiBDdXJyZW50bHkgc2VsZWN0ZWQgdGFiIFVuaXF1ZSBJRC4gKi9cbiAgICBASW5wdXQoKVxuICAgIHNlbGVjdGVkVWlkOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gRW1pdHMgd2hlbiBzb21lIHRhYiBpcyBzZWxlY3RlZC5cbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBzZWxlY3RlZDogRXZlbnRFbWl0dGVyPEljb25UYWJCYXJJdGVtPiA9IG5ldyBFdmVudEVtaXR0ZXI8SWNvblRhYkJhckl0ZW0+KCk7XG5cbiAgICAvKiogRW1pdHMgd2hlbiBzZWxlY3RlZCB0YWIgVW5pcXVlIElEIGNoYW5nZXMuICovXG4gICAgQE91dHB1dCgpXG4gICAgc2VsZWN0ZWRVaWRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZyB8IHVuZGVmaW5lZD4oKTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBSZWZlcmVuY2UgdG8gT3ZlcmZsb3dMaXN0RGlyZWN0aXZlXG4gICAgICovXG4gICAgQFZpZXdDaGlsZChPdmVyZmxvd0xpc3REaXJlY3RpdmUpXG4gICAgb3ZlcmZsb3dEaXJlY3RpdmU6IE92ZXJmbG93TGlzdERpcmVjdGl2ZTtcblxuICAgIC8qKiBIZWFkZXIgZWxlbWVudCByZWZlcmVuY2UuICovXG4gICAgQFZpZXdDaGlsZCgndGFibGlzdCcsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICAgIGhlYWRlckVsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfZXh0cmFUYWJzJCA9IHNpZ25hbDxJY29uVGFiQmFySXRlbVtdPihbXSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9sYXN0VmlzaWJsZVRhYkluZGV4OiBudW1iZXI7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9leHRyYUl0ZW1zJCA9IHNpZ25hbChmYWxzZSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlYWRvbmx5IF9pbkR5bmFtaWNQYWdlID0gISFpbmplY3QoRkRfRFlOQU1JQ19QQUdFLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgX2NkID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcblxuICAgIC8qKiBASGlkZGVuICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IF9uZ1pvbmUgPSBpbmplY3QoTmdab25lKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZGVuc2l0eU1vZGU6IFRhYkRlc3RpbnlNb2RlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9kZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9kZXN0cm95ZWQgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoY2hhbmdlcy50YWJzICYmICFjaGFuZ2VzLnRhYnMuZmlyc3RDaGFuZ2UpIHtcbiAgICAgICAgICAgIHRoaXMuX2luaXRUYWJzKCk7XG4gICAgICAgICAgICB0aGlzLl90cmlnZ2VyUmVjYWxjdWxhdGlvblZpc2libGVJdGVtcygpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjaGFuZ2VzLmlzUnRsICYmICFjaGFuZ2VzLmlzUnRsLmZpcnN0Q2hhbmdlKSB7XG4gICAgICAgICAgICB0aGlzLl90cmlnZ2VyUmVjYWxjdWxhdGlvblZpc2libGVJdGVtcygpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNoYW5nZXMuc2VsZWN0ZWRVaWQgJiYgIWNoYW5nZXMuc2VsZWN0ZWRVaWQuZmlyc3RDaGFuZ2UpIHtcbiAgICAgICAgICAgIGNvbnN0IGlzRXh0cmFUYWIgPSB0aGlzLl9leHRyYVRhYnMkKCkuZmluZCgodGFiKSA9PiB0YWIudUlkID09PSB0aGlzLnNlbGVjdGVkVWlkKTtcbiAgICAgICAgICAgIGlmIChpc0V4dHJhVGFiKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc2VsZWN0RXh0cmFJdGVtKGlzRXh0cmFUYWIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5faW5pdFRhYnMoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdHJpZ2dlclJlY2FsY3VsYXRpb25WaXNpYmxlSXRlbXMoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9kZXN0cm95ZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAcGFyYW0gc2VsZWN0ZWRJdGVtXG4gICAgICogQHBhcmFtIGV2ZW50XG4gICAgICovXG4gICAgX3NlbGVjdEl0ZW0oc2VsZWN0ZWRJdGVtOiBJY29uVGFiQmFySXRlbSwgZXZlbnQ/OiBFdmVudCk6IHZvaWQge1xuICAgICAgICBldmVudD8uc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRVaWQgPSBzZWxlY3RlZEl0ZW0udUlkO1xuICAgICAgICB0aGlzLnNlbGVjdGVkVWlkQ2hhbmdlLmVtaXQodGhpcy5zZWxlY3RlZFVpZCk7XG4gICAgICAgIHNlbGVjdGVkSXRlbS5iYWRnZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLnNlbGVjdGVkLmVtaXQoc2VsZWN0ZWRJdGVtKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9rZXlEb3duSGFuZGxlcihcbiAgICAgICAgZXZlbnQ6IEtleWJvYXJkRXZlbnQsXG4gICAgICAgIHRhYjogSWNvblRhYkJhckl0ZW0gfCB1bmRlZmluZWQsXG4gICAgICAgIGN1cnJlbnRJbmRleDogbnVtYmVyLFxuICAgICAgICBwb3BvdmVyPzogVGV4dFR5cGVQb3BvdmVyQ29tcG9uZW50XG4gICAgKTogdm9pZCB7XG4gICAgICAgIGlmICh0YWIgJiYgS2V5VXRpbC5pc0tleUNvZGUoZXZlbnQsIFtTUEFDRSwgRU5URVJdKSkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIHRoaXMuX3NlbGVjdEl0ZW0odGFiKTtcbiAgICAgICAgfSBlbHNlIGlmIChLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgW1JJR0hUX0FSUk9XLCBET1dOX0FSUk9XXSkpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBpZiAoS2V5VXRpbC5pc0tleUNvZGUoZXZlbnQsIERPV05fQVJST1cpICYmIHRhYj8uc3ViSXRlbXM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHBvcG92ZXI/Ll9vcGVuUG9wb3ZlcigpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuaXNSdGwgPyB0aGlzLl9mb2N1c1ByZXZpb3VzSXRlbShjdXJyZW50SW5kZXgpIDogdGhpcy5fZm9jdXNOZXh0SXRlbShjdXJyZW50SW5kZXgpO1xuICAgICAgICB9IGVsc2UgaWYgKEtleVV0aWwuaXNLZXlDb2RlKGV2ZW50LCBbTEVGVF9BUlJPVywgVVBfQVJST1ddKSkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIHRoaXMuaXNSdGwgPyB0aGlzLl9mb2N1c05leHRJdGVtKGN1cnJlbnRJbmRleCkgOiB0aGlzLl9mb2N1c1ByZXZpb3VzSXRlbShjdXJyZW50SW5kZXgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gZm9jdXNlcyBuZXh0IHRhYiAqL1xuICAgIF9mb2N1c05leHRJdGVtKGN1cnJlbnRJbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG5leHRJbmRleCA9IGN1cnJlbnRJbmRleCA9PT0gdGhpcy50YWJzLmxlbmd0aCAtIDEgPyAwIDogY3VycmVudEluZGV4ICsgMTtcbiAgICAgICAgdGhpcy5fZm9jdXNJdGVtKG5leHRJbmRleCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gZm9jdXNlcyBwcmV2aW91cyB0YWIgKi9cbiAgICBfZm9jdXNQcmV2aW91c0l0ZW0oY3VycmVudEluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgaWYgKGN1cnJlbnRJbmRleCA9PT0gMCkge1xuICAgICAgICAgICAgLy8gaWYgY3VycmVudCBmb2N1c2VkIGVsZW1lbnQgaXMgZmlyc3QsIGZvY3VzIHRoZSBsYXN0IG9uZS4gSWYgdGFicyBhcmUgb3ZlcmZsb3dlZCwgZm9jdXMgdGhlIGxhc3QgdGFiIGluIHRoZSBwb3BvdmVyXG4gICAgICAgICAgICB0aGlzLl9mb2N1c0l0ZW0odGhpcy50YWJzLmxlbmd0aCAtIDEsIHRydWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fZm9jdXNJdGVtKGN1cnJlbnRJbmRleCAtIDEpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBwYXJhbSB0YWJJbmRleCBpbmRleCBvZiB0aGUgdGFiIHRvIGFwcGx5IGZvY3VzXG4gICAgICogQHBhcmFtIGZvY3VzTGFzdCB3aGV0aGVyIHRvIGZvY3VzIGZpcnN0IG9yIGxhc3QgaXRlbSBpbiB0aGUgcG9wb3ZlclxuICAgICAqL1xuICAgIF9mb2N1c0l0ZW0odGFiSW5kZXg6IG51bWJlciwgZm9jdXNMYXN0ID0gZmFsc2UpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRhYkluZGV4ID4gdGhpcy5fbGFzdFZpc2libGVUYWJJbmRleCkge1xuICAgICAgICAgICAgdGhpcy5fdGFiQmFyUG9wb3Zlci5fb3BlblBvcG92ZXIoZm9jdXNMYXN0KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2dldFRhYlVJRWxlbWVudEZvY3VzYWJsZSh0aGlzLl90YWJVSUVsZW1lbnRzLmdldCh0YWJJbmRleCkpPy5mb2N1cygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBwYXJhbSBzZWxlY3RlZEl0ZW1cbiAgICAgKiBAZGVzY3JpcHRpb24gc2VsZWN0IGV4dHJhIGl0ZW0gaW5zaWRlIHBvcG92ZXJcbiAgICAgKi9cbiAgICBfc2VsZWN0RXh0cmFJdGVtKHNlbGVjdGVkSXRlbTogSWNvblRhYkJhckl0ZW0pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdGFicyA9IFsuLi50aGlzLnRhYnNdO1xuICAgICAgICBjb25zdCBkZWxldGVkSXRlbSA9IHRhYnMuc3BsaWNlKHRoaXMuX2xhc3RWaXNpYmxlVGFiSW5kZXgsIDEsIHNlbGVjdGVkSXRlbSlbMF0gYXMgSWNvblRhYkJhckl0ZW07XG4gICAgICAgIHRhYnMuc3BsaWNlKHNlbGVjdGVkSXRlbS5pbmRleCwgMSwgZGVsZXRlZEl0ZW0pO1xuICAgICAgICB0aGlzLnRhYnMgPSB0YWJzO1xuICAgICAgICBjb25zdCBleHRyYVRhYnMgPSBbLi4udGhpcy5fZXh0cmFUYWJzJCgpXTtcblxuICAgICAgICBkZWxldGVkSXRlbS5pbmRleCA9IHNlbGVjdGVkSXRlbS5pbmRleDtcbiAgICAgICAgZGVsZXRlZEl0ZW0udUlkID0gYCR7ZGVsZXRlZEl0ZW0uaW5kZXh9YDtcbiAgICAgICAgY29uc3QgaXRlbVRvUG9wb3ZlciA9IGNsb25lRGVlcChkZWxldGVkSXRlbSk7XG4gICAgICAgIGRlbGV0ZWRJdGVtLmhpZGRlbiA9IHRydWU7XG4gICAgICAgIGRlbGV0ZWRJdGVtLmNzc0NsYXNzZXMucHVzaChJQ09OX1RBQl9ISURERU5fQ0xBU1NfTkFNRSk7XG5cbiAgICAgICAgbGV0IGluZGV4SW5FeHRyYUl0ZW1zO1xuICAgICAgICB0aGlzLl9leHRyYVRhYnMkKCkuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIGlmIChpdGVtLmluZGV4ID09PSBzZWxlY3RlZEl0ZW0uaW5kZXgpIHtcbiAgICAgICAgICAgICAgICBpbmRleEluRXh0cmFJdGVtcyA9IGluZGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBzZWxlY3RlZEl0ZW0uaW5kZXggPSB0aGlzLl9sYXN0VmlzaWJsZVRhYkluZGV4O1xuICAgICAgICBzZWxlY3RlZEl0ZW0udUlkID0gYCR7c2VsZWN0ZWRJdGVtLmluZGV4fWA7XG4gICAgICAgIHNlbGVjdGVkSXRlbS5oaWRkZW4gPSBmYWxzZTtcbiAgICAgICAgaWYgKHNlbGVjdGVkSXRlbS5jb2xvcikge1xuICAgICAgICAgICAgc2VsZWN0ZWRJdGVtLmNzc0NsYXNzZXMgPSBbYGZkLWljb24tdGFiLWJhcl9faXRlbS0tJHtzZWxlY3RlZEl0ZW0uY29sb3J9YF07XG4gICAgICAgIH1cbiAgICAgICAgZXh0cmFUYWJzLnNwbGljZShpbmRleEluRXh0cmFJdGVtcywgMSwgaXRlbVRvUG9wb3Zlcik7XG4gICAgICAgIHRoaXMuX2V4dHJhVGFicyQuc2V0KGV4dHJhVGFicyk7XG5cbiAgICAgICAgdGhpcy5fc2VsZWN0SXRlbShzZWxlY3RlZEl0ZW0pO1xuICAgICAgICB0aGlzLl90cmlnZ2VyUmVjYWxjdWxhdGlvblZpc2libGVJdGVtcygpO1xuICAgICAgICB0aGlzLl9mb2N1c0l0ZW0odGhpcy5fbGFzdFZpc2libGVUYWJJbmRleCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBwYXJhbSBleHRyYUl0ZW1zXG4gICAgICogQGRlc2NyaXB0aW9uIHJlY2FsY3VsYXRlIF9uZXh0U3RlcHMgYW5kIF9wcmV2U3RlcHMgYXJyYXkgaWYgd2UgaGF2ZSBleHRyYSBpdGVtc1xuICAgICAqL1xuICAgIF9yZWNhbGN1bGF0ZVZpc2libGVJdGVtcyhleHRyYUl0ZW1zOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZXh0cmFJdGVtcyQuc2V0KGV4dHJhSXRlbXMgPiAwKTtcbiAgICAgICAgdGhpcy5fY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICBjb25zdCB0YWJzID0gWy4uLnRoaXMudGFic107XG4gICAgICAgIGNvbnN0IGV4dHJhVGFiczogSWNvblRhYkJhckl0ZW1bXSA9IFtdO1xuICAgICAgICB0aGlzLl9sYXN0VmlzaWJsZVRhYkluZGV4ID0gdGFicy5sZW5ndGggLSAxIC0gZXh0cmFJdGVtcztcbiAgICAgICAgdGFicy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICBpdGVtLmhpZGRlbiA9IGZhbHNlO1xuICAgICAgICAgICAgaXRlbS5jc3NDbGFzc2VzID0gaXRlbS5jc3NDbGFzc2VzLmZpbHRlcigoY3NzQ2xhc3MpID0+IGNzc0NsYXNzICE9PSBJQ09OX1RBQl9ISURERU5fQ0xBU1NfTkFNRSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGZvciAobGV0IGkgPSB0aGlzLl9sYXN0VmlzaWJsZVRhYkluZGV4ICsgMTsgaSA8IHRhYnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IHRhYiA9IHRhYnNbaV07XG4gICAgICAgICAgICBleHRyYVRhYnMucHVzaChjbG9uZURlZXAodGFiKSk7XG4gICAgICAgICAgICB0YWIuaGlkZGVuID0gdHJ1ZTtcbiAgICAgICAgICAgIHRhYi5jc3NDbGFzc2VzLnB1c2goSUNPTl9UQUJfSElEREVOX0NMQVNTX05BTUUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2V4dHJhVGFicyQuc2V0KGV4dHJhVGFicyk7XG4gICAgICAgIHRoaXMuX2NkLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogTWFwcGluZyBmdW5jdGlvbiB0byByZXNvbHZlIFVJIHRhYiBlbGVtZW50IHRvIGl0J3MgZm9jdXNhYmxlIHBhcnQvZGVzY2VuZGFudFxuICAgICAqL1xuICAgIHByb3RlY3RlZCBfZ2V0VGFiVUlFbGVtZW50Rm9jdXNhYmxlKHRhYlVJRWxlbWVudDogdW5rbm93bik6IEhUTUxFbGVtZW50IHwgbnVsbCB7XG4gICAgICAgIGlmICh0YWJVSUVsZW1lbnQgJiYgdHlwZW9mIHRhYlVJRWxlbWVudCA9PT0gJ29iamVjdCcgJiYgJ25hdGl2ZUVsZW1lbnQnIGluIHRhYlVJRWxlbWVudCkge1xuICAgICAgICAgICAgaWYgKCg8RWxlbWVudFJlZj50YWJVSUVsZW1lbnQpLm5hdGl2ZUVsZW1lbnQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAoPEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PnRhYlVJRWxlbWVudCkubmF0aXZlRWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNEZXZNb2RlKCkpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybignRmFpbGVkIHRvIGdldCBmb2N1c2FibGUgdGFiIGVsZW1lbnQnKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGRlc2NyaXB0aW9uIHRyaWdnZXIgcmVjYWxjdWxhdGlvbiBpdGVtcywgbmVlZCB0byBkbyBpdCBhc3luY2hyb25vdXNseSBhZnRlciBkb20gd2FzIHJlcmVuZGVyZWRcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgX3RyaWdnZXJSZWNhbGN1bGF0aW9uVmlzaWJsZUl0ZW1zKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9uZ1pvbmUub25NaWNyb3Rhc2tFbXB0eS5waXBlKHRha2UoMSksIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95UmVmKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLm92ZXJmbG93RGlyZWN0aXZlICYmICF0aGlzLl9kZXN0cm95ZWQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBleHRyYSA9IHRoaXMub3ZlcmZsb3dEaXJlY3RpdmUuZ2V0QW1vdW50T2ZFeHRyYUl0ZW1zKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fcmVjYWxjdWxhdGVWaXNpYmxlSXRlbXMoZXh0cmEpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2NkLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBkZXNjcmlwdGlvbiBpbml0aWFsaXplIHN0YXRlIG9mIHRhYnNcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgX2luaXRUYWJzKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBzZWxlY3RlZEl0ZW0gPSB0aGlzLl9maW5kQWN0aXZlVGFiSWQodGhpcy50YWJzKSB8fCB0aGlzLnRhYnNbMF07XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRVaWQgPSBzZWxlY3RlZEl0ZW0/LnVJZDtcbiAgICAgICAgdGhpcy5fbGFzdFZpc2libGVUYWJJbmRleCA9IHRoaXMudGFicy5sZW5ndGggLSAxO1xuICAgICAgICBpZiAoc2VsZWN0ZWRJdGVtKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkVWlkQ2hhbmdlLmVtaXQodGhpcy5zZWxlY3RlZFVpZCk7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkLmVtaXQoc2VsZWN0ZWRJdGVtKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX2ZpbmRBY3RpdmVUYWJJZCh0YWJzOiBJY29uVGFiQmFySXRlbVtdKTogSWNvblRhYkJhckl0ZW0gfCB1bmRlZmluZWQge1xuICAgICAgICBsZXQgYWN0aXZlVGFiOiBJY29uVGFiQmFySXRlbSB8IHVuZGVmaW5lZDtcbiAgICAgICAgZm9yIChjb25zdCB0YWIgb2YgdGFicykge1xuICAgICAgICAgICAgaWYgKHRhYi5hY3RpdmUpIHtcbiAgICAgICAgICAgICAgICBhY3RpdmVUYWIgPSB0YWI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRhYi5zdWJJdGVtcykge1xuICAgICAgICAgICAgICAgIGFjdGl2ZVRhYiA9IHRoaXMuX2ZpbmRBY3RpdmVUYWJJZCh0YWIuc3ViSXRlbXMpO1xuICAgICAgICAgICAgICAgIGlmIChhY3RpdmVUYWIpIHtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGFjdGl2ZVRhYjtcbiAgICB9XG59XG4iXX0=
@@ -180,6 +180,7 @@ export class IconTabBarComponent {
180
180
  }
181
181
  this._selectedUid.set(selectedItem.uId);
182
182
  this._selectItem(selectedItem);
183
+ this._cd.detectChanges();
183
184
  }
184
185
  /** @hidden */
185
186
  highlightActiveTab(id, scroll = false) {
@@ -360,4 +361,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImpor
360
361
  type: ViewChild,
361
362
  args: [IconTabBarBase]
362
363
  }] } });
363
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi10YWItYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vaWNvbi10YWItYmFyL2ljb24tdGFiLWJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2ljb24tdGFiLWJhci9pY29uLXRhYi1iYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUVILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULGVBQWUsRUFDZixVQUFVLEVBRVYsWUFBWSxFQUNaLFdBQVcsRUFDWCxLQUFLLEVBRUwsUUFBUSxFQUNSLE1BQU0sRUFDTixTQUFTLEVBRVQsU0FBUyxFQUNULFlBQVksRUFDWixpQkFBaUIsRUFDakIsZ0JBQWdCLEVBQ2hCLFFBQVEsRUFDUixNQUFNLEVBQ04sTUFBTSxFQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxxQkFBcUIsRUFBWSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDcEcsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRXJFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxVQUFVLEVBQVcsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdC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QkFBa0I7d0JBQ2xCLDZCQUE2QjtxQkFDaEM7OzBCQWdMSSxRQUFROzswQkFDUixRQUFRO3lDQTFLYixXQUFXO3NCQURWLEtBQUs7Z0JBT0YsVUFBVTtzQkFEYixLQUFLO2dCQWFOLFdBQVc7c0JBRFYsS0FBSztnQkFPTixXQUFXO3NCQURWLEtBQUs7Z0JBT04sbUJBQW1CO3NCQURsQixLQUFLO2dCQU9OLFlBQVk7c0JBRFgsS0FBSztnQkFLTixVQUFVO3NCQURULEtBQUs7Z0JBT04sVUFBVTtzQkFEVCxLQUFLO2dCQU9OLGlCQUFpQjtzQkFEaEIsS0FBSztnQkFPTixXQUFXO3NCQURWLEtBQUs7Z0JBUU4saUJBQWlCO3NCQURoQixLQUFLO2dCQVFOLFlBQVk7c0JBRFgsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFRdEMsZ0JBQWdCO3NCQURmLEtBQUs7Z0JBT04sZUFBZTtzQkFEZCxNQUFNO2dCQU9QLGdCQUFnQjtzQkFEZixNQUFNO2dCQUtQLFFBQVE7c0JBRFAsTUFBTTtnQkFLUCxRQUFRO3NCQURQLGVBQWU7dUJBQUMsc0JBQXNCLEVBQUUsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFO2dCQUsvRCxXQUFXO3NCQURWLGVBQWU7dUJBQUMsc0JBQXNCLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFO2dCQUs5RCxVQUFVO3NCQURULFNBQVM7dUJBQUMsa0JBQWtCO2dCQUs3QixhQUFhO3NCQURaLFlBQVk7dUJBQUMsNkJBQTZCO2dCQUkvQixXQUFXO3NCQUR0QixXQUFXO3VCQUFDLHNCQUFzQjtnQkFNbEIsY0FBYztzQkFEOUIsU0FBUzt1QkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBEZXN0cm95UmVmLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIElucHV0LFxuICAgIE9uSW5pdCxcbiAgICBPcHRpb25hbCxcbiAgICBPdXRwdXQsXG4gICAgUXVlcnlMaXN0LFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3Q2hpbGRyZW4sXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG4gICAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgICBjb21wdXRlZCxcbiAgICBpbmplY3QsXG4gICAgc2lnbmFsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgQ29udGVudERlbnNpdHlTZXJ2aWNlLCBOdWxsYWJsZSwgUnRsU2VydmljZSwgc2Nyb2xsVG9wIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgRkRfRFlOQU1JQ19QQUdFIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2R5bmFtaWMtcGFnZSc7XG5pbXBvcnQgeyBJY29uRm9udCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9pY29uJztcbmltcG9ydCB7IFNjcm9sbFNweURpcmVjdGl2ZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9zY3JvbGwtc3B5JztcbmltcG9ydCB7IFNjcm9sbGJhckRpcmVjdGl2ZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9zY3JvbGxiYXInO1xuaW1wb3J0IHsgRkRfVEFCTElTVCwgVGFiTGlzdCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9zaGFyZWQnO1xuaW1wb3J0IHsgZnJvbUV2ZW50IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaXJzdCwgc3RhcnRXaXRoIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgSWNvblRhYkJhckJhc2UgfSBmcm9tICcuL2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgSWNvblRhYkJhckZpbHRlclR5cGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvaWNvbi10YWItYmFyLWZpbHRlci10eXBlL2ljb24tdGFiLWJhci1maWx0ZXItdHlwZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgSWNvblRhYkJhckljb25UeXBlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2ljb24tdGFiLWJhci1pY29uLXR5cGUvaWNvbi10YWItYmFyLWljb24tdHlwZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgSWNvblRhYkJhclByb2Nlc3NUeXBlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2ljb24tdGFiLWJhci1wcm9jZXNzLXR5cGUvaWNvbi10YWItYmFyLXByb2Nlc3MtdHlwZS5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgICBJY29uVGFiQmFyVGFiQ29tcG9uZW50LFxuICAgIEljb25UYWJCYXJUYWJDb250ZW50RGlyZWN0aXZlXG59IGZyb20gJy4vY29tcG9uZW50cy9pY29uLXRhYi1iYXItdGFiL2ljb24tdGFiLWJhci10YWIuY29tcG9uZW50JztcbmltcG9ydCB7IEljb25UYWJCYXJUZXh0VHlwZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9pY29uLXRhYi1iYXItdGV4dC10eXBlL2ljb24tdGFiLWJhci10ZXh0LXR5cGUuY29tcG9uZW50JztcbmltcG9ydCB7IFVOSVFVRV9LRVlfU0VQQVJBVE9SIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgSWNvblRhYkJhckl0ZW0gfSBmcm9tICcuL2ludGVyZmFjZXMvaWNvbi10YWItYmFyLWl0ZW0uaW50ZXJmYWNlJztcbmltcG9ydCB7IFRhYkNvbG9yQXNzb2NpYXRpb25zIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3RhYi1jb2xvci1hc3NvY2lhdGlvbnMuaW50ZXJmYWNlJztcbmltcG9ydCB7IFRhYkNvbmZpZyB9IGZyb20gJy4vaW50ZXJmYWNlcy90YWItY29uZmlnLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJY29uVGFiQmFyQmFja2dyb3VuZCwgSWNvblRhYkJhclNpemUsIFRhYkRlc3RpbnlNb2RlLCBUYWJUeXBlIH0gZnJvbSAnLi90eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmRwLWljb24tdGFiLWJhcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ljb24tdGFiLWJhci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL2ljb24tdGFiLWJhci5jb21wb25lbnQuc2NzcycsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBGRF9UQUJMSVNULFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IEljb25UYWJCYXJDb21wb25lbnRcbiAgICAgICAgfVxuICAgIF0sXG4gICAgaW1wb3J0czogW1xuICAgICAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgICAgICBJY29uVGFiQmFyUHJvY2Vzc1R5cGVDb21wb25lbnQsXG4gICAgICAgIEljb25UYWJCYXJGaWx0ZXJUeXBlQ29tcG9uZW50LFxuICAgICAgICBJY29uVGFiQmFySWNvblR5cGVDb21wb25lbnQsXG4gICAgICAgIEljb25UYWJCYXJUZXh0VHlwZUNvbXBvbmVudCxcbiAgICAgICAgU2Nyb2xsYmFyRGlyZWN0aXZlLFxuICAgICAgICBTY3JvbGxTcHlEaXJlY3RpdmUsXG4gICAgICAgIEljb25UYWJCYXJUYWJDb250ZW50RGlyZWN0aXZlXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBJY29uVGFiQmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBUYWJMaXN0IHtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gVHlwZSBvZiB0YWIgYmFyIHZpZXcuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBpY29uVGFiVHlwZTogVGFiVHlwZSA9ICd0ZXh0JztcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBBIHRhYiBiYXIgY29uZmlndXJhdGlvbiB0aGF0IHN0b3JlcyB0aGUgc3RhdGUgb2YgZWFjaCB0YWIuIEJhc2VkIG9uIHRoaXMgY29uZmlndXJhdGlvbiwgYSB0YWIgYmFyIGlzIHJlcHJlc2VudGluZy5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCB0YWJzQ29uZmlnKHZhbHVlOiBUYWJDb25maWdbXSkge1xuICAgICAgICB0aGlzLl90YWJzQ29uZmlnJC5zZXQodmFsdWUpO1xuICAgIH1cblxuICAgIGdldCB0YWJzQ29uZmlnKCk6IFRhYkNvbmZpZ1tdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RhYnNDb25maWckKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIERlc3RpbnkgbW9kZS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGRlbnNpdHlNb2RlOiBUYWJEZXN0aW55TW9kZSA9ICdpbmhlcml0JztcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBJY29uIGZvbnRcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGljb25UYWJGb250OiBJY29uRm9udCA9ICdTQVAtaWNvbnMnO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIERpc2FibGUgb3IgZW5hYmxlIHJlb3JkZXJpbmcoZHJhZyBhbmQgZHJvcCkgZmVhdHVyZS4gKHN1cHBvcnRlZCBieSB0ZXh0IHR5cGUgb25seSlcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGVuYWJsZVRhYlJlb3JkZXJpbmcgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBCb29sZWFuIGZsYWcgaW5kaWNhdGluZyB0byBzaG93IHRvdGFsIHRhYi4oc3VwcG9ydGVkIGJ5IGZpbHRlciB0eXBlIG9ubHkpXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzaG93VG90YWxUYWIgPSB0cnVlO1xuXG4gICAgLyoqIFdoZXRoZXIgdG8gcmVuZGVyIGljb24gdGFiIGl0ZW0gYXMgbXVsdGktY2xpY2sgdmFyaWFudC4gKi9cbiAgICBASW5wdXQoKVxuICAgIG11bHRpQ2xpY2sgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBMYXlvdXQgdHlwZSBmb3IgdGFiIChzdXBwb3J0ZWQgYnkgdGV4dCB0eXBlIG9ubHkpXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBsYXlvdXRNb2RlOiAncm93JyB8ICdjb2x1bW4nID0gJ3Jvdyc7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gSWNvbiB0YWIgYmFyIGJhY2tncm91bmQgdHlwZS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGljb25UYWJCYWNrZ3JvdW5kOiBJY29uVGFiQmFyQmFja2dyb3VuZCA9ICdzb2xpZCc7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gSWNvbiB0YWIgYmFyIHNpemUuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBpY29uVGFiU2l6ZTogSWNvblRhYkJhclNpemU7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQXNzb2NpYXRpb25zIGZvciBjb2xvcnMgb2YgdGhlIHRhYnMuXG4gICAgICogSWYgYW55IG9mIHRoZSBjb2xvciBhc3NvY2lhdGlvbnMgcHJvdmlkZWQsIHRoZXknbGwgYmUgcmVhZCBieSBzY3JlZW5yZWFkZXIgaW5zdGVhZCBvZiB0aGUgYWN0dWFsIGNvbG9yXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBjb2xvckFzc29jaWF0aW9uczogVGFiQ29sb3JBc3NvY2lhdGlvbnM7XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRvIG9wZW4gdGFiIGNvbnRlbnQgb25lIHVuZGVyIGFub3RoZXIgd2l0aG91dCBjb2xsYXBzaW5nLlxuICAgICAqIFdvcmtzIG9ubHkgZm9yIGNvbnRlbnQtcHJvamVjdGVkIHRhYiBjb250ZW50LlxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICAgIHN0YWNrQ29udGVudCA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogTWF4aW11bSBoZWlnaHQgb2YgdGhlIGNvbnRlbnQuXG4gICAgICogV29ya3Mgb25seSBmb3IgY29udGVudC1wcm9qZWN0ZWQgdGFiIGNvbnRlbnQuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBtYXhDb250ZW50SGVpZ2h0ID0gJzEwMCUnO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEVtaXRzIHdoZW4gc29tZSB0YWIgaXMgc2VsZWN0ZWQuXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgaWNvblRhYlNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxJY29uVGFiQmFySXRlbT4oKTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBFbWl0cyB3aGVuIHVzZXIgZHJvcCB0YWIuXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgaWNvblRhYlJlb3JkZXJlZCA9IG5ldyBFdmVudEVtaXR0ZXI8SWNvblRhYkJhckl0ZW1bXT4oKTtcblxuICAgIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gdXNlciBjbGlja3Mgb24geCBpY29uIGluIHRhYi4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBjbG9zZVRhYiA9IG5ldyBFdmVudEVtaXR0ZXI8SWNvblRhYkJhckl0ZW0+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBDb250ZW50Q2hpbGRyZW4oSWNvblRhYkJhclRhYkNvbXBvbmVudCwgeyBkZXNjZW5kYW50czogZmFsc2UgfSlcbiAgICBjaGlsZHJlbjogUXVlcnlMaXN0PEljb25UYWJCYXJUYWJDb21wb25lbnQ+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAQ29udGVudENoaWxkcmVuKEljb25UYWJCYXJUYWJDb21wb25lbnQsIHsgZGVzY2VuZGFudHM6IHRydWUgfSlcbiAgICBhbGxDaGlsZHJlbjogUXVlcnlMaXN0PEljb25UYWJCYXJUYWJDb21wb25lbnQ+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKFNjcm9sbGJhckRpcmVjdGl2ZSlcbiAgICBfc2Nyb2xsYmFyOiBTY3JvbGxiYXJEaXJlY3RpdmU7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGRyZW4oSWNvblRhYkJhclRhYkNvbnRlbnREaXJlY3RpdmUpXG4gICAgdGFiRGlyZWN0aXZlczogUXVlcnlMaXN0PEljb25UYWJCYXJUYWJDb250ZW50RGlyZWN0aXZlPjtcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZmQtdGFicy1jdXN0b20nKVxuICAgIHByaXZhdGUgZ2V0IF9jdXN0b21UYWJzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faW5EeW5hbWljUGFoZTtcbiAgICB9XG5cbiAgICBAVmlld0NoaWxkKEljb25UYWJCYXJCYXNlKVxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2ljb25UYWJCYXJDbXA6IE51bGxhYmxlPEljb25UYWJCYXJCYXNlPjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZ2V0IGhlYWRlckNvbnRhaW5lcigpOiBOdWxsYWJsZTxFbGVtZW50UmVmPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pY29uVGFiQmFyQ21wPy5oZWFkZXJFbGVtZW50O1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2Nzc0NsYXNzRm9yQ29udGFpbmVyOiBzdHJpbmdbXTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2Rpc2FibGVTY3JvbGxTcHkgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2luaXQgPSB0cnVlO1xuXG4gICAgLyoqIFNjcm9sbGFibGUgZWxlbWVudCByZWZlcmVuY2UuICovXG4gICAgZ2V0IHNjcm9sbGFibGVFbGVtZW50KCk6IE51bGxhYmxlPEVsZW1lbnRSZWY+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Njcm9sbGJhcj8uZWxlbWVudFJlZjtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlYWRvbmx5IF9zZWxlY3RlZFVpZCA9IHNpZ25hbDxzdHJpbmcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlYWRvbmx5IF90YWJzJCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuX2dlbmVyYXRlVGFiQmFySXRlbXModGhpcy5fdGFic0NvbmZpZyQoKSkpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWFkb25seSBfZmxhdFRhYnMkID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5fZ2VuZXJhdGVGbGF0VGFicyh0aGlzLl90YWJzJCgpKSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlYWRvbmx5IF90YWJSZW5kZXJlciQgPSBzaWduYWw8SWNvblRhYkJhckl0ZW0gfCBudWxsPihudWxsKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVhZG9ubHkgX3RhYlJlbmRlcmVycyQgPSBzaWduYWw8eyByZW5kZXJlcjogVGVtcGxhdGVSZWY8YW55PjsgaWQ6IHN0cmluZyB9W10+KFtdKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVhZG9ubHkgX3J0bCQgPSBjb21wdXRlZCgoKSA9PiAhIXRoaXMuX3J0bFNlcnZpY2U/LnJ0bFNpZ25hbCgpKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVhZG9ubHkgX3RhYnNDb25maWckID0gc2lnbmFsPFRhYkNvbmZpZ1tdPihbXSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9pbkR5bmFtaWNQYWhlID0gISFpbmplY3QoRkRfRFlOQU1JQ19QQUdFLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBfY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIF9jb250ZW50RGVuc2l0eVNlcnZpY2U6IENvbnRlbnREZW5zaXR5U2VydmljZSxcbiAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBfcnRsU2VydmljZTogUnRsU2VydmljZVxuICAgICkge31cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2Nzc0NsYXNzRm9yQ29udGFpbmVyID0gdGhpcy5fZ2VuZXJhdGVDb250YWluZXJTdHlsZXMoKTtcblxuICAgICAgICBpZiAodGhpcy5kZW5zaXR5TW9kZSA9PT0gJ2luaGVyaXQnKSB7XG4gICAgICAgICAgICB0aGlzLl9jb250ZW50RGVuc2l0eVNlcnZpY2U/Ll9jb250ZW50RGVuc2l0eUxpc3RlbmVyXG4gICAgICAgICAgICAgICAgLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSwgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKGRlbnNpdHkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kZW5zaXR5TW9kZSA9IGRlbnNpdHk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChkZW5zaXR5ICE9PSAnY29tcGFjdCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2Nzc0NsYXNzRm9yQ29udGFpbmVyID0gdGhpcy5fY3NzQ2xhc3NGb3JDb250YWluZXIuZmlsdGVyKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjc3NDbGFzcykgPT4gY3NzQ2xhc3MgIT09ICdmZC1pY29uLXRhYi1iYXItLWNvbXBhY3QnXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fY3NzQ2xhc3NGb3JDb250YWluZXIucHVzaCgnZmQtaWNvbi10YWItYmFyLS1jb21wYWN0Jyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2hpbGRyZW4uY2hhbmdlcy5waXBlKHN0YXJ0V2l0aChudWxsKSwgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcHJvamVjdGVkVGFicyA9IHRoaXMuY2hpbGRyZW4udG9BcnJheSgpO1xuXG4gICAgICAgICAgICBpZiAocHJvamVjdGVkVGFicy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMudGFic0NvbmZpZyA9IHByb2plY3RlZFRhYnMubWFwKCh0KSA9PiB0aGlzLl9nZW5lcmF0ZVRhYkNvbmZpZyh0KSk7XG4gICAgICAgICAgICB0aGlzLl9jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuYWxsQ2hpbGRyZW4uY2hhbmdlcy5waXBlKHN0YXJ0V2l0aChudWxsKSwgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fdGFiUmVuZGVyZXJzJC5zZXQoXG4gICAgICAgICAgICAgICAgdGhpcy5hbGxDaGlsZHJlbi5tYXAoKGMpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgIHJlbmRlcmVyOiBjLnJlbmRlcmVyLFxuICAgICAgICAgICAgICAgICAgICBpZDogYy5pZFxuICAgICAgICAgICAgICAgIH0pKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBwYXJhbSBldmVudCByZW9yZGVyZWQgYXJyYXkgb2YgSWNvblRhYkJhckl0ZW1cbiAgICAgKi9cbiAgICBfb25SZW9yZGVyKGV2ZW50OiBJY29uVGFiQmFySXRlbVtdKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaWNvblRhYlJlb3JkZXJlZC5lbWl0KGV2ZW50KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQHBhcmFtIHNlbGVjdGVkSXRlbVxuICAgICAqL1xuICAgIF9zZWxlY3RJdGVtKHNlbGVjdGVkSXRlbTogSWNvblRhYkJhckl0ZW0pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdGFiUmVuZGVyZXIkLnNldChzZWxlY3RlZEl0ZW0pO1xuICAgICAgICB0aGlzLmljb25UYWJTZWxlY3RlZC5lbWl0KHNlbGVjdGVkSXRlbSk7XG5cbiAgICAgICAgaWYgKHRoaXMuc3RhY2tDb250ZW50KSB7XG4gICAgICAgICAgICB0aGlzLl9zY3JvbGxUb1BhbmVsKHRoaXMudGFiRGlyZWN0aXZlcy5maW5kKCh0YWIpID0+IHRhYi51SWQgPT09IHNlbGVjdGVkSXRlbS51SWQpISk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9jbG9zZVRhYihpdGVtOiBJY29uVGFiQmFySXRlbSk6IHZvaWQge1xuICAgICAgICB0aGlzLmNsb3NlVGFiLmVtaXQoaXRlbSk7XG4gICAgfVxuXG4gICAgLyoqIFByb2dyYW1tYXRpY2FsbHkgc2VsZWN0IHRhYi4gKi9cbiAgICBzZWxlY3RUYWIoaWQ6IE51bGxhYmxlPHN0cmluZz4pOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRJdGVtID0gdGhpcy5fZmxhdFRhYnMkKCkuZmluZCgodCkgPT4gdC5pZCA9PT0gaWQpO1xuICAgICAgICBpZiAoIXNlbGVjdGVkSXRlbSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3NlbGVjdGVkVWlkLnNldChzZWxlY3RlZEl0ZW0udUlkKTtcbiAgICAgICAgdGhpcy5fc2VsZWN0SXRlbShzZWxlY3RlZEl0ZW0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgaGlnaGxpZ2h0QWN0aXZlVGFiKGlkOiBOdWxsYWJsZTxzdHJpbmc+LCBzY3JvbGwgPSBmYWxzZSk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5fZGlzYWJsZVNjcm9sbFNweSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGFjdGl2ZVRhYiA9IHRoaXMudGFiRGlyZWN0aXZlcy5maW5kKCh0YWIpID0+IHRhYi5pZCA9PT0gaWQpO1xuICAgICAgICB0aGlzLl9zZWxlY3RlZFVpZC5zZXQoYWN0aXZlVGFiPy51SWQgfHwgdW5kZWZpbmVkKTtcbiAgICAgICAgaWYgKHNjcm9sbCAmJiBhY3RpdmVUYWIpIHtcbiAgICAgICAgICAgIHRoaXMuX3Njcm9sbFRvUGFuZWwoYWN0aXZlVGFiKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAcmV0dXJucyBhcnJheSBvZiBjc3MgY2xhc3NlcyBmb3IgaWNvbi10YWItYmFyIGNvbnRhaW5lclxuICAgICAqL1xuICAgIHByaXZhdGUgX2dlbmVyYXRlQ29udGFpbmVyU3R5bGVzKCk6IHN0cmluZ1tdIHtcbiAgICAgICAgY29uc3Qgc3R5bGVzID0gW2BmZC1pY29uLXRhYi1iYXItLSR7dGhpcy5pY29uVGFiVHlwZX1gXTtcbiAgICAgICAgaWYgKHRoaXMuaWNvblRhYlR5cGUgPT09ICdwcm9jZXNzJyAmJiB0aGlzLnRhYnNDb25maWdbMF0uaWNvbikge1xuICAgICAgICAgICAgc3R5bGVzLnB1c2goJ2ZkLWljb24tdGFiLWJhci0taWNvbicpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmljb25UYWJCYWNrZ3JvdW5kICE9PSAnc29saWQnKSB7XG4gICAgICAgICAgICBzdHlsZXMucHVzaChgZmQtaWNvbi10YWItYmFyLS0ke3RoaXMuaWNvblRhYkJhY2tncm91bmR9YCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuaWNvblRhYlNpemUpIHtcbiAgICAgICAgICAgIHN0eWxlcy5wdXNoKGBmZC1pY29uLXRhYi1iYXItLSR7dGhpcy5pY29uVGFiU2l6ZX1gKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5kZW5zaXR5TW9kZSA9PT0gJ2NvbXBhY3QnKSB7XG4gICAgICAgICAgICBzdHlsZXMucHVzaCgnZmQtaWNvbi10YWItYmFyLS1jb21wYWN0Jyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMubGF5b3V0TW9kZSA9PT0gJ2NvbHVtbicpIHtcbiAgICAgICAgICAgIHN0eWxlcy5wdXNoKCdmZC1pY29uLXRhYi1iYXItLWNvdW50ZXJzJyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHN0eWxlcztcbiAgICB9XG5cbiAgICBwcml2YXRlIF9nZW5lcmF0ZVRhYkNvbmZpZyh0YWI6IEljb25UYWJCYXJUYWJDb21wb25lbnQpOiBUYWJDb25maWcge1xuICAgICAgICBjb25zdCB0YWJDb25maWc6IFRhYkNvbmZpZyA9IHtcbiAgICAgICAgICAgIGxhYmVsOiB0YWIubGFiZWwsXG4gICAgICAgICAgICBjb2xvcjogdGFiLmNvbG9yLFxuICAgICAgICAgICAgYWN0aXZlOiB0YWIuYWN0aXZlLFxuICAgICAgICAgICAgY291bnRlcjogdGFiLmNvdW50ZXIsXG4gICAgICAgICAgICByZW5kZXJlcjogdGFiLnJlbmRlcmVyLFxuICAgICAgICAgICAgaWQ6IHRhYi5pZCxcbiAgICAgICAgICAgIHN1Ykl0ZW1zOiB0YWIuY2hpbGRyZW4ubWFwKChjKSA9PiB0aGlzLl9nZW5lcmF0ZVRhYkNvbmZpZyhjKSlcbiAgICAgICAgfTtcblxuICAgICAgICByZXR1cm4gdGFiQ29uZmlnO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc2Nyb2xsVG9QYW5lbCh0YWJQYW5lbDogTnVsbGFibGU8SWNvblRhYkJhclRhYkNvbnRlbnREaXJlY3RpdmU+KTogdm9pZCB7XG4gICAgICAgIGlmICghdGFiUGFuZWwpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwYW5lbEVsZW1lbnQgPSB0YWJQYW5lbC5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lckVsZW1lbnQgPSB0aGlzLl9zY3JvbGxiYXIuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgICAgICBjb25zdCBkaXN0YW5jZVRvU2Nyb2xsID0gcGFuZWxFbGVtZW50Lm9mZnNldFRvcCAtIGNvbnRhaW5lckVsZW1lbnQub2Zmc2V0VG9wO1xuICAgICAgICBjb25zdCBtYXhpbXVtU2Nyb2xsVG9wID0gY29udGFpbmVyRWxlbWVudC5zY3JvbGxIZWlnaHQgLSBjb250YWluZXJFbGVtZW50LmNsaWVudEhlaWdodDtcbiAgICAgICAgY29uc3QgY3VycmVudFNjcm9sbFBvc2l0aW9uID0gTWF0aC5jZWlsKGNvbnRhaW5lckVsZW1lbnQuc2Nyb2xsVG9wKTtcblxuICAgICAgICBpZiAoIShjdXJyZW50U2Nyb2xsUG9zaXRpb24gPT09IG1heGltdW1TY3JvbGxUb3AgJiYgZGlzdGFuY2VUb1Njcm9sbCA+IG1heGltdW1TY3JvbGxUb3ApKSB7XG4gICAgICAgICAgICB0aGlzLl9kaXNhYmxlU2Nyb2xsU3B5ID0gdHJ1ZTtcbiAgICAgICAgICAgIGZyb21FdmVudChjb250YWluZXJFbGVtZW50LCAnc2Nyb2xsJylcbiAgICAgICAgICAgICAgICAucGlwZShkZWJvdW5jZVRpbWUoMTAwKSwgZmlyc3QoKSwgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gKHRoaXMuX2Rpc2FibGVTY3JvbGxTcHkgPSBmYWxzZSkpO1xuICAgICAgICAgICAgc2Nyb2xsVG9wKGNvbnRhaW5lckVsZW1lbnQsIGRpc3RhbmNlVG9TY3JvbGwpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBkZXNjcmlwdGlvbiBnZW5lcmF0ZSBJY29uVGFiSXRlbXMgZnJvbSBUYWJDb25maWcgYXJyYXlcbiAgICAgKi9cbiAgICBwcml2YXRlIF9nZW5lcmF0ZVRhYkJhckl0ZW1zKFxuICAgICAgICBjb25maWc6IFRhYkNvbmZpZ1tdLFxuICAgICAgICBpbmRleFByZWZpeCA9ICcnLFxuICAgICAgICBmbGF0SW5kZXhSZWY/OiBGbGF0SW5kZXgsXG4gICAgICAgIHBhcmVudFVJZD86IHN0cmluZ1xuICAgICk6IEljb25UYWJCYXJJdGVtW10ge1xuICAgICAgICBmbGF0SW5kZXhSZWYgPSBmbGF0SW5kZXhSZWYgfHwgeyB2YWx1ZTogMCB9O1xuICAgICAgICByZXR1cm4gY29uZmlnLm1hcCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHVJZCA9IGAke2luZGV4UHJlZml4fSR7aW5kZXh9YDtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdDogSWNvblRhYkJhckl0ZW0gPSB7XG4gICAgICAgICAgICAgICAgLi4uaXRlbSxcbiAgICAgICAgICAgICAgICBpbmRleCxcbiAgICAgICAgICAgICAgICBjc3NDbGFzc2VzOiBbXSxcbiAgICAgICAgICAgICAgICB1SWQsXG4gICAgICAgICAgICAgICAgaGlkZGVuOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBwYXJlbnRVSWQsXG4gICAgICAgICAgICAgICAgZmxhdEluZGV4OiBmbGF0SW5kZXhSZWYhLnZhbHVlKyssXG4gICAgICAgICAgICAgICAgc3ViSXRlbXM6IHRoaXMuX2dlbmVyYXRlVGFiQmFySXRlbXMoXG4gICAgICAgICAgICAgICAgICAgIGl0ZW0uc3ViSXRlbXMgfHwgW10sXG4gICAgICAgICAgICAgICAgICAgIGAke3VJZH0ke1VOSVFVRV9LRVlfU0VQQVJBVE9SfWAsXG4gICAgICAgICAgICAgICAgICAgIGZsYXRJbmRleFJlZixcbiAgICAgICAgICAgICAgICAgICAgdUlkXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGlmIChpdGVtLmNvbG9yKSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0LmNzc0NsYXNzZXMgPSBbYGZkLWljb24tdGFiLWJhcl9faXRlbS0tJHtpdGVtLmNvbG9yfWBdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZ2VuZXJhdGVGbGF0VGFicyh0YWJzOiBJY29uVGFiQmFySXRlbVtdKTogSWNvblRhYkJhckl0ZW1bXSB7XG4gICAgICAgIGNvbnN0IGZsYXRUYWJzID0gdGFicy5yZWR1Y2UoKGFjYzogSWNvblRhYkJhckl0ZW1bXSwgdGFiKSA9PiB7XG4gICAgICAgICAgICBhY2MucHVzaCh0YWIpO1xuICAgICAgICAgICAgaWYgKHRhYi5zdWJJdGVtcykge1xuICAgICAgICAgICAgICAgIGFjYy5wdXNoKC4uLnRoaXMuX2dlbmVyYXRlRmxhdFRhYnModGFiLnN1Ykl0ZW1zKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICB9LCBbXSk7XG5cbiAgICAgICAgcmV0dXJuIGZsYXRUYWJzO1xuICAgIH1cbn1cblxuLyoqIEBoaWRkZW4gaGVscGVyIG9iamVjdCB0aGF0IGlzIHVzZWQgaW4gdGFiIGdlbmVyYXRpb24gZnVuY3Rpb25zIHRvIGNhbGN1bGF0ZSB0aGVpciBpbmRleGVzIG5vdCBkZXBlbmRpbmcgb24gbGV2ZWwgb2YgbmVzdGluZyAqL1xuaW50ZXJmYWNlIEZsYXRJbmRleCB7XG4gICAgdmFsdWU6IG51bWJlcjtcbn1cbiIsIjxkaXYgY2xhc3M9XCJmZC1pY29uLXRhYi1iYXJcIiBbY2xhc3NdPVwiX2Nzc0NsYXNzRm9yQ29udGFpbmVyXCI+XG4gICAgQGlmIChpY29uVGFiVHlwZSA9PT0gJ3RleHQnKSB7XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJ0ZXh0VHlwZVwiPjwvbmctdGVtcGxhdGU+XG4gICAgfVxuICAgIEBpZiAoaWNvblRhYlR5cGUgPT09ICdpY29uJyB8fCBpY29uVGFiVHlwZSA9PT0gJ2ljb24tb25seScpIHtcbiAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImljb25UeXBlXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICB9XG4gICAgQGlmIChpY29uVGFiVHlwZSA9PT0gJ2ZpbHRlcicpIHtcbiAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImZpbHRlclR5cGVcIj48L25nLXRlbXBsYXRlPlxuICAgIH1cbiAgICBAaWYgKGljb25UYWJUeXBlID09PSAncHJvY2VzcycpIHtcbiAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInByb2Nlc3NUeXBlXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICB9XG4gICAgPGRpdlxuICAgICAgICBjbGFzcz1cImZkLWljb24tdGFiLWJhcl9fY29udGVudFwiXG4gICAgICAgIGZkLXNjcm9sbGJhclxuICAgICAgICAoc3B5Q2hhbmdlKT1cImhpZ2hsaWdodEFjdGl2ZVRhYigkZXZlbnQuaWQpXCJcbiAgICAgICAgW3Njcm9sbFNweURpc2FibGVkXT1cIiFzdGFja0NvbnRlbnQgfHwgX2Rpc2FibGVTY3JvbGxTcHlcIlxuICAgICAgICBmZFNjcm9sbFNweVxuICAgICAgICBbdHJhY2tlZFRhZ3NdPVwiWydmZHAtaWNvbi10YWItYmFyLXRhYi1jb250ZW50J11cIlxuICAgICAgICBbc3R5bGUubWF4LWhlaWdodF09XCJtYXhDb250ZW50SGVpZ2h0XCJcbiAgICA+XG4gICAgICAgIEBpZiAoc3RhY2tDb250ZW50KSB7XG4gICAgICAgICAgICBAZm9yICh0YWIgb2YgX2ZsYXRUYWJzJCgpOyB0cmFjayB0YWIpIHtcbiAgICAgICAgICAgICAgICA8ZmRwLWljb24tdGFiLWJhci10YWItY29udGVudCBbaWRdPVwidGFiLmlkXCIgW3VJZF09XCJ0YWIudUlkXCIgY2xhc3M9XCJmZC1pY29uLXRhYi1iYXJfX3RhYi1jb250ZW50XCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJ0YWIucmVuZGVyZXIgfHwgbnVsbFwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPC9mZHAtaWNvbi10YWItYmFyLXRhYi1jb250ZW50PlxuICAgICAgICAgICAgfVxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIEBpZiAoX3RhYlJlbmRlcmVyJCgpOyBhcyB0YWJSZW5kZXJlcikge1xuICAgICAgICAgICAgICAgIDxmZHAtaWNvbi10YWItYmFyLXRhYi1jb250ZW50XG4gICAgICAgICAgICAgICAgICAgIFtpZF09XCJ0YWJSZW5kZXJlci5pZFwiXG4gICAgICAgICAgICAgICAgICAgIFt1SWRdPVwidGFiUmVuZGVyZXIudUlkXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmZC1pY29uLXRhYi1iYXJfX3RhYi1jb250ZW50XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJ0YWJSZW5kZXJlci5yZW5kZXJlciB8fCBudWxsXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8L2ZkcC1pY29uLXRhYi1iYXItdGFiLWNvbnRlbnQ+XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2ZkcEljb25UYWJCYXJGcmVlQ29udGVudF1cIj48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG48L2Rpdj5cbjxuZy10ZW1wbGF0ZSAjcHJvY2Vzc1R5cGU+XG4gICAgPGZkcC1pY29uLXRhYi1iYXItcHJvY2Vzcy10eXBlXG4gICAgICAgIFt0YWJzXT1cIl90YWJzJCgpXCJcbiAgICAgICAgW2lzUnRsXT1cIl9ydGwkKClcIlxuICAgICAgICBbc2VsZWN0ZWRVaWRdPVwiX3NlbGVjdGVkVWlkKClcIlxuICAgICAgICAoc2VsZWN0ZWRVaWRDaGFuZ2UpPVwiX3NlbGVjdGVkVWlkLnNldCgkZXZlbnQpXCJcbiAgICAgICAgW2RlbnNpdHlNb2RlXT1cImRlbnNpdHlNb2RlXCJcbiAgICAgICAgW2NvbG9yQXNzb2NpYXRpb25zXT1cImNvbG9yQXNzb2NpYXRpb25zXCJcbiAgICAgICAgKHNlbGVjdGVkKT1cIl9zZWxlY3RJdGVtKCRldmVudClcIlxuICAgID48L2ZkcC1pY29uLXRhYi1iYXItcHJvY2Vzcy10eXBlPlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjZmlsdGVyVHlwZT5cbiAgICA8ZmRwLWljb24tdGFiLWJhci1maWx0ZXItdHlwZVxuICAgICAgICBbdGFic109XCJfdGFicyQoKVwiXG4gICAgICAgIFtzaG93VG90YWxUYWJdPVwic2hvd1RvdGFsVGFiXCJcbiAgICAgICAgW2lzUnRsXT1cIl9ydGwkKClcIlxuICAgICAgICBbc2VsZWN0ZWRVaWRdPVwiX3NlbGVjdGVkVWlkKClcIlxuICAgICAgICAoc2VsZWN0ZWRVaWRDaGFuZ2UpPVwiX3NlbGVjdGVkVWlkLnNldCgkZXZlbnQpXCJcbiAgICAgICAgW2RlbnNpdHlNb2RlXT1cImRlbnNpdHlNb2RlXCJcbiAgICAgICAgW2NvbG9yQXNzb2NpYXRpb25zXT1cImNvbG9yQXNzb2NpYXRpb25zXCJcbiAgICAgICAgKHNlbGVjdGVkKT1cIl9zZWxlY3RJdGVtKCRldmVudClcIlxuICAgID48L2ZkcC1pY29uLXRhYi1iYXItZmlsdGVyLXR5cGU+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNpY29uVHlwZT5cbiAgICA8ZmRwLWljb24tdGFiLWJhci1pY29uLXR5cGVcbiAgICAgICAgW3Nob3dMYWJlbF09XCJpY29uVGFiVHlwZSA9PT0gJ2ljb24nXCJcbiAgICAgICAgW3RhYnNdPVwiX3RhYnMkKClcIlxuICAgICAgICBbaXNSdGxdPVwiX3J0bCQoKVwiXG4gICAgICAgIFtzZWxlY3RlZFVpZF09XCJfc2VsZWN0ZWRVaWQoKVwiXG4gICAgICAgIChzZWxlY3RlZFVpZENoYW5nZSk9XCJfc2VsZWN0ZWRVaWQuc2V0KCRldmVudClcIlxuICAgICAgICBbZGVuc2l0eU1vZGVdPVwiZGVuc2l0eU1vZGVcIlxuICAgICAgICBbY29sb3JBc3NvY2lhdGlvbnNdPVwiY29sb3JBc3NvY2lhdGlvbnNcIlxuICAgICAgICAoc2VsZWN0ZWQpPVwiX3NlbGVjdEl0ZW0oJGV2ZW50KVwiXG4gICAgICAgIChjbG9zZVRhYik9XCJfY2xvc2VUYWIoJGV2ZW50KVwiXG4gICAgPjwvZmRwLWljb24tdGFiLWJhci1pY29uLXR5cGU+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICN0ZXh0VHlwZT5cbiAgICA8ZmRwLWljb24tdGFiLWJhci10ZXh0LXR5cGVcbiAgICAgICAgW3RhYnNdPVwiX3RhYnMkKClcIlxuICAgICAgICBbbXVsdGlDbGlja109XCJtdWx0aUNsaWNrXCJcbiAgICAgICAgW2xheW91dE1vZGVdPVwibGF5b3V0TW9kZVwiXG4gICAgICAgIFtpc1J0bF09XCJfcnRsJCgpXCJcbiAgICAgICAgW3NlbGVjdGVkVWlkXT1cIl9zZWxlY3RlZFVpZCgpXCJcbiAgICAgICAgKHNlbGVjdGVkVWlkQ2hhbmdlKT1cIl9zZWxlY3RlZFVpZC5zZXQoJGV2ZW50KVwiXG4gICAgICAgIFtkZW5zaXR5TW9kZV09XCJkZW5zaXR5TW9kZVwiXG4gICAgICAgIFtlbmFibGVUYWJSZW9yZGVyaW5nXT1cImVuYWJsZVRhYlJlb3JkZXJpbmdcIlxuICAgICAgICBbY29sb3JBc3NvY2lhdGlvbnNdPVwiY29sb3JBc3NvY2lhdGlvbnNcIlxuICAgICAgICAocmVvcmRlcmVkKT1cIl9vblJlb3JkZXIoJGV2ZW50KVwiXG4gICAgICAgIChzZWxlY3RlZCk9XCJfc2VsZWN0SXRlbSgkZXZlbnQpXCJcbiAgICAgICAgKGNsb3NlVGFiKT1cIl9jbG9zZVRhYigkZXZlbnQpXCJcbiAgICA+PC9mZHAtaWNvbi10YWItYmFyLXRleHQtdHlwZT5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
364
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi10YWItYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vaWNvbi10YWItYmFyL2ljb24tdGFiLWJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2ljb24tdGFiLWJhci9pY29uLXRhYi1iYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUVILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULGVBQWUsRUFDZixVQUFVLEVBRVYsWUFBWSxFQUNaLFdBQVcsRUFDWCxLQUFLLEVBRUwsUUFBUSxFQUNSLE1BQU0sRUFDTixTQUFTLEVBRVQsU0FBUyxFQUNULFlBQVksRUFDWixpQkFBaUIsRUFDakIsZ0JBQWdCLEVBQ2hCLFFBQVEsRUFDUixNQUFNLEVBQ04sTUFBTSxFQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxxQkFBcUIsRUFBWSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDcEcsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRXJFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxVQUFVLEVBQVcsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdC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QUEyQjt3QkFDM0IsMkJBQTJCO3dCQUMzQixrQkFBa0I7d0JBQ2xCLGtCQUFrQjt3QkFDbEIsNkJBQTZCO3FCQUNoQzs7MEJBZ0xJLFFBQVE7OzBCQUNSLFFBQVE7eUNBMUtiLFdBQVc7c0JBRFYsS0FBSztnQkFPRixVQUFVO3NCQURiLEtBQUs7Z0JBYU4sV0FBVztzQkFEVixLQUFLO2dCQU9OLFdBQVc7c0JBRFYsS0FBSztnQkFPTixtQkFBbUI7c0JBRGxCLEtBQUs7Z0JBT04sWUFBWTtzQkFEWCxLQUFLO2dCQUtOLFVBQVU7c0JBRFQsS0FBSztnQkFPTixVQUFVO3NCQURULEtBQUs7Z0JBT04saUJBQWlCO3NCQURoQixLQUFLO2dCQU9OLFdBQVc7c0JBRFYsS0FBSztnQkFRTixpQkFBaUI7c0JBRGhCLEtBQUs7Z0JBUU4sWUFBWTtzQkFEWCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQVF0QyxnQkFBZ0I7c0JBRGYsS0FBSztnQkFPTixlQUFlO3NCQURkLE1BQU07Z0JBT1AsZ0JBQWdCO3NCQURmLE1BQU07Z0JBS1AsUUFBUTtzQkFEUCxNQUFNO2dCQUtQLFFBQVE7c0JBRFAsZUFBZTt1QkFBQyxzQkFBc0IsRUFBRSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUU7Z0JBSy9ELFdBQVc7c0JBRFYsZUFBZTt1QkFBQyxzQkFBc0IsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUU7Z0JBSzlELFVBQVU7c0JBRFQsU0FBUzt1QkFBQyxrQkFBa0I7Z0JBSzdCLGFBQWE7c0JBRFosWUFBWTt1QkFBQyw2QkFBNkI7Z0JBSS9CLFdBQVc7c0JBRHRCLFdBQVc7dUJBQUMsc0JBQXNCO2dCQU1sQixjQUFjO3NCQUQ5QixTQUFTO3VCQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIERlc3Ryb3lSZWYsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5wdXQsXG4gICAgT25Jbml0LFxuICAgIE9wdGlvbmFsLFxuICAgIE91dHB1dCxcbiAgICBRdWVyeUxpc3QsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdDaGlsZHJlbixcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgICBib29sZWFuQXR0cmlidXRlLFxuICAgIGNvbXB1dGVkLFxuICAgIGluamVjdCxcbiAgICBzaWduYWxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBDb250ZW50RGVuc2l0eVNlcnZpY2UsIE51bGxhYmxlLCBSdGxTZXJ2aWNlLCBzY3JvbGxUb3AgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBGRF9EWU5BTUlDX1BBR0UgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvZHluYW1pYy1wYWdlJztcbmltcG9ydCB7IEljb25Gb250IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2ljb24nO1xuaW1wb3J0IHsgU2Nyb2xsU3B5RGlyZWN0aXZlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3Njcm9sbC1zcHknO1xuaW1wb3J0IHsgU2Nyb2xsYmFyRGlyZWN0aXZlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3Njcm9sbGJhcic7XG5pbXBvcnQgeyBGRF9UQUJMSVNULCBUYWJMaXN0IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3NoYXJlZCc7XG5pbXBvcnQgeyBmcm9tRXZlbnQgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpcnN0LCBzdGFydFdpdGggfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBJY29uVGFiQmFyQmFzZSB9IGZyb20gJy4vY29tcG9uZW50cyc7XG5pbXBvcnQgeyBJY29uVGFiQmFyRmlsdGVyVHlwZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9pY29uLXRhYi1iYXItZmlsdGVyLXR5cGUvaWNvbi10YWItYmFyLWZpbHRlci10eXBlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJY29uVGFiQmFySWNvblR5cGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvaWNvbi10YWItYmFyLWljb24tdHlwZS9pY29uLXRhYi1iYXItaWNvbi10eXBlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJY29uVGFiQmFyUHJvY2Vzc1R5cGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvaWNvbi10YWItYmFyLXByb2Nlc3MtdHlwZS9pY29uLXRhYi1iYXItcHJvY2Vzcy10eXBlLmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICAgIEljb25UYWJCYXJUYWJDb21wb25lbnQsXG4gICAgSWNvblRhYkJhclRhYkNvbnRlbnREaXJlY3RpdmVcbn0gZnJvbSAnLi9jb21wb25lbnRzL2ljb24tdGFiLWJhci10YWIvaWNvbi10YWItYmFyLXRhYi5jb21wb25lbnQnO1xuaW1wb3J0IHsgSWNvblRhYkJhclRleHRUeXBlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2ljb24tdGFiLWJhci10ZXh0LXR5cGUvaWNvbi10YWItYmFyLXRleHQtdHlwZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVU5JUVVFX0tFWV9TRVBBUkFUT1IgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBJY29uVGFiQmFySXRlbSB9IGZyb20gJy4vaW50ZXJmYWNlcy9pY29uLXRhYi1iYXItaXRlbS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgVGFiQ29sb3JBc3NvY2lhdGlvbnMgfSBmcm9tICcuL2ludGVyZmFjZXMvdGFiLWNvbG9yLWFzc29jaWF0aW9ucy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgVGFiQ29uZmlnIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3RhYi1jb25maWcuaW50ZXJmYWNlJztcbmltcG9ydCB7IEljb25UYWJCYXJCYWNrZ3JvdW5kLCBJY29uVGFiQmFyU2l6ZSwgVGFiRGVzdGlueU1vZGUsIFRhYlR5cGUgfSBmcm9tICcuL3R5cGVzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZHAtaWNvbi10YWItYmFyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vaWNvbi10YWItYmFyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJy4vaWNvbi10YWItYmFyLmNvbXBvbmVudC5zY3NzJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEZEX1RBQkxJU1QsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogSWNvblRhYkJhckNvbXBvbmVudFxuICAgICAgICB9XG4gICAgXSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgICAgIEljb25UYWJCYXJQcm9jZXNzVHlwZUNvbXBvbmVudCxcbiAgICAgICAgSWNvblRhYkJhckZpbHRlclR5cGVDb21wb25lbnQsXG4gICAgICAgIEljb25UYWJCYXJJY29uVHlwZUNvbXBvbmVudCxcbiAgICAgICAgSWNvblRhYkJhclRleHRUeXBlQ29tcG9uZW50LFxuICAgICAgICBTY3JvbGxiYXJEaXJlY3RpdmUsXG4gICAgICAgIFNjcm9sbFNweURpcmVjdGl2ZSxcbiAgICAgICAgSWNvblRhYkJhclRhYkNvbnRlbnREaXJlY3RpdmVcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIEljb25UYWJCYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIFRhYkxpc3Qge1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBUeXBlIG9mIHRhYiBiYXIgdmlldy5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGljb25UYWJUeXBlOiBUYWJUeXBlID0gJ3RleHQnO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEEgdGFiIGJhciBjb25maWd1cmF0aW9uIHRoYXQgc3RvcmVzIHRoZSBzdGF0ZSBvZiBlYWNoIHRhYi4gQmFzZWQgb24gdGhpcyBjb25maWd1cmF0aW9uLCBhIHRhYiBiYXIgaXMgcmVwcmVzZW50aW5nLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHRhYnNDb25maWcodmFsdWU6IFRhYkNvbmZpZ1tdKSB7XG4gICAgICAgIHRoaXMuX3RhYnNDb25maWckLnNldCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgZ2V0IHRhYnNDb25maWcoKTogVGFiQ29uZmlnW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGFic0NvbmZpZyQoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gRGVzdGlueSBtb2RlLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZGVuc2l0eU1vZGU6IFRhYkRlc3RpbnlNb2RlID0gJ2luaGVyaXQnO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEljb24gZm9udFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgaWNvblRhYkZvbnQ6IEljb25Gb250ID0gJ1NBUC1pY29ucyc7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gRGlzYWJsZSBvciBlbmFibGUgcmVvcmRlcmluZyhkcmFnIGFuZCBkcm9wKSBmZWF0dXJlLiAoc3VwcG9ydGVkIGJ5IHRleHQgdHlwZSBvbmx5KVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZW5hYmxlVGFiUmVvcmRlcmluZyA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEJvb2xlYW4gZmxhZyBpbmRpY2F0aW5nIHRvIHNob3cgdG90YWwgdGFiLihzdXBwb3J0ZWQgYnkgZmlsdGVyIHR5cGUgb25seSlcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNob3dUb3RhbFRhYiA9IHRydWU7XG5cbiAgICAvKiogV2hldGhlciB0byByZW5kZXIgaWNvbiB0YWIgaXRlbSBhcyBtdWx0aS1jbGljayB2YXJpYW50LiAqL1xuICAgIEBJbnB1dCgpXG4gICAgbXVsdGlDbGljayA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIExheW91dCB0eXBlIGZvciB0YWIgKHN1cHBvcnRlZCBieSB0ZXh0IHR5cGUgb25seSlcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGxheW91dE1vZGU6ICdyb3cnIHwgJ2NvbHVtbicgPSAncm93JztcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBJY29uIHRhYiBiYXIgYmFja2dyb3VuZCB0eXBlLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgaWNvblRhYkJhY2tncm91bmQ6IEljb25UYWJCYXJCYWNrZ3JvdW5kID0gJ3NvbGlkJztcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBJY29uIHRhYiBiYXIgc2l6ZS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGljb25UYWJTaXplOiBJY29uVGFiQmFyU2l6ZTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBBc3NvY2lhdGlvbnMgZm9yIGNvbG9ycyBvZiB0aGUgdGFicy5cbiAgICAgKiBJZiBhbnkgb2YgdGhlIGNvbG9yIGFzc29jaWF0aW9ucyBwcm92aWRlZCwgdGhleSdsbCBiZSByZWFkIGJ5IHNjcmVlbnJlYWRlciBpbnN0ZWFkIG9mIHRoZSBhY3R1YWwgY29sb3JcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGNvbG9yQXNzb2NpYXRpb25zOiBUYWJDb2xvckFzc29jaWF0aW9ucztcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdG8gb3BlbiB0YWIgY29udGVudCBvbmUgdW5kZXIgYW5vdGhlciB3aXRob3V0IGNvbGxhcHNpbmcuXG4gICAgICogV29ya3Mgb25seSBmb3IgY29udGVudC1wcm9qZWN0ZWQgdGFiIGNvbnRlbnQuXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gICAgc3RhY2tDb250ZW50ID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBNYXhpbXVtIGhlaWdodCBvZiB0aGUgY29udGVudC5cbiAgICAgKiBXb3JrcyBvbmx5IGZvciBjb250ZW50LXByb2plY3RlZCB0YWIgY29udGVudC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIG1heENvbnRlbnRIZWlnaHQgPSAnMTAwJSc7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gRW1pdHMgd2hlbiBzb21lIHRhYiBpcyBzZWxlY3RlZC5cbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBpY29uVGFiU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEljb25UYWJCYXJJdGVtPigpO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEVtaXRzIHdoZW4gdXNlciBkcm9wIHRhYi5cbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBpY29uVGFiUmVvcmRlcmVkID0gbmV3IEV2ZW50RW1pdHRlcjxJY29uVGFiQmFySXRlbVtdPigpO1xuXG4gICAgLyoqIEV2ZW50IGVtaXR0ZWQgd2hlbiB1c2VyIGNsaWNrcyBvbiB4IGljb24gaW4gdGFiLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIGNsb3NlVGFiID0gbmV3IEV2ZW50RW1pdHRlcjxJY29uVGFiQmFySXRlbT4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQENvbnRlbnRDaGlsZHJlbihJY29uVGFiQmFyVGFiQ29tcG9uZW50LCB7IGRlc2NlbmRhbnRzOiBmYWxzZSB9KVxuICAgIGNoaWxkcmVuOiBRdWVyeUxpc3Q8SWNvblRhYkJhclRhYkNvbXBvbmVudD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBDb250ZW50Q2hpbGRyZW4oSWNvblRhYkJhclRhYkNvbXBvbmVudCwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICAgIGFsbENoaWxkcmVuOiBRdWVyeUxpc3Q8SWNvblRhYkJhclRhYkNvbXBvbmVudD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoU2Nyb2xsYmFyRGlyZWN0aXZlKVxuICAgIF9zY3JvbGxiYXI6IFNjcm9sbGJhckRpcmVjdGl2ZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZHJlbihJY29uVGFiQmFyVGFiQ29udGVudERpcmVjdGl2ZSlcbiAgICB0YWJEaXJlY3RpdmVzOiBRdWVyeUxpc3Q8SWNvblRhYkJhclRhYkNvbnRlbnREaXJlY3RpdmU+O1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mZC10YWJzLWN1c3RvbScpXG4gICAgcHJpdmF0ZSBnZXQgX2N1c3RvbVRhYnMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbkR5bmFtaWNQYWhlO1xuICAgIH1cblxuICAgIEBWaWV3Q2hpbGQoSWNvblRhYkJhckJhc2UpXG4gICAgcHJpdmF0ZSByZWFkb25seSBfaWNvblRhYkJhckNtcDogTnVsbGFibGU8SWNvblRhYkJhckJhc2U+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBnZXQgaGVhZGVyQ29udGFpbmVyKCk6IE51bGxhYmxlPEVsZW1lbnRSZWY+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ljb25UYWJCYXJDbXA/LmhlYWRlckVsZW1lbnQ7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfY3NzQ2xhc3NGb3JDb250YWluZXI6IHN0cmluZ1tdO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfZGlzYWJsZVNjcm9sbFNweSA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfaW5pdCA9IHRydWU7XG5cbiAgICAvKiogU2Nyb2xsYWJsZSBlbGVtZW50IHJlZmVyZW5jZS4gKi9cbiAgICBnZXQgc2Nyb2xsYWJsZUVsZW1lbnQoKTogTnVsbGFibGU8RWxlbWVudFJlZj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fc2Nyb2xsYmFyPy5lbGVtZW50UmVmO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVhZG9ubHkgX3NlbGVjdGVkVWlkID0gc2lnbmFsPHN0cmluZyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVhZG9ubHkgX3RhYnMkID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5fZ2VuZXJhdGVUYWJCYXJJdGVtcyh0aGlzLl90YWJzQ29uZmlnJCgpKSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlYWRvbmx5IF9mbGF0VGFicyQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLl9nZW5lcmF0ZUZsYXRUYWJzKHRoaXMuX3RhYnMkKCkpKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVhZG9ubHkgX3RhYlJlbmRlcmVyJCA9IHNpZ25hbDxJY29uVGFiQmFySXRlbSB8IG51bGw+KG51bGwpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWFkb25seSBfdGFiUmVuZGVyZXJzJCA9IHNpZ25hbDx7IHJlbmRlcmVyOiBUZW1wbGF0ZVJlZjxhbnk+OyBpZDogc3RyaW5nIH1bXT4oW10pO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWFkb25seSBfcnRsJCA9IGNvbXB1dGVkKCgpID0+ICEhdGhpcy5fcnRsU2VydmljZT8ucnRsU2lnbmFsKCkpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWFkb25seSBfdGFic0NvbmZpZyQgPSBzaWduYWw8VGFiQ29uZmlnW10+KFtdKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2luRHluYW1pY1BhaGUgPSAhIWluamVjdChGRF9EWU5BTUlDX1BBR0UsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIF9jZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgX2NvbnRlbnREZW5zaXR5U2VydmljZTogQ29udGVudERlbnNpdHlTZXJ2aWNlLFxuICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIF9ydGxTZXJ2aWNlOiBSdGxTZXJ2aWNlXG4gICAgKSB7fVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY3NzQ2xhc3NGb3JDb250YWluZXIgPSB0aGlzLl9nZW5lcmF0ZUNvbnRhaW5lclN0eWxlcygpO1xuXG4gICAgICAgIGlmICh0aGlzLmRlbnNpdHlNb2RlID09PSAnaW5oZXJpdCcpIHtcbiAgICAgICAgICAgIHRoaXMuX2NvbnRlbnREZW5zaXR5U2VydmljZT8uX2NvbnRlbnREZW5zaXR5TGlzdGVuZXJcbiAgICAgICAgICAgICAgICAucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLCB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZikpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoZGVuc2l0eSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRlbnNpdHlNb2RlID0gZGVuc2l0eTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRlbnNpdHkgIT09ICdjb21wYWN0Jykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fY3NzQ2xhc3NGb3JDb250YWluZXIgPSB0aGlzLl9jc3NDbGFzc0ZvckNvbnRhaW5lci5maWx0ZXIoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNzc0NsYXNzKSA9PiBjc3NDbGFzcyAhPT0gJ2ZkLWljb24tdGFiLWJhci0tY29tcGFjdCdcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9jc3NDbGFzc0ZvckNvbnRhaW5lci5wdXNoKCdmZC1pY29uLXRhYi1iYXItLWNvbXBhY3QnKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jaGlsZHJlbi5jaGFuZ2VzLnBpcGUoc3RhcnRXaXRoKG51bGwpLCB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZikpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBwcm9qZWN0ZWRUYWJzID0gdGhpcy5jaGlsZHJlbi50b0FycmF5KCk7XG5cbiAgICAgICAgICAgIGlmIChwcm9qZWN0ZWRUYWJzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy50YWJzQ29uZmlnID0gcHJvamVjdGVkVGFicy5tYXAoKHQpID0+IHRoaXMuX2dlbmVyYXRlVGFiQ29uZmlnKHQpKTtcbiAgICAgICAgICAgIHRoaXMuX2NkLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5hbGxDaGlsZHJlbi5jaGFuZ2VzLnBpcGUoc3RhcnRXaXRoKG51bGwpLCB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZikpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl90YWJSZW5kZXJlcnMkLnNldChcbiAgICAgICAgICAgICAgICB0aGlzLmFsbENoaWxkcmVuLm1hcCgoYykgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgcmVuZGVyZXI6IGMucmVuZGVyZXIsXG4gICAgICAgICAgICAgICAgICAgIGlkOiBjLmlkXG4gICAgICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQHBhcmFtIGV2ZW50IHJlb3JkZXJlZCBhcnJheSBvZiBJY29uVGFiQmFySXRlbVxuICAgICAqL1xuICAgIF9vblJlb3JkZXIoZXZlbnQ6IEljb25UYWJCYXJJdGVtW10pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pY29uVGFiUmVvcmRlcmVkLmVtaXQoZXZlbnQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAcGFyYW0gc2VsZWN0ZWRJdGVtXG4gICAgICovXG4gICAgX3NlbGVjdEl0ZW0oc2VsZWN0ZWRJdGVtOiBJY29uVGFiQmFySXRlbSk6IHZvaWQge1xuICAgICAgICB0aGlzLl90YWJSZW5kZXJlciQuc2V0KHNlbGVjdGVkSXRlbSk7XG4gICAgICAgIHRoaXMuaWNvblRhYlNlbGVjdGVkLmVtaXQoc2VsZWN0ZWRJdGVtKTtcblxuICAgICAgICBpZiAodGhpcy5zdGFja0NvbnRlbnQpIHtcbiAgICAgICAgICAgIHRoaXMuX3Njcm9sbFRvUGFuZWwodGhpcy50YWJEaXJlY3RpdmVzLmZpbmQoKHRhYikgPT4gdGFiLnVJZCA9PT0gc2VsZWN0ZWRJdGVtLnVJZCkhKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2Nsb3NlVGFiKGl0ZW06IEljb25UYWJCYXJJdGVtKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2xvc2VUYWIuZW1pdChpdGVtKTtcbiAgICB9XG5cbiAgICAvKiogUHJvZ3JhbW1hdGljYWxseSBzZWxlY3QgdGFiLiAqL1xuICAgIHNlbGVjdFRhYihpZDogTnVsbGFibGU8c3RyaW5nPik6IHZvaWQge1xuICAgICAgICBjb25zdCBzZWxlY3RlZEl0ZW0gPSB0aGlzLl9mbGF0VGFicyQoKS5maW5kKCh0KSA9PiB0LmlkID09PSBpZCk7XG4gICAgICAgIGlmICghc2VsZWN0ZWRJdGVtKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fc2VsZWN0ZWRVaWQuc2V0KHNlbGVjdGVkSXRlbS51SWQpO1xuICAgICAgICB0aGlzLl9zZWxlY3RJdGVtKHNlbGVjdGVkSXRlbSk7XG4gICAgICAgIHRoaXMuX2NkLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGhpZ2hsaWdodEFjdGl2ZVRhYihpZDogTnVsbGFibGU8c3RyaW5nPiwgc2Nyb2xsID0gZmFsc2UpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX2Rpc2FibGVTY3JvbGxTcHkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBhY3RpdmVUYWIgPSB0aGlzLnRhYkRpcmVjdGl2ZXMuZmluZCgodGFiKSA9PiB0YWIuaWQgPT09IGlkKTtcbiAgICAgICAgdGhpcy5fc2VsZWN0ZWRVaWQuc2V0KGFjdGl2ZVRhYj8udUlkIHx8IHVuZGVmaW5lZCk7XG4gICAgICAgIGlmIChzY3JvbGwgJiYgYWN0aXZlVGFiKSB7XG4gICAgICAgICAgICB0aGlzLl9zY3JvbGxUb1BhbmVsKGFjdGl2ZVRhYik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQHJldHVybnMgYXJyYXkgb2YgY3NzIGNsYXNzZXMgZm9yIGljb24tdGFiLWJhciBjb250YWluZXJcbiAgICAgKi9cbiAgICBwcml2YXRlIF9nZW5lcmF0ZUNvbnRhaW5lclN0eWxlcygpOiBzdHJpbmdbXSB7XG4gICAgICAgIGNvbnN0IHN0eWxlcyA9IFtgZmQtaWNvbi10YWItYmFyLS0ke3RoaXMuaWNvblRhYlR5cGV9YF07XG4gICAgICAgIGlmICh0aGlzLmljb25UYWJUeXBlID09PSAncHJvY2VzcycgJiYgdGhpcy50YWJzQ29uZmlnWzBdLmljb24pIHtcbiAgICAgICAgICAgIHN0eWxlcy5wdXNoKCdmZC1pY29uLXRhYi1iYXItLWljb24nKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5pY29uVGFiQmFja2dyb3VuZCAhPT0gJ3NvbGlkJykge1xuICAgICAgICAgICAgc3R5bGVzLnB1c2goYGZkLWljb24tdGFiLWJhci0tJHt0aGlzLmljb25UYWJCYWNrZ3JvdW5kfWApO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmljb25UYWJTaXplKSB7XG4gICAgICAgICAgICBzdHlsZXMucHVzaChgZmQtaWNvbi10YWItYmFyLS0ke3RoaXMuaWNvblRhYlNpemV9YCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuZGVuc2l0eU1vZGUgPT09ICdjb21wYWN0Jykge1xuICAgICAgICAgICAgc3R5bGVzLnB1c2goJ2ZkLWljb24tdGFiLWJhci0tY29tcGFjdCcpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmxheW91dE1vZGUgPT09ICdjb2x1bW4nKSB7XG4gICAgICAgICAgICBzdHlsZXMucHVzaCgnZmQtaWNvbi10YWItYmFyLS1jb3VudGVycycpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzdHlsZXM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZ2VuZXJhdGVUYWJDb25maWcodGFiOiBJY29uVGFiQmFyVGFiQ29tcG9uZW50KTogVGFiQ29uZmlnIHtcbiAgICAgICAgY29uc3QgdGFiQ29uZmlnOiBUYWJDb25maWcgPSB7XG4gICAgICAgICAgICBsYWJlbDogdGFiLmxhYmVsLFxuICAgICAgICAgICAgY29sb3I6IHRhYi5jb2xvcixcbiAgICAgICAgICAgIGFjdGl2ZTogdGFiLmFjdGl2ZSxcbiAgICAgICAgICAgIGNvdW50ZXI6IHRhYi5jb3VudGVyLFxuICAgICAgICAgICAgcmVuZGVyZXI6IHRhYi5yZW5kZXJlcixcbiAgICAgICAgICAgIGlkOiB0YWIuaWQsXG4gICAgICAgICAgICBzdWJJdGVtczogdGFiLmNoaWxkcmVuLm1hcCgoYykgPT4gdGhpcy5fZ2VuZXJhdGVUYWJDb25maWcoYykpXG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuIHRhYkNvbmZpZztcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3Njcm9sbFRvUGFuZWwodGFiUGFuZWw6IE51bGxhYmxlPEljb25UYWJCYXJUYWJDb250ZW50RGlyZWN0aXZlPik6IHZvaWQge1xuICAgICAgICBpZiAoIXRhYlBhbmVsKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcGFuZWxFbGVtZW50ID0gdGFiUGFuZWwuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgICAgICBjb25zdCBjb250YWluZXJFbGVtZW50ID0gdGhpcy5fc2Nyb2xsYmFyLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgICAgY29uc3QgZGlzdGFuY2VUb1Njcm9sbCA9IHBhbmVsRWxlbWVudC5vZmZzZXRUb3AgLSBjb250YWluZXJFbGVtZW50Lm9mZnNldFRvcDtcbiAgICAgICAgY29uc3QgbWF4aW11bVNjcm9sbFRvcCA9IGNvbnRhaW5lckVsZW1lbnQuc2Nyb2xsSGVpZ2h0IC0gY29udGFpbmVyRWxlbWVudC5jbGllbnRIZWlnaHQ7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRTY3JvbGxQb3NpdGlvbiA9IE1hdGguY2VpbChjb250YWluZXJFbGVtZW50LnNjcm9sbFRvcCk7XG5cbiAgICAgICAgaWYgKCEoY3VycmVudFNjcm9sbFBvc2l0aW9uID09PSBtYXhpbXVtU2Nyb2xsVG9wICYmIGRpc3RhbmNlVG9TY3JvbGwgPiBtYXhpbXVtU2Nyb2xsVG9wKSkge1xuICAgICAgICAgICAgdGhpcy5fZGlzYWJsZVNjcm9sbFNweSA9IHRydWU7XG4gICAgICAgICAgICBmcm9tRXZlbnQoY29udGFpbmVyRWxlbWVudCwgJ3Njcm9sbCcpXG4gICAgICAgICAgICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDEwMCksIGZpcnN0KCksIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95UmVmKSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+ICh0aGlzLl9kaXNhYmxlU2Nyb2xsU3B5ID0gZmFsc2UpKTtcbiAgICAgICAgICAgIHNjcm9sbFRvcChjb250YWluZXJFbGVtZW50LCBkaXN0YW5jZVRvU2Nyb2xsKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAZGVzY3JpcHRpb24gZ2VuZXJhdGUgSWNvblRhYkl0ZW1zIGZyb20gVGFiQ29uZmlnIGFycmF5XG4gICAgICovXG4gICAgcHJpdmF0ZSBfZ2VuZXJhdGVUYWJCYXJJdGVtcyhcbiAgICAgICAgY29uZmlnOiBUYWJDb25maWdbXSxcbiAgICAgICAgaW5kZXhQcmVmaXggPSAnJyxcbiAgICAgICAgZmxhdEluZGV4UmVmPzogRmxhdEluZGV4LFxuICAgICAgICBwYXJlbnRVSWQ/OiBzdHJpbmdcbiAgICApOiBJY29uVGFiQmFySXRlbVtdIHtcbiAgICAgICAgZmxhdEluZGV4UmVmID0gZmxhdEluZGV4UmVmIHx8IHsgdmFsdWU6IDAgfTtcbiAgICAgICAgcmV0dXJuIGNvbmZpZy5tYXAoKGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBjb25zdCB1SWQgPSBgJHtpbmRleFByZWZpeH0ke2luZGV4fWA7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQ6IEljb25UYWJCYXJJdGVtID0ge1xuICAgICAgICAgICAgICAgIC4uLml0ZW0sXG4gICAgICAgICAgICAgICAgaW5kZXgsXG4gICAgICAgICAgICAgICAgY3NzQ2xhc3NlczogW10sXG4gICAgICAgICAgICAgICAgdUlkLFxuICAgICAgICAgICAgICAgIGhpZGRlbjogZmFsc2UsXG4gICAgICAgICAgICAgICAgcGFyZW50VUlkLFxuICAgICAgICAgICAgICAgIGZsYXRJbmRleDogZmxhdEluZGV4UmVmIS52YWx1ZSsrLFxuICAgICAgICAgICAgICAgIHN1Ykl0ZW1zOiB0aGlzLl9nZW5lcmF0ZVRhYkJhckl0ZW1zKFxuICAgICAgICAgICAgICAgICAgICBpdGVtLnN1Ykl0ZW1zIHx8IFtdLFxuICAgICAgICAgICAgICAgICAgICBgJHt1SWR9JHtVTklRVUVfS0VZX1NFUEFSQVRPUn1gLFxuICAgICAgICAgICAgICAgICAgICBmbGF0SW5kZXhSZWYsXG4gICAgICAgICAgICAgICAgICAgIHVJZFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAoaXRlbS5jb2xvcikge1xuICAgICAgICAgICAgICAgIHJlc3VsdC5jc3NDbGFzc2VzID0gW2BmZC1pY29uLXRhYi1iYXJfX2l0ZW0tLSR7aXRlbS5jb2xvcn1gXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2dlbmVyYXRlRmxhdFRhYnModGFiczogSWNvblRhYkJhckl0ZW1bXSk6IEljb25UYWJCYXJJdGVtW10ge1xuICAgICAgICBjb25zdCBmbGF0VGFicyA9IHRhYnMucmVkdWNlKChhY2M6IEljb25UYWJCYXJJdGVtW10sIHRhYikgPT4ge1xuICAgICAgICAgICAgYWNjLnB1c2godGFiKTtcbiAgICAgICAgICAgIGlmICh0YWIuc3ViSXRlbXMpIHtcbiAgICAgICAgICAgICAgICBhY2MucHVzaCguLi50aGlzLl9nZW5lcmF0ZUZsYXRUYWJzKHRhYi5zdWJJdGVtcykpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgfSwgW10pO1xuXG4gICAgICAgIHJldHVybiBmbGF0VGFicztcbiAgICB9XG59XG5cbi8qKiBAaGlkZGVuIGhlbHBlciBvYmplY3QgdGhhdCBpcyB1c2VkIGluIHRhYiBnZW5lcmF0aW9uIGZ1bmN0aW9ucyB0byBjYWxjdWxhdGUgdGhlaXIgaW5kZXhlcyBub3QgZGVwZW5kaW5nIG9uIGxldmVsIG9mIG5lc3RpbmcgKi9cbmludGVyZmFjZSBGbGF0SW5kZXgge1xuICAgIHZhbHVlOiBudW1iZXI7XG59XG4iLCI8ZGl2IGNsYXNzPVwiZmQtaWNvbi10YWItYmFyXCIgW2NsYXNzXT1cIl9jc3NDbGFzc0ZvckNvbnRhaW5lclwiPlxuICAgIEBpZiAoaWNvblRhYlR5cGUgPT09ICd0ZXh0Jykge1xuICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwidGV4dFR5cGVcIj48L25nLXRlbXBsYXRlPlxuICAgIH1cbiAgICBAaWYgKGljb25UYWJUeXBlID09PSAnaWNvbicgfHwgaWNvblRhYlR5cGUgPT09ICdpY29uLW9ubHknKSB7XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJpY29uVHlwZVwiPjwvbmctdGVtcGxhdGU+XG4gICAgfVxuICAgIEBpZiAoaWNvblRhYlR5cGUgPT09ICdmaWx0ZXInKSB7XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJmaWx0ZXJUeXBlXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICB9XG4gICAgQGlmIChpY29uVGFiVHlwZSA9PT0gJ3Byb2Nlc3MnKSB7XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJwcm9jZXNzVHlwZVwiPjwvbmctdGVtcGxhdGU+XG4gICAgfVxuICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJmZC1pY29uLXRhYi1iYXJfX2NvbnRlbnRcIlxuICAgICAgICBmZC1zY3JvbGxiYXJcbiAgICAgICAgKHNweUNoYW5nZSk9XCJoaWdobGlnaHRBY3RpdmVUYWIoJGV2ZW50LmlkKVwiXG4gICAgICAgIFtzY3JvbGxTcHlEaXNhYmxlZF09XCIhc3RhY2tDb250ZW50IHx8IF9kaXNhYmxlU2Nyb2xsU3B5XCJcbiAgICAgICAgZmRTY3JvbGxTcHlcbiAgICAgICAgW3RyYWNrZWRUYWdzXT1cIlsnZmRwLWljb24tdGFiLWJhci10YWItY29udGVudCddXCJcbiAgICAgICAgW3N0eWxlLm1heC1oZWlnaHRdPVwibWF4Q29udGVudEhlaWdodFwiXG4gICAgPlxuICAgICAgICBAaWYgKHN0YWNrQ29udGVudCkge1xuICAgICAgICAgICAgQGZvciAodGFiIG9mIF9mbGF0VGFicyQoKTsgdHJhY2sgdGFiKSB7XG4gICAgICAgICAgICAgICAgPGZkcC1pY29uLXRhYi1iYXItdGFiLWNvbnRlbnQgW2lkXT1cInRhYi5pZFwiIFt1SWRdPVwidGFiLnVJZFwiIGNsYXNzPVwiZmQtaWNvbi10YWItYmFyX190YWItY29udGVudFwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwidGFiLnJlbmRlcmVyIHx8IG51bGxcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvZmRwLWljb24tdGFiLWJhci10YWItY29udGVudD5cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICBAaWYgKF90YWJSZW5kZXJlciQoKTsgYXMgdGFiUmVuZGVyZXIpIHtcbiAgICAgICAgICAgICAgICA8ZmRwLWljb24tdGFiLWJhci10YWItY29udGVudFxuICAgICAgICAgICAgICAgICAgICBbaWRdPVwidGFiUmVuZGVyZXIuaWRcIlxuICAgICAgICAgICAgICAgICAgICBbdUlkXT1cInRhYlJlbmRlcmVyLnVJZFwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmQtaWNvbi10YWItYmFyX190YWItY29udGVudFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwidGFiUmVuZGVyZXIucmVuZGVyZXIgfHwgbnVsbFwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPC9mZHAtaWNvbi10YWItYmFyLXRhYi1jb250ZW50PlxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltmZHBJY29uVGFiQmFyRnJlZUNvbnRlbnRdXCI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuPC9kaXY+XG48bmctdGVtcGxhdGUgI3Byb2Nlc3NUeXBlPlxuICAgIDxmZHAtaWNvbi10YWItYmFyLXByb2Nlc3MtdHlwZVxuICAgICAgICBbdGFic109XCJfdGFicyQoKVwiXG4gICAgICAgIFtpc1J0bF09XCJfcnRsJCgpXCJcbiAgICAgICAgW3NlbGVjdGVkVWlkXT1cIl9zZWxlY3RlZFVpZCgpXCJcbiAgICAgICAgKHNlbGVjdGVkVWlkQ2hhbmdlKT1cIl9zZWxlY3RlZFVpZC5zZXQoJGV2ZW50KVwiXG4gICAgICAgIFtkZW5zaXR5TW9kZV09XCJkZW5zaXR5TW9kZVwiXG4gICAgICAgIFtjb2xvckFzc29jaWF0aW9uc109XCJjb2xvckFzc29jaWF0aW9uc1wiXG4gICAgICAgIChzZWxlY3RlZCk9XCJfc2VsZWN0SXRlbSgkZXZlbnQpXCJcbiAgICA+PC9mZHAtaWNvbi10YWItYmFyLXByb2Nlc3MtdHlwZT5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI2ZpbHRlclR5cGU+XG4gICAgPGZkcC1pY29uLXRhYi1iYXItZmlsdGVyLXR5cGVcbiAgICAgICAgW3RhYnNdPVwiX3RhYnMkKClcIlxuICAgICAgICBbc2hvd1RvdGFsVGFiXT1cInNob3dUb3RhbFRhYlwiXG4gICAgICAgIFtpc1J0bF09XCJfcnRsJCgpXCJcbiAgICAgICAgW3NlbGVjdGVkVWlkXT1cIl9zZWxlY3RlZFVpZCgpXCJcbiAgICAgICAgKHNlbGVjdGVkVWlkQ2hhbmdlKT1cIl9zZWxlY3RlZFVpZC5zZXQoJGV2ZW50KVwiXG4gICAgICAgIFtkZW5zaXR5TW9kZV09XCJkZW5zaXR5TW9kZVwiXG4gICAgICAgIFtjb2xvckFzc29jaWF0aW9uc109XCJjb2xvckFzc29jaWF0aW9uc1wiXG4gICAgICAgIChzZWxlY3RlZCk9XCJfc2VsZWN0SXRlbSgkZXZlbnQpXCJcbiAgICA+PC9mZHAtaWNvbi10YWItYmFyLWZpbHRlci10eXBlPlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjaWNvblR5cGU+XG4gICAgPGZkcC1pY29uLXRhYi1iYXItaWNvbi10eXBlXG4gICAgICAgIFtzaG93TGFiZWxdPVwiaWNvblRhYlR5cGUgPT09ICdpY29uJ1wiXG4gICAgICAgIFt0YWJzXT1cIl90YWJzJCgpXCJcbiAgICAgICAgW2lzUnRsXT1cIl9ydGwkKClcIlxuICAgICAgICBbc2VsZWN0ZWRVaWRdPVwiX3NlbGVjdGVkVWlkKClcIlxuICAgICAgICAoc2VsZWN0ZWRVaWRDaGFuZ2UpPVwiX3NlbGVjdGVkVWlkLnNldCgkZXZlbnQpXCJcbiAgICAgICAgW2RlbnNpdHlNb2RlXT1cImRlbnNpdHlNb2RlXCJcbiAgICAgICAgW2NvbG9yQXNzb2NpYXRpb25zXT1cImNvbG9yQXNzb2NpYXRpb25zXCJcbiAgICAgICAgKHNlbGVjdGVkKT1cIl9zZWxlY3RJdGVtKCRldmVudClcIlxuICAgICAgICAoY2xvc2VUYWIpPVwiX2Nsb3NlVGFiKCRldmVudClcIlxuICAgID48L2ZkcC1pY29uLXRhYi1iYXItaWNvbi10eXBlPlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjdGV4dFR5cGU+XG4gICAgPGZkcC1pY29uLXRhYi1iYXItdGV4dC10eXBlXG4gICAgICAgIFt0YWJzXT1cIl90YWJzJCgpXCJcbiAgICAgICAgW211bHRpQ2xpY2tdPVwibXVsdGlDbGlja1wiXG4gICAgICAgIFtsYXlvdXRNb2RlXT1cImxheW91dE1vZGVcIlxuICAgICAgICBbaXNSdGxdPVwiX3J0bCQoKVwiXG4gICAgICAgIFtzZWxlY3RlZFVpZF09XCJfc2VsZWN0ZWRVaWQoKVwiXG4gICAgICAgIChzZWxlY3RlZFVpZENoYW5nZSk9XCJfc2VsZWN0ZWRVaWQuc2V0KCRldmVudClcIlxuICAgICAgICBbZGVuc2l0eU1vZGVdPVwiZGVuc2l0eU1vZGVcIlxuICAgICAgICBbZW5hYmxlVGFiUmVvcmRlcmluZ109XCJlbmFibGVUYWJSZW9yZGVyaW5nXCJcbiAgICAgICAgW2NvbG9yQXNzb2NpYXRpb25zXT1cImNvbG9yQXNzb2NpYXRpb25zXCJcbiAgICAgICAgKHJlb3JkZXJlZCk9XCJfb25SZW9yZGVyKCRldmVudClcIlxuICAgICAgICAoc2VsZWN0ZWQpPVwiX3NlbGVjdEl0ZW0oJGV2ZW50KVwiXG4gICAgICAgIChjbG9zZVRhYik9XCJfY2xvc2VUYWIoJGV2ZW50KVwiXG4gICAgPjwvZmRwLWljb24tdGFiLWJhci10ZXh0LXR5cGU+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -72,6 +72,12 @@ class IconTabBarBase {
72
72
  if (changes.isRtl && !changes.isRtl.firstChange) {
73
73
  this._triggerRecalculationVisibleItems();
74
74
  }
75
+ if (changes.selectedUid && !changes.selectedUid.firstChange) {
76
+ const isExtraTab = this._extraTabs$().find((tab) => tab.uId === this.selectedUid);
77
+ if (isExtraTab) {
78
+ this._selectExtraItem(isExtraTab);
79
+ }
80
+ }
75
81
  }
76
82
  /** @hidden */
77
83
  ngOnInit() {
@@ -1769,6 +1775,7 @@ class IconTabBarComponent {
1769
1775
  }
1770
1776
  this._selectedUid.set(selectedItem.uId);
1771
1777
  this._selectItem(selectedItem);
1778
+ this._cd.detectChanges();
1772
1779
  }
1773
1780
  /** @hidden */
1774
1781
  highlightActiveTab(id, scroll = false) {