@eui/components 16.2.18-snapshot-1717985543169 → 16.2.19-snapshot-1718935988768
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.
@@ -186,7 +186,7 @@ export class EuiTabsComponent {
|
|
186
186
|
const activeTab = this.euiTabsItemsWrapper.nativeElement.children.item(index);
|
187
187
|
const containerWidth = this.euiTabsItems.nativeElement.clientWidth;
|
188
188
|
const wrapperWidth = this.euiTabsItemsWrapper.nativeElement.clientWidth;
|
189
|
-
if (activeTab && !this.isActiveTabFullyVisible(activeTab) && !this.isVerticalTabs) {
|
189
|
+
if (activeTab && !this.isActiveTabFullyVisible(activeTab) && !this.isVerticalTabs && !this.isMainNavigation) {
|
190
190
|
let scrollTo = 0;
|
191
191
|
let subsetWidth = 0;
|
192
192
|
for (let i = 0; i <= index; i++) {
|
@@ -395,4 +395,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
395
395
|
type: HostBinding,
|
396
396
|
args: ['class']
|
397
397
|
}] } });
|
398
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLXRhYnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vZXVpLXRhYnMvZXVpLXRhYnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vZXVpLXRhYnMvZXVpLXRhYnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxlQUFlLEVBQ2YsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUVOLFlBQVksRUFDWixpQkFBaUIsRUFDakIsVUFBVSxFQUdWLFlBQVksRUFDWixnQkFBZ0IsRUFDaEIsU0FBUyxFQUlULFdBQVcsR0FDZCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUF1RCxLQUFLLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMxRyxPQUFPLEVBQUUsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUM3QyxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUscUJBQXFCLEVBQWdCLE1BQU0sdUJBQXVCLENBQUM7QUFDNUUsT0FBTyxFQUFFLGFBQWEsRUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBRXhELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7Ozs7OztBQVE5RCxNQUFNLE9BQU8sZ0JBQWdCO0lBMEJ6QixJQUNJLGdCQUFnQjtRQUNoQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztJQUNsQyxDQUFDO0lBQ0QsSUFBSSxnQkFBZ0IsQ0FBQyxLQUFtQjtRQUNwQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVELElBQ0ksaUJBQWlCO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDO0lBQ25DLENBQUM7SUFDRCxJQUFJLGlC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QU87c0JBQWYsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUdJLFNBQVM7c0JBQWxCLE1BQU07Z0JBRUcsV0FBVztzQkFBcEIsTUFBTTtnQkFFRyxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU07Z0JBRXFFLEtBQUs7c0JBQWhGLGVBQWU7dUJBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGVBQWUsQ0FBQyxFQUFFLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRTtnQkFDYixnQkFBZ0I7c0JBQTVFLFlBQVk7dUJBQUMsaUJBQWlCLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQ2hDLFlBQVk7c0JBQXRDLFNBQVM7dUJBQUMsY0FBYztnQkFDUyxtQkFBbUI7c0JBQXBELFNBQVM7dUJBQUMscUJBQXFCO2dCQUNiLElBQUk7c0JBQXRCLFNBQVM7dUJBQUMsTUFBTTtnQkFRYixnQkFBZ0I7c0JBRG5CLEtBQUs7Z0JBU0YsaUJBQWlCO3NCQURwQixLQUFLO2dCQVNGLFNBQVM7c0JBRFosS0FBSztnQkFTRixjQUFjO3NCQURqQixLQUFLO2dCQXFJTixRQUFRO3NCQURQLFlBQVk7dUJBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDOztBQWtON0Msb0JBQW9CO0FBRXBCLE1BQU0sT0FBTywrQkFBK0I7SUFENUM7UUFFMEIsaUJBQVksR0FBRyxpQ0FBaUMsQ0FBQztLQUMxRTtrSUFGWSwrQkFBK0I7c0hBQS9CLCtCQUErQjs7NEZBQS9CLCtCQUErQjtrQkFEM0MsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxxQkFBcUIsRUFBRTs4QkFFcEIsWUFBWTtzQkFBakMsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIERpcmVjdGl2ZSxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE91dHB1dCxcbiAgICBRdWVyeUxpc3QsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIGZvcndhcmRSZWYsXG4gICAgT25DaGFuZ2VzLFxuICAgIEFmdGVyVmlld0luaXQsXG4gICAgVmlld0NoaWxkcmVuLFxuICAgIFZpZXdDb250YWluZXJSZWYsXG4gICAgVmlld0NoaWxkLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBIb3N0QmluZGluZyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBhbmltYXRlLCBBbmltYXRpb25CdWlsZGVyLCBBbmltYXRpb25GYWN0b3J5LCBBbmltYXRpb25QbGF5ZXIsIHN0eWxlIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgc3RhcnRXaXRoLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHksIEJvb2xlYW5JbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uRW5kLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQgeyBFdWlUYWJDb21wb25lbnQgfSBmcm9tICcuL2V1aS10YWIvZXVpLXRhYi5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2V1aS10YWJzJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZXVpLXRhYnMuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3N0eWxlcy9faW5kZXguc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIEV1aVRhYnNDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcyB7XG4gICAgQElucHV0KCkgc3R5bGVDbGFzczogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHRhYnM6IEV1aVRhYkNvbXBvbmVudFtdID0gW107XG4gICAgQElucHV0KCkgYWN0aXZlVGFiSW5kZXggPSBudWxsO1xuICAgIEBJbnB1dCgpIGUyZUF0dHIgPSAnZXVpLXRhYnMnO1xuICAgIEBJbnB1dCgpIHBhdGhNYXRjaDogJ3ByZWZpeCcgfCAnZnVsbCcgPSAncHJlZml4JztcblxuICAgIC8qKiBAZGVwcmVjYXRlZCBUaGlzIHdpbGwgYmUgcmVtb3ZlZCBpbiBuZXh0IHZlcnNpb24gb2YgZXVpICovXG4gICAgQE91dHB1dCgpIHRhYkNsb3NlZCA9IG5ldyBFdmVudEVtaXR0ZXI8eyB0YWI6IEV1aVRhYkNvbXBvbmVudDsgaW5kZXg6IG51bWJlciB9PigpO1xuICAgIC8qKiBAZGVwcmVjYXRlZCBUaGlzIHdpbGwgYmUgcmVtb3ZlZCBpbiBuZXh0IHZlcnNpb24gb2YgZXVpICovXG4gICAgQE91dHB1dCgpIHRhYlNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjx7IHRhYjogRXVpVGFiQ29tcG9uZW50OyBpbmRleDogbnVtYmVyIH0+KCk7XG5cbiAgICBAT3V0cHV0KCkgdGFiQ2xvc2UgPSBuZXcgRXZlbnRFbWl0dGVyPHsgdGFiOiBFdWlUYWJDb21wb25lbnQ7IGluZGV4OiBudW1iZXIgfT4oKTtcbiAgICBAT3V0cHV0KCkgdGFiU2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjx7IHRhYjogRXVpVGFiQ29tcG9uZW50OyBpbmRleDogbnVtYmVyIH0+KCk7XG5cbiAgICBAQ29udGVudENoaWxkcmVuKGZvcndhcmRSZWYoKCkgPT4gRXVpVGFiQ29tcG9uZW50KSwgeyBkZXNjZW5kYW50czogZmFsc2UgfSkgX3RhYnM6IFF1ZXJ5TGlzdDxFdWlUYWJDb21wb25lbnQ+O1xuICAgIEBWaWV3Q2hpbGRyZW4oJ2V1aVRhYkxhYmVsSXRlbScsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiB9KSBldWlUYWJMYWJlbEl0ZW1zOiBRdWVyeUxpc3Q8Vmlld0NvbnRhaW5lclJlZj47XG4gICAgQFZpZXdDaGlsZCgnZXVpVGFic0l0ZW1zJykgZXVpVGFic0l0ZW1zOiBFbGVtZW50UmVmO1xuICAgIEBWaWV3Q2hpbGQoJ2V1aVRhYnNJdGVtc1dyYXBwZXInKSBldWlUYWJzSXRlbXNXcmFwcGVyOiBFbGVtZW50UmVmO1xuICAgIEBWaWV3Q2hpbGQoJ2hvc3QnKSBob3N0OiBFbGVtZW50UmVmO1xuXG4gICAgcHVibGljIHNjcm9sbGluZyA9IGZhbHNlO1xuICAgIHB1YmxpYyBuYXZpZ2F0aW9uTGVmdEJ1dHRvbkRpc2FibGVkID0gdHJ1ZTtcbiAgICBwdWJsaWMgbmF2aWdhdGlvblJpZ2h0QnV0dG9uRGlzYWJsZWQgPSBmYWxzZTtcbiAgICBwdWJsaWMgY3VycmVudE9mZnNldCA9IDA7XG5cbiAgICBASW5wdXQoKVxuICAgIGdldCBpc01haW5OYXZpZ2F0aW9uKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNNYWluTmF2aWdhdGlvbjtcbiAgICB9XG4gICAgc2V0IGlzTWFpbk5hdmlnYXRpb24odmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9pc01haW5OYXZpZ2F0aW9uID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfaXNNYWluTmF2aWdhdGlvbiA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGlzSGFuZGxlQ2hhbmdlVGFiKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNIYW5kbGVDaGFuZ2VUYWI7XG4gICAgfVxuICAgIHNldCBpc0hhbmRsZUNoYW5nZVRhYih2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2lzSGFuZGxlQ2hhbmdlVGFiID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfaXNIYW5kbGVDaGFuZ2VUYWIgPSBmYWxzZTtcbiAgICBASW5wdXQoKVxuICAgIGdldCBpc1N1YlRhYnMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc1N1YlRhYnM7XG4gICAgfVxuICAgIHNldCBpc1N1YlRhYnModmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9pc1N1YlRhYnMgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwcml2YXRlIF9pc1N1YlRhYnMgPSBmYWxzZTtcbiAgICBASW5wdXQoKVxuICAgIGdldCBpc1ZlcnRpY2FsVGFicygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzVmVydGljYWxUYWJzO1xuICAgIH1cbiAgICBzZXQgaXNWZXJ0aWNhbFRhYnModmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9pc1ZlcnRpY2FsVGFicyA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIHByaXZhdGUgX2lzVmVydGljYWxUYWJzID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIGRlc3Ryb3kkOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgICBwcml2YXRlIHJvdXRlclN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICAgIHByaXZhdGUgcGxheWVyOiBBbmltYXRpb25QbGF5ZXI7XG4gICAgcHJpdmF0ZSBvYnNlcnZlcjogUmVzaXplT2JzZXJ2ZXI7XG4gICAgcHJpdmF0ZSBzdGVwTW92ZSA9IDQwMDtcbiAgICAvKipcbiAgICAgKiBGb3IgcmFjZSBjb25kaXRpb24gcmVhc29uLCB0aGUgd3JhcHBlciB3aWR0aCBpcyBub3QgY29ycmVjdGx5IGNhbGN1bGF0ZWQgd2hlbiB0aGUgY29tcG9uZW50IHBhc3NlcyBmcm9tIG5vLXNjcm9sbCBzdGF0ZSB0byBzY3JvbGxcbiAgICAgKiBzdGF0ZS4gVG8gZml4IHRoaXMgaXNzdWUsIHdlIGNvdW50IHRoZSBudW1iZXIgb2YgdGltZXMgdGhlIGdldFNjcm9sbGluZ1N0YXR1cyBtZXRob2QgaXMgY2FsbGVkLlxuICAgICAqXG4gICAgICogU2NlbmFyaW8gMTogVGhlIG51bWJlciBvZiB0YWJzIGRvZXMgbm90IHJlcXVpcmUgYW55IHNjcm9sbDpcbiAgICAgKiAtIFdpdGhvdXQgYW55IGZpeCB0aGUgc2Nyb2xsIHdpbGwgaGF2ZSBhIGRlbHRhIG9mIDY0IGF0IHRoZSBmaXJzdCBhY3RpdmF0aW9uLCB0aGVuIG9uIHRoZSBmaXJzdCBuby1zY3JvbGwgdG8gc2Nyb2xsIHN0YXRlLFxuICAgICAqIC0gd2UgaGFkIDY0IHRvIHRoZSBtb3ZlXG4gICAgICpcbiAgICAgKiBTY2VuYXJpbyAyOiBUaGUgbnVtYmVyIG9mIHRhYnMgcmVxdWlyZXMgYSBzY3JvbGw6XG4gICAgICogLSBJbiB0aGlzIGNhc2UgdGhlIHdyYXBwZXIgd2lkdGggaXMgY29ycmVjdGx5IGNhbGN1bGF0ZWQsIHNvIHdlIGRvbid0IG5lZWQgdG8gYWRkIHRoZSBkZWx0YVxuICAgICAqL1xuICAgIHByaXZhdGUgc2Nyb2xsaW5nQ291bnQgPSAwO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgICAgICBwcml2YXRlIGJ1aWxkZXI6IEFuaW1hdGlvbkJ1aWxkZXIsXG4gICAgKSB7fVxuXG4gICAgbmdPbkNoYW5nZXMoYzogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoYy5hY3RpdmVUYWJJbmRleCkge1xuICAgICAgICAgICAgc2V0VGltZW91dChcbiAgICAgICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGFjdGl2ZVRhYiA9IHRoaXMuZXVpVGFic0l0ZW1zV3JhcHBlci5uYXRpdmVFbGVtZW50LmNoaWxkcmVuLml0ZW0oYy5hY3RpdmVUYWJJbmRleC5jdXJyZW50VmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb250YWluZXJXaWR0aCA9IHRoaXMuZXVpVGFic0l0ZW1zLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGg7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHdyYXBwZXJXaWR0aCA9IHRoaXMuZXVpVGFic0l0ZW1zV3JhcHBlci5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChhY3RpdmVUYWIgJiYgIXRoaXMuaXNBY3RpdmVUYWJGdWxseVZpc2libGUoYWN0aXZlVGFiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHNjcm9sbFRvID0gMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzdWJzZXRXaWR0aCA9IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8PSBjLmFjdGl2ZVRhYkluZGV4LmN1cnJlbnRWYWx1ZTsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Vic2V0V2lkdGggKz0gdGhpcy5ldWlUYWJzSXRlbXNXcmFwcGVyLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW4uaXRlbShpKS5jbGllbnRXaWR0aDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgc2Nyb2xsVG8gPSBjb250YWluZXJXaWR0aCAvIDIgLSBzdWJzZXRXaWR0aDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKE1hdGguYWJzKHNjcm9sbFRvKSA+IHdyYXBwZXJXaWR0aCAtIGNvbnRhaW5lcldpZHRoICsgMzIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGxUbyA9IC0od3JhcHBlcldpZHRoIC0gY29udGFpbmVyV2lkdGggKyAzMik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzY3JvbGxUbyA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGxUbyA9IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjLmFjdGl2ZVRhYkluZGV4LmlzRmlyc3RDaGFuZ2UoKSAmJiBjLmFjdGl2ZVRhYkluZGV4LmN1cnJlbnRWYWx1ZSA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFNjcm9sbFRvKHNjcm9sbFRvLCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U2Nyb2xsVG8oc2Nyb2xsVG8pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBjLmFjdGl2ZVRhYkluZGV4LmlzRmlyc3RDaGFuZ2UoKSAmJiBjLmFjdGl2ZVRhYkluZGV4LmN1cnJlbnRWYWx1ZSA+IDAgPyA1MDAgOiAwLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgLy8gVE9ETzogZmluZCB0aGUgY29ycmVjdCB0eXBlIG9yIHR1cm4gaW50byBhIGdlbmVyaWMsIGh0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZy9kb2NzL2hhbmRib29rLzIvZ2VuZXJpY3MuaHRtbFxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgICB0aGlzLm9ic2VydmVyID0gbmV3ICh3aW5kb3cgYXMgYW55KS5SZXNpemVPYnNlcnZlcigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmdldFNjcm9sbGluZ1N0YXR1cygpO1xuICAgICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMub2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLmhvc3QubmF0aXZlRWxlbWVudCk7XG5cbiAgICAgICAgdGhpcy5fdGFicy5jaGFuZ2VzLnBpcGUoc3RhcnRXaXRoKHRydWUpLCB0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnRhYnMgPSB0aGlzLl90YWJzLnRvQXJyYXkoKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMucm91dGVyU3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXJTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5yb3V0ZXJTdWJzY3JpcHRpb24gPSB0aGlzLnJvdXRlci5ldmVudHNcbiAgICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyKChlKSA9PiBlIGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCksXG4gICAgICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcbiAgICAgICAgICAgICAgICAgICAgc3RhcnRXaXRoKHsgdXJsOiB0aGlzLnJvdXRlci51cmwgfSksXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKGU6IE5hdmlnYXRpb25FbmQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGFic1dpdGhVcmwgPSB0aGlzLnRhYnMuZmlsdGVyKCh0KSA9PiB0LnVybCAhPT0gbnVsbCk7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0YWJzV2l0aFVybC5sZW5ndGggPT09IHRoaXMudGFicy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0YWJJbmRleCA9IC0xO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMucGF0aE1hdGNoID09PSAnZnVsbCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJJbmRleCA9IHRhYnNXaXRoVXJsLmZpbmRJbmRleCgodCkgPT4gZS51cmwgPT09IHQudXJsKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFiSW5kZXggPSB0YWJzV2l0aFVybC5maW5kSW5kZXgoKHQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVnZXggPSBuZXcgUmVnRXhwKHQudXJsICsgJygvPyknKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlZ2V4LnRlc3QoZS51cmwpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRhYnMgPSB0aGlzLnRhYnMubWFwKCh0LCBpKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYkluZGV4ID09PSBpID8gT2JqZWN0LmFzc2lnbih0LCB7IGlzQWN0aXZlOiB0cnVlIH0pIDogT2JqZWN0LmFzc2lnbih0LCB7IGlzQWN0aXZlOiBmYWxzZSB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnRhYnMuZmluZEluZGV4KCh0KSA9PiB0LmlzQWN0aXZlKSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZVRhYkluZGV4ID0gdGhpcy50YWJzLmZpbmRJbmRleCgodCkgPT4gdC5pc0FjdGl2ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGlmICghdGhpcy5hY3RpdmVUYWJJbmRleCkge1xuICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlVGFiSW5kZXggPSB0aGlzLnRhYnMuZmluZEluZGV4KCh0KSA9PiB0LmlzQWN0aXZlKSAhPT0gLTEgPyB0aGlzLnRhYnMuZmluZEluZGV4KCh0KSA9PiB0LmlzQWN0aXZlKSA6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMub2JzZXJ2ZXI/LnVub2JzZXJ2ZSh0aGlzLmhvc3QubmF0aXZlRWxlbWVudCk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScsIFsnJGV2ZW50J10pXG4gICAgb25SZXNpemUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZ2V0U2Nyb2xsaW5nU3RhdHVzKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uQ29udGVudENoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZ2V0U2Nyb2xsaW5nU3RhdHVzKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdvVG9MZWZ0KCk6IHZvaWQge1xuICAgICAgICBsZXQgc2Nyb2xsVG8gPSB0aGlzLmN1cnJlbnRPZmZzZXQgKyB0aGlzLnN0ZXBNb3ZlO1xuICAgICAgICBpZiAoc2Nyb2xsVG8gPiAwKSB7XG4gICAgICAgICAgICBzY3JvbGxUbyA9IDA7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNldFNjcm9sbFRvKHNjcm9sbFRvKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ29Ub1JpZ2h0KCk6IHZvaWQge1xuICAgICAgICBjb25zdCBjb250YWluZXJXaWR0aCA9IHRoaXMuZXVpVGFic0l0ZW1zLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGg7XG4gICAgICAgIGNvbnN0IHdyYXBwZXJXaWR0aCA9IHRoaXMuZXVpVGFic0l0ZW1zV3JhcHBlci5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoO1xuXG4gICAgICAgIGxldCBzY3JvbGxUbyA9IHRoaXMuY3VycmVudE9mZnNldCAtIHRoaXMuc3RlcE1vdmU7XG5cbiAgICAgICAgaWYgKE1hdGguYWJzKHNjcm9sbFRvKSA+IHdyYXBwZXJXaWR0aCAtIGNvbnRhaW5lcldpZHRoKSB7XG4gICAgICAgICAgICBzY3JvbGxUbyA9IC0od3JhcHBlcldpZHRoIC0gY29udGFpbmVyV2lkdGgpIC0gMzI7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNldFNjcm9sbFRvKHNjcm9sbFRvKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2hhbmdlVGFiKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNIYW5kbGVDaGFuZ2VUYWIpIHtcbiAgICAgICAgICAgIHRoaXMudGFiU2VsZWN0LmVtaXQoeyB0YWI6IHRoaXMudGFic1tpbmRleF0sIGluZGV4IH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHRoaXMudGFic1tpbmRleF0gJiYgIXRoaXMudGFic1tpbmRleF0uaXNEaXNhYmxlZCkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLnRhYnNbdGhpcy5hY3RpdmVUYWJJbmRleF0pIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50YWJzW3RoaXMuYWN0aXZlVGFiSW5kZXhdLmlzQWN0aXZlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMudGFic1tpbmRleF0uaXNBY3RpdmUgPSB0cnVlO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgYWN0aXZlVGFiID0gdGhpcy5ldWlUYWJzSXRlbXNXcmFwcGVyLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW4uaXRlbShpbmRleCk7XG4gICAgICAgICAgICAgICAgY29uc3QgY29udGFpbmVyV2lkdGggPSB0aGlzLmV1aVRhYnNJdGVtcy5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoO1xuICAgICAgICAgICAgICAgIGNvbnN0IHdyYXBwZXJXaWR0aCA9IHRoaXMuZXVpVGFic0l0ZW1zV3JhcHBlci5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoO1xuXG4gICAgICAgICAgICAgICAgaWYgKGFjdGl2ZVRhYiAmJiAhdGhpcy5pc0FjdGl2ZVRhYkZ1bGx5VmlzaWJsZShhY3RpdmVUYWIpICYmICF0aGlzLmlzVmVydGljYWxUYWJzKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBzY3JvbGxUbyA9IDA7XG4gICAgICAgICAgICAgICAgICAgIGxldCBzdWJzZXRXaWR0aCA9IDA7XG4gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IGluZGV4OyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1YnNldFdpZHRoICs9IHRoaXMuZXVpVGFic0l0ZW1zV3JhcHBlci5uYXRpdmVFbGVtZW50LmNoaWxkcmVuLml0ZW0oaSkuY2xpZW50V2lkdGg7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBzY3JvbGxUbyA9IGNvbnRhaW5lcldpZHRoIC8gMiAtIHN1YnNldFdpZHRoO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChNYXRoLmFicyhzY3JvbGxUbykgPiB3cmFwcGVyV2lkdGggLSBjb250YWluZXJXaWR0aCArIDMyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGxUbyA9IC0od3JhcHBlcldpZHRoIC0gY29udGFpbmVyV2lkdGggKyAzMik7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBpZiAoc2Nyb2xsVG8gPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGxUbyA9IDA7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFNjcm9sbFRvKHNjcm9sbFRvKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMudGFic1tpbmRleF0udXJsKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlVGFiSW5kZXggPSBpbmRleDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50YWJTZWxlY3RlZC5lbWl0KHsgdGFiOiB0aGlzLnRhYnNbaW5kZXhdLCBpbmRleCB9KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50YWJTZWxlY3QuZW1pdCh7IHRhYjogdGhpcy50YWJzW2luZGV4XSwgaW5kZXggfSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVUYWJJbmRleCA9IGluZGV4O1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKHRoaXMudGFic1tpbmRleF0udXJsKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgb25LZXlVcChlOiBLZXlib2FyZEV2ZW50LCBpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGlmIChlLmNvZGUgPT09ICdFbnRlcicgfHwgZS5jb2RlID09PSAnU3BhY2UnKSB7XG4gICAgICAgICAgICBpZiAodGhpcy50YWJzW2luZGV4XSAmJiAhdGhpcy50YWJzW2luZGV4XS5pc0Rpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy50YWJzLm1hcCgodCwgaSkgPT4gKGkgPT09IGluZGV4ID8gT2JqZWN0LmFzc2lnbih0LCB7IGlzQWN0aXZlOiB0cnVlIH0pIDogT2JqZWN0LmFzc2lnbih0LCB7IGlzQWN0aXZlOiBmYWxzZSB9KSkpO1xuXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLnRhYnNbaW5kZXhdLnVybCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZVRhYkluZGV4ID0gaW5kZXg7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGFiU2VsZWN0ZWQuZW1pdCh7IHRhYjogdGhpcy50YWJzW2luZGV4XSwgaW5kZXggfSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGFiU2VsZWN0LmVtaXQoeyB0YWI6IHRoaXMudGFic1tpbmRleF0sIGluZGV4IH0pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlVGFiSW5kZXggPSBpbmRleDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCh0aGlzLnRhYnNbaW5kZXhdLnVybCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gVE9ETzogZmluZCB0aGUgY29ycmVjdCB0eXBlIG9yIHR1cm4gaW50byBhIGdlbmVyaWMsIGh0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZy9kb2NzL2hhbmRib29rLzIvZ2VuZXJpY3MuaHRtbFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgcHVibGljIGNsb3NlVGFiKGluZGV4OiBudW1iZXIsIGU6IGFueSk6IHZvaWQge1xuICAgICAgICBjb25zdCB0YWIgPSB0aGlzLnRhYnNbaW5kZXhdO1xuICAgICAgICBpZiAoIXRoaXMudGFic1tpbmRleF0uaXNIYW5kbGVDbG9zZU9uQ2xvc2UpIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2UoZS5pbmRleCk7XG4gICAgICAgICAgICB0aGlzLnRhYnMgPSB0aGlzLnRhYnMuZmlsdGVyKCh0LCBpKSA9PiBpICE9PSBpbmRleCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnRhYkNsb3NlZC5lbWl0KHsgdGFiLCBpbmRleCB9KTtcbiAgICAgICAgdGhpcy50YWJDbG9zZS5lbWl0KHsgdGFiLCBpbmRleCB9KTtcbiAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDbG9zZSBhIHRhYiBwYXNzIGluIHBhcmFtZXRlci5cbiAgICAgKlxuICAgICAqIEB1c2FnZU5vdGVzXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxldWktdGFicyAjdGFicz5cbiAgICAgKiAgICAgPGV1aS10YWIgaXNDbG9zYWJsZSBpc0hhbmRsZUNsb3NlT25DbG9zZT5cbiAgICAgKiAgICAgICAgIDxldWktdGFiLWxhYmVsPlRhYiBsYWJlbDwvZXVpLXRhYi1sYWJlbD5cbiAgICAgKiAgICAgICAgIDxldWktdGFiLWNvbnRlbnQ+VGFiIGNvbnRlbnQ8L2V1aS10YWItY29udGVudD5cbiAgICAgKiAgICAgPC9ldWktdGFiPlxuICAgICAqIDwvZXVpLXRhYnM+XG4gICAgICogYGBgXG4gICAgICogLi4uXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIHRoaXMudGFicy5jbG9zZSgxKTtcbiAgICAgKiBgYGBcbiAgICAgKiBAcGFyYW0gaW5kZXggSW5kZXggb2YgdGhlIHRhYiB0byBjbG9zZVxuICAgICAqL1xuICAgIHB1YmxpYyBjbG9zZShpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGlmIChpbmRleCA9PT0gdGhpcy5hY3RpdmVUYWJJbmRleCkge1xuICAgICAgICAgICAgY29uc3QgcHJldmlvdXNWaXNpYmxlSW5kZXggPSB0aGlzLnRhYnMuaW5kZXhPZih0aGlzLnRhYnNbaW5kZXggLSAxXSk7XG5cbiAgICAgICAgICAgIGlmIChwcmV2aW91c1Zpc2libGVJbmRleCA8IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZVRhYigwKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VUYWIocHJldmlvdXNWaXNpYmxlSW5kZXgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKGluZGV4IDwgdGhpcy5hY3RpdmVUYWJJbmRleCkge1xuICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlVGFiSW5kZXggPSB0aGlzLmFjdGl2ZVRhYkluZGV4IC0gMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudGFicyA9IHRoaXMudGFicy5maWx0ZXIoKHQsIGkpID0+IGkgIT09IGluZGV4KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzQWN0aXZlVGFiRnVsbHlWaXNpYmxlKGFjdGl2ZVRhYjogSFRNTERpdkVsZW1lbnQpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgY29udGFpbmVyV2lkdGggPSB0aGlzLmV1aVRhYnNJdGVtcy5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoO1xuICAgICAgICByZXR1cm4gYWN0aXZlVGFiLm9mZnNldExlZnQgLSA0OCA+PSAwICYmIGFjdGl2ZVRhYi5vZmZzZXRMZWZ0ICsgYWN0aXZlVGFiLmNsaWVudFdpZHRoIDwgY29udGFpbmVyV2lkdGggLSA0ODtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldFNjcm9sbFRvKHNjcm9sbFRvOiBudW1iZXIsIGlzQW5pbWF0ZWQgPSB0cnVlKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lcldpZHRoID0gdGhpcy5ldWlUYWJzSXRlbXMubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aDtcbiAgICAgICAgY29uc3Qgd3JhcHBlcldpZHRoID0gdGhpcy5ldWlUYWJzSXRlbXNXcmFwcGVyLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGg7XG5cbiAgICAgICAgY29uc3QgdGltaW5ncyA9IGlzQW5pbWF0ZWQgPyAnNTAwbXMgY3ViaWMtYmV6aWVyKDAuMzUsIDAsIDAuMjUsIDEpJyA6IDA7XG4gICAgICAgIGNvbnN0IGFuaW1hdGlvbjogQW5pbWF0aW9uRmFjdG9yeSA9IHRoaXMuYnVpbGRlci5idWlsZChbYW5pbWF0ZSh0aW1pbmdzLCBzdHlsZSh7ICdtYXJnaW4tbGVmdCc6ICtzY3JvbGxUbyArICdweCcgfSkpXSk7XG5cbiAgICAgICAgdGhpcy5wbGF5ZXIgPSBhbmltYXRpb24uY3JlYXRlKHRoaXMuZXVpVGFic0l0ZW1zV3JhcHBlci5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgdGhpcy5wbGF5ZXIucGxheSgpO1xuXG4gICAgICAgIHRoaXMuY3VycmVudE9mZnNldCA9IHNjcm9sbFRvO1xuXG4gICAgICAgIGlmIChzY3JvbGxUbyA9PT0gMCkge1xuICAgICAgICAgICAgdGhpcy5uYXZpZ2F0aW9uTGVmdEJ1dHRvbkRpc2FibGVkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoTWF0aC5hYnModGhpcy5jdXJyZW50T2Zmc2V0KSA8IHdyYXBwZXJXaWR0aCAtIGNvbnRhaW5lcldpZHRoICsgMzIpIHtcbiAgICAgICAgICAgIHRoaXMubmF2aWdhdGlvblJpZ2h0QnV0dG9uRGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5jdXJyZW50T2Zmc2V0IDwgMCkge1xuICAgICAgICAgICAgdGhpcy5uYXZpZ2F0aW9uTGVmdEJ1dHRvbkRpc2FibGVkID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKE1hdGguYWJzKHNjcm9sbFRvKSA9PT0gd3JhcHBlcldpZHRoIC0gY29udGFpbmVyV2lkdGggKyAzMikge1xuICAgICAgICAgICAgdGhpcy5uYXZpZ2F0aW9uUmlnaHRCdXR0b25EaXNhYmxlZCA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFNjcm9sbGluZ1N0YXR1cygpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY29udGFpbmVyV2lkdGggPSB0aGlzLmV1aVRhYnNJdGVtcy5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoO1xuICAgICAgICBjb25zdCB3cmFwcGVyV2lkdGggPSB0aGlzLmV1aVRhYnNJdGVtc1dyYXBwZXIubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aDtcblxuICAgICAgICB0aGlzLnNjcm9sbGluZyA9IGNvbnRhaW5lcldpZHRoIDwgd3JhcHBlcldpZHRoO1xuXG4gICAgICAgIGlmICghdGhpcy5zY3JvbGxpbmcpIHtcbiAgICAgICAgICAgIHRoaXMuc2Nyb2xsaW5nQ291bnQgPSAwO1xuICAgICAgICAgICAgdGhpcy5zZXRTY3JvbGxUbygwKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICh3cmFwcGVyV2lkdGggLSBjb250YWluZXJXaWR0aCA8PSBNYXRoLmFicyh0aGlzLmN1cnJlbnRPZmZzZXQpICsgMzIpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBkZWx0YUZpeCA9IHRoaXMuc2Nyb2xsaW5nQ291bnQgPT09IDAgPyA2NCA6IDA7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2Nyb2xsVG8gPSAtKHdyYXBwZXJXaWR0aCAtIGNvbnRhaW5lcldpZHRoKSAtIDMyIC0gZGVsdGFGaXg7XG5cbiAgICAgICAgICAgICAgICB0aGlzLnNldFNjcm9sbFRvKHNjcm9sbFRvKTtcblxuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudE9mZnNldCA9IHNjcm9sbFRvO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAoTWF0aC5hYnModGhpcy5jdXJyZW50T2Zmc2V0KSA8IHdyYXBwZXJXaWR0aCAtIGNvbnRhaW5lcldpZHRoICsgMzIpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5uYXZpZ2F0aW9uUmlnaHRCdXR0b25EaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5jdXJyZW50T2Zmc2V0IDwgMCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm5hdmlnYXRpb25MZWZ0QnV0dG9uRGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuc2Nyb2xsaW5nQ291bnQrKztcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cbn1cblxuLyogZXNsaW50LWRpc2FibGUgKi9cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ2V1aVRhYnNSaWdodENvbnRlbnQnIH0pXG5leHBvcnQgY2xhc3MgRXVpVGFic1JpZ2h0Q29udGVudFRhZ0RpcmVjdGl2ZSB7XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIGVsZW1lbnRDbGFzcyA9ICdldWktdGFic19fcmlnaHQtY29udGVudC13cmFwcGVyJztcbn1cbi8qIGVzbGludC1lbmFibGUgKi9cbiIsIjxkaXZcbiAgICAjaG9zdFxuICAgIGNsYXNzPVwiZXVpLXRhYnMge3sgc3R5bGVDbGFzcyB9fVwiXG4gICAgW2NsYXNzLmV1aS10YWJzLS1tYWluLW5hdmlnYXRpb25dPVwiaXNNYWluTmF2aWdhdGlvblwiXG4gICAgW2NsYXNzLmV1aS10YWJzLS12ZXJ0aWNhbF09XCJpc1ZlcnRpY2FsVGFic1wiXG4gICAgYXR0ci5kYXRhLWUyZT1cInt7IGUyZUF0dHIgfX1cIj5cbiAgICA8ZGl2IGNsYXNzPVwiZXVpLXUtZmxleFwiIFtjbGFzcy5ldWktdGFic19fd3JhcHBlci0taG9yaXpvbnRhbF09XCIhaXNWZXJ0aWNhbFRhYnNcIiBbY2xhc3MuZXVpLXRhYnNfX3dyYXBwZXItLXZlcnRpY2FsXT1cImlzVmVydGljYWxUYWJzXCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgICNldWlUYWJzSXRlbXNcbiAgICAgICAgICAgIGNsYXNzPVwiZXVpLXRhYnNfX2l0ZW1zXCJcbiAgICAgICAgICAgIFtjbGFzcy5ldWktdGFic19faXRlbXMtLWhvcml6b250YWxdPVwiIWlzVmVydGljYWxUYWJzXCJcbiAgICAgICAgICAgIFtjbGFzcy5ldWktdGFic19faXRlbXMtLXNjcm9sbGluZ109XCJzY3JvbGxpbmdcIlxuICAgICAgICAgICAgKGNka09ic2VydmVDb250ZW50KT1cIm9uQ29udGVudENoYW5nZXMoKVwiPlxuICAgICAgICAgICAgPGRpdiAjZXVpVGFic0l0ZW1zV3JhcHBlciBjbGFzcz1cImV1aS10YWJzX19pdGVtcy13cmFwcGVyXCIgW2F0dHIuZGF0YS1vZmZzZXRdPVwiY3VycmVudE9mZnNldFwiIHJvbGU9XCJ0YWJsaXN0XCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgdGFiIG9mIHRhYnM7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRhYi5pc1Zpc2libGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJ0YWJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZXVpLXRhYi1pdGVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZXVpLXRhYi1pdGVtLS1jbG9zYWJsZV09XCJ0YWIuaXNDbG9zYWJsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmV1aS10YWItaXRlbS0tYWN0aXZlXT1cImFjdGl2ZVRhYkluZGV4ID09PSBpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZXVpLXRhYi1pdGVtLS1kaXNhYmxlZF09XCJ0YWIuaXNEaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmV1aS10YWItaXRlbS0tc2Vjb25kYXJ5XT1cInRhYi5ldWlTZWNvbmRhcnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5ldWktdGFiLWl0ZW0tLXByaW1hcnldPVwidGFiLmV1aVByaW1hcnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5ldWktdGFiLWl0ZW0tLWluZm9dPVwidGFiLmV1aUluZm9cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5ldWktdGFiLWl0ZW0tLXN1Y2Nlc3NdPVwidGFiLmV1aVN1Y2Nlc3NcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5ldWktdGFiLWl0ZW0tLXdhcm5pbmddPVwidGFiLmV1aVdhcm5pbmdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5ldWktdGFiLWl0ZW0tLWRhbmdlcl09XCJ0YWIuZXVpRGFuZ2VyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZXVpLXRhYi1pdGVtLS1hY2NlbnRdPVwidGFiLmV1aUFjY2VudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmV1aS10YWItaXRlbS0tYmFja2dyb3VuZC1maWxsZWRdPVwidGFiLmhhc0JhY2tncm91bmRGaWxsZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtZGlzYWJsZWRdPVwidGFiLmlzRGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjaGFuZ2VUYWIoaSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtldWlUb29sdGlwXT1cInRhYi50b29sdGlwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoa2V5dXApPVwib25LZXlVcCgkZXZlbnQsIGkpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV1aS10YWItaXRlbV9fbGFiZWxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtjZGtQb3J0YWxPdXRsZXRdPVwidGFiLnRlbXBsYXRlTGFiZWwudGVtcGxhdGVQb3J0YWxcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJ0YWIuaXNDbG9zYWJsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjbG9zZVRhYihpLCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXVpQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV1aUljb25CdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXVpQmFzaWNCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXVpUm91bmRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldWlTaXplWFNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJDbG9zZSB0YWIgYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJldWktdS1tbC1zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxldWktaWNvbi1zdmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb249XCJldWktZWNsLWNsb3NlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGxDb2xvcj1cImdyZXktNzVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJldWktdGFiX19jbG9zZS1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJDbG9zZSBpY29uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZXVpLWljb24tc3ZnPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJldWktdGFic19fbmF2aWdhdGlvblwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJldWktdGFic19fbmF2aWdhdGlvbl9fbGVmdC1pdGVtXCI+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJnb1RvTGVmdCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGV1aUJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgZXVpSWNvbkJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgZXVpQmFzaWNCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2V1aURpc2FibGVkXT1cIm5hdmlnYXRpb25MZWZ0QnV0dG9uRGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIlNjcm9sbCBsZWZ0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZXVpLWljb24tc3ZnIGljb249XCJldWktY2hldnJvbi1iYWNrXCI+PC9ldWktaWNvbi1zdmc+XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJldWktdGFic19fbmF2aWdhdGlvbl9fcmlnaHQtaXRlbVwiPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZ29Ub1JpZ2h0KClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgZXVpQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBldWlJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBldWlCYXNpY0J1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZXVpRGlzYWJsZWRdPVwibmF2aWdhdGlvblJpZ2h0QnV0dG9uRGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIlNjcm9sbCByaWdodFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGV1aS1pY29uLXN2ZyBpY29uPVwiZXVpLWNoZXZyb24tZm9yd2FyZFwiPjwvZXVpLWljb24tc3ZnPlxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiZXVpLXRhYnNfX3JpZ2h0LWNvbnRlbnRcIj5cbiAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImV1aVRhYnNSaWdodENvbnRlbnRcIj48L25nLWNvbnRlbnQ+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgdGFiIG9mIHRhYnM7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImV1aS10YWItY29udGVudC13cmFwcGVyXCIgdGFiaW5kZXg9XCIwXCIgKm5nSWY9XCJpID09PSBhY3RpdmVUYWJJbmRleCAmJiB0YWIudGVtcGxhdGVDb250ZW50XCI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgW2Nka1BvcnRhbE91dGxldF09XCJ0YWIudGVtcGxhdGVDb250ZW50LnRlbXBsYXRlUG9ydGFsXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cbiJdfQ==
|
398
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLXRhYnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vZXVpLXRhYnMvZXVpLXRhYnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vZXVpLXRhYnMvZXVpLXRhYnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxlQUFlLEVBQ2YsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUVOLFlBQVksRUFDWixpQkFBaUIsRUFDakIsVUFBVSxFQUdWLFlBQVksRUFDWixnQkFBZ0IsRUFDaEIsU0FBUyxFQUlULFdBQVcsR0FDZCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUF1RCxLQUFLLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMxRyxPQUFPLEVBQUUsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUM3QyxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUscUJBQXFCLEVBQWdCLE1BQU0sdUJBQXVCLENBQUM7QUFDNUUsT0FBTyxFQUFFLGFBQWEsRUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBRXhELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7Ozs7OztBQVE5RCxNQUFNLE9BQU8sZ0JBQWdCO0lBMEJ6QixJQUNJLGdCQUFnQjtRQUNoQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztJQUNsQyxDQUFDO0lBQ0QsSUFBSSxnQkFBZ0IsQ0FBQyxLQUFtQjtRQUNwQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVELElBQ0ksaUJBQWlCO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDO0lBQ25DLENBQUM7SUFDRCxJQUFJLGlC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RyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUdJLFNBQVM7c0JBQWxCLE1BQU07Z0JBRUcsV0FBVztzQkFBcEIsTUFBTTtnQkFFRyxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU07Z0JBRXFFLEtBQUs7c0JBQWhGLGVBQWU7dUJBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGVBQWUsQ0FBQyxFQUFFLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRTtnQkFDYixnQkFBZ0I7c0JBQTVFLFlBQVk7dUJBQUMsaUJBQWlCLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQ2hDLFlBQVk7c0JBQXRDLFNBQVM7dUJBQUMsY0FBYztnQkFDUyxtQkFBbUI7c0JBQXBELFNBQVM7dUJBQUMscUJBQXFCO2dCQUNiLElBQUk7c0JBQXRCLFNBQVM7dUJBQUMsTUFBTTtnQkFRYixnQkFBZ0I7c0JBRG5CLEtBQUs7Z0JBU0YsaUJBQWlCO3NCQURwQixLQUFLO2dCQVNGLFNBQVM7c0JBRFosS0FBSztnQkFTRixjQUFjO3NCQURqQixLQUFLO2dCQXFJTixRQUFRO3NCQURQLFlBQVk7dUJBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDOztBQWtON0Msb0JBQW9CO0FBRXBCLE1BQU0sT0FBTywrQkFBK0I7SUFENUM7UUFFMEIsaUJBQVksR0FBRyxpQ0FBaUMsQ0FBQztLQUMxRTtrSUFGWSwrQkFBK0I7c0hBQS9CLCtCQUErQjs7NEZBQS9CLCtCQUErQjtrQkFEM0MsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxxQkFBcUIsRUFBRTs4QkFFcEIsWUFBWTtzQkFBakMsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIERpcmVjdGl2ZSxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE91dHB1dCxcbiAgICBRdWVyeUxpc3QsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIGZvcndhcmRSZWYsXG4gICAgT25DaGFuZ2VzLFxuICAgIEFmdGVyVmlld0luaXQsXG4gICAgVmlld0NoaWxkcmVuLFxuICAgIFZpZXdDb250YWluZXJSZWYsXG4gICAgVmlld0NoaWxkLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBIb3N0QmluZGluZyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBhbmltYXRlLCBBbmltYXRpb25CdWlsZGVyLCBBbmltYXRpb25GYWN0b3J5LCBBbmltYXRpb25QbGF5ZXIsIHN0eWxlIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgc3RhcnRXaXRoLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHksIEJvb2xlYW5JbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uRW5kLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQgeyBFdWlUYWJDb21wb25lbnQgfSBmcm9tICcuL2V1aS10YWIvZXVpLXRhYi5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2V1aS10YWJzJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZXVpLXRhYnMuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3N0eWxlcy9faW5kZXguc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIEV1aVRhYnNDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcyB7XG4gICAgQElucHV0KCkgc3R5bGVDbGFzczogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHRhYnM6IEV1aVRhYkNvbXBvbmVudFtdID0gW107XG4gICAgQElucHV0KCkgYWN0aXZlVGFiSW5kZXggPSBudWxsO1xuICAgIEBJbnB1dCgpIGUyZUF0dHIgPSAnZXVpLXRhYnMnO1xuICAgIEBJbnB1dCgpIHBhdGhNYXRjaDogJ3ByZWZpeCcgfCAnZnVsbCcgPSAncHJlZml4JztcblxuICAgIC8qKiBAZGVwcmVjYXRlZCBUaGlzIHdpbGwgYmUgcmVtb3ZlZCBpbiBuZXh0IHZlcnNpb24gb2YgZXVpICovXG4gICAgQE91dHB1dCgpIHRhYkNsb3NlZCA9IG5ldyBFdmVudEVtaXR0ZXI8eyB0YWI6IEV1aVRhYkNvbXBvbmVudDsgaW5kZXg6IG51bWJlciB9PigpO1xuICAgIC8qKiBAZGVwcmVjYXRlZCBUaGlzIHdpbGwgYmUgcmVtb3ZlZCBpbiBuZXh0IHZlcnNpb24gb2YgZXVpICovXG4gICAgQE91dHB1dCgpIHRhYlNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjx7IHRhYjogRXVpVGFiQ29tcG9uZW50OyBpbmRleDogbnVtYmVyIH0+KCk7XG5cbiAgICBAT3V0cHV0KCkgdGFiQ2xvc2UgPSBuZXcgRXZlbnRFbWl0dGVyPHsgdGFiOiBFdWlUYWJDb21wb25lbnQ7IGluZGV4OiBudW1iZXIgfT4oKTtcbiAgICBAT3V0cHV0KCkgdGFiU2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjx7IHRhYjogRXVpVGFiQ29tcG9uZW50OyBpbmRleDogbnVtYmVyIH0+KCk7XG5cbiAgICBAQ29udGVudENoaWxkcmVuKGZvcndhcmRSZWYoKCkgPT4gRXVpVGFiQ29tcG9uZW50KSwgeyBkZXNjZW5kYW50czogZmFsc2UgfSkgX3RhYnM6IFF1ZXJ5TGlzdDxFdWlUYWJDb21wb25lbnQ+O1xuICAgIEBWaWV3Q2hpbGRyZW4oJ2V1aVRhYkxhYmVsSXRlbScsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiB9KSBldWlUYWJMYWJlbEl0ZW1zOiBRdWVyeUxpc3Q8Vmlld0NvbnRhaW5lclJlZj47XG4gICAgQFZpZXdDaGlsZCgnZXVpVGFic0l0ZW1zJykgZXVpVGFic0l0ZW1zOiBFbGVtZW50UmVmO1xuICAgIEBWaWV3Q2hpbGQoJ2V1aVRhYnNJdGVtc1dyYXBwZXInKSBldWlUYWJzSXRlbXNXcmFwcGVyOiBFbGVtZW50UmVmO1xuICAgIEBWaWV3Q2hpbGQoJ2hvc3QnKSBob3N0OiBFbGVtZW50UmVmO1xuXG4gICAgcHVibGljIHNjcm9sbGluZyA9IGZhbHNlO1xuICAgIHB1YmxpYyBuYXZpZ2F0aW9uTGVmdEJ1dHRvbkRpc2FibGVkID0gdHJ1ZTtcbiAgICBwdWJsaWMgbmF2aWdhdGlvblJpZ2h0QnV0dG9uRGlzYWJsZWQgPSBmYWxzZTtcbiAgICBwdWJsaWMgY3VycmVudE9mZnNldCA9IDA7XG5cbiAgICBASW5wdXQoKVxuICAgIGdldCBpc01haW5OYXZpZ2F0aW9uKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNNYWluTmF2aWdhdGlvbjtcbiAgICB9XG4gICAgc2V0IGlzTWFpbk5hdmlnYXRpb24odmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9pc01haW5OYXZpZ2F0aW9uID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfaXNNYWluTmF2aWdhdGlvbiA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGlzSGFuZGxlQ2hhbmdlVGFiKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNIYW5kbGVDaGFuZ2VUYWI7XG4gICAgfVxuICAgIHNldCBpc0hhbmRsZUNoYW5nZVRhYih2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2lzSGFuZGxlQ2hhbmdlVGFiID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfaXNIYW5kbGVDaGFuZ2VUYWIgPSBmYWxzZTtcbiAgICBASW5wdXQoKVxuICAgIGdldCBpc1N1YlRhYnMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc1N1YlRhYnM7XG4gICAgfVxuICAgIHNldCBpc1N1YlRhYnModmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9pc1N1YlRhYnMgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwcml2YXRlIF9pc1N1YlRhYnMgPSBmYWxzZTtcbiAgICBASW5wdXQoKVxuICAgIGdldCBpc1ZlcnRpY2FsVGFicygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzVmVydGljYWxUYWJzO1xuICAgIH1cbiAgICBzZXQgaXNWZXJ0aWNhbFRhYnModmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9pc1ZlcnRpY2FsVGFicyA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIHByaXZhdGUgX2lzVmVydGljYWxUYWJzID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIGRlc3Ryb3kkOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgICBwcml2YXRlIHJvdXRlclN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICAgIHByaXZhdGUgcGxheWVyOiBBbmltYXRpb25QbGF5ZXI7XG4gICAgcHJpdmF0ZSBvYnNlcnZlcjogUmVzaXplT2JzZXJ2ZXI7XG4gICAgcHJpdmF0ZSBzdGVwTW92ZSA9IDQwMDtcbiAgICAvKipcbiAgICAgKiBGb3IgcmFjZSBjb25kaXRpb24gcmVhc29uLCB0aGUgd3JhcHBlciB3aWR0aCBpcyBub3QgY29ycmVjdGx5IGNhbGN1bGF0ZWQgd2hlbiB0aGUgY29tcG9uZW50IHBhc3NlcyBmcm9tIG5vLXNjcm9sbCBzdGF0ZSB0byBzY3JvbGxcbiAgICAgKiBzdGF0ZS4gVG8gZml4IHRoaXMgaXNzdWUsIHdlIGNvdW50IHRoZSBudW1iZXIgb2YgdGltZXMgdGhlIGdldFNjcm9sbGluZ1N0YXR1cyBtZXRob2QgaXMgY2FsbGVkLlxuICAgICAqXG4gICAgICogU2NlbmFyaW8gMTogVGhlIG51bWJlciBvZiB0YWJzIGRvZXMgbm90IHJlcXVpcmUgYW55IHNjcm9sbDpcbiAgICAgKiAtIFdpdGhvdXQgYW55IGZpeCB0aGUgc2Nyb2xsIHdpbGwgaGF2ZSBhIGRlbHRhIG9mIDY0IGF0IHRoZSBmaXJzdCBhY3RpdmF0aW9uLCB0aGVuIG9uIHRoZSBmaXJzdCBuby1zY3JvbGwgdG8gc2Nyb2xsIHN0YXRlLFxuICAgICAqIC0gd2UgaGFkIDY0IHRvIHRoZSBtb3ZlXG4gICAgICpcbiAgICAgKiBTY2VuYXJpbyAyOiBUaGUgbnVtYmVyIG9mIHRhYnMgcmVxdWlyZXMgYSBzY3JvbGw6XG4gICAgICogLSBJbiB0aGlzIGNhc2UgdGhlIHdyYXBwZXIgd2lkdGggaXMgY29ycmVjdGx5IGNhbGN1bGF0ZWQsIHNvIHdlIGRvbid0IG5lZWQgdG8gYWRkIHRoZSBkZWx0YVxuICAgICAqL1xuICAgIHByaXZhdGUgc2Nyb2xsaW5nQ291bnQgPSAwO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgICAgICBwcml2YXRlIGJ1aWxkZXI6IEFuaW1hdGlvbkJ1aWxkZXIsXG4gICAgKSB7fVxuXG4gICAgbmdPbkNoYW5nZXMoYzogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoYy5hY3RpdmVUYWJJbmRleCkge1xuICAgICAgICAgICAgc2V0VGltZW91dChcbiAgICAgICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGFjdGl2ZVRhYiA9IHRoaXMuZXVpVGFic0l0ZW1zV3JhcHBlci5uYXRpdmVFbGVtZW50LmNoaWxkcmVuLml0ZW0oYy5hY3RpdmVUYWJJbmRleC5jdXJyZW50VmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb250YWluZXJXaWR0aCA9IHRoaXMuZXVpVGFic0l0ZW1zLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGg7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHdyYXBwZXJXaWR0aCA9IHRoaXMuZXVpVGFic0l0ZW1zV3JhcHBlci5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChhY3RpdmVUYWIgJiYgIXRoaXMuaXNBY3RpdmVUYWJGdWxseVZpc2libGUoYWN0aXZlVGFiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHNjcm9sbFRvID0gMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzdWJzZXRXaWR0aCA9IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8PSBjLmFjdGl2ZVRhYkluZGV4LmN1cnJlbnRWYWx1ZTsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Vic2V0V2lkdGggKz0gdGhpcy5ldWlUYWJzSXRlbXNXcmFwcGVyLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW4uaXRlbShpKS5jbGllbnRXaWR0aDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgc2Nyb2xsVG8gPSBjb250YWluZXJXaWR0aCAvIDIgLSBzdWJzZXRXaWR0aDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKE1hdGguYWJzKHNjcm9sbFRvKSA+IHdyYXBwZXJXaWR0aCAtIGNvbnRhaW5lcldpZHRoICsgMzIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGxUbyA9IC0od3JhcHBlcldpZHRoIC0gY29udGFpbmVyV2lkdGggKyAzMik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzY3JvbGxUbyA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGxUbyA9IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjLmFjdGl2ZVRhYkluZGV4LmlzRmlyc3RDaGFuZ2UoKSAmJiBjLmFjdGl2ZVRhYkluZGV4LmN1cnJlbnRWYWx1ZSA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFNjcm9sbFRvKHNjcm9sbFRvLCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U2Nyb2xsVG8oc2Nyb2xsVG8pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBjLmFjdGl2ZVRhYkluZGV4LmlzRmlyc3RDaGFuZ2UoKSAmJiBjLmFjdGl2ZVRhYkluZGV4LmN1cnJlbnRWYWx1ZSA+IDAgPyA1MDAgOiAwLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgLy8gVE9ETzogZmluZCB0aGUgY29ycmVjdCB0eXBlIG9yIHR1cm4gaW50byBhIGdlbmVyaWMsIGh0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZy9kb2NzL2hhbmRib29rLzIvZ2VuZXJpY3MuaHRtbFxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgICB0aGlzLm9ic2VydmVyID0gbmV3ICh3aW5kb3cgYXMgYW55KS5SZXNpemVPYnNlcnZlcigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmdldFNjcm9sbGluZ1N0YXR1cygpO1xuICAgICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMub2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLmhvc3QubmF0aXZlRWxlbWVudCk7XG5cbiAgICAgICAgdGhpcy5fdGFicy5jaGFuZ2VzLnBpcGUoc3RhcnRXaXRoKHRydWUpLCB0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnRhYnMgPSB0aGlzLl90YWJzLnRvQXJyYXkoKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMucm91dGVyU3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXJTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5yb3V0ZXJTdWJzY3JpcHRpb24gPSB0aGlzLnJvdXRlci5ldmVudHNcbiAgICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyKChlKSA9PiBlIGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCksXG4gICAgICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcbiAgICAgICAgICAgICAgICAgICAgc3RhcnRXaXRoKHsgdXJsOiB0aGlzLnJvdXRlci51cmwgfSksXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKGU6IE5hdmlnYXRpb25FbmQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGFic1dpdGhVcmwgPSB0aGlzLnRhYnMuZmlsdGVyKCh0KSA9PiB0LnVybCAhPT0gbnVsbCk7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0YWJzV2l0aFVybC5sZW5ndGggPT09IHRoaXMudGFicy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0YWJJbmRleCA9IC0xO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMucGF0aE1hdGNoID09PSAnZnVsbCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJJbmRleCA9IHRhYnNXaXRoVXJsLmZpbmRJbmRleCgodCkgPT4gZS51cmwgPT09IHQudXJsKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFiSW5kZXggPSB0YWJzV2l0aFVybC5maW5kSW5kZXgoKHQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVnZXggPSBuZXcgUmVnRXhwKHQudXJsICsgJygvPyknKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlZ2V4LnRlc3QoZS51cmwpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRhYnMgPSB0aGlzLnRhYnMubWFwKCh0LCBpKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYkluZGV4ID09PSBpID8gT2JqZWN0LmFzc2lnbih0LCB7IGlzQWN0aXZlOiB0cnVlIH0pIDogT2JqZWN0LmFzc2lnbih0LCB7IGlzQWN0aXZlOiBmYWxzZSB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnRhYnMuZmluZEluZGV4KCh0KSA9PiB0LmlzQWN0aXZlKSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZVRhYkluZGV4ID0gdGhpcy50YWJzLmZpbmRJbmRleCgodCkgPT4gdC5pc0FjdGl2ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGlmICghdGhpcy5hY3RpdmVUYWJJbmRleCkge1xuICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlVGFiSW5kZXggPSB0aGlzLnRhYnMuZmluZEluZGV4KCh0KSA9PiB0LmlzQWN0aXZlKSAhPT0gLTEgPyB0aGlzLnRhYnMuZmluZEluZGV4KCh0KSA9PiB0LmlzQWN0aXZlKSA6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMub2JzZXJ2ZXI/LnVub2JzZXJ2ZSh0aGlzLmhvc3QubmF0aXZlRWxlbWVudCk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScsIFsnJGV2ZW50J10pXG4gICAgb25SZXNpemUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZ2V0U2Nyb2xsaW5nU3RhdHVzKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uQ29udGVudENoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZ2V0U2Nyb2xsaW5nU3RhdHVzKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdvVG9MZWZ0KCk6IHZvaWQge1xuICAgICAgICBsZXQgc2Nyb2xsVG8gPSB0aGlzLmN1cnJlbnRPZmZzZXQgKyB0aGlzLnN0ZXBNb3ZlO1xuICAgICAgICBpZiAoc2Nyb2xsVG8gPiAwKSB7XG4gICAgICAgICAgICBzY3JvbGxUbyA9IDA7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNldFNjcm9sbFRvKHNjcm9sbFRvKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ29Ub1JpZ2h0KCk6IHZvaWQge1xuICAgICAgICBjb25zdCBjb250YWluZXJXaWR0aCA9IHRoaXMuZXVpVGFic0l0ZW1zLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGg7XG4gICAgICAgIGNvbnN0IHdyYXBwZXJXaWR0aCA9IHRoaXMuZXVpVGFic0l0ZW1zV3JhcHBlci5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoO1xuXG4gICAgICAgIGxldCBzY3JvbGxUbyA9IHRoaXMuY3VycmVudE9mZnNldCAtIHRoaXMuc3RlcE1vdmU7XG5cbiAgICAgICAgaWYgKE1hdGguYWJzKHNjcm9sbFRvKSA+IHdyYXBwZXJXaWR0aCAtIGNvbnRhaW5lcldpZHRoKSB7XG4gICAgICAgICAgICBzY3JvbGxUbyA9IC0od3JhcHBlcldpZHRoIC0gY29udGFpbmVyV2lkdGgpIC0gMzI7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNldFNjcm9sbFRvKHNjcm9sbFRvKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2hhbmdlVGFiKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNIYW5kbGVDaGFuZ2VUYWIpIHtcbiAgICAgICAgICAgIHRoaXMudGFiU2VsZWN0LmVtaXQoeyB0YWI6IHRoaXMudGFic1tpbmRleF0sIGluZGV4IH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHRoaXMudGFic1tpbmRleF0gJiYgIXRoaXMudGFic1tpbmRleF0uaXNEaXNhYmxlZCkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLnRhYnNbdGhpcy5hY3RpdmVUYWJJbmRleF0pIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50YWJzW3RoaXMuYWN0aXZlVGFiSW5kZXhdLmlzQWN0aXZlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMudGFic1tpbmRleF0uaXNBY3RpdmUgPSB0cnVlO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgYWN0aXZlVGFiID0gdGhpcy5ldWlUYWJzSXRlbXNXcmFwcGVyLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW4uaXRlbShpbmRleCk7XG4gICAgICAgICAgICAgICAgY29uc3QgY29udGFpbmVyV2lkdGggPSB0aGlzLmV1aVRhYnNJdGVtcy5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoO1xuICAgICAgICAgICAgICAgIGNvbnN0IHdyYXBwZXJXaWR0aCA9IHRoaXMuZXVpVGFic0l0ZW1zV3JhcHBlci5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoO1xuXG4gICAgICAgICAgICAgICAgaWYgKGFjdGl2ZVRhYiAmJiAhdGhpcy5pc0FjdGl2ZVRhYkZ1bGx5VmlzaWJsZShhY3RpdmVUYWIpICYmICF0aGlzLmlzVmVydGljYWxUYWJzICYmICF0aGlzLmlzTWFpbk5hdmlnYXRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHNjcm9sbFRvID0gMDtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHN1YnNldFdpZHRoID0gMDtcbiAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPD0gaW5kZXg7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICAgICAgc3Vic2V0V2lkdGggKz0gdGhpcy5ldWlUYWJzSXRlbXNXcmFwcGVyLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW4uaXRlbShpKS5jbGllbnRXaWR0aDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHNjcm9sbFRvID0gY29udGFpbmVyV2lkdGggLyAyIC0gc3Vic2V0V2lkdGg7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKE1hdGguYWJzKHNjcm9sbFRvKSA+IHdyYXBwZXJXaWR0aCAtIGNvbnRhaW5lcldpZHRoICsgMzIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNjcm9sbFRvID0gLSh3cmFwcGVyV2lkdGggLSBjb250YWluZXJXaWR0aCArIDMyKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGlmIChzY3JvbGxUbyA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNjcm9sbFRvID0gMDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U2Nyb2xsVG8oc2Nyb2xsVG8pO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICghdGhpcy50YWJzW2luZGV4XS51cmwpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVUYWJJbmRleCA9IGluZGV4O1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRhYlNlbGVjdGVkLmVtaXQoeyB0YWI6IHRoaXMudGFic1tpbmRleF0sIGluZGV4IH0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRhYlNlbGVjdC5lbWl0KHsgdGFiOiB0aGlzLnRhYnNbaW5kZXhdLCBpbmRleCB9KTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZVRhYkluZGV4ID0gaW5kZXg7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwodGhpcy50YWJzW2luZGV4XS51cmwpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBvbktleVVwKGU6IEtleWJvYXJkRXZlbnQsIGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgaWYgKGUuY29kZSA9PT0gJ0VudGVyJyB8fCBlLmNvZGUgPT09ICdTcGFjZScpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnRhYnNbaW5kZXhdICYmICF0aGlzLnRhYnNbaW5kZXhdLmlzRGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRhYnMubWFwKCh0LCBpKSA9PiAoaSA9PT0gaW5kZXggPyBPYmplY3QuYXNzaWduKHQsIHsgaXNBY3RpdmU6IHRydWUgfSkgOiBPYmplY3QuYXNzaWduKHQsIHsgaXNBY3RpdmU6IGZhbHNlIH0pKSk7XG5cbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMudGFic1tpbmRleF0udXJsKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlVGFiSW5kZXggPSBpbmRleDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50YWJTZWxlY3RlZC5lbWl0KHsgdGFiOiB0aGlzLnRhYnNbaW5kZXhdLCBpbmRleCB9KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50YWJTZWxlY3QuZW1pdCh7IHRhYjogdGhpcy50YWJzW2luZGV4XSwgaW5kZXggfSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVUYWJJbmRleCA9IGluZGV4O1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKHRoaXMudGFic1tpbmRleF0udXJsKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBUT0RPOiBmaW5kIHRoZSBjb3JyZWN0IHR5cGUgb3IgdHVybiBpbnRvIGEgZ2VuZXJpYywgaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnL2RvY3MvaGFuZGJvb2svMi9nZW5lcmljcy5odG1sXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBwdWJsaWMgY2xvc2VUYWIoaW5kZXg6IG51bWJlciwgZTogYW55KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHRhYiA9IHRoaXMudGFic1tpbmRleF07XG4gICAgICAgIGlmICghdGhpcy50YWJzW2luZGV4XS5pc0hhbmRsZUNsb3NlT25DbG9zZSkge1xuICAgICAgICAgICAgdGhpcy5jbG9zZShlLmluZGV4KTtcbiAgICAgICAgICAgIHRoaXMudGFicyA9IHRoaXMudGFicy5maWx0ZXIoKHQsIGkpID0+IGkgIT09IGluZGV4KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudGFiQ2xvc2VkLmVtaXQoeyB0YWIsIGluZGV4IH0pO1xuICAgICAgICB0aGlzLnRhYkNsb3NlLmVtaXQoeyB0YWIsIGluZGV4IH0pO1xuICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENsb3NlIGEgdGFiIHBhc3MgaW4gcGFyYW1ldGVyLlxuICAgICAqXG4gICAgICogQHVzYWdlTm90ZXNcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGV1aS10YWJzICN0YWJzPlxuICAgICAqICAgICA8ZXVpLXRhYiBpc0Nsb3NhYmxlIGlzSGFuZGxlQ2xvc2VPbkNsb3NlPlxuICAgICAqICAgICAgICAgPGV1aS10YWItbGFiZWw+VGFiIGxhYmVsPC9ldWktdGFiLWxhYmVsPlxuICAgICAqICAgICAgICAgPGV1aS10YWItY29udGVudD5UYWIgY29udGVudDwvZXVpLXRhYi1jb250ZW50PlxuICAgICAqICAgICA8L2V1aS10YWI+XG4gICAgICogPC9ldWktdGFicz5cbiAgICAgKiBgYGBcbiAgICAgKiAuLi5cbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogdGhpcy50YWJzLmNsb3NlKDEpO1xuICAgICAqIGBgYFxuICAgICAqIEBwYXJhbSBpbmRleCBJbmRleCBvZiB0aGUgdGFiIHRvIGNsb3NlXG4gICAgICovXG4gICAgcHVibGljIGNsb3NlKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgaWYgKGluZGV4ID09PSB0aGlzLmFjdGl2ZVRhYkluZGV4KSB7XG4gICAgICAgICAgICBjb25zdCBwcmV2aW91c1Zpc2libGVJbmRleCA9IHRoaXMudGFicy5pbmRleE9mKHRoaXMudGFic1tpbmRleCAtIDFdKTtcblxuICAgICAgICAgICAgaWYgKHByZXZpb3VzVmlzaWJsZUluZGV4IDwgMCkge1xuICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlVGFiKDApO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZVRhYihwcmV2aW91c1Zpc2libGVJbmRleCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoaW5kZXggPCB0aGlzLmFjdGl2ZVRhYkluZGV4KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVUYWJJbmRleCA9IHRoaXMuYWN0aXZlVGFiSW5kZXggLSAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy50YWJzID0gdGhpcy50YWJzLmZpbHRlcigodCwgaSkgPT4gaSAhPT0gaW5kZXgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNBY3RpdmVUYWJGdWxseVZpc2libGUoYWN0aXZlVGFiOiBIVE1MRGl2RWxlbWVudCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBjb250YWluZXJXaWR0aCA9IHRoaXMuZXVpVGFic0l0ZW1zLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGg7XG4gICAgICAgIHJldHVybiBhY3RpdmVUYWIub2Zmc2V0TGVmdCAtIDQ4ID49IDAgJiYgYWN0aXZlVGFiLm9mZnNldExlZnQgKyBhY3RpdmVUYWIuY2xpZW50V2lkdGggPCBjb250YWluZXJXaWR0aCAtIDQ4O1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0U2Nyb2xsVG8oc2Nyb2xsVG86IG51bWJlciwgaXNBbmltYXRlZCA9IHRydWUpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY29udGFpbmVyV2lkdGggPSB0aGlzLmV1aVRhYnNJdGVtcy5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoO1xuICAgICAgICBjb25zdCB3cmFwcGVyV2lkdGggPSB0aGlzLmV1aVRhYnNJdGVtc1dyYXBwZXIubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aDtcblxuICAgICAgICBjb25zdCB0aW1pbmdzID0gaXNBbmltYXRlZCA/ICc1MDBtcyBjdWJpYy1iZXppZXIoMC4zNSwgMCwgMC4yNSwgMSknIDogMDtcbiAgICAgICAgY29uc3QgYW5pbWF0aW9uOiBBbmltYXRpb25GYWN0b3J5ID0gdGhpcy5idWlsZGVyLmJ1aWxkKFthbmltYXRlKHRpbWluZ3MsIHN0eWxlKHsgJ21hcmdpbi1sZWZ0JzogK3Njcm9sbFRvICsgJ3B4JyB9KSldKTtcblxuICAgICAgICB0aGlzLnBsYXllciA9IGFuaW1hdGlvbi5jcmVhdGUodGhpcy5ldWlUYWJzSXRlbXNXcmFwcGVyLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICB0aGlzLnBsYXllci5wbGF5KCk7XG5cbiAgICAgICAgdGhpcy5jdXJyZW50T2Zmc2V0ID0gc2Nyb2xsVG87XG5cbiAgICAgICAgaWYgKHNjcm9sbFRvID09PSAwKSB7XG4gICAgICAgICAgICB0aGlzLm5hdmlnYXRpb25MZWZ0QnV0dG9uRGlzYWJsZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChNYXRoLmFicyh0aGlzLmN1cnJlbnRPZmZzZXQpIDwgd3JhcHBlcldpZHRoIC0gY29udGFpbmVyV2lkdGggKyAzMikge1xuICAgICAgICAgICAgdGhpcy5uYXZpZ2F0aW9uUmlnaHRCdXR0b25EaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmN1cnJlbnRPZmZzZXQgPCAwKSB7XG4gICAgICAgICAgICB0aGlzLm5hdmlnYXRpb25MZWZ0QnV0dG9uRGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoTWF0aC5hYnMoc2Nyb2xsVG8pID09PSB3cmFwcGVyV2lkdGggLSBjb250YWluZXJXaWR0aCArIDMyKSB7XG4gICAgICAgICAgICB0aGlzLm5hdmlnYXRpb25SaWdodEJ1dHRvbkRpc2FibGVkID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0U2Nyb2xsaW5nU3RhdHVzKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBjb250YWluZXJXaWR0aCA9IHRoaXMuZXVpVGFic0l0ZW1zLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGg7XG4gICAgICAgIGNvbnN0IHdyYXBwZXJXaWR0aCA9IHRoaXMuZXVpVGFic0l0ZW1zV3JhcHBlci5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoO1xuXG4gICAgICAgIHRoaXMuc2Nyb2xsaW5nID0gY29udGFpbmVyV2lkdGggPCB3cmFwcGVyV2lkdGg7XG5cbiAgICAgICAgaWYgKCF0aGlzLnNjcm9sbGluZykge1xuICAgICAgICAgICAgdGhpcy5zY3JvbGxpbmdDb3VudCA9IDA7XG4gICAgICAgICAgICB0aGlzLnNldFNjcm9sbFRvKDApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHdyYXBwZXJXaWR0aCAtIGNvbnRhaW5lcldpZHRoIDw9IE1hdGguYWJzKHRoaXMuY3VycmVudE9mZnNldCkgKyAzMikge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRlbHRhRml4ID0gdGhpcy5zY3JvbGxpbmdDb3VudCA9PT0gMCA/IDY0IDogMDtcbiAgICAgICAgICAgICAgICBjb25zdCBzY3JvbGxUbyA9IC0od3JhcHBlcldpZHRoIC0gY29udGFpbmVyV2lkdGgpIC0gMzIgLSBkZWx0YUZpeDtcblxuICAgICAgICAgICAgICAgIHRoaXMuc2V0U2Nyb2xsVG8oc2Nyb2xsVG8pO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50T2Zmc2V0ID0gc2Nyb2xsVG87XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmIChNYXRoLmFicyh0aGlzLmN1cnJlbnRPZmZzZXQpIDwgd3JhcHBlcldpZHRoIC0gY29udGFpbmVyV2lkdGggKyAzMikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm5hdmlnYXRpb25SaWdodEJ1dHRvbkRpc2FibGVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmN1cnJlbnRPZmZzZXQgPCAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubmF2aWdhdGlvbkxlZnRCdXR0b25EaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5zY3JvbGxpbmdDb3VudCsrO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxufVxuXG4vKiBlc2xpbnQtZGlzYWJsZSAqL1xuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnZXVpVGFic1JpZ2h0Q29udGVudCcgfSlcbmV4cG9ydCBjbGFzcyBFdWlUYWJzUmlnaHRDb250ZW50VGFnRGlyZWN0aXZlIHtcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgZWxlbWVudENsYXNzID0gJ2V1aS10YWJzX19yaWdodC1jb250ZW50LXdyYXBwZXInO1xufVxuLyogZXNsaW50LWVuYWJsZSAqL1xuIiwiPGRpdlxuICAgICNob3N0XG4gICAgY2xhc3M9XCJldWktdGFicyB7eyBzdHlsZUNsYXNzIH19XCJcbiAgICBbY2xhc3MuZXVpLXRhYnMtLW1haW4tbmF2aWdhdGlvbl09XCJpc01haW5OYXZpZ2F0aW9uXCJcbiAgICBbY2xhc3MuZXVpLXRhYnMtLXZlcnRpY2FsXT1cImlzVmVydGljYWxUYWJzXCJcbiAgICBhdHRyLmRhdGEtZTJlPVwie3sgZTJlQXR0ciB9fVwiPlxuICAgIDxkaXYgY2xhc3M9XCJldWktdS1mbGV4XCIgW2NsYXNzLmV1aS10YWJzX193cmFwcGVyLS1ob3Jpem9udGFsXT1cIiFpc1ZlcnRpY2FsVGFic1wiIFtjbGFzcy5ldWktdGFic19fd3JhcHBlci0tdmVydGljYWxdPVwiaXNWZXJ0aWNhbFRhYnNcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgI2V1aVRhYnNJdGVtc1xuICAgICAgICAgICAgY2xhc3M9XCJldWktdGFic19faXRlbXNcIlxuICAgICAgICAgICAgW2NsYXNzLmV1aS10YWJzX19pdGVtcy0taG9yaXpvbnRhbF09XCIhaXNWZXJ0aWNhbFRhYnNcIlxuICAgICAgICAgICAgW2NsYXNzLmV1aS10YWJzX19pdGVtcy0tc2Nyb2xsaW5nXT1cInNjcm9sbGluZ1wiXG4gICAgICAgICAgICAoY2RrT2JzZXJ2ZUNvbnRlbnQpPVwib25Db250ZW50Q2hhbmdlcygpXCI+XG4gICAgICAgICAgICA8ZGl2ICNldWlUYWJzSXRlbXNXcmFwcGVyIGNsYXNzPVwiZXVpLXRhYnNfX2l0ZW1zLXdyYXBwZXJcIiBbYXR0ci5kYXRhLW9mZnNldF09XCJjdXJyZW50T2Zmc2V0XCIgcm9sZT1cInRhYmxpc3RcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCB0YWIgb2YgdGFiczsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidGFiLmlzVmlzaWJsZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cInRhYlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJldWktdGFiLWl0ZW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5ldWktdGFiLWl0ZW0tLWNsb3NhYmxlXT1cInRhYi5pc0Nsb3NhYmxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZXVpLXRhYi1pdGVtLS1hY3RpdmVdPVwiYWN0aXZlVGFiSW5kZXggPT09IGlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5ldWktdGFiLWl0ZW0tLWRpc2FibGVkXT1cInRhYi5pc0Rpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZXVpLXRhYi1pdGVtLS1zZWNvbmRhcnldPVwidGFiLmV1aVNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmV1aS10YWItaXRlbS0tcHJpbWFyeV09XCJ0YWIuZXVpUHJpbWFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmV1aS10YWItaXRlbS0taW5mb109XCJ0YWIuZXVpSW5mb1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmV1aS10YWItaXRlbS0tc3VjY2Vzc109XCJ0YWIuZXVpU3VjY2Vzc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmV1aS10YWItaXRlbS0td2FybmluZ109XCJ0YWIuZXVpV2FybmluZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmV1aS10YWItaXRlbS0tZGFuZ2VyXT1cInRhYi5ldWlEYW5nZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5ldWktdGFiLWl0ZW0tLWFjY2VudF09XCJ0YWIuZXVpQWNjZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZXVpLXRhYi1pdGVtLS1iYWNrZ3JvdW5kLWZpbGxlZF09XCJ0YWIuaGFzQmFja2dyb3VuZEZpbGxlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1kaXNhYmxlZF09XCJ0YWIuaXNEaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNoYW5nZVRhYihpKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2V1aVRvb2x0aXBdPVwidGFiLnRvb2x0aXBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChrZXl1cCk9XCJvbktleVVwKCRldmVudCwgaSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXVpLXRhYi1pdGVtX19sYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgW2Nka1BvcnRhbE91dGxldF09XCJ0YWIudGVtcGxhdGVMYWJlbC50ZW1wbGF0ZVBvcnRhbFwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInRhYi5pc0Nsb3NhYmxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNsb3NlVGFiKGksICRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldWlCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXVpSWNvbkJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldWlCYXNpY0J1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldWlSb3VuZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV1aVNpemVYU1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkNsb3NlIHRhYiBidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImV1aS11LW1sLXNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGV1aS1pY29uLXN2Z1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbj1cImV1aS1lY2wtY2xvc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cImxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbENvbG9yPVwiZ3JleS03NVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImV1aS10YWJfX2Nsb3NlLWljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkNsb3NlIGljb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9ldWktaWNvbi1zdmc+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV1aS10YWJzX19uYXZpZ2F0aW9uXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV1aS10YWJzX19uYXZpZ2F0aW9uX19sZWZ0LWl0ZW1cIj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImdvVG9MZWZ0KClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgZXVpQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBldWlJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBldWlCYXNpY0J1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZXVpRGlzYWJsZWRdPVwibmF2aWdhdGlvbkxlZnRCdXR0b25EaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiU2Nyb2xsIGxlZnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxldWktaWNvbi1zdmcgaWNvbj1cImV1aS1jaGV2cm9uLWJhY2tcIj48L2V1aS1pY29uLXN2Zz5cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV1aS10YWJzX19uYXZpZ2F0aW9uX19yaWdodC1pdGVtXCI+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJnb1RvUmlnaHQoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBldWlCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIGV1aUljb25CdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIGV1aUJhc2ljQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtldWlEaXNhYmxlZF09XCJuYXZpZ2F0aW9uUmlnaHRCdXR0b25EaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiU2Nyb2xsIHJpZ2h0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZXVpLWljb24tc3ZnIGljb249XCJldWktY2hldnJvbi1mb3J3YXJkXCI+PC9ldWktaWNvbi1zdmc+XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJldWktdGFic19fcmlnaHQtY29udGVudFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZXVpVGFic1JpZ2h0Q29udGVudFwiPjwvbmctY29udGVudD5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCB0YWIgb2YgdGFiczsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZXVpLXRhYi1jb250ZW50LXdyYXBwZXJcIiB0YWJpbmRleD1cIjBcIiAqbmdJZj1cImkgPT09IGFjdGl2ZVRhYkluZGV4ICYmIHRhYi50ZW1wbGF0ZUNvbnRlbnRcIj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbY2RrUG9ydGFsT3V0bGV0XT1cInRhYi50ZW1wbGF0ZUNvbnRlbnQudGVtcGxhdGVQb3J0YWxcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuIl19
|
@@ -378,7 +378,7 @@ class EuiTabsComponent {
|
|
378
378
|
const activeTab = this.euiTabsItemsWrapper.nativeElement.children.item(index);
|
379
379
|
const containerWidth = this.euiTabsItems.nativeElement.clientWidth;
|
380
380
|
const wrapperWidth = this.euiTabsItemsWrapper.nativeElement.clientWidth;
|
381
|
-
if (activeTab && !this.isActiveTabFullyVisible(activeTab) && !this.isVerticalTabs) {
|
381
|
+
if (activeTab && !this.isActiveTabFullyVisible(activeTab) && !this.isVerticalTabs && !this.isMainNavigation) {
|
382
382
|
let scrollTo = 0;
|
383
383
|
let subsetWidth = 0;
|
384
384
|
for (let i = 0; i <= index; i++) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"eui-components-eui-tabs.mjs","sources":["../../eui-tabs/eui-tab-content/eui-tab-content.component.ts","../../eui-tabs/eui-tab-label/eui-tab-label.component.ts","../../eui-tabs/eui-tab/eui-tab.component.ts","../../eui-tabs/eui-tab/eui-tab.component.html","../../eui-tabs/eui-tabs.component.ts","../../eui-tabs/eui-tabs.component.html","../../eui-tabs/eui-tabs.module.ts","../../eui-tabs/eui-components-eui-tabs.ts"],"sourcesContent":["import { Component, Input, TemplateRef, ViewChild, ViewContainerRef, AfterViewInit } from '@angular/core';\nimport { coerceBooleanProperty, BooleanInput } from '@angular/cdk/coercion';\nimport { TemplatePortal } from '@angular/cdk/portal';\n\n@Component({\n selector: 'eui-tab-content, euiTabContent',\n template: ` <ng-template #euiTabContent>\n <div tabindex=\"0\" class=\"eui-tab-content\" [class.eui-tab-content--no-padding]=\"this.hasNoContentPadding\">\n <ng-content></ng-content>\n </div>\n </ng-template>`,\n})\nexport class EuiTabContentComponent implements AfterViewInit {\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n @ViewChild('euiTabContent') templateRef: TemplateRef<any>;\n\n public templatePortal: TemplatePortal;\n\n @Input()\n get hasNoContentPadding(): boolean {\n return this._hasNoContentPadding;\n }\n set hasNoContentPadding(value: BooleanInput) {\n this._hasNoContentPadding = coerceBooleanProperty(value);\n }\n private _hasNoContentPadding = false;\n\n constructor(private viewContainerRef: ViewContainerRef) {}\n\n ngAfterViewInit(): void {\n this.templatePortal = new TemplatePortal(this.templateRef, this.viewContainerRef);\n }\n}\n","import { Component, TemplateRef, ViewChild, ViewContainerRef, AfterViewInit, Directive } from '@angular/core';\nimport { TemplatePortal } from '@angular/cdk/portal';\n\n@Component({\n selector: 'eui-tab-label, euiTabLabel',\n template: `\n <ng-template #euiTabLabel>\n <div class=\"eui-u-flex eui-u-flex-column\">\n <div class=\"eui-u-flex eui-u-flex-row eui-u-flex-justify-content-center\">\n <ng-content></ng-content>\n </div>\n <div class=\"eui-tab-item__sublabel\"><ng-content select=\"euiTabSubLabel\"></ng-content></div>\n </div>\n </ng-template>`,\n})\nexport class EuiTabLabelComponent implements AfterViewInit {\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n @ViewChild('euiTabLabel') templateRef: TemplateRef<any>;\n\n public templatePortal: TemplatePortal | null;\n\n constructor(private viewContainerRef: ViewContainerRef) {}\n\n ngAfterViewInit(): void {\n this.templatePortal = new TemplatePortal(this.templateRef, this.viewContainerRef);\n }\n}\n\n// eslint-disable-next-line @angular-eslint/directive-selector\n@Directive({ selector: 'euiTabSubLabel' })\nexport class EuiTabSubLabelDirective {}\n","import { Component, ContentChild, Input } from '@angular/core';\nimport { coerceBooleanProperty, BooleanInput } from '@angular/cdk/coercion';\n\nimport { BaseDirective } from '@eui/components/shared';\n\nimport { EuiTabContentComponent } from '../eui-tab-content/eui-tab-content.component';\nimport { EuiTabLabelComponent } from '../eui-tab-label/eui-tab-label.component';\n\n@Component({\n selector: 'eui-tab',\n templateUrl: './eui-tab.component.html',\n styleUrls: ['../styles/_index.scss'],\n})\nexport class EuiTabComponent extends BaseDirective {\n @Input() url: string;\n @Input() e2eAttr = 'eui-tab';\n @Input() tooltip: string;\n\n @Input()\n get isClosable(): boolean {\n return this._isClosable;\n }\n set isClosable(value: BooleanInput) {\n this._isClosable = coerceBooleanProperty(value);\n }\n private _isClosable = false;\n @Input()\n get isVisible(): boolean {\n return this._isVisible;\n }\n set isVisible(value: BooleanInput) {\n this._isVisible = coerceBooleanProperty(value);\n }\n private _isVisible = true;\n @Input()\n get isActive(): boolean {\n return this._isActive;\n }\n set isActive(value: BooleanInput) {\n this._isActive = coerceBooleanProperty(value);\n }\n private _isActive = false;\n @Input()\n get isDisabled(): boolean {\n return this._isDisabled;\n }\n set isDisabled(value: BooleanInput) {\n this._isDisabled = coerceBooleanProperty(value);\n }\n private _isDisabled = false;\n @Input()\n get hasBackgroundFilled(): boolean {\n return this._hasBackgroundFilled;\n }\n set hasBackgroundFilled(value: BooleanInput) {\n this._hasBackgroundFilled = coerceBooleanProperty(value);\n }\n private _hasBackgroundFilled = false;\n @Input()\n get isHandleCloseOnClose(): boolean {\n return this._isHandleCloseOnClose;\n }\n set isHandleCloseOnClose(value: BooleanInput) {\n this._isHandleCloseOnClose = coerceBooleanProperty(value);\n }\n private _isHandleCloseOnClose = false;\n\n @ContentChild(EuiTabLabelComponent)\n get templateLabel(): EuiTabLabelComponent {\n return this._templateLabel;\n }\n set templateLabel(value: EuiTabLabelComponent) {\n this.setTemplateLabelInput(value);\n }\n protected _templateLabel: EuiTabLabelComponent;\n\n @ContentChild(EuiTabContentComponent)\n get templateContent(): EuiTabContentComponent {\n return this._templateContent;\n }\n set templateContent(value: EuiTabContentComponent) {\n this.setTemplateContentInput(value);\n }\n protected _templateContent: EuiTabContentComponent;\n\n constructor() {\n super();\n }\n\n protected setTemplateLabelInput(value: EuiTabLabelComponent): void {\n if (value) {\n this._templateLabel = value;\n }\n }\n\n protected setTemplateContentInput(value: EuiTabContentComponent): void {\n if (value) {\n this._templateContent = value;\n }\n }\n}\n","<ng-content></ng-content>\n","import {\n Component,\n ContentChildren,\n Directive,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n QueryList,\n HostListener,\n ViewEncapsulation,\n forwardRef,\n OnChanges,\n AfterViewInit,\n ViewChildren,\n ViewContainerRef,\n ViewChild,\n ElementRef,\n ChangeDetectorRef,\n SimpleChanges,\n HostBinding,\n} from '@angular/core';\nimport { animate, AnimationBuilder, AnimationFactory, AnimationPlayer, style } from '@angular/animations';\nimport { Subject, Subscription } from 'rxjs';\nimport { filter, startWith, takeUntil } from 'rxjs/operators';\nimport { coerceBooleanProperty, BooleanInput } from '@angular/cdk/coercion';\nimport { NavigationEnd, Router } from '@angular/router';\n\nimport { EuiTabComponent } from './eui-tab/eui-tab.component';\n\n@Component({\n selector: 'eui-tabs',\n templateUrl: './eui-tabs.component.html',\n styleUrls: ['./styles/_index.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class EuiTabsComponent implements OnDestroy, AfterViewInit, OnChanges {\n @Input() styleClass: string;\n @Input() tabs: EuiTabComponent[] = [];\n @Input() activeTabIndex = null;\n @Input() e2eAttr = 'eui-tabs';\n @Input() pathMatch: 'prefix' | 'full' = 'prefix';\n\n /** @deprecated This will be removed in next version of eui */\n @Output() tabClosed = new EventEmitter<{ tab: EuiTabComponent; index: number }>();\n /** @deprecated This will be removed in next version of eui */\n @Output() tabSelected = new EventEmitter<{ tab: EuiTabComponent; index: number }>();\n\n @Output() tabClose = new EventEmitter<{ tab: EuiTabComponent; index: number }>();\n @Output() tabSelect = new EventEmitter<{ tab: EuiTabComponent; index: number }>();\n\n @ContentChildren(forwardRef(() => EuiTabComponent), { descendants: false }) _tabs: QueryList<EuiTabComponent>;\n @ViewChildren('euiTabLabelItem', { read: ViewContainerRef }) euiTabLabelItems: QueryList<ViewContainerRef>;\n @ViewChild('euiTabsItems') euiTabsItems: ElementRef;\n @ViewChild('euiTabsItemsWrapper') euiTabsItemsWrapper: ElementRef;\n @ViewChild('host') host: ElementRef;\n\n public scrolling = false;\n public navigationLeftButtonDisabled = true;\n public navigationRightButtonDisabled = false;\n public currentOffset = 0;\n\n @Input()\n get isMainNavigation(): boolean {\n return this._isMainNavigation;\n }\n set isMainNavigation(value: BooleanInput) {\n this._isMainNavigation = coerceBooleanProperty(value);\n }\n private _isMainNavigation = false;\n @Input()\n get isHandleChangeTab(): boolean {\n return this._isHandleChangeTab;\n }\n set isHandleChangeTab(value: BooleanInput) {\n this._isHandleChangeTab = coerceBooleanProperty(value);\n }\n private _isHandleChangeTab = false;\n @Input()\n get isSubTabs(): boolean {\n return this._isSubTabs;\n }\n set isSubTabs(value: BooleanInput) {\n this._isSubTabs = coerceBooleanProperty(value);\n }\n private _isSubTabs = false;\n @Input()\n get isVerticalTabs(): boolean {\n return this._isVerticalTabs;\n }\n set isVerticalTabs(value: BooleanInput) {\n this._isVerticalTabs = coerceBooleanProperty(value);\n }\n private _isVerticalTabs = false;\n\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private routerSubscription: Subscription;\n private player: AnimationPlayer;\n private observer: ResizeObserver;\n private stepMove = 400;\n /**\n * For race condition reason, the wrapper width is not correctly calculated when the component passes from no-scroll state to scroll\n * state. To fix this issue, we count the number of times the getScrollingStatus method is called.\n *\n * Scenario 1: The number of tabs does not require any scroll:\n * - Without any fix the scroll will have a delta of 64 at the first activation, then on the first no-scroll to scroll state,\n * - we had 64 to the move\n *\n * Scenario 2: The number of tabs requires a scroll:\n * - In this case the wrapper width is correctly calculated, so we don't need to add the delta\n */\n private scrollingCount = 0;\n\n constructor(\n private cd: ChangeDetectorRef,\n private router: Router,\n private builder: AnimationBuilder,\n ) {}\n\n ngOnChanges(c: SimpleChanges): void {\n if (c.activeTabIndex) {\n setTimeout(\n () => {\n const activeTab = this.euiTabsItemsWrapper.nativeElement.children.item(c.activeTabIndex.currentValue);\n const containerWidth = this.euiTabsItems.nativeElement.clientWidth;\n const wrapperWidth = this.euiTabsItemsWrapper.nativeElement.clientWidth;\n\n if (activeTab && !this.isActiveTabFullyVisible(activeTab)) {\n let scrollTo = 0;\n let subsetWidth = 0;\n for (let i = 0; i <= c.activeTabIndex.currentValue; i++) {\n subsetWidth += this.euiTabsItemsWrapper.nativeElement.children.item(i).clientWidth;\n }\n\n scrollTo = containerWidth / 2 - subsetWidth;\n\n if (Math.abs(scrollTo) > wrapperWidth - containerWidth + 32) {\n scrollTo = -(wrapperWidth - containerWidth + 32);\n }\n\n if (scrollTo > 0) {\n scrollTo = 0;\n }\n\n if (c.activeTabIndex.isFirstChange() && c.activeTabIndex.currentValue > 0) {\n this.setScrollTo(scrollTo, false);\n } else {\n this.setScrollTo(scrollTo);\n }\n }\n },\n c.activeTabIndex.isFirstChange() && c.activeTabIndex.currentValue > 0 ? 500 : 0,\n );\n }\n }\n\n ngAfterViewInit(): void {\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.observer = new (window as any).ResizeObserver(() => {\n this.getScrollingStatus();\n this.cd.detectChanges();\n });\n\n this.observer.observe(this.host.nativeElement);\n\n this._tabs.changes.pipe(startWith(true), takeUntil(this.destroy$)).subscribe(() => {\n this.tabs = this._tabs.toArray();\n\n if (this.routerSubscription) {\n this.routerSubscription.unsubscribe();\n }\n\n this.routerSubscription = this.router.events\n .pipe(\n filter((e) => e instanceof NavigationEnd),\n takeUntil(this.destroy$),\n startWith({ url: this.router.url }),\n )\n .subscribe((e: NavigationEnd) => {\n const tabsWithUrl = this.tabs.filter((t) => t.url !== null);\n if (tabsWithUrl.length === this.tabs.length) {\n let tabIndex = -1;\n if (this.pathMatch === 'full') {\n tabIndex = tabsWithUrl.findIndex((t) => e.url === t.url);\n } else {\n tabIndex = tabsWithUrl.findIndex((t) => {\n const regex = new RegExp(t.url + '(/?)');\n return regex.test(e.url);\n });\n }\n\n this.tabs = this.tabs.map((t, i) =>\n tabIndex === i ? Object.assign(t, { isActive: true }) : Object.assign(t, { isActive: false }),\n );\n\n if (this.tabs.findIndex((t) => t.isActive) !== -1) {\n this.activeTabIndex = this.tabs.findIndex((t) => t.isActive);\n }\n\n this.cd.detectChanges();\n }\n });\n\n if (!this.activeTabIndex) {\n this.activeTabIndex = this.tabs.findIndex((t) => t.isActive) !== -1 ? this.tabs.findIndex((t) => t.isActive) : 0;\n }\n\n this.cd.detectChanges();\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n this.observer?.unobserve(this.host.nativeElement);\n }\n\n @HostListener('window:resize', ['$event'])\n onResize(): void {\n this.getScrollingStatus();\n }\n\n public onContentChanges(): void {\n this.getScrollingStatus();\n }\n\n public goToLeft(): void {\n let scrollTo = this.currentOffset + this.stepMove;\n if (scrollTo > 0) {\n scrollTo = 0;\n }\n\n this.setScrollTo(scrollTo);\n }\n\n public goToRight(): void {\n const containerWidth = this.euiTabsItems.nativeElement.clientWidth;\n const wrapperWidth = this.euiTabsItemsWrapper.nativeElement.clientWidth;\n\n let scrollTo = this.currentOffset - this.stepMove;\n\n if (Math.abs(scrollTo) > wrapperWidth - containerWidth) {\n scrollTo = -(wrapperWidth - containerWidth) - 32;\n }\n\n this.setScrollTo(scrollTo);\n }\n\n public changeTab(index: number): void {\n if (this.isHandleChangeTab) {\n this.tabSelect.emit({ tab: this.tabs[index], index });\n } else {\n if (this.tabs[index] && !this.tabs[index].isDisabled) {\n if (this.tabs[this.activeTabIndex]) {\n this.tabs[this.activeTabIndex].isActive = false;\n }\n this.tabs[index].isActive = true;\n\n const activeTab = this.euiTabsItemsWrapper.nativeElement.children.item(index);\n const containerWidth = this.euiTabsItems.nativeElement.clientWidth;\n const wrapperWidth = this.euiTabsItemsWrapper.nativeElement.clientWidth;\n\n if (activeTab && !this.isActiveTabFullyVisible(activeTab) && !this.isVerticalTabs) {\n let scrollTo = 0;\n let subsetWidth = 0;\n for (let i = 0; i <= index; i++) {\n subsetWidth += this.euiTabsItemsWrapper.nativeElement.children.item(i).clientWidth;\n }\n\n scrollTo = containerWidth / 2 - subsetWidth;\n\n if (Math.abs(scrollTo) > wrapperWidth - containerWidth + 32) {\n scrollTo = -(wrapperWidth - containerWidth + 32);\n }\n\n if (scrollTo > 0) {\n scrollTo = 0;\n }\n\n this.setScrollTo(scrollTo);\n }\n\n if (!this.tabs[index].url) {\n this.activeTabIndex = index;\n this.tabSelected.emit({ tab: this.tabs[index], index });\n this.tabSelect.emit({ tab: this.tabs[index], index });\n } else {\n this.activeTabIndex = index;\n this.router.navigateByUrl(this.tabs[index].url);\n }\n }\n }\n }\n\n public onKeyUp(e: KeyboardEvent, index: number): void {\n if (e.code === 'Enter' || e.code === 'Space') {\n if (this.tabs[index] && !this.tabs[index].isDisabled) {\n this.tabs.map((t, i) => (i === index ? Object.assign(t, { isActive: true }) : Object.assign(t, { isActive: false })));\n\n if (!this.tabs[index].url) {\n this.activeTabIndex = index;\n this.tabSelected.emit({ tab: this.tabs[index], index });\n this.tabSelect.emit({ tab: this.tabs[index], index });\n } else {\n this.activeTabIndex = index;\n this.router.navigateByUrl(this.tabs[index].url);\n }\n }\n }\n }\n\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public closeTab(index: number, e: any): void {\n const tab = this.tabs[index];\n if (!this.tabs[index].isHandleCloseOnClose) {\n this.close(e.index);\n this.tabs = this.tabs.filter((t, i) => i !== index);\n }\n\n this.tabClosed.emit({ tab, index });\n this.tabClose.emit({ tab, index });\n e.stopPropagation();\n }\n\n /**\n * Close a tab pass in parameter.\n *\n * @usageNotes\n * ```html\n * <eui-tabs #tabs>\n * <eui-tab isClosable isHandleCloseOnClose>\n * <eui-tab-label>Tab label</eui-tab-label>\n * <eui-tab-content>Tab content</eui-tab-content>\n * </eui-tab>\n * </eui-tabs>\n * ```\n * ...\n * ```typescript\n * this.tabs.close(1);\n * ```\n * @param index Index of the tab to close\n */\n public close(index: number): void {\n if (index === this.activeTabIndex) {\n const previousVisibleIndex = this.tabs.indexOf(this.tabs[index - 1]);\n\n if (previousVisibleIndex < 0) {\n this.changeTab(0);\n } else {\n this.changeTab(previousVisibleIndex);\n }\n } else {\n if (index < this.activeTabIndex) {\n this.activeTabIndex = this.activeTabIndex - 1;\n }\n }\n\n this.tabs = this.tabs.filter((t, i) => i !== index);\n }\n\n private isActiveTabFullyVisible(activeTab: HTMLDivElement): boolean {\n const containerWidth = this.euiTabsItems.nativeElement.clientWidth;\n return activeTab.offsetLeft - 48 >= 0 && activeTab.offsetLeft + activeTab.clientWidth < containerWidth - 48;\n }\n\n private setScrollTo(scrollTo: number, isAnimated = true): void {\n const containerWidth = this.euiTabsItems.nativeElement.clientWidth;\n const wrapperWidth = this.euiTabsItemsWrapper.nativeElement.clientWidth;\n\n const timings = isAnimated ? '500ms cubic-bezier(0.35, 0, 0.25, 1)' : 0;\n const animation: AnimationFactory = this.builder.build([animate(timings, style({ 'margin-left': +scrollTo + 'px' }))]);\n\n this.player = animation.create(this.euiTabsItemsWrapper.nativeElement);\n this.player.play();\n\n this.currentOffset = scrollTo;\n\n if (scrollTo === 0) {\n this.navigationLeftButtonDisabled = true;\n }\n if (Math.abs(this.currentOffset) < wrapperWidth - containerWidth + 32) {\n this.navigationRightButtonDisabled = false;\n }\n if (this.currentOffset < 0) {\n this.navigationLeftButtonDisabled = false;\n }\n if (Math.abs(scrollTo) === wrapperWidth - containerWidth + 32) {\n this.navigationRightButtonDisabled = true;\n }\n\n this.cd.detectChanges();\n }\n\n private getScrollingStatus(): void {\n const containerWidth = this.euiTabsItems.nativeElement.clientWidth;\n const wrapperWidth = this.euiTabsItemsWrapper.nativeElement.clientWidth;\n\n this.scrolling = containerWidth < wrapperWidth;\n\n if (!this.scrolling) {\n this.scrollingCount = 0;\n this.setScrollTo(0);\n } else {\n if (wrapperWidth - containerWidth <= Math.abs(this.currentOffset) + 32) {\n const deltaFix = this.scrollingCount === 0 ? 64 : 0;\n const scrollTo = -(wrapperWidth - containerWidth) - 32 - deltaFix;\n\n this.setScrollTo(scrollTo);\n\n this.currentOffset = scrollTo;\n } else {\n if (Math.abs(this.currentOffset) < wrapperWidth - containerWidth + 32) {\n this.navigationRightButtonDisabled = false;\n }\n if (this.currentOffset < 0) {\n this.navigationLeftButtonDisabled = false;\n }\n }\n\n this.scrollingCount++;\n }\n\n this.cd.detectChanges();\n }\n}\n\n/* eslint-disable */\n@Directive({ selector: 'euiTabsRightContent' })\nexport class EuiTabsRightContentTagDirective {\n @HostBinding('class') elementClass = 'eui-tabs__right-content-wrapper';\n}\n/* eslint-enable */\n","<div\n #host\n class=\"eui-tabs {{ styleClass }}\"\n [class.eui-tabs--main-navigation]=\"isMainNavigation\"\n [class.eui-tabs--vertical]=\"isVerticalTabs\"\n attr.data-e2e=\"{{ e2eAttr }}\">\n <div class=\"eui-u-flex\" [class.eui-tabs__wrapper--horizontal]=\"!isVerticalTabs\" [class.eui-tabs__wrapper--vertical]=\"isVerticalTabs\">\n <div\n #euiTabsItems\n class=\"eui-tabs__items\"\n [class.eui-tabs__items--horizontal]=\"!isVerticalTabs\"\n [class.eui-tabs__items--scrolling]=\"scrolling\"\n (cdkObserveContent)=\"onContentChanges()\">\n <div #euiTabsItemsWrapper class=\"eui-tabs__items-wrapper\" [attr.data-offset]=\"currentOffset\" role=\"tablist\">\n <ng-container *ngFor=\"let tab of tabs; let i = index\">\n <ng-container *ngIf=\"tab.isVisible\">\n <div\n tabindex=\"0\"\n role=\"tab\"\n class=\"eui-tab-item\"\n [class.eui-tab-item--closable]=\"tab.isClosable\"\n [class.eui-tab-item--active]=\"activeTabIndex === i\"\n [class.eui-tab-item--disabled]=\"tab.isDisabled\"\n [class.eui-tab-item--secondary]=\"tab.euiSecondary\"\n [class.eui-tab-item--primary]=\"tab.euiPrimary\"\n [class.eui-tab-item--info]=\"tab.euiInfo\"\n [class.eui-tab-item--success]=\"tab.euiSuccess\"\n [class.eui-tab-item--warning]=\"tab.euiWarning\"\n [class.eui-tab-item--danger]=\"tab.euiDanger\"\n [class.eui-tab-item--accent]=\"tab.euiAccent\"\n [class.eui-tab-item--background-filled]=\"tab.hasBackgroundFilled\"\n [attr.aria-disabled]=\"tab.isDisabled\"\n (click)=\"changeTab(i)\"\n [euiTooltip]=\"tab.tooltip\"\n (keyup)=\"onKeyUp($event, i)\">\n <div class=\"eui-tab-item__label\">\n <ng-template [cdkPortalOutlet]=\"tab.templateLabel.templatePortal\"></ng-template>\n </div>\n <button\n *ngIf=\"tab.isClosable\"\n (click)=\"closeTab(i, $event)\"\n euiButton\n euiIconButton\n euiBasicButton\n euiRounded\n euiSizeXS\n type=\"button\"\n aria-label=\"Close tab button\"\n class=\"eui-u-ml-s\">\n <eui-icon-svg\n icon=\"eui-ecl-close\"\n size=\"l\"\n fillColor=\"grey-75\"\n class=\"eui-tab__close-icon\"\n aria-label=\"Close icon\">\n </eui-icon-svg>\n </button>\n </div>\n </ng-container>\n </ng-container>\n </div>\n\n <div class=\"eui-tabs__navigation\">\n <div class=\"eui-tabs__navigation__left-item\">\n <button\n (click)=\"goToLeft()\"\n euiButton\n euiIconButton\n euiBasicButton\n type=\"button\"\n [euiDisabled]=\"navigationLeftButtonDisabled\"\n aria-label=\"Scroll left\">\n <eui-icon-svg icon=\"eui-chevron-back\"></eui-icon-svg>\n </button>\n </div>\n <div class=\"eui-tabs__navigation__right-item\">\n <button\n (click)=\"goToRight()\"\n euiButton\n euiIconButton\n euiBasicButton\n type=\"button\"\n [euiDisabled]=\"navigationRightButtonDisabled\"\n aria-label=\"Scroll right\">\n <eui-icon-svg icon=\"eui-chevron-forward\"></eui-icon-svg>\n </button>\n </div>\n </div>\n </div>\n\n <div class=\"eui-tabs__right-content\">\n <ng-content select=\"euiTabsRightContent\"></ng-content>\n </div>\n </div>\n\n <ng-container *ngFor=\"let tab of tabs; let i = index\">\n <div class=\"eui-tab-content-wrapper\" tabindex=\"0\" *ngIf=\"i === activeTabIndex && tab.templateContent\">\n <ng-template [cdkPortalOutlet]=\"tab.templateContent.templatePortal\"></ng-template>\n </div>\n </ng-container>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { ObserversModule } from '@angular/cdk/observers';\n\nimport { EuiIconModule } from '@eui/components/eui-icon';\nimport { EuiButtonModule } from '@eui/components/eui-button';\nimport { EuiTooltipDirectiveModule } from '@eui/components/directives';\n\nimport { EuiTabComponent } from './eui-tab/eui-tab.component';\nimport { EuiTabsComponent, EuiTabsRightContentTagDirective } from './eui-tabs.component';\nimport { EuiTabLabelComponent, EuiTabSubLabelDirective } from './eui-tab-label/eui-tab-label.component';\nimport { EuiTabContentComponent } from './eui-tab-content/eui-tab-content.component';\n\n@NgModule({\n imports: [CommonModule, PortalModule, EuiIconModule, EuiButtonModule, EuiTooltipDirectiveModule, ObserversModule],\n exports: [\n EuiTabsComponent,\n EuiTabComponent,\n EuiTabsRightContentTagDirective,\n EuiTabLabelComponent,\n EuiTabSubLabelDirective,\n EuiTabContentComponent,\n ],\n declarations: [\n EuiTabsComponent,\n EuiTabComponent,\n EuiTabsRightContentTagDirective,\n EuiTabLabelComponent,\n EuiTabSubLabelDirective,\n EuiTabContentComponent,\n ],\n})\nexport class EuiTabsModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"eui-components-eui-tabs.mjs","sources":["../../eui-tabs/eui-tab-content/eui-tab-content.component.ts","../../eui-tabs/eui-tab-label/eui-tab-label.component.ts","../../eui-tabs/eui-tab/eui-tab.component.ts","../../eui-tabs/eui-tab/eui-tab.component.html","../../eui-tabs/eui-tabs.component.ts","../../eui-tabs/eui-tabs.component.html","../../eui-tabs/eui-tabs.module.ts","../../eui-tabs/eui-components-eui-tabs.ts"],"sourcesContent":["import { Component, Input, TemplateRef, ViewChild, ViewContainerRef, AfterViewInit } from '@angular/core';\nimport { coerceBooleanProperty, BooleanInput } from '@angular/cdk/coercion';\nimport { TemplatePortal } from '@angular/cdk/portal';\n\n@Component({\n selector: 'eui-tab-content, euiTabContent',\n template: ` <ng-template #euiTabContent>\n <div tabindex=\"0\" class=\"eui-tab-content\" [class.eui-tab-content--no-padding]=\"this.hasNoContentPadding\">\n <ng-content></ng-content>\n </div>\n </ng-template>`,\n})\nexport class EuiTabContentComponent implements AfterViewInit {\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n @ViewChild('euiTabContent') templateRef: TemplateRef<any>;\n\n public templatePortal: TemplatePortal;\n\n @Input()\n get hasNoContentPadding(): boolean {\n return this._hasNoContentPadding;\n }\n set hasNoContentPadding(value: BooleanInput) {\n this._hasNoContentPadding = coerceBooleanProperty(value);\n }\n private _hasNoContentPadding = false;\n\n constructor(private viewContainerRef: ViewContainerRef) {}\n\n ngAfterViewInit(): void {\n this.templatePortal = new TemplatePortal(this.templateRef, this.viewContainerRef);\n }\n}\n","import { Component, TemplateRef, ViewChild, ViewContainerRef, AfterViewInit, Directive } from '@angular/core';\nimport { TemplatePortal } from '@angular/cdk/portal';\n\n@Component({\n selector: 'eui-tab-label, euiTabLabel',\n template: `\n <ng-template #euiTabLabel>\n <div class=\"eui-u-flex eui-u-flex-column\">\n <div class=\"eui-u-flex eui-u-flex-row eui-u-flex-justify-content-center\">\n <ng-content></ng-content>\n </div>\n <div class=\"eui-tab-item__sublabel\"><ng-content select=\"euiTabSubLabel\"></ng-content></div>\n </div>\n </ng-template>`,\n})\nexport class EuiTabLabelComponent implements AfterViewInit {\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n @ViewChild('euiTabLabel') templateRef: TemplateRef<any>;\n\n public templatePortal: TemplatePortal | null;\n\n constructor(private viewContainerRef: ViewContainerRef) {}\n\n ngAfterViewInit(): void {\n this.templatePortal = new TemplatePortal(this.templateRef, this.viewContainerRef);\n }\n}\n\n// eslint-disable-next-line @angular-eslint/directive-selector\n@Directive({ selector: 'euiTabSubLabel' })\nexport class EuiTabSubLabelDirective {}\n","import { Component, ContentChild, Input } from '@angular/core';\nimport { coerceBooleanProperty, BooleanInput } from '@angular/cdk/coercion';\n\nimport { BaseDirective } from '@eui/components/shared';\n\nimport { EuiTabContentComponent } from '../eui-tab-content/eui-tab-content.component';\nimport { EuiTabLabelComponent } from '../eui-tab-label/eui-tab-label.component';\n\n@Component({\n selector: 'eui-tab',\n templateUrl: './eui-tab.component.html',\n styleUrls: ['../styles/_index.scss'],\n})\nexport class EuiTabComponent extends BaseDirective {\n @Input() url: string;\n @Input() e2eAttr = 'eui-tab';\n @Input() tooltip: string;\n\n @Input()\n get isClosable(): boolean {\n return this._isClosable;\n }\n set isClosable(value: BooleanInput) {\n this._isClosable = coerceBooleanProperty(value);\n }\n private _isClosable = false;\n @Input()\n get isVisible(): boolean {\n return this._isVisible;\n }\n set isVisible(value: BooleanInput) {\n this._isVisible = coerceBooleanProperty(value);\n }\n private _isVisible = true;\n @Input()\n get isActive(): boolean {\n return this._isActive;\n }\n set isActive(value: BooleanInput) {\n this._isActive = coerceBooleanProperty(value);\n }\n private _isActive = false;\n @Input()\n get isDisabled(): boolean {\n return this._isDisabled;\n }\n set isDisabled(value: BooleanInput) {\n this._isDisabled = coerceBooleanProperty(value);\n }\n private _isDisabled = false;\n @Input()\n get hasBackgroundFilled(): boolean {\n return this._hasBackgroundFilled;\n }\n set hasBackgroundFilled(value: BooleanInput) {\n this._hasBackgroundFilled = coerceBooleanProperty(value);\n }\n private _hasBackgroundFilled = false;\n @Input()\n get isHandleCloseOnClose(): boolean {\n return this._isHandleCloseOnClose;\n }\n set isHandleCloseOnClose(value: BooleanInput) {\n this._isHandleCloseOnClose = coerceBooleanProperty(value);\n }\n private _isHandleCloseOnClose = false;\n\n @ContentChild(EuiTabLabelComponent)\n get templateLabel(): EuiTabLabelComponent {\n return this._templateLabel;\n }\n set templateLabel(value: EuiTabLabelComponent) {\n this.setTemplateLabelInput(value);\n }\n protected _templateLabel: EuiTabLabelComponent;\n\n @ContentChild(EuiTabContentComponent)\n get templateContent(): EuiTabContentComponent {\n return this._templateContent;\n }\n set templateContent(value: EuiTabContentComponent) {\n this.setTemplateContentInput(value);\n }\n protected _templateContent: EuiTabContentComponent;\n\n constructor() {\n super();\n }\n\n protected setTemplateLabelInput(value: EuiTabLabelComponent): void {\n if (value) {\n this._templateLabel = value;\n }\n }\n\n protected setTemplateContentInput(value: EuiTabContentComponent): void {\n if (value) {\n this._templateContent = value;\n }\n }\n}\n","<ng-content></ng-content>\n","import {\n Component,\n ContentChildren,\n Directive,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n QueryList,\n HostListener,\n ViewEncapsulation,\n forwardRef,\n OnChanges,\n AfterViewInit,\n ViewChildren,\n ViewContainerRef,\n ViewChild,\n ElementRef,\n ChangeDetectorRef,\n SimpleChanges,\n HostBinding,\n} from '@angular/core';\nimport { animate, AnimationBuilder, AnimationFactory, AnimationPlayer, style } from '@angular/animations';\nimport { Subject, Subscription } from 'rxjs';\nimport { filter, startWith, takeUntil } from 'rxjs/operators';\nimport { coerceBooleanProperty, BooleanInput } from '@angular/cdk/coercion';\nimport { NavigationEnd, Router } from '@angular/router';\n\nimport { EuiTabComponent } from './eui-tab/eui-tab.component';\n\n@Component({\n selector: 'eui-tabs',\n templateUrl: './eui-tabs.component.html',\n styleUrls: ['./styles/_index.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class EuiTabsComponent implements OnDestroy, AfterViewInit, OnChanges {\n @Input() styleClass: string;\n @Input() tabs: EuiTabComponent[] = [];\n @Input() activeTabIndex = null;\n @Input() e2eAttr = 'eui-tabs';\n @Input() pathMatch: 'prefix' | 'full' = 'prefix';\n\n /** @deprecated This will be removed in next version of eui */\n @Output() tabClosed = new EventEmitter<{ tab: EuiTabComponent; index: number }>();\n /** @deprecated This will be removed in next version of eui */\n @Output() tabSelected = new EventEmitter<{ tab: EuiTabComponent; index: number }>();\n\n @Output() tabClose = new EventEmitter<{ tab: EuiTabComponent; index: number }>();\n @Output() tabSelect = new EventEmitter<{ tab: EuiTabComponent; index: number }>();\n\n @ContentChildren(forwardRef(() => EuiTabComponent), { descendants: false }) _tabs: QueryList<EuiTabComponent>;\n @ViewChildren('euiTabLabelItem', { read: ViewContainerRef }) euiTabLabelItems: QueryList<ViewContainerRef>;\n @ViewChild('euiTabsItems') euiTabsItems: ElementRef;\n @ViewChild('euiTabsItemsWrapper') euiTabsItemsWrapper: ElementRef;\n @ViewChild('host') host: ElementRef;\n\n public scrolling = false;\n public navigationLeftButtonDisabled = true;\n public navigationRightButtonDisabled = false;\n public currentOffset = 0;\n\n @Input()\n get isMainNavigation(): boolean {\n return this._isMainNavigation;\n }\n set isMainNavigation(value: BooleanInput) {\n this._isMainNavigation = coerceBooleanProperty(value);\n }\n private _isMainNavigation = false;\n @Input()\n get isHandleChangeTab(): boolean {\n return this._isHandleChangeTab;\n }\n set isHandleChangeTab(value: BooleanInput) {\n this._isHandleChangeTab = coerceBooleanProperty(value);\n }\n private _isHandleChangeTab = false;\n @Input()\n get isSubTabs(): boolean {\n return this._isSubTabs;\n }\n set isSubTabs(value: BooleanInput) {\n this._isSubTabs = coerceBooleanProperty(value);\n }\n private _isSubTabs = false;\n @Input()\n get isVerticalTabs(): boolean {\n return this._isVerticalTabs;\n }\n set isVerticalTabs(value: BooleanInput) {\n this._isVerticalTabs = coerceBooleanProperty(value);\n }\n private _isVerticalTabs = false;\n\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private routerSubscription: Subscription;\n private player: AnimationPlayer;\n private observer: ResizeObserver;\n private stepMove = 400;\n /**\n * For race condition reason, the wrapper width is not correctly calculated when the component passes from no-scroll state to scroll\n * state. To fix this issue, we count the number of times the getScrollingStatus method is called.\n *\n * Scenario 1: The number of tabs does not require any scroll:\n * - Without any fix the scroll will have a delta of 64 at the first activation, then on the first no-scroll to scroll state,\n * - we had 64 to the move\n *\n * Scenario 2: The number of tabs requires a scroll:\n * - In this case the wrapper width is correctly calculated, so we don't need to add the delta\n */\n private scrollingCount = 0;\n\n constructor(\n private cd: ChangeDetectorRef,\n private router: Router,\n private builder: AnimationBuilder,\n ) {}\n\n ngOnChanges(c: SimpleChanges): void {\n if (c.activeTabIndex) {\n setTimeout(\n () => {\n const activeTab = this.euiTabsItemsWrapper.nativeElement.children.item(c.activeTabIndex.currentValue);\n const containerWidth = this.euiTabsItems.nativeElement.clientWidth;\n const wrapperWidth = this.euiTabsItemsWrapper.nativeElement.clientWidth;\n\n if (activeTab && !this.isActiveTabFullyVisible(activeTab)) {\n let scrollTo = 0;\n let subsetWidth = 0;\n for (let i = 0; i <= c.activeTabIndex.currentValue; i++) {\n subsetWidth += this.euiTabsItemsWrapper.nativeElement.children.item(i).clientWidth;\n }\n\n scrollTo = containerWidth / 2 - subsetWidth;\n\n if (Math.abs(scrollTo) > wrapperWidth - containerWidth + 32) {\n scrollTo = -(wrapperWidth - containerWidth + 32);\n }\n\n if (scrollTo > 0) {\n scrollTo = 0;\n }\n\n if (c.activeTabIndex.isFirstChange() && c.activeTabIndex.currentValue > 0) {\n this.setScrollTo(scrollTo, false);\n } else {\n this.setScrollTo(scrollTo);\n }\n }\n },\n c.activeTabIndex.isFirstChange() && c.activeTabIndex.currentValue > 0 ? 500 : 0,\n );\n }\n }\n\n ngAfterViewInit(): void {\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.observer = new (window as any).ResizeObserver(() => {\n this.getScrollingStatus();\n this.cd.detectChanges();\n });\n\n this.observer.observe(this.host.nativeElement);\n\n this._tabs.changes.pipe(startWith(true), takeUntil(this.destroy$)).subscribe(() => {\n this.tabs = this._tabs.toArray();\n\n if (this.routerSubscription) {\n this.routerSubscription.unsubscribe();\n }\n\n this.routerSubscription = this.router.events\n .pipe(\n filter((e) => e instanceof NavigationEnd),\n takeUntil(this.destroy$),\n startWith({ url: this.router.url }),\n )\n .subscribe((e: NavigationEnd) => {\n const tabsWithUrl = this.tabs.filter((t) => t.url !== null);\n if (tabsWithUrl.length === this.tabs.length) {\n let tabIndex = -1;\n if (this.pathMatch === 'full') {\n tabIndex = tabsWithUrl.findIndex((t) => e.url === t.url);\n } else {\n tabIndex = tabsWithUrl.findIndex((t) => {\n const regex = new RegExp(t.url + '(/?)');\n return regex.test(e.url);\n });\n }\n\n this.tabs = this.tabs.map((t, i) =>\n tabIndex === i ? Object.assign(t, { isActive: true }) : Object.assign(t, { isActive: false }),\n );\n\n if (this.tabs.findIndex((t) => t.isActive) !== -1) {\n this.activeTabIndex = this.tabs.findIndex((t) => t.isActive);\n }\n\n this.cd.detectChanges();\n }\n });\n\n if (!this.activeTabIndex) {\n this.activeTabIndex = this.tabs.findIndex((t) => t.isActive) !== -1 ? this.tabs.findIndex((t) => t.isActive) : 0;\n }\n\n this.cd.detectChanges();\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n this.observer?.unobserve(this.host.nativeElement);\n }\n\n @HostListener('window:resize', ['$event'])\n onResize(): void {\n this.getScrollingStatus();\n }\n\n public onContentChanges(): void {\n this.getScrollingStatus();\n }\n\n public goToLeft(): void {\n let scrollTo = this.currentOffset + this.stepMove;\n if (scrollTo > 0) {\n scrollTo = 0;\n }\n\n this.setScrollTo(scrollTo);\n }\n\n public goToRight(): void {\n const containerWidth = this.euiTabsItems.nativeElement.clientWidth;\n const wrapperWidth = this.euiTabsItemsWrapper.nativeElement.clientWidth;\n\n let scrollTo = this.currentOffset - this.stepMove;\n\n if (Math.abs(scrollTo) > wrapperWidth - containerWidth) {\n scrollTo = -(wrapperWidth - containerWidth) - 32;\n }\n\n this.setScrollTo(scrollTo);\n }\n\n public changeTab(index: number): void {\n if (this.isHandleChangeTab) {\n this.tabSelect.emit({ tab: this.tabs[index], index });\n } else {\n if (this.tabs[index] && !this.tabs[index].isDisabled) {\n if (this.tabs[this.activeTabIndex]) {\n this.tabs[this.activeTabIndex].isActive = false;\n }\n this.tabs[index].isActive = true;\n\n const activeTab = this.euiTabsItemsWrapper.nativeElement.children.item(index);\n const containerWidth = this.euiTabsItems.nativeElement.clientWidth;\n const wrapperWidth = this.euiTabsItemsWrapper.nativeElement.clientWidth;\n\n if (activeTab && !this.isActiveTabFullyVisible(activeTab) && !this.isVerticalTabs && !this.isMainNavigation) {\n let scrollTo = 0;\n let subsetWidth = 0;\n for (let i = 0; i <= index; i++) {\n subsetWidth += this.euiTabsItemsWrapper.nativeElement.children.item(i).clientWidth;\n }\n\n scrollTo = containerWidth / 2 - subsetWidth;\n\n if (Math.abs(scrollTo) > wrapperWidth - containerWidth + 32) {\n scrollTo = -(wrapperWidth - containerWidth + 32);\n }\n\n if (scrollTo > 0) {\n scrollTo = 0;\n }\n\n this.setScrollTo(scrollTo);\n }\n\n if (!this.tabs[index].url) {\n this.activeTabIndex = index;\n this.tabSelected.emit({ tab: this.tabs[index], index });\n this.tabSelect.emit({ tab: this.tabs[index], index });\n } else {\n this.activeTabIndex = index;\n this.router.navigateByUrl(this.tabs[index].url);\n }\n }\n }\n }\n\n public onKeyUp(e: KeyboardEvent, index: number): void {\n if (e.code === 'Enter' || e.code === 'Space') {\n if (this.tabs[index] && !this.tabs[index].isDisabled) {\n this.tabs.map((t, i) => (i === index ? Object.assign(t, { isActive: true }) : Object.assign(t, { isActive: false })));\n\n if (!this.tabs[index].url) {\n this.activeTabIndex = index;\n this.tabSelected.emit({ tab: this.tabs[index], index });\n this.tabSelect.emit({ tab: this.tabs[index], index });\n } else {\n this.activeTabIndex = index;\n this.router.navigateByUrl(this.tabs[index].url);\n }\n }\n }\n }\n\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public closeTab(index: number, e: any): void {\n const tab = this.tabs[index];\n if (!this.tabs[index].isHandleCloseOnClose) {\n this.close(e.index);\n this.tabs = this.tabs.filter((t, i) => i !== index);\n }\n\n this.tabClosed.emit({ tab, index });\n this.tabClose.emit({ tab, index });\n e.stopPropagation();\n }\n\n /**\n * Close a tab pass in parameter.\n *\n * @usageNotes\n * ```html\n * <eui-tabs #tabs>\n * <eui-tab isClosable isHandleCloseOnClose>\n * <eui-tab-label>Tab label</eui-tab-label>\n * <eui-tab-content>Tab content</eui-tab-content>\n * </eui-tab>\n * </eui-tabs>\n * ```\n * ...\n * ```typescript\n * this.tabs.close(1);\n * ```\n * @param index Index of the tab to close\n */\n public close(index: number): void {\n if (index === this.activeTabIndex) {\n const previousVisibleIndex = this.tabs.indexOf(this.tabs[index - 1]);\n\n if (previousVisibleIndex < 0) {\n this.changeTab(0);\n } else {\n this.changeTab(previousVisibleIndex);\n }\n } else {\n if (index < this.activeTabIndex) {\n this.activeTabIndex = this.activeTabIndex - 1;\n }\n }\n\n this.tabs = this.tabs.filter((t, i) => i !== index);\n }\n\n private isActiveTabFullyVisible(activeTab: HTMLDivElement): boolean {\n const containerWidth = this.euiTabsItems.nativeElement.clientWidth;\n return activeTab.offsetLeft - 48 >= 0 && activeTab.offsetLeft + activeTab.clientWidth < containerWidth - 48;\n }\n\n private setScrollTo(scrollTo: number, isAnimated = true): void {\n const containerWidth = this.euiTabsItems.nativeElement.clientWidth;\n const wrapperWidth = this.euiTabsItemsWrapper.nativeElement.clientWidth;\n\n const timings = isAnimated ? '500ms cubic-bezier(0.35, 0, 0.25, 1)' : 0;\n const animation: AnimationFactory = this.builder.build([animate(timings, style({ 'margin-left': +scrollTo + 'px' }))]);\n\n this.player = animation.create(this.euiTabsItemsWrapper.nativeElement);\n this.player.play();\n\n this.currentOffset = scrollTo;\n\n if (scrollTo === 0) {\n this.navigationLeftButtonDisabled = true;\n }\n if (Math.abs(this.currentOffset) < wrapperWidth - containerWidth + 32) {\n this.navigationRightButtonDisabled = false;\n }\n if (this.currentOffset < 0) {\n this.navigationLeftButtonDisabled = false;\n }\n if (Math.abs(scrollTo) === wrapperWidth - containerWidth + 32) {\n this.navigationRightButtonDisabled = true;\n }\n\n this.cd.detectChanges();\n }\n\n private getScrollingStatus(): void {\n const containerWidth = this.euiTabsItems.nativeElement.clientWidth;\n const wrapperWidth = this.euiTabsItemsWrapper.nativeElement.clientWidth;\n\n this.scrolling = containerWidth < wrapperWidth;\n\n if (!this.scrolling) {\n this.scrollingCount = 0;\n this.setScrollTo(0);\n } else {\n if (wrapperWidth - containerWidth <= Math.abs(this.currentOffset) + 32) {\n const deltaFix = this.scrollingCount === 0 ? 64 : 0;\n const scrollTo = -(wrapperWidth - containerWidth) - 32 - deltaFix;\n\n this.setScrollTo(scrollTo);\n\n this.currentOffset = scrollTo;\n } else {\n if (Math.abs(this.currentOffset) < wrapperWidth - containerWidth + 32) {\n this.navigationRightButtonDisabled = false;\n }\n if (this.currentOffset < 0) {\n this.navigationLeftButtonDisabled = false;\n }\n }\n\n this.scrollingCount++;\n }\n\n this.cd.detectChanges();\n }\n}\n\n/* eslint-disable */\n@Directive({ selector: 'euiTabsRightContent' })\nexport class EuiTabsRightContentTagDirective {\n @HostBinding('class') elementClass = 'eui-tabs__right-content-wrapper';\n}\n/* eslint-enable */\n","<div\n #host\n class=\"eui-tabs {{ styleClass }}\"\n [class.eui-tabs--main-navigation]=\"isMainNavigation\"\n [class.eui-tabs--vertical]=\"isVerticalTabs\"\n attr.data-e2e=\"{{ e2eAttr }}\">\n <div class=\"eui-u-flex\" [class.eui-tabs__wrapper--horizontal]=\"!isVerticalTabs\" [class.eui-tabs__wrapper--vertical]=\"isVerticalTabs\">\n <div\n #euiTabsItems\n class=\"eui-tabs__items\"\n [class.eui-tabs__items--horizontal]=\"!isVerticalTabs\"\n [class.eui-tabs__items--scrolling]=\"scrolling\"\n (cdkObserveContent)=\"onContentChanges()\">\n <div #euiTabsItemsWrapper class=\"eui-tabs__items-wrapper\" [attr.data-offset]=\"currentOffset\" role=\"tablist\">\n <ng-container *ngFor=\"let tab of tabs; let i = index\">\n <ng-container *ngIf=\"tab.isVisible\">\n <div\n tabindex=\"0\"\n role=\"tab\"\n class=\"eui-tab-item\"\n [class.eui-tab-item--closable]=\"tab.isClosable\"\n [class.eui-tab-item--active]=\"activeTabIndex === i\"\n [class.eui-tab-item--disabled]=\"tab.isDisabled\"\n [class.eui-tab-item--secondary]=\"tab.euiSecondary\"\n [class.eui-tab-item--primary]=\"tab.euiPrimary\"\n [class.eui-tab-item--info]=\"tab.euiInfo\"\n [class.eui-tab-item--success]=\"tab.euiSuccess\"\n [class.eui-tab-item--warning]=\"tab.euiWarning\"\n [class.eui-tab-item--danger]=\"tab.euiDanger\"\n [class.eui-tab-item--accent]=\"tab.euiAccent\"\n [class.eui-tab-item--background-filled]=\"tab.hasBackgroundFilled\"\n [attr.aria-disabled]=\"tab.isDisabled\"\n (click)=\"changeTab(i)\"\n [euiTooltip]=\"tab.tooltip\"\n (keyup)=\"onKeyUp($event, i)\">\n <div class=\"eui-tab-item__label\">\n <ng-template [cdkPortalOutlet]=\"tab.templateLabel.templatePortal\"></ng-template>\n </div>\n <button\n *ngIf=\"tab.isClosable\"\n (click)=\"closeTab(i, $event)\"\n euiButton\n euiIconButton\n euiBasicButton\n euiRounded\n euiSizeXS\n type=\"button\"\n aria-label=\"Close tab button\"\n class=\"eui-u-ml-s\">\n <eui-icon-svg\n icon=\"eui-ecl-close\"\n size=\"l\"\n fillColor=\"grey-75\"\n class=\"eui-tab__close-icon\"\n aria-label=\"Close icon\">\n </eui-icon-svg>\n </button>\n </div>\n </ng-container>\n </ng-container>\n </div>\n\n <div class=\"eui-tabs__navigation\">\n <div class=\"eui-tabs__navigation__left-item\">\n <button\n (click)=\"goToLeft()\"\n euiButton\n euiIconButton\n euiBasicButton\n type=\"button\"\n [euiDisabled]=\"navigationLeftButtonDisabled\"\n aria-label=\"Scroll left\">\n <eui-icon-svg icon=\"eui-chevron-back\"></eui-icon-svg>\n </button>\n </div>\n <div class=\"eui-tabs__navigation__right-item\">\n <button\n (click)=\"goToRight()\"\n euiButton\n euiIconButton\n euiBasicButton\n type=\"button\"\n [euiDisabled]=\"navigationRightButtonDisabled\"\n aria-label=\"Scroll right\">\n <eui-icon-svg icon=\"eui-chevron-forward\"></eui-icon-svg>\n </button>\n </div>\n </div>\n </div>\n\n <div class=\"eui-tabs__right-content\">\n <ng-content select=\"euiTabsRightContent\"></ng-content>\n </div>\n </div>\n\n <ng-container *ngFor=\"let tab of tabs; let i = index\">\n <div class=\"eui-tab-content-wrapper\" tabindex=\"0\" *ngIf=\"i === activeTabIndex && tab.templateContent\">\n <ng-template [cdkPortalOutlet]=\"tab.templateContent.templatePortal\"></ng-template>\n </div>\n </ng-container>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { ObserversModule } from '@angular/cdk/observers';\n\nimport { EuiIconModule } from '@eui/components/eui-icon';\nimport { EuiButtonModule } from '@eui/components/eui-button';\nimport { EuiTooltipDirectiveModule } from '@eui/components/directives';\n\nimport { EuiTabComponent } from './eui-tab/eui-tab.component';\nimport { EuiTabsComponent, EuiTabsRightContentTagDirective } from './eui-tabs.component';\nimport { EuiTabLabelComponent, EuiTabSubLabelDirective } from './eui-tab-label/eui-tab-label.component';\nimport { EuiTabContentComponent } from './eui-tab-content/eui-tab-content.component';\n\n@NgModule({\n imports: [CommonModule, PortalModule, EuiIconModule, EuiButtonModule, EuiTooltipDirectiveModule, ObserversModule],\n exports: [\n EuiTabsComponent,\n EuiTabComponent,\n EuiTabsRightContentTagDirective,\n EuiTabLabelComponent,\n EuiTabSubLabelDirective,\n EuiTabContentComponent,\n ],\n declarations: [\n EuiTabsComponent,\n EuiTabComponent,\n EuiTabsRightContentTagDirective,\n EuiTabLabelComponent,\n EuiTabSubLabelDirective,\n EuiTabContentComponent,\n ],\n})\nexport class EuiTabsModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;MAYa,sBAAsB,CAAA;AAO/B,IAAA,IACI,mBAAmB,GAAA;QACnB,OAAO,IAAI,CAAC,oBAAoB,CAAC;KACpC;IACD,IAAI,mBAAmB,CAAC,KAAmB,EAAA;AACvC,QAAA,IAAI,CAAC,oBAAoB,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;KAC5D;AAGD,IAAA,WAAA,CAAoB,gBAAkC,EAAA;QAAlC,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;QAF9C,IAAoB,CAAA,oBAAA,GAAG,KAAK,CAAC;KAEqB;IAE1D,eAAe,GAAA;AACX,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;KACrF;kIApBQ,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,EANrB,QAAA,EAAA,gCAAA,EAAA,MAAA,EAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,eAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;AAIK,kBAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;4FAEN,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBARlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,gCAAgC;AAC1C,oBAAA,QAAQ,EAAE,CAAA;;;;AAIK,kBAAA,CAAA;AAClB,iBAAA,CAAA;uGAI+B,WAAW,EAAA,CAAA;sBAAtC,SAAS;uBAAC,eAAe,CAAA;gBAKtB,mBAAmB,EAAA,CAAA;sBADtB,KAAK;;;MCJG,oBAAoB,CAAA;AAO7B,IAAA,WAAA,CAAoB,gBAAkC,EAAA;QAAlC,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;KAAI;IAE1D,eAAe,GAAA;AACX,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;KACrF;kIAXQ,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAApB,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,EAVnB,QAAA,EAAA,4BAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,aAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;AAQK,kBAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;4FAEN,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAZhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,4BAA4B;AACtC,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;AAQK,kBAAA,CAAA;AAClB,iBAAA,CAAA;uGAI6B,WAAW,EAAA,CAAA;sBAApC,SAAS;uBAAC,aAAa,CAAA;;AAW5B;MAEa,uBAAuB,CAAA;kIAAvB,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;sHAAvB,uBAAuB,EAAA,QAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBADnC,SAAS;mBAAC,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAA;;;ACjBnC,MAAO,eAAgB,SAAQ,aAAa,CAAA;AAK9C,IAAA,IACI,UAAU,GAAA;QACV,OAAO,IAAI,CAAC,WAAW,CAAC;KAC3B;IACD,IAAI,UAAU,CAAC,KAAmB,EAAA;AAC9B,QAAA,IAAI,CAAC,WAAW,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;KACnD;AAED,IAAA,IACI,SAAS,GAAA;QACT,OAAO,IAAI,CAAC,UAAU,CAAC;KAC1B;IACD,IAAI,SAAS,CAAC,KAAmB,EAAA;AAC7B,QAAA,IAAI,CAAC,UAAU,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;KAClD;AAED,IAAA,IACI,QAAQ,GAAA;QACR,OAAO,IAAI,CAAC,SAAS,CAAC;KACzB;IACD,IAAI,QAAQ,CAAC,KAAmB,EAAA;AAC5B,QAAA,IAAI,CAAC,SAAS,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;KACjD;AAED,IAAA,IACI,UAAU,GAAA;QACV,OAAO,IAAI,CAAC,WAAW,CAAC;KAC3B;IACD,IAAI,UAAU,CAAC,KAAmB,EAAA;AAC9B,QAAA,IAAI,CAAC,WAAW,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;KACnD;AAED,IAAA,IACI,mBAAmB,GAAA;QACnB,OAAO,IAAI,CAAC,oBAAoB,CAAC;KACpC;IACD,IAAI,mBAAmB,CAAC,KAAmB,EAAA;AACvC,QAAA,IAAI,CAAC,oBAAoB,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;KAC5D;AAED,IAAA,IACI,oBAAoB,GAAA;QACpB,OAAO,IAAI,CAAC,qBAAqB,CAAC;KACrC;IACD,IAAI,oBAAoB,CAAC,KAAmB,EAAA;AACxC,QAAA,IAAI,CAAC,qBAAqB,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;KAC7D;AAGD,IAAA,IACI,aAAa,GAAA;QACb,OAAO,IAAI,CAAC,cAAc,CAAC;KAC9B;IACD,IAAI,aAAa,CAAC,KAA2B,EAAA;AACzC,QAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;KACrC;AAGD,IAAA,IACI,eAAe,GAAA;QACf,OAAO,IAAI,CAAC,gBAAgB,CAAC;KAChC;IACD,IAAI,eAAe,CAAC,KAA6B,EAAA;AAC7C,QAAA,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;KACvC;AAGD,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE,CAAC;QAvEH,IAAO,CAAA,OAAA,GAAG,SAAS,CAAC;QAUrB,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QAQpB,IAAU,CAAA,UAAA,GAAG,IAAI,CAAC;QAQlB,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;QAQlB,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QAQpB,IAAoB,CAAA,oBAAA,GAAG,KAAK,CAAC;QAQ7B,IAAqB,CAAA,qBAAA,GAAG,KAAK,CAAC;KAsBrC;AAES,IAAA,qBAAqB,CAAC,KAA2B,EAAA;AACvD,QAAA,IAAI,KAAK,EAAE;AACP,YAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAC/B,SAAA;KACJ;AAES,IAAA,uBAAuB,CAAC,KAA6B,EAAA;AAC3D,QAAA,IAAI,KAAK,EAAE;AACP,YAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;AACjC,SAAA;KACJ;kIAtFQ,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAf,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,EAsDV,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,KAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,EAAA,UAAA,EAAA,YAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,eAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,oBAAoB,EASpB,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,sBAAsB,uEC5ExC,6BACA,EAAA,MAAA,EAAA,CAAA,qjWAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDYa,eAAe,EAAA,UAAA,EAAA,CAAA;kBAL3B,SAAS;+BACI,SAAS,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,qjWAAA,CAAA,EAAA,CAAA;0EAKV,GAAG,EAAA,CAAA;sBAAX,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAGF,UAAU,EAAA,CAAA;sBADb,KAAK;gBASF,SAAS,EAAA,CAAA;sBADZ,KAAK;gBASF,QAAQ,EAAA,CAAA;sBADX,KAAK;gBASF,UAAU,EAAA,CAAA;sBADb,KAAK;gBASF,mBAAmB,EAAA,CAAA;sBADtB,KAAK;gBASF,oBAAoB,EAAA,CAAA;sBADvB,KAAK;gBAUF,aAAa,EAAA,CAAA;sBADhB,YAAY;uBAAC,oBAAoB,CAAA;gBAU9B,eAAe,EAAA,CAAA;sBADlB,YAAY;uBAAC,sBAAsB,CAAA;;;MExC3B,gBAAgB,CAAA;AA0BzB,IAAA,IACI,gBAAgB,GAAA;QAChB,OAAO,IAAI,CAAC,iBAAiB,CAAC;KACjC;IACD,IAAI,gBAAgB,CAAC,KAAmB,EAAA;AACpC,QAAA,IAAI,CAAC,iBAAiB,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;KACzD;AAED,IAAA,IACI,iBAAiB,GAAA;QACjB,OAAO,IAAI,CAAC,kBAAkB,CAAC;KAClC;IACD,IAAI,iBAAiB,CAAC,KAAmB,EAAA;AACrC,QAAA,IAAI,CAAC,kBAAkB,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;KAC1D;AAED,IAAA,IACI,SAAS,GAAA;QACT,OAAO,IAAI,CAAC,UAAU,CAAC;KAC1B;IACD,IAAI,SAAS,CAAC,KAAmB,EAAA;AAC7B,QAAA,IAAI,CAAC,UAAU,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;KAClD;AAED,IAAA,IACI,cAAc,GAAA;QACd,OAAO,IAAI,CAAC,eAAe,CAAC;KAC/B;IACD,IAAI,cAAc,CAAC,KAAmB,EAAA;AAClC,QAAA,IAAI,CAAC,eAAe,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;KACvD;AAqBD,IAAA,WAAA,CACY,EAAqB,EACrB,MAAc,EACd,OAAyB,EAAA;QAFzB,IAAE,CAAA,EAAA,GAAF,EAAE,CAAmB;QACrB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QACd,IAAO,CAAA,OAAA,GAAP,OAAO,CAAkB;QA9E5B,IAAI,CAAA,IAAA,GAAsB,EAAE,CAAC;QAC7B,IAAc,CAAA,cAAA,GAAG,IAAI,CAAC;QACtB,IAAO,CAAA,OAAA,GAAG,UAAU,CAAC;QACrB,IAAS,CAAA,SAAA,GAAsB,QAAQ,CAAC;;AAGvC,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAA2C,CAAC;;AAExE,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAA2C,CAAC;AAE1E,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAA2C,CAAC;AACvE,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAA2C,CAAC;QAQ3E,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;QAClB,IAA4B,CAAA,4BAAA,GAAG,IAAI,CAAC;QACpC,IAA6B,CAAA,6BAAA,GAAG,KAAK,CAAC;QACtC,IAAa,CAAA,aAAA,GAAG,CAAC,CAAC;QASjB,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;QAQ1B,IAAkB,CAAA,kBAAA,GAAG,KAAK,CAAC;QAQ3B,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;QAQnB,IAAe,CAAA,eAAA,GAAG,KAAK,CAAC;AAExB,QAAA,IAAA,CAAA,QAAQ,GAAqB,IAAI,OAAO,EAAW,CAAC;QAIpD,IAAQ,CAAA,QAAA,GAAG,GAAG,CAAC;AACvB;;;;;;;;;;AAUG;QACK,IAAc,CAAA,cAAA,GAAG,CAAC,CAAC;KAMvB;AAEJ,IAAA,WAAW,CAAC,CAAgB,EAAA;QACxB,IAAI,CAAC,CAAC,cAAc,EAAE;YAClB,UAAU,CACN,MAAK;AACD,gBAAA,MAAM,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;gBACtG,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,WAAW,CAAC;gBACnE,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,WAAW,CAAC;gBAExE,IAAI,SAAS,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,EAAE;oBACvD,IAAI,QAAQ,GAAG,CAAC,CAAC;oBACjB,IAAI,WAAW,GAAG,CAAC,CAAC;AACpB,oBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC,EAAE,EAAE;AACrD,wBAAA,WAAW,IAAI,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;AACtF,qBAAA;AAED,oBAAA,QAAQ,GAAG,cAAc,GAAG,CAAC,GAAG,WAAW,CAAC;AAE5C,oBAAA,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,YAAY,GAAG,cAAc,GAAG,EAAE,EAAE;wBACzD,QAAQ,GAAG,EAAE,YAAY,GAAG,cAAc,GAAG,EAAE,CAAC,CAAC;AACpD,qBAAA;oBAED,IAAI,QAAQ,GAAG,CAAC,EAAE;wBACd,QAAQ,GAAG,CAAC,CAAC;AAChB,qBAAA;AAED,oBAAA,IAAI,CAAC,CAAC,cAAc,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,cAAc,CAAC,YAAY,GAAG,CAAC,EAAE;AACvE,wBAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AACrC,qBAAA;AAAM,yBAAA;AACH,wBAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAC9B,qBAAA;AACJ,iBAAA;aACJ,EACD,CAAC,CAAC,cAAc,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,cAAc,CAAC,YAAY,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAClF,CAAC;AACL,SAAA;KACJ;IAED,eAAe,GAAA;;;QAGX,IAAI,CAAC,QAAQ,GAAG,IAAK,MAAc,CAAC,cAAc,CAAC,MAAK;YACpD,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAC1B,YAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;AAC5B,SAAC,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAE/C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;YAC9E,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;YAEjC,IAAI,IAAI,CAAC,kBAAkB,EAAE;AACzB,gBAAA,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,CAAC;AACzC,aAAA;AAED,YAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM;AACvC,iBAAA,IAAI,CACD,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,aAAa,CAAC,EACzC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EACxB,SAAS,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CACtC;AACA,iBAAA,SAAS,CAAC,CAAC,CAAgB,KAAI;AAC5B,gBAAA,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC;gBAC5D,IAAI,WAAW,CAAC,MAAM,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AACzC,oBAAA,IAAI,QAAQ,GAAG,CAAC,CAAC,CAAC;AAClB,oBAAA,IAAI,IAAI,CAAC,SAAS,KAAK,MAAM,EAAE;AAC3B,wBAAA,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;AAC5D,qBAAA;AAAM,yBAAA;wBACH,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,KAAI;4BACnC,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC;4BACzC,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC7B,yBAAC,CAAC,CAAC;AACN,qBAAA;oBAED,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAC3B,QAAQ,KAAK,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAChG,CAAC;AAEF,oBAAA,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE;AAC/C,wBAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC;AAChE,qBAAA;AAED,oBAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;AAC3B,iBAAA;AACL,aAAC,CAAC,CAAC;AAEP,YAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;AACtB,gBAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AACpH,aAAA;AAED,YAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;AAC5B,SAAC,CAAC,CAAC;KACN;IAED,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzB,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;QAC5B,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;KACrD;IAGD,QAAQ,GAAA;QACJ,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC7B;IAEM,gBAAgB,GAAA;QACnB,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC7B;IAEM,QAAQ,GAAA;QACX,IAAI,QAAQ,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC;QAClD,IAAI,QAAQ,GAAG,CAAC,EAAE;YACd,QAAQ,GAAG,CAAC,CAAC;AAChB,SAAA;AAED,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;KAC9B;IAEM,SAAS,GAAA;QACZ,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,WAAW,CAAC;QACnE,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,WAAW,CAAC;QAExE,IAAI,QAAQ,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC;QAElD,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,YAAY,GAAG,cAAc,EAAE;YACpD,QAAQ,GAAG,EAAE,YAAY,GAAG,cAAc,CAAC,GAAG,EAAE,CAAC;AACpD,SAAA;AAED,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;KAC9B;AAEM,IAAA,SAAS,CAAC,KAAa,EAAA;QAC1B,IAAI,IAAI,CAAC,iBAAiB,EAAE;AACxB,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;AACzD,SAAA;AAAM,aAAA;AACH,YAAA,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE;gBAClD,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE;oBAChC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC;AACnD,iBAAA;gBACD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC;AAEjC,gBAAA,MAAM,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC9E,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,WAAW,CAAC;gBACnE,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,WAAW,CAAC;AAExE,gBAAA,IAAI,SAAS,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;oBACzG,IAAI,QAAQ,GAAG,CAAC,CAAC;oBACjB,IAAI,WAAW,GAAG,CAAC,CAAC;oBACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,EAAE,EAAE;AAC7B,wBAAA,WAAW,IAAI,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;AACtF,qBAAA;AAED,oBAAA,QAAQ,GAAG,cAAc,GAAG,CAAC,GAAG,WAAW,CAAC;AAE5C,oBAAA,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,YAAY,GAAG,cAAc,GAAG,EAAE,EAAE;wBACzD,QAAQ,GAAG,EAAE,YAAY,GAAG,cAAc,GAAG,EAAE,CAAC,CAAC;AACpD,qBAAA;oBAED,IAAI,QAAQ,GAAG,CAAC,EAAE;wBACd,QAAQ,GAAG,CAAC,CAAC;AAChB,qBAAA;AAED,oBAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAC9B,iBAAA;gBAED,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE;AACvB,oBAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAC5B,oBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;AACxD,oBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;AACzD,iBAAA;AAAM,qBAAA;AACH,oBAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAC5B,oBAAA,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;AACnD,iBAAA;AACJ,aAAA;AACJ,SAAA;KACJ;IAEM,OAAO,CAAC,CAAgB,EAAE,KAAa,EAAA;QAC1C,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,EAAE;AAC1C,YAAA,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE;gBAClD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;gBAEtH,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE;AACvB,oBAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAC5B,oBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;AACxD,oBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;AACzD,iBAAA;AAAM,qBAAA;AACH,oBAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAC5B,oBAAA,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;AACnD,iBAAA;AACJ,aAAA;AACJ,SAAA;KACJ;;;IAIM,QAAQ,CAAC,KAAa,EAAE,CAAM,EAAA;QACjC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,oBAAoB,EAAE;AACxC,YAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,CAAC;AACvD,SAAA;QAED,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;QACpC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;QACnC,CAAC,CAAC,eAAe,EAAE,CAAC;KACvB;AAED;;;;;;;;;;;;;;;;;AAiBG;AACI,IAAA,KAAK,CAAC,KAAa,EAAA;AACtB,QAAA,IAAI,KAAK,KAAK,IAAI,CAAC,cAAc,EAAE;AAC/B,YAAA,MAAM,oBAAoB,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;YAErE,IAAI,oBAAoB,GAAG,CAAC,EAAE;AAC1B,gBAAA,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AACrB,aAAA;AAAM,iBAAA;AACH,gBAAA,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;AACxC,aAAA;AACJ,SAAA;AAAM,aAAA;AACH,YAAA,IAAI,KAAK,GAAG,IAAI,CAAC,cAAc,EAAE;gBAC7B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;AACjD,aAAA;AACJ,SAAA;QAED,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,CAAC;KACvD;AAEO,IAAA,uBAAuB,CAAC,SAAyB,EAAA;QACrD,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,WAAW,CAAC;AACnE,QAAA,OAAO,SAAS,CAAC,UAAU,GAAG,EAAE,IAAI,CAAC,IAAI,SAAS,CAAC,UAAU,GAAG,SAAS,CAAC,WAAW,GAAG,cAAc,GAAG,EAAE,CAAC;KAC/G;AAEO,IAAA,WAAW,CAAC,QAAgB,EAAE,UAAU,GAAG,IAAI,EAAA;QACnD,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,WAAW,CAAC;QACnE,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,WAAW,CAAC;QAExE,MAAM,OAAO,GAAG,UAAU,GAAG,sCAAsC,GAAG,CAAC,CAAC;QACxE,MAAM,SAAS,GAAqB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,aAAa,EAAE,CAAC,QAAQ,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAEvH,QAAA,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC;AACvE,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;AAEnB,QAAA,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC;QAE9B,IAAI,QAAQ,KAAK,CAAC,EAAE;AAChB,YAAA,IAAI,CAAC,4BAA4B,GAAG,IAAI,CAAC;AAC5C,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,YAAY,GAAG,cAAc,GAAG,EAAE,EAAE;AACnE,YAAA,IAAI,CAAC,6BAA6B,GAAG,KAAK,CAAC;AAC9C,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,aAAa,GAAG,CAAC,EAAE;AACxB,YAAA,IAAI,CAAC,4BAA4B,GAAG,KAAK,CAAC;AAC7C,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,YAAY,GAAG,cAAc,GAAG,EAAE,EAAE;AAC3D,YAAA,IAAI,CAAC,6BAA6B,GAAG,IAAI,CAAC;AAC7C,SAAA;AAED,QAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;KAC3B;IAEO,kBAAkB,GAAA;QACtB,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,WAAW,CAAC;QACnE,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,WAAW,CAAC;AAExE,QAAA,IAAI,CAAC,SAAS,GAAG,cAAc,GAAG,YAAY,CAAC;AAE/C,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACjB,YAAA,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;AACxB,YAAA,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AACvB,SAAA;AAAM,aAAA;AACH,YAAA,IAAI,YAAY,GAAG,cAAc,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,EAAE;AACpE,gBAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AACpD,gBAAA,MAAM,QAAQ,GAAG,EAAE,YAAY,GAAG,cAAc,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC;AAElE,gBAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAE3B,gBAAA,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC;AACjC,aAAA;AAAM,iBAAA;AACH,gBAAA,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,YAAY,GAAG,cAAc,GAAG,EAAE,EAAE;AACnE,oBAAA,IAAI,CAAC,6BAA6B,GAAG,KAAK,CAAC;AAC9C,iBAAA;AACD,gBAAA,IAAI,IAAI,CAAC,aAAa,GAAG,CAAC,EAAE;AACxB,oBAAA,IAAI,CAAC,4BAA4B,GAAG,KAAK,CAAC;AAC7C,iBAAA;AACJ,aAAA;YAED,IAAI,CAAC,cAAc,EAAE,CAAC;AACzB,SAAA;AAED,QAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;KAC3B;kIArYQ,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAhB,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gBAAgB,EAeS,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,IAAA,EAAA,MAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,SAAA,EAAA,SAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,WAAA,EAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,CAAA,UAAA,CAAA,YAAA,EAAA,OAAA,eAAe,CACR,EAAA,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,cAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,qBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,MAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,MAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,SAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAAA,gBAAgB,kDCpD7D,+jKAqGA,EAAA,MAAA,EAAA,CAAA,qjWAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,WAAA,EAAA,KAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,YAAA,EAAA,YAAA,EAAA,WAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,iCAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,eAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,WAAA,EAAA,WAAA,EAAA,SAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,kBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,2BAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;4FDjEa,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAN5B,SAAS;+BACI,UAAU,EAAA,aAAA,EAGL,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,+jKAAA,EAAA,MAAA,EAAA,CAAA,qjWAAA,CAAA,EAAA,CAAA;4JAG5B,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAGI,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBAEG,WAAW,EAAA,CAAA;sBAApB,MAAM;gBAEG,QAAQ,EAAA,CAAA;sBAAjB,MAAM;gBACG,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBAEqE,KAAK,EAAA,CAAA;sBAAhF,eAAe;uBAAC,UAAU,CAAC,MAAM,eAAe,CAAC,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,CAAA;gBACb,gBAAgB,EAAA,CAAA;sBAA5E,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,iBAAiB,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAA;gBAChC,YAAY,EAAA,CAAA;sBAAtC,SAAS;uBAAC,cAAc,CAAA;gBACS,mBAAmB,EAAA,CAAA;sBAApD,SAAS;uBAAC,qBAAqB,CAAA;gBACb,IAAI,EAAA,CAAA;sBAAtB,SAAS;uBAAC,MAAM,CAAA;gBAQb,gBAAgB,EAAA,CAAA;sBADnB,KAAK;gBASF,iBAAiB,EAAA,CAAA;sBADpB,KAAK;gBASF,SAAS,EAAA,CAAA;sBADZ,KAAK;gBASF,cAAc,EAAA,CAAA;sBADjB,KAAK;gBAqIN,QAAQ,EAAA,CAAA;sBADP,YAAY;uBAAC,eAAe,EAAE,CAAC,QAAQ,CAAC,CAAA;;AAkN7C;MAEa,+BAA+B,CAAA;AAD5C,IAAA,WAAA,GAAA;QAE0B,IAAY,CAAA,YAAA,GAAG,iCAAiC,CAAC;AAC1E,KAAA;kIAFY,+BAA+B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;sHAA/B,+BAA+B,EAAA,QAAA,EAAA,qBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAA/B,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAD3C,SAAS;mBAAC,EAAE,QAAQ,EAAE,qBAAqB,EAAE,CAAA;8BAEpB,YAAY,EAAA,CAAA;sBAAjC,WAAW;uBAAC,OAAO,CAAA;;;ME9YX,aAAa,CAAA;kIAAb,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAb,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,iBARlB,gBAAgB;YAChB,eAAe;YACf,+BAA+B;YAC/B,oBAAoB;YACpB,uBAAuB;AACvB,YAAA,sBAAsB,CAfhB,EAAA,OAAA,EAAA,CAAA,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,yBAAyB,EAAE,eAAe,aAE5G,gBAAgB;YAChB,eAAe;YACf,+BAA+B;YAC/B,oBAAoB;YACpB,uBAAuB;YACvB,sBAAsB,CAAA,EAAA,CAAA,CAAA,EAAA;mIAWjB,aAAa,EAAA,OAAA,EAAA,CAlBZ,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,yBAAyB,EAAE,eAAe,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAkBvG,aAAa,EAAA,UAAA,EAAA,CAAA;kBAnBzB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,yBAAyB,EAAE,eAAe,CAAC;AACjH,oBAAA,OAAO,EAAE;wBACL,gBAAgB;wBAChB,eAAe;wBACf,+BAA+B;wBAC/B,oBAAoB;wBACpB,uBAAuB;wBACvB,sBAAsB;AACzB,qBAAA;AACD,oBAAA,YAAY,EAAE;wBACV,gBAAgB;wBAChB,eAAe;wBACf,+BAA+B;wBAC/B,oBAAoB;wBACpB,uBAAuB;wBACvB,sBAAsB;AACzB,qBAAA;AACJ,iBAAA,CAAA;;;AChCD;;AAEG;;;;"}
|
package/package.json
CHANGED