@leanix/components 0.4.503 → 0.4.505

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.
Files changed (31) hide show
  1. package/esm2022/lib/core-ui/components/badge/badge.component.mjs +1 -9
  2. package/esm2022/lib/core-ui/components/banner/banner.component.mjs +1 -11
  3. package/esm2022/lib/core-ui/components/button/button.component.mjs +1 -9
  4. package/esm2022/lib/core-ui/components/card/card.component.mjs +1 -9
  5. package/esm2022/lib/core-ui/components/counter/counter.component.mjs +1 -9
  6. package/esm2022/lib/core-ui/components/skeleton/skeleton.component.mjs +1 -12
  7. package/esm2022/lib/core-ui/components/tiny-spinner/tiny-spinner.component.mjs +1 -9
  8. package/esm2022/lib/core-ui/tooltip/tooltip.directive.mjs +1 -9
  9. package/esm2022/lib/forms-ui/components/breadcrumb/breadcrumb.component.mjs +1 -9
  10. package/esm2022/lib/forms-ui/components/date-input/date-input.component.mjs +1 -9
  11. package/esm2022/lib/forms-ui/components/single-select/single-select.component.mjs +1 -12
  12. package/esm2022/lib/forms-ui/components/switch/switch.component.mjs +1 -9
  13. package/esm2022/lib/popover-ui/components/popover/popover.component.mjs +3 -9
  14. package/esm2022/lib/tab-ui/components/tab-group/tab-group.component.mjs +8 -24
  15. package/fesm2022/leanix-components.mjs +9 -135
  16. package/fesm2022/leanix-components.mjs.map +1 -1
  17. package/lib/core-ui/components/badge/badge.component.d.ts +0 -8
  18. package/lib/core-ui/components/banner/banner.component.d.ts +0 -10
  19. package/lib/core-ui/components/button/button.component.d.ts +0 -8
  20. package/lib/core-ui/components/card/card.component.d.ts +0 -8
  21. package/lib/core-ui/components/counter/counter.component.d.ts +0 -8
  22. package/lib/core-ui/components/skeleton/skeleton.component.d.ts +0 -11
  23. package/lib/core-ui/components/tiny-spinner/tiny-spinner.component.d.ts +0 -8
  24. package/lib/core-ui/tooltip/tooltip.directive.d.ts +0 -8
  25. package/lib/forms-ui/components/breadcrumb/breadcrumb.component.d.ts +0 -8
  26. package/lib/forms-ui/components/date-input/date-input.component.d.ts +0 -8
  27. package/lib/forms-ui/components/single-select/single-select.component.d.ts +0 -11
  28. package/lib/forms-ui/components/switch/switch.component.d.ts +0 -8
  29. package/lib/popover-ui/components/popover/popover.component.d.ts +2 -8
  30. package/lib/tab-ui/components/tab-group/tab-group.component.d.ts +10 -23
  31. package/package.json +1 -1
@@ -14,17 +14,6 @@ import { BasicDropdownComponent } from '../basic-dropdown/basic-dropdown.compone
14
14
  import { KeyboardSelectAction } from '../keyboard-select.directive';
15
15
  import * as i0 from "@angular/core";
16
16
  import * as i1 from "@angular/forms";
17
- /**
18
- * ## Usage
19
- *
20
- * 1. Import the `LxFormsModule` module from `@leanix/components` in your module where you want to use the component.
21
- *
22
- * ```ts
23
- * import { LxFormsModule } from '@leanix/components';
24
- * ```
25
- *
26
- * 2. Use the component in your template.
27
- */
28
17
  export class SingleSelectComponent extends BaseSelectDirective {
29
18
  /** @internal */
30
19
  static calculateNewCursorPostionOnKeyboardNavigation(cursorPosition, keyCode) {
@@ -298,4 +287,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
298
287
  type: ViewChild,
299
288
  args: ['queryInput', { static: true }]
300
289
  }] } });
301
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luZ2xlLXNlbGVjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9mb3Jtcy11aS9jb21wb25lbnRzL3NpbmdsZS1zZWxlY3Qvc2luZ2xlLXNlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9mb3Jtcy11aS9jb21wb25lbnRzL3NpbmdsZS1zZWxlY3Qvc2luZ2xlLXNlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BFLE9BQU8sRUFHTCxTQUFTLEVBQ1QsWUFBWSxFQUVaLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLFdBQVcsRUFDWCxTQUFTLEVBQ1QsZ0JBQWdCLEVBQ2hCLFVBQVUsRUFDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNHLE9BQU8sRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNuRCxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDL0UsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDckYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0s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RUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsU0FBUyxDQUFDO3NGQWlDM0YsU0FBUztzQkFBakIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ2tDLFFBQVE7c0JBQS9DLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBRTVCLGVBQWU7c0JBQXhCLE1BQU07Z0JBQ0csSUFBSTtzQkFBYixNQUFNO2dCQUdxRSxnQkFBZ0I7c0JBQTNGLFlBQVk7dUJBQUMsdUJBQXVCLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBRUUsc0JBQXNCO3NCQUFqRyxZQUFZO3VCQUFDLHVCQUF1QixFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUVULGlCQUFpQjtzQkFBakYsWUFBWTt1QkFBQyxzQkFBc0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBR1Isc0JBQXNCO3NCQUFwRSxTQUFTO3VCQUFDLGdCQUFnQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFFSixnQkFBZ0I7c0JBQXhELFNBQVM7dUJBQUMsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFZOUIsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBR3FDLFVBQVU7c0JBQXBELFNBQVM7dUJBQUMsWUFBWSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFzeW5jUGlwZSwgTmdJZiwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBib29sZWFuQXR0cmlidXRlLFxuICBmb3J3YXJkUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1zTW9kdWxlLCBOR19WQUxVRV9BQ0NFU1NPUiwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGdldCwgaW5jbHVkZXMsIGlzRXF1YWwgfSBmcm9tICdsb2Rhc2gvZnAnO1xuaW1wb3J0IHsgU3ViamVjdCwgZnJvbUV2ZW50IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyLCBtYXAsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgTWFya0ludmFsaWREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL21hcmstaW52YWxpZC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgU2VsZWN0RHJvcGRvd25EaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL3NlbGVjdC1kcm9wZG93bi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgU2VsZWN0ZWRPcHRpb25EaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL3NlbGVjdGVkLW9wdGlvbi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQVJST1dfTEVGVCwgQVJST1dfUklHSFQsIEJBQ0tTUEFDRSwgRVNDQVBFLCBUQUIgfSBmcm9tICcuLi8uLi9oZWxwZXJzL2tleS1jb2Rlcy5jb25zdGFudHMnO1xuaW1wb3J0IHsgZ2V0S2V5Ym9hcmROYXZpZ2F0aW9uRXZlbnRzIH0gZnJvbSAnLi4vLi4vaGVscGVycy9rZXlib2FyZC1uYXZpZ2F0aW9uLmhlbHBlcnMnO1xuaW1wb3J0IHsgQmFzZVNlbGVjdERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL21vZGVscy9iYXNlLXNlbGVjdC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgU2luZ2xlU2VsZWN0UGFkZGluZyB9IGZyb20gJy4uLy4uL21vZGVscy9zaW5nbGUtc2VsZWN0LXBhZGRpbmcuaW50ZXJmYWNlJztcbmltcG9ydCB7IEJhc2ljRHJvcGRvd25Db21wb25lbnQgfSBmcm9tICcuLi9iYXNpYy1kcm9wZG93bi9iYXNpYy1kcm9wZG93bi5jb21wb25lbnQnO1xuaW1wb3J0IHsgS2V5Ym9hcmRTZWxlY3RBY3Rpb24gfSBmcm9tICcuLi9rZXlib2FyZC1zZWxlY3QuZGlyZWN0aXZlJztcblxuZXhwb3J0IHR5cGUgU2luZ2xlU2VsZWN0U2l6ZSA9ICdkZWZhdWx0JyB8ICdzbWFsbCcgfCAnc2VsZWN0MicgfCAnbGFyZ2UnO1xuXG4vKipcbiAqICMjIFVzYWdlXG4gKlxuICogMS4gSW1wb3J0IHRoZSBgTHhGb3Jtc01vZHVsZWAgbW9kdWxlIGZyb20gYEBsZWFuaXgvY29tcG9uZW50c2AgaW4geW91ciBtb2R1bGUgd2hlcmUgeW91IHdhbnQgdG8gdXNlIHRoZSBjb21wb25lbnQuXG4gKlxuICogYGBgdHNcbiAqIGltcG9ydCB7IEx4Rm9ybXNNb2R1bGUgfSBmcm9tICdAbGVhbml4L2NvbXBvbmVudHMnO1xuICogYGBgXG4gKlxuICogMi4gVXNlIHRoZSBjb21wb25lbnQgaW4geW91ciB0ZW1wbGF0ZS5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbHgtc2luZ2xlLXNlbGVjdCcsXG4gIHRlbXBsYXRlVXJsOiAnc2luZ2xlLXNlbGVjdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWydzaW5nbGUtc2VsZWN0LmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTaW5nbGVTZWxlY3RDb21wb25lbnQpXG4gICAgfVxuICBdLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbTmdJZiwgTWFya0ludmFsaWREaXJlY3RpdmUsIE5nVGVtcGxhdGVPdXRsZXQsIEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBBc3luY1BpcGVdXG59KVxuZXhwb3J0IGNsYXNzIFNpbmdsZVNlbGVjdENvbXBvbmVudCBleHRlbmRzIEJhc2VTZWxlY3REaXJlY3RpdmUgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBwdWJsaWMgc3RhdGljIGNhbGN1bGF0ZU5ld0N1cnNvclBvc3Rpb25PbktleWJvYXJkTmF2aWdhdGlvbihjdXJzb3JQb3NpdGlvbjogbnVtYmVyLCBrZXlDb2RlOiBudW1iZXIpIHtcbiAgICBzd2l0Y2ggKGtleUNvZGUpIHtcbiAgICAgIGNhc2UgQVJST1dfTEVGVDpcbiAgICAgICAgY3Vyc29yUG9zaXRpb24tLTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIEFSUk9XX1JJR0hUOlxuICAgICAgICBjdXJzb3JQb3NpdGlvbisrO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gICAgcmV0dXJuIGN1cnNvclBvc2l0aW9uO1xuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBwdWJsaWMgc3RhdGljIGdldEtleWJvYXJkU2VsZWN0QWN0aW9uKGN1cnNvclBvc2l0aW9uOiBudW1iZXIsIGtleUNvZGU6IG51bWJlcik6IEtleWJvYXJkU2VsZWN0QWN0aW9uIHwgbnVsbCB7XG4gICAgaWYgKGN1cnNvclBvc2l0aW9uIDw9IC0xICYmIGtleUNvZGUgPT09IEFSUk9XX1JJR0hUKSB7XG4gICAgICByZXR1cm4gS2V5Ym9hcmRTZWxlY3RBY3Rpb24uTkVYVDtcbiAgICB9XG4gICAgaWYgKGN1cnNvclBvc2l0aW9uID09PSAtMSAmJiBrZXlDb2RlID09PSBBUlJPV19MRUZUKSB7XG4gICAgICByZXR1cm4gS2V5Ym9hcmRTZWxlY3RBY3Rpb24uTEFTVDtcbiAgICB9XG4gICAgaWYgKGN1cnNvclBvc2l0aW9uIDwgLTEgJiYga2V5Q29kZSA9PT0gQVJST1dfTEVGVCkge1xuICAgICAgcmV0dXJuIEtleWJvYXJkU2VsZWN0QWN0aW9uLlBSRVY7XG4gICAgfVxuICAgIGlmIChjdXJzb3JQb3NpdGlvbiA8PSAtMSAmJiBrZXlDb2RlID09PSBCQUNLU1BBQ0UpIHtcbiAgICAgIHJldHVybiBLZXlib2FyZFNlbGVjdEFjdGlvbi5FWEVDVVRFO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIEBJbnB1dCgpIHNlbGVjdGlvbjogYW55O1xuICBASW5wdXQoKSBzZWxlY3Rpb25CYWNrZ3JvdW5kOiAnd2hpdGUnIHwgJ2dyYXknID0gJ3doaXRlJztcbiAgQElucHV0KCkgc2l6ZTogU2luZ2xlU2VsZWN0U2l6ZSA9ICdkZWZhdWx0JztcbiAgQElucHV0KCkgcGFkZGluZz86IFNpbmdsZVNlbGVjdFBhZGRpbmcgPSAnZGVmYXVsdCc7XG4gIEBJbnB1dCgpIGlucHV0SWQ/OiBzdHJpbmc7XG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSByZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBPdXRwdXQoKSBzZWxlY3Rpb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIGJsdXIgPSBuZXcgRXZlbnRFbWl0dGVyPEZvY3VzRXZlbnQ+KCk7XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBAQ29udGVudENoaWxkKFNlbGVjdERyb3Bkb3duRGlyZWN0aXZlLCB7IHJlYWQ6IFRlbXBsYXRlUmVmLCBzdGF0aWM6IHRydWUgfSkgZXhwbGljaXREcm9wZG93bj86IFRlbXBsYXRlUmVmPGFueT47XG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgQENvbnRlbnRDaGlsZChTZWxlY3RlZE9wdGlvbkRpcmVjdGl2ZSwgeyByZWFkOiBUZW1wbGF0ZVJlZiwgc3RhdGljOiB0cnVlIH0pIGV4cGxpY2l0U2VsZWN0ZWRPcHRpb24/OiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAvKiogQGludGVybmFsICovXG4gIEBDb250ZW50Q2hpbGQoQmFzaWNEcm9wZG93bkNvbXBvbmVudCwgeyBzdGF0aWM6IGZhbHNlIH0pIHByaXZhdGUgZHJvcGRvd25Db21wb25lbnQ/OiBCYXNpY0Ryb3Bkb3duQ29tcG9uZW50O1xuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgQFZpZXdDaGlsZCgnc2VsZWN0ZWRPcHRpb24nLCB7IHN0YXRpYzogdHJ1ZSB9KSBpbXBsaWNpdFNlbGVjdGVkT3B0aW9uITogVGVtcGxhdGVSZWY8YW55PjtcbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBAVmlld0NoaWxkKCdkcm9wZG93bicsIHsgc3RhdGljOiB0cnVlIH0pIGltcGxpY2l0RHJvcGRvd24hOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgZ2V0IHNlbGVjdGVkT3B0aW9uVG1wbCgpIHtcbiAgICByZXR1cm4gdGhpcy5leHBsaWNpdFNlbGVjdGVkT3B0aW9uIHx8IHRoaXMuaW1wbGljaXRTZWxlY3RlZE9wdGlvbjtcbiAgfVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgZ2V0IGRyb3Bkb3duVG1wbCgpIHtcbiAgICByZXR1cm4gdGhpcy5leHBsaWNpdERyb3Bkb3duIHx8IHRoaXMuaW1wbGljaXREcm9wZG93bjtcbiAgfVxuXG4gIEBJbnB1dCgpIGFsbG93Q2xlYXIgPSB0cnVlO1xuICBASW5wdXQoKSB0YWJJbmRleDogbnVtYmVyID0gMDtcbiAgQElucHV0KCkgbWFya0ludmFsaWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiogQGludGVybmFsICovXG4gIEBWaWV3Q2hpbGQoJ3F1ZXJ5SW5wdXQnLCB7IHN0YXRpYzogdHJ1ZSB9KSBxdWVyeUlucHV0ITogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcblxuICAvKiogQGludGVybmFsICovXG4gIG92ZXJyaWRlIHJlYWRvbmx5IGRlc3Ryb3llZCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAvKiogQGludGVybmFsICovXG4gIGlzSW5wdXRGb2N1c2VkVmlhVGFiID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBnZXQgY3Vyc29yU3R5bGUoKSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybiAnZGVmYXVsdCc7XG4gICAgfSBlbHNlIGlmICh0aGlzLmFsbG93UXVlcnkpIHtcbiAgICAgIHJldHVybiAndGV4dCc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAncG9pbnRlcic7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICByZXNldElucHV0KCkge1xuICAgIHRoaXMucXVlcnlDb250cm9sLnJlc2V0KCcnLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIGZvY3VzKCkge1xuICAgIHRoaXMucXVlcnlJbnB1dC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIGZvY3VzQW5kT3BlbigpIHtcbiAgICB0aGlzLnF1ZXJ5SW5wdXQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIHRoaXMub3Blbi5uZXh0KHRydWUpO1xuICB9XG5cbiAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKSB7XG4gICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICB0aGlzLmRlc3Ryb3llZCQubmV4dCgpO1xuICB9XG5cbiAgb3ZlcnJpZGUgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHN1cGVyLm5nQWZ0ZXJWaWV3SW5pdCgpO1xuICAgIHRoaXMub3BlblxuICAgICAgLnBpcGUoXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgIGZpbHRlcigob3BlbikgPT4gb3BlbiAmJiAhIXRoaXMuZHJvcGRvd25Db21wb25lbnQpLFxuICAgICAgICBtYXAoKCkgPT4gdGhpcy5zZWxlY3Rpb24pLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoc2VsZWN0aW9uKSA9PiB7XG4gICAgICAgIGlmIChzZWxlY3Rpb24pIHtcbiAgICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuZGV0ZXJtaW5lSGlnaGxpZ2h0SW5kZXgodGhpcy5kcm9wZG93bkNvbXBvbmVudCEub3B0aW9ucywgc2VsZWN0aW9uLCB0aGlzLmRyb3Bkb3duQ29tcG9uZW50IS5pdGVtS2V5KTtcbiAgICAgICAgICBpZiAoaW5kZXggPiAtMSkge1xuICAgICAgICAgICAgdGhpcy5kcm9wZG93bkNvbXBvbmVudCEuc2VsZWN0KGluZGV4KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RGaXJzdE9wdGlvbigpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdEZpcnN0T3B0aW9uKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgLy8ga2V5Ym9hcmQgZXZlbnQgaGFuZGxpbmdcbiAgICBjb25zdCBzb3VyY2VFbGVtZW50ID0gdGhpcy5xdWVyeUlucHV0Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgLy8gaGFuZGxlIGtleWJvYXJkIG5hdmlnYXRpb24gZm9yIHRoZSBzZWxlY3Rpb25cbiAgICBmcm9tRXZlbnQ8S2V5Ym9hcmRFdmVudD4oc291cmNlRWxlbWVudCwgJ2tleWRvd24nKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgoZXZlbnQpID0+IHRoaXMubWFwVG9FdmVudFNldChldmVudCwgc291cmNlRWxlbWVudCwgdGhpcy52aXJ0dWFsQ3Vyc29yUG9zaXRpb24pKSxcbiAgICAgICAgdGFwKChldmVudFNldCkgPT4ge1xuICAgICAgICAgIGlmICghdGhpcy5hbGxvd1F1ZXJ5ICYmIGV2ZW50U2V0LmV2ZW50LmtleUNvZGUgIT09IEJBQ0tTUEFDRSkge1xuICAgICAgICAgICAgLy8gYWRkaXRpb25hbCBjaGVjayBmb3IgZXZlbi5jb2RlIGZvciB1c2VyRXZlbnQgQVBJIGNvbXBhdGliaWxpdHlcbiAgICAgICAgICAgIGlmIChldmVudFNldC5ldmVudC5rZXlDb2RlICE9PSBUQUIgJiYgZXZlbnRTZXQuZXZlbnQuY29kZSAhPT0gJ1RhYicpIHtcbiAgICAgICAgICAgICAgLy8gaWYgcXVlcnlpbmcgaXMgZGlzYWJsZWQsIG9ubHkgdGhlIHRhYiBrZXkgcHJlc3MgZXZlbnQgd2lsbCBiZSBwcm9wYWdhdGVkLCBzbyB0aGF0IHlvdSBjYW4gc3RpbGwgZGVmb2N1cy5cbiAgICAgICAgICAgICAgZXZlbnRTZXQuZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgZXZlbnRTZXQudmlydHVhbEN1cnNvclBvc2l0aW9uID09PSAwICYmXG4gICAgICAgICAgICBldmVudFNldC5pbnB1dEN1cnNvclBvc2l0aW9uID09PSAwICYmXG4gICAgICAgICAgICBldmVudFNldC5ldmVudC5rZXlDb2RlID09PSBCQUNLU1BBQ0UgJiZcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uICYmXG4gICAgICAgICAgICB0aGlzLmFsbG93Q2xlYXJcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMucmVtb3ZlU2VsZWN0aW9uKCk7XG4gICAgICAgICAgICBldmVudFNldC5pbnB1dEN1cnNvclBvc2l0aW9uID0gdW5kZWZpbmVkOyAvLyBzZXQgdG8gbnVsbCB0byBwcmV2ZW50IGNvbnRpbnVpbmcgaW4gdGhlIHN0cmVhbVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAodHlwZW9mIGV2ZW50U2V0LmlucHV0Q3Vyc29yUG9zaXRpb24gPT09ICdudW1iZXInICYmIGV2ZW50U2V0LmlucHV0Q3Vyc29yUG9zaXRpb24gPiAwKSB7XG4gICAgICAgICAgICB0aGlzLnZpcnR1YWxDdXJzb3JQb3NpdGlvbiA9IDA7XG4gICAgICAgICAgfSBlbHNlIGlmIChldmVudFNldC52aXJ0dWFsQ3Vyc29yUG9zaXRpb24gPT09IC0xICYmIGV2ZW50U2V0LmV2ZW50LmtleUNvZGUgPT09IEFSUk9XX1JJR0hUKSB7XG4gICAgICAgICAgICBldmVudFNldC5ldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb25LZXlib2FyZFNlbGVjdEFjdGlvbiQubmV4dChLZXlib2FyZFNlbGVjdEFjdGlvbi5VTlNFTEVDVCk7XG4gICAgICAgICAgICB0aGlzLnZpcnR1YWxDdXJzb3JQb3NpdGlvbiA9IDA7XG4gICAgICAgICAgICBldmVudFNldC5pbnB1dEN1cnNvclBvc2l0aW9uID0gdW5kZWZpbmVkOyAvLyBzZXQgdG8gbnVsbCB0byBwcmV2ZW50IGNvbnRpbnVpbmcgaW4gdGhlIHN0cmVhbVxuICAgICAgICAgIH1cbiAgICAgICAgfSksXG4gICAgICAgIGZpbHRlcigoZXZlbnRTZXQpID0+IHRoaXMuYWxsb3dRdWVyeSAmJiBldmVudFNldC5pbnB1dEN1cnNvclBvc2l0aW9uID09PSAwKSxcbiAgICAgICAgbWFwKChldmVudFNldCkgPT4gZXZlbnRTZXQuZXZlbnQpLFxuICAgICAgICBmaWx0ZXIoKGV2ZW50KSA9PiBpbmNsdWRlcyhldmVudC5rZXlDb2RlLCBbQVJST1dfUklHSFQsIEFSUk9XX0xFRlQsIEJBQ0tTUEFDRV0pKSxcbiAgICAgICAgbWFwKChldmVudCkgPT4ge1xuICAgICAgICAgIHRoaXMudmlydHVhbEN1cnNvclBvc2l0aW9uID0gU2luZ2xlU2VsZWN0Q29tcG9uZW50LmNhbGN1bGF0ZU5ld0N1cnNvclBvc3Rpb25PbktleWJvYXJkTmF2aWdhdGlvbihcbiAgICAgICAgICAgIHRoaXMudmlydHVhbEN1cnNvclBvc2l0aW9uLFxuICAgICAgICAgICAgZXZlbnQua2V5Q29kZVxuICAgICAgICAgICk7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGN1cnNvclBvc2l0aW9uOiB0aGlzLnZpcnR1YWxDdXJzb3JQb3NpdGlvbixcbiAgICAgICAgICAgIGV2ZW50XG4gICAgICAgICAgfTtcbiAgICAgICAgfSksXG4gICAgICAgIG1hcCgocG9zaXRpb25TZXQpID0+IHtcbiAgICAgICAgICBjb25zdCBhY3Rpb24gPSBTaW5nbGVTZWxlY3RDb21wb25lbnQuZ2V0S2V5Ym9hcmRTZWxlY3RBY3Rpb24ocG9zaXRpb25TZXQuY3Vyc29yUG9zaXRpb24sIHBvc2l0aW9uU2V0LmV2ZW50LmtleUNvZGUpO1xuICAgICAgICAgIGlmIChhY3Rpb24gPT09IEtleWJvYXJkU2VsZWN0QWN0aW9uLk5FWFQpIHtcbiAgICAgICAgICAgIC8vIHByZXZlbnQgY3Vyc29yIGZyb20gbW92aW5nIGluIHRoZSBpbnB1dCBmaWVsZCwgd2hpbGUgd2UgYXJlIHN0aWxsIGluIHRoZSBzZWxlY3Rpb24gaXRlbXNcbiAgICAgICAgICAgIHBvc2l0aW9uU2V0LmV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBhY3Rpb247XG4gICAgICAgIH0pLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSh0aGlzLnNlbGVjdGlvbktleWJvYXJkU2VsZWN0QWN0aW9uJCk7XG5cbiAgICBjb25zdCBrZXlib2FyZEV2ZW50cyA9IGdldEtleWJvYXJkTmF2aWdhdGlvbkV2ZW50cyhzb3VyY2VFbGVtZW50LCB0aGlzLmRlc3Ryb3llZCQpO1xuXG4gICAga2V5Ym9hcmRFdmVudHMudmVydGljYWxOYXZpZ2F0aW9uJC5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH0pO1xuXG4gICAga2V5Ym9hcmRFdmVudHMuY2xvc2UkLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcbiAgICAgIGlmIChldmVudC5rZXlDb2RlID09PSBFU0NBUEUgJiYgdGhpcy5kcm9wZG93bk9wZW4pIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG4gICAgICB9XG4gICAgICB0aGlzLm9wZW4ubmV4dChmYWxzZSk7XG4gICAgfSk7XG5cbiAgICBrZXlib2FyZEV2ZW50cy5kcm9wZG93bktleWJvYXJkRXZlbnQkLnN1YnNjcmliZSh0aGlzLm9wdGlvbnNLZXlib2FyZFNlbGVjdEFjdGlvbiQpO1xuXG4gICAga2V5Ym9hcmRFdmVudHMuZW50ZXIkLnN1YnNjcmliZSgoKSA9PiB0aGlzLm9wZW4ubmV4dCghdGhpcy5kcm9wZG93bk9wZW4pKTtcbiAgICBrZXlib2FyZEV2ZW50cy5zcGFjZSQucGlwZShmaWx0ZXIoKCkgPT4gIXRoaXMuYWxsb3dRdWVyeSkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5kcm9wZG93bk9wZW4pIHtcbiAgICAgICAgdGhpcy5vcHRpb25zS2V5Ym9hcmRTZWxlY3RBY3Rpb24kLm5leHQoS2V5Ym9hcmRTZWxlY3RBY3Rpb24uRVhFQ1VURSk7XG4gICAgICB9XG4gICAgICB0aGlzLm9wZW4ubmV4dCghdGhpcy5kcm9wZG93bk9wZW4pO1xuICAgIH0pO1xuXG4gICAga2V5Ym9hcmRFdmVudHMub3Blbk9uQXJyb3dEb3duJC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5vcGVuLm5leHQodHJ1ZSkpO1xuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBzZWxlY3RPcHRpb24ob3B0aW9uOiBhbnkpIHtcbiAgICB0aGlzLnNlbGVjdGlvbiA9IG9wdGlvbjtcblxuICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlLmVtaXQob3B0aW9uKTtcbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZShvcHRpb24pO1xuXG4gICAgdGhpcy5yZXNldFNlbGVjdFN0YXRlKCk7XG5cbiAgICAvLyBUaGlzIHRpbWVvdXQgbWFrZXMgc3VyZSB0aGF0IHRoZSBkcm9wZG93biB3aWxsIGJlIGNsb3NlZCBhdCB0aGUgZW5kXG4gICAgLy8gb2YgYWxsIHRoZSBjYWxsYmFja3MgaW4gdGhlIG9wZW4gc3Vic2NyaXB0aW9ucy5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMub3Blbi5uZXh0KGZhbHNlKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgcmVtb3ZlU2VsZWN0aW9uKCkge1xuICAgIHRoaXMuc2VsZWN0aW9uID0gbnVsbDtcbiAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuXG4gICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2UuZW1pdCh0aGlzLnNlbGVjdGlvbik7XG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UodGhpcy5zZWxlY3Rpb24pO1xuXG4gICAgdGhpcy5yZXNldFNlbGVjdFN0YXRlKCk7XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIHByb3BhZ2F0ZUNoYW5nZShfdmFsdWU6IGFueSkge31cblxuICAvKiogQGludGVybmFsICovXG4gIHdyaXRlVmFsdWUobmV3U2VsZWN0aW9uOiBhbnkpIHtcbiAgICB0aGlzLnNlbGVjdGlvbiA9IG5ld1NlbGVjdGlvbjtcbiAgfVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKSB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xuICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlID0gZm47XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKF9mbjogYW55KSB7fVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgZm9jdXNlZFZpYVRhYigpIHtcbiAgICB0aGlzLmlzSW5wdXRGb2N1c2VkVmlhVGFiID0gdHJ1ZTtcbiAgfVxuXG4gIHByaXZhdGUgZGV0ZXJtaW5lSGlnaGxpZ2h0SW5kZXgob3B0aW9uczogYW55W10sIHNlbGVjdGlvbjogYW55LCBpdGVtS2V5Pzogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGl0ZW1LZXlcbiAgICAgID8gb3B0aW9ucy5maW5kSW5kZXgoKG9wdGlvbikgPT4gaXNFcXVhbChnZXQoaXRlbUtleSwgc2VsZWN0aW9uKSwgZ2V0KGl0ZW1LZXksIG9wdGlvbikpIHx8IGlzRXF1YWwoc2VsZWN0aW9uLCBnZXQoaXRlbUtleSwgb3B0aW9uKSkpXG4gICAgICA6IG9wdGlvbnMuZmluZEluZGV4KChvcHRpb24pID0+IGlzRXF1YWwoc2VsZWN0aW9uLCBvcHRpb24pKTtcbiAgfVxufVxuIiwiPGRpdiAqbmdJZj1cImRyb3Bkb3duT3BlblwiIGNsYXNzPVwiYmFja2Ryb3BcIiAoY2xpY2spPVwiaGFuZGxlQmFja2Ryb3BDbGljaygkZXZlbnQpXCI+PC9kaXY+XG48ZGl2XG4gIFtseE1hcmtJbnZhbGlkXT1cIm1hcmtJbnZhbGlkXCJcbiAgY2xhc3M9XCJzZWxlY3RDb250YWluZXIge3sgcGFkZGluZyB9fVBhZGRpbmdcIlxuICBbY2xhc3Mub3Blbl09XCJkcm9wZG93bk9wZW5cIlxuICBbY2xhc3MudG9wXT1cIihkcm9wZG93bkRpcmVjdGlvbiQgfCBhc3luYykgPT09ICdUT1AnXCJcbiAgW2NsYXNzLmJvdHRvbV09XCIoZHJvcGRvd25EaXJlY3Rpb24kIHwgYXN5bmMpID09PSAnQk9UVE9NJ1wiXG4gIFtjbGFzcy5kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gIFtjbGFzcy5ncmF5QmFja2dyb3VuZF09XCJzZWxlY3Rpb25CYWNrZ3JvdW5kID09PSAnZ3JheSdcIlxuICBbY2xhc3MuZGVmYXVsdFNpemVdPVwic2l6ZSA9PT0gJ2RlZmF1bHQnXCJcbiAgW2NsYXNzLnNtYWxsU2l6ZV09XCJzaXplID09PSAnc21hbGwnXCJcbiAgW2NsYXNzLnNlbGVjdDJTaXplXT1cInNpemUgPT09ICdzZWxlY3QyJ1wiXG4gIFtjbGFzcy5sYXJnZVNpemVdPVwic2l6ZSA9PT0gJ2xhcmdlJ1wiXG4gIFtzdHlsZS5jdXJzb3JdPVwiY3Vyc29yU3R5bGVcIlxuICBbY2xhc3MuZm9jdXNlZF09XCJpc0lucHV0Rm9jdXNlZFwiXG4gIFtjbGFzcy5mb2N1c2VkVmlzaWJsZV09XCJpc0lucHV0Rm9jdXNlZFZpYVRhYlwiXG4gIChjbGljayk9XCJoYW5kbGVDbGljaygkZXZlbnQudGFyZ2V0ID09PSB0b2dnbGUpXCJcbj5cbiAgPGRpdiBjbGFzcz1cInNlbGVjdGlvbkNvbnRhaW5lclwiPlxuICAgIDxkaXYgY2xhc3M9XCJpbnB1dENvbnRhaW5lclwiPlxuICAgICAgPGRpdiAqbmdJZj1cIiFzZWxlY3Rpb24gJiYgc2VsZWN0aW9uICE9PSAwICYmICFxdWVyeUlucHV0Py52YWx1ZVwiIGNsYXNzPVwicGxhY2Vob2xkZXJcIiBbYXR0ci50aXRsZV09XCJwbGFjZWhvbGRlclwiPlxuICAgICAgICB7eyBwbGFjZWhvbGRlciB9fVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwiIWFsbG93UXVlcnkgfHwgIXF1ZXJ5SW5wdXQ/LnZhbHVlXCJcbiAgICAgICAgY2xhc3M9XCJzZWxlY3Rpb25cIlxuICAgICAgICBbY2xhc3MubG93ZXJPcGFjaXR5XT1cImFsbG93UXVlcnkgJiYgIXF1ZXJ5SW5wdXQ/LnZhbHVlICYmIGRyb3Bkb3duT3BlblwiXG4gICAgICAgIFtjbGFzcy5saWdodGdyYXlDb2xvcl09XCIhYWxsb3dRdWVyeSAmJiBkcm9wZG93bk9wZW5cIlxuICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyBmb2N1cygpXCJcbiAgICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInNlbGVjdGVkT3B0aW9uVG1wbFwiIC8+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxpbnB1dFxuICAgICAgICAjcXVlcnlJbnB1dFxuICAgICAgICBjbGFzcz1cInF1ZXJ5SW5wdXRcIlxuICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgIFthdHRyLmlkXT1cImlucHV0SWRcIlxuICAgICAgICBbYXR0ci5yZXF1aXJlZF09XCJyZXF1aXJlZCA/ICd0cnVlJyA6IG51bGxcIlxuICAgICAgICBbY2xhc3MuaXNIaWRkZW5dPVwiIWFsbG93UXVlcnlcIlxuICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCIkZXZlbnQucHJldmVudERlZmF1bHQoKVwiXG4gICAgICAgIChmb2N1cyk9XCJpc0lucHV0Rm9jdXNlZCA9IHRydWVcIlxuICAgICAgICAoYmx1cik9XCJpc0lucHV0Rm9jdXNlZCA9IGZhbHNlOyBpc0lucHV0Rm9jdXNlZFZpYVRhYiA9IGZhbHNlOyBibHVyLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgIChrZXl1cC50YWIpPVwiZm9jdXNlZFZpYVRhYigpXCJcbiAgICAgICAgKGtleXVwLnNoaWZ0LnRhYik9XCJmb2N1c2VkVmlhVGFiKClcIlxuICAgICAgICBbdGFiSW5kZXhdPVwiZGlzYWJsZWQgPyAtMSA6IHRhYkluZGV4XCJcbiAgICAgICAgW2Zvcm1Db250cm9sXT1cInF1ZXJ5Q29udHJvbFwiXG4gICAgICAgIFtyZWFkT25seV09XCIhYWxsb3dRdWVyeVwiXG4gICAgICAvPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJpY29uQ29udGFpbmVyXCI+XG4gICAgICA8aSAqbmdJZj1cIihzZWxlY3Rpb24gfHwgc2VsZWN0aW9uID09PSAwKSAmJiBhbGxvd0NsZWFyICYmICFkaXNhYmxlZFwiIGNsYXNzPVwiZmFyIGZhLXRpbWVzXCIgKGNsaWNrKT1cInJlbW92ZVNlbGVjdGlvbigpXCI+PC9pPlxuICAgICAgPGkgI3RvZ2dsZSBjbGFzcz1cImZhcyBmYS1hbmdsZS1kb3duXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIm9wdGlvbnNDb250YWluZXJcIiAjb3B0aW9uc0NvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZHJvcGRvd25PcGVuXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZHJvcGRvd25UbXBsXCIgLz5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNzZWxlY3RlZE9wdGlvbj5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiLnNlbGVjdGVkT3B0aW9uXCIgLz5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI2Ryb3Bkb3duPlxuICA8bmctY29udGVudCBzZWxlY3Q9XCIuZHJvcGRvd25Db21wb25lbnRcIiAvPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
290
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luZ2xlLXNlbGVjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9mb3Jtcy11aS9jb21wb25lbnRzL3NpbmdsZS1zZWxlY3Qvc2luZ2xlLXNlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9mb3Jtcy11aS9jb21wb25lbnRzL3NpbmdsZS1zZWxlY3Qvc2luZ2xlLXNlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BFLE9BQU8sRUFHTCxTQUFTLEVBQ1QsWUFBWSxFQUVaLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLFdBQVcsRUFDWCxTQUFTLEVBQ1QsZ0JBQWdCLEVBQ2hCLFVBQVUsRUFDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNHLE9BQU8sRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNuRCxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDL0UsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDckYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDckYsT0FBTyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNwRyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUN4RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUV6RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNwRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7O0FBa0JwRSxNQUFNLE9BQU8scUJBQXNCLFNBQVEsbUJBQW1CO0lBQzVELGdCQUFnQjtJQUNULE1BQU0sQ0FBQyw2Q0FBNkMsQ0FBQyxjQUFzQixFQUFFLE9BQWU7UUFDakcsUUFBUSxPQUFPLEVBQUUsQ0FBQztZQUNoQixLQUFLLFVBQVU7Z0JBQ2IsY0FBYyxFQUFFLENBQUM7Z0JBQ2pCLE1BQU07WUFDUixLQUFLLFdBQVc7Z0JBQ2QsY0FBYyxFQUFFLENBQUM7Z0JBQ2pCLE1BQU07UUFDVixDQUFDO1FBQ0QsT0FBTyxjQUFjLENBQUM7SUFDeEIsQ0FBQztJQUVELGdCQUFnQjtJQUNULE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxjQUFzQixFQUFFLE9BQWU7UUFDM0UsSUFBSSxjQUFjLElBQUksQ0FBQyxDQUFDLElBQUksT0FBTyxLQUFLLFdBQVcsRUFBRSxDQUFDO1lBQ3BELE9BQU8sb0JBQW9CLENBQUMsSUFBSSxDQUFDO1FBQ25DLENBQUM7UUFDRCxJQUFJLGNBQWMsS0FBSyxDQUFDLENBQUMsSUFBSSxPQUFPLEtBQUssVUFBVSxFQUFFLENBQUM7WUFDcEQsT0FBTyxvQkFBb0IsQ0FBQyxJQUFJLENBQUM7UUFDbkMsQ0FBQztRQUNELElBQUksY0FBYyxHQUFHLENBQUMsQ0FBQyxJQUFJLE9BQU8sS0FBSyxVQUFVLEVBQUUsQ0FBQztZQUNsRCxPQUFPLG9CQUFvQixDQUFDLElBQUksQ0FBQztRQUNuQyxDQUFDO1FBQ0QsSUFBSSxjQUFjLElBQUksQ0FBQyxDQUFDLElBQUksT0FBTyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ2xELE9BQU8sb0JBQW9CLENBQUMsT0FBTyxDQUFDO1FBQ3RDLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUF3QkQsZ0JBQWdCO0lBQ2hCLElBQUksa0JBQWtCO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixJQUFJLElBQUksQ0FBQyxzQkFBc0IsQ0FBQztJQUNwRSxDQUFDO0lBRUQsZ0JBQWdCO0lBQ2hCLElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztJQUN4RCxDQUFDO0lBY0QsWUFBb0IsRUFBcUI7UUFDdkMsS0FBSyxFQUFFLENBQUM7UUFEVSxPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQTNDaEMsd0JBQW1CLEdBQXFCLE9BQU8sQ0FBQztRQUNoRCxTQUFJLEdBQXFCLFNBQVMsQ0FBQztRQUNuQyxZQUFPLEdBQXlCLFNBQVMsQ0FBQztRQUVYLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFFeEQsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQzFDLFNBQUksR0FBRyxJQUFJLFlBQVksRUFBYyxDQUFDO1FBd0J2QyxlQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLGFBQVEsR0FBVyxDQUFDLENBQUM7UUFDckIsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFLdEMsZ0JBQWdCO1FBQ0UsZUFBVSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDbkQsZ0JBQWdCO1FBQ2hCLHlCQUFvQixHQUFHLEtBQUssQ0FBQztJQUk3QixDQUFDO0lBRUQsZ0JBQWdCO0lBQ2hCLElBQUksV0FBVztRQUNiLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2xCLE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7YUFBTSxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUMzQixPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7SUFDSCxDQUFDO0lBRUQsZ0JBQWdCO0lBQ2hCLFVBQVU7UUFDUixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsZ0JBQWdCO0lBQ2hCLEtBQUs7UUFDSCxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRUQsZ0JBQWdCO0lBQ2hCLFlBQVk7UUFDVixJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN0QyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2QixDQUFDO0lBRVEsV0FBVztRQUNsQixLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRVEsZUFBZTtRQUN0QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLElBQUk7YUFDTixJQUFJLENBQ0gsb0JBQW9CLEVBQUUsRUFDdEIsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUNsRCxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUN6QixTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUMzQjthQUNBLFNBQVMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQ3ZCLElBQUksU0FBUyxFQUFFLENBQUM7Z0JBQ2QsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxpQkFBa0IsQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxpQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDeEgsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQztvQkFDZixJQUFJLENBQUMsaUJBQWtCLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN4QyxDQUFDO3FCQUFNLENBQUM7b0JBQ04sSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7Z0JBQzNCLENBQUM7WUFDSCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDM0IsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUwsMEJBQTBCO1FBQzFCLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDO1FBQ3BELCtDQUErQztRQUMvQyxTQUFTLENBQWdCLGFBQWEsRUFBRSxTQUFTLENBQUM7YUFDL0MsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsYUFBYSxFQUFFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLEVBQ3BGLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ2YsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLElBQUksUUFBUSxDQUFDLEtBQUssQ0FBQyxPQUFPLEtBQUssU0FBUyxFQUFFLENBQUM7Z0JBQzdELGlFQUFpRTtnQkFDakUsSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLE9BQU8sS0FBSyxHQUFHLElBQUksUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssS0FBSyxFQUFFLENBQUM7b0JBQ3BFLDJHQUEyRztvQkFDM0csUUFBUSxDQUFDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDbEMsQ0FBQztnQkFDRCxPQUFPO1lBQ1QsQ0FBQztZQUNELElBQ0UsUUFBUSxDQUFDLHFCQUFxQixLQUFLLENBQUM7Z0JBQ3BDLFFBQVEsQ0FBQyxtQkFBbUIsS0FBSyxDQUFDO2dCQUNsQyxRQUFRLENBQUMsS0FBSyxDQUFDLE9BQU8sS0FBSyxTQUFTO2dCQUNwQyxJQUFJLENBQUMsU0FBUztnQkFDZCxJQUFJLENBQUMsVUFBVSxFQUNmLENBQUM7Z0JBQ0QsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO2dCQUN2QixRQUFRLENBQUMsbUJBQW1CLEdBQUcsU0FBUyxDQUFDLENBQUMsa0RBQWtEO1lBQzlGLENBQUM7WUFDRCxJQUFJLE9BQU8sUUFBUSxDQUFDLG1CQUFtQixLQUFLLFFBQVEsSUFBSSxRQUFRLENBQUMsbUJBQW1CLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ3pGLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxDQUFDLENBQUM7WUFDakMsQ0FBQztpQkFBTSxJQUFJLFFBQVEsQ0FBQyxxQkFBcUIsS0FBSyxDQUFDLENBQUMsSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLE9BQU8sS0FBSyxXQUFXLEVBQUUsQ0FBQztnQkFDM0YsUUFBUSxDQUFDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDaEMsSUFBSSxDQUFDLDhCQUE4QixDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDeEUsSUFBSSxDQUFDLHFCQUFxQixHQUFHLENBQUMsQ0FBQztnQkFDL0IsUUFBUSxDQUFDLG1CQUFtQixHQUFHLFNBQVMsQ0FBQyxDQUFDLGtEQUFrRDtZQUM5RixDQUFDO1FBQ0gsQ0FBQyxDQUFDLEVBQ0YsTUFBTSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLFFBQVEsQ0FBQyxtQkFBbUIsS0FBSyxDQUFDLENBQUMsRUFDM0UsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQ2pDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxXQUFXLEVBQUUsVUFBVSxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFDaEYsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDWixJQUFJLENBQUMscUJBQXFCLEdBQUcscUJBQXFCLENBQUMsNkNBQTZDLENBQzlGLElBQUksQ0FBQyxxQkFBcUIsRUFDMUIsS0FBSyxDQUFDLE9BQU8sQ0FDZCxDQUFDO1lBQ0YsT0FBTztnQkFDTCxjQUFjLEVBQUUsSUFBSSxDQUFDLHFCQUFxQjtnQkFDMUMsS0FBSzthQUNOLENBQUM7UUFDSixDQUFDLENBQUMsRUFDRixHQUFHLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRTtZQUNsQixNQUFNLE1BQU0sR0FBRyxxQkFBcUIsQ0FBQyx1QkFBdUIsQ0FBQyxXQUFXLENBQUMsY0FBYyxFQUFFLFdBQVcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDcEgsSUFBSSxNQUFNLEtBQUssb0JBQW9CLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ3pDLDJGQUEyRjtnQkFDM0YsV0FBVyxDQUFDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNyQyxDQUFDO1lBQ0QsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQyxDQUFDLEVBQ0YsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FDM0I7YUFDQSxTQUFTLENBQUMsSUFBSSxDQUFDLDhCQUE4QixDQUFDLENBQUM7UUFFbEQsTUFBTSxjQUFjLEdBQUcsMkJBQTJCLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUVuRixjQUFjLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDckQsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3pCLENBQUMsQ0FBQyxDQUFDO1FBRUgsY0FBYyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUN4QyxJQUFJLEtBQUssQ0FBQyxPQUFPLEtBQUssTUFBTSxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztnQkFDbEQsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO2dCQUN2QixLQUFLLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztZQUNuQyxDQUFDO1lBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEIsQ0FBQyxDQUFDLENBQUM7UUFFSCxjQUFjLENBQUMsc0JBQXNCLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO1FBRW5GLGNBQWMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7UUFDMUUsY0FBYyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUN4RSxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztnQkFDdEIsSUFBSSxDQUFDLDRCQUE0QixDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN2RSxDQUFDO1lBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDckMsQ0FBQyxDQUFDLENBQUM7UUFFSCxjQUFjLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVELGdCQUFnQjtJQUNoQixZQUFZLENBQUMsTUFBVztRQUN0QixJQUFJLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQztRQUV4QixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTdCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBRXhCLHNFQUFzRTtRQUN0RSxrREFBa0Q7UUFDbEQsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGdCQUFnQjtJQUNoQixlQUFlO1FBQ2IsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdEIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBRXhCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUVyQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsZ0JBQWdCO0lBQ2hCLGVBQWUsQ0FBQyxNQUFXLElBQUcsQ0FBQztJQUUvQixnQkFBZ0I7SUFDaEIsVUFBVSxDQUFDLFlBQWlCO1FBQzFCLElBQUksQ0FBQyxTQUFTLEdBQUcsWUFBWSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxnQkFBZ0I7SUFDaEIsZ0JBQWdCLENBQUMsVUFBbUI7UUFDbEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7SUFDN0IsQ0FBQztJQUVELGdCQUFnQjtJQUNoQixnQkFBZ0IsQ0FBQyxFQUFPO1FBQ3RCLElBQUksQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxnQkFBZ0I7SUFDaEIsaUJBQWlCLENBQUMsR0FBUSxJQUFHLENBQUM7SUFFOUIsZ0JBQWdCO0lBQ2hCLGFBQWE7UUFDWCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDO0lBQ25DLENBQUM7SUFFTyx1QkFBdUIsQ0FBQyxPQUFjLEVBQUUsU0FBYyxFQUFFLE9BQWdCO1FBQzlFLE9BQU8sT0FBTztZQUNaLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsRUFBRSxHQUFHLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDLElBQUksT0FBTyxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7WUFDbkksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNoRSxDQUFDOzhHQXJSVSxxQkFBcUI7a0dBQXJCLHFCQUFxQiwyTkFvQ1osZ0JBQWdCLDJKQTlDekI7WUFDVDtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixLQUFLLEVBQUUsSUFBSTtnQkFDWCxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHFCQUFxQixDQUFDO2FBQ3JEO1NBQ0Ysd0VBOENhLHVCQUF1QiwyQkFBVSxXQUFXLG9GQUU1Qyx1QkFBdUIsMkJBQVUsV0FBVywrRUFFNUMsc0JBQXNCLHFhQzVGdEMsNG9GQW1FQSwyK0dEdkJZLElBQUksNkZBQUUsb0JBQW9CLHVGQUFFLGdCQUFnQixtSkFBRSxXQUFXLHNaQUFFLG1CQUFtQiw2TUFBRSxTQUFTOzsyRkFFeEYscUJBQXFCO2tCQWRqQyxTQUFTOytCQUNFLGtCQUFrQixhQUdqQjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixLQUFLLEVBQUUsSUFBSTs0QkFDWCxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxzQkFBc0IsQ0FBQzt5QkFDckQ7cUJBQ0YsY0FDVyxJQUFJLFdBQ1AsQ0FBQyxJQUFJLEVBQUUsb0JBQW9CLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLFNBQVMsQ0FBQztzRkFpQzNGLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNrQyxRQUFRO3NCQUEvQyxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUU1QixlQUFlO3NCQUF4QixNQUFNO2dCQUNHLElBQUk7c0JBQWIsTUFBTTtnQkFHcUUsZ0JBQWdCO3NCQUEzRixZQUFZO3VCQUFDLHVCQUF1QixFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUVFLHNCQUFzQjtzQkFBakcsWUFBWTt1QkFBQyx1QkFBdUIsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFFVCxpQkFBaUI7c0JBQWpGLFlBQVk7dUJBQUMsc0JBQXNCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUdSLHNCQUFzQjtzQkFBcEUsU0FBUzt1QkFBQyxnQkFBZ0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBRUosZ0JBQWdCO3NCQUF4RCxTQUFTO3VCQUFDLFVBQVUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBWTlCLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUdxQyxVQUFVO3NCQUFwRCxTQUFTO3VCQUFDLFlBQVksRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3luY1BpcGUsIE5nSWYsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbiAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgZm9yd2FyZFJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3Jtc01vZHVsZSwgTkdfVkFMVUVfQUNDRVNTT1IsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBnZXQsIGluY2x1ZGVzLCBpc0VxdWFsIH0gZnJvbSAnbG9kYXNoL2ZwJztcbmltcG9ydCB7IFN1YmplY3QsIGZyb21FdmVudCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgbWFwLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IE1hcmtJbnZhbGlkRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9tYXJrLWludmFsaWQuZGlyZWN0aXZlJztcbmltcG9ydCB7IFNlbGVjdERyb3Bkb3duRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9zZWxlY3QtZHJvcGRvd24uZGlyZWN0aXZlJztcbmltcG9ydCB7IFNlbGVjdGVkT3B0aW9uRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9zZWxlY3RlZC1vcHRpb24uZGlyZWN0aXZlJztcbmltcG9ydCB7IEFSUk9XX0xFRlQsIEFSUk9XX1JJR0hULCBCQUNLU1BBQ0UsIEVTQ0FQRSwgVEFCIH0gZnJvbSAnLi4vLi4vaGVscGVycy9rZXktY29kZXMuY29uc3RhbnRzJztcbmltcG9ydCB7IGdldEtleWJvYXJkTmF2aWdhdGlvbkV2ZW50cyB9IGZyb20gJy4uLy4uL2hlbHBlcnMva2V5Ym9hcmQtbmF2aWdhdGlvbi5oZWxwZXJzJztcbmltcG9ydCB7IEJhc2VTZWxlY3REaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9tb2RlbHMvYmFzZS1zZWxlY3QuZGlyZWN0aXZlJztcbmltcG9ydCB7IFNpbmdsZVNlbGVjdFBhZGRpbmcgfSBmcm9tICcuLi8uLi9tb2RlbHMvc2luZ2xlLXNlbGVjdC1wYWRkaW5nLmludGVyZmFjZSc7XG5pbXBvcnQgeyBCYXNpY0Ryb3Bkb3duQ29tcG9uZW50IH0gZnJvbSAnLi4vYmFzaWMtZHJvcGRvd24vYmFzaWMtZHJvcGRvd24uY29tcG9uZW50JztcbmltcG9ydCB7IEtleWJvYXJkU2VsZWN0QWN0aW9uIH0gZnJvbSAnLi4va2V5Ym9hcmQtc2VsZWN0LmRpcmVjdGl2ZSc7XG5cbmV4cG9ydCB0eXBlIFNpbmdsZVNlbGVjdFNpemUgPSAnZGVmYXVsdCcgfCAnc21hbGwnIHwgJ3NlbGVjdDInIHwgJ2xhcmdlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbHgtc2luZ2xlLXNlbGVjdCcsXG4gIHRlbXBsYXRlVXJsOiAnc2luZ2xlLXNlbGVjdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWydzaW5nbGUtc2VsZWN0LmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTaW5nbGVTZWxlY3RDb21wb25lbnQpXG4gICAgfVxuICBdLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbTmdJZiwgTWFya0ludmFsaWREaXJlY3RpdmUsIE5nVGVtcGxhdGVPdXRsZXQsIEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBBc3luY1BpcGVdXG59KVxuZXhwb3J0IGNsYXNzIFNpbmdsZVNlbGVjdENvbXBvbmVudCBleHRlbmRzIEJhc2VTZWxlY3REaXJlY3RpdmUgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBwdWJsaWMgc3RhdGljIGNhbGN1bGF0ZU5ld0N1cnNvclBvc3Rpb25PbktleWJvYXJkTmF2aWdhdGlvbihjdXJzb3JQb3NpdGlvbjogbnVtYmVyLCBrZXlDb2RlOiBudW1iZXIpIHtcbiAgICBzd2l0Y2ggKGtleUNvZGUpIHtcbiAgICAgIGNhc2UgQVJST1dfTEVGVDpcbiAgICAgICAgY3Vyc29yUG9zaXRpb24tLTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIEFSUk9XX1JJR0hUOlxuICAgICAgICBjdXJzb3JQb3NpdGlvbisrO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gICAgcmV0dXJuIGN1cnNvclBvc2l0aW9uO1xuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBwdWJsaWMgc3RhdGljIGdldEtleWJvYXJkU2VsZWN0QWN0aW9uKGN1cnNvclBvc2l0aW9uOiBudW1iZXIsIGtleUNvZGU6IG51bWJlcik6IEtleWJvYXJkU2VsZWN0QWN0aW9uIHwgbnVsbCB7XG4gICAgaWYgKGN1cnNvclBvc2l0aW9uIDw9IC0xICYmIGtleUNvZGUgPT09IEFSUk9XX1JJR0hUKSB7XG4gICAgICByZXR1cm4gS2V5Ym9hcmRTZWxlY3RBY3Rpb24uTkVYVDtcbiAgICB9XG4gICAgaWYgKGN1cnNvclBvc2l0aW9uID09PSAtMSAmJiBrZXlDb2RlID09PSBBUlJPV19MRUZUKSB7XG4gICAgICByZXR1cm4gS2V5Ym9hcmRTZWxlY3RBY3Rpb24uTEFTVDtcbiAgICB9XG4gICAgaWYgKGN1cnNvclBvc2l0aW9uIDwgLTEgJiYga2V5Q29kZSA9PT0gQVJST1dfTEVGVCkge1xuICAgICAgcmV0dXJuIEtleWJvYXJkU2VsZWN0QWN0aW9uLlBSRVY7XG4gICAgfVxuICAgIGlmIChjdXJzb3JQb3NpdGlvbiA8PSAtMSAmJiBrZXlDb2RlID09PSBCQUNLU1BBQ0UpIHtcbiAgICAgIHJldHVybiBLZXlib2FyZFNlbGVjdEFjdGlvbi5FWEVDVVRFO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIEBJbnB1dCgpIHNlbGVjdGlvbjogYW55O1xuICBASW5wdXQoKSBzZWxlY3Rpb25CYWNrZ3JvdW5kOiAnd2hpdGUnIHwgJ2dyYXknID0gJ3doaXRlJztcbiAgQElucHV0KCkgc2l6ZTogU2luZ2xlU2VsZWN0U2l6ZSA9ICdkZWZhdWx0JztcbiAgQElucHV0KCkgcGFkZGluZz86IFNpbmdsZVNlbGVjdFBhZGRpbmcgPSAnZGVmYXVsdCc7XG4gIEBJbnB1dCgpIGlucHV0SWQ/OiBzdHJpbmc7XG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSByZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBPdXRwdXQoKSBzZWxlY3Rpb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIGJsdXIgPSBuZXcgRXZlbnRFbWl0dGVyPEZvY3VzRXZlbnQ+KCk7XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBAQ29udGVudENoaWxkKFNlbGVjdERyb3Bkb3duRGlyZWN0aXZlLCB7IHJlYWQ6IFRlbXBsYXRlUmVmLCBzdGF0aWM6IHRydWUgfSkgZXhwbGljaXREcm9wZG93bj86IFRlbXBsYXRlUmVmPGFueT47XG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgQENvbnRlbnRDaGlsZChTZWxlY3RlZE9wdGlvbkRpcmVjdGl2ZSwgeyByZWFkOiBUZW1wbGF0ZVJlZiwgc3RhdGljOiB0cnVlIH0pIGV4cGxpY2l0U2VsZWN0ZWRPcHRpb24/OiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAvKiogQGludGVybmFsICovXG4gIEBDb250ZW50Q2hpbGQoQmFzaWNEcm9wZG93bkNvbXBvbmVudCwgeyBzdGF0aWM6IGZhbHNlIH0pIHByaXZhdGUgZHJvcGRvd25Db21wb25lbnQ/OiBCYXNpY0Ryb3Bkb3duQ29tcG9uZW50O1xuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgQFZpZXdDaGlsZCgnc2VsZWN0ZWRPcHRpb24nLCB7IHN0YXRpYzogdHJ1ZSB9KSBpbXBsaWNpdFNlbGVjdGVkT3B0aW9uITogVGVtcGxhdGVSZWY8YW55PjtcbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBAVmlld0NoaWxkKCdkcm9wZG93bicsIHsgc3RhdGljOiB0cnVlIH0pIGltcGxpY2l0RHJvcGRvd24hOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgZ2V0IHNlbGVjdGVkT3B0aW9uVG1wbCgpIHtcbiAgICByZXR1cm4gdGhpcy5leHBsaWNpdFNlbGVjdGVkT3B0aW9uIHx8IHRoaXMuaW1wbGljaXRTZWxlY3RlZE9wdGlvbjtcbiAgfVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgZ2V0IGRyb3Bkb3duVG1wbCgpIHtcbiAgICByZXR1cm4gdGhpcy5leHBsaWNpdERyb3Bkb3duIHx8IHRoaXMuaW1wbGljaXREcm9wZG93bjtcbiAgfVxuXG4gIEBJbnB1dCgpIGFsbG93Q2xlYXIgPSB0cnVlO1xuICBASW5wdXQoKSB0YWJJbmRleDogbnVtYmVyID0gMDtcbiAgQElucHV0KCkgbWFya0ludmFsaWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiogQGludGVybmFsICovXG4gIEBWaWV3Q2hpbGQoJ3F1ZXJ5SW5wdXQnLCB7IHN0YXRpYzogdHJ1ZSB9KSBxdWVyeUlucHV0ITogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcblxuICAvKiogQGludGVybmFsICovXG4gIG92ZXJyaWRlIHJlYWRvbmx5IGRlc3Ryb3llZCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAvKiogQGludGVybmFsICovXG4gIGlzSW5wdXRGb2N1c2VkVmlhVGFiID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBnZXQgY3Vyc29yU3R5bGUoKSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybiAnZGVmYXVsdCc7XG4gICAgfSBlbHNlIGlmICh0aGlzLmFsbG93UXVlcnkpIHtcbiAgICAgIHJldHVybiAndGV4dCc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAncG9pbnRlcic7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICByZXNldElucHV0KCkge1xuICAgIHRoaXMucXVlcnlDb250cm9sLnJlc2V0KCcnLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIGZvY3VzKCkge1xuICAgIHRoaXMucXVlcnlJbnB1dC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIGZvY3VzQW5kT3BlbigpIHtcbiAgICB0aGlzLnF1ZXJ5SW5wdXQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIHRoaXMub3Blbi5uZXh0KHRydWUpO1xuICB9XG5cbiAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKSB7XG4gICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICB0aGlzLmRlc3Ryb3llZCQubmV4dCgpO1xuICB9XG5cbiAgb3ZlcnJpZGUgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHN1cGVyLm5nQWZ0ZXJWaWV3SW5pdCgpO1xuICAgIHRoaXMub3BlblxuICAgICAgLnBpcGUoXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgIGZpbHRlcigob3BlbikgPT4gb3BlbiAmJiAhIXRoaXMuZHJvcGRvd25Db21wb25lbnQpLFxuICAgICAgICBtYXAoKCkgPT4gdGhpcy5zZWxlY3Rpb24pLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoc2VsZWN0aW9uKSA9PiB7XG4gICAgICAgIGlmIChzZWxlY3Rpb24pIHtcbiAgICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuZGV0ZXJtaW5lSGlnaGxpZ2h0SW5kZXgodGhpcy5kcm9wZG93bkNvbXBvbmVudCEub3B0aW9ucywgc2VsZWN0aW9uLCB0aGlzLmRyb3Bkb3duQ29tcG9uZW50IS5pdGVtS2V5KTtcbiAgICAgICAgICBpZiAoaW5kZXggPiAtMSkge1xuICAgICAgICAgICAgdGhpcy5kcm9wZG93bkNvbXBvbmVudCEuc2VsZWN0KGluZGV4KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RGaXJzdE9wdGlvbigpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdEZpcnN0T3B0aW9uKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgLy8ga2V5Ym9hcmQgZXZlbnQgaGFuZGxpbmdcbiAgICBjb25zdCBzb3VyY2VFbGVtZW50ID0gdGhpcy5xdWVyeUlucHV0Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgLy8gaGFuZGxlIGtleWJvYXJkIG5hdmlnYXRpb24gZm9yIHRoZSBzZWxlY3Rpb25cbiAgICBmcm9tRXZlbnQ8S2V5Ym9hcmRFdmVudD4oc291cmNlRWxlbWVudCwgJ2tleWRvd24nKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgoZXZlbnQpID0+IHRoaXMubWFwVG9FdmVudFNldChldmVudCwgc291cmNlRWxlbWVudCwgdGhpcy52aXJ0dWFsQ3Vyc29yUG9zaXRpb24pKSxcbiAgICAgICAgdGFwKChldmVudFNldCkgPT4ge1xuICAgICAgICAgIGlmICghdGhpcy5hbGxvd1F1ZXJ5ICYmIGV2ZW50U2V0LmV2ZW50LmtleUNvZGUgIT09IEJBQ0tTUEFDRSkge1xuICAgICAgICAgICAgLy8gYWRkaXRpb25hbCBjaGVjayBmb3IgZXZlbi5jb2RlIGZvciB1c2VyRXZlbnQgQVBJIGNvbXBhdGliaWxpdHlcbiAgICAgICAgICAgIGlmIChldmVudFNldC5ldmVudC5rZXlDb2RlICE9PSBUQUIgJiYgZXZlbnRTZXQuZXZlbnQuY29kZSAhPT0gJ1RhYicpIHtcbiAgICAgICAgICAgICAgLy8gaWYgcXVlcnlpbmcgaXMgZGlzYWJsZWQsIG9ubHkgdGhlIHRhYiBrZXkgcHJlc3MgZXZlbnQgd2lsbCBiZSBwcm9wYWdhdGVkLCBzbyB0aGF0IHlvdSBjYW4gc3RpbGwgZGVmb2N1cy5cbiAgICAgICAgICAgICAgZXZlbnRTZXQuZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgZXZlbnRTZXQudmlydHVhbEN1cnNvclBvc2l0aW9uID09PSAwICYmXG4gICAgICAgICAgICBldmVudFNldC5pbnB1dEN1cnNvclBvc2l0aW9uID09PSAwICYmXG4gICAgICAgICAgICBldmVudFNldC5ldmVudC5rZXlDb2RlID09PSBCQUNLU1BBQ0UgJiZcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uICYmXG4gICAgICAgICAgICB0aGlzLmFsbG93Q2xlYXJcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMucmVtb3ZlU2VsZWN0aW9uKCk7XG4gICAgICAgICAgICBldmVudFNldC5pbnB1dEN1cnNvclBvc2l0aW9uID0gdW5kZWZpbmVkOyAvLyBzZXQgdG8gbnVsbCB0byBwcmV2ZW50IGNvbnRpbnVpbmcgaW4gdGhlIHN0cmVhbVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAodHlwZW9mIGV2ZW50U2V0LmlucHV0Q3Vyc29yUG9zaXRpb24gPT09ICdudW1iZXInICYmIGV2ZW50U2V0LmlucHV0Q3Vyc29yUG9zaXRpb24gPiAwKSB7XG4gICAgICAgICAgICB0aGlzLnZpcnR1YWxDdXJzb3JQb3NpdGlvbiA9IDA7XG4gICAgICAgICAgfSBlbHNlIGlmIChldmVudFNldC52aXJ0dWFsQ3Vyc29yUG9zaXRpb24gPT09IC0xICYmIGV2ZW50U2V0LmV2ZW50LmtleUNvZGUgPT09IEFSUk9XX1JJR0hUKSB7XG4gICAgICAgICAgICBldmVudFNldC5ldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb25LZXlib2FyZFNlbGVjdEFjdGlvbiQubmV4dChLZXlib2FyZFNlbGVjdEFjdGlvbi5VTlNFTEVDVCk7XG4gICAgICAgICAgICB0aGlzLnZpcnR1YWxDdXJzb3JQb3NpdGlvbiA9IDA7XG4gICAgICAgICAgICBldmVudFNldC5pbnB1dEN1cnNvclBvc2l0aW9uID0gdW5kZWZpbmVkOyAvLyBzZXQgdG8gbnVsbCB0byBwcmV2ZW50IGNvbnRpbnVpbmcgaW4gdGhlIHN0cmVhbVxuICAgICAgICAgIH1cbiAgICAgICAgfSksXG4gICAgICAgIGZpbHRlcigoZXZlbnRTZXQpID0+IHRoaXMuYWxsb3dRdWVyeSAmJiBldmVudFNldC5pbnB1dEN1cnNvclBvc2l0aW9uID09PSAwKSxcbiAgICAgICAgbWFwKChldmVudFNldCkgPT4gZXZlbnRTZXQuZXZlbnQpLFxuICAgICAgICBmaWx0ZXIoKGV2ZW50KSA9PiBpbmNsdWRlcyhldmVudC5rZXlDb2RlLCBbQVJST1dfUklHSFQsIEFSUk9XX0xFRlQsIEJBQ0tTUEFDRV0pKSxcbiAgICAgICAgbWFwKChldmVudCkgPT4ge1xuICAgICAgICAgIHRoaXMudmlydHVhbEN1cnNvclBvc2l0aW9uID0gU2luZ2xlU2VsZWN0Q29tcG9uZW50LmNhbGN1bGF0ZU5ld0N1cnNvclBvc3Rpb25PbktleWJvYXJkTmF2aWdhdGlvbihcbiAgICAgICAgICAgIHRoaXMudmlydHVhbEN1cnNvclBvc2l0aW9uLFxuICAgICAgICAgICAgZXZlbnQua2V5Q29kZVxuICAgICAgICAgICk7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGN1cnNvclBvc2l0aW9uOiB0aGlzLnZpcnR1YWxDdXJzb3JQb3NpdGlvbixcbiAgICAgICAgICAgIGV2ZW50XG4gICAgICAgICAgfTtcbiAgICAgICAgfSksXG4gICAgICAgIG1hcCgocG9zaXRpb25TZXQpID0+IHtcbiAgICAgICAgICBjb25zdCBhY3Rpb24gPSBTaW5nbGVTZWxlY3RDb21wb25lbnQuZ2V0S2V5Ym9hcmRTZWxlY3RBY3Rpb24ocG9zaXRpb25TZXQuY3Vyc29yUG9zaXRpb24sIHBvc2l0aW9uU2V0LmV2ZW50LmtleUNvZGUpO1xuICAgICAgICAgIGlmIChhY3Rpb24gPT09IEtleWJvYXJkU2VsZWN0QWN0aW9uLk5FWFQpIHtcbiAgICAgICAgICAgIC8vIHByZXZlbnQgY3Vyc29yIGZyb20gbW92aW5nIGluIHRoZSBpbnB1dCBmaWVsZCwgd2hpbGUgd2UgYXJlIHN0aWxsIGluIHRoZSBzZWxlY3Rpb24gaXRlbXNcbiAgICAgICAgICAgIHBvc2l0aW9uU2V0LmV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBhY3Rpb247XG4gICAgICAgIH0pLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSh0aGlzLnNlbGVjdGlvbktleWJvYXJkU2VsZWN0QWN0aW9uJCk7XG5cbiAgICBjb25zdCBrZXlib2FyZEV2ZW50cyA9IGdldEtleWJvYXJkTmF2aWdhdGlvbkV2ZW50cyhzb3VyY2VFbGVtZW50LCB0aGlzLmRlc3Ryb3llZCQpO1xuXG4gICAga2V5Ym9hcmRFdmVudHMudmVydGljYWxOYXZpZ2F0aW9uJC5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH0pO1xuXG4gICAga2V5Ym9hcmRFdmVudHMuY2xvc2UkLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcbiAgICAgIGlmIChldmVudC5rZXlDb2RlID09PSBFU0NBUEUgJiYgdGhpcy5kcm9wZG93bk9wZW4pIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG4gICAgICB9XG4gICAgICB0aGlzLm9wZW4ubmV4dChmYWxzZSk7XG4gICAgfSk7XG5cbiAgICBrZXlib2FyZEV2ZW50cy5kcm9wZG93bktleWJvYXJkRXZlbnQkLnN1YnNjcmliZSh0aGlzLm9wdGlvbnNLZXlib2FyZFNlbGVjdEFjdGlvbiQpO1xuXG4gICAga2V5Ym9hcmRFdmVudHMuZW50ZXIkLnN1YnNjcmliZSgoKSA9PiB0aGlzLm9wZW4ubmV4dCghdGhpcy5kcm9wZG93bk9wZW4pKTtcbiAgICBrZXlib2FyZEV2ZW50cy5zcGFjZSQucGlwZShmaWx0ZXIoKCkgPT4gIXRoaXMuYWxsb3dRdWVyeSkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5kcm9wZG93bk9wZW4pIHtcbiAgICAgICAgdGhpcy5vcHRpb25zS2V5Ym9hcmRTZWxlY3RBY3Rpb24kLm5leHQoS2V5Ym9hcmRTZWxlY3RBY3Rpb24uRVhFQ1VURSk7XG4gICAgICB9XG4gICAgICB0aGlzLm9wZW4ubmV4dCghdGhpcy5kcm9wZG93bk9wZW4pO1xuICAgIH0pO1xuXG4gICAga2V5Ym9hcmRFdmVudHMub3Blbk9uQXJyb3dEb3duJC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5vcGVuLm5leHQodHJ1ZSkpO1xuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBzZWxlY3RPcHRpb24ob3B0aW9uOiBhbnkpIHtcbiAgICB0aGlzLnNlbGVjdGlvbiA9IG9wdGlvbjtcblxuICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlLmVtaXQob3B0aW9uKTtcbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZShvcHRpb24pO1xuXG4gICAgdGhpcy5yZXNldFNlbGVjdFN0YXRlKCk7XG5cbiAgICAvLyBUaGlzIHRpbWVvdXQgbWFrZXMgc3VyZSB0aGF0IHRoZSBkcm9wZG93biB3aWxsIGJlIGNsb3NlZCBhdCB0aGUgZW5kXG4gICAgLy8gb2YgYWxsIHRoZSBjYWxsYmFja3MgaW4gdGhlIG9wZW4gc3Vic2NyaXB0aW9ucy5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMub3Blbi5uZXh0KGZhbHNlKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgcmVtb3ZlU2VsZWN0aW9uKCkge1xuICAgIHRoaXMuc2VsZWN0aW9uID0gbnVsbDtcbiAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuXG4gICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2UuZW1pdCh0aGlzLnNlbGVjdGlvbik7XG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UodGhpcy5zZWxlY3Rpb24pO1xuXG4gICAgdGhpcy5yZXNldFNlbGVjdFN0YXRlKCk7XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIHByb3BhZ2F0ZUNoYW5nZShfdmFsdWU6IGFueSkge31cblxuICAvKiogQGludGVybmFsICovXG4gIHdyaXRlVmFsdWUobmV3U2VsZWN0aW9uOiBhbnkpIHtcbiAgICB0aGlzLnNlbGVjdGlvbiA9IG5ld1NlbGVjdGlvbjtcbiAgfVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKSB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xuICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlID0gZm47XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKF9mbjogYW55KSB7fVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgZm9jdXNlZFZpYVRhYigpIHtcbiAgICB0aGlzLmlzSW5wdXRGb2N1c2VkVmlhVGFiID0gdHJ1ZTtcbiAgfVxuXG4gIHByaXZhdGUgZGV0ZXJtaW5lSGlnaGxpZ2h0SW5kZXgob3B0aW9uczogYW55W10sIHNlbGVjdGlvbjogYW55LCBpdGVtS2V5Pzogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGl0ZW1LZXlcbiAgICAgID8gb3B0aW9ucy5maW5kSW5kZXgoKG9wdGlvbikgPT4gaXNFcXVhbChnZXQoaXRlbUtleSwgc2VsZWN0aW9uKSwgZ2V0KGl0ZW1LZXksIG9wdGlvbikpIHx8IGlzRXF1YWwoc2VsZWN0aW9uLCBnZXQoaXRlbUtleSwgb3B0aW9uKSkpXG4gICAgICA6IG9wdGlvbnMuZmluZEluZGV4KChvcHRpb24pID0+IGlzRXF1YWwoc2VsZWN0aW9uLCBvcHRpb24pKTtcbiAgfVxufVxuIiwiPGRpdiAqbmdJZj1cImRyb3Bkb3duT3BlblwiIGNsYXNzPVwiYmFja2Ryb3BcIiAoY2xpY2spPVwiaGFuZGxlQmFja2Ryb3BDbGljaygkZXZlbnQpXCI+PC9kaXY+XG48ZGl2XG4gIFtseE1hcmtJbnZhbGlkXT1cIm1hcmtJbnZhbGlkXCJcbiAgY2xhc3M9XCJzZWxlY3RDb250YWluZXIge3sgcGFkZGluZyB9fVBhZGRpbmdcIlxuICBbY2xhc3Mub3Blbl09XCJkcm9wZG93bk9wZW5cIlxuICBbY2xhc3MudG9wXT1cIihkcm9wZG93bkRpcmVjdGlvbiQgfCBhc3luYykgPT09ICdUT1AnXCJcbiAgW2NsYXNzLmJvdHRvbV09XCIoZHJvcGRvd25EaXJlY3Rpb24kIHwgYXN5bmMpID09PSAnQk9UVE9NJ1wiXG4gIFtjbGFzcy5kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gIFtjbGFzcy5ncmF5QmFja2dyb3VuZF09XCJzZWxlY3Rpb25CYWNrZ3JvdW5kID09PSAnZ3JheSdcIlxuICBbY2xhc3MuZGVmYXVsdFNpemVdPVwic2l6ZSA9PT0gJ2RlZmF1bHQnXCJcbiAgW2NsYXNzLnNtYWxsU2l6ZV09XCJzaXplID09PSAnc21hbGwnXCJcbiAgW2NsYXNzLnNlbGVjdDJTaXplXT1cInNpemUgPT09ICdzZWxlY3QyJ1wiXG4gIFtjbGFzcy5sYXJnZVNpemVdPVwic2l6ZSA9PT0gJ2xhcmdlJ1wiXG4gIFtzdHlsZS5jdXJzb3JdPVwiY3Vyc29yU3R5bGVcIlxuICBbY2xhc3MuZm9jdXNlZF09XCJpc0lucHV0Rm9jdXNlZFwiXG4gIFtjbGFzcy5mb2N1c2VkVmlzaWJsZV09XCJpc0lucHV0Rm9jdXNlZFZpYVRhYlwiXG4gIChjbGljayk9XCJoYW5kbGVDbGljaygkZXZlbnQudGFyZ2V0ID09PSB0b2dnbGUpXCJcbj5cbiAgPGRpdiBjbGFzcz1cInNlbGVjdGlvbkNvbnRhaW5lclwiPlxuICAgIDxkaXYgY2xhc3M9XCJpbnB1dENvbnRhaW5lclwiPlxuICAgICAgPGRpdiAqbmdJZj1cIiFzZWxlY3Rpb24gJiYgc2VsZWN0aW9uICE9PSAwICYmICFxdWVyeUlucHV0Py52YWx1ZVwiIGNsYXNzPVwicGxhY2Vob2xkZXJcIiBbYXR0ci50aXRsZV09XCJwbGFjZWhvbGRlclwiPlxuICAgICAgICB7eyBwbGFjZWhvbGRlciB9fVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwiIWFsbG93UXVlcnkgfHwgIXF1ZXJ5SW5wdXQ/LnZhbHVlXCJcbiAgICAgICAgY2xhc3M9XCJzZWxlY3Rpb25cIlxuICAgICAgICBbY2xhc3MubG93ZXJPcGFjaXR5XT1cImFsbG93UXVlcnkgJiYgIXF1ZXJ5SW5wdXQ/LnZhbHVlICYmIGRyb3Bkb3duT3BlblwiXG4gICAgICAgIFtjbGFzcy5saWdodGdyYXlDb2xvcl09XCIhYWxsb3dRdWVyeSAmJiBkcm9wZG93bk9wZW5cIlxuICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyBmb2N1cygpXCJcbiAgICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInNlbGVjdGVkT3B0aW9uVG1wbFwiIC8+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxpbnB1dFxuICAgICAgICAjcXVlcnlJbnB1dFxuICAgICAgICBjbGFzcz1cInF1ZXJ5SW5wdXRcIlxuICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgIFthdHRyLmlkXT1cImlucHV0SWRcIlxuICAgICAgICBbYXR0ci5yZXF1aXJlZF09XCJyZXF1aXJlZCA/ICd0cnVlJyA6IG51bGxcIlxuICAgICAgICBbY2xhc3MuaXNIaWRkZW5dPVwiIWFsbG93UXVlcnlcIlxuICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCIkZXZlbnQucHJldmVudERlZmF1bHQoKVwiXG4gICAgICAgIChmb2N1cyk9XCJpc0lucHV0Rm9jdXNlZCA9IHRydWVcIlxuICAgICAgICAoYmx1cik9XCJpc0lucHV0Rm9jdXNlZCA9IGZhbHNlOyBpc0lucHV0Rm9jdXNlZFZpYVRhYiA9IGZhbHNlOyBibHVyLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgIChrZXl1cC50YWIpPVwiZm9jdXNlZFZpYVRhYigpXCJcbiAgICAgICAgKGtleXVwLnNoaWZ0LnRhYik9XCJmb2N1c2VkVmlhVGFiKClcIlxuICAgICAgICBbdGFiSW5kZXhdPVwiZGlzYWJsZWQgPyAtMSA6IHRhYkluZGV4XCJcbiAgICAgICAgW2Zvcm1Db250cm9sXT1cInF1ZXJ5Q29udHJvbFwiXG4gICAgICAgIFtyZWFkT25seV09XCIhYWxsb3dRdWVyeVwiXG4gICAgICAvPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJpY29uQ29udGFpbmVyXCI+XG4gICAgICA8aSAqbmdJZj1cIihzZWxlY3Rpb24gfHwgc2VsZWN0aW9uID09PSAwKSAmJiBhbGxvd0NsZWFyICYmICFkaXNhYmxlZFwiIGNsYXNzPVwiZmFyIGZhLXRpbWVzXCIgKGNsaWNrKT1cInJlbW92ZVNlbGVjdGlvbigpXCI+PC9pPlxuICAgICAgPGkgI3RvZ2dsZSBjbGFzcz1cImZhcyBmYS1hbmdsZS1kb3duXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIm9wdGlvbnNDb250YWluZXJcIiAjb3B0aW9uc0NvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZHJvcGRvd25PcGVuXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZHJvcGRvd25UbXBsXCIgLz5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNzZWxlY3RlZE9wdGlvbj5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiLnNlbGVjdGVkT3B0aW9uXCIgLz5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI2Ryb3Bkb3duPlxuICA8bmctY29udGVudCBzZWxlY3Q9XCIuZHJvcGRvd25Db21wb25lbnRcIiAvPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -3,14 +3,6 @@ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from
3
3
  import * as i0 from "@angular/core";
4
4
  /**
5
5
  * Switch component is a toggle switch that can be used to switch between two states.
6
- *
7
- * ## Usage
8
- *
9
- * 1. Import the `SwitchComponent` component from `@leanix/components` in your module or standalone copmonent where you want to use the component.
10
- *
11
- * ```ts
12
- * import { SwitchComponent } from '@leanix/components';
13
- * ```
14
6
  */
15
7
  export class SwitchComponent {
16
8
  constructor() {
@@ -56,4 +48,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
56
48
  }], toggle: [{
57
49
  type: Output
58
50
  }] } });
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpdGNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL2Zvcm1zLXVpL2NvbXBvbmVudHMvc3dpdGNoL3N3aXRjaC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9mb3Jtcy11aS9jb21wb25lbnRzL3N3aXRjaC9zd2l0Y2guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRWhHOzs7Ozs7Ozs7O0dBVUc7QUFTSCxNQUFNLE9BQU8sZUFBZTtJQVI1QjtRQVdFLHlCQUF5QjtRQUNULFNBQUksR0FBWSxPQUFPLENBQUM7UUFDeEMscUNBQXFDO1FBQ3JCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFHakMsa0RBQWtEO1FBQ2xDLGlCQUFZLEdBQUcsSUFBSSxDQUFDO1FBSXBDLHVEQUF1RDtRQUN0QyxXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztLQWdCdkQ7SUFkQyxnQkFBZ0I7SUFDaEIsUUFBUTtRQUNOLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxJQUFJLEVBQUU7UUFDSixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDekQsQ0FBQztJQUVELGdCQUFnQjtJQUNoQixLQUFLLENBQUMsUUFBMEI7UUFDOUIseURBQXlEO1FBQ3pELFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDMUMsQ0FBQzs4R0E5QlUsZUFBZTtrR0FBZixlQUFlLDBPQ3RCNUIsMnFCQXVCQSw4a0NESFksSUFBSTs7MkZBRUgsZUFBZTtrQkFSM0IsU0FBUzsrQkFDRSxXQUFXLG1CQUdKLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQLENBQUMsSUFBSSxDQUFDOzhCQUlDLEtBQUs7c0JBQXBCLEtBQUs7Z0JBRVUsSUFBSTtzQkFBbkIsS0FBSztnQkFFVSxRQUFRO3NCQUF2QixLQUFLO2dCQUVVLEtBQUs7c0JBQXBCLEtBQUs7Z0JBRVUsWUFBWTtzQkFBM0IsS0FBSztnQkFFVSxTQUFTO3NCQUF4QixLQUFLO2dCQUdXLE1BQU07c0JBQXRCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIFN3aXRjaCBjb21wb25lbnQgaXMgYSB0b2dnbGUgc3dpdGNoIHRoYXQgY2FuIGJlIHVzZWQgdG8gc3dpdGNoIGJldHdlZW4gdHdvIHN0YXRlcy5cbiAqXG4gKiAjIyBVc2FnZVxuICpcbiAqIDEuIEltcG9ydCB0aGUgYFN3aXRjaENvbXBvbmVudGAgY29tcG9uZW50IGZyb20gYEBsZWFuaXgvY29tcG9uZW50c2AgaW4geW91ciBtb2R1bGUgb3Igc3RhbmRhbG9uZSBjb3Btb25lbnQgd2hlcmUgeW91IHdhbnQgdG8gdXNlIHRoZSBjb21wb25lbnQuXG4gKlxuICogYGBgdHNcbiAqIGltcG9ydCB7IFN3aXRjaENvbXBvbmVudCB9IGZyb20gJ0BsZWFuaXgvY29tcG9uZW50cyc7XG4gKiBgYGBcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbHgtc3dpdGNoJyxcbiAgdGVtcGxhdGVVcmw6ICdzd2l0Y2guY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vc3dpdGNoLmNvbXBvbmVudC5zY3NzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtOZ0lmXVxufSlcbmV4cG9ydCBjbGFzcyBTd2l0Y2hDb21wb25lbnQge1xuICAvKiogVmFsdWUgb2YgdGhlIHN3aXRjaCAqL1xuICBASW5wdXQoKSBwdWJsaWMgdmFsdWUhOiBib29sZWFuO1xuICAvKiogU2l6ZSBvZiB0aGUgc3dpdGNoICovXG4gIEBJbnB1dCgpIHB1YmxpYyBzaXplOiAnc21hbGwnID0gJ3NtYWxsJztcbiAgLyoqIFdoZXRoZXIgdGhlIHN3aXRjaCBpcyBkaXNhYmxlZCAqL1xuICBASW5wdXQoKSBwdWJsaWMgZGlzYWJsZWQgPSBmYWxzZTtcbiAgLyoqIExhYmVsIG9mIHRoZSBzd2l0Y2ggKi9cbiAgQElucHV0KCkgcHVibGljIGxhYmVsITogc3RyaW5nO1xuICAvKiogV2hldGhlciB0aGUgbGFiZWwgaXMgaW4gZnJvbnQgb2YgdGhlIHN3aXRjaCAqL1xuICBASW5wdXQoKSBwdWJsaWMgbGFiZWxJbkZyb250ID0gdHJ1ZTtcbiAgLyoqIElkIG9mIHRoZSBzd2l0Y2ggKi9cbiAgQElucHV0KCkgcHVibGljIGVsZW1lbnRJZD86IHN0cmluZztcblxuICAvKiogRXZlbnQgdGhhdCBpcyBlbWl0dGVkIHdoZW4gdGhlIHN3aXRjaCBpcyB0b2dnbGVkICovXG4gIEBPdXRwdXQoKSBwdWJsaWMgdG9nZ2xlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgb25Ub2dnbGUoKSB7XG4gICAgdGhpcy50b2dnbGUuZW1pdCghdGhpcy52YWx1ZSk7XG4gIH1cblxuICBnZXQgaWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudElkID8gYHRvdXIke3RoaXMuZWxlbWVudElkfWAgOiBudWxsO1xuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBmb2N1cyhjaGVja2JveDogSFRNTElucHV0RWxlbWVudCkge1xuICAgIC8vIHdpdGhvdXQgYSBkZWxheSB0aGUgY2hlY2tib3ggd2lsbCBub3QgYmUgZm9jdXNlZCBhZ2FpblxuICAgIHNldFRpbWVvdXQoKCkgPT4gY2hlY2tib3guZm9jdXMoKSwgMTUwKTtcbiAgfVxufVxuIiwiPGRpdlxuICBjbGFzcz1cIndyYXBwZXJcIlxuICBbY2xhc3Mud2l0aExhYmVsXT1cImxhYmVsXCJcbiAgW2NsYXNzLndpdGhMYWJlbEJlaGluZF09XCJsYWJlbCAmJiAhbGFiZWxJbkZyb250XCJcbiAgW2NsYXNzLmRpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgW2F0dHIuaWRdPVwiaWRcIlxuICBbY2xhc3Muc21hbGxdPVwic2l6ZSA9PT0gJ3NtYWxsJ1wiXG4+XG4gIDxzcGFuICpuZ0lmPVwibGFiZWxcIiBjbGFzcz1cImxhYmVsVGV4dFwiIFtjbGFzcy5vZmZdPVwiIXZhbHVlXCI+e3sgbGFiZWwgfX08L3NwYW4+XG4gIDxsYWJlbCBjbGFzcz1cImNoZWNrYm94XCIgW2NsYXNzLnNtYWxsXT1cInNpemUgPT09ICdzbWFsbCdcIj5cbiAgICA8aW5wdXRcbiAgICAgICNpbnB1dFJlZlxuICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgIFtjaGVja2VkXT1cInZhbHVlXCJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAoY2xpY2spPVwiaW5wdXRSZWYuYmx1cigpXCJcbiAgICAgIChjaGFuZ2UpPVwib25Ub2dnbGUoKVwiXG4gICAgICAoa2V5ZG93bi5zcGFjZSk9XCJmb2N1cyhpbnB1dFJlZilcIlxuICAgICAgKGtleWRvd24uZW50ZXIpPVwib25Ub2dnbGUoKVwiXG4gICAgLz5cbiAgICA8c3BhbiBjbGFzcz1cInNsaWRlclwiPjwvc3Bhbj5cbiAgPC9sYWJlbD5cbjwvZGl2PlxuIl19
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpdGNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL2Zvcm1zLXVpL2NvbXBvbmVudHMvc3dpdGNoL3N3aXRjaC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9mb3Jtcy11aS9jb21wb25lbnRzL3N3aXRjaC9zd2l0Y2guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRWhHOztHQUVHO0FBU0gsTUFBTSxPQUFPLGVBQWU7SUFSNUI7UUFXRSx5QkFBeUI7UUFDVCxTQUFJLEdBQVksT0FBTyxDQUFDO1FBQ3hDLHFDQUFxQztRQUNyQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBR2pDLGtEQUFrRDtRQUNsQyxpQkFBWSxHQUFHLElBQUksQ0FBQztRQUlwQyx1REFBdUQ7UUFDdEMsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7S0FnQnZEO0lBZEMsZ0JBQWdCO0lBQ2hCLFFBQVE7UUFDTixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsSUFBSSxFQUFFO1FBQ0osT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3pELENBQUM7SUFFRCxnQkFBZ0I7SUFDaEIsS0FBSyxDQUFDLFFBQTBCO1FBQzlCLHlEQUF5RDtRQUN6RCxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzFDLENBQUM7OEdBOUJVLGVBQWU7a0dBQWYsZUFBZSwwT0NkNUIsMnFCQXVCQSw4a0NEWFksSUFBSTs7MkZBRUgsZUFBZTtrQkFSM0IsU0FBUzsrQkFDRSxXQUFXLG1CQUdKLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQLENBQUMsSUFBSSxDQUFDOzhCQUlDLEtBQUs7c0JBQXBCLEtBQUs7Z0JBRVUsSUFBSTtzQkFBbkIsS0FBSztnQkFFVSxRQUFRO3NCQUF2QixLQUFLO2dCQUVVLEtBQUs7c0JBQXBCLEtBQUs7Z0JBRVUsWUFBWTtzQkFBM0IsS0FBSztnQkFFVSxTQUFTO3NCQUF4QixLQUFLO2dCQUdXLE1BQU07c0JBQXRCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIFN3aXRjaCBjb21wb25lbnQgaXMgYSB0b2dnbGUgc3dpdGNoIHRoYXQgY2FuIGJlIHVzZWQgdG8gc3dpdGNoIGJldHdlZW4gdHdvIHN0YXRlcy5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbHgtc3dpdGNoJyxcbiAgdGVtcGxhdGVVcmw6ICdzd2l0Y2guY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vc3dpdGNoLmNvbXBvbmVudC5zY3NzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtOZ0lmXVxufSlcbmV4cG9ydCBjbGFzcyBTd2l0Y2hDb21wb25lbnQge1xuICAvKiogVmFsdWUgb2YgdGhlIHN3aXRjaCAqL1xuICBASW5wdXQoKSBwdWJsaWMgdmFsdWUhOiBib29sZWFuO1xuICAvKiogU2l6ZSBvZiB0aGUgc3dpdGNoICovXG4gIEBJbnB1dCgpIHB1YmxpYyBzaXplOiAnc21hbGwnID0gJ3NtYWxsJztcbiAgLyoqIFdoZXRoZXIgdGhlIHN3aXRjaCBpcyBkaXNhYmxlZCAqL1xuICBASW5wdXQoKSBwdWJsaWMgZGlzYWJsZWQgPSBmYWxzZTtcbiAgLyoqIExhYmVsIG9mIHRoZSBzd2l0Y2ggKi9cbiAgQElucHV0KCkgcHVibGljIGxhYmVsITogc3RyaW5nO1xuICAvKiogV2hldGhlciB0aGUgbGFiZWwgaXMgaW4gZnJvbnQgb2YgdGhlIHN3aXRjaCAqL1xuICBASW5wdXQoKSBwdWJsaWMgbGFiZWxJbkZyb250ID0gdHJ1ZTtcbiAgLyoqIElkIG9mIHRoZSBzd2l0Y2ggKi9cbiAgQElucHV0KCkgcHVibGljIGVsZW1lbnRJZD86IHN0cmluZztcblxuICAvKiogRXZlbnQgdGhhdCBpcyBlbWl0dGVkIHdoZW4gdGhlIHN3aXRjaCBpcyB0b2dnbGVkICovXG4gIEBPdXRwdXQoKSBwdWJsaWMgdG9nZ2xlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgb25Ub2dnbGUoKSB7XG4gICAgdGhpcy50b2dnbGUuZW1pdCghdGhpcy52YWx1ZSk7XG4gIH1cblxuICBnZXQgaWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudElkID8gYHRvdXIke3RoaXMuZWxlbWVudElkfWAgOiBudWxsO1xuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBmb2N1cyhjaGVja2JveDogSFRNTElucHV0RWxlbWVudCkge1xuICAgIC8vIHdpdGhvdXQgYSBkZWxheSB0aGUgY2hlY2tib3ggd2lsbCBub3QgYmUgZm9jdXNlZCBhZ2FpblxuICAgIHNldFRpbWVvdXQoKCkgPT4gY2hlY2tib3guZm9jdXMoKSwgMTUwKTtcbiAgfVxufVxuIiwiPGRpdlxuICBjbGFzcz1cIndyYXBwZXJcIlxuICBbY2xhc3Mud2l0aExhYmVsXT1cImxhYmVsXCJcbiAgW2NsYXNzLndpdGhMYWJlbEJlaGluZF09XCJsYWJlbCAmJiAhbGFiZWxJbkZyb250XCJcbiAgW2NsYXNzLmRpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgW2F0dHIuaWRdPVwiaWRcIlxuICBbY2xhc3Muc21hbGxdPVwic2l6ZSA9PT0gJ3NtYWxsJ1wiXG4+XG4gIDxzcGFuICpuZ0lmPVwibGFiZWxcIiBjbGFzcz1cImxhYmVsVGV4dFwiIFtjbGFzcy5vZmZdPVwiIXZhbHVlXCI+e3sgbGFiZWwgfX08L3NwYW4+XG4gIDxsYWJlbCBjbGFzcz1cImNoZWNrYm94XCIgW2NsYXNzLnNtYWxsXT1cInNpemUgPT09ICdzbWFsbCdcIj5cbiAgICA8aW5wdXRcbiAgICAgICNpbnB1dFJlZlxuICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgIFtjaGVja2VkXT1cInZhbHVlXCJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAoY2xpY2spPVwiaW5wdXRSZWYuYmx1cigpXCJcbiAgICAgIChjaGFuZ2UpPVwib25Ub2dnbGUoKVwiXG4gICAgICAoa2V5ZG93bi5zcGFjZSk9XCJmb2N1cyhpbnB1dFJlZilcIlxuICAgICAgKGtleWRvd24uZW50ZXIpPVwib25Ub2dnbGUoKVwiXG4gICAgLz5cbiAgICA8c3BhbiBjbGFzcz1cInNsaWRlclwiPjwvc3Bhbj5cbiAgPC9sYWJlbD5cbjwvZGl2PlxuIl19
@@ -7,14 +7,8 @@ import * as i1 from "@ncstate/sat-popover";
7
7
  /**
8
8
  * The Popover component is based on the [ncstate-sat/popover](https://github.com/ncstate-sat/popover) library.
9
9
  *
10
- * ## Usage
11
- *
12
- * 1. Import `LxPopoverUiModule` and `LxCoreUiModule` module from `@leanix/components` in your module where you want to use the component.
13
- *
14
- * ```ts
15
- * import { LxPopoverUiModule, LxCoreUiModule } from '@leanix/components';
16
- * ```
17
- *
10
+ * ## Examples
11
+
18
12
  * This popover encapsulates this open source library: https://github.com/ncstate-sat/popover,
19
13
  * make sure to also check out the docs over there.
20
14
  *
@@ -231,4 +225,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
231
225
  type: ContentChild,
232
226
  args: [PopoverContentDirective, { read: TemplateRef, static: true }]
233
227
  }] } });
234
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9wb3BvdmVyLXVpL2NvbXBvbmVudHMvcG9wb3Zlci9wb3BvdmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL3BvcG92ZXItdWkvY29tcG9uZW50cy9wb3BvdmVyL3BvcG92ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFBaUIsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2SSxPQUFPLEVBQUUsbUJBQW1CLEVBQTZCLGdCQUFnQixFQUEyQixNQUFNLHNCQUFzQixDQUFDO0FBQ2pJLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDOzs7QUFHckY7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQStERztBQVFILE1BQU0sT0FBTyxnQkFBZ0I7SUFQN0I7UUFjRSxnQ0FBZ0M7UUFDdkIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUMxQiw2REFBNkQ7UUFDcEQsa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFDL0IscUZBQXFGO1FBQzVFLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDM0IsNkZBQTZGO1FBQ3BGLGlCQUFZLEdBQUcsSUFBSSxDQUFDO1FBQzdCLDBDQUEwQztRQUNqQyxnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUM3Qjs7Ozs7OztXQU9HO1FBQ00sdUNBQWtDLEdB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LElBQUksYUFBYSxLQUFLLE9BQU8sRUFBRSxDQUFDO2dCQUNyQyxPQUFPLFFBQVEsQ0FBQztZQUNsQixDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQzs4R0F6SlUsZ0JBQWdCO2tHQUFoQixnQkFBZ0IsMGRBc0NiLHVCQUF1QiwyQkFBVSxXQUFXLHVGQUwvQyxtQkFBbUIsc01DOUdoQywrNEJBOEJBLHdkRDZDWSxnQkFBZ0IsMGdCQUFFLE9BQU8sb0ZBQUUsSUFBSSw2RkFBRSxnQkFBZ0I7OzJGQUVoRCxnQkFBZ0I7a0JBUDVCLFNBQVM7K0JBQ0UsWUFBWSxjQUdWLElBQUksV0FDUCxDQUFDLGdCQUFnQixFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLENBQUM7OEJBSW5ELE9BQU87c0JBQWYsS0FBSztnQkFFRyxlQUFlO3NCQUF2QixLQUFLO2dCQUVHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBRUcsUUFBUTtzQkFBaEIsS0FBSztnQkFFRyxhQUFhO3NCQUFyQixLQUFLO2dCQUVHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRUcsWUFBWTtzQkFBcEIsS0FBSztnQkFFRyxXQUFXO3NCQUFuQixLQUFLO2dCQVNHLGtDQUFrQztzQkFBMUMsS0FBSztnQkFHSSxNQUFNO3NCQUFmLE1BQU07Z0JBRUcsTUFBTTtzQkFBZixNQUFNO2dCQUcyQyxVQUFVO3NCQUEzRCxTQUFTO3VCQUFDLG1CQUFtQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFFQSxlQUFlO3NCQUE5RCxTQUFTO3VCQUFDLGlCQUFpQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFHOEIsZUFBZTtzQkFBMUYsWUFBWTt1QkFBQyx1QkFBdUIsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nQ2xhc3MsIE5nSWYsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzLCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTYXRQb3BvdmVyQ29tcG9uZW50LCBTYXRQb3BvdmVySG9yaXpvbnRhbEFsaWduLCBTYXRQb3BvdmVyTW9kdWxlLCBTYXRQb3BvdmVyVmVydGljYWxBbGlnbiB9IGZyb20gJ0BuY3N0YXRlL3NhdC1wb3BvdmVyJztcbmltcG9ydCB7IFBvcG92ZXJDb250ZW50RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9wb3BvdmVyLWNvbnRlbnQuZGlyZWN0aXZlJztcbmltcG9ydCB7IFBvcG92ZXJUcmlnZ2VyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9wb3BvdmVyLWhvdmVyLmRpcmVjdGl2ZSc7XG5cbi8qKlxuICogVGhlIFBvcG92ZXIgY29tcG9uZW50IGlzIGJhc2VkIG9uIHRoZSBbbmNzdGF0ZS1zYXQvcG9wb3Zlcl0oaHR0cHM6Ly9naXRodWIuY29tL25jc3RhdGUtc2F0L3BvcG92ZXIpIGxpYnJhcnkuXG4gKlxuICogIyMgVXNhZ2VcbiAqXG4gKiAxLiBJbXBvcnQgYEx4UG9wb3ZlclVpTW9kdWxlYCBhbmQgYEx4Q29yZVVpTW9kdWxlYCBtb2R1bGUgZnJvbSBgQGxlYW5peC9jb21wb25lbnRzYCBpbiB5b3VyIG1vZHVsZSB3aGVyZSB5b3Ugd2FudCB0byB1c2UgdGhlIGNvbXBvbmVudC5cbiAqXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgTHhQb3BvdmVyVWlNb2R1bGUsIEx4Q29yZVVpTW9kdWxlIH0gZnJvbSAnQGxlYW5peC9jb21wb25lbnRzJztcbiAqIGBgYFxuICpcbiAqIFRoaXMgcG9wb3ZlciBlbmNhcHN1bGF0ZXMgdGhpcyBvcGVuIHNvdXJjZSBsaWJyYXJ5OiBodHRwczovL2dpdGh1Yi5jb20vbmNzdGF0ZS1zYXQvcG9wb3ZlcixcbiAqIG1ha2Ugc3VyZSB0byBhbHNvIGNoZWNrIG91dCB0aGUgZG9jcyBvdmVyIHRoZXJlLlxuICpcbiAqIEFzIG9mIHRvZGF5IHRoZXkgYXJlIHR3byB0cmlnZ2VyIHN0cmF0ZWdpZXMgdG8gZGlzcGxheSBhIHBvcG92ZXIuXG4gKiAxLiBTaG93IG9uIGhvdmVyaW5nIHRoZSBhbmNob3IgYW5kIHdoaWxlIGhvdmVyaW5nIHRoZSBwb3BvdmVyIGJvZHkuXG4gKiAyLiBTaG93IG9uIGNsaWNrIGFuZCB3aGlsZSBob3ZlcmluZyB0aGUgcG9wb3ZlciBib2R5LlxuICpcbiAqIEZvciB1c2UgY2FzZSAxLiB5b3Ugd291bGQgdXNlIHRoZSBseFBvcG92ZXJIb3ZlciBkaXJlY3RpdmUsIHdoaWNoIGV4cG9ydHMgYXMgaG92ZXJBbmNob3IuXG4gKlxuICogIyMjIEV4YW1wbGU6XG4gKiBgYGBodG1sXG4gKiA8ZGl2IGx4UG9wb3ZlckhvdmVyXG4gKiAgICAgIGhvdmVyQW5jaG9yXG4gKiAgICAgIHNhdFBvcG92ZXJBbmNob3JcbiAqICAgICAgI2FuY2hvcj1cImhvdmVyQW5jaG9yXCI+PC9kaXY+XG4gKiA8bHgtcG9wb3ZlciBbdHJpZ2dlcl09XCJhbmNob3JcIlxuICogICAgICAgICAgICAgaG9yaXpvbnRhbEFsaWduPVwiYWZ0ZXJcIlxuICogICAgICAgICAgICAgdmVydGljYWxBbGlnbj1cImNlbnRlclwiPlxuICogICAgPHA+UG9wb3ZlciBjb250ZW50PC9wPlxuICogPC9seC1wb3BvdmVyPlxuICogYGBgXG4gKlxuICogRm9yIHVzZSBjYXNlIDIuIHlvdSB3b3VsZCB1c2UgdGhlIGx4UG9wb3ZlckNsaWNrIGRpcmVjdGl2ZSwgd2hpY2ggZXhwb3J0cyBhcyBjbGlja0FuY2hvci5cbiAqIE5vdGU6IFNpbmNlIHRoZSBvbmx5IGNvbXBvbmVudCB3aGVyZSB3ZSB1c2UgdGhlIGx4UG9wb3ZlckNsaWNrIGRpcmVjdGl2ZSAoUmVwb3J0Q29tcG9uZW50KVxuICogbmVlZHMgdG8gZmV0Y2ggc29tZSBkYXRhIGJlZm9yZSBvcGVuaW5nIGl0LCB3ZSBkbyBub3QgcmVnaXN0ZXIgYSBjbGljayBFdmVudExpc3RlbmVyIGluIHRoaXMgZGlyZWN0aXZlLFxuICogYnV0IHJlcXVpcmUgdGhlIGRldmVsb3BlciB0byBpbXBsZW1lbnQgdGhhdCBpbiB0aGUgY29tcG9uZW50LCB3aGVyZSB0aGUgcG9wb3ZlciBpcyB1c2VkLlxuICpcbiAqICMjIyBFeGFtcGxlOlxuICogYGBgaHRtbFxuICogPGRpdiBseFBvcG92ZXJDbGlja1xuICogICAgICBjbGlja0FuY2hvclxuICogICAgICBzYXRQb3BvdmVyQW5jaG9yXG4gKiAgICAgICNhbmNob3I9XCJjbGlja0FuY2hvclwiXG4gKiAgICAgIChjbGljayk9XCJwb3BvdmVyLm9wZW4oKVwiPkNsaWNrIE1lITwvZGl2PlxuICogPGx4LXBvcG92ZXIgW3RyaWdnZXJdPVwiYW5jaG9yXCJcbiAqICAgICAgICAgICAgIGhvcml6b250YWxBbGlnbj1cImFmdGVyXCJcbiAqICAgICAgICAgICAgIHZlcnRpY2FsQWxpZ249XCJjZW50ZXJcIlxuICogICAgICAgICAgICAgI3BvcG92ZXI+XG4gKiAgICA8cD5Qb3BvdmVyIGNvbnRlbnQ8L3A+XG4gKiA8L2x4LXBvcG92ZXI+XG4gKiBgYGBcbiAqXG4gKiBJZiB0aGlzIGNvbXBvbmVudCBpcyB1c2VkIHdpdGggYW5ndWxhckNvbXBpbGVyT3B0aW9ucyBzdHJpY3RUZW1wbGF0ZXM9dHJ1ZSxcbiAqIHNhdFBvcG92ZXJBbmNob3IgbXVzdCBiZSBzZXQgdG8gdGhlIHJlZmVyZW5jZSB0byB0aGUgU2F0UG9wb3ZlciBpbnNpZGUgbHgtcG9wb3Zlci5cbiAqXG4gKiAjIyMgRXhhbXBsZTpcbiAqIGBgYGh0bWxcbiAqIDxkaXYgW3NhdFBvcG92ZXJBbmNob3JdPVwicG9wb3Zlci5zYXRQb3BvdmVyXCI+PC9kaXY+XG4gKiA8bHgtcG9wb3ZlciAjcG9wb3Zlcj5cbiAqICAgIDxwPlBvcG92ZXIgY29udGVudDwvcD5cbiAqIDwvbHgtcG9wb3Zlcj5cbiAqIGBgYFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdseC1wb3BvdmVyJyxcbiAgdGVtcGxhdGVVcmw6ICdwb3BvdmVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJ3BvcG92ZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1NhdFBvcG92ZXJNb2R1bGUsIE5nQ2xhc3MsIE5nSWYsIE5nVGVtcGxhdGVPdXRsZXRdXG59KVxuZXhwb3J0IGNsYXNzIFBvcG92ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICAvKiogVGhlIHRyaWdnZXIgZGlyZWN0aXZlIHRoYXQgd2lsbCBvcGVuIHRoZSBwb3BvdmVyLiBUaGlzIGlzIGFsc28gdGhlIGFuY2hvciBmb3IgdGhlIHBvcG92ZXIuICovXG4gIEBJbnB1dCgpIHRyaWdnZXIhOiBQb3BvdmVyVHJpZ2dlckRpcmVjdGl2ZTtcbiAgLyoqIFRoZSBob3Jpem9udGFsIGFsaWdubWVudCBvZiB0aGUgcG9wb3ZlciAoYGNlbnRlcmAgYnkgZGVmYXVsdCkuICovXG4gIEBJbnB1dCgpIGhvcml6b250YWxBbGlnbiE6IFNhdFBvcG92ZXJIb3Jpem9udGFsQWxpZ247XG4gIC8qKiBUaGUgdmVydGljYWwgYWxpZ25tZW50IG9mIHRoZSBwb3BvdmVyIChgYWJvdmVgIGJ5IGRlZmF1bHQpLiAqL1xuICBASW5wdXQoKSB2ZXJ0aWNhbEFsaWduITogU2F0UG9wb3ZlclZlcnRpY2FsQWxpZ247XG4gIC8qKiBXaGV0aGVyIHRvIGFwcGx5IG1hcmdpbnMuICovXG4gIEBJbnB1dCgpIG5vTWFyZ2luID0gZmFsc2U7XG4gIC8qKiBXaGV0aGVyIHRvIGFsbG93IHRoZSBwb3BvdmVyIHRvIG92ZXJmbG93IHRoZSB2aWV3cG9ydC4gKi9cbiAgQElucHV0KCkgYWxsb3dPdmVyZmxvdyA9IGZhbHNlO1xuICAvKiogV2hldGhlciB0byBmb2N1cyB0aGUgZmlyc3QgZm9jdXNhYmxlIGVsZW1lbnQgaW4gdGhlIHBvcG92ZXIgd2hlbiBpdCBpcyBvcGVuZWQuICovXG4gIEBJbnB1dCgpIGF1dG9Gb2N1cyA9IGZhbHNlO1xuICAvKiogV2hldGhlciB0byByZXN0b3JlIGZvY3VzIHRvIHRoZSBwcmV2aW91c2x5LWZvY3VzZWQgZWxlbWVudCB3aGVuIHRoZSBwb3BvdmVyIGlzIGNsb3NlZC4gKi9cbiAgQElucHV0KCkgcmVzdG9yZUZvY3VzID0gdHJ1ZTtcbiAgLyoqIFdoZXRoZXIgdGhlIHBvcG92ZXIgaGFzIGEgYmFja2Ryb3AuICovXG4gIEBJbnB1dCgpIGhhc0JhY2tkcm9wID0gZmFsc2U7XG4gIC8qKlxuICAgKiBJZiB5b3UgaGF2ZSBhIHBvcG92ZXIsIHRoYXQgc2hvdWxkIHVzdWFsbHkgYmUgZGlzcGxheWVkIGFib3ZlIG9yIGJlbG93IGl0cyBhbmNob3IsXG4gICAqIGFuZCB0aGlzIGFuY2hvciBpcyBpbiBhIHNjcm9sbGFibGUgY29udGFpbmVyLCB5b3Ugc2hvdWxkIHNldCB0aGlzIHRvIHRydWUuXG4gICAqIFNhdFBvcG92ZXIgd2lsbCBvcGVuIHRoaXMgcG9wb3ZlciBpbiB0aGUgZGlyZWN0aW9uIHdoZXJlIHRoZXJlIGlzIGVub3VnaCBzcGFjZSxcbiAgICogc28gaXRzIHBvc2l0aW9uIG1pZ2h0IGRpZmZlciBmcm9tIHRoZSBob3Jpem9udGFsQWxpZ24gYW5kIHZlcnRpY2FsQWxpZ24gdmFsdWVzLlxuICAgKiBJbiB0aGlzIGNhc2Ugd2UgcmVseSBvbiB0aGUgU2F0UG9wb3Zlcjo6X2NsYXNzTGlzdCBwcm9wZXJ0eSB0byBnZXQgdGhlIGNvbXB1dGVkXG4gICAqIHBvc2l0aW9uIG9mIHRoZSBwb3BvdmVyIGFmdGVyIG9wZW5pbmcuXG4gICAqL1xuICBASW5wdXQoKSBhZGFwdE1hcmdpbnNGb3JWaWV3cG9ydEFsaWduQ2hhbmdlID0gZmFsc2U7XG5cbiAgLyoqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgcG9wb3ZlciBpcyBvcGVuZWQuICovXG4gIEBPdXRwdXQoKSBvcGVuZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIHBvcG92ZXIgaXMgY2xvc2VkLiAqL1xuICBAT3V0cHV0KCkgY2xvc2VkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgQFZpZXdDaGlsZChTYXRQb3BvdmVyQ29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KSBzYXRQb3BvdmVyITogU2F0UG9wb3ZlckNvbXBvbmVudDtcbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBAVmlld0NoaWxkKCdpbXBsaWNpdENvbnRlbnQnLCB7IHN0YXRpYzogdHJ1ZSB9KSBpbXBsaWNpdENvbnRlbnQhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgQENvbnRlbnRDaGlsZChQb3BvdmVyQ29udGVudERpcmVjdGl2ZSwgeyByZWFkOiBUZW1wbGF0ZVJlZiwgc3RhdGljOiB0cnVlIH0pIGV4cGxpY2l0Q29udGVudD86IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBtYXJnaW5DbGFzc2VzITogc3RyaW5nO1xuXG4gIGdldCBjb250ZW50KCkge1xuICAgIHJldHVybiB0aGlzLmV4cGxpY2l0Q29udGVudCB8fCB0aGlzLmltcGxpY2l0Q29udGVudDtcbiAgfVxuXG4gIGdldCBpc09wZW4oKSB7XG4gICAgcmV0dXJuIHRoaXMuX2lzT3BlbjtcbiAgfVxuICBwcml2YXRlIF9pc09wZW4gPSBmYWxzZTtcblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKGNoYW5nZXNbJ2hvcml6b250YWxBbGlnbiddICYmIGNoYW5nZXNbJ3ZlcnRpY2FsQWxpZ24nXSkge1xuICAgICAgdGhpcy5tYXJnaW5DbGFzc2VzID0gdGhpcy5nZXREZWZhdWx0TWFyZ2luQ2xhc3Nlcyh0aGlzLmhvcml6b250YWxBbGlnbiwgdGhpcy52ZXJ0aWNhbEFsaWduKTtcbiAgICB9XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIG9wZW4oKSB7XG4gICAgdGhpcy5zYXRQb3BvdmVyLm9wZW4oKTtcbiAgfVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgY2xvc2UoKSB7XG4gICAgdGhpcy5zYXRQb3BvdmVyLmNsb3NlKCk7XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIG9uT3BlbigpIHtcbiAgICB0aGlzLl9pc09wZW4gPSB0cnVlO1xuICAgIHRoaXMub3BlbmVkLmVtaXQoKTtcbiAgfVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgb25BZnRlck9wZW4oKSB7XG4gICAgaWYgKHRoaXMuYWRhcHRNYXJnaW5zRm9yVmlld3BvcnRBbGlnbkNoYW5nZSkge1xuICAgICAgdGhpcy5tYXJnaW5DbGFzc2VzID0gdGhpcy5nZXRNYXJnaW5DbGFzc2VzRm9yQ2xhc3NMaXN0KHRoaXMuc2F0UG9wb3Zlci5fY2xhc3NMaXN0KTtcbiAgICB9XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIG9uQ2xvc2UoKSB7XG4gICAgdGhpcy5faXNPcGVuID0gZmFsc2U7XG4gICAgdGhpcy5jbG9zZWQuZW1pdCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNhdFBvcG92ZXI6Ol9jbGFzc0xpc3Qgd2lsbCBjb250YWluIGEgbWFwIG9mIGFsaWdubWVudCBDU1MgY2xhc3Nlcywgb25jZSB0aGUgcG9wb3ZlciB3YXMgb3BlbmVkLlxuICAgKiBUaGVzZSBhbGlnbm1lbnQgY2xhc3NlcyBjYW4gYmUgZGlmZmVyZW50IGZyb20gd2hhdCB5b3Ugd291bGQgZXhwZWN0IGZyb20gdGhlIGhvcml6b250YWwtIGFuZCB2ZXJ0aWNhbEFsaWduIGlucHV0cyxcbiAgICogYmVjYXVzZSB0aGVyZSBtaWdodCBub3QgYmUgZW5vdWdoIHNwYWNlIGFib3ZlIHRoZSBhbmNob3IgdG8gbWVldCB0aGUgdmVydGljYWxBbGlnbj0nYWJvdmUnIGNyaXRlcmlhLFxuICAgKiBzbyBpdCB3aWxsIGJlIGRpc3BsYXllZCBiZWxvdyB0aGUgYW5jaG9yIGluc3RlYWQuXG4gICAqL1xuICBwcml2YXRlIGdldE1hcmdpbkNsYXNzZXNGb3JDbGFzc0xpc3Qoc2F0UG9wb3ZlckNsYXNzTGlzdDogeyBbY2xhc3NOYW1lOiBzdHJpbmddOiBib29sZWFuIH0pOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLm5vTWFyZ2luKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgaWYgKHNhdFBvcG92ZXJDbGFzc0xpc3RbJ3NhdC1wb3BvdmVyLWFib3ZlJ10pIHtcbiAgICAgIHJldHVybiB0aGlzLm1hcmdpbkNsYXNzZXMuaW5jbHVkZXMoJ3RvcCcpID8gdGhpcy5tYXJnaW5DbGFzc2VzIDogJ3RvcCc7XG4gICAgfVxuXG4gICAgaWYgKHNhdFBvcG92ZXJDbGFzc0xpc3RbJ3NhdC1wb3BvdmVyLWJlbG93J10pIHtcbiAgICAgIHJldHVybiB0aGlzLm1hcmdpbkNsYXNzZXMuaW5jbHVkZXMoJ2JvdHRvbScpID8gdGhpcy5tYXJnaW5DbGFzc2VzIDogJ2JvdHRvbSc7XG4gICAgfVxuXG4gICAgaWYgKHNhdFBvcG92ZXJDbGFzc0xpc3RbJ3NhdC1wb3BvdmVyLWJlZm9yZSddKSB7XG4gICAgICByZXR1cm4gdGhpcy5tYXJnaW5DbGFzc2VzLmluY2x1ZGVzKCdsZWZ0JykgPyB0aGlzLm1hcmdpbkNsYXNzZXMgOiAnbGVmdCc7XG4gICAgfVxuXG4gICAgaWYgKHNhdFBvcG92ZXJDbGFzc0xpc3RbJ3NhdC1wb3BvdmVyLWFmdGVyJ10pIHtcbiAgICAgIHJldHVybiB0aGlzLm1hcmdpbkNsYXNzZXMuaW5jbHVkZXMoJ3JpZ2h0JykgPyB0aGlzLm1hcmdpbkNsYXNzZXMgOiAncmlnaHQnO1xuICAgIH1cblxuICAgIGlmIChzYXRQb3BvdmVyQ2xhc3NMaXN0WydzYXQtcG9wb3Zlci1jZW50ZXInXSkge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBwcml2YXRlIGdldERlZmF1bHRNYXJnaW5DbGFzc2VzKGhvcml6b250YWxBbGlnbjogU2F0UG9wb3Zlckhvcml6b250YWxBbGlnbiwgdmVydGljYWxBbGlnbjogU2F0UG9wb3ZlclZlcnRpY2FsQWxpZ24pOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLm5vTWFyZ2luKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgaWYgKGhvcml6b250YWxBbGlnbiA9PT0gJ2FmdGVyJykge1xuICAgICAgaWYgKHZlcnRpY2FsQWxpZ24gPT09ICdjZW50ZXInIHx8IHZlcnRpY2FsQWxpZ24gPT09ICdzdGFydCcgfHwgdmVydGljYWxBbGlnbiA9PT0gJ2VuZCcpIHtcbiAgICAgICAgcmV0dXJuICdyaWdodCc7XG4gICAgICB9IGVsc2UgaWYgKHZlcnRpY2FsQWxpZ24gPT09ICdhYm92ZScpIHtcbiAgICAgICAgcmV0dXJuICdyaWdodCB0b3AnO1xuICAgICAgfSBlbHNlIGlmICh2ZXJ0aWNhbEFsaWduID09PSAnYmVsb3cnKSB7XG4gICAgICAgIHJldHVybiAncmlnaHQgYm90dG9tJztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoaG9yaXpvbnRhbEFsaWduID09PSAnYmVmb3JlJykge1xuICAgICAgaWYgKHZlcnRpY2FsQWxpZ24gPT09ICdjZW50ZXInIHx8IHZlcnRpY2FsQWxpZ24gPT09ICdzdGFydCcgfHwgdmVydGljYWxBbGlnbiA9PT0gJ2VuZCcpIHtcbiAgICAgICAgcmV0dXJuICdsZWZ0JztcbiAgICAgIH0gZWxzZSBpZiAodmVydGljYWxBbGlnbiA9PT0gJ2Fib3ZlJykge1xuICAgICAgICByZXR1cm4gJ2xlZnQgdG9wJztcbiAgICAgIH0gZWxzZSBpZiAodmVydGljYWxBbGlnbiA9PT0gJ2JlbG93Jykge1xuICAgICAgICByZXR1cm4gJ2xlZnQgYm90dG9tJztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoaG9yaXpvbnRhbEFsaWduID09PSAnY2VudGVyJyB8fCBob3Jpem9udGFsQWxpZ24gPT09ICdzdGFydCcgfHwgaG9yaXpvbnRhbEFsaWduID09PSAnZW5kJykge1xuICAgICAgaWYgKHZlcnRpY2FsQWxpZ24gPT09ICdhYm92ZScpIHtcbiAgICAgICAgcmV0dXJuICd0b3AnO1xuICAgICAgfSBlbHNlIGlmICh2ZXJ0aWNhbEFsaWduID09PSAnYmVsb3cnKSB7XG4gICAgICAgIHJldHVybiAnYm90dG9tJztcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuICcnO1xuICB9XG59XG4iLCI8c2F0LXBvcG92ZXJcbiAgW2FuY2hvcl09XCJ0cmlnZ2VyLmFuY2hvclwiXG4gIFtob3Jpem9udGFsQWxpZ25dPVwiaG9yaXpvbnRhbEFsaWduXCJcbiAgW3ZlcnRpY2FsQWxpZ25dPVwidmVydGljYWxBbGlnblwiXG4gIFtyZXN0b3JlRm9jdXNdPVwicmVzdG9yZUZvY3VzXCJcbiAgW2xvY2tBbGlnbm1lbnRdPVwidHJ1ZVwiXG4gIFthdXRvRm9jdXNdPVwiYXV0b0ZvY3VzXCJcbiAgW2hhc0JhY2tkcm9wXT1cImhhc0JhY2tkcm9wXCJcbiAgb3BlblRyYW5zaXRpb249XCIwbXNcIlxuICBjbG9zZVRyYW5zaXRpb249XCIwbXNcIlxuICAob3BlbmVkKT1cIm9uT3BlbigpXCJcbiAgKGFmdGVyT3Blbik9XCJvbkFmdGVyT3BlbigpXCJcbiAgKGNsb3NlZCk9XCJvbkNsb3NlKClcIlxuPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJwb3BvdmVyQ29udGFpbmVyXCJcbiAgICBbbmdDbGFzc109XCJtYXJnaW5DbGFzc2VzXCJcbiAgICBbY2xhc3Mub3ZlcmZsb3dIaWRkZW5dPVwiIWFsbG93T3ZlcmZsb3dcIlxuICAgIChtb3VzZWVudGVyKT1cInRyaWdnZXIuc2hvd1BvcG92ZXIodHJ1ZSlcIlxuICAgIChtb3VzZWxlYXZlKT1cIiFoYXNCYWNrZHJvcCAmJiB0cmlnZ2VyLmNsb3NlUG9wb3Zlcih0cnVlKVwiXG4gICAgKGtleWRvd24uZXNjYXBlKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKTsgdHJpZ2dlci5jbG9zZVBvcG92ZXIodHJ1ZSlcIlxuICA+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzT3BlblwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRcIiAvPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvc2F0LXBvcG92ZXI+XG48bmctdGVtcGxhdGUgI2ltcGxpY2l0Q29udGVudD5cbiAgPG5nLWNvbnRlbnQgLz5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
228
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9wb3BvdmVyLXVpL2NvbXBvbmVudHMvcG9wb3Zlci9wb3BvdmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL3BvcG92ZXItdWkvY29tcG9uZW50cy9wb3BvdmVyL3BvcG92ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFBaUIsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2SSxPQUFPLEVBQUUsbUJBQW1CLEVBQTZCLGdCQUFnQixFQUEyQixNQUFNLHNCQUFzQixDQUFDO0FBQ2pJLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDOzs7QUFHckY7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXlERztBQVFILE1BQU0sT0FBTyxnQkFBZ0I7SUFQN0I7UUFjRSxnQ0FBZ0M7UUFDdkIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUMxQiw2REFBNkQ7UUFDcEQsa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFDL0IscUZBQXFGO1FBQzVFLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDM0IsNkZBQTZGO1FBQ3BGLGlCQUFZLEdBQUcsSUFBSSxDQUFDO1FBQzdCLDBDQUEwQztRQUNqQyxnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUM3Qjs7Ozs7OztXQU9HO1FBQ00sdUNBQWtDLEdBQUcsS0FB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YUFBYSxLQUFLLE9BQU8sRUFBRSxDQUFDO2dCQUNyQyxPQUFPLFFBQVEsQ0FBQztZQUNsQixDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQzs4R0F6SlUsZ0JBQWdCO2tHQUFoQixnQkFBZ0IsMGRBc0NiLHVCQUF1QiwyQkFBVSxXQUFXLHVGQUwvQyxtQkFBbUIsc01DeEdoQywrNEJBOEJBLHdkRHVDWSxnQkFBZ0IsMGdCQUFFLE9BQU8sb0ZBQUUsSUFBSSw2RkFBRSxnQkFBZ0I7OzJGQUVoRCxnQkFBZ0I7a0JBUDVCLFNBQVM7K0JBQ0UsWUFBWSxjQUdWLElBQUksV0FDUCxDQUFDLGdCQUFnQixFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLENBQUM7OEJBSW5ELE9BQU87c0JBQWYsS0FBSztnQkFFRyxlQUFlO3NCQUF2QixLQUFLO2dCQUVHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBRUcsUUFBUTtzQkFBaEIsS0FBSztnQkFFRyxhQUFhO3NCQUFyQixLQUFLO2dCQUVHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRUcsWUFBWTtzQkFBcEIsS0FBSztnQkFFRyxXQUFXO3NCQUFuQixLQUFLO2dCQVNHLGtDQUFrQztzQkFBMUMsS0FBSztnQkFHSSxNQUFNO3NCQUFmLE1BQU07Z0JBRUcsTUFBTTtzQkFBZixNQUFNO2dCQUcyQyxVQUFVO3NCQUEzRCxTQUFTO3VCQUFDLG1CQUFtQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFFQSxlQUFlO3NCQUE5RCxTQUFTO3VCQUFDLGlCQUFpQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFHOEIsZUFBZTtzQkFBMUYsWUFBWTt1QkFBQyx1QkFBdUIsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nQ2xhc3MsIE5nSWYsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzLCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTYXRQb3BvdmVyQ29tcG9uZW50LCBTYXRQb3BvdmVySG9yaXpvbnRhbEFsaWduLCBTYXRQb3BvdmVyTW9kdWxlLCBTYXRQb3BvdmVyVmVydGljYWxBbGlnbiB9IGZyb20gJ0BuY3N0YXRlL3NhdC1wb3BvdmVyJztcbmltcG9ydCB7IFBvcG92ZXJDb250ZW50RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9wb3BvdmVyLWNvbnRlbnQuZGlyZWN0aXZlJztcbmltcG9ydCB7IFBvcG92ZXJUcmlnZ2VyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9wb3BvdmVyLWhvdmVyLmRpcmVjdGl2ZSc7XG5cbi8qKlxuICogVGhlIFBvcG92ZXIgY29tcG9uZW50IGlzIGJhc2VkIG9uIHRoZSBbbmNzdGF0ZS1zYXQvcG9wb3Zlcl0oaHR0cHM6Ly9naXRodWIuY29tL25jc3RhdGUtc2F0L3BvcG92ZXIpIGxpYnJhcnkuXG4gKlxuICogIyMgRXhhbXBsZXNcblxuICogVGhpcyBwb3BvdmVyIGVuY2Fwc3VsYXRlcyB0aGlzIG9wZW4gc291cmNlIGxpYnJhcnk6IGh0dHBzOi8vZ2l0aHViLmNvbS9uY3N0YXRlLXNhdC9wb3BvdmVyLFxuICogbWFrZSBzdXJlIHRvIGFsc28gY2hlY2sgb3V0IHRoZSBkb2NzIG92ZXIgdGhlcmUuXG4gKlxuICogQXMgb2YgdG9kYXkgdGhleSBhcmUgdHdvIHRyaWdnZXIgc3RyYXRlZ2llcyB0byBkaXNwbGF5IGEgcG9wb3Zlci5cbiAqIDEuIFNob3cgb24gaG92ZXJpbmcgdGhlIGFuY2hvciBhbmQgd2hpbGUgaG92ZXJpbmcgdGhlIHBvcG92ZXIgYm9keS5cbiAqIDIuIFNob3cgb24gY2xpY2sgYW5kIHdoaWxlIGhvdmVyaW5nIHRoZSBwb3BvdmVyIGJvZHkuXG4gKlxuICogRm9yIHVzZSBjYXNlIDEuIHlvdSB3b3VsZCB1c2UgdGhlIGx4UG9wb3ZlckhvdmVyIGRpcmVjdGl2ZSwgd2hpY2ggZXhwb3J0cyBhcyBob3ZlckFuY2hvci5cbiAqXG4gKiAjIyMgRXhhbXBsZTpcbiAqIGBgYGh0bWxcbiAqIDxkaXYgbHhQb3BvdmVySG92ZXJcbiAqICAgICAgaG92ZXJBbmNob3JcbiAqICAgICAgc2F0UG9wb3ZlckFuY2hvclxuICogICAgICAjYW5jaG9yPVwiaG92ZXJBbmNob3JcIj48L2Rpdj5cbiAqIDxseC1wb3BvdmVyIFt0cmlnZ2VyXT1cImFuY2hvclwiXG4gKiAgICAgICAgICAgICBob3Jpem9udGFsQWxpZ249XCJhZnRlclwiXG4gKiAgICAgICAgICAgICB2ZXJ0aWNhbEFsaWduPVwiY2VudGVyXCI+XG4gKiAgICA8cD5Qb3BvdmVyIGNvbnRlbnQ8L3A+XG4gKiA8L2x4LXBvcG92ZXI+XG4gKiBgYGBcbiAqXG4gKiBGb3IgdXNlIGNhc2UgMi4geW91IHdvdWxkIHVzZSB0aGUgbHhQb3BvdmVyQ2xpY2sgZGlyZWN0aXZlLCB3aGljaCBleHBvcnRzIGFzIGNsaWNrQW5jaG9yLlxuICogTm90ZTogU2luY2UgdGhlIG9ubHkgY29tcG9uZW50IHdoZXJlIHdlIHVzZSB0aGUgbHhQb3BvdmVyQ2xpY2sgZGlyZWN0aXZlIChSZXBvcnRDb21wb25lbnQpXG4gKiBuZWVkcyB0byBmZXRjaCBzb21lIGRhdGEgYmVmb3JlIG9wZW5pbmcgaXQsIHdlIGRvIG5vdCByZWdpc3RlciBhIGNsaWNrIEV2ZW50TGlzdGVuZXIgaW4gdGhpcyBkaXJlY3RpdmUsXG4gKiBidXQgcmVxdWlyZSB0aGUgZGV2ZWxvcGVyIHRvIGltcGxlbWVudCB0aGF0IGluIHRoZSBjb21wb25lbnQsIHdoZXJlIHRoZSBwb3BvdmVyIGlzIHVzZWQuXG4gKlxuICogIyMjIEV4YW1wbGU6XG4gKiBgYGBodG1sXG4gKiA8ZGl2IGx4UG9wb3ZlckNsaWNrXG4gKiAgICAgIGNsaWNrQW5jaG9yXG4gKiAgICAgIHNhdFBvcG92ZXJBbmNob3JcbiAqICAgICAgI2FuY2hvcj1cImNsaWNrQW5jaG9yXCJcbiAqICAgICAgKGNsaWNrKT1cInBvcG92ZXIub3BlbigpXCI+Q2xpY2sgTWUhPC9kaXY+XG4gKiA8bHgtcG9wb3ZlciBbdHJpZ2dlcl09XCJhbmNob3JcIlxuICogICAgICAgICAgICAgaG9yaXpvbnRhbEFsaWduPVwiYWZ0ZXJcIlxuICogICAgICAgICAgICAgdmVydGljYWxBbGlnbj1cImNlbnRlclwiXG4gKiAgICAgICAgICAgICAjcG9wb3Zlcj5cbiAqICAgIDxwPlBvcG92ZXIgY29udGVudDwvcD5cbiAqIDwvbHgtcG9wb3Zlcj5cbiAqIGBgYFxuICpcbiAqIElmIHRoaXMgY29tcG9uZW50IGlzIHVzZWQgd2l0aCBhbmd1bGFyQ29tcGlsZXJPcHRpb25zIHN0cmljdFRlbXBsYXRlcz10cnVlLFxuICogc2F0UG9wb3ZlckFuY2hvciBtdXN0IGJlIHNldCB0byB0aGUgcmVmZXJlbmNlIHRvIHRoZSBTYXRQb3BvdmVyIGluc2lkZSBseC1wb3BvdmVyLlxuICpcbiAqICMjIyBFeGFtcGxlOlxuICogYGBgaHRtbFxuICogPGRpdiBbc2F0UG9wb3ZlckFuY2hvcl09XCJwb3BvdmVyLnNhdFBvcG92ZXJcIj48L2Rpdj5cbiAqIDxseC1wb3BvdmVyICNwb3BvdmVyPlxuICogICAgPHA+UG9wb3ZlciBjb250ZW50PC9wPlxuICogPC9seC1wb3BvdmVyPlxuICogYGBgXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2x4LXBvcG92ZXInLFxuICB0ZW1wbGF0ZVVybDogJ3BvcG92ZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsncG9wb3Zlci5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbU2F0UG9wb3Zlck1vZHVsZSwgTmdDbGFzcywgTmdJZiwgTmdUZW1wbGF0ZU91dGxldF1cbn0pXG5leHBvcnQgY2xhc3MgUG9wb3ZlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIC8qKiBUaGUgdHJpZ2dlciBkaXJlY3RpdmUgdGhhdCB3aWxsIG9wZW4gdGhlIHBvcG92ZXIuIFRoaXMgaXMgYWxzbyB0aGUgYW5jaG9yIGZvciB0aGUgcG9wb3Zlci4gKi9cbiAgQElucHV0KCkgdHJpZ2dlciE6IFBvcG92ZXJUcmlnZ2VyRGlyZWN0aXZlO1xuICAvKiogVGhlIGhvcml6b250YWwgYWxpZ25tZW50IG9mIHRoZSBwb3BvdmVyIChgY2VudGVyYCBieSBkZWZhdWx0KS4gKi9cbiAgQElucHV0KCkgaG9yaXpvbnRhbEFsaWduITogU2F0UG9wb3Zlckhvcml6b250YWxBbGlnbjtcbiAgLyoqIFRoZSB2ZXJ0aWNhbCBhbGlnbm1lbnQgb2YgdGhlIHBvcG92ZXIgKGBhYm92ZWAgYnkgZGVmYXVsdCkuICovXG4gIEBJbnB1dCgpIHZlcnRpY2FsQWxpZ24hOiBTYXRQb3BvdmVyVmVydGljYWxBbGlnbjtcbiAgLyoqIFdoZXRoZXIgdG8gYXBwbHkgbWFyZ2lucy4gKi9cbiAgQElucHV0KCkgbm9NYXJnaW4gPSBmYWxzZTtcbiAgLyoqIFdoZXRoZXIgdG8gYWxsb3cgdGhlIHBvcG92ZXIgdG8gb3ZlcmZsb3cgdGhlIHZpZXdwb3J0LiAqL1xuICBASW5wdXQoKSBhbGxvd092ZXJmbG93ID0gZmFsc2U7XG4gIC8qKiBXaGV0aGVyIHRvIGZvY3VzIHRoZSBmaXJzdCBmb2N1c2FibGUgZWxlbWVudCBpbiB0aGUgcG9wb3ZlciB3aGVuIGl0IGlzIG9wZW5lZC4gKi9cbiAgQElucHV0KCkgYXV0b0ZvY3VzID0gZmFsc2U7XG4gIC8qKiBXaGV0aGVyIHRvIHJlc3RvcmUgZm9jdXMgdG8gdGhlIHByZXZpb3VzbHktZm9jdXNlZCBlbGVtZW50IHdoZW4gdGhlIHBvcG92ZXIgaXMgY2xvc2VkLiAqL1xuICBASW5wdXQoKSByZXN0b3JlRm9jdXMgPSB0cnVlO1xuICAvKiogV2hldGhlciB0aGUgcG9wb3ZlciBoYXMgYSBiYWNrZHJvcC4gKi9cbiAgQElucHV0KCkgaGFzQmFja2Ryb3AgPSBmYWxzZTtcbiAgLyoqXG4gICAqIElmIHlvdSBoYXZlIGEgcG9wb3ZlciwgdGhhdCBzaG91bGQgdXN1YWxseSBiZSBkaXNwbGF5ZWQgYWJvdmUgb3IgYmVsb3cgaXRzIGFuY2hvcixcbiAgICogYW5kIHRoaXMgYW5jaG9yIGlzIGluIGEgc2Nyb2xsYWJsZSBjb250YWluZXIsIHlvdSBzaG91bGQgc2V0IHRoaXMgdG8gdHJ1ZS5cbiAgICogU2F0UG9wb3ZlciB3aWxsIG9wZW4gdGhpcyBwb3BvdmVyIGluIHRoZSBkaXJlY3Rpb24gd2hlcmUgdGhlcmUgaXMgZW5vdWdoIHNwYWNlLFxuICAgKiBzbyBpdHMgcG9zaXRpb24gbWlnaHQgZGlmZmVyIGZyb20gdGhlIGhvcml6b250YWxBbGlnbiBhbmQgdmVydGljYWxBbGlnbiB2YWx1ZXMuXG4gICAqIEluIHRoaXMgY2FzZSB3ZSByZWx5IG9uIHRoZSBTYXRQb3BvdmVyOjpfY2xhc3NMaXN0IHByb3BlcnR5IHRvIGdldCB0aGUgY29tcHV0ZWRcbiAgICogcG9zaXRpb24gb2YgdGhlIHBvcG92ZXIgYWZ0ZXIgb3BlbmluZy5cbiAgICovXG4gIEBJbnB1dCgpIGFkYXB0TWFyZ2luc0ZvclZpZXdwb3J0QWxpZ25DaGFuZ2UgPSBmYWxzZTtcblxuICAvKiogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBwb3BvdmVyIGlzIG9wZW5lZC4gKi9cbiAgQE91dHB1dCgpIG9wZW5lZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgLyoqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgcG9wb3ZlciBpcyBjbG9zZWQuICovXG4gIEBPdXRwdXQoKSBjbG9zZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBAVmlld0NoaWxkKFNhdFBvcG92ZXJDb21wb25lbnQsIHsgc3RhdGljOiB0cnVlIH0pIHNhdFBvcG92ZXIhOiBTYXRQb3BvdmVyQ29tcG9uZW50O1xuICAvKiogQGludGVybmFsICovXG4gIEBWaWV3Q2hpbGQoJ2ltcGxpY2l0Q29udGVudCcsIHsgc3RhdGljOiB0cnVlIH0pIGltcGxpY2l0Q29udGVudCE6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBAQ29udGVudENoaWxkKFBvcG92ZXJDb250ZW50RGlyZWN0aXZlLCB7IHJlYWQ6IFRlbXBsYXRlUmVmLCBzdGF0aWM6IHRydWUgfSkgZXhwbGljaXRDb250ZW50PzogVGVtcGxhdGVSZWY8YW55PjtcblxuICAvKiogQGludGVybmFsICovXG4gIG1hcmdpbkNsYXNzZXMhOiBzdHJpbmc7XG5cbiAgZ2V0IGNvbnRlbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZXhwbGljaXRDb250ZW50IHx8IHRoaXMuaW1wbGljaXRDb250ZW50O1xuICB9XG5cbiAgZ2V0IGlzT3BlbigpIHtcbiAgICByZXR1cm4gdGhpcy5faXNPcGVuO1xuICB9XG4gIHByaXZhdGUgX2lzT3BlbiA9IGZhbHNlO1xuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoY2hhbmdlc1snaG9yaXpvbnRhbEFsaWduJ10gJiYgY2hhbmdlc1sndmVydGljYWxBbGlnbiddKSB7XG4gICAgICB0aGlzLm1hcmdpbkNsYXNzZXMgPSB0aGlzLmdldERlZmF1bHRNYXJnaW5DbGFzc2VzKHRoaXMuaG9yaXpvbnRhbEFsaWduLCB0aGlzLnZlcnRpY2FsQWxpZ24pO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgb3BlbigpIHtcbiAgICB0aGlzLnNhdFBvcG92ZXIub3BlbigpO1xuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBjbG9zZSgpIHtcbiAgICB0aGlzLnNhdFBvcG92ZXIuY2xvc2UoKTtcbiAgfVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgb25PcGVuKCkge1xuICAgIHRoaXMuX2lzT3BlbiA9IHRydWU7XG4gICAgdGhpcy5vcGVuZWQuZW1pdCgpO1xuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBvbkFmdGVyT3BlbigpIHtcbiAgICBpZiAodGhpcy5hZGFwdE1hcmdpbnNGb3JWaWV3cG9ydEFsaWduQ2hhbmdlKSB7XG4gICAgICB0aGlzLm1hcmdpbkNsYXNzZXMgPSB0aGlzLmdldE1hcmdpbkNsYXNzZXNGb3JDbGFzc0xpc3QodGhpcy5zYXRQb3BvdmVyLl9jbGFzc0xpc3QpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgb25DbG9zZSgpIHtcbiAgICB0aGlzLl9pc09wZW4gPSBmYWxzZTtcbiAgICB0aGlzLmNsb3NlZC5lbWl0KCk7XG4gIH1cblxuICAvKipcbiAgICogU2F0UG9wb3Zlcjo6X2NsYXNzTGlzdCB3aWxsIGNvbnRhaW4gYSBtYXAgb2YgYWxpZ25tZW50IENTUyBjbGFzc2VzLCBvbmNlIHRoZSBwb3BvdmVyIHdhcyBvcGVuZWQuXG4gICAqIFRoZXNlIGFsaWdubWVudCBjbGFzc2VzIGNhbiBiZSBkaWZmZXJlbnQgZnJvbSB3aGF0IHlvdSB3b3VsZCBleHBlY3QgZnJvbSB0aGUgaG9yaXpvbnRhbC0gYW5kIHZlcnRpY2FsQWxpZ24gaW5wdXRzLFxuICAgKiBiZWNhdXNlIHRoZXJlIG1pZ2h0IG5vdCBiZSBlbm91Z2ggc3BhY2UgYWJvdmUgdGhlIGFuY2hvciB0byBtZWV0IHRoZSB2ZXJ0aWNhbEFsaWduPSdhYm92ZScgY3JpdGVyaWEsXG4gICAqIHNvIGl0IHdpbGwgYmUgZGlzcGxheWVkIGJlbG93IHRoZSBhbmNob3IgaW5zdGVhZC5cbiAgICovXG4gIHByaXZhdGUgZ2V0TWFyZ2luQ2xhc3Nlc0ZvckNsYXNzTGlzdChzYXRQb3BvdmVyQ2xhc3NMaXN0OiB7IFtjbGFzc05hbWU6IHN0cmluZ106IGJvb2xlYW4gfSk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMubm9NYXJnaW4pIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICBpZiAoc2F0UG9wb3ZlckNsYXNzTGlzdFsnc2F0LXBvcG92ZXItYWJvdmUnXSkge1xuICAgICAgcmV0dXJuIHRoaXMubWFyZ2luQ2xhc3Nlcy5pbmNsdWRlcygndG9wJykgPyB0aGlzLm1hcmdpbkNsYXNzZXMgOiAndG9wJztcbiAgICB9XG5cbiAgICBpZiAoc2F0UG9wb3ZlckNsYXNzTGlzdFsnc2F0LXBvcG92ZXItYmVsb3cnXSkge1xuICAgICAgcmV0dXJuIHRoaXMubWFyZ2luQ2xhc3Nlcy5pbmNsdWRlcygnYm90dG9tJykgPyB0aGlzLm1hcmdpbkNsYXNzZXMgOiAnYm90dG9tJztcbiAgICB9XG5cbiAgICBpZiAoc2F0UG9wb3ZlckNsYXNzTGlzdFsnc2F0LXBvcG92ZXItYmVmb3JlJ10pIHtcbiAgICAgIHJldHVybiB0aGlzLm1hcmdpbkNsYXNzZXMuaW5jbHVkZXMoJ2xlZnQnKSA/IHRoaXMubWFyZ2luQ2xhc3NlcyA6ICdsZWZ0JztcbiAgICB9XG5cbiAgICBpZiAoc2F0UG9wb3ZlckNsYXNzTGlzdFsnc2F0LXBvcG92ZXItYWZ0ZXInXSkge1xuICAgICAgcmV0dXJuIHRoaXMubWFyZ2luQ2xhc3Nlcy5pbmNsdWRlcygncmlnaHQnKSA/IHRoaXMubWFyZ2luQ2xhc3NlcyA6ICdyaWdodCc7XG4gICAgfVxuXG4gICAgaWYgKHNhdFBvcG92ZXJDbGFzc0xpc3RbJ3NhdC1wb3BvdmVyLWNlbnRlciddKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RGVmYXVsdE1hcmdpbkNsYXNzZXMoaG9yaXpvbnRhbEFsaWduOiBTYXRQb3BvdmVySG9yaXpvbnRhbEFsaWduLCB2ZXJ0aWNhbEFsaWduOiBTYXRQb3BvdmVyVmVydGljYWxBbGlnbik6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMubm9NYXJnaW4pIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICBpZiAoaG9yaXpvbnRhbEFsaWduID09PSAnYWZ0ZXInKSB7XG4gICAgICBpZiAodmVydGljYWxBbGlnbiA9PT0gJ2NlbnRlcicgfHwgdmVydGljYWxBbGlnbiA9PT0gJ3N0YXJ0JyB8fCB2ZXJ0aWNhbEFsaWduID09PSAnZW5kJykge1xuICAgICAgICByZXR1cm4gJ3JpZ2h0JztcbiAgICAgIH0gZWxzZSBpZiAodmVydGljYWxBbGlnbiA9PT0gJ2Fib3ZlJykge1xuICAgICAgICByZXR1cm4gJ3JpZ2h0IHRvcCc7XG4gICAgICB9IGVsc2UgaWYgKHZlcnRpY2FsQWxpZ24gPT09ICdiZWxvdycpIHtcbiAgICAgICAgcmV0dXJuICdyaWdodCBib3R0b20nO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChob3Jpem9udGFsQWxpZ24gPT09ICdiZWZvcmUnKSB7XG4gICAgICBpZiAodmVydGljYWxBbGlnbiA9PT0gJ2NlbnRlcicgfHwgdmVydGljYWxBbGlnbiA9PT0gJ3N0YXJ0JyB8fCB2ZXJ0aWNhbEFsaWduID09PSAnZW5kJykge1xuICAgICAgICByZXR1cm4gJ2xlZnQnO1xuICAgICAgfSBlbHNlIGlmICh2ZXJ0aWNhbEFsaWduID09PSAnYWJvdmUnKSB7XG4gICAgICAgIHJldHVybiAnbGVmdCB0b3AnO1xuICAgICAgfSBlbHNlIGlmICh2ZXJ0aWNhbEFsaWduID09PSAnYmVsb3cnKSB7XG4gICAgICAgIHJldHVybiAnbGVmdCBib3R0b20nO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChob3Jpem9udGFsQWxpZ24gPT09ICdjZW50ZXInIHx8IGhvcml6b250YWxBbGlnbiA9PT0gJ3N0YXJ0JyB8fCBob3Jpem9udGFsQWxpZ24gPT09ICdlbmQnKSB7XG4gICAgICBpZiAodmVydGljYWxBbGlnbiA9PT0gJ2Fib3ZlJykge1xuICAgICAgICByZXR1cm4gJ3RvcCc7XG4gICAgICB9IGVsc2UgaWYgKHZlcnRpY2FsQWxpZ24gPT09ICdiZWxvdycpIHtcbiAgICAgICAgcmV0dXJuICdib3R0b20nO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gJyc7XG4gIH1cbn1cbiIsIjxzYXQtcG9wb3ZlclxuICBbYW5jaG9yXT1cInRyaWdnZXIuYW5jaG9yXCJcbiAgW2hvcml6b250YWxBbGlnbl09XCJob3Jpem9udGFsQWxpZ25cIlxuICBbdmVydGljYWxBbGlnbl09XCJ2ZXJ0aWNhbEFsaWduXCJcbiAgW3Jlc3RvcmVGb2N1c109XCJyZXN0b3JlRm9jdXNcIlxuICBbbG9ja0FsaWdubWVudF09XCJ0cnVlXCJcbiAgW2F1dG9Gb2N1c109XCJhdXRvRm9jdXNcIlxuICBbaGFzQmFja2Ryb3BdPVwiaGFzQmFja2Ryb3BcIlxuICBvcGVuVHJhbnNpdGlvbj1cIjBtc1wiXG4gIGNsb3NlVHJhbnNpdGlvbj1cIjBtc1wiXG4gIChvcGVuZWQpPVwib25PcGVuKClcIlxuICAoYWZ0ZXJPcGVuKT1cIm9uQWZ0ZXJPcGVuKClcIlxuICAoY2xvc2VkKT1cIm9uQ2xvc2UoKVwiXG4+XG4gIDxkaXZcbiAgICBjbGFzcz1cInBvcG92ZXJDb250YWluZXJcIlxuICAgIFtuZ0NsYXNzXT1cIm1hcmdpbkNsYXNzZXNcIlxuICAgIFtjbGFzcy5vdmVyZmxvd0hpZGRlbl09XCIhYWxsb3dPdmVyZmxvd1wiXG4gICAgKG1vdXNlZW50ZXIpPVwidHJpZ2dlci5zaG93UG9wb3Zlcih0cnVlKVwiXG4gICAgKG1vdXNlbGVhdmUpPVwiIWhhc0JhY2tkcm9wICYmIHRyaWdnZXIuY2xvc2VQb3BvdmVyKHRydWUpXCJcbiAgICAoa2V5ZG93bi5lc2NhcGUpPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyB0cmlnZ2VyLmNsb3NlUG9wb3Zlcih0cnVlKVwiXG4gID5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNPcGVuXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudFwiIC8+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9zYXQtcG9wb3Zlcj5cbjxuZy10ZW1wbGF0ZSAjaW1wbGljaXRDb250ZW50PlxuICA8bmctY29udGVudCAvPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -9,36 +9,15 @@ import { TabComponent } from '../tab/tab.component';
9
9
  import { LxTabGroupKeyCode } from './tab-group-key-codes.enum';
10
10
  import * as i0 from "@angular/core";
11
11
  import * as i1 from "@angular/cdk/portal";
12
- /**
13
- * ## Usage
14
- *
15
- * 1. Import the `LxTabUiModule` module from `@leanix/components` in your module where you want to use the component.
16
- *
17
- * ```ts
18
- * import { LxTabUiModule } from '@leanix/components';
19
- *
20
- * // ...
21
- *
22
- * @NgModule({
23
- * // ...
24
- * imports: [
25
- * // ...
26
- * LxTabUiModule
27
- * // ...
28
- * ]
29
- * })
30
- * export class MyModule {}
31
- * ```
32
- *
33
- * 2. Use the component in your template.
34
- */
35
12
  export class TabGroupComponent {
13
+ /** @internal */
36
14
  get tabIds() {
37
15
  return this.tabs.map((t) => t.tabId);
38
16
  }
39
17
  get tabs() {
40
18
  return this.tabsQueryList?.toArray() || [];
41
19
  }
20
+ /** @internal */
42
21
  get activeTabPortal() {
43
22
  return this.tabs[this.selectedIndex]?.content;
44
23
  }
@@ -52,8 +31,10 @@ export class TabGroupComponent {
52
31
  this.indexChange = new EventEmitter();
53
32
  /**
54
33
  * The tab that is currently focused via keyboard.
34
+ * @internal
55
35
  */
56
36
  this.focusedIndex = 0;
37
+ /** @internal */
57
38
  this.destroyed$ = new Subject();
58
39
  this.listenToFirstTabSelectByAngularRouterForTabLinks().subscribe((tab) => {
59
40
  // synchonize the focusedIndex and selectedIndex state with the tab that is active through the current route.
@@ -89,12 +70,14 @@ export class TabGroupComponent {
89
70
  ngOnDestroy() {
90
71
  this.destroyed$.next();
91
72
  }
73
+ /** @internal */
92
74
  onFocusOut(event) {
93
75
  if (!this.tabListElement?.nativeElement?.contains(event.relatedTarget)) {
94
76
  // resync focused index on selected index when leaving tabs
95
77
  this.focusedIndex = this.selectedIndex;
96
78
  }
97
79
  }
80
+ /** @internal */
98
81
  switchTo(tab) {
99
82
  this.tabsQueryList?.forEach((t, index) => {
100
83
  t.isActive = t === tab;
@@ -106,6 +89,7 @@ export class TabGroupComponent {
106
89
  });
107
90
  this.cd.markForCheck();
108
91
  }
92
+ /** @internal */
109
93
  handleKeyDown(event) {
110
94
  switch (event.code) {
111
95
  case LxTabGroupKeyCode.ArrowRight:
@@ -163,4 +147,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
163
147
  type: ViewChild,
164
148
  args: ['tabListElement']
165
149
  }] } });
166
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLWdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL3RhYi11aS9jb21wb25lbnRzL3RhYi1ncm91cC90YWItZ3JvdXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvdGFiLXVpL2NvbXBvbmVudHMvdGFiLWdyb3VwL3RhYi1ncm91cC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFFTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULGVBQWUsRUFFZixZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFHTixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFjLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEQsT0FBTyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7QUFFL0Q7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUFTSCxNQUFNLE9BQU8saUJBQWlCO0lBaUI1QixJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFD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QUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzFELE9BQU8sS0FBSyxDQUFDLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDM0YsQ0FBQyxDQUFDLEVBQ0YsS0FBSyxFQUFFLEVBQ1AsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQywwR0FBMEc7U0FDdEksQ0FBQztJQUNKLENBQUM7OEdBM0lVLGlCQUFpQjtrR0FBakIsaUJBQWlCLHFOQVNYLFlBQVksb0tDaEUvQixzUUFZQSwrUUR5Q1ksWUFBWTs7QUFVSTtJQUF6QixPQUFPLENBQUMsZUFBZSxDQUFDO3lEQUFzRDsyRkFScEUsaUJBQWlCO2tCQVI3QixTQUFTOytCQUNFLGNBQWMsbUJBR1AsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsZ0JBQWdCLENBQUM7c0ZBR2hDLFVBQVU7c0JBQWxCLEtBQUs7Z0JBSUcsYUFBYTtzQkFBckIsS0FBSztnQkFDSSxXQUFXO3NCQUFwQixNQUFNO2dCQUVtQixjQUFjLE1BQ1QsYUFBYTtzQkFBM0MsZUFBZTt1QkFBQyxZQUFZO2dCQUNBLGNBQWM7c0JBQTFDLFNBQVM7dUJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUG9ydGFsTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgbWVyZ2UgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpcnN0LCBtYXAsIHN0YXJ0V2l0aCwgc3dpdGNoTWFwLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBPYnNlcnZlIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL29ic2VydmUnO1xuaW1wb3J0IHsgVGFiQ29tcG9uZW50IH0gZnJvbSAnLi4vdGFiL3RhYi5jb21wb25lbnQnO1xuaW1wb3J0IHsgTHhUYWJHcm91cEtleUNvZGUgfSBmcm9tICcuL3RhYi1ncm91cC1rZXktY29kZXMuZW51bSc7XG5cbi8qKlxuICogIyMgVXNhZ2VcbiAqXG4gKiAxLiBJbXBvcnQgdGhlIGBMeFRhYlVpTW9kdWxlYCBtb2R1bGUgZnJvbSBgQGxlYW5peC9jb21wb25lbnRzYCBpbiB5b3VyIG1vZHVsZSB3aGVyZSB5b3Ugd2FudCB0byB1c2UgdGhlIGNvbXBvbmVudC5cbiAqXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgTHhUYWJVaU1vZHVsZSB9IGZyb20gJ0BsZWFuaXgvY29tcG9uZW50cyc7XG4gKlxuICogLy8gLi4uXG4gKlxuICogQE5nTW9kdWxlKHtcbiAqICAgLy8gLi4uXG4gKiAgIGltcG9ydHM6IFtcbiAqICAgICAvLyAuLi5cbiAqICAgICBMeFRhYlVpTW9kdWxlXG4gKiAgICAgLy8gLi4uXG4gKiAgIF1cbiAqIH0pXG4gKiBleHBvcnQgY2xhc3MgTXlNb2R1bGUge31cbiAqIGBgYFxuICpcbiAqIDIuIFVzZSB0aGUgY29tcG9uZW50IGluIHlvdXIgdGVtcGxhdGUuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2x4LXRhYi1ncm91cCcsXG4gIHRlbXBsYXRlVXJsOiAndGFiLWdyb3VwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJ3RhYi1ncm91cC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1BvcnRhbE1vZHVsZSwgTmdUZW1wbGF0ZU91dGxldF1cbn0pXG5leHBvcnQgY2xhc3MgVGFiR3JvdXBDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIEFmdGVyQ29udGVudEluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIGlzQ2VudGVyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgLyoqXG4gICAqIFRoZSB0YWIgd2hvc2UgY29udGVudCBzaG91bGQgYmUgZGlzcGxheWVkLlxuICAgKi9cbiAgQElucHV0KCkgc2VsZWN0ZWRJbmRleDogbnVtYmVyID0gMDtcbiAgQE91dHB1dCgpIGluZGV4Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgQE9ic2VydmUoJ3RhYnNRdWVyeUxpc3QnKSB0YWJzUXVlcnlMaXN0JCE6IE9ic2VydmFibGU8UXVlcnlMaXN0PFRhYkNvbXBvbmVudD4+O1xuICBAQ29udGVudENoaWxkcmVuKFRhYkNvbXBvbmVudCkgdGFic1F1ZXJ5TGlzdD86IFF1ZXJ5TGlzdDxUYWJDb21wb25lbnQ+O1xuICBAVmlld0NoaWxkKCd0YWJMaXN0RWxlbWVudCcpIHRhYkxpc3RFbGVtZW50PzogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgLyoqXG4gICAqIFRoZSB0YWIgdGhhdCBpcyBjdXJyZW50bHkgZm9jdXNlZCB2aWEga2V5Ym9hcmQuXG4gICAqL1xuICBmb2N1c2VkSW5kZXg6IG51bWJlciA9IDA7XG5cbiAgZ2V0IHRhYklkcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMudGFicy5tYXAoKHQpID0+IHQudGFiSWQpO1xuICB9XG4gIHByaXZhdGUgZ2V0IHRhYnMoKTogVGFiQ29tcG9uZW50W10ge1xuICAgIHJldHVybiB0aGlzLnRhYnNRdWVyeUxpc3Q/LnRvQXJyYXkoKSB8fCBbXTtcbiAgfVxuXG4gIGdldCBhY3RpdmVUYWJQb3J0YWwoKSB7XG4gICAgcmV0dXJuIHRoaXMudGFic1t0aGlzLnNlbGVjdGVkSW5kZXhdPy5jb250ZW50O1xuICB9XG5cbiAgcmVhZG9ubHkgZGVzdHJveWVkJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICB0aGlzLmxpc3RlblRvRmlyc3RUYWJTZWxlY3RCeUFuZ3VsYXJSb3V0ZXJGb3JUYWJMaW5rcygpLnN1YnNjcmliZSgodGFiKSA9PiB7XG4gICAgICAvLyBzeW5jaG9uaXplIHRoZSBmb2N1c2VkSW5kZXggYW5kIHNlbGVjdGVkSW5kZXggc3RhdGUgd2l0aCB0aGUgdGFiIHRoYXQgaXMgYWN0aXZlIHRocm91Z2ggdGhlIGN1cnJlbnQgcm91dGUuXG4gICAgICB0aGlzLnN3aXRjaFRvKHRhYik7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgY29uc3QgdGFiID0gdGhpcy50YWJzW3RoaXMuc2VsZWN0ZWRJbmRleF07XG4gICAgaWYgKGNoYW5nZXNbJ3NlbGVjdGVkSW5kZXgnXSAmJiAhY2hhbmdlc1snc2VsZWN0ZWRJbmRleCddLmlzRmlyc3RDaGFuZ2UoKSAmJiB0YWIpIHtcbiAgICAgIHRoaXMuc3dpdGNoVG8odGFiKTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgaWYgKHRoaXMudGFic1swXSkge1xuICAgICAgdGhpcy50YWJzWzBdLm5vTGVmdE1hcmdpbkZvckZpcnN0VGFiID0gdHJ1ZTtcbiAgICB9XG4gICAgY29uc3QgdGFiID0gdGhpcy50YWJzW3RoaXMuc2VsZWN0ZWRJbmRleF07XG4gICAgaWYgKHRhYiAmJiAhdGFiLnRhYkxpbmspIHtcbiAgICAgIHRoaXMuc3dpdGNoVG8odGFiKTtcbiAgICB9XG5cbiAgICBjb25zdCBsaXN0ZW5Ub1RhYnNTd2l0Y2ggPSAodGFiczogVGFiQ29tcG9uZW50W10pID0+IG1lcmdlKC4uLnRhYnMubWFwKCh0YWIpID0+IHRhYi5zd2l0Y2guYXNPYnNlcnZhYmxlKCkucGlwZShtYXAoKCkgPT4gdGFiKSkpKTtcblxuICAgIHRoaXMudGFic1F1ZXJ5TGlzdD8uY2hhbmdlc1xuICAgICAgLnBpcGUoXG4gICAgICAgIHN0YXJ0V2l0aChudWxsKSxcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+IGxpc3RlblRvVGFic1N3aXRjaCh0aGlzLnRhYnMpKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKHRhYikgPT4ge1xuICAgICAgICB0aGlzLnN3aXRjaFRvKHRhYik7XG4gICAgICB9KTtcblxuICAgIHRoaXMudGFic1F1ZXJ5TGlzdD8uY2hhbmdlc1xuICAgICAgLnBpcGUoXG4gICAgICAgIHN0YXJ0V2l0aChudWxsKSxcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+IG1lcmdlKC4uLnRoaXMudGFicy5tYXAoKHRhYikgPT4gdGFiLmtleURvd25BY3Rpb24pKSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgICB0aGlzLmhhbmRsZUtleURvd24oZXZlbnQpO1xuICAgICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmRlc3Ryb3llZCQubmV4dCgpO1xuICB9XG5cbiAgb25Gb2N1c091dChldmVudDogYW55KSB7XG4gICAgaWYgKCF0aGlzLnRhYkxpc3RFbGVtZW50Py5uYXRpdmVFbGVtZW50Py5jb250YWlucyhldmVudC5yZWxhdGVkVGFyZ2V0KSkge1xuICAgICAgLy8gcmVzeW5jIGZvY3VzZWQgaW5kZXggb24gc2VsZWN0ZWQgaW5kZXggd2hlbiBsZWF2aW5nIHRhYnNcbiAgICAgIHRoaXMuZm9jdXNlZEluZGV4ID0gdGhpcy5zZWxlY3RlZEluZGV4O1xuICAgIH1cbiAgfVxuXG4gIHN3aXRjaFRvKHRhYjogVGFiQ29tcG9uZW50KSB7XG4gICAgdGhpcy50YWJzUXVlcnlMaXN0Py5mb3JFYWNoKCh0LCBpbmRleCkgPT4ge1xuICAgICAgdC5pc0FjdGl2ZSA9IHQgPT09IHRhYjtcbiAgICAgIGlmICh0LmlzQWN0aXZlKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJbmRleCA9IGluZGV4O1xuICAgICAgICB0aGlzLmZvY3VzZWRJbmRleCA9IGluZGV4O1xuICAgICAgICB0aGlzLmluZGV4Q2hhbmdlLmVtaXQoaW5kZXgpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBoYW5kbGVLZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgc3dpdGNoIChldmVudC5jb2RlKSB7XG4gICAgICBjYXNlIEx4VGFiR3JvdXBLZXlDb2RlLkFycm93UmlnaHQ6XG4gICAgICAgIGNvbnN0IG5ld1RhYkluZGV4ID0gKHRoaXMuZm9jdXNlZEluZGV4ICsgMSkgJSB0aGlzLnRhYnMubGVuZ3RoO1xuICAgICAgICB0aGlzLmZvY3VzVGFiKG5ld1RhYkluZGV4KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIEx4VGFiR3JvdXBLZXlDb2RlLkFycm93TGVmdDpcbiAgICAgICAgY29uc3QgcHJldmlvdXNUYWJJbmRleCA9IHRoaXMuZm9jdXNlZEluZGV4ID09PSAwID8gdGhpcy50YWJzLmxlbmd0aCAtIDEgOiB0aGlzLmZvY3VzZWRJbmRleCAtIDE7XG4gICAgICAgIHRoaXMuZm9jdXNUYWIocHJldmlvdXNUYWJJbmRleCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBMeFRhYkdyb3VwS2V5Q29kZS5Ib21lOlxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLmZvY3VzVGFiKDApO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgTHhUYWJHcm91cEtleUNvZGUuRW5kOlxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLmZvY3VzVGFiKHRoaXMudGFicy5sZW5ndGggLSAxKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBmb2N1c1RhYih0YWJJbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3QgdGFiID0gdGhpcy50YWJzW3RhYkluZGV4XTtcbiAgICBpZiAoIXRhYikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRhYi5zZXRGb2N1cygpO1xuICAgIHRoaXMuZm9jdXNlZEluZGV4ID0gdGFiSW5kZXg7XG4gIH1cblxuICBwcml2YXRlIGxpc3RlblRvRmlyc3RUYWJTZWxlY3RCeUFuZ3VsYXJSb3V0ZXJGb3JUYWJMaW5rcygpIHtcbiAgICByZXR1cm4gdGhpcy50YWJzUXVlcnlMaXN0JC5waXBlKFxuICAgICAgc3dpdGNoTWFwKCgpID0+IHtcbiAgICAgICAgY29uc3QgdGFiTGlua3MgPSB0aGlzLnRhYnMuZmlsdGVyKCh0YWIpID0+ICEhdGFiLnRhYkxpbmspO1xuICAgICAgICByZXR1cm4gbWVyZ2UoLi4udGFiTGlua3MubWFwKCh0YWIpID0+IHRhYi5yb3V0ZXJMaW5rQWN0aXZlQ2hhbmdlJC5waXBlKG1hcCgoKSA9PiB0YWIpKSkpO1xuICAgICAgfSksXG4gICAgICBmaXJzdCgpLFxuICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJCkgLy8gYWRkZWQgaW4gYWRkaXRpb24gdG8gZmlyc3QoKSBoZXJlIHNpbmNlIGZvciB0YWIgZ3JvdXBzIHdpdGhvdXQgbGlua3Mgbm8gc2luZ2xlIHZhbHVlIHdpbGwgZXZlciBiZSBlbWl0LlxuICAgICk7XG4gIH1cbn1cbiIsIjx1bFxuICAjdGFiTGlzdEVsZW1lbnRcbiAgY2xhc3M9XCJ0YWJzXCJcbiAgcm9sZT1cInRhYmxpc3RcIlxuICAoZm9jdXNvdXQpPVwib25Gb2N1c091dCgkZXZlbnQpXCJcbiAgW2F0dHIuYXJpYS1vd25zXT1cInRhYklkcy5qb2luKCcgJylcIlxuICBbY2xhc3MuY2VudGVyZWRdPVwiaXNDZW50ZXJlZFwiXG4+XG4gIDxuZy1jb250ZW50IC8+XG48L3VsPlxuXG48bmctdGVtcGxhdGUgW2Nka1BvcnRhbE91dGxldF09XCJhY3RpdmVUYWJQb3J0YWxcIiAvPlxuIl19
150
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLWdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL3RhYi11aS9jb21wb25lbnRzL3RhYi1ncm91cC90YWItZ3JvdXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvdGFiLXVpL2NvbXBvbmVudHMvdGFiLWdyb3VwL3RhYi1ncm91cC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFFTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULGVBQWUsRUFFZixZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFHTixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFjLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEQsT0FBTyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7QUFVL0QsTUFBTSxPQUFPLGlCQUFpQjtJQXFCNUIsZ0JBQWdCO0lBQ2hCLElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FB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QUFJLENBQzdCLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDYixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUMxRCxPQUFPLEtBQUssQ0FBQyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNGLENBQUMsQ0FBQyxFQUNGLEtBQUssRUFBRSxFQUNQLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsMEdBQTBHO1NBQ3RJLENBQUM7SUFDSixDQUFDOzhHQXJKVSxpQkFBaUI7a0dBQWpCLGlCQUFpQixxTkFXWCxZQUFZLG9LQzNDL0Isc1FBWUEsK1FEa0JZLFlBQVk7O0FBV0k7SUFBekIsT0FBTyxDQUFDLGVBQWUsQ0FBQzt5REFBc0Q7MkZBVHBFLGlCQUFpQjtrQkFSN0IsU0FBUzsrQkFDRSxjQUFjLG1CQUdQLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGdCQUFnQixDQUFDO3NGQUdoQyxVQUFVO3NCQUFsQixLQUFLO2dCQUlHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0ksV0FBVztzQkFBcEIsTUFBTTtnQkFHbUIsY0FBYyxNQUVULGFBQWE7c0JBQTNDLGVBQWU7dUJBQUMsWUFBWTtnQkFFQSxjQUFjO3NCQUExQyxTQUFTO3VCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBvcnRhbE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QsIG1lcmdlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaXJzdCwgbWFwLCBzdGFydFdpdGgsIHN3aXRjaE1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgT2JzZXJ2ZSB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9vYnNlcnZlJztcbmltcG9ydCB7IFRhYkNvbXBvbmVudCB9IGZyb20gJy4uL3RhYi90YWIuY29tcG9uZW50JztcbmltcG9ydCB7IEx4VGFiR3JvdXBLZXlDb2RlIH0gZnJvbSAnLi90YWItZ3JvdXAta2V5LWNvZGVzLmVudW0nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdseC10YWItZ3JvdXAnLFxuICB0ZW1wbGF0ZVVybDogJ3RhYi1ncm91cC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWyd0YWItZ3JvdXAuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtQb3J0YWxNb2R1bGUsIE5nVGVtcGxhdGVPdXRsZXRdXG59KVxuZXhwb3J0IGNsYXNzIFRhYkdyb3VwQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBBZnRlckNvbnRlbnRJbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBpc0NlbnRlcmVkOiBib29sZWFuID0gZmFsc2U7XG4gIC8qKlxuICAgKiBUaGUgdGFiIHdob3NlIGNvbnRlbnQgc2hvdWxkIGJlIGRpc3BsYXllZC5cbiAgICovXG4gIEBJbnB1dCgpIHNlbGVjdGVkSW5kZXg6IG51bWJlciA9IDA7XG4gIEBPdXRwdXQoKSBpbmRleENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgQE9ic2VydmUoJ3RhYnNRdWVyeUxpc3QnKSB0YWJzUXVlcnlMaXN0JCE6IE9ic2VydmFibGU8UXVlcnlMaXN0PFRhYkNvbXBvbmVudD4+O1xuICAvKiogQGludGVybmFsICovXG4gIEBDb250ZW50Q2hpbGRyZW4oVGFiQ29tcG9uZW50KSB0YWJzUXVlcnlMaXN0PzogUXVlcnlMaXN0PFRhYkNvbXBvbmVudD47XG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgQFZpZXdDaGlsZCgndGFiTGlzdEVsZW1lbnQnKSB0YWJMaXN0RWxlbWVudD86IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gIC8qKlxuICAgKiBUaGUgdGFiIHRoYXQgaXMgY3VycmVudGx5IGZvY3VzZWQgdmlhIGtleWJvYXJkLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIGZvY3VzZWRJbmRleDogbnVtYmVyID0gMDtcblxuICAvKiogQGludGVybmFsICovXG4gIGdldCB0YWJJZHMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLnRhYnMubWFwKCh0KSA9PiB0LnRhYklkKTtcbiAgfVxuICBwcml2YXRlIGdldCB0YWJzKCk6IFRhYkNvbXBvbmVudFtdIHtcbiAgICByZXR1cm4gdGhpcy50YWJzUXVlcnlMaXN0Py50b0FycmF5KCkgfHwgW107XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIGdldCBhY3RpdmVUYWJQb3J0YWwoKSB7XG4gICAgcmV0dXJuIHRoaXMudGFic1t0aGlzLnNlbGVjdGVkSW5kZXhdPy5jb250ZW50O1xuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICByZWFkb25seSBkZXN0cm95ZWQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgIHRoaXMubGlzdGVuVG9GaXJzdFRhYlNlbGVjdEJ5QW5ndWxhclJvdXRlckZvclRhYkxpbmtzKCkuc3Vic2NyaWJlKCh0YWIpID0+IHtcbiAgICAgIC8vIHN5bmNob25pemUgdGhlIGZvY3VzZWRJbmRleCBhbmQgc2VsZWN0ZWRJbmRleCBzdGF0ZSB3aXRoIHRoZSB0YWIgdGhhdCBpcyBhY3RpdmUgdGhyb3VnaCB0aGUgY3VycmVudCByb3V0ZS5cbiAgICAgIHRoaXMuc3dpdGNoVG8odGFiKTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBjb25zdCB0YWIgPSB0aGlzLnRhYnNbdGhpcy5zZWxlY3RlZEluZGV4XTtcbiAgICBpZiAoY2hhbmdlc1snc2VsZWN0ZWRJbmRleCddICYmICFjaGFuZ2VzWydzZWxlY3RlZEluZGV4J10uaXNGaXJzdENoYW5nZSgpICYmIHRhYikge1xuICAgICAgdGhpcy5zd2l0Y2hUbyh0YWIpO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICBpZiAodGhpcy50YWJzWzBdKSB7XG4gICAgICB0aGlzLnRhYnNbMF0ubm9MZWZ0TWFyZ2luRm9yRmlyc3RUYWIgPSB0cnVlO1xuICAgIH1cbiAgICBjb25zdCB0YWIgPSB0aGlzLnRhYnNbdGhpcy5zZWxlY3RlZEluZGV4XTtcbiAgICBpZiAodGFiICYmICF0YWIudGFiTGluaykge1xuICAgICAgdGhpcy5zd2l0Y2hUbyh0YWIpO1xuICAgIH1cblxuICAgIGNvbnN0IGxpc3RlblRvVGFic1N3aXRjaCA9ICh0YWJzOiBUYWJDb21wb25lbnRbXSkgPT4gbWVyZ2UoLi4udGFicy5tYXAoKHRhYikgPT4gdGFiLnN3aXRjaC5hc09ic2VydmFibGUoKS5waXBlKG1hcCgoKSA9PiB0YWIpKSkpO1xuXG4gICAgdGhpcy50YWJzUXVlcnlMaXN0Py5jaGFuZ2VzXG4gICAgICAucGlwZShcbiAgICAgICAgc3RhcnRXaXRoKG51bGwpLFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gbGlzdGVuVG9UYWJzU3dpdGNoKHRoaXMudGFicykpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgodGFiKSA9PiB7XG4gICAgICAgIHRoaXMuc3dpdGNoVG8odGFiKTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy50YWJzUXVlcnlMaXN0Py5jaGFuZ2VzXG4gICAgICAucGlwZShcbiAgICAgICAgc3RhcnRXaXRoKG51bGwpLFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gbWVyZ2UoLi4udGhpcy50YWJzLm1hcCgodGFiKSA9PiB0YWIua2V5RG93bkFjdGlvbikpKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICAgIHRoaXMuaGFuZGxlS2V5RG93bihldmVudCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuZGVzdHJveWVkJC5uZXh0KCk7XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIG9uRm9jdXNPdXQoZXZlbnQ6IGFueSkge1xuICAgIGlmICghdGhpcy50YWJMaXN0RWxlbWVudD8ubmF0aXZlRWxlbWVudD8uY29udGFpbnMoZXZlbnQucmVsYXRlZFRhcmdldCkpIHtcbiAgICAgIC8vIHJlc3luYyBmb2N1c2VkIGluZGV4IG9uIHNlbGVjdGVkIGluZGV4IHdoZW4gbGVhdmluZyB0YWJzXG4gICAgICB0aGlzLmZvY3VzZWRJbmRleCA9IHRoaXMuc2VsZWN0ZWRJbmRleDtcbiAgICB9XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIHN3aXRjaFRvKHRhYjogVGFiQ29tcG9uZW50KSB7XG4gICAgdGhpcy50YWJzUXVlcnlMaXN0Py5mb3JFYWNoKCh0LCBpbmRleCkgPT4ge1xuICAgICAgdC5pc0FjdGl2ZSA9IHQgPT09IHRhYjtcbiAgICAgIGlmICh0LmlzQWN0aXZlKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJbmRleCA9IGluZGV4O1xuICAgICAgICB0aGlzLmZvY3VzZWRJbmRleCA9IGluZGV4O1xuICAgICAgICB0aGlzLmluZGV4Q2hhbmdlLmVtaXQoaW5kZXgpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIGhhbmRsZUtleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBzd2l0Y2ggKGV2ZW50LmNvZGUpIHtcbiAgICAgIGNhc2UgTHhUYWJHcm91cEtleUNvZGUuQXJyb3dSaWdodDpcbiAgICAgICAgY29uc3QgbmV3VGFiSW5kZXggPSAodGhpcy5mb2N1c2VkSW5kZXggKyAxKSAlIHRoaXMudGFicy5sZW5ndGg7XG4gICAgICAgIHRoaXMuZm9jdXNUYWIobmV3VGFiSW5kZXgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgTHhUYWJHcm91cEtleUNvZGUuQXJyb3dMZWZ0OlxuICAgICAgICBjb25zdCBwcmV2aW91c1RhYkluZGV4ID0gdGhpcy5mb2N1c2VkSW5kZXggPT09IDAgPyB0aGlzLnRhYnMubGVuZ3RoIC0gMSA6IHRoaXMuZm9jdXNlZEluZGV4IC0gMTtcbiAgICAgICAgdGhpcy5mb2N1c1RhYihwcmV2aW91c1RhYkluZGV4KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIEx4VGFiR3JvdXBLZXlDb2RlLkhvbWU6XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoaXMuZm9jdXNUYWIoMCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBMeFRhYkdyb3VwS2V5Q29kZS5FbmQ6XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoaXMuZm9jdXNUYWIodGhpcy50YWJzLmxlbmd0aCAtIDEpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGZvY3VzVGFiKHRhYkluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICBjb25zdCB0YWIgPSB0aGlzLnRhYnNbdGFiSW5kZXhdO1xuICAgIGlmICghdGFiKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGFiLnNldEZvY3VzKCk7XG4gICAgdGhpcy5mb2N1c2VkSW5kZXggPSB0YWJJbmRleDtcbiAgfVxuXG4gIHByaXZhdGUgbGlzdGVuVG9GaXJzdFRhYlNlbGVjdEJ5QW5ndWxhclJvdXRlckZvclRhYkxpbmtzKCkge1xuICAgIHJldHVybiB0aGlzLnRhYnNRdWVyeUxpc3QkLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKCkgPT4ge1xuICAgICAgICBjb25zdCB0YWJMaW5rcyA9IHRoaXMudGFicy5maWx0ZXIoKHRhYikgPT4gISF0YWIudGFiTGluayk7XG4gICAgICAgIHJldHVybiBtZXJnZSguLi50YWJMaW5rcy5tYXAoKHRhYikgPT4gdGFiLnJvdXRlckxpbmtBY3RpdmVDaGFuZ2UkLnBpcGUobWFwKCgpID0+IHRhYikpKSk7XG4gICAgICB9KSxcbiAgICAgIGZpcnN0KCksXG4gICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSAvLyBhZGRlZCBpbiBhZGRpdGlvbiB0byBmaXJzdCgpIGhlcmUgc2luY2UgZm9yIHRhYiBncm91cHMgd2l0aG91dCBsaW5rcyBubyBzaW5nbGUgdmFsdWUgd2lsbCBldmVyIGJlIGVtaXQuXG4gICAgKTtcbiAgfVxufVxuIiwiPHVsXG4gICN0YWJMaXN0RWxlbWVudFxuICBjbGFzcz1cInRhYnNcIlxuICByb2xlPVwidGFibGlzdFwiXG4gIChmb2N1c291dCk9XCJvbkZvY3VzT3V0KCRldmVudClcIlxuICBbYXR0ci5hcmlhLW93bnNdPVwidGFiSWRzLmpvaW4oJyAnKVwiXG4gIFtjbGFzcy5jZW50ZXJlZF09XCJpc0NlbnRlcmVkXCJcbj5cbiAgPG5nLWNvbnRlbnQgLz5cbjwvdWw+XG5cbjxuZy10ZW1wbGF0ZSBbY2RrUG9ydGFsT3V0bGV0XT1cImFjdGl2ZVRhYlBvcnRhbFwiIC8+XG4iXX0=