valtech-components 2.0.302 → 2.0.305

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 (32) hide show
  1. package/esm2022/lib/components/atoms/button/button.component.mjs +103 -23
  2. package/esm2022/lib/components/types.mjs +1 -1
  3. package/esm2022/lib/services/lang-provider/content.mjs +1 -72
  4. package/esm2022/lib/services/lang-provider/lang-provider.service.mjs +4 -9
  5. package/esm2022/lib/shared/utils/content.mjs +2 -8
  6. package/esm2022/public-api.mjs +1 -12
  7. package/fesm2022/valtech-components.mjs +124 -2824
  8. package/fesm2022/valtech-components.mjs.map +1 -1
  9. package/lib/components/atoms/button/button.component.d.ts +33 -2
  10. package/lib/components/types.d.ts +19 -7
  11. package/package.json +1 -1
  12. package/public-api.d.ts +0 -10
  13. package/esm2022/lib/examples/comprehensive-link-test.component.mjs +0 -208
  14. package/esm2022/lib/examples/custom-content-demo.component.mjs +0 -291
  15. package/esm2022/lib/examples/display-demo.component.mjs +0 -518
  16. package/esm2022/lib/examples/display-simple-example.component.mjs +0 -202
  17. package/esm2022/lib/examples/link-processing-example.component.mjs +0 -233
  18. package/esm2022/lib/examples/multi-language-demo.component.mjs +0 -304
  19. package/esm2022/lib/examples/reactive-components-demo.component.mjs +0 -303
  20. package/esm2022/lib/examples/reactivity-test.component.mjs +0 -200
  21. package/esm2022/lib/examples/selector-examples.component.mjs +0 -234
  22. package/esm2022/lib/examples/user-issue-test.component.mjs +0 -267
  23. package/lib/examples/comprehensive-link-test.component.d.ts +0 -23
  24. package/lib/examples/custom-content-demo.component.d.ts +0 -26
  25. package/lib/examples/display-demo.component.d.ts +0 -62
  26. package/lib/examples/display-simple-example.component.d.ts +0 -23
  27. package/lib/examples/link-processing-example.component.d.ts +0 -26
  28. package/lib/examples/multi-language-demo.component.d.ts +0 -34
  29. package/lib/examples/reactive-components-demo.component.d.ts +0 -45
  30. package/lib/examples/reactivity-test.component.d.ts +0 -27
  31. package/lib/examples/selector-examples.component.d.ts +0 -21
  32. package/lib/examples/user-issue-test.component.d.ts +0 -31
@@ -14,15 +14,40 @@ import * as i5 from "@angular/common";
14
14
  *
15
15
  * A customizable button supporting icons, loading state, navigation, and reactive content.
16
16
  * Supports both static text and reactive content from the content service.
17
+ * Follows the same content pattern as val-text for consistency.
17
18
  *
18
- * @example
19
- * // Static text
20
- * <val-button [props]="{ text: 'Save', color: 'primary', icon: { name: 'save', slot: 'start' } }" (onClick)="handler()"></val-button>
19
+ * @example Static text:
20
+ * <val-button [props]="{
21
+ * text: 'Save',
22
+ * color: 'primary',
23
+ * type: 'button',
24
+ * state: 'ENABLED',
25
+ * icon: { name: 'save', slot: 'start' }
26
+ * }" (onClick)="handler()"></val-button>
27
+ *
28
+ * @example Reactive content:
29
+ * <val-button [props]="{
30
+ * contentKey: 'save',
31
+ * contentClass: 'MyComponent',
32
+ * contentFallback: 'Save',
33
+ * color: 'primary',
34
+ * type: 'button',
35
+ * state: 'ENABLED',
36
+ * icon: { name: 'save', slot: 'start' }
37
+ * }" (onClick)="handler()"></val-button>
21
38
  *
22
- * // Reactive content
23
- * <val-button [props]="{ textConfig: { key: 'save' }, color: 'primary', icon: { name: 'save', slot: 'start' } }" (onClick)="handler()"></val-button>
39
+ * @example Reactive content with interpolation:
40
+ * <val-button [props]="{
41
+ * contentKey: 'saveCount',
42
+ * contentClass: 'MyComponent',
43
+ * contentInterpolation: { count: 5 },
44
+ * contentFallback: 'Save Items',
45
+ * color: 'primary',
46
+ * type: 'button',
47
+ * state: 'ENABLED'
48
+ * }" (onClick)="handler()"></val-button>
24
49
  *
25
- * @input props: ButtonMetadata - Configuration for the button (text/textConfig, color, icon, state, etc.)
50
+ * @input props: ButtonMetadata - Configuration for the button (text/content, color, icon, state, etc.)
26
51
  * @output onClick - Emits when the button is clicked
27
52
  */
28
53
  export class ButtonComponent {
@@ -38,29 +63,46 @@ export class ButtonComponent {
38
63
  this.onClick = new EventEmitter();
39
64
  }
40
65
  ngOnInit() {
41
- this.initializeDisplayText();
66
+ this.setupDisplayText();
42
67
  }
43
68
  ngOnDestroy() {
44
69
  this.subscriptions.unsubscribe();
45
70
  }
46
- initializeDisplayText() {
47
- // Static text takes precedence
48
- if (this.props.text !== undefined) {
71
+ /**
72
+ * Set up the text content observable based on the props configuration.
73
+ * Priority: static text > reactive content with interpolation > reactive content
74
+ * This follows the same pattern as val-text component.
75
+ */
76
+ setupDisplayText() {
77
+ if (this.props.text) {
78
+ // Static text takes precedence
49
79
  this.displayText$ = of(this.props.text);
50
- return;
51
80
  }
52
- // Use reactive content if configured
53
- if (this.props.textConfig) {
54
- this.displayText$ = this.contentService.fromContent({
55
- className: this.props.textConfig.className || '_global',
56
- key: this.props.textConfig.key,
57
- fallback: this.props.textConfig.fallback || this.props.textConfig.key,
58
- interpolation: this.props.textConfig.interpolation,
59
- });
60
- return;
81
+ else if (this.props.contentKey && this.props.contentClass) {
82
+ // Reactive content from language service
83
+ if (this.props.contentInterpolation) {
84
+ // With interpolation
85
+ this.displayText$ = this.contentService.fromContentWithInterpolation({
86
+ className: this.props.contentClass,
87
+ key: this.props.contentKey,
88
+ fallback: this.props.contentFallback,
89
+ interpolation: this.props.contentInterpolation,
90
+ });
91
+ }
92
+ else {
93
+ // Simple reactive content
94
+ this.displayText$ = this.contentService.fromContent({
95
+ className: this.props.contentClass,
96
+ key: this.props.contentKey,
97
+ fallback: this.props.contentFallback,
98
+ });
99
+ }
100
+ }
101
+ else {
102
+ // Fallback to empty string if no valid content configuration
103
+ console.warn('val-button: No valid content configuration provided. Use either "text" for static text or "contentKey" + "contentClass" for reactive content.');
104
+ this.displayText$ = of(this.props.contentFallback || '');
61
105
  }
62
- // No content configured - use empty string
63
- this.displayText$ = of('');
64
106
  }
65
107
  clickHandler() {
66
108
  if (this.props.state === this.states.DISABLED) {
@@ -124,4 +166,42 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
124
166
  }], onClick: [{
125
167
  type: Output
126
168
  }] } });
127
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRlY2gtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvYXRvbXMvYnV0dG9uL2J1dHRvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNwRixPQUFPLEVBQWMsWUFBWSxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUtwRCxPQUFPLEVBQUUsVUFBVSxFQUFrQixlQUFlLEVBQUUsTUFBTSxhQUFhLENBQUM7Ozs7Ozs7QUEyQjFFOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNILE1BQU0sT0FBTyxlQUFlO0lBYzFCLFlBQ1UsUUFBeUIsRUFDakMsSUFBaUIsRUFDVCxVQUE2QixFQUM3QixjQUE4QjtRQUg5QixhQUFRLEdBQVIsUUFBUSxDQUFpQjtRQUV6QixlQUFVLEdBQVYsVUFBVSxDQUFtQjtRQUM3QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFqQnhDLFdBQU0sR0FBRyxlQUFlLENBQUM7UUFFakIsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBSzNDOztXQUVHO1FBRUgsWUFBTyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7SUFPbEMsQ0FBQztJQUVKLFFBQVE7UUFDTixJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVPLHFCQUFxQjtRQUMzQiwrQkFBK0I7UUFDL0IsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNsQyxJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3hDLE9BQU87UUFDVCxDQUFDO1FBRUQscUNBQXFDO1FBQ3JDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDO2dCQUNsRCxTQUFTLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsU0FBUyxJQUFJLFNBQVM7Z0JBQ3ZELEdBQUcsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHO2dCQUM5QixRQUFRLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUc7Z0JBQ3JFLGFBQWEsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxhQUFhO2FBQ25ELENBQUMsQ0FBQztZQUNILE9BQU87UUFDVCxDQUFDO1FBRUQsMkNBQTJDO1FBQzNDLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzlDLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsS0FBSyxVQUFVLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDeEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqRCxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxRQUFRLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM3RCxDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDckMsQ0FBQztRQUNELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdEMsQ0FBQzsrR0FuRVUsZUFBZTttR0FBZixlQUFlLG1JQXJDaEI7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtCVCwyekZBbkJTLFlBQVksc1JBQUUsU0FBUyxvUEFBRSxPQUFPLDJKQUFFLFVBQVUseUdBQUUsT0FBTzs7NEZBc0NwRCxlQUFlO2tCQXpDM0IsU0FBUzsrQkFDRSxZQUFZLGNBQ1YsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQyxZQUN0RDs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0JUOzJLQXlCRCxLQUFLO3NCQURKLEtBQUs7Z0JBT04sT0FBTztzQkFETixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSW9uQnV0dG9uLCBJb25JY29uLCBJb25TcGlubmVyLCBJb25UZXh0IH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24sIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDb250ZW50U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2NvbnRlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBEb3dubG9hZFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9kb3dubG9hZC5zZXJ2aWNlJztcbmltcG9ydCB7IEljb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaWNvbnMuc2VydmljZSc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL25hdmlnYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBBY3Rpb25UeXBlLCBCdXR0b25NZXRhZGF0YSwgQ29tcG9uZW50U3RhdGVzIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtYnV0dG9uJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgSW9uQnV0dG9uLCBJb25JY29uLCBJb25TcGlubmVyLCBJb25UZXh0XSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8aW9uLWJ1dHRvblxuICAgICAgW3R5cGVdPVwicHJvcHMudHlwZVwiXG4gICAgICBbY29sb3JdPVwicHJvcHMuY29sb3JcIlxuICAgICAgW2V4cGFuZF09XCJwcm9wcy5leHBhbmRcIlxuICAgICAgW2ZpbGxdPVwicHJvcHMuZmlsbFwiXG4gICAgICBbc2l6ZV09XCJwcm9wcy5zaXplXCJcbiAgICAgIFtocmVmXT1cInByb3BzLmhyZWZcIlxuICAgICAgW3RhcmdldF09XCJwcm9wcy50YXJnZXRcIlxuICAgICAgW3NoYXBlXT1cInByb3BzLnNoYXBlXCJcbiAgICAgIChjbGljayk9XCJjbGlja0hhbmRsZXIoKVwiXG4gICAgICBbZGlzYWJsZWRdPVwicHJvcHMuc3RhdGUgPT09IHN0YXRlcy5ESVNBQkxFRFwiXG4gICAgICBbbmdDbGFzc109XCJbcHJvcHMuc2l6ZV1cIlxuICAgID5cbiAgICAgIDxpb24taWNvbiAqbmdJZj1cInByb3BzLmljb25cIiBbc2xvdF09XCJwcm9wcy5pY29uLnNsb3RcIiBbbmFtZV09XCJwcm9wcy5pY29uLm5hbWVcIj48L2lvbi1pY29uPlxuICAgICAgPGlvbi1zcGlubmVyICpuZ0lmPVwicHJvcHMuc3RhdGUgPT09IHN0YXRlcy5XT1JLSU5HXCIgbmFtZT1cImNpcmN1bGFyXCI+PC9pb24tc3Bpbm5lcj5cbiAgICAgIDxpb24tdGV4dCAqbmdJZj1cInByb3BzLnN0YXRlICE9PSBzdGF0ZXMuV09SS0lOR1wiPnt7IGRpc3BsYXlUZXh0JCB8IGFzeW5jIH19PC9pb24tdGV4dD5cbiAgICA8L2lvbi1idXR0b24+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL2J1dHRvbi5jb21wb25lbnQuc2NzcyddLFxufSlcbi8qKlxuICogdmFsLWJ1dHRvblxuICpcbiAqIEEgY3VzdG9taXphYmxlIGJ1dHRvbiBzdXBwb3J0aW5nIGljb25zLCBsb2FkaW5nIHN0YXRlLCBuYXZpZ2F0aW9uLCBhbmQgcmVhY3RpdmUgY29udGVudC5cbiAqIFN1cHBvcnRzIGJvdGggc3RhdGljIHRleHQgYW5kIHJlYWN0aXZlIGNvbnRlbnQgZnJvbSB0aGUgY29udGVudCBzZXJ2aWNlLlxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBTdGF0aWMgdGV4dFxuICogPHZhbC1idXR0b24gW3Byb3BzXT1cInsgdGV4dDogJ1NhdmUnLCBjb2xvcjogJ3ByaW1hcnknLCBpY29uOiB7IG5hbWU6ICdzYXZlJywgc2xvdDogJ3N0YXJ0JyB9IH1cIiAob25DbGljayk9XCJoYW5kbGVyKClcIj48L3ZhbC1idXR0b24+XG4gKlxuICogLy8gUmVhY3RpdmUgY29udGVudFxuICogPHZhbC1idXR0b24gW3Byb3BzXT1cInsgdGV4dENvbmZpZzogeyBrZXk6ICdzYXZlJyB9LCBjb2xvcjogJ3ByaW1hcnknLCBpY29uOiB7IG5hbWU6ICdzYXZlJywgc2xvdDogJ3N0YXJ0JyB9IH1cIiAob25DbGljayk9XCJoYW5kbGVyKClcIj48L3ZhbC1idXR0b24+XG4gKlxuICogQGlucHV0IHByb3BzOiBCdXR0b25NZXRhZGF0YSAtIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBidXR0b24gKHRleHQvdGV4dENvbmZpZywgY29sb3IsIGljb24sIHN0YXRlLCBldGMuKVxuICogQG91dHB1dCBvbkNsaWNrIC0gRW1pdHMgd2hlbiB0aGUgYnV0dG9uIGlzIGNsaWNrZWRcbiAqL1xuZXhwb3J0IGNsYXNzIEJ1dHRvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgc3RhdGVzID0gQ29tcG9uZW50U3RhdGVzO1xuICBkaXNwbGF5VGV4dCQ6IE9ic2VydmFibGU8c3RyaW5nPjtcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gIEBJbnB1dCgpXG4gIHByb3BzITogQnV0dG9uTWV0YWRhdGE7XG5cbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgYnV0dG9uIGlzIGNsaWNrZWQuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgb25DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZG93bmxvYWQ6IERvd25sb2FkU2VydmljZSxcbiAgICBpY29uOiBJY29uU2VydmljZSxcbiAgICBwcml2YXRlIG5hdmlnYXRpb246IE5hdmlnYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgY29udGVudFNlcnZpY2U6IENvbnRlbnRTZXJ2aWNlXG4gICkge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmluaXRpYWxpemVEaXNwbGF5VGV4dCgpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcml2YXRlIGluaXRpYWxpemVEaXNwbGF5VGV4dCgpIHtcbiAgICAvLyBTdGF0aWMgdGV4dCB0YWtlcyBwcmVjZWRlbmNlXG4gICAgaWYgKHRoaXMucHJvcHMudGV4dCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLmRpc3BsYXlUZXh0JCA9IG9mKHRoaXMucHJvcHMudGV4dCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gVXNlIHJlYWN0aXZlIGNvbnRlbnQgaWYgY29uZmlndXJlZFxuICAgIGlmICh0aGlzLnByb3BzLnRleHRDb25maWcpIHtcbiAgICAgIHRoaXMuZGlzcGxheVRleHQkID0gdGhpcy5jb250ZW50U2VydmljZS5mcm9tQ29udGVudCh7XG4gICAgICAgIGNsYXNzTmFtZTogdGhpcy5wcm9wcy50ZXh0Q29uZmlnLmNsYXNzTmFtZSB8fCAnX2dsb2JhbCcsXG4gICAgICAgIGtleTogdGhpcy5wcm9wcy50ZXh0Q29uZmlnLmtleSxcbiAgICAgICAgZmFsbGJhY2s6IHRoaXMucHJvcHMudGV4dENvbmZpZy5mYWxsYmFjayB8fCB0aGlzLnByb3BzLnRleHRDb25maWcua2V5LFxuICAgICAgICBpbnRlcnBvbGF0aW9uOiB0aGlzLnByb3BzLnRleHRDb25maWcuaW50ZXJwb2xhdGlvbixcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIE5vIGNvbnRlbnQgY29uZmlndXJlZCAtIHVzZSBlbXB0eSBzdHJpbmdcbiAgICB0aGlzLmRpc3BsYXlUZXh0JCA9IG9mKCcnKTtcbiAgfVxuXG4gIGNsaWNrSGFuZGxlcigpIHtcbiAgICBpZiAodGhpcy5wcm9wcy5zdGF0ZSA9PT0gdGhpcy5zdGF0ZXMuRElTQUJMRUQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5wcm9wcy5hY3Rpb25UeXBlID09PSBBY3Rpb25UeXBlLkFQUF9OQVZJR0FUSU9OKSB7XG4gICAgICB0aGlzLm5hdmlnYXRpb24ubmF2aWdhdGVCeVVybCh0aGlzLnByb3BzLmxpbmspO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnByb3BzLmRvd25sb2FkKSB7XG4gICAgICB0aGlzLmRvd25sb2FkLmRvd25sb2FkTGlua0Zyb21Ccm93c2VyKHRoaXMucHJvcHMuZG93bmxvYWQpO1xuICAgIH1cbiAgICBpZiAodGhpcy5wcm9wcy5oYW5kbGVyKSB7XG4gICAgICB0aGlzLnByb3BzLmhhbmRsZXIodGhpcy5wcm9wcy5yZWYpO1xuICAgIH1cbiAgICB0aGlzLm9uQ2xpY2suZW1pdCh0aGlzLnByb3BzLnRva2VuKTtcbiAgfVxufVxuIl19
169
+ /**
170
+ * Helper function to create reactive button props from content configuration.
171
+ * This provides a convenient way to create val-button props with reactive content.
172
+ * Follows the same pattern as createTextProps for consistency.
173
+ *
174
+ * @param contentConfig - Content configuration
175
+ * @param styleConfig - Optional style and behavior configuration
176
+ * @returns ButtonMetadata with content properties set
177
+ *
178
+ * @example
179
+ * ```typescript
180
+ * // In component
181
+ * saveButtonProps: ButtonMetadata = createButtonProps({
182
+ * contentKey: 'save',
183
+ * contentClass: 'MyComponent'
184
+ * }, {
185
+ * color: 'primary',
186
+ * icon: { name: 'save', slot: 'start' }
187
+ * });
188
+ * ```
189
+ */
190
+ export function createButtonProps(contentConfig, styleConfig = {}) {
191
+ return {
192
+ contentKey: contentConfig.contentKey,
193
+ contentClass: contentConfig.contentClass,
194
+ contentFallback: contentConfig.contentFallback,
195
+ contentInterpolation: contentConfig.contentInterpolation,
196
+ color: styleConfig.color || 'primary',
197
+ type: styleConfig.type || 'button',
198
+ state: styleConfig.state || ComponentStates.ENABLED,
199
+ size: styleConfig.size,
200
+ fill: styleConfig.fill,
201
+ icon: styleConfig.icon,
202
+ expand: styleConfig.expand,
203
+ shape: styleConfig.shape,
204
+ handler: styleConfig.handler,
205
+ };
206
+ }
207
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRlY2gtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvYXRvbXMvYnV0dG9uL2J1dHRvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNwRixPQUFPLEVBQWMsWUFBWSxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUtwRCxPQUFPLEVBQUUsVUFBVSxFQUF1QyxlQUFlLEVBQUUsTUFBTSxhQUFhLENBQUM7Ozs7Ozs7QUEyQi9GOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBd0NHO0FBQ0gsTUFBTSxPQUFPLGVBQWU7SUFvQjFCLFlBQ1UsUUFBeUIsRUFDakMsSUFBaUIsRUFDVCxVQUE2QixFQUM3QixjQUE4QjtRQUg5QixhQUFRLEdBQVIsUUFBUSxDQUFpQjtRQUV6QixlQUFVLEdBQVYsVUFBVSxDQUFtQjtRQUM3QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUF2QnhDLFdBQU0sR0FBRyxlQUFlLENBQUM7UUFRakIsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBSzNDOztXQUVHO1FBRUgsWUFBTyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7SUFPbEMsQ0FBQztJQUVKLFFBQVE7UUFDTixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxh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TyxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsWUFDdEQ7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtCVDsyS0F3REQsS0FBSztzQkFESixLQUFLO2dCQU9OLE9BQU87c0JBRE4sTUFBTTs7QUEyRVQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0JHO0FBQ0gsTUFBTSxVQUFVLGlCQUFpQixDQUMvQixhQUFrQyxFQUNsQyxjQUVJLEVBQUU7SUFFTixPQUFPO1FBQ0wsVUFBVSxFQUFFLGFBQWEsQ0FBQyxVQUFVO1FBQ3BDLFlBQVksRUFBRSxhQUFhLENBQUMsWUFBWTtRQUN4QyxlQUFlLEVBQUUsYUFBYSxDQUFDLGVBQWU7UUFDOUMsb0JBQW9CLEVBQUUsYUFBYSxDQUFDLG9CQUFvQjtRQUN4RCxLQUFLLEVBQUUsV0FBVyxDQUFDLEtBQUssSUFBSSxTQUFTO1FBQ3JDLElBQUksRUFBRSxXQUFXLENBQUMsSUFBSSxJQUFJLFFBQVE7UUFDbEMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxLQUFLLElBQUksZUFBZSxDQUFDLE9BQU87UUFDbkQsSUFBSSxFQUFFLFdBQVcsQ0FBQyxJQUFJO1FBQ3RCLElBQUksRUFBRSxXQUFXLENBQUMsSUFBSTtRQUN0QixJQUFJLEVBQUUsV0FBVyxDQUFDLElBQUk7UUFDdEIsTUFBTSxFQUFFLFdBQVcsQ0FBQyxNQUFNO1FBQzFCLEtBQUssRUFBRSxXQUFXLENBQUMsS0FBSztRQUN4QixPQUFPLEVBQUUsV0FBVyxDQUFDLE9BQU87S0FDN0IsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJb25CdXR0b24sIElvbkljb24sIElvblNwaW5uZXIsIElvblRleHQgfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENvbnRlbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvY29udGVudC5zZXJ2aWNlJztcbmltcG9ydCB7IERvd25sb2FkU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2Rvd25sb2FkLnNlcnZpY2UnO1xuaW1wb3J0IHsgSWNvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pY29ucy5zZXJ2aWNlJztcbmltcG9ydCB7IE5hdmlnYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbmF2aWdhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IEFjdGlvblR5cGUsIEJ1dHRvbkNvbnRlbnRDb25maWcsIEJ1dHRvbk1ldGFkYXRhLCBDb21wb25lbnRTdGF0ZXMgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1idXR0b24nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBJb25CdXR0b24sIElvbkljb24sIElvblNwaW5uZXIsIElvblRleHRdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxpb24tYnV0dG9uXG4gICAgICBbdHlwZV09XCJwcm9wcy50eXBlXCJcbiAgICAgIFtjb2xvcl09XCJwcm9wcy5jb2xvclwiXG4gICAgICBbZXhwYW5kXT1cInByb3BzLmV4cGFuZFwiXG4gICAgICBbZmlsbF09XCJwcm9wcy5maWxsXCJcbiAgICAgIFtzaXplXT1cInByb3BzLnNpemVcIlxuICAgICAgW2hyZWZdPVwicHJvcHMuaHJlZlwiXG4gICAgICBbdGFyZ2V0XT1cInByb3BzLnRhcmdldFwiXG4gICAgICBbc2hhcGVdPVwicHJvcHMuc2hhcGVcIlxuICAgICAgKGNsaWNrKT1cImNsaWNrSGFuZGxlcigpXCJcbiAgICAgIFtkaXNhYmxlZF09XCJwcm9wcy5zdGF0ZSA9PT0gc3RhdGVzLkRJU0FCTEVEXCJcbiAgICAgIFtuZ0NsYXNzXT1cIltwcm9wcy5zaXplXVwiXG4gICAgPlxuICAgICAgPGlvbi1pY29uICpuZ0lmPVwicHJvcHMuaWNvblwiIFtzbG90XT1cInByb3BzLmljb24uc2xvdFwiIFtuYW1lXT1cInByb3BzLmljb24ubmFtZVwiPjwvaW9uLWljb24+XG4gICAgICA8aW9uLXNwaW5uZXIgKm5nSWY9XCJwcm9wcy5zdGF0ZSA9PT0gc3RhdGVzLldPUktJTkdcIiBuYW1lPVwiY2lyY3VsYXJcIj48L2lvbi1zcGlubmVyPlxuICAgICAgPGlvbi10ZXh0ICpuZ0lmPVwicHJvcHMuc3RhdGUgIT09IHN0YXRlcy5XT1JLSU5HXCI+e3sgZGlzcGxheVRleHQkIHwgYXN5bmMgfX08L2lvbi10ZXh0PlxuICAgIDwvaW9uLWJ1dHRvbj5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vYnV0dG9uLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuLyoqXG4gKiB2YWwtYnV0dG9uXG4gKlxuICogQSBjdXN0b21pemFibGUgYnV0dG9uIHN1cHBvcnRpbmcgaWNvbnMsIGxvYWRpbmcgc3RhdGUsIG5hdmlnYXRpb24sIGFuZCByZWFjdGl2ZSBjb250ZW50LlxuICogU3VwcG9ydHMgYm90aCBzdGF0aWMgdGV4dCBhbmQgcmVhY3RpdmUgY29udGVudCBmcm9tIHRoZSBjb250ZW50IHNlcnZpY2UuXG4gKiBGb2xsb3dzIHRoZSBzYW1lIGNvbnRlbnQgcGF0dGVybiBhcyB2YWwtdGV4dCBmb3IgY29uc2lzdGVuY3kuXG4gKlxuICogQGV4YW1wbGUgU3RhdGljIHRleHQ6XG4gKiA8dmFsLWJ1dHRvbiBbcHJvcHNdPVwie1xuICogICB0ZXh0OiAnU2F2ZScsXG4gKiAgIGNvbG9yOiAncHJpbWFyeScsXG4gKiAgIHR5cGU6ICdidXR0b24nLFxuICogICBzdGF0ZTogJ0VOQUJMRUQnLFxuICogICBpY29uOiB7IG5hbWU6ICdzYXZlJywgc2xvdDogJ3N0YXJ0JyB9XG4gKiB9XCIgKG9uQ2xpY2spPVwiaGFuZGxlcigpXCI+PC92YWwtYnV0dG9uPlxuICpcbiAqIEBleGFtcGxlIFJlYWN0aXZlIGNvbnRlbnQ6XG4gKiA8dmFsLWJ1dHRvbiBbcHJvcHNdPVwie1xuICogICBjb250ZW50S2V5OiAnc2F2ZScsXG4gKiAgIGNvbnRlbnRDbGFzczogJ015Q29tcG9uZW50JyxcbiAqICAgY29udGVudEZhbGxiYWNrOiAnU2F2ZScsXG4gKiAgIGNvbG9yOiAncHJpbWFyeScsXG4gKiAgIHR5cGU6ICdidXR0b24nLFxuICogICBzdGF0ZTogJ0VOQUJMRUQnLFxuICogICBpY29uOiB7IG5hbWU6ICdzYXZlJywgc2xvdDogJ3N0YXJ0JyB9XG4gKiB9XCIgKG9uQ2xpY2spPVwiaGFuZGxlcigpXCI+PC92YWwtYnV0dG9uPlxuICpcbiAqIEBleGFtcGxlIFJlYWN0aXZlIGNvbnRlbnQgd2l0aCBpbnRlcnBvbGF0aW9uOlxuICogPHZhbC1idXR0b24gW3Byb3BzXT1cIntcbiAqICAgY29udGVudEtleTogJ3NhdmVDb3VudCcsXG4gKiAgIGNvbnRlbnRDbGFzczogJ015Q29tcG9uZW50JyxcbiAqICAgY29udGVudEludGVycG9sYXRpb246IHsgY291bnQ6IDUgfSxcbiAqICAgY29udGVudEZhbGxiYWNrOiAnU2F2ZSBJdGVtcycsXG4gKiAgIGNvbG9yOiAncHJpbWFyeScsXG4gKiAgIHR5cGU6ICdidXR0b24nLFxuICogICBzdGF0ZTogJ0VOQUJMRUQnXG4gKiB9XCIgKG9uQ2xpY2spPVwiaGFuZGxlcigpXCI+PC92YWwtYnV0dG9uPlxuICpcbiAqIEBpbnB1dCBwcm9wczogQnV0dG9uTWV0YWRhdGEgLSBDb25maWd1cmF0aW9uIGZvciB0aGUgYnV0dG9uICh0ZXh0L2NvbnRlbnQsIGNvbG9yLCBpY29uLCBzdGF0ZSwgZXRjLilcbiAqIEBvdXRwdXQgb25DbGljayAtIEVtaXRzIHdoZW4gdGhlIGJ1dHRvbiBpcyBjbGlja2VkXG4gKi9cbmV4cG9ydCBjbGFzcyBCdXR0b25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHN0YXRlcyA9IENvbXBvbmVudFN0YXRlcztcblxuICAvKipcbiAgICogT2JzZXJ2YWJsZSB0aGF0IHByb3ZpZGVzIHRoZSB0ZXh0IGNvbnRlbnQgdG8gZGlzcGxheS5cbiAgICogVGhpcyB3aWxsIGJlIGVpdGhlciBzdGF0aWMgdGV4dCBvciByZWFjdGl2ZSBjb250ZW50IGZyb20gdGhlIGxhbmd1YWdlIHNlcnZpY2UuXG4gICAqL1xuICBkaXNwbGF5VGV4dCQ6IE9ic2VydmFibGU8c3RyaW5nPjtcblxuICBwcml2YXRlIHN1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgQElucHV0KClcbiAgcHJvcHMhOiBCdXR0b25NZXRhZGF0YTtcblxuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBidXR0b24gaXMgY2xpY2tlZC5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBvbkNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBkb3dubG9hZDogRG93bmxvYWRTZXJ2aWNlLFxuICAgIGljb246IEljb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgbmF2aWdhdGlvbjogTmF2aWdhdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb250ZW50U2VydmljZTogQ29udGVudFNlcnZpY2VcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuc2V0dXBEaXNwbGF5VGV4dCgpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHVwIHRoZSB0ZXh0IGNvbnRlbnQgb2JzZXJ2YWJsZSBiYXNlZCBvbiB0aGUgcHJvcHMgY29uZmlndXJhdGlvbi5cbiAgICogUHJpb3JpdHk6IHN0YXRpYyB0ZXh0ID4gcmVhY3RpdmUgY29udGVudCB3aXRoIGludGVycG9sYXRpb24gPiByZWFjdGl2ZSBjb250ZW50XG4gICAqIFRoaXMgZm9sbG93cyB0aGUgc2FtZSBwYXR0ZXJuIGFzIHZhbC10ZXh0IGNvbXBvbmVudC5cbiAgICovXG4gIHByaXZhdGUgc2V0dXBEaXNwbGF5VGV4dCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5wcm9wcy50ZXh0KSB7XG4gICAgICAvLyBTdGF0aWMgdGV4dCB0YWtlcyBwcmVjZWRlbmNlXG4gICAgICB0aGlzLmRpc3BsYXlUZXh0JCA9IG9mKHRoaXMucHJvcHMudGV4dCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnByb3BzLmNvbnRlbnRLZXkgJiYgdGhpcy5wcm9wcy5jb250ZW50Q2xhc3MpIHtcbiAgICAgIC8vIFJlYWN0aXZlIGNvbnRlbnQgZnJvbSBsYW5ndWFnZSBzZXJ2aWNlXG4gICAgICBpZiAodGhpcy5wcm9wcy5jb250ZW50SW50ZXJwb2xhdGlvbikge1xuICAgICAgICAvLyBXaXRoIGludGVycG9sYXRpb25cbiAgICAgICAgdGhpcy5kaXNwbGF5VGV4dCQgPSB0aGlzLmNvbnRlbnRTZXJ2aWNlLmZyb21Db250ZW50V2l0aEludGVycG9sYXRpb24oe1xuICAgICAgICAgIGNsYXNzTmFtZTogdGhpcy5wcm9wcy5jb250ZW50Q2xhc3MsXG4gICAgICAgICAga2V5OiB0aGlzLnByb3BzLmNvbnRlbnRLZXksXG4gICAgICAgICAgZmFsbGJhY2s6IHRoaXMucHJvcHMuY29udGVudEZhbGxiYWNrLFxuICAgICAgICAgIGludGVycG9sYXRpb246IHRoaXMucHJvcHMuY29udGVudEludGVycG9sYXRpb24sXG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gU2ltcGxlIHJlYWN0aXZlIGNvbnRlbnRcbiAgICAgICAgdGhpcy5kaXNwbGF5VGV4dCQgPSB0aGlzLmNvbnRlbnRTZXJ2aWNlLmZyb21Db250ZW50KHtcbiAgICAgICAgICBjbGFzc05hbWU6IHRoaXMucHJvcHMuY29udGVudENsYXNzLFxuICAgICAgICAgIGtleTogdGhpcy5wcm9wcy5jb250ZW50S2V5LFxuICAgICAgICAgIGZhbGxiYWNrOiB0aGlzLnByb3BzLmNvbnRlbnRGYWxsYmFjayxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEZhbGxiYWNrIHRvIGVtcHR5IHN0cmluZyBpZiBubyB2YWxpZCBjb250ZW50IGNvbmZpZ3VyYXRpb25cbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgJ3ZhbC1idXR0b246IE5vIHZhbGlkIGNvbnRlbnQgY29uZmlndXJhdGlvbiBwcm92aWRlZC4gVXNlIGVpdGhlciBcInRleHRcIiBmb3Igc3RhdGljIHRleHQgb3IgXCJjb250ZW50S2V5XCIgKyBcImNvbnRlbnRDbGFzc1wiIGZvciByZWFjdGl2ZSBjb250ZW50LidcbiAgICAgICk7XG4gICAgICB0aGlzLmRpc3BsYXlUZXh0JCA9IG9mKHRoaXMucHJvcHMuY29udGVudEZhbGxiYWNrIHx8ICcnKTtcbiAgICB9XG4gIH1cblxuICBjbGlja0hhbmRsZXIoKSB7XG4gICAgaWYgKHRoaXMucHJvcHMuc3RhdGUgPT09IHRoaXMuc3RhdGVzLkRJU0FCTEVEKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucHJvcHMuYWN0aW9uVHlwZSA9PT0gQWN0aW9uVHlwZS5BUFBfTkFWSUdBVElPTikge1xuICAgICAgdGhpcy5uYXZpZ2F0aW9uLm5hdmlnYXRlQnlVcmwodGhpcy5wcm9wcy5saW5rKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5wcm9wcy5kb3dubG9hZCkge1xuICAgICAgdGhpcy5kb3dubG9hZC5kb3dubG9hZExpbmtGcm9tQnJvd3Nlcih0aGlzLnByb3BzLmRvd25sb2FkKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5wcm9wcy5oYW5kbGVyKSB7XG4gICAgICB0aGlzLnByb3BzLmhhbmRsZXIodGhpcy5wcm9wcy5yZWYpO1xuICAgIH1cblxuICAgIHRoaXMub25DbGljay5lbWl0KHRoaXMucHJvcHMudG9rZW4pO1xuICB9XG59XG5cbi8qKlxuICogSGVscGVyIGZ1bmN0aW9uIHRvIGNyZWF0ZSByZWFjdGl2ZSBidXR0b24gcHJvcHMgZnJvbSBjb250ZW50IGNvbmZpZ3VyYXRpb24uXG4gKiBUaGlzIHByb3ZpZGVzIGEgY29udmVuaWVudCB3YXkgdG8gY3JlYXRlIHZhbC1idXR0b24gcHJvcHMgd2l0aCByZWFjdGl2ZSBjb250ZW50LlxuICogRm9sbG93cyB0aGUgc2FtZSBwYXR0ZXJuIGFzIGNyZWF0ZVRleHRQcm9wcyBmb3IgY29uc2lzdGVuY3kuXG4gKlxuICogQHBhcmFtIGNvbnRlbnRDb25maWcgLSBDb250ZW50IGNvbmZpZ3VyYXRpb25cbiAqIEBwYXJhbSBzdHlsZUNvbmZpZyAtIE9wdGlvbmFsIHN0eWxlIGFuZCBiZWhhdmlvciBjb25maWd1cmF0aW9uXG4gKiBAcmV0dXJucyBCdXR0b25NZXRhZGF0YSB3aXRoIGNvbnRlbnQgcHJvcGVydGllcyBzZXRcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogLy8gSW4gY29tcG9uZW50XG4gKiBzYXZlQnV0dG9uUHJvcHM6IEJ1dHRvbk1ldGFkYXRhID0gY3JlYXRlQnV0dG9uUHJvcHMoe1xuICogICBjb250ZW50S2V5OiAnc2F2ZScsXG4gKiAgIGNvbnRlbnRDbGFzczogJ015Q29tcG9uZW50J1xuICogfSwge1xuICogICBjb2xvcjogJ3ByaW1hcnknLFxuICogICBpY29uOiB7IG5hbWU6ICdzYXZlJywgc2xvdDogJ3N0YXJ0JyB9XG4gKiB9KTtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQnV0dG9uUHJvcHMoXG4gIGNvbnRlbnRDb25maWc6IEJ1dHRvbkNvbnRlbnRDb25maWcsXG4gIHN0eWxlQ29uZmlnOiBQYXJ0aWFsPFxuICAgIFBpY2s8QnV0dG9uTWV0YWRhdGEsICdjb2xvcicgfCAndHlwZScgfCAnc3RhdGUnIHwgJ3NpemUnIHwgJ2ZpbGwnIHwgJ2ljb24nIHwgJ2V4cGFuZCcgfCAnc2hhcGUnIHwgJ2hhbmRsZXInPlxuICA+ID0ge31cbik6IEJ1dHRvbk1ldGFkYXRhIHtcbiAgcmV0dXJuIHtcbiAgICBjb250ZW50S2V5OiBjb250ZW50Q29uZmlnLmNvbnRlbnRLZXksXG4gICAgY29udGVudENsYXNzOiBjb250ZW50Q29uZmlnLmNvbnRlbnRDbGFzcyxcbiAgICBjb250ZW50RmFsbGJhY2s6IGNvbnRlbnRDb25maWcuY29udGVudEZhbGxiYWNrLFxuICAgIGNvbnRlbnRJbnRlcnBvbGF0aW9uOiBjb250ZW50Q29uZmlnLmNvbnRlbnRJbnRlcnBvbGF0aW9uLFxuICAgIGNvbG9yOiBzdHlsZUNvbmZpZy5jb2xvciB8fCAncHJpbWFyeScsXG4gICAgdHlwZTogc3R5bGVDb25maWcudHlwZSB8fCAnYnV0dG9uJyxcbiAgICBzdGF0ZTogc3R5bGVDb25maWcuc3RhdGUgfHwgQ29tcG9uZW50U3RhdGVzLkVOQUJMRUQsXG4gICAgc2l6ZTogc3R5bGVDb25maWcuc2l6ZSxcbiAgICBmaWxsOiBzdHlsZUNvbmZpZy5maWxsLFxuICAgIGljb246IHN0eWxlQ29uZmlnLmljb24sXG4gICAgZXhwYW5kOiBzdHlsZUNvbmZpZy5leHBhbmQsXG4gICAgc2hhcGU6IHN0eWxlQ29uZmlnLnNoYXBlLFxuICAgIGhhbmRsZXI6IHN0eWxlQ29uZmlnLmhhbmRsZXIsXG4gIH07XG59XG4iXX0=
@@ -46,4 +46,4 @@ export var ToolbarActionType;
46
46
  ToolbarActionType["IMAGE"] = "IMAGE";
47
47
  ToolbarActionType["BUTTON"] = "BUTTON";
48
48
  })(ToolbarActionType || (ToolbarActionType = {}));
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0ZWNoLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVFBLE1BQU0sT0FBTyxHQUFtQixTQUFTLENBQUM7QUFDMUMsTUFBTSxRQUFRLEdBQW1CLFVBQVUsQ0FBQztBQUM1QyxNQUFNLE9BQU8sR0FBbUIsU0FBUyxDQUFDO0FBQzFDLE1BQU0sS0FBSyxHQUFtQixPQUFPLENBQUM7QUFFdEM7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQztBQUVyRTs7R0FFRztBQUNILE1BQU0sQ0FBTixJQUFZLFVBTVg7QUFORCxXQUFZLFVBQVU7SUFDcEIsaUVBQWUsQ0FBQTtJQUNmLG1FQUFnQixDQUFBO0lBQ2hCLGlFQUFlLENBQUE7SUFDZiwrREFBYyxDQUFBO0lBQ2QsdUVBQWtCLENBQUE7QUFDcEIsQ0FBQyxFQU5XLFVBQVUsS0FBVixVQUFVLFFBTXJCO0FBY0Q7O0dBRUc7QUFDSCxNQUFNLENBQU4sSUFBWSxTQWNYO0FBZEQsV0FBWSxTQUFTO0lBQ25CLHlDQUFJLENBQUE7SUFDSiwyQ0FBSyxDQUFBO0lBQ0wsaURBQVEsQ0FBQTtJQUNSLCtDQUFPLENBQUE7SUFDUCw2Q0FBTSxDQUFBO0lBQ04saURBQVEsQ0FBQTtJQUNSLHlDQUFJLENBQUE7SUFDSix5Q0FBSSxDQUFBO0lBQ0osMkNBQUssQ0FBQTtJQUNMLDJDQUFLLENBQUE7SUFDTCw4Q0FBTSxDQUFBO0lBQ04sNERBQWEsQ0FBQTtJQUNiLDBDQUFJLENBQUE7QUFDTixDQUFDLEVBZFcsU0FBUyxLQUFULFNBQVMsUUFjcEI7QUE2RkQ7O0dBRUc7QUFDSCxNQUFNLENBQU4sSUFBWSxpQkFLWDtBQUxELFdBQVksaUJBQWlCO0lBQzNCLHNDQUFpQixDQUFBO0lBQ2pCLGtDQUFhLENBQUE7SUFDYixvQ0FBZSxDQUFBO0lBQ2Ysc0NBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQUxXLGlCQUFpQixLQUFqQixpQkFBaUIsUUFLNUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb3JtQ29udHJvbCwgVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDb2xvciB9IGZyb20gJ0Bpb25pYy9jb3JlJztcbmltcG9ydCB7IEltYWdlTWV0YWRhdGEgfSBmcm9tICcuL2F0b21zL2ltYWdlL3R5cGVzJztcblxuLyoqXG4gKiBQb3NzaWJsZSBzdGF0ZXMgZm9yIGFuIGludGVyYWN0aXZlIGNvbXBvbmVudC5cbiAqL1xuZXhwb3J0IHR5cGUgQ29tcG9uZW50U3RhdGUgPSAnRU5BQkxFRCcgfCAnRElTQUJMRUQnIHwgJ1dPUktJTkcnIHwgJ0VSUk9SJztcbmNvbnN0IEVOQUJMRUQ6IENvbXBvbmVudFN0YXRlID0gJ0VOQUJMRUQnO1xuY29uc3QgRElTQUJMRUQ6IENvbXBvbmVudFN0YXRlID0gJ0RJU0FCTEVEJztcbmNvbnN0IFdPUktJTkc6IENvbXBvbmVudFN0YXRlID0gJ1dPUktJTkcnO1xuY29uc3QgRVJST1I6IENvbXBvbmVudFN0YXRlID0gJ0VSUk9SJztcblxuLyoqXG4gKiBPYmplY3QgY29udGFpbmluZyBhbGwgcG9zc2libGUgY29tcG9uZW50IHN0YXRlcy5cbiAqL1xuZXhwb3J0IGNvbnN0IENvbXBvbmVudFN0YXRlcyA9IHsgRU5BQkxFRCwgRElTQUJMRUQsIFdPUktJTkcsIEVSUk9SIH07XG5cbi8qKlxuICogVHlwZXMgb2YgYWN0aW9ucyB0aGF0IGEgYnV0dG9uIG9yIGxpbmsgY2FuIHBlcmZvcm0uXG4gKi9cbmV4cG9ydCBlbnVtIEFjdGlvblR5cGUge1xuICBCUk9XU0VSX05FV19UQUIsIC8vIE9wZW4gaW4gYSBuZXcgYnJvd3NlciB0YWJcbiAgQlJPV1NFUl9ET1dOTE9BRCwgLy8gRG93bmxvYWQgdmlhIGJyb3dzZXJcbiAgTkFUSVZFX0RPV05MT0FELCAvLyBEb3dubG9hZCB1c2luZyBuYXRpdmUgY2FwYWJpbGl0aWVzXG4gIEFQUF9OQVZJR0FUSU9OLCAvLyBJbnRlcm5hbCBhcHAgbmF2aWdhdGlvblxuICBCUk9XU0VSX05BVklHQVRJT04sIC8vIE5hdmlnYXRpb24gaW4gdGhlIGJyb3dzZXJcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGFuIGV4ZWN1dGFibGUgYWN0aW9uIGZvciBhIGJ1dHRvbiBvciBsaW5rLlxuICovXG5leHBvcnQgdHlwZSBBY3Rpb24gPSB7XG4gIC8qKiBBY3Rpb24gZGVzY3JpcHRpb24gKi9cbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgLyoqIEFjdGlvbiB0eXBlICovXG4gIHR5cGU6IEFjdGlvblR5cGU7XG4gIC8qKiBBY3Rpb24gc291cmNlIG9yIGRlc3RpbmF0aW9uICovXG4gIHNvdXJjZTogc3RyaW5nO1xufTtcblxuLyoqXG4gKiBTdXBwb3J0ZWQgaW5wdXQgdHlwZXMgZm9yIGZvcm1zLlxuICovXG5leHBvcnQgZW51bSBJbnB1dFR5cGUge1xuICBURVhULFxuICBFTUFJTCxcbiAgUEFTU1dPUkQsXG4gIENPTU1FTlQsXG4gIE5VTUJFUixcbiAgUElOX0NPREUsXG4gIERBVEUsXG4gIEhPVVIsXG4gIENIRUNLLFxuICBSQURJTyxcbiAgU0VMRUNULFxuICBTRUFSQ0hfU0VMRUNULFxuICBGSUxFLFxufVxuXG4vKipcbiAqIE9wdGlvbiBmb3Igc2VsZWN0LCByYWRpbywgZXRjLiBpbnB1dHMuXG4gKi9cbmV4cG9ydCB0eXBlIElucHV0T3B0aW9uID0ge1xuICAvKiogVW5pcXVlIG9wdGlvbiBpZGVudGlmaWVyICovXG4gIGlkOiBzdHJpbmc7XG4gIC8qKiBEaXNwbGF5IG5hbWUgKi9cbiAgbmFtZTogc3RyaW5nO1xuICAvKiogV2hldGhlciB0aGUgb3B0aW9uIGlzIHNlbGVjdGVkIGJ5IGRlZmF1bHQgKi9cbiAgc2VsZWN0ZWQ/OiBib29sZWFuO1xuICAvKiogRGlzcGxheSBvcmRlciAqL1xuICBvcmRlcjogbnVtYmVyO1xufTtcblxuLyoqXG4gKiBNZXRhZGF0YSBmb3IgYSBmb3JtIGZpZWxkLlxuICovXG5leHBvcnQgdHlwZSBJbnB1dE1ldGFkYXRhID0ge1xuICAvKiogQXNzb2NpYXRlZCBmb3JtIGNvbnRyb2wgKi9cbiAgY29udHJvbDogRm9ybUNvbnRyb2w7XG4gIC8qKiBVbmlxdWUgdG9rZW4gZm9yIHRoZSBpbnB1dCAqL1xuICB0b2tlbjogc3RyaW5nO1xuICAvKiogRGlzcGxheSBsYWJlbCAqL1xuICBsYWJlbDogc3RyaW5nO1xuICAvKiogRmllbGQgbmFtZSAqL1xuICBuYW1lOiBzdHJpbmc7XG4gIC8qKiBIZWxwIHRleHQgKi9cbiAgaGludDogc3RyaW5nO1xuICAvKiogSW5wdXQgcGxhY2Vob2xkZXIgKi9cbiAgcGxhY2Vob2xkZXI6IHN0cmluZztcbiAgLyoqIElucHV0IHR5cGUgKi9cbiAgdHlwZTogSW5wdXRUeXBlO1xuICAvKiogRGlzcGxheSBvcmRlciAqL1xuICBvcmRlcjogbnVtYmVyO1xuICAvKiogQXNzb2NpYXRlZCB2YWxpZGF0b3JzICovXG4gIHZhbGlkYXRvcnM6IFZhbGlkYXRvckZuW107XG4gIC8qKiBPcHRpb25zIChmb3Igc2VsZWN0LCByYWRpbywgZXRjLikgKi9cbiAgb3B0aW9ucz86IElucHV0T3B0aW9uW107XG4gIC8qKiBBbGxvd2VkIHJhbmdlIChmb3IgbnVtYmVyLCBkYXRlLCBldGMuKSAqL1xuICByYW5nZT86IHtcbiAgICBtaW46IG51bWJlcjtcbiAgICBtYXg6IG51bWJlcjtcbiAgfTtcbiAgLyoqIEN1c3RvbSBlcnJvciBtZXNzYWdlcyAqL1xuICBlcnJvcnM6IHtcbiAgICBba2V5OiBzdHJpbmddOiBzdHJpbmc7XG4gIH07XG4gIC8qKiBJbml0aWFsIHZhbHVlIGZvciB0aGUgZmllbGQgKi9cbiAgdmFsdWU/OiBzdHJpbmc7XG4gIC8qKiBEZWZhdWx0IHZhbHVlIGNvbmZpZ3VyYXRpb24gLSBzdHJpbmcgZm9yIGN1c3RvbSBkZWZhdWx0cywgdHJ1ZSBmb3IgYXV0byBkZWZhdWx0cyAqL1xuICB3aXRoRGVmYXVsdD86IHN0cmluZyB8IGJvb2xlYW47XG4gIC8qKiBGaWVsZCBzdGF0ZSAqL1xuICBzdGF0ZTogQ29tcG9uZW50U3RhdGU7XG59O1xuXG4vKipcbiAqIEEgc2VjdGlvbiBpbiBhIGZvcm0sIGdyb3VwaW5nIG11bHRpcGxlIGZpZWxkcy5cbiAqL1xuZXhwb3J0IHR5cGUgRm9ybVNlY3Rpb24gPSB7XG4gIC8qKiBTZWN0aW9uIG5hbWUgKi9cbiAgbmFtZTogc3RyaW5nO1xuICAvKiogRGlzcGxheSBvcmRlciAqL1xuICBvcmRlcjogbnVtYmVyO1xuICAvKiogRmllbGRzIGluY2x1ZGVkIGluIHRoZSBzZWN0aW9uICovXG4gIGZpZWxkczogSW5wdXRNZXRhZGF0YVtdO1xufTtcblxuLyoqXG4gKiBEYXRhIHNlbnQgd2hlbiBzdWJtaXR0aW5nIGEgZm9ybS5cbiAqL1xuZXhwb3J0IHR5cGUgRm9ybVN1Ym1pdCA9IHtcbiAgLyoqIExpc3Qgb2YgZmllbGRzIGFuZCB0aGVpciB2YWx1ZXMgKi9cbiAgZmllbGRzOiB7IGtleTogc3RyaW5nOyB2YWx1ZTogc3RyaW5nIH1bXTtcbiAgLyoqIE9wdGlvbmFsIHRva2VuIGZvciB0aGUgb3BlcmF0aW9uICovXG4gIHRva2VuPzogc3RyaW5nO1xufTtcblxuLyoqXG4gKiBNZXRhZGF0YSBmb3IgYSBjb21wbGV0ZSBmb3JtLlxuICovXG5leHBvcnQgdHlwZSBGb3JtTWV0YWRhdGEgPSB7XG4gIC8qKiBGb3JtIG5hbWUgKi9cbiAgbmFtZTogc3RyaW5nO1xuICAvKiogRm9ybSBzZWN0aW9ucyAqL1xuICBzZWN0aW9uczogRm9ybVNlY3Rpb25bXTtcbiAgLyoqIEFjdGlvbiBidXR0b25zIGNvbmZpZ3VyYXRpb24gKi9cbiAgYWN0aW9uczogQnV0dG9uTWV0YWRhdGE7XG4gIC8qKiBHbG9iYWwgZm9ybSBzdGF0ZSAqL1xuICBzdGF0ZTogQ29tcG9uZW50U3RhdGU7XG59O1xuXG4vKipcbiAqIFBvc3NpYmxlIGFjdGlvbiB0eXBlcyBmb3IgYSB0b29sYmFyLlxuICovXG5leHBvcnQgZW51bSBUb29sYmFyQWN0aW9uVHlwZSB7XG4gIEFWQVRBUiA9ICdBVkFUQVInLFxuICBJQ09OID0gJ0lDT04nLFxuICBJTUFHRSA9ICdJTUFHRScsXG4gIEJVVFRPTiA9ICdCVVRUT04nLFxufVxuXG4vKipcbiAqIFRvb2xiYXIgYWN0aW9uIGRlZmluaXRpb24uXG4gKi9cbmV4cG9ydCB0eXBlIFRvb2xiYXJBY3Rpb24gPSB7XG4gIC8qKiBBY3Rpb24gdHlwZSAqL1xuICB0eXBlOiAnQVZBVEFSJyB8ICdJQ09OJyB8ICdJTUFHRScgfCAnQlVUVE9OJztcbiAgLyoqIE9wdGlvbmFsIHRva2VuIGlkZW50aWZpZXIgKi9cbiAgdG9rZW4/OiBzdHJpbmc7XG4gIC8qKiBUb29sYmFyIHBvc2l0aW9uICovXG4gIHBvc2l0aW9uOiAnbGVmdCcgfCAncmlnaHQnIHwgJ2NlbnRlcic7XG4gIC8qKiBPcHRpb25hbCBkZXNjcmlwdGlvbiAqL1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgLyoqIEFzc29jaWF0ZWQgaW1hZ2UgKGlmIGFueSkgKi9cbiAgaW1hZ2U/OiBJbWFnZU1ldGFkYXRhO1xufTtcblxuLyoqXG4gKiBNZXRhZGF0YSBmb3IgYW4gaWNvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJY29uTWV0YWRhIHtcbiAgLyoqIEljb24gbmFtZSAqL1xuICBuYW1lOiBzdHJpbmc7XG4gIC8qKiBJY29uIHNsb3QgcG9zaXRpb24gKi9cbiAgc2xvdDogJ3N0YXJ0JyB8ICdlbmQnO1xufVxuXG4vKipcbiAqIEJ1dHRvbiBjb25maWd1cmF0aW9uIG9iamVjdC5cbiAqIFN1cHBvcnRzIGJvdGggc3RhdGljIGFuZCByZWFjdGl2ZSBjb250ZW50LlxuICogQHR5cGUge0J1dHRvbk1ldGFkYXRhfVxuICogQHByb3BlcnR5IHRleHQgLSBTdGF0aWMgYnV0dG9uIGxhYmVsICh0YWtlcyBwcmVjZWRlbmNlIG92ZXIgdGV4dENvbmZpZykuXG4gKiBAcHJvcGVydHkgdGV4dENvbmZpZyAtIFJlYWN0aXZlIGNvbnRlbnQgY29uZmlndXJhdGlvbiBmb3IgYnV0dG9uIHRleHQuXG4gKiBAcHJvcGVydHkgY29sb3IgLSBUaGUgYnV0dG9uIGNvbG9yIChJb25pYyBjb2xvciBzdHJpbmcpLlxuICogQHByb3BlcnR5IGljb24gLSBJY29uIHRvIGRpc3BsYXkgKG9wdGlvbmFsKS5cbiAqIEBwcm9wZXJ0eSBzdGF0ZSAtIEJ1dHRvbiBzdGF0ZSAoZW5hYmxlZCwgZGlzYWJsZWQsIHdvcmtpbmcsIGV0Yy4pLlxuICogQHByb3BlcnR5IGV4cGFuZCwgZmlsbCwgc2l6ZSwgc2hhcGUsIGhyZWYsIHRhcmdldCwgZG93bmxvYWQsIGhhbmRsZXIsIGV0Yy4gLSBTZWUgQnV0dG9uTWV0YWRhdGEgZm9yIGFsbCBvcHRpb25zLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJ1dHRvbk1ldGFkYXRhIHtcbiAgLyoqIEFzc29jaWF0ZWQgYWN0aW9uIHR5cGUgKi9cbiAgYWN0aW9uVHlwZT86IEFjdGlvblR5cGU7XG4gIC8qKiBCdXR0b24gZXhwYW5zaW9uICovXG4gIGV4cGFuZD86ICdmdWxsJyB8ICdibG9jayc7XG4gIC8qKiBBc3NvY2lhdGVkIGxpbmsgKi9cbiAgbGluaz86IHN0cmluZztcbiAgLyoqIEFzc29jaWF0ZWQgaHJlZiBsaW5rICovXG4gIGhyZWY/OiBzdHJpbmc7XG4gIC8qKiBMaW5rIHRhcmdldCAqL1xuICB0YXJnZXQ/OiAnX2JsYW5rJyB8ICdfc2VsZicgfCAnX3BhcmVudCcgfCAnX3RvcCc7XG4gIC8qKiBEb3dubG9hZCBmaWxlIG5hbWUgKi9cbiAgZG93bmxvYWQ/OiBzdHJpbmc7XG4gIC8qKiBCdXR0b24gY29sb3IgKi9cbiAgY29sb3I6IENvbG9yO1xuICAvKiogQnV0dG9uIHN0YXRlICovXG4gIHN0YXRlOiBDb21wb25lbnRTdGF0ZTtcbiAgLyoqIFN0YXRpYyBkaXNwbGF5IHRleHQgKHRha2VzIHByZWNlZGVuY2Ugb3ZlciB0ZXh0Q29uZmlnKSAqL1xuICB0ZXh0Pzogc3RyaW5nO1xuICAvKiogUmVhY3RpdmUgY29udGVudCBjb25maWd1cmF0aW9uIGZvciBidXR0b24gdGV4dCAqL1xuICB0ZXh0Q29uZmlnPzoge1xuICAgIGNsYXNzTmFtZT86IHN0cmluZztcbiAgICBrZXk6IHN0cmluZztcbiAgICBmYWxsYmFjaz86IHN0cmluZztcbiAgICBpbnRlcnBvbGF0aW9uPzogUmVjb3JkPHN0cmluZywgYW55PjtcbiAgfTtcbiAgLyoqIEFzc29jaWF0ZWQgaWNvbiAqL1xuICBpY29uPzogSWNvbk1ldGFkYTtcbiAgLyoqIEJ1dHRvbiBzaGFwZSAqL1xuICBzaGFwZT86ICdyb3VuZCc7XG4gIC8qKiBCdXR0b24gc2l6ZSAqL1xuICBzaXplPzogJ3NtYWxsJyB8ICdkZWZhdWx0JyB8ICdsYXJnZSc7XG4gIC8qKiBCdXR0b24gZmlsbCAqL1xuICBmaWxsPzogJ2NsZWFyJyB8ICdvdXRsaW5lJyB8ICdzb2xpZCcgfCAnZGVmYXVsdCc7XG4gIC8qKiBCdXR0b24gdHlwZSAqL1xuICB0eXBlOiAnYnV0dG9uJyB8ICdzdWJtaXQnIHwgJ3Jlc2V0JztcbiAgLyoqIE9wdGlvbmFsIHRva2VuIGlkZW50aWZpZXIgKi9cbiAgdG9rZW4/OiBzdHJpbmc7XG4gIC8qKiBPcHRpb25hbCByZWZlcmVuY2UgKi9cbiAgcmVmPzogYW55O1xuICAvKiogQWN0aW9uIGhhbmRsZXIgKi9cbiAgaGFuZGxlcj86ICh2YWx1ZTogYW55KSA9PiBhbnkgfCBQcm9taXNlPGFueT47XG59XG4iXX0=
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0ZWNoLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVFBLE1BQU0sT0FBTyxHQUFtQixTQUFTLENBQUM7QUFDMUMsTUFBTSxRQUFRLEdBQW1CLFVBQVUsQ0FBQztBQUM1QyxNQUFNLE9BQU8sR0FBbUIsU0FBUyxDQUFDO0FBQzFDLE1BQU0sS0FBSyxHQUFtQixPQUFPLENBQUM7QUFFdEM7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQztBQUVyRTs7R0FFRztBQUNILE1BQU0sQ0FBTixJQUFZLFVBTVg7QUFORCxXQUFZLFVBQVU7SUFDcEIsaUVBQWUsQ0FBQTtJQUNmLG1FQUFnQixDQUFBO0lBQ2hCLGlFQUFlLENBQUE7SUFDZiwrREFBYyxDQUFBO0lBQ2QsdUVBQWtCLENBQUE7QUFDcEIsQ0FBQyxFQU5XLFVBQVUsS0FBVixVQUFVLFFBTXJCO0FBY0Q7O0dBRUc7QUFDSCxNQUFNLENBQU4sSUFBWSxTQWNYO0FBZEQsV0FBWSxTQUFTO0lBQ25CLHlDQUFJLENBQUE7SUFDSiwyQ0FBSyxDQUFBO0lBQ0wsaURBQVEsQ0FBQTtJQUNSLCtDQUFPLENBQUE7SUFDUCw2Q0FBTSxDQUFBO0lBQ04saURBQVEsQ0FBQTtJQUNSLHlDQUFJLENBQUE7SUFDSix5Q0FBSSxDQUFBO0lBQ0osMkNBQUssQ0FBQTtJQUNMLDJDQUFLLENBQUE7SUFDTCw4Q0FBTSxDQUFBO0lBQ04sNERBQWEsQ0FBQTtJQUNiLDBDQUFJLENBQUE7QUFDTixDQUFDLEVBZFcsU0FBUyxLQUFULFNBQVMsUUFjcEI7QUE2RkQ7O0dBRUc7QUFDSCxNQUFNLENBQU4sSUFBWSxpQkFLWDtBQUxELFdBQVksaUJBQWlCO0lBQzNCLHNDQUFpQixDQUFBO0lBQ2pCLGtDQUFhLENBQUE7SUFDYixvQ0FBZSxDQUFBO0lBQ2Ysc0NBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQUxXLGlCQUFpQixLQUFqQixpQkFBaUIsUUFLNUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb3JtQ29udHJvbCwgVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDb2xvciB9IGZyb20gJ0Bpb25pYy9jb3JlJztcbmltcG9ydCB7IEltYWdlTWV0YWRhdGEgfSBmcm9tICcuL2F0b21zL2ltYWdlL3R5cGVzJztcblxuLyoqXG4gKiBQb3NzaWJsZSBzdGF0ZXMgZm9yIGFuIGludGVyYWN0aXZlIGNvbXBvbmVudC5cbiAqL1xuZXhwb3J0IHR5cGUgQ29tcG9uZW50U3RhdGUgPSAnRU5BQkxFRCcgfCAnRElTQUJMRUQnIHwgJ1dPUktJTkcnIHwgJ0VSUk9SJztcbmNvbnN0IEVOQUJMRUQ6IENvbXBvbmVudFN0YXRlID0gJ0VOQUJMRUQnO1xuY29uc3QgRElTQUJMRUQ6IENvbXBvbmVudFN0YXRlID0gJ0RJU0FCTEVEJztcbmNvbnN0IFdPUktJTkc6IENvbXBvbmVudFN0YXRlID0gJ1dPUktJTkcnO1xuY29uc3QgRVJST1I6IENvbXBvbmVudFN0YXRlID0gJ0VSUk9SJztcblxuLyoqXG4gKiBPYmplY3QgY29udGFpbmluZyBhbGwgcG9zc2libGUgY29tcG9uZW50IHN0YXRlcy5cbiAqL1xuZXhwb3J0IGNvbnN0IENvbXBvbmVudFN0YXRlcyA9IHsgRU5BQkxFRCwgRElTQUJMRUQsIFdPUktJTkcsIEVSUk9SIH07XG5cbi8qKlxuICogVHlwZXMgb2YgYWN0aW9ucyB0aGF0IGEgYnV0dG9uIG9yIGxpbmsgY2FuIHBlcmZvcm0uXG4gKi9cbmV4cG9ydCBlbnVtIEFjdGlvblR5cGUge1xuICBCUk9XU0VSX05FV19UQUIsIC8vIE9wZW4gaW4gYSBuZXcgYnJvd3NlciB0YWJcbiAgQlJPV1NFUl9ET1dOTE9BRCwgLy8gRG93bmxvYWQgdmlhIGJyb3dzZXJcbiAgTkFUSVZFX0RPV05MT0FELCAvLyBEb3dubG9hZCB1c2luZyBuYXRpdmUgY2FwYWJpbGl0aWVzXG4gIEFQUF9OQVZJR0FUSU9OLCAvLyBJbnRlcm5hbCBhcHAgbmF2aWdhdGlvblxuICBCUk9XU0VSX05BVklHQVRJT04sIC8vIE5hdmlnYXRpb24gaW4gdGhlIGJyb3dzZXJcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGFuIGV4ZWN1dGFibGUgYWN0aW9uIGZvciBhIGJ1dHRvbiBvciBsaW5rLlxuICovXG5leHBvcnQgdHlwZSBBY3Rpb24gPSB7XG4gIC8qKiBBY3Rpb24gZGVzY3JpcHRpb24gKi9cbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgLyoqIEFjdGlvbiB0eXBlICovXG4gIHR5cGU6IEFjdGlvblR5cGU7XG4gIC8qKiBBY3Rpb24gc291cmNlIG9yIGRlc3RpbmF0aW9uICovXG4gIHNvdXJjZTogc3RyaW5nO1xufTtcblxuLyoqXG4gKiBTdXBwb3J0ZWQgaW5wdXQgdHlwZXMgZm9yIGZvcm1zLlxuICovXG5leHBvcnQgZW51bSBJbnB1dFR5cGUge1xuICBURVhULFxuICBFTUFJTCxcbiAgUEFTU1dPUkQsXG4gIENPTU1FTlQsXG4gIE5VTUJFUixcbiAgUElOX0NPREUsXG4gIERBVEUsXG4gIEhPVVIsXG4gIENIRUNLLFxuICBSQURJTyxcbiAgU0VMRUNULFxuICBTRUFSQ0hfU0VMRUNULFxuICBGSUxFLFxufVxuXG4vKipcbiAqIE9wdGlvbiBmb3Igc2VsZWN0LCByYWRpbywgZXRjLiBpbnB1dHMuXG4gKi9cbmV4cG9ydCB0eXBlIElucHV0T3B0aW9uID0ge1xuICAvKiogVW5pcXVlIG9wdGlvbiBpZGVudGlmaWVyICovXG4gIGlkOiBzdHJpbmc7XG4gIC8qKiBEaXNwbGF5IG5hbWUgKi9cbiAgbmFtZTogc3RyaW5nO1xuICAvKiogV2hldGhlciB0aGUgb3B0aW9uIGlzIHNlbGVjdGVkIGJ5IGRlZmF1bHQgKi9cbiAgc2VsZWN0ZWQ/OiBib29sZWFuO1xuICAvKiogRGlzcGxheSBvcmRlciAqL1xuICBvcmRlcjogbnVtYmVyO1xufTtcblxuLyoqXG4gKiBNZXRhZGF0YSBmb3IgYSBmb3JtIGZpZWxkLlxuICovXG5leHBvcnQgdHlwZSBJbnB1dE1ldGFkYXRhID0ge1xuICAvKiogQXNzb2NpYXRlZCBmb3JtIGNvbnRyb2wgKi9cbiAgY29udHJvbDogRm9ybUNvbnRyb2w7XG4gIC8qKiBVbmlxdWUgdG9rZW4gZm9yIHRoZSBpbnB1dCAqL1xuICB0b2tlbjogc3RyaW5nO1xuICAvKiogRGlzcGxheSBsYWJlbCAqL1xuICBsYWJlbDogc3RyaW5nO1xuICAvKiogRmllbGQgbmFtZSAqL1xuICBuYW1lOiBzdHJpbmc7XG4gIC8qKiBIZWxwIHRleHQgKi9cbiAgaGludDogc3RyaW5nO1xuICAvKiogSW5wdXQgcGxhY2Vob2xkZXIgKi9cbiAgcGxhY2Vob2xkZXI6IHN0cmluZztcbiAgLyoqIElucHV0IHR5cGUgKi9cbiAgdHlwZTogSW5wdXRUeXBlO1xuICAvKiogRGlzcGxheSBvcmRlciAqL1xuICBvcmRlcjogbnVtYmVyO1xuICAvKiogQXNzb2NpYXRlZCB2YWxpZGF0b3JzICovXG4gIHZhbGlkYXRvcnM6IFZhbGlkYXRvckZuW107XG4gIC8qKiBPcHRpb25zIChmb3Igc2VsZWN0LCByYWRpbywgZXRjLikgKi9cbiAgb3B0aW9ucz86IElucHV0T3B0aW9uW107XG4gIC8qKiBBbGxvd2VkIHJhbmdlIChmb3IgbnVtYmVyLCBkYXRlLCBldGMuKSAqL1xuICByYW5nZT86IHtcbiAgICBtaW46IG51bWJlcjtcbiAgICBtYXg6IG51bWJlcjtcbiAgfTtcbiAgLyoqIEN1c3RvbSBlcnJvciBtZXNzYWdlcyAqL1xuICBlcnJvcnM6IHtcbiAgICBba2V5OiBzdHJpbmddOiBzdHJpbmc7XG4gIH07XG4gIC8qKiBJbml0aWFsIHZhbHVlIGZvciB0aGUgZmllbGQgKi9cbiAgdmFsdWU/OiBzdHJpbmc7XG4gIC8qKiBEZWZhdWx0IHZhbHVlIGNvbmZpZ3VyYXRpb24gLSBzdHJpbmcgZm9yIGN1c3RvbSBkZWZhdWx0cywgdHJ1ZSBmb3IgYXV0byBkZWZhdWx0cyAqL1xuICB3aXRoRGVmYXVsdD86IHN0cmluZyB8IGJvb2xlYW47XG4gIC8qKiBGaWVsZCBzdGF0ZSAqL1xuICBzdGF0ZTogQ29tcG9uZW50U3RhdGU7XG59O1xuXG4vKipcbiAqIEEgc2VjdGlvbiBpbiBhIGZvcm0sIGdyb3VwaW5nIG11bHRpcGxlIGZpZWxkcy5cbiAqL1xuZXhwb3J0IHR5cGUgRm9ybVNlY3Rpb24gPSB7XG4gIC8qKiBTZWN0aW9uIG5hbWUgKi9cbiAgbmFtZTogc3RyaW5nO1xuICAvKiogRGlzcGxheSBvcmRlciAqL1xuICBvcmRlcjogbnVtYmVyO1xuICAvKiogRmllbGRzIGluY2x1ZGVkIGluIHRoZSBzZWN0aW9uICovXG4gIGZpZWxkczogSW5wdXRNZXRhZGF0YVtdO1xufTtcblxuLyoqXG4gKiBEYXRhIHNlbnQgd2hlbiBzdWJtaXR0aW5nIGEgZm9ybS5cbiAqL1xuZXhwb3J0IHR5cGUgRm9ybVN1Ym1pdCA9IHtcbiAgLyoqIExpc3Qgb2YgZmllbGRzIGFuZCB0aGVpciB2YWx1ZXMgKi9cbiAgZmllbGRzOiB7IGtleTogc3RyaW5nOyB2YWx1ZTogc3RyaW5nIH1bXTtcbiAgLyoqIE9wdGlvbmFsIHRva2VuIGZvciB0aGUgb3BlcmF0aW9uICovXG4gIHRva2VuPzogc3RyaW5nO1xufTtcblxuLyoqXG4gKiBNZXRhZGF0YSBmb3IgYSBjb21wbGV0ZSBmb3JtLlxuICovXG5leHBvcnQgdHlwZSBGb3JtTWV0YWRhdGEgPSB7XG4gIC8qKiBGb3JtIG5hbWUgKi9cbiAgbmFtZTogc3RyaW5nO1xuICAvKiogRm9ybSBzZWN0aW9ucyAqL1xuICBzZWN0aW9uczogRm9ybVNlY3Rpb25bXTtcbiAgLyoqIEFjdGlvbiBidXR0b25zIGNvbmZpZ3VyYXRpb24gKi9cbiAgYWN0aW9uczogQnV0dG9uTWV0YWRhdGE7XG4gIC8qKiBHbG9iYWwgZm9ybSBzdGF0ZSAqL1xuICBzdGF0ZTogQ29tcG9uZW50U3RhdGU7XG59O1xuXG4vKipcbiAqIFBvc3NpYmxlIGFjdGlvbiB0eXBlcyBmb3IgYSB0b29sYmFyLlxuICovXG5leHBvcnQgZW51bSBUb29sYmFyQWN0aW9uVHlwZSB7XG4gIEFWQVRBUiA9ICdBVkFUQVInLFxuICBJQ09OID0gJ0lDT04nLFxuICBJTUFHRSA9ICdJTUFHRScsXG4gIEJVVFRPTiA9ICdCVVRUT04nLFxufVxuXG4vKipcbiAqIFRvb2xiYXIgYWN0aW9uIGRlZmluaXRpb24uXG4gKi9cbmV4cG9ydCB0eXBlIFRvb2xiYXJBY3Rpb24gPSB7XG4gIC8qKiBBY3Rpb24gdHlwZSAqL1xuICB0eXBlOiAnQVZBVEFSJyB8ICdJQ09OJyB8ICdJTUFHRScgfCAnQlVUVE9OJztcbiAgLyoqIE9wdGlvbmFsIHRva2VuIGlkZW50aWZpZXIgKi9cbiAgdG9rZW4/OiBzdHJpbmc7XG4gIC8qKiBUb29sYmFyIHBvc2l0aW9uICovXG4gIHBvc2l0aW9uOiAnbGVmdCcgfCAncmlnaHQnIHwgJ2NlbnRlcic7XG4gIC8qKiBPcHRpb25hbCBkZXNjcmlwdGlvbiAqL1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgLyoqIEFzc29jaWF0ZWQgaW1hZ2UgKGlmIGFueSkgKi9cbiAgaW1hZ2U/OiBJbWFnZU1ldGFkYXRhO1xufTtcblxuLyoqXG4gKiBNZXRhZGF0YSBmb3IgYW4gaWNvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJY29uTWV0YWRhIHtcbiAgLyoqIEljb24gbmFtZSAqL1xuICBuYW1lOiBzdHJpbmc7XG4gIC8qKiBJY29uIHNsb3QgcG9zaXRpb24gKi9cbiAgc2xvdDogJ3N0YXJ0JyB8ICdlbmQnO1xufVxuXG4vKipcbiAqIEJ1dHRvbiBjb25maWd1cmF0aW9uIG9iamVjdC5cbiAqIFN1cHBvcnRzIGJvdGggc3RhdGljIGFuZCByZWFjdGl2ZSBjb250ZW50LlxuICogQHR5cGUge0J1dHRvbk1ldGFkYXRhfVxuICogQHByb3BlcnR5IHRleHQgLSBTdGF0aWMgYnV0dG9uIGxhYmVsICh0YWtlcyBwcmVjZWRlbmNlIG92ZXIgdGV4dENvbmZpZykuXG4gKiBAcHJvcGVydHkgdGV4dENvbmZpZyAtIFJlYWN0aXZlIGNvbnRlbnQgY29uZmlndXJhdGlvbiBmb3IgYnV0dG9uIHRleHQuXG4gKiBAcHJvcGVydHkgY29sb3IgLSBUaGUgYnV0dG9uIGNvbG9yIChJb25pYyBjb2xvciBzdHJpbmcpLlxuICogQHByb3BlcnR5IGljb24gLSBJY29uIHRvIGRpc3BsYXkgKG9wdGlvbmFsKS5cbiAqIEBwcm9wZXJ0eSBzdGF0ZSAtIEJ1dHRvbiBzdGF0ZSAoZW5hYmxlZCwgZGlzYWJsZWQsIHdvcmtpbmcsIGV0Yy4pLlxuICogQHByb3BlcnR5IGV4cGFuZCwgZmlsbCwgc2l6ZSwgc2hhcGUsIGhyZWYsIHRhcmdldCwgZG93bmxvYWQsIGhhbmRsZXIsIGV0Yy4gLSBTZWUgQnV0dG9uTWV0YWRhdGEgZm9yIGFsbCBvcHRpb25zLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJ1dHRvbk1ldGFkYXRhIHtcbiAgLyoqIEFzc29jaWF0ZWQgYWN0aW9uIHR5cGUgKi9cbiAgYWN0aW9uVHlwZT86IEFjdGlvblR5cGU7XG4gIC8qKiBCdXR0b24gZXhwYW5zaW9uICovXG4gIGV4cGFuZD86ICdmdWxsJyB8ICdibG9jayc7XG4gIC8qKiBBc3NvY2lhdGVkIGxpbmsgKi9cbiAgbGluaz86IHN0cmluZztcbiAgLyoqIEFzc29jaWF0ZWQgaHJlZiBsaW5rICovXG4gIGhyZWY/OiBzdHJpbmc7XG4gIC8qKiBMaW5rIHRhcmdldCAqL1xuICB0YXJnZXQ/OiAnX2JsYW5rJyB8ICdfc2VsZicgfCAnX3BhcmVudCcgfCAnX3RvcCc7XG4gIC8qKiBEb3dubG9hZCBmaWxlIG5hbWUgKi9cbiAgZG93bmxvYWQ/OiBzdHJpbmc7XG4gIC8qKiBCdXR0b24gY29sb3IgKi9cbiAgY29sb3I6IENvbG9yO1xuICAvKiogQnV0dG9uIHN0YXRlICovXG4gIHN0YXRlOiBDb21wb25lbnRTdGF0ZTtcbiAgLyoqIFN0YXRpYyBkaXNwbGF5IHRleHQgKHRha2VzIHByZWNlZGVuY2Ugb3ZlciByZWFjdGl2ZSBjb250ZW50KSAqL1xuICB0ZXh0Pzogc3RyaW5nO1xuICAvKiogUmVhY3RpdmUgY29udGVudCBjb25maWd1cmF0aW9uIGZvciBidXR0b24gdGV4dCAqL1xuICBjb250ZW50S2V5Pzogc3RyaW5nO1xuICAvKiogQ29tcG9uZW50IGNsYXNzIG5hbWUgZm9yIGNvbnRlbnQgbG9va3VwIChyZXF1aXJlZCB3aXRoIGNvbnRlbnRLZXkpICovXG4gIGNvbnRlbnRDbGFzcz86IHN0cmluZztcbiAgLyoqIEZhbGxiYWNrIHRleHQgaWYgY29udGVudEtleSBpcyBub3QgZm91bmQgKi9cbiAgY29udGVudEZhbGxiYWNrPzogc3RyaW5nO1xuICAvKiogVmFsdWVzIHRvIGludGVycG9sYXRlIGludG8gdGhlIGNvbnRlbnQgc3RyaW5nICovXG4gIGNvbnRlbnRJbnRlcnBvbGF0aW9uPzogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgbnVtYmVyPjtcbiAgLyoqIEFzc29jaWF0ZWQgaWNvbiAqL1xuICBpY29uPzogSWNvbk1ldGFkYTtcbiAgLyoqIEJ1dHRvbiBzaGFwZSAqL1xuICBzaGFwZT86ICdyb3VuZCc7XG4gIC8qKiBCdXR0b24gc2l6ZSAqL1xuICBzaXplPzogJ3NtYWxsJyB8ICdkZWZhdWx0JyB8ICdsYXJnZSc7XG4gIC8qKiBCdXR0b24gZmlsbCAqL1xuICBmaWxsPzogJ2NsZWFyJyB8ICdvdXRsaW5lJyB8ICdzb2xpZCcgfCAnZGVmYXVsdCc7XG4gIC8qKiBCdXR0b24gdHlwZSAqL1xuICB0eXBlOiAnYnV0dG9uJyB8ICdzdWJtaXQnIHwgJ3Jlc2V0JztcbiAgLyoqIE9wdGlvbmFsIHRva2VuIGlkZW50aWZpZXIgKi9cbiAgdG9rZW4/OiBzdHJpbmc7XG4gIC8qKiBPcHRpb25hbCByZWZlcmVuY2UgKi9cbiAgcmVmPzogYW55O1xuICAvKiogQWN0aW9uIGhhbmRsZXIgKi9cbiAgaGFuZGxlcj86ICh2YWx1ZTogYW55KSA9PiBhbnkgfCBQcm9taXNlPGFueT47XG59XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBmb3IgcmVhY3RpdmUgY29udGVudCBpbiB2YWwtYnV0dG9uIGNvbXBvbmVudC5cbiAqIFVzZSB0aGlzIGludGVyZmFjZSB3aGVuIHlvdSBvbmx5IG5lZWQgdG8gc3BlY2lmeSBjb250ZW50LXJlbGF0ZWQgcHJvcGVydGllcy5cbiAqIFRoaXMgZm9sbG93cyB0aGUgc2FtZSBwYXR0ZXJuIGFzIFRleHRDb250ZW50Q29uZmlnIGZvciBjb25zaXN0ZW5jeS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCdXR0b25Db250ZW50Q29uZmlnIHtcbiAgY29udGVudEtleTogc3RyaW5nO1xuICBjb250ZW50Q2xhc3M6IHN0cmluZztcbiAgY29udGVudEZhbGxiYWNrPzogc3RyaW5nO1xuICBjb250ZW50SW50ZXJwb2xhdGlvbj86IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IG51bWJlcj47XG59XG4iXX0=
@@ -103,84 +103,13 @@ const globalContentData = {
103
103
  // Common placeholders
104
104
  searchPlaceholder: 'Search...',
105
105
  },
106
- fr: {
107
- // Common buttons - Example of partial translation (missing some keys intentionally)
108
- ok: 'OK',
109
- cancel: 'Annuler',
110
- save: 'Sauvegarder',
111
- delete: 'Supprimer',
112
- edit: 'Modifier',
113
- close: 'Fermer',
114
- back: 'Retour',
115
- // Common states and messages (intentionally incomplete to show fallback behavior)
116
- loading: 'Chargement...',
117
- error: 'Erreur',
118
- success: 'Succès',
119
- // Common confirmations
120
- areYouSure: 'Êtes-vous sûr?',
121
- // Language names (translated) - flat keys for type compatibility
122
- languageName_es: 'Espagnol',
123
- languageName_en: 'Anglais',
124
- languageName_fr: 'Français',
125
- languageName_de: 'Allemand',
126
- languageName_pt: 'Portugais',
127
- languageName_it: 'Italien',
128
- languageName_zh: 'Chinois',
129
- languageName_ja: 'Japonais',
130
- languageName_ko: 'Coréen',
131
- languageName_ru: 'Russe',
132
- languageName_ar: 'Arabe',
133
- language: 'Langue',
134
- },
135
- de: {
136
- // Common buttons - Another example of partial translation
137
- ok: 'OK',
138
- cancel: 'Abbrechen',
139
- save: 'Speichern',
140
- delete: 'Löschen',
141
- // Common states and messages
142
- loading: 'Laden...',
143
- error: 'Fehler',
144
- // Common confirmations
145
- areYouSure: 'Sind Sie sicher?',
146
- // Language names (translated) - flat keys for type compatibility
147
- languageName_es: 'Spanisch',
148
- languageName_en: 'Englisch',
149
- languageName_fr: 'Französisch',
150
- languageName_de: 'Deutsch',
151
- languageName_pt: 'Portugiesisch',
152
- languageName_it: 'Italienisch',
153
- languageName_zh: 'Chinesisch',
154
- languageName_ja: 'Japanisch',
155
- languageName_ko: 'Koreanisch',
156
- languageName_ru: 'Russisch',
157
- languageName_ar: 'Arabisch',
158
- language: 'Sprache',
159
- },
160
106
  };
161
107
  const GlobalContent = new TextContent(globalContentData);
162
108
  const content = {
163
109
  _global: GlobalContent,
164
110
  LangSettings,
165
- testReactivity: new TextContent({
166
- es: {
167
- welcomeMessage: '¡Bienvenido!',
168
- saveButton: 'Guardar',
169
- cancelButton: 'Cancelar',
170
- },
171
- en: {
172
- welcomeMessage: 'Welcome!',
173
- saveButton: 'Save',
174
- cancelButton: 'Cancel',
175
- },
176
- fr: {
177
- welcomeMessage: 'Bienvenue!',
178
- saveButton: 'Enregistrer',
179
- cancelButton: 'Annuler',
180
- },
181
- }),
182
111
  };
183
112
  export default content;
184
113
  // Export named exports for user convenience
185
114
  export { content, GlobalContent, globalContentData };
186
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRlY2gtY29tcG9uZW50cy9zcmMvbGliL3NlcnZpY2VzL2xhbmctcHJvdmlkZXIvY29udGVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLFlBQVksTUFBTSw0QkFBNEIsQ0FBQztBQUN0RCxPQUFPLEVBQW9CLFdBQVcsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQU14RDs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxpQkFBaUIsR0FBcUI7SUFDMUMsRUFBRSxFQUFFO1FBQ0YsaUJBQWlCO1FBQ2pCLEVBQUUsRUFBRSxTQUFTO1FBQ2IsTUFBTSxFQUFFLFVBQVU7UUFDbEIsSUFBSSxFQUFFLFNBQVM7UUFDZixNQUFNLEVBQUUsVUFBVTtRQUNsQixJQUFJLEVBQUUsUUFBUTtRQUNkLEtBQUssRUFBRSxRQUFRO1FBQ2YsSUFBSSxFQUFFLFFBQVE7UUFDZCxJQUFJLEVBQUUsV0FBVztRQUNqQixRQUFRLEVBQUUsVUFBVTtRQUNwQixNQUFNLEVBQUUsV0FBVztRQUNuQixRQUFRLEVBQUUsV0FBVztRQUVyQixpQkFBaUI7UUFDakIsR0FBRyxFQUFFLFNBQVM7UUFDZCxNQUFNLEVBQUUsUUFBUTtRQUNoQixNQUFNLEVBQUUsUUFBUTtRQUNoQixNQUFNLEVBQUUsU0FBUztRQUNqQixJQUFJLEVBQUUsU0FBUztRQUNmLE9BQU8sRUFBRSxZQUFZO1FBRXJCLDZCQUE2QjtRQUM3QixPQUFPLEVBQUUsYUFBYTtRQUN0QixNQUFNLEVBQUUsMEJBQTBCO1FBQ2xDLEtBQUssRUFBRSxPQUFPO1FBQ2QsT0FBTyxFQUFFLE9BQU87UUFDaEIsT0FBTyxFQUFFLGFBQWE7UUFDdEIsSUFBSSxFQUFFLGFBQWE7UUFDbkIsUUFBUSxFQUFFLFFBQVE7UUFFbEIsdUJBQXVCO1FBQ3ZCLFVBQVUsRUFBRSxnQkFBZ0I7UUFFNUIsaUVBQWlFO1FBQ2pFLGVBQWUs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QUFDNUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBMYW5nU2V0dGluZ3MgZnJvbSAnLi9jb21wb25lbnRzL2xhbmctc2V0dGluZ3MnO1xuaW1wb3J0IHsgTGFuZ3VhZ2VzQ29udGVudCwgVGV4dENvbnRlbnQgfSBmcm9tICcuL3R5cGVzJztcblxuZXhwb3J0IGludGVyZmFjZSBQcm92aWRlciB7XG4gIFt4OiBzdHJpbmddOiBUZXh0Q29udGVudDtcbn1cblxuLyoqXG4gKiBHbG9iYWwgY29udGVudCB0aGF0IGNhbiBiZSB1c2VkIGFjcm9zcyBhbGwgY29tcG9uZW50cy5cbiAqIFRoZXNlIGFyZSBjb21tb24gdGV4dHMgbGlrZSBidXR0b25zLCBhY3Rpb25zLCBzdGF0ZXMsIGV0Yy5cbiAqIFN0cnVjdHVyZToge2VzOiB7a2V5MTogJ3ZhbHVlMScsIGtleTI6ICd2YWx1ZTInfSwgZW46IHtrZXkxOiAndmFsdWUxJywga2V5MjogJ3ZhbHVlMid9LCBmcjogey4uLn19XG4gKlxuICogTm90ZTogWW91IGNhbiBhZGQgYW55IGxhbmd1YWdlIGNvZGUuIFRoZSBzeXN0ZW0gd2lsbCBhdXRvbWF0aWNhbGx5IGRldGVjdCBhdmFpbGFibGUgbGFuZ3VhZ2VzXG4gKiBhbmQgcHJvdmlkZSBpbnRlbGxpZ2VudCBmYWxsYmFja3Mgd2l0aCB3YXJuaW5ncyBmb3IgbWlzc2luZyB0cmFuc2xhdGlvbnMuXG4gKi9cbmNvbnN0IGdsb2JhbENvbnRlbnREYXRhOiBMYW5ndWFnZXNDb250ZW50ID0ge1xuICBlczoge1xuICAgIC8vIENvbW1vbiBidXR0b25zXG4gICAgb2s6ICdBY2VwdGFyJyxcbiAgICBjYW5jZWw6ICdDYW5jZWxhcicsXG4gICAgc2F2ZTogJ0d1YXJkYXInLFxuICAgIGRlbGV0ZTogJ0VsaW1pbmFyJyxcbiAgICBlZGl0OiAnRWRpdGFyJyxcbiAgICBjbG9zZTogJ0NlcnJhcicsXG4gICAgYmFjazogJ1ZvbHZlcicsXG4gICAgbmV4dDogJ1NpZ3VpZW50ZScsXG4gICAgcHJldmlvdXM6ICdBbnRlcmlvcicsXG4gICAgZmluaXNoOiAnRmluYWxpemFyJyxcbiAgICBjb250aW51ZTogJ0NvbnRpbnVhcicsXG5cbiAgICAvLyBDb21tb24gYWN0aW9uc1xuICAgIGFkZDogJ0FncmVnYXInLFxuICAgIHJlbW92ZTogJ1F1aXRhcicsXG4gICAgc2VhcmNoOiAnQnVzY2FyJyxcbiAgICBmaWx0ZXI6ICdGaWx0cmFyJyxcbiAgICBzb3J0OiAnT3JkZW5hcicsXG4gICAgcmVmcmVzaDogJ0FjdHVhbGl6YXInLFxuXG4gICAgLy8gQ29tbW9uIHN0YXRlcyBhbmQgbWVzc2FnZXNcbiAgICBsb2FkaW5nOiAnQ2FyZ2FuZG8uLi4nLFxuICAgIG5vRGF0YTogJ05vIGhheSBkYXRvcyBkaXNwb25pYmxlcycsXG4gICAgZXJyb3I6ICdFcnJvcicsXG4gICAgc3VjY2VzczogJ8OJeGl0bycsXG4gICAgd2FybmluZzogJ0FkdmVydGVuY2lhJyxcbiAgICBpbmZvOiAnSW5mb3JtYWNpw7NuJyxcbiAgICBsYW5ndWFnZTogJ0lkaW9tYScsXG5cbiAgICAvLyBDb21tb24gY29uZmlybWF0aW9uc1xuICAgIGFyZVlvdVN1cmU6ICfCv0VzdMOhcyBzZWd1cm8/JyxcblxuICAgIC8vIExhbmd1YWdlIG5hbWVzICh0cmFuc2xhdGVkKSAtIGZsYXQga2V5cyBmb3IgdHlwZSBjb21wYXRpYmlsaXR5XG4gICAgbGFuZ3VhZ2VOYW1lX2VzOiAnRXNwYcOxb2wnLFxuICAgIGxhbmd1YWdlTmFtZV9lbjogJ0luZ2zDqXMnLFxuICAgIGxhbmd1YWdlTmFtZV9mcjogJ0ZyYW5jw6lzJyxcbiAgICBsYW5ndWFnZU5hbWVfZGU6ICdBbGVtw6FuJyxcbiAgICBsYW5ndWFnZU5hbWVfcHQ6ICdQb3J0dWd1w6lzJyxcbiAgICBsYW5ndWFnZU5hbWVfaXQ6ICdJdGFsaWFubycsXG4gICAgbGFuZ3VhZ2VOYW1lX3poOiAnQ2hpbm8nLFxuICAgIGxhbmd1YWdlTmFtZV9qYTogJ0phcG9uw6lzJyxcbiAgICBsYW5ndWFnZU5hbWVfa286ICdDb3JlYW5vJyxcbiAgICBsYW5ndWFnZU5hbWVfcnU6ICdSdXNvJyxcbiAgICBsYW5ndWFnZU5hbWVfYXI6ICfDgXJhYmUnLFxuICAgIGRlbGV0ZUNvbmZpcm1hdGlvbjogJ8K/RXN0w6FzIHNlZ3VybyBkZSBxdWUgZGVzZWFzIGVsaW1pbmFyIHtpdGVtTmFtZX0/JyxcbiAgICB1bnNhdmVkQ2hhbmdlczogJ1RpZW5lcyBjYW1iaW9zIHNpbiBndWFyZGFyLiDCv0Rlc2VhcyBjb250aW51YXI/JyxcblxuICAgIC8vIENvbW1vbiBwbGFjZWhvbGRlcnNcbiAgICBzZWFyY2hQbGFjZWhvbGRlcjogJ0J1c2Nhci4uLicsXG4gIH0sXG4gIGVuOiB7XG4gICAgLy8gQ29tbW9uIGJ1dHRvbnNcbiAgICBvazogJ09LJyxcbiAgICBjYW5jZWw6ICdDYW5jZWwnLFxuICAgIHNhdmU6ICdTYXZlJyxcbiAgICBkZWxldGU6ICdEZWxldGUnLFxuICAgIGVkaXQ6ICdFZGl0JyxcbiAgICBjbG9zZTogJ0Nsb3NlJyxcbiAgICBiYWNrOiAnQmFjaycsXG4gICAgbmV4dDogJ05leHQnLFxuICAgIHByZXZpb3VzOiAnUHJldmlvdXMnLFxuICAgIGZpbmlzaDogJ0ZpbmlzaCcsXG4gICAgY29udGludWU6ICdDb250aW51ZScsXG5cbiAgICAvLyBDb21tb24gYWN0aW9uc1xuICAgIGFkZDogJ0FkZCcsXG4gICAgcmVtb3ZlOiAnUmVtb3ZlJyxcbiAgICBzZWFyY2g6ICdTZWFyY2gnLFxuICAgIGZpbHRlcjogJ0ZpbHRlcicsXG4gICAgc29ydDogJ1NvcnQnLFxuICAgIHJlZnJlc2g6ICdSZWZyZXNoJyxcblxuICAgIC8vIENvbW1vbiBzdGF0ZXMgYW5kIG1lc3NhZ2VzXG4gICAgbG9hZGluZzogJ0xvYWRpbmcuLi4nLFxuICAgIG5vRGF0YTogJ05vIGRhdGEgYXZhaWxhYmxlJyxcbiAgICBlcnJvcjogJ0Vycm9yJyxcbiAgICBzdWNjZXNzOiAnU3VjY2VzcycsXG4gICAgd2FybmluZzogJ1dhcm5pbmcnLFxuICAgIGluZm86ICdJbmZvcm1hdGlvbicsXG4gICAgbGFuZ3VhZ2U6ICdMYW5ndWFnZScsXG5cbiAgICAvLyBDb21tb24gY29uZmlybWF0aW9uc1xuICAgIGFyZVlvdVN1cmU6ICdBcmUgeW91IHN1cmU/JyxcblxuICAgIC8vIExhbmd1YWdlIG5hbWVzICh0cmFuc2xhdGVkKSAtIGZsYXQga2V5cyBmb3IgdHlwZSBjb21wYXRpYmlsaXR5XG4gICAgbGFuZ3VhZ2VOYW1lX2VzOiAnU3BhbmlzaCcsXG4gICAgbGFuZ3VhZ2VOYW1lX2VuOiAnRW5nbGlzaCcsXG4gICAgbGFuZ3VhZ2VOYW1lX2ZyOiAnRnJlbmNoJyxcbiAgICBsYW5ndWFnZU5hbWVfZGU6ICdHZXJtYW4nLFxuICAgIGxhbmd1YWdlTmFtZV9wdDogJ1BvcnR1Z3Vlc2UnLFxuICAgIGxhbmd1YWdlTmFtZV9pdDogJ0l0YWxpYW4nLFxuICAgIGxhbmd1YWdlTmFtZV96aDogJ0NoaW5lc2UnLFxuICAgIGxhbmd1YWdlTmFtZV9qYTogJ0phcGFuZXNlJyxcbiAgICBsYW5ndWFnZU5hbWVfa286ICdLb3JlYW4nLFxuICAgIGxhbmd1YWdlTmFtZV9ydTogJ1J1c3NpYW4nLFxuICAgIGxhbmd1YWdlTmFtZV9hcjogJ0FyYWJpYycsXG4gICAgZGVsZXRlQ29uZmlybWF0aW9uOiAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB7aXRlbU5hbWV9PycsXG4gICAgdW5zYXZlZENoYW5nZXM6ICdZb3UgaGF2ZSB1bnNhdmVkIGNoYW5nZXMuIERvIHlvdSB3YW50IHRvIGNvbnRpbnVlPycsXG5cbiAgICAvLyBDb21tb24gcGxhY2Vob2xkZXJzXG4gICAgc2VhcmNoUGxhY2Vob2xkZXI6ICdTZWFyY2guLi4nLFxuICB9LFxuICBmcjoge1xuICAgIC8vIENvbW1vbiBidXR0b25zIC0gRXhhbXBsZSBvZiBwYXJ0aWFsIHRyYW5zbGF0aW9uIChtaXNzaW5nIHNvbWUga2V5cyBpbnRlbnRpb25hbGx5KVxuICAgIG9rOiAnT0snLFxuICAgIGNhbmNlbDogJ0FubnVsZXInLFxuICAgIHNhdmU6ICdTYXV2ZWdhcmRlcicsXG4gICAgZGVsZXRlOiAnU3VwcHJpbWVyJyxcbiAgICBlZGl0OiAnTW9kaWZpZXInLFxuICAgIGNsb3NlOiAnRmVybWVyJyxcbiAgICBiYWNrOiAnUmV0b3VyJyxcblxuICAgIC8vIENvbW1vbiBzdGF0ZXMgYW5kIG1lc3NhZ2VzIChpbnRlbnRpb25hbGx5IGluY29tcGxldGUgdG8gc2hvdyBmYWxsYmFjayBiZWhhdmlvcilcbiAgICBsb2FkaW5nOiAnQ2hhcmdlbWVudC4uLicsXG4gICAgZXJyb3I6ICdFcnJldXInLFxuICAgIHN1Y2Nlc3M6ICdTdWNjw6hzJyxcblxuICAgIC8vIENvbW1vbiBjb25maXJtYXRpb25zXG4gICAgYXJlWW91U3VyZTogJ8OKdGVzLXZvdXMgc8O7cj8nLFxuXG4gICAgLy8gTGFuZ3VhZ2UgbmFtZXMgKHRyYW5zbGF0ZWQpIC0gZmxhdCBrZXlzIGZvciB0eXBlIGNvbXBhdGliaWxpdHlcbiAgICBsYW5ndWFnZU5hbWVfZXM6ICdFc3BhZ25vbCcsXG4gICAgbGFuZ3VhZ2VOYW1lX2VuOiAnQW5nbGFpcycsXG4gICAgbGFuZ3VhZ2VOYW1lX2ZyOiAnRnJhbsOnYWlzJyxcbiAgICBsYW5ndWFnZU5hbWVfZGU6ICdBbGxlbWFuZCcsXG4gICAgbGFuZ3VhZ2VOYW1lX3B0OiAnUG9ydHVnYWlzJyxcbiAgICBsYW5ndWFnZU5hbWVfaXQ6ICdJdGFsaWVuJyxcbiAgICBsYW5ndWFnZU5hbWVfemg6ICdDaGlub2lzJyxcbiAgICBsYW5ndWFnZU5hbWVfamE6ICdKYXBvbmFpcycsXG4gICAgbGFuZ3VhZ2VOYW1lX2tvOiAnQ29yw6llbicsXG4gICAgbGFuZ3VhZ2VOYW1lX3J1OiAnUnVzc2UnLFxuICAgIGxhbmd1YWdlTmFtZV9hcjogJ0FyYWJlJyxcbiAgICBsYW5ndWFnZTogJ0xhbmd1ZScsXG4gIH0sXG4gIGRlOiB7XG4gICAgLy8gQ29tbW9uIGJ1dHRvbnMgLSBBbm90aGVyIGV4YW1wbGUgb2YgcGFydGlhbCB0cmFuc2xhdGlvblxuICAgIG9rOiAnT0snLFxuICAgIGNhbmNlbDogJ0FiYnJlY2hlbicsXG4gICAgc2F2ZTogJ1NwZWljaGVybicsXG4gICAgZGVsZXRlOiAnTMO2c2NoZW4nLFxuXG4gICAgLy8gQ29tbW9uIHN0YXRlcyBhbmQgbWVzc2FnZXNcbiAgICBsb2FkaW5nOiAnTGFkZW4uLi4nLFxuICAgIGVycm9yOiAnRmVobGVyJyxcblxuICAgIC8vIENvbW1vbiBjb25maXJtYXRpb25zXG4gICAgYXJlWW91U3VyZTogJ1NpbmQgU2llIHNpY2hlcj8nLFxuXG4gICAgLy8gTGFuZ3VhZ2UgbmFtZXMgKHRyYW5zbGF0ZWQpIC0gZmxhdCBrZXlzIGZvciB0eXBlIGNvbXBhdGliaWxpdHlcbiAgICBsYW5ndWFnZU5hbWVfZXM6ICdTcGFuaXNjaCcsXG4gICAgbGFuZ3VhZ2VOYW1lX2VuOiAnRW5nbGlzY2gnLFxuICAgIGxhbmd1YWdlTmFtZV9mcjogJ0ZyYW56w7ZzaXNjaCcsXG4gICAgbGFuZ3VhZ2VOYW1lX2RlOiAnRGV1dHNjaCcsXG4gICAgbGFuZ3VhZ2VOYW1lX3B0OiAnUG9ydHVnaWVzaXNjaCcsXG4gICAgbGFuZ3VhZ2VOYW1lX2l0OiAnSXRhbGllbmlzY2gnLFxuICAgIGxhbmd1YWdlTmFtZV96aDogJ0NoaW5lc2lzY2gnLFxuICAgIGxhbmd1YWdlTmFtZV9qYTogJ0phcGFuaXNjaCcsXG4gICAgbGFuZ3VhZ2VOYW1lX2tvOiAnS29yZWFuaXNjaCcsXG4gICAgbGFuZ3VhZ2VOYW1lX3J1OiAnUnVzc2lzY2gnLFxuICAgIGxhbmd1YWdlTmFtZV9hcjogJ0FyYWJpc2NoJyxcbiAgICBsYW5ndWFnZTogJ1NwcmFjaGUnLFxuICB9LFxufTtcblxuY29uc3QgR2xvYmFsQ29udGVudCA9IG5ldyBUZXh0Q29udGVudChnbG9iYWxDb250ZW50RGF0YSk7XG5cbmNvbnN0IGNvbnRlbnQ6IFByb3ZpZGVyID0ge1xuICBfZ2xvYmFsOiBHbG9iYWxDb250ZW50LFxuICBMYW5nU2V0dGluZ3MsXG4gIHRlc3RSZWFjdGl2aXR5OiBuZXcgVGV4dENvbnRlbnQoe1xuICAgIGVzOiB7XG4gICAgICB3ZWxjb21lTWVzc2FnZTogJ8KhQmllbnZlbmlkbyEnLFxuICAgICAgc2F2ZUJ1dHRvbjogJ0d1YXJkYXInLFxuICAgICAgY2FuY2VsQnV0dG9uOiAnQ2FuY2VsYXInLFxuICAgIH0sXG4gICAgZW46IHtcbiAgICAgIHdlbGNvbWVNZXNzYWdlOiAnV2VsY29tZSEnLFxuICAgICAgc2F2ZUJ1dHRvbjogJ1NhdmUnLFxuICAgICAgY2FuY2VsQnV0dG9uOiAnQ2FuY2VsJyxcbiAgICB9LFxuICAgIGZyOiB7XG4gICAgICB3ZWxjb21lTWVzc2FnZTogJ0JpZW52ZW51ZSEnLFxuICAgICAgc2F2ZUJ1dHRvbjogJ0VucmVnaXN0cmVyJyxcbiAgICAgIGNhbmNlbEJ1dHRvbjogJ0FubnVsZXInLFxuICAgIH0sXG4gIH0pLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgY29udGVudDtcblxuLy8gRXhwb3J0IG5hbWVkIGV4cG9ydHMgZm9yIHVzZXIgY29udmVuaWVuY2VcbmV4cG9ydCB7IGNvbnRlbnQsIEdsb2JhbENvbnRlbnQsIGdsb2JhbENvbnRlbnREYXRhIH07XG4iXX0=
115
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRlY2gtY29tcG9uZW50cy9zcmMvbGliL3NlcnZpY2VzL2xhbmctcHJvdmlkZXIvY29udGVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLFlBQVksTUFBTSw0QkFBNEIsQ0FBQztBQUN0RCxPQUFPLEVBQW9CLFdBQVcsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQU14RDs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxpQkFBaUIsR0FBcUI7SUFDMUMsRUFBRSxFQUFFO1FBQ0YsaUJBQWlCO1FBQ2pCLEVBQUUsRUFBRSxTQUFTO1FBQ2IsTUFBTSxFQUFFLFVBQVU7UUFDbEIsSUFBSSxFQUFFLFNBQVM7UUFDZixNQUFNLEVBQUUsVUFBVTtRQUNsQixJQUFJLEVBQUUsUUFBUTtRQUNkLEtBQUssRUFBRSxRQUFRO1FBQ2YsSUFBSSxFQUFFLFFBQVE7UUFDZCxJQUFJLEVBQUUsV0FBVztRQUNqQixRQUFRLEVBQUUsVUFBVTtRQUNwQixNQUFNLEVBQUUsV0FBVztRQUNuQixRQUFRLEVBQUUsV0FBVztRQUVyQixpQkFBaUI7UUFDakIsR0FBRyxFQUFFLFNBQVM7UUFDZCxNQUFNLEVBQUUsUUFBUTtRQUNoQixNQUFNLEVBQUUsUUFBUTtRQUNoQixNQUFNLEVBQUUsU0FBUztRQUNqQixJQUFJLEVBQUUsU0FBUztRQUNmLE9BQU8sRUFBRSxZQUFZO1FBRXJCLDZCQUE2QjtRQUM3QixPQUFPLEVBQUUsYUFBYTtRQUN0QixNQUFNLEVBQUUsMEJBQTBCO1FBQ2xDLEtBQUssRUFBRSxPQUFPO1FBQ2QsT0FBTyxFQUFFLE9BQU87UUFDaEIsT0FBTyxFQUFFLGFBQWE7UUFDdEIsSUFBSSxFQUFFLGFBQWE7UUFDbkIsUUFBUSxFQUFFLFFBQVE7UUFFbEIsdUJBQXVCO1FBQ3ZCLFVBQVUsRUFBRSxnQkFBZ0I7UUFFNUIsaUVBQWlFO1FBQ2pFLGVBQWUsRUFBRSxTQUFTO1FBQzFCLGVBQWUsRUFBRSxRQUFRO1FBQ3pCLGVBQWUsRUFBRSxTQUFTO1FBQzFCLGVBQWUsRUFBRSxRQUFRO1FBQ3pCLGVBQWUsRUFBRSxXQUFXO1FBQzVCLGVBQWUsRUFBRSxVQUFVO1FBQzNCLGVBQWUsRUFBRSxPQUFPO1FBQ3hCLGVBQWUsRUFBRSxTQUFTO1FBQzFCLGVBQWUsRUFBRSxTQUFTO1FBQzFCLGVBQWUsRUFBRSxNQUFNO1FBQ3ZCLGVBQWUsRUFBRSxPQUFPO1FBQ3hCLGtCQUFrQixFQUFFLGtEQUFrRDtRQUN0RSxjQUFjLEVBQUUsZ0RBQWdEO1FBRWhFLHNCQUFzQjtRQUN0QixpQkFBaUIsRUFBRSxXQUFXO0tBQy9CO0lBQ0QsRUFBRSxFQUFFO1FBQ0YsaUJBQWlCO1FBQ2pCLEVBQUUsRUFBRSxJQUFJO1FBQ1IsTUFBTSxFQUFFLFFBQVE7UUFDaEIsSUFBSSxFQUFFLE1BQU07UUFDWixNQUFNLEVBQUUsUUFBUTtRQUNoQixJQUFJLEVBQUUsTUFBTTtRQUNaLEtBQUssRUFBRSxPQUFPO1FBQ2QsSUFBSSxFQUFFLE1BQU07UUFDWixJQUFJLEVBQUUsTUFBTTtRQUNaLFFBQVEsRUFBRSxVQUFVO1FBQ3BCLE1BQU0sRUFBRSxRQUFRO1FBQ2hCLFFBQVEsRUFBRSxVQUFVO1FBRXBCLGlCQUFpQjtRQUNqQixHQUFHLEVBQUUsS0FBSztRQUNWLE1BQU0sRUFBRSxRQUFRO1FBQ2hCLE1BQU0sRUFBRSxRQUFRO1FBQ2hCLE1BQU0sRUFBRSxRQUFRO1FBQ2hCLElBQUksRUFBRSxNQUFNO1FBQ1osT0FBTyxFQUFFLFNBQVM7UUFFbEIsNkJBQTZCO1FBQzdCLE9BQU8sRUFBRSxZQUFZO1FBQ3JCLE1BQU0sRUFBRSxtQkFBbUI7UUFDM0IsS0FBSyxFQUFFLE9BQU87UUFDZCxPQUFPLEVBQUUsU0FBUztRQUNsQixPQUFPLEVBQUUsU0FBUztRQUNsQixJQUFJLEVBQUUsYUFBYTtRQUNuQixRQUFRLEVBQUUsVUFBVTtRQUVwQix1QkFBdUI7UUFDdkIsVUFBVSxFQUFFLGVBQWU7UUFFM0IsaUVBQWlFO1FBQ2pFLGVBQWUsRUFBRSxTQUFTO1FBQzFCLGVBQWUsRUFBRSxTQUFTO1FBQzFCLGVBQWUsRUFBRSxRQUFRO1FBQ3pCLGVBQWUsRUFBRSxRQUFRO1FBQ3pCLGVBQWUsRUFBRSxZQUFZO1FBQzdCLGVBQWUsRUFBRSxTQUFTO1FBQzFCLGVBQWUsRUFBRSxTQUFTO1FBQzFCLGVBQWUsRUFBRSxVQUFVO1FBQzNCLGVBQWUsRUFBRSxRQUFRO1FBQ3pCLGVBQWUsRUFBRSxTQUFTO1FBQzFCLGVBQWUsRUFBRSxRQUFRO1FBQ3pCLGtCQUFrQixFQUFFLDZDQUE2QztRQUNqRSxjQUFjLEVBQUUsb0RBQW9EO1FBRXBFLHNCQUFzQjtRQUN0QixpQkFBaUIsRUFBRSxXQUFXO0tBQy9CO0NBQ0YsQ0FBQztBQUVGLE1BQU0sYUFBYSxHQUFHLElBQUksV0FBVyxDQUFDLGlCQUFpQixDQUFDLENBQUM7QUFFekQsTUFBTSxPQUFPLEdBQWE7SUFDeEIsT0FBTyxFQUFFLGFBQWE7SUFDdEIsWUFBWTtDQUNiLENBQUM7QUFFRixlQUFlLE9BQU8sQ0FBQztBQUV2Qiw0Q0FBNEM7QUFDNUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBMYW5nU2V0dGluZ3MgZnJvbSAnLi9jb21wb25lbnRzL2xhbmctc2V0dGluZ3MnO1xuaW1wb3J0IHsgTGFuZ3VhZ2VzQ29udGVudCwgVGV4dENvbnRlbnQgfSBmcm9tICcuL3R5cGVzJztcblxuZXhwb3J0IGludGVyZmFjZSBQcm92aWRlciB7XG4gIFt4OiBzdHJpbmddOiBUZXh0Q29udGVudDtcbn1cblxuLyoqXG4gKiBHbG9iYWwgY29udGVudCB0aGF0IGNhbiBiZSB1c2VkIGFjcm9zcyBhbGwgY29tcG9uZW50cy5cbiAqIFRoZXNlIGFyZSBjb21tb24gdGV4dHMgbGlrZSBidXR0b25zLCBhY3Rpb25zLCBzdGF0ZXMsIGV0Yy5cbiAqIFN0cnVjdHVyZToge2VzOiB7a2V5MTogJ3ZhbHVlMScsIGtleTI6ICd2YWx1ZTInfSwgZW46IHtrZXkxOiAndmFsdWUxJywga2V5MjogJ3ZhbHVlMid9LCBmcjogey4uLn19XG4gKlxuICogTm90ZTogWW91IGNhbiBhZGQgYW55IGxhbmd1YWdlIGNvZGUuIFRoZSBzeXN0ZW0gd2lsbCBhdXRvbWF0aWNhbGx5IGRldGVjdCBhdmFpbGFibGUgbGFuZ3VhZ2VzXG4gKiBhbmQgcHJvdmlkZSBpbnRlbGxpZ2VudCBmYWxsYmFja3Mgd2l0aCB3YXJuaW5ncyBmb3IgbWlzc2luZyB0cmFuc2xhdGlvbnMuXG4gKi9cbmNvbnN0IGdsb2JhbENvbnRlbnREYXRhOiBMYW5ndWFnZXNDb250ZW50ID0ge1xuICBlczoge1xuICAgIC8vIENvbW1vbiBidXR0b25zXG4gICAgb2s6ICdBY2VwdGFyJyxcbiAgICBjYW5jZWw6ICdDYW5jZWxhcicsXG4gICAgc2F2ZTogJ0d1YXJkYXInLFxuICAgIGRlbGV0ZTogJ0VsaW1pbmFyJyxcbiAgICBlZGl0OiAnRWRpdGFyJyxcbiAgICBjbG9zZTogJ0NlcnJhcicsXG4gICAgYmFjazogJ1ZvbHZlcicsXG4gICAgbmV4dDogJ1NpZ3VpZW50ZScsXG4gICAgcHJldmlvdXM6ICdBbnRlcmlvcicsXG4gICAgZmluaXNoOiAnRmluYWxpemFyJyxcbiAgICBjb250aW51ZTogJ0NvbnRpbnVhcicsXG5cbiAgICAvLyBDb21tb24gYWN0aW9uc1xuICAgIGFkZDogJ0FncmVnYXInLFxuICAgIHJlbW92ZTogJ1F1aXRhcicsXG4gICAgc2VhcmNoOiAnQnVzY2FyJyxcbiAgICBmaWx0ZXI6ICdGaWx0cmFyJyxcbiAgICBzb3J0OiAnT3JkZW5hcicsXG4gICAgcmVmcmVzaDogJ0FjdHVhbGl6YXInLFxuXG4gICAgLy8gQ29tbW9uIHN0YXRlcyBhbmQgbWVzc2FnZXNcbiAgICBsb2FkaW5nOiAnQ2FyZ2FuZG8uLi4nLFxuICAgIG5vRGF0YTogJ05vIGhheSBkYXRvcyBkaXNwb25pYmxlcycsXG4gICAgZXJyb3I6ICdFcnJvcicsXG4gICAgc3VjY2VzczogJ8OJeGl0bycsXG4gICAgd2FybmluZzogJ0FkdmVydGVuY2lhJyxcbiAgICBpbmZvOiAnSW5mb3JtYWNpw7NuJyxcbiAgICBsYW5ndWFnZTogJ0lkaW9tYScsXG5cbiAgICAvLyBDb21tb24gY29uZmlybWF0aW9uc1xuICAgIGFyZVlvdVN1cmU6ICfCv0VzdMOhcyBzZWd1cm8/JyxcblxuICAgIC8vIExhbmd1YWdlIG5hbWVzICh0cmFuc2xhdGVkKSAtIGZsYXQga2V5cyBmb3IgdHlwZSBjb21wYXRpYmlsaXR5XG4gICAgbGFuZ3VhZ2VOYW1lX2VzOiAnRXNwYcOxb2wnLFxuICAgIGxhbmd1YWdlTmFtZV9lbjogJ0luZ2zDqXMnLFxuICAgIGxhbmd1YWdlTmFtZV9mcjogJ0ZyYW5jw6lzJyxcbiAgICBsYW5ndWFnZU5hbWVfZGU6ICdBbGVtw6FuJyxcbiAgICBsYW5ndWFnZU5hbWVfcHQ6ICdQb3J0dWd1w6lzJyxcbiAgICBsYW5ndWFnZU5hbWVfaXQ6ICdJdGFsaWFubycsXG4gICAgbGFuZ3VhZ2VOYW1lX3poOiAnQ2hpbm8nLFxuICAgIGxhbmd1YWdlTmFtZV9qYTogJ0phcG9uw6lzJyxcbiAgICBsYW5ndWFnZU5hbWVfa286ICdDb3JlYW5vJyxcbiAgICBsYW5ndWFnZU5hbWVfcnU6ICdSdXNvJyxcbiAgICBsYW5ndWFnZU5hbWVfYXI6ICfDgXJhYmUnLFxuICAgIGRlbGV0ZUNvbmZpcm1hdGlvbjogJ8K/RXN0w6FzIHNlZ3VybyBkZSBxdWUgZGVzZWFzIGVsaW1pbmFyIHtpdGVtTmFtZX0/JyxcbiAgICB1bnNhdmVkQ2hhbmdlczogJ1RpZW5lcyBjYW1iaW9zIHNpbiBndWFyZGFyLiDCv0Rlc2VhcyBjb250aW51YXI/JyxcblxuICAgIC8vIENvbW1vbiBwbGFjZWhvbGRlcnNcbiAgICBzZWFyY2hQbGFjZWhvbGRlcjogJ0J1c2Nhci4uLicsXG4gIH0sXG4gIGVuOiB7XG4gICAgLy8gQ29tbW9uIGJ1dHRvbnNcbiAgICBvazogJ09LJyxcbiAgICBjYW5jZWw6ICdDYW5jZWwnLFxuICAgIHNhdmU6ICdTYXZlJyxcbiAgICBkZWxldGU6ICdEZWxldGUnLFxuICAgIGVkaXQ6ICdFZGl0JyxcbiAgICBjbG9zZTogJ0Nsb3NlJyxcbiAgICBiYWNrOiAnQmFjaycsXG4gICAgbmV4dDogJ05leHQnLFxuICAgIHByZXZpb3VzOiAnUHJldmlvdXMnLFxuICAgIGZpbmlzaDogJ0ZpbmlzaCcsXG4gICAgY29udGludWU6ICdDb250aW51ZScsXG5cbiAgICAvLyBDb21tb24gYWN0aW9uc1xuICAgIGFkZDogJ0FkZCcsXG4gICAgcmVtb3ZlOiAnUmVtb3ZlJyxcbiAgICBzZWFyY2g6ICdTZWFyY2gnLFxuICAgIGZpbHRlcjogJ0ZpbHRlcicsXG4gICAgc29ydDogJ1NvcnQnLFxuICAgIHJlZnJlc2g6ICdSZWZyZXNoJyxcblxuICAgIC8vIENvbW1vbiBzdGF0ZXMgYW5kIG1lc3NhZ2VzXG4gICAgbG9hZGluZzogJ0xvYWRpbmcuLi4nLFxuICAgIG5vRGF0YTogJ05vIGRhdGEgYXZhaWxhYmxlJyxcbiAgICBlcnJvcjogJ0Vycm9yJyxcbiAgICBzdWNjZXNzOiAnU3VjY2VzcycsXG4gICAgd2FybmluZzogJ1dhcm5pbmcnLFxuICAgIGluZm86ICdJbmZvcm1hdGlvbicsXG4gICAgbGFuZ3VhZ2U6ICdMYW5ndWFnZScsXG5cbiAgICAvLyBDb21tb24gY29uZmlybWF0aW9uc1xuICAgIGFyZVlvdVN1cmU6ICdBcmUgeW91IHN1cmU/JyxcblxuICAgIC8vIExhbmd1YWdlIG5hbWVzICh0cmFuc2xhdGVkKSAtIGZsYXQga2V5cyBmb3IgdHlwZSBjb21wYXRpYmlsaXR5XG4gICAgbGFuZ3VhZ2VOYW1lX2VzOiAnU3BhbmlzaCcsXG4gICAgbGFuZ3VhZ2VOYW1lX2VuOiAnRW5nbGlzaCcsXG4gICAgbGFuZ3VhZ2VOYW1lX2ZyOiAnRnJlbmNoJyxcbiAgICBsYW5ndWFnZU5hbWVfZGU6ICdHZXJtYW4nLFxuICAgIGxhbmd1YWdlTmFtZV9wdDogJ1BvcnR1Z3Vlc2UnLFxuICAgIGxhbmd1YWdlTmFtZV9pdDogJ0l0YWxpYW4nLFxuICAgIGxhbmd1YWdlTmFtZV96aDogJ0NoaW5lc2UnLFxuICAgIGxhbmd1YWdlTmFtZV9qYTogJ0phcGFuZXNlJyxcbiAgICBsYW5ndWFnZU5hbWVfa286ICdLb3JlYW4nLFxuICAgIGxhbmd1YWdlTmFtZV9ydTogJ1J1c3NpYW4nLFxuICAgIGxhbmd1YWdlTmFtZV9hcjogJ0FyYWJpYycsXG4gICAgZGVsZXRlQ29uZmlybWF0aW9uOiAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB7aXRlbU5hbWV9PycsXG4gICAgdW5zYXZlZENoYW5nZXM6ICdZb3UgaGF2ZSB1bnNhdmVkIGNoYW5nZXMuIERvIHlvdSB3YW50IHRvIGNvbnRpbnVlPycsXG5cbiAgICAvLyBDb21tb24gcGxhY2Vob2xkZXJzXG4gICAgc2VhcmNoUGxhY2Vob2xkZXI6ICdTZWFyY2guLi4nLFxuICB9LFxufTtcblxuY29uc3QgR2xvYmFsQ29udGVudCA9IG5ldyBUZXh0Q29udGVudChnbG9iYWxDb250ZW50RGF0YSk7XG5cbmNvbnN0IGNvbnRlbnQ6IFByb3ZpZGVyID0ge1xuICBfZ2xvYmFsOiBHbG9iYWxDb250ZW50LFxuICBMYW5nU2V0dGluZ3MsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBjb250ZW50O1xuXG4vLyBFeHBvcnQgbmFtZWQgZXhwb3J0cyBmb3IgdXNlciBjb252ZW5pZW5jZVxuZXhwb3J0IHsgY29udGVudCwgR2xvYmFsQ29udGVudCwgZ2xvYmFsQ29udGVudERhdGEgfTtcbiJdfQ==
@@ -1,5 +1,5 @@
1
1
  import { Inject, Injectable } from '@angular/core';
2
- import { BehaviorSubject, distinctUntilChanged, map, shareReplay, tap } from 'rxjs';
2
+ import { BehaviorSubject, distinctUntilChanged, map, shareReplay } from 'rxjs';
3
3
  import { LANG } from '../../shared/constants/storage';
4
4
  import { LocalStorageService } from '../local-storage.service';
5
5
  import { ValtechConfigService } from '../types';
@@ -153,8 +153,7 @@ export class LangService {
153
153
  * Use this to subscribe to language changes in components.
154
154
  */
155
155
  get currentLang$() {
156
- console.log('LangService.currentLang$: Creating observable');
157
- return this.selectedLang.asObservable().pipe(tap(lang => console.log(`LangService.currentLang$: Emitting language: ${lang}`)), distinctUntilChanged(), shareReplay(1) // Ensure new subscribers get the current value
156
+ return this.selectedLang.asObservable().pipe(distinctUntilChanged(), shareReplay(1) // Ensure new subscribers get the current value
158
157
  );
159
158
  }
160
159
  /**
@@ -228,16 +227,12 @@ export class LangService {
228
227
  * @returns Observable that emits the text string whenever language changes
229
228
  */
230
229
  getContent(className, key, fallback) {
231
- console.log(`LangService.getContent: Creating observable for ${className}.${key}`);
232
230
  return this.currentLang$.pipe(map(lang => {
233
- console.log(`LangService.getContent: Language changed to ${lang} for ${className}.${key}`);
234
231
  const result = this.getBestAvailableContent(className, key, lang);
235
232
  if (result.shouldWarn && result.actualLang !== lang) {
236
233
  console.warn(`LangService: Content "${className}.${key}" not available in "${lang}".`, `Using "${result.actualLang}" instead. Available languages:`, this.availableLanguages);
237
234
  }
238
- const finalResult = result.content || fallback || `[${className}.${key}]`;
239
- console.log(`LangService.getContent: Returning "${finalResult}" for ${className}.${key}`);
240
- return finalResult;
235
+ return result.content || fallback || `[${className}.${key}]`;
241
236
  }), distinctUntilChanged());
242
237
  }
243
238
  /**
@@ -336,4 +331,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
336
331
  type: Inject,
337
332
  args: [ValtechConfigService]
338
333
  }] }] });
339
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFuZy1wcm92aWRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGVjaC1jb21wb25lbnRzL3NyYy9saWIvc2VydmljZXMvbGFuZy1wcm92aWRlci9sYW5nLXByb3ZpZGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGVBQWUsRUFBYyxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0QsT0FBTyxFQUFpQixvQkFBb0IsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUUvRCxPQUFPLEVBQUUsU0FBUyxFQUE0QixNQUFNLFNBQVMsQ0FBQzs7QUFFOUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F5Qkc7QUFJSCxNQUFNLE9BQU8sV0FBVztJQVF0QixZQUEwQyxNQUFxQjtRQUx2RCx1QkFBa0IsR0FBaUIsRUFBRSxDQUFDO1FBR3RDLDJCQUFzQixHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7UUFHakQsT0FBTyxDQUFDLEdBQUcsQ0FBQywrQkFBK0IsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUM7UUFDOUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFFckIsMENBQTBDO1FBQzFDLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1FBRWhDLDRFQUE0RTtRQUM1RSxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1FB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UUFFdkQsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsTUFBTSxDQUN6QyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLE9BQU8sYUFBYSxDQUFDLEdBQUcsQ0FBQyxLQUFLLFFBQVEsQ0FDckUsQ0FBQztJQUNKLENBQUM7SUFFRCxvREFBb0Q7SUFDcEQsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFJLElBQUksQ0FBQyxJQUFnQjtRQUN2QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3JCLENBQUM7K0dBN1hVLFdBQVcsa0JBUUYsb0JBQW9CO21IQVI3QixXQUFXLGNBRlYsTUFBTTs7NEZBRVAsV0FBVztrQkFIdkIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQVNjLE1BQU07MkJBQUMsb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIHNoYXJlUmVwbGF5LCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IExBTkcgfSBmcm9tICcuLi8uLi9zaGFyZWQvY29uc3RhbnRzL3N0b3JhZ2UnO1xuaW1wb3J0IHsgTG9jYWxTdG9yYWdlU2VydmljZSB9IGZyb20gJy4uL2xvY2FsLXN0b3JhZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBWYWx0ZWNoQ29uZmlnLCBWYWx0ZWNoQ29uZmlnU2VydmljZSB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IFByb3ZpZGVyIH0gZnJvbSAnLi9jb250ZW50JztcbmltcG9ydCB7IExBTkdVQUdFUywgTGFuZ09wdGlvbiwgTGFuZ3VhZ2VUZXh0IH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogTGFuZ1NlcnZpY2UgLSBSZWFjdGl2ZSBsYW5ndWFnZSBhbmQgY29udGVudCBtYW5hZ2VtZW50IHNlcnZpY2UuXG4gKlxuICogVGhpcyBzZXJ2aWNlIHByb3ZpZGVzIHJlYWN0aXZlIGNvbnRlbnQgbWFuYWdlbWVudCB3aXRoIE9ic2VydmFibGUtYmFzZWQgbGFuZ3VhZ2Ugc3dpdGNoaW5nLlxuICogQ29tcG9uZW50cyBjYW4gc3Vic2NyaWJlIHRvIGNvbnRlbnQgY2hhbmdlcyBhbmQgYXV0b21hdGljYWxseSB1cGRhdGUgd2hlbiB0aGUgbGFuZ3VhZ2UgY2hhbmdlcy5cbiAqXG4gKiBUaGUgc2VydmljZSBhdXRvbWF0aWNhbGx5IGRldGVjdHMgYXZhaWxhYmxlIGxhbmd1YWdlcyBmcm9tIHRoZSBjb250ZW50IGNvbmZpZ3VyYXRpb25cbiAqIGFuZCBwcm92aWRlcyBpbnRlbGxpZ2VudCBmYWxsYmFja3Mgd2l0aCBjb25zb2xlIHdhcm5pbmdzIGZvciBtaXNzaW5nIHRyYW5zbGF0aW9ucy5cbiAqXG4gKiBAZXhhbXBsZSBCYXNpYyB1c2FnZTpcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0cnVjdG9yKHByaXZhdGUgbGFuZ1NlcnZpY2U6IExhbmdTZXJ2aWNlKSB7fVxuICpcbiAqIC8vIEdldCBjdXJyZW50IGxhbmd1YWdlXG4gKiBjb25zdCBjdXJyZW50TGFuZyA9IHRoaXMubGFuZ1NlcnZpY2UuY3VycmVudExhbmc7XG4gKlxuICogLy8gU3Vic2NyaWJlIHRvIGxhbmd1YWdlIGNoYW5nZXNcbiAqIHRoaXMubGFuZ1NlcnZpY2UuY3VycmVudExhbmckLnN1YnNjcmliZShsYW5nID0+IGNvbnNvbGUubG9nKCdMYW5ndWFnZSBjaGFuZ2VkOicsIGxhbmcpKTtcbiAqXG4gKiAvLyBHZXQgc3RhdGljIHRleHRcbiAqIGNvbnN0IHRleHQgPSB0aGlzLmxhbmdTZXJ2aWNlLmdldFRleHQoJ0NvbXBvbmVudE5hbWUnLCAndGV4dEtleScpO1xuICpcbiAqIC8vIEdldCByZWFjdGl2ZSB0ZXh0XG4gKiBjb25zdCB0ZXh0JCA9IHRoaXMubGFuZ1NlcnZpY2UuZ2V0Q29udGVudCgnQ29tcG9uZW50TmFtZScsICd0ZXh0S2V5Jyk7XG4gKiBgYGBcbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIExhbmdTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBjb250ZW50OiBQcm92aWRlcjtcbiAgcHJpdmF0ZSBkZWZhdWx0TGFuZzogTGFuZ09wdGlvbjtcbiAgcHJpdmF0ZSBhdmFpbGFibGVMYW5ndWFnZXM6IExhbmdPcHRpb25bXSA9IFtdO1xuICBwcml2YXRlIHNlbGVjdGVkTGFuZzogQmVoYXZpb3JTdWJqZWN0PExhbmdPcHRpb24+O1xuICBwcml2YXRlIGNvbmZpZzogVmFsdGVjaENvbmZpZztcbiAgcHJpdmF0ZSB3YXJuZWRNaXNzaW5nTGFuZ3VhZ2VzID0gbmV3IFNldDxzdHJpbmc+KCk7XG5cbiAgY29uc3RydWN0b3IoQEluamVjdChWYWx0ZWNoQ29uZmlnU2VydmljZSkgY29uZmlnOiBWYWx0ZWNoQ29uZmlnKSB7XG4gICAgY29uc29sZS5sb2coJ0xhbmdTZXJ2aWNlOiBJbmplY3RlZCBjb25maWc6JywgY29uZmlnKTtcbiAgICB0aGlzLmNvbnRlbnQgPSBjb25maWcuY29udGVudDtcbiAgICB0aGlzLmNvbmZpZyA9IGNvbmZpZztcblxuICAgIC8vIERldGVjdCBhdmFpbGFibGUgbGFuZ3VhZ2VzIGZyb20gY29udGVudFxuICAgIHRoaXMuZGV0ZWN0QXZhaWxhYmxlTGFuZ3VhZ2VzKCk7XG5cbiAgICAvLyBTZXQgZGVmYXVsdCBsYW5ndWFnZSAocHJlZmVyIFNwYW5pc2gsIHRoZW4gRW5nbGlzaCwgdGhlbiBmaXJzdCBhdmFpbGFibGUpXG4gICAgdGhpcy5kZWZhdWx0TGFuZyA9IHRoaXMuZGV0ZXJtaW5lRGVmYXVsdExhbmd1YWdlKCk7XG5cbiAgICAvLyBJbml0aWFsaXplIHdpdGggc3RvcmVkIGxhbmd1YWdlIG9yIGRlZmF1bHRcbiAgICBjb25zdCBjdXJyZW50ID0gTG9jYWxTdG9yYWdlU2VydmljZS5nZXQ8TGFuZ09wdGlvbj4oTEFORyk7XG4gICAgY29uc3QgaW5pdGlhbExhbmcgPSB0aGlzLnZhbGlkYXRlTGFuZ3VhZ2UoY3VycmVudCkgfHwgdGhpcy5kZWZhdWx0TGFuZztcblxuICAgIHRoaXMuc2VsZWN0ZWRMYW5nID0gbmV3IEJlaGF2aW9yU3ViamVjdDxMYW5nT3B0aW9uPihpbml0aWFsTGFuZyk7XG5cbiAgICBjb25zb2xlLmxvZygnTGFuZ1NlcnZpY2U6IEluaXRpYWxpemVkIHdpdGggbGFuZ3VhZ2VzOicsIHtcbiAgICAgIGF2YWlsYWJsZTogdGhpcy5hdmFpbGFibGVMYW5ndWFnZXMsXG4gICAgICBkZWZhdWx0OiB0aGlzLmRlZmF1bHRMYW5nLFxuICAgICAgY3VycmVudDogaW5pdGlhbExhbmcsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogRGV0ZWN0IGF2YWlsYWJsZSBsYW5ndWFnZXMgZnJvbSB0aGUgY29udGVudCBjb25maWd1cmF0aW9uLlxuICAgKiBTY2FucyBhbGwgY29tcG9uZW50IGNvbnRlbnQgdG8gZmluZCB3aGljaCBsYW5ndWFnZXMgYXJlIGFjdHVhbGx5IGNvbmZpZ3VyZWQuXG4gICAqL1xuICBwcml2YXRlIGRldGVjdEF2YWlsYWJsZUxhbmd1YWdlcygpOiB2b2lkIHtcbiAgICBjb25zdCBsYW5ndWFnZVNldCA9IG5ldyBTZXQ8TGFuZ09wdGlvbj4oKTtcblxuICAgIE9iamVjdC52YWx1ZXModGhpcy5jb250ZW50KS5mb3JFYWNoKGNvbXBvbmVudENvbnRlbnQgPT4ge1xuICAgICAgaWYgKGNvbXBvbmVudENvbnRlbnQ/LkNvbnRlbnQpIHtcbiAgICAgICAgT2JqZWN0LmtleXMoY29tcG9uZW50Q29udGVudC5Db250ZW50KS5mb3JFYWNoKGxhbmcgPT4ge1xuICAgICAgICAgIGxhbmd1YWdlU2V0LmFkZChsYW5nKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLmF2YWlsYWJsZUxhbmd1YWdlcyA9IEFycmF5LmZyb20obGFuZ3VhZ2VTZXQpLnNvcnQoKTtcblxuICAgIGlmICh0aGlzLmF2YWlsYWJsZUxhbmd1YWdlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIGNvbnNvbGUud2FybignTGFuZ1NlcnZpY2U6IE5vIGxhbmd1YWdlcyBkZXRlY3RlZCBpbiBjb250ZW50IGNvbmZpZ3VyYXRpb24hJyk7XG4gICAgICB0aGlzLmF2YWlsYWJsZUxhbmd1YWdlcyA9IFtMQU5HVUFHRVMuRVNdOyAvLyBGYWxsYmFja1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmUgdGhlIGJlc3QgZGVmYXVsdCBsYW5ndWFnZSBiYXNlZCBvbiBhdmFpbGFibGUgY29udGVudC5cbiAgICovXG4gIHByaXZhdGUgZGV0ZXJtaW5lRGVmYXVsdExhbmd1YWdlKCk6IExhbmdPcHRpb24ge1xuICAgIC8vIFByZWZlcmVuY2Ugb3JkZXI6IFNwYW5pc2gsIEVuZ2xpc2gsIHRoZW4gZmlyc3QgYXZhaWxhYmxlXG4gICAgY29uc3QgcHJlZmVycmVkT3JkZXIgPSBbTEFOR1VBR0VTLkVTLCBMQU5HVUFHRVMuRU5dO1xuXG4gICAgZm9yIChjb25zdCBwcmVmZXJyZWQgb2YgcHJlZmVycmVkT3JkZXIpIHtcbiAgICAgIGlmICh0aGlzLmF2YWlsYWJsZUxhbmd1YWdlcy5pbmNsdWRlcyhwcmVmZXJyZWQpKSB7XG4gICAgICAgIHJldHVybiBwcmVmZXJyZWQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuYXZhaWxhYmxlTGFuZ3VhZ2VzWzBdO1xuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlIGlmIGEgbGFuZ3VhZ2UgaXMgYXZhaWxhYmxlIGluIHRoZSBjb250ZW50LlxuICAgKi9cbiAgcHJpdmF0ZSB2YWxpZGF0ZUxhbmd1YWdlKGxhbmc6IExhbmdPcHRpb24gfCBudWxsKTogTGFuZ09wdGlvbiB8IG51bGwge1xuICAgIGlmICghbGFuZykgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIHRoaXMuYXZhaWxhYmxlTGFuZ3VhZ2VzLmluY2x1ZGVzKGxhbmcpID8gbGFuZyA6IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBiZXN0IGF2YWlsYWJsZSBsYW5ndWFnZSBmb3IgYSBjb21wb25lbnQgYW5kIGtleS5cbiAgICogUHJvdmlkZXMgaW50ZWxsaWdlbnQgZmFsbGJhY2sgd2l0aCB3YXJuaW5ncy5cbiAgICovXG4gIHByaXZhdGUgZ2V0QmVzdEF2YWlsYWJsZUNvbnRlbnQoXG4gICAgY2xhc3NOYW1lOiBzdHJpbmcsXG4gICAga2V5OiBzdHJpbmcsXG4gICAgcmVxdWVzdGVkTGFuZzogTGFuZ09wdGlvblxuICApOiB7XG4gICAgY29udGVudDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIGFjdHVhbExhbmc6IExhbmdPcHRpb247XG4gICAgc2hvdWxkV2FybjogYm9vbGVhbjtcbiAgfSB7XG4gICAgY29uc3QgY29tcG9uZW50Q29udGVudCA9IHRoaXMuY29udGVudFtjbGFzc05hbWVdO1xuXG4gICAgaWYgKCFjb21wb25lbnRDb250ZW50KSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBjb250ZW50OiB1bmRlZmluZWQsXG4gICAgICAgIGFjdHVhbExhbmc6IHJlcXVlc3RlZExhbmcsXG4gICAgICAgIHNob3VsZFdhcm46IGZhbHNlLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICAvLyBUcnkgcmVxdWVzdGVkIGxhbmd1YWdlIGZpcnN0XG4gICAgY29uc3QgcmVxdWVzdGVkQ29udGVudCA9IGNvbXBvbmVudENvbnRlbnQuQ29udGVudFtyZXF1ZXN0ZWRMYW5nXTtcbiAgICBpZiAocmVxdWVzdGVkQ29udGVudD8uW2tleV0pIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGNvbnRlbnQ6IHJlcXVlc3RlZENvbnRlbnRba2V5XSxcbiAgICAgICAgYWN0dWFsTGFuZzogcmVxdWVzdGVkTGFuZyxcbiAgICAgICAgc2hvdWxkV2FybjogZmFsc2UsXG4gICAgICB9O1xuICAgIH1cblxuICAgIC8vIExhbmd1YWdlIG5vdCBhdmFpbGFibGUsIHRyeSBmYWxsYmFja3NcbiAgICBjb25zdCB3YXJuaW5nS2V5ID0gYCR7Y2xhc3NOYW1lfS4ke2tleX0uJHtyZXF1ZXN0ZWRMYW5nfWA7XG4gICAgY29uc3Qgc2hvdWxkV2FybiA9ICF0aGlzLndhcm5lZE1pc3NpbmdMYW5ndWFnZXMuaGFzKHdhcm5pbmdLZXkpO1xuXG4gICAgaWYgKHNob3VsZFdhcm4pIHtcbiAgICAgIHRoaXMud2FybmVkTWlzc2luZ0xhbmd1YWdlcy5hZGQod2FybmluZ0tleSk7XG4gICAgfVxuXG4gICAgLy8gVHJ5IGRlZmF1bHQgbGFuZ3VhZ2VcbiAgICBpZiAocmVxdWVzdGVkTGFuZyAhPT0gdGhpcy5kZWZhdWx0TGFuZykge1xuICAgICAgY29uc3QgZGVmYXVsdENvbnRlbnQgPSBjb21wb25lbnRDb250ZW50LkNvbnRlbnRbdGhpcy5kZWZhdWx0TGFuZ107XG4gICAgICBpZiAoZGVmYXVsdENvbnRlbnQ/LltrZXldKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgY29udGVudDogZGVmYXVsdENvbnRlbnRba2V5XSxcbiAgICAgICAgICBhY3R1YWxMYW5nOiB0aGlzLmRlZmF1bHRMYW5nLFxuICAgICAgICAgIHNob3VsZFdhcm4sXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gVHJ5IGZpcnN0IGF2YWlsYWJsZSBsYW5ndWFnZVxuICAgIGZvciAoY29uc3QgYXZhaWxhYmxlTGFuZyBvZiB0aGlzLmF2YWlsYWJsZUxhbmd1YWdlcykge1xuICAgICAgY29uc3QgYXZhaWxhYmxlQ29udGVudCA9IGNvbXBvbmVudENvbnRlbnQuQ29udGVudFthdmFpbGFibGVMYW5nXTtcbiAgICAgIGlmIChhdmFpbGFibGVDb250ZW50Py5ba2V5XSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGNvbnRlbnQ6IGF2YWlsYWJsZUNvbnRlbnRba2V5XSxcbiAgICAgICAgICBhY3R1YWxMYW5nOiBhdmFpbGFibGVMYW5nLFxuICAgICAgICAgIHNob3VsZFdhcm4sXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbnRlbnQ6IHVuZGVmaW5lZCxcbiAgICAgIGFjdHVhbExhbmc6IHJlcXVlc3RlZExhbmcsXG4gICAgICBzaG91bGRXYXJuLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSBjdXJyZW50IGxhbmd1YWdlIHdoZW5ldmVyIGl0IGNoYW5nZXMuXG4gICAqIFVzZSB0aGlzIHRvIHN1YnNjcmliZSB0byBsYW5ndWFnZSBjaGFuZ2VzIGluIGNvbXBvbmVudHMuXG4gICAqL1xuICBnZXQgY3VycmVudExhbmckKCk6IE9ic2VydmFibGU8TGFuZ09wdGlvbj4ge1xuICAgIGNvbnNvbGUubG9nKCdMYW5nU2VydmljZS5jdXJyZW50TGFuZyQ6IENyZWF0aW5nIG9ic2VydmFibGUnKTtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZExhbmcuYXNPYnNlcnZhYmxlKCkucGlwZShcbiAgICAgIHRhcChsYW5nID0+IGNvbnNvbGUubG9nKGBMYW5nU2VydmljZS5jdXJyZW50TGFuZyQ6IEVtaXR0aW5nIGxhbmd1YWdlOiAke2xhbmd9YCkpLFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgIHNoYXJlUmVwbGF5KDEpIC8vIEVuc3VyZSBuZXcgc3Vic2NyaWJlcnMgZ2V0IHRoZSBjdXJyZW50IHZhbHVlXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGN1cnJlbnQgbGFuZ3VhZ2Ugc3luY2hyb25vdXNseS5cbiAgICovXG4gIGdldCBjdXJyZW50TGFuZygpOiBMYW5nT3B0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZExhbmcudmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGFycmF5IG9mIGF2YWlsYWJsZSBsYW5ndWFnZXMgZGV0ZWN0ZWQgZnJvbSBjb250ZW50LlxuICAgKi9cbiAgZ2V0IGF2YWlsYWJsZUxhbmdzKCk6IExhbmdPcHRpb25bXSB7XG4gICAgcmV0dXJuIFsuLi50aGlzLmF2YWlsYWJsZUxhbmd1YWdlc107XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBkZWZhdWx0IGxhbmd1YWdlLlxuICAgKi9cbiAgZ2V0IGRlZmF1bHRMYW5ndWFnZSgpOiBMYW5nT3B0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5kZWZhdWx0TGFuZztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIGN1cnJlbnQgbGFuZ3VhZ2UgYW5kIHBlcnNpc3QgaXQgdG8gbG9jYWxTdG9yYWdlLlxuICAgKiBUaGlzIHdpbGwgdHJpZ2dlciB1cGRhdGVzIGluIGFsbCByZWFjdGl2ZSBjb250ZW50IHN1YnNjcmlwdGlvbnMuXG4gICAqXG4gICAqIFZhbGlkYXRlcyB0aGF0IHRoZSBsYW5ndWFnZSBpcyBhdmFpbGFibGUgYW5kIHdhcm5zIGlmIG5vdC5cbiAgICpcbiAgICogQHBhcmFtIGxhbmcgLSBUaGUgbGFuZ3VhZ2UgdG8gc2V0XG4gICAqL1xuICBzZXRMYW5nKGxhbmc6IExhbmdPcHRpb24pOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuYXZhaWxhYmxlTGFuZ3VhZ2VzLmluY2x1ZGVzKGxhbmcpKSB7XG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgIGBMYW5nU2VydmljZTogTGFuZ3VhZ2UgXCIke2xhbmd9XCIgaXMgbm90IGF2YWlsYWJsZS4gQXZhaWxhYmxlIGxhbmd1YWdlczpgLFxuICAgICAgICB0aGlzLmF2YWlsYWJsZUxhbmd1YWdlc1xuICAgICAgKTtcbiAgICAgIGNvbnNvbGUud2FybihgTGFuZ1NlcnZpY2U6IEZhbGxpbmcgYmFjayB0byBkZWZhdWx0IGxhbmd1YWdlIFwiJHt0aGlzLmRlZmF1bHRMYW5nfVwiYCk7XG4gICAgICBsYW5nID0gdGhpcy5kZWZhdWx0TGFuZztcbiAgICB9XG5cbiAgICB0aGlzLnNlbGVjdGVkTGFuZy5uZXh0KGxhbmcpO1xuICAgIExvY2FsU3RvcmFnZVNlcnZpY2Uuc2V0PExhbmdPcHRpb24+KExBTkcsIGxhbmcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBjb250ZW50IGZvciBhIGNvbXBvbmVudCBjbGFzcyBhbmQga2V5IChsZWdhY3kgbWV0aG9kKS5cbiAgICpcbiAgICogQGRlcHJlY2F0ZWQgVXNlIGdldFRleHQoKSBvciBnZXRDb250ZW50KCkgZm9yIGJldHRlciB0eXBlIHNhZmV0eVxuICAgKi9cbiAgVGV4dChjbGFzc05hbWU6IHN0cmluZyk6IExhbmd1YWdlVGV4dCB7XG4gICAgY29uc3QgY29tcG9uZW50Q29udGVudCA9IHRoaXMuY29udGVudFtjbGFzc05hbWVdO1xuICAgIHJldHVybiBjb21wb25lbnRDb250ZW50Py5Db250ZW50W3RoaXMuc2VsZWN0ZWRMYW5nLnZhbHVlXSB8fCB7fTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYSBzaW5nbGUgY29udGVudCBzdHJpbmcgc3luY2hyb25vdXNseSBmb3IgdGhlIGN1cnJlbnQgbGFuZ3VhZ2UuXG4gICAqIFByb3ZpZGVzIGludGVsbGlnZW50IGZhbGxiYWNrIHdpdGggd2FybmluZ3MgZm9yIG1pc3NpbmcgdHJhbnNsYXRpb25zLlxuICAgKlxuICAgKiBAcGFyYW0gY2xhc3NOYW1lIC0gVGhlIGNvbXBvbmVudCBjbGFzcyBuYW1lXG4gICAqIEBwYXJhbSBrZXkgLSBUaGUgdGV4dCBrZXlcbiAgICogQHBhcmFtIGZhbGxiYWNrIC0gT3B0aW9uYWwgZmFsbGJhY2sgdGV4dCBpZiBrZXkgaXMgbm90IGZvdW5kXG4gICAqIEByZXR1cm5zIFRoZSB0ZXh0IHN0cmluZyBvciBmYWxsYmFja1xuICAgKi9cbiAgZ2V0VGV4dChjbGFzc05hbWU6IHN0cmluZywga2V5OiBzdHJpbmcsIGZhbGxiYWNrPzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCByZXN1bHQgPSB0aGlzLmdldEJlc3RBdmFpbGFibGVDb250ZW50KGNsYXNzTmFtZSwga2V5LCB0aGlzLnNlbGVjdGVkTGFuZy52YWx1ZSk7XG5cbiAgICBpZiAocmVzdWx0LnNob3VsZFdhcm4gJiYgcmVzdWx0LmFjdHVhbExhbmcgIT09IHRoaXMuc2VsZWN0ZWRMYW5nLnZhbHVlKSB7XG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgIGBMYW5nU2VydmljZTogQ29udGVudCBcIiR7Y2xhc3NOYW1lfS4ke2tleX1cIiBub3QgYXZhaWxhYmxlIGluIFwiJHt0aGlzLnNlbGVjdGVkTGFuZy52YWx1ZX1cIi5gLFxuICAgICAgICBgVXNpbmcgXCIke3Jlc3VsdC5hY3R1YWxMYW5nfVwiIGluc3RlYWQuIEF2YWlsYWJsZSBsYW5ndWFnZXM6YCxcbiAgICAgICAgdGhpcy5hdmFpbGFibGVMYW5ndWFnZXNcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdC5jb250ZW50IHx8IGZhbGxiYWNrIHx8IGBbJHtjbGFzc05hbWV9LiR7a2V5fV1gO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBhIHJlYWN0aXZlIE9ic2VydmFibGUgZm9yIGEgc3BlY2lmaWMgdGV4dCBrZXkgdGhhdCB1cGRhdGVzIHdoZW4gbGFuZ3VhZ2UgY2hhbmdlcy5cbiAgICogVGhpcyBpcyB0aGUgcmVjb21tZW5kZWQgbWV0aG9kIGZvciBjb21wb25lbnRzIHRoYXQgbmVlZCByZWFjdGl2ZSBjb250ZW50LlxuICAgKiBQcm92aWRlcyBpbnRlbGxpZ2VudCBmYWxsYmFjayB3aXRoIHdhcm5pbmdzIGZvciBtaXNzaW5nIHRyYW5zbGF0aW9ucy5cbiAgICpcbiAgICogQHBhcmFtIGNsYXNzTmFtZSAtIFRoZSBjb21wb25lbnQgY2xhc3MgbmFtZVxuICAgKiBAcGFyYW0ga2V5IC0gVGhlIHRleHQga2V5XG4gICAqIEBwYXJhbSBmYWxsYmFjayAtIE9wdGlvbmFsIGZhbGxiYWNrIHRleHQgaWYga2V5IGlzIG5vdCBmb3VuZFxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHRleHQgc3RyaW5nIHdoZW5ldmVyIGxhbmd1YWdlIGNoYW5nZXNcbiAgICovXG4gIGdldENvbnRlbnQoY2xhc3NOYW1lOiBzdHJpbmcsIGtleTogc3RyaW5nLCBmYWxsYmFjaz86IHN0cmluZyk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgY29uc29sZS5sb2coYExhbmdTZXJ2aWNlLmdldENvbnRlbnQ6IENyZWF0aW5nIG9ic2VydmFibGUgZm9yICR7Y2xhc3NOYW1lfS4ke2tleX1gKTtcblxuICAgIHJldHVybiB0aGlzLmN1cnJlbnRMYW5nJC5waXBlKFxuICAgICAgbWFwKGxhbmcgPT4ge1xuICAgICAgICBjb25zb2xlLmxvZyhgTGFuZ1NlcnZpY2UuZ2V0Q29udGVudDogTGFuZ3VhZ2UgY2hhbmdlZCB0byAke2xhbmd9IGZvciAke2NsYXNzTmFtZX0uJHtrZXl9YCk7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuZ2V0QmVzdEF2YWlsYWJsZUNvbnRlbnQoY2xhc3NOYW1lLCBrZXksIGxhbmcpO1xuXG4gICAgICAgIGlmIChyZXN1bHQuc2hvdWxkV2FybiAmJiByZXN1bHQuYWN0dWFsTGFuZyAhPT0gbGFuZykge1xuICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgIGBMYW5nU2VydmljZTogQ29udGVudCBcIiR7Y2xhc3NOYW1lfS4ke2tleX1cIiBub3QgYXZhaWxhYmxlIGluIFwiJHtsYW5nfVwiLmAsXG4gICAgICAgICAgICBgVXNpbmcgXCIke3Jlc3VsdC5hY3R1YWxMYW5nfVwiIGluc3RlYWQuIEF2YWlsYWJsZSBsYW5ndWFnZXM6YCxcbiAgICAgICAgICAgIHRoaXMuYXZhaWxhYmxlTGFuZ3VhZ2VzXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGZpbmFsUmVzdWx0ID0gcmVzdWx0LmNvbnRlbnQgfHwgZmFsbGJhY2sgfHwgYFske2NsYXNzTmFtZX0uJHtrZXl9XWA7XG4gICAgICAgIGNvbnNvbGUubG9nKGBMYW5nU2VydmljZS5nZXRDb250ZW50OiBSZXR1cm5pbmcgXCIke2ZpbmFsUmVzdWx0fVwiIGZvciAke2NsYXNzTmFtZX0uJHtrZXl9YCk7XG4gICAgICAgIHJldHVybiBmaW5hbFJlc3VsdDtcbiAgICAgIH0pLFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHJlYWN0aXZlIGNvbnRlbnQgZm9yIG11bHRpcGxlIGtleXMgYXQgb25jZS5cbiAgICogUHJvdmlkZXMgaW50ZWxsaWdlbnQgZmFsbGJhY2sgd2l0aCB3YXJuaW5ncyBmb3IgbWlzc2luZyB0cmFuc2xhdGlvbnMuXG4gICAqXG4gICAqIEBwYXJhbSBjbGFzc05hbWUgLSBUaGUgY29tcG9uZW50IGNsYXNzIG5hbWVcbiAgICogQHBhcmFtIGtleXMgLSBBcnJheSBvZiB0ZXh0IGtleXMgdG8gcmV0cmlldmVcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIGFuIG9iamVjdCB3aXRoIGFsbCByZXF1ZXN0ZWQga2V5c1xuICAgKi9cbiAgZ2V0TXVsdGlwbGVDb250ZW50KGNsYXNzTmFtZTogc3RyaW5nLCBrZXlzOiBzdHJpbmdbXSk6IE9ic2VydmFibGU8UmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuICAgIHJldHVybiB0aGlzLmN1cnJlbnRMYW5nJC5waXBlKFxuICAgICAgbWFwKGxhbmcgPT4ge1xuICAgICAgICBjb25zdCByZXN1bHQ6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcblxuICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHtcbiAgICAgICAgICBjb25zdCBjb250ZW50UmVzdWx0ID0gdGhpcy5nZXRCZXN0QXZhaWxhYmxlQ29udGVudChjbGFzc05hbWUsIGtleSwgbGFuZyk7XG5cbiAgICAgICAgICBpZiAoY29udGVudFJlc3VsdC5zaG91bGRXYXJuICYmIGNvbnRlbnRSZXN1bHQuYWN0dWFsTGFuZyAhPT0gbGFuZykge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgICBgTGFuZ1NlcnZpY2U6IENvbnRlbnQgXCIke2NsYXNzTmFtZX0uJHtrZXl9XCIgbm90IGF2YWlsYWJsZSBpbiBcIiR7bGFuZ31cIi5gLFxuICAgICAgICAgICAgICBgVXNpbmcgXCIke2NvbnRlbnRSZXN1bHQuYWN0dWFsTGFuZ31cIiBpbnN0ZWFkLmBcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmVzdWx0W2tleV0gPSBjb250ZW50UmVzdWx0LmNvbnRlbnQgfHwgYFske2NsYXNzTmFtZX0uJHtrZXl9XWA7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9KSxcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKChwcmV2LCBjdXJyKSA9PiBKU09OLnN0cmluZ2lmeShwcmV2KSA9PT0gSlNPTi5zdHJpbmdpZnkoY3VycikpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBhIGNvbnRlbnQga2V5IGV4aXN0cyBmb3IgYSBjb21wb25lbnQgaW4gYW55IGF2YWlsYWJsZSBsYW5ndWFnZS5cbiAgICpcbiAgICogQHBhcmFtIGNsYXNzTmFtZSAtIFRoZSBjb21wb25lbnQgY2xhc3MgbmFtZVxuICAgKiBAcGFyYW0ga2V5IC0gVGhlIHRleHQga2V5XG4gICAqIEByZXR1cm5zIFRydWUgaWYgdGhlIGtleSBleGlzdHMgaW4gYW55IGxhbmd1YWdlXG4gICAqL1xuICBoYXNDb250ZW50KGNsYXNzTmFtZTogc3RyaW5nLCBrZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGNsYXNzQ29udGVudCA9IHRoaXMuY29udGVudFtjbGFzc05hbWVdO1xuICAgIGlmICghY2xhc3NDb250ZW50KSByZXR1cm4gZmFsc2U7XG5cbiAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyhjbGFzc0NvbnRlbnQuQ29udGVudCkuc29tZShcbiAgICAgIGxhbmdDb250ZW50ID0+IGxhbmdDb250ZW50ICYmIHR5cGVvZiBsYW5nQ29udGVudFtrZXldID09PSAnc3RyaW5nJ1xuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgYSBjb250ZW50IGtleSBleGlzdHMgZm9yIGEgY29tcG9uZW50IGluIGEgc3BlY2lmaWMgbGFuZ3VhZ2UuXG4gICAqXG4gICAqIEBwYXJhbSBjbGFzc05hbWUgLSBUaGUgY29tcG9uZW50IGNsYXNzIG5hbWVcbiAgICogQHBhcmFtIGtleSAtIFRoZSB0ZXh0IGtleVxuICAgKiBAcGFyYW0gbGFuZyAtIFRoZSBsYW5ndWFnZSB0byBjaGVjayAoZGVmYXVsdHMgdG8gY3VycmVudCBsYW5ndWFnZSlcbiAgICogQHJldHVybnMgVHJ1ZSBpZiB0aGUga2V5IGV4aXN0cyBpbiB0aGUgc3BlY2lmaWVkIGxhbmd1YWdlXG4gICAqL1xuICBoYXNDb250ZW50SW5MYW5ndWFnZShjbGFzc05hbWU6IHN0cmluZywga2V5OiBzdHJpbmcsIGxhbmc/OiBMYW5nT3B0aW9uKTogYm9vbGVhbiB7XG4gICAgY29uc3QgdGFyZ2V0TGFuZyA9IGxhbmcgfHwgdGhpcy5jdXJyZW50TGFuZztcbiAgICBjb25zdCBjbGFzc0NvbnRlbnQgPSB0aGlzLmNvbnRlbnRbY2xhc3NOYW1lXT8uQ29udGVudFt0YXJnZXRMYW5nXTtcbiAgICByZXR1cm4gY2xhc3NDb250ZW50ICYmIHR5cGVvZiBjbGFzc0NvbnRlbnRba2V5XSA9PT0gJ3N0cmluZyc7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGF2YWlsYWJsZSBsYW5ndWFnZXMgZm9yIGEgc3BlY2lmaWMgY29tcG9uZW50LlxuICAgKlxuICAgKiBAcGFyYW0gY2xhc3NOYW1lIC0gVGhlIGNvbXBvbmVudCBjbGFzcyBuYW1lXG4gICAqIEByZXR1cm5zIEFycmF5IG9mIGxhbmd1YWdlIGNvZGVzIGF2YWlsYWJsZSBmb3IgdGhlIGNvbXBvbmVudFxuICAgKi9cbiAgZ2V0QXZhaWxhYmxlTGFuZ3VhZ2VzRm9yQ29tcG9uZW50KGNsYXNzTmFtZTogc3RyaW5nKTogTGFuZ09wdGlvbltdIHtcbiAgICBjb25zdCBjbGFzc0NvbnRlbnQgPSB0aGlzLmNvbnRlbnRbY2xhc3NOYW1lXTtcbiAgICBpZiAoIWNsYXNzQ29udGVudCkgcmV0dXJuIFtdO1xuXG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKGNsYXNzQ29udGVudC5Db250ZW50KS5maWx0ZXIoXG4gICAgICBsYW5nID0+IGNsYXNzQ29udGVudC5Db250ZW50W2xhbmddICYmIE9iamVjdC5rZXlzKGNsYXNzQ29udGVudC5Db250ZW50W2xhbmddKS5sZW5ndGggPiAwXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgbWlzc2luZyBjb250ZW50IGtleXMgZm9yIGEgY29tcG9uZW50IGluIGEgc3BlY2lmaWMgbGFuZ3VhZ2UuXG4gICAqIFVzZWZ1bCBmb3IgaWRlbnRpZnlpbmcgaW5jb21wbGV0ZSB0cmFuc2xhdGlvbnMuXG4gICAqXG4gICAqIEBwYXJhbSBjbGFzc05hbWUgLSBUaGUgY29tcG9uZW50IGNsYXNzIG5hbWVcbiAgICogQHBhcmFtIGxhbmcgLSBUaGUgbGFuZ3VhZ2UgdG8gY2hlY2tcbiAgICogQHBhcmFtIHJlZmVyZW5jZUxhbmcgLSBUaGUgcmVmZXJlbmNlIGxhbmd1YWdlIHRvIGNvbXBhcmUgYWdhaW5zdCAoZGVmYXVsdHMgdG8gZGVmYXVsdCBsYW5ndWFnZSlcbiAgICogQHJldHVybnMgQXJyYXkgb2YgbWlzc2luZyBrZXlzXG4gICAqL1xuICBnZXRNaXNzaW5nQ29udGVudEtleXMoY2xhc3NOYW1lOiBzdHJpbmcsIGxhbmc6IExhbmdPcHRpb24sIHJlZmVyZW5jZUxhbmc/OiBMYW5nT3B0aW9uKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IHJlZkxhbmcgPSByZWZlcmVuY2VMYW5nIHx8IHRoaXMuZGVmYXVsdExhbmc7XG4gICAgY29uc3QgY2xhc3NDb250ZW50ID0gdGhpcy5jb250ZW50W2NsYXNzTmFtZV07XG5cbiAgICBpZiAoIWNsYXNzQ29udGVudCkgcmV0dXJuIFtdO1xuXG4gICAgY29uc3QgcmVmZXJlbmNlQ29udGVudCA9IGNsYXNzQ29udGVudC5Db250ZW50W3JlZkxhbmddIHx8IHt9O1xuICAgIGNvbnN0IHRhcmdldENvbnRlbnQgPSBjbGFzc0NvbnRlbnQuQ29udGVudFtsYW5nXSB8fCB7fTtcblxuICAgIHJldHVybiBPYmplY3Qua2V5cyhyZWZlcmVuY2VDb250ZW50KS5maWx0ZXIoXG4gICAgICBrZXkgPT4gIXRhcmdldENvbnRlbnRba2V5XSB8fCB0eXBlb2YgdGFyZ2V0Q29udGVudFtrZXldICE9PSAnc3RyaW5nJ1xuICAgICk7XG4gIH1cblxuICAvLyBMZWdhY3kgZ2V0dGVycy9zZXR0ZXJzIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5XG4gIGdldCBMYW5nKCk6IExhbmdPcHRpb24ge1xuICAgIHJldHVybiB0aGlzLmN1cnJlbnRMYW5nO1xuICB9XG5cbiAgc2V0IExhbmcobGFuZzogTGFuZ09wdGlvbikge1xuICAgIHRoaXMuc2V0TGFuZyhsYW5nKTtcbiAgfVxufVxuIl19
334
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFuZy1wcm92aWRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGVjaC1jb21wb25lbnRzL3NyYy9saWIvc2VydmljZXMvbGFuZy1wcm92aWRlci9sYW5nLXByb3ZpZGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGVBQWUsRUFBYyxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNGLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQWlCLG9CQUFvQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRS9ELE9BQU8sRUFBRSxTQUFTLEVBQTRCLE1BQU0sU0FBUyxDQUFDOztBQUU5RDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXlCRztBQUlILE1BQU0sT0FBTyxXQUFXO0lBUXRCLFlBQTBDLE1BQXFCO1FBTHZELHVCQUFrQixHQUFpQixFQUFFLENBQUM7UUFHdEMsMkJBQXNCLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQztRQUdqRCxPQUFPLENBQUMsR0FBRyxDQUFDLCtCQUErQixFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztRQUM5QixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUVyQiwwQ0FBMEM7UUFDMUMsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7UUFFaEMsNEVBQTRFO1FBQzVFLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7UUFFbkQsNkNBQTZD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QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBU2MsTUFBTTsyQkFBQyxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgc2hhcmVSZXBsYXkgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IExBTkcgfSBmcm9tICcuLi8uLi9zaGFyZWQvY29uc3RhbnRzL3N0b3JhZ2UnO1xuaW1wb3J0IHsgTG9jYWxTdG9yYWdlU2VydmljZSB9IGZyb20gJy4uL2xvY2FsLXN0b3JhZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBWYWx0ZWNoQ29uZmlnLCBWYWx0ZWNoQ29uZmlnU2VydmljZSB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IFByb3ZpZGVyIH0gZnJvbSAnLi9jb250ZW50JztcbmltcG9ydCB7IExBTkdVQUdFUywgTGFuZ09wdGlvbiwgTGFuZ3VhZ2VUZXh0IH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogTGFuZ1NlcnZpY2UgLSBSZWFjdGl2ZSBsYW5ndWFnZSBhbmQgY29udGVudCBtYW5hZ2VtZW50IHNlcnZpY2UuXG4gKlxuICogVGhpcyBzZXJ2aWNlIHByb3ZpZGVzIHJlYWN0aXZlIGNvbnRlbnQgbWFuYWdlbWVudCB3aXRoIE9ic2VydmFibGUtYmFzZWQgbGFuZ3VhZ2Ugc3dpdGNoaW5nLlxuICogQ29tcG9uZW50cyBjYW4gc3Vic2NyaWJlIHRvIGNvbnRlbnQgY2hhbmdlcyBhbmQgYXV0b21hdGljYWxseSB1cGRhdGUgd2hlbiB0aGUgbGFuZ3VhZ2UgY2hhbmdlcy5cbiAqXG4gKiBUaGUgc2VydmljZSBhdXRvbWF0aWNhbGx5IGRldGVjdHMgYXZhaWxhYmxlIGxhbmd1YWdlcyBmcm9tIHRoZSBjb250ZW50IGNvbmZpZ3VyYXRpb25cbiAqIGFuZCBwcm92aWRlcyBpbnRlbGxpZ2VudCBmYWxsYmFja3Mgd2l0aCBjb25zb2xlIHdhcm5pbmdzIGZvciBtaXNzaW5nIHRyYW5zbGF0aW9ucy5cbiAqXG4gKiBAZXhhbXBsZSBCYXNpYyB1c2FnZTpcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0cnVjdG9yKHByaXZhdGUgbGFuZ1NlcnZpY2U6IExhbmdTZXJ2aWNlKSB7fVxuICpcbiAqIC8vIEdldCBjdXJyZW50IGxhbmd1YWdlXG4gKiBjb25zdCBjdXJyZW50TGFuZyA9IHRoaXMubGFuZ1NlcnZpY2UuY3VycmVudExhbmc7XG4gKlxuICogLy8gU3Vic2NyaWJlIHRvIGxhbmd1YWdlIGNoYW5nZXNcbiAqIHRoaXMubGFuZ1NlcnZpY2UuY3VycmVudExhbmckLnN1YnNjcmliZShsYW5nID0+IGNvbnNvbGUubG9nKCdMYW5ndWFnZSBjaGFuZ2VkOicsIGxhbmcpKTtcbiAqXG4gKiAvLyBHZXQgc3RhdGljIHRleHRcbiAqIGNvbnN0IHRleHQgPSB0aGlzLmxhbmdTZXJ2aWNlLmdldFRleHQoJ0NvbXBvbmVudE5hbWUnLCAndGV4dEtleScpO1xuICpcbiAqIC8vIEdldCByZWFjdGl2ZSB0ZXh0XG4gKiBjb25zdCB0ZXh0JCA9IHRoaXMubGFuZ1NlcnZpY2UuZ2V0Q29udGVudCgnQ29tcG9uZW50TmFtZScsICd0ZXh0S2V5Jyk7XG4gKiBgYGBcbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIExhbmdTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBjb250ZW50OiBQcm92aWRlcjtcbiAgcHJpdmF0ZSBkZWZhdWx0TGFuZzogTGFuZ09wdGlvbjtcbiAgcHJpdmF0ZSBhdmFpbGFibGVMYW5ndWFnZXM6IExhbmdPcHRpb25bXSA9IFtdO1xuICBwcml2YXRlIHNlbGVjdGVkTGFuZzogQmVoYXZpb3JTdWJqZWN0PExhbmdPcHRpb24+O1xuICBwcml2YXRlIGNvbmZpZzogVmFsdGVjaENvbmZpZztcbiAgcHJpdmF0ZSB3YXJuZWRNaXNzaW5nTGFuZ3VhZ2VzID0gbmV3IFNldDxzdHJpbmc+KCk7XG5cbiAgY29uc3RydWN0b3IoQEluamVjdChWYWx0ZWNoQ29uZmlnU2VydmljZSkgY29uZmlnOiBWYWx0ZWNoQ29uZmlnKSB7XG4gICAgY29uc29sZS5sb2coJ0xhbmdTZXJ2aWNlOiBJbmplY3RlZCBjb25maWc6JywgY29uZmlnKTtcbiAgICB0aGlzLmNvbnRlbnQgPSBjb25maWcuY29udGVudDtcbiAgICB0aGlzLmNvbmZpZyA9IGNvbmZpZztcblxuICAgIC8vIERldGVjdCBhdmFpbGFibGUgbGFuZ3VhZ2VzIGZyb20gY29udGVudFxuICAgIHRoaXMuZGV0ZWN0QXZhaWxhYmxlTGFuZ3VhZ2VzKCk7XG5cbiAgICAvLyBTZXQgZGVmYXVsdCBsYW5ndWFnZSAocHJlZmVyIFNwYW5pc2gsIHRoZW4gRW5nbGlzaCwgdGhlbiBmaXJzdCBhdmFpbGFibGUpXG4gICAgdGhpcy5kZWZhdWx0TGFuZyA9IHRoaXMuZGV0ZXJtaW5lRGVmYXVsdExhbmd1YWdlKCk7XG5cbiAgICAvLyBJbml0aWFsaXplIHdpdGggc3RvcmVkIGxhbmd1YWdlIG9yIGRlZmF1bHRcbiAgICBjb25zdCBjdXJyZW50ID0gTG9jYWxTdG9yYWdlU2VydmljZS5nZXQ8TGFuZ09wdGlvbj4oTEFORyk7XG4gICAgY29uc3QgaW5pdGlhbExhbmcgPSB0aGlzLnZhbGlkYXRlTGFuZ3VhZ2UoY3VycmVudCkgfHwgdGhpcy5kZWZhdWx0TGFuZztcblxuICAgIHRoaXMuc2VsZWN0ZWRMYW5nID0gbmV3IEJlaGF2aW9yU3ViamVjdDxMYW5nT3B0aW9uPihpbml0aWFsTGFuZyk7XG5cbiAgICBjb25zb2xlLmxvZygnTGFuZ1NlcnZpY2U6IEluaXRpYWxpemVkIHdpdGggbGFuZ3VhZ2VzOicsIHtcbiAgICAgIGF2YWlsYWJsZTogdGhpcy5hdmFpbGFibGVMYW5ndWFnZXMsXG4gICAgICBkZWZhdWx0OiB0aGlzLmRlZmF1bHRMYW5nLFxuICAgICAgY3VycmVudDogaW5pdGlhbExhbmcsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogRGV0ZWN0IGF2YWlsYWJsZSBsYW5ndWFnZXMgZnJvbSB0aGUgY29udGVudCBjb25maWd1cmF0aW9uLlxuICAgKiBTY2FucyBhbGwgY29tcG9uZW50IGNvbnRlbnQgdG8gZmluZCB3aGljaCBsYW5ndWFnZXMgYXJlIGFjdHVhbGx5IGNvbmZpZ3VyZWQuXG4gICAqL1xuICBwcml2YXRlIGRldGVjdEF2YWlsYWJsZUxhbmd1YWdlcygpOiB2b2lkIHtcbiAgICBjb25zdCBsYW5ndWFnZVNldCA9IG5ldyBTZXQ8TGFuZ09wdGlvbj4oKTtcblxuICAgIE9iamVjdC52YWx1ZXModGhpcy5jb250ZW50KS5mb3JFYWNoKGNvbXBvbmVudENvbnRlbnQgPT4ge1xuICAgICAgaWYgKGNvbXBvbmVudENvbnRlbnQ/LkNvbnRlbnQpIHtcbiAgICAgICAgT2JqZWN0LmtleXMoY29tcG9uZW50Q29udGVudC5Db250ZW50KS5mb3JFYWNoKGxhbmcgPT4ge1xuICAgICAgICAgIGxhbmd1YWdlU2V0LmFkZChsYW5nKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLmF2YWlsYWJsZUxhbmd1YWdlcyA9IEFycmF5LmZyb20obGFuZ3VhZ2VTZXQpLnNvcnQoKTtcblxuICAgIGlmICh0aGlzLmF2YWlsYWJsZUxhbmd1YWdlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIGNvbnNvbGUud2FybignTGFuZ1NlcnZpY2U6IE5vIGxhbmd1YWdlcyBkZXRlY3RlZCBpbiBjb250ZW50IGNvbmZpZ3VyYXRpb24hJyk7XG4gICAgICB0aGlzLmF2YWlsYWJsZUxhbmd1YWdlcyA9IFtMQU5HVUFHRVMuRVNdOyAvLyBGYWxsYmFja1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmUgdGhlIGJlc3QgZGVmYXVsdCBsYW5ndWFnZSBiYXNlZCBvbiBhdmFpbGFibGUgY29udGVudC5cbiAgICovXG4gIHByaXZhdGUgZGV0ZXJtaW5lRGVmYXVsdExhbmd1YWdlKCk6IExhbmdPcHRpb24ge1xuICAgIC8vIFByZWZlcmVuY2Ugb3JkZXI6IFNwYW5pc2gsIEVuZ2xpc2gsIHRoZW4gZmlyc3QgYXZhaWxhYmxlXG4gICAgY29uc3QgcHJlZmVycmVkT3JkZXIgPSBbTEFOR1VBR0VTLkVTLCBMQU5HVUFHRVMuRU5dO1xuXG4gICAgZm9yIChjb25zdCBwcmVmZXJyZWQgb2YgcHJlZmVycmVkT3JkZXIpIHtcbiAgICAgIGlmICh0aGlzLmF2YWlsYWJsZUxhbmd1YWdlcy5pbmNsdWRlcyhwcmVmZXJyZWQpKSB7XG4gICAgICAgIHJldHVybiBwcmVmZXJyZWQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuYXZhaWxhYmxlTGFuZ3VhZ2VzWzBdO1xuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlIGlmIGEgbGFuZ3VhZ2UgaXMgYXZhaWxhYmxlIGluIHRoZSBjb250ZW50LlxuICAgKi9cbiAgcHJpdmF0ZSB2YWxpZGF0ZUxhbmd1YWdlKGxhbmc6IExhbmdPcHRpb24gfCBudWxsKTogTGFuZ09wdGlvbiB8IG51bGwge1xuICAgIGlmICghbGFuZykgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIHRoaXMuYXZhaWxhYmxlTGFuZ3VhZ2VzLmluY2x1ZGVzKGxhbmcpID8gbGFuZyA6IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBiZXN0IGF2YWlsYWJsZSBsYW5ndWFnZSBmb3IgYSBjb21wb25lbnQgYW5kIGtleS5cbiAgICogUHJvdmlkZXMgaW50ZWxsaWdlbnQgZmFsbGJhY2sgd2l0aCB3YXJuaW5ncy5cbiAgICovXG4gIHByaXZhdGUgZ2V0QmVzdEF2YWlsYWJsZUNvbnRlbnQoXG4gICAgY2xhc3NOYW1lOiBzdHJpbmcsXG4gICAga2V5OiBzdHJpbmcsXG4gICAgcmVxdWVzdGVkTGFuZzogTGFuZ09wdGlvblxuICApOiB7XG4gICAgY29udGVudDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIGFjdHVhbExhbmc6IExhbmdPcHRpb247XG4gICAgc2hvdWxkV2FybjogYm9vbGVhbjtcbiAgfSB7XG4gICAgY29uc3QgY29tcG9uZW50Q29udGVudCA9IHRoaXMuY29udGVudFtjbGFzc05hbWVdO1xuXG4gICAgaWYgKCFjb21wb25lbnRDb250ZW50KSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBjb250ZW50OiB1bmRlZmluZWQsXG4gICAgICAgIGFjdHVhbExhbmc6IHJlcXVlc3RlZExhbmcsXG4gICAgICAgIHNob3VsZFdhcm46IGZhbHNlLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICAvLyBUcnkgcmVxdWVzdGVkIGxhbmd1YWdlIGZpcnN0XG4gICAgY29uc3QgcmVxdWVzdGVkQ29udGVudCA9IGNvbXBvbmVudENvbnRlbnQuQ29udGVudFtyZXF1ZXN0ZWRMYW5nXTtcbiAgICBpZiAocmVxdWVzdGVkQ29udGVudD8uW2tleV0pIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGNvbnRlbnQ6IHJlcXVlc3RlZENvbnRlbnRba2V5XSxcbiAgICAgICAgYWN0dWFsTGFuZzogcmVxdWVzdGVkTGFuZyxcbiAgICAgICAgc2hvdWxkV2FybjogZmFsc2UsXG4gICAgICB9O1xuICAgIH1cblxuICAgIC8vIExhbmd1YWdlIG5vdCBhdmFpbGFibGUsIHRyeSBmYWxsYmFja3NcbiAgICBjb25zdCB3YXJuaW5nS2V5ID0gYCR7Y2xhc3NOYW1lfS4ke2tleX0uJHtyZXF1ZXN0ZWRMYW5nfWA7XG4gICAgY29uc3Qgc2hvdWxkV2FybiA9ICF0aGlzLndhcm5lZE1pc3NpbmdMYW5ndWFnZXMuaGFzKHdhcm5pbmdLZXkpO1xuXG4gICAgaWYgKHNob3VsZFdhcm4pIHtcbiAgICAgIHRoaXMud2FybmVkTWlzc2luZ0xhbmd1YWdlcy5hZGQod2FybmluZ0tleSk7XG4gICAgfVxuXG4gICAgLy8gVHJ5IGRlZmF1bHQgbGFuZ3VhZ2VcbiAgICBpZiAocmVxdWVzdGVkTGFuZyAhPT0gdGhpcy5kZWZhdWx0TGFuZykge1xuICAgICAgY29uc3QgZGVmYXVsdENvbnRlbnQgPSBjb21wb25lbnRDb250ZW50LkNvbnRlbnRbdGhpcy5kZWZhdWx0TGFuZ107XG4gICAgICBpZiAoZGVmYXVsdENvbnRlbnQ/LltrZXldKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgY29udGVudDogZGVmYXVsdENvbnRlbnRba2V5XSxcbiAgICAgICAgICBhY3R1YWxMYW5nOiB0aGlzLmRlZmF1bHRMYW5nLFxuICAgICAgICAgIHNob3VsZFdhcm4sXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gVHJ5IGZpcnN0IGF2YWlsYWJsZSBsYW5ndWFnZVxuICAgIGZvciAoY29uc3QgYXZhaWxhYmxlTGFuZyBvZiB0aGlzLmF2YWlsYWJsZUxhbmd1YWdlcykge1xuICAgICAgY29uc3QgYXZhaWxhYmxlQ29udGVudCA9IGNvbXBvbmVudENvbnRlbnQuQ29udGVudFthdmFpbGFibGVMYW5nXTtcbiAgICAgIGlmIChhdmFpbGFibGVDb250ZW50Py5ba2V5XSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGNvbnRlbnQ6IGF2YWlsYWJsZUNvbnRlbnRba2V5XSxcbiAgICAgICAgICBhY3R1YWxMYW5nOiBhdmFpbGFibGVMYW5nLFxuICAgICAgICAgIHNob3VsZFdhcm4sXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbnRlbnQ6IHVuZGVmaW5lZCxcbiAgICAgIGFjdHVhbExhbmc6IHJlcXVlc3RlZExhbmcsXG4gICAgICBzaG91bGRXYXJuLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSBjdXJyZW50IGxhbmd1YWdlIHdoZW5ldmVyIGl0IGNoYW5nZXMuXG4gICAqIFVzZSB0aGlzIHRvIHN1YnNjcmliZSB0byBsYW5ndWFnZSBjaGFuZ2VzIGluIGNvbXBvbmVudHMuXG4gICAqL1xuICBnZXQgY3VycmVudExhbmckKCk6IE9ic2VydmFibGU8TGFuZ09wdGlvbj4ge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkTGFuZy5hc09ic2VydmFibGUoKS5waXBlKFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgIHNoYXJlUmVwbGF5KDEpIC8vIEVuc3VyZSBuZXcgc3Vic2NyaWJlcnMgZ2V0IHRoZSBjdXJyZW50IHZhbHVlXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGN1cnJlbnQgbGFuZ3VhZ2Ugc3luY2hyb25vdXNseS5cbiAgICovXG4gIGdldCBjdXJyZW50TGFuZygpOiBMYW5nT3B0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZExhbmcudmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGFycmF5IG9mIGF2YWlsYWJsZSBsYW5ndWFnZXMgZGV0ZWN0ZWQgZnJvbSBjb250ZW50LlxuICAgKi9cbiAgZ2V0IGF2YWlsYWJsZUxhbmdzKCk6IExhbmdPcHRpb25bXSB7XG4gICAgcmV0dXJuIFsuLi50aGlzLmF2YWlsYWJsZUxhbmd1YWdlc107XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBkZWZhdWx0IGxhbmd1YWdlLlxuICAgKi9cbiAgZ2V0IGRlZmF1bHRMYW5ndWFnZSgpOiBMYW5nT3B0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5kZWZhdWx0TGFuZztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIGN1cnJlbnQgbGFuZ3VhZ2UgYW5kIHBlcnNpc3QgaXQgdG8gbG9jYWxTdG9yYWdlLlxuICAgKiBUaGlzIHdpbGwgdHJpZ2dlciB1cGRhdGVzIGluIGFsbCByZWFjdGl2ZSBjb250ZW50IHN1YnNjcmlwdGlvbnMuXG4gICAqXG4gICAqIFZhbGlkYXRlcyB0aGF0IHRoZSBsYW5ndWFnZSBpcyBhdmFpbGFibGUgYW5kIHdhcm5zIGlmIG5vdC5cbiAgICpcbiAgICogQHBhcmFtIGxhbmcgLSBUaGUgbGFuZ3VhZ2UgdG8gc2V0XG4gICAqL1xuICBzZXRMYW5nKGxhbmc6IExhbmdPcHRpb24pOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuYXZhaWxhYmxlTGFuZ3VhZ2VzLmluY2x1ZGVzKGxhbmcpKSB7XG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgIGBMYW5nU2VydmljZTogTGFuZ3VhZ2UgXCIke2xhbmd9XCIgaXMgbm90IGF2YWlsYWJsZS4gQXZhaWxhYmxlIGxhbmd1YWdlczpgLFxuICAgICAgICB0aGlzLmF2YWlsYWJsZUxhbmd1YWdlc1xuICAgICAgKTtcbiAgICAgIGNvbnNvbGUud2FybihgTGFuZ1NlcnZpY2U6IEZhbGxpbmcgYmFjayB0byBkZWZhdWx0IGxhbmd1YWdlIFwiJHt0aGlzLmRlZmF1bHRMYW5nfVwiYCk7XG4gICAgICBsYW5nID0gdGhpcy5kZWZhdWx0TGFuZztcbiAgICB9XG5cbiAgICB0aGlzLnNlbGVjdGVkTGFuZy5uZXh0KGxhbmcpO1xuICAgIExvY2FsU3RvcmFnZVNlcnZpY2Uuc2V0PExhbmdPcHRpb24+KExBTkcsIGxhbmcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBjb250ZW50IGZvciBhIGNvbXBvbmVudCBjbGFzcyBhbmQga2V5IChsZWdhY3kgbWV0aG9kKS5cbiAgICpcbiAgICogQGRlcHJlY2F0ZWQgVXNlIGdldFRleHQoKSBvciBnZXRDb250ZW50KCkgZm9yIGJldHRlciB0eXBlIHNhZmV0eVxuICAgKi9cbiAgVGV4dChjbGFzc05hbWU6IHN0cmluZyk6IExhbmd1YWdlVGV4dCB7XG4gICAgY29uc3QgY29tcG9uZW50Q29udGVudCA9IHRoaXMuY29udGVudFtjbGFzc05hbWVdO1xuICAgIHJldHVybiBjb21wb25lbnRDb250ZW50Py5Db250ZW50W3RoaXMuc2VsZWN0ZWRMYW5nLnZhbHVlXSB8fCB7fTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYSBzaW5nbGUgY29udGVudCBzdHJpbmcgc3luY2hyb25vdXNseSBmb3IgdGhlIGN1cnJlbnQgbGFuZ3VhZ2UuXG4gICAqIFByb3ZpZGVzIGludGVsbGlnZW50IGZhbGxiYWNrIHdpdGggd2FybmluZ3MgZm9yIG1pc3NpbmcgdHJhbnNsYXRpb25zLlxuICAgKlxuICAgKiBAcGFyYW0gY2xhc3NOYW1lIC0gVGhlIGNvbXBvbmVudCBjbGFzcyBuYW1lXG4gICAqIEBwYXJhbSBrZXkgLSBUaGUgdGV4dCBrZXlcbiAgICogQHBhcmFtIGZhbGxiYWNrIC0gT3B0aW9uYWwgZmFsbGJhY2sgdGV4dCBpZiBrZXkgaXMgbm90IGZvdW5kXG4gICAqIEByZXR1cm5zIFRoZSB0ZXh0IHN0cmluZyBvciBmYWxsYmFja1xuICAgKi9cbiAgZ2V0VGV4dChjbGFzc05hbWU6IHN0cmluZywga2V5OiBzdHJpbmcsIGZhbGxiYWNrPzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCByZXN1bHQgPSB0aGlzLmdldEJlc3RBdmFpbGFibGVDb250ZW50KGNsYXNzTmFtZSwga2V5LCB0aGlzLnNlbGVjdGVkTGFuZy52YWx1ZSk7XG5cbiAgICBpZiAocmVzdWx0LnNob3VsZFdhcm4gJiYgcmVzdWx0LmFjdHVhbExhbmcgIT09IHRoaXMuc2VsZWN0ZWRMYW5nLnZhbHVlKSB7XG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgIGBMYW5nU2VydmljZTogQ29udGVudCBcIiR7Y2xhc3NOYW1lfS4ke2tleX1cIiBub3QgYXZhaWxhYmxlIGluIFwiJHt0aGlzLnNlbGVjdGVkTGFuZy52YWx1ZX1cIi5gLFxuICAgICAgICBgVXNpbmcgXCIke3Jlc3VsdC5hY3R1YWxMYW5nfVwiIGluc3RlYWQuIEF2YWlsYWJsZSBsYW5ndWFnZXM6YCxcbiAgICAgICAgdGhpcy5hdmFpbGFibGVMYW5ndWFnZXNcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdC5jb250ZW50IHx8IGZhbGxiYWNrIHx8IGBbJHtjbGFzc05hbWV9LiR7a2V5fV1gO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBhIHJlYWN0aXZlIE9ic2VydmFibGUgZm9yIGEgc3BlY2lmaWMgdGV4dCBrZXkgdGhhdCB1cGRhdGVzIHdoZW4gbGFuZ3VhZ2UgY2hhbmdlcy5cbiAgICogVGhpcyBpcyB0aGUgcmVjb21tZW5kZWQgbWV0aG9kIGZvciBjb21wb25lbnRzIHRoYXQgbmVlZCByZWFjdGl2ZSBjb250ZW50LlxuICAgKiBQcm92aWRlcyBpbnRlbGxpZ2VudCBmYWxsYmFjayB3aXRoIHdhcm5pbmdzIGZvciBtaXNzaW5nIHRyYW5zbGF0aW9ucy5cbiAgICpcbiAgICogQHBhcmFtIGNsYXNzTmFtZSAtIFRoZSBjb21wb25lbnQgY2xhc3MgbmFtZVxuICAgKiBAcGFyYW0ga2V5IC0gVGhlIHRleHQga2V5XG4gICAqIEBwYXJhbSBmYWxsYmFjayAtIE9wdGlvbmFsIGZhbGxiYWNrIHRleHQgaWYga2V5IGlzIG5vdCBmb3VuZFxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHRleHQgc3RyaW5nIHdoZW5ldmVyIGxhbmd1YWdlIGNoYW5nZXNcbiAgICovXG4gIGdldENvbnRlbnQoY2xhc3NOYW1lOiBzdHJpbmcsIGtleTogc3RyaW5nLCBmYWxsYmFjaz86IHN0cmluZyk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuY3VycmVudExhbmckLnBpcGUoXG4gICAgICBtYXAobGFuZyA9PiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuZ2V0QmVzdEF2YWlsYWJsZUNvbnRlbnQoY2xhc3NOYW1lLCBrZXksIGxhbmcpO1xuXG4gICAgICAgIGlmIChyZXN1bHQuc2hvdWxkV2FybiAmJiByZXN1bHQuYWN0dWFsTGFuZyAhPT0gbGFuZykge1xuICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgIGBMYW5nU2VydmljZTogQ29udGVudCBcIiR7Y2xhc3NOYW1lfS4ke2tleX1cIiBub3QgYXZhaWxhYmxlIGluIFwiJHtsYW5nfVwiLmAsXG4gICAgICAgICAgICBgVXNpbmcgXCIke3Jlc3VsdC5hY3R1YWxMYW5nfVwiIGluc3RlYWQuIEF2YWlsYWJsZSBsYW5ndWFnZXM6YCxcbiAgICAgICAgICAgIHRoaXMuYXZhaWxhYmxlTGFuZ3VhZ2VzXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZXN1bHQuY29udGVudCB8fCBmYWxsYmFjayB8fCBgWyR7Y2xhc3NOYW1lfS4ke2tleX1dYDtcbiAgICAgIH0pLFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHJlYWN0aXZlIGNvbnRlbnQgZm9yIG11bHRpcGxlIGtleXMgYXQgb25jZS5cbiAgICogUHJvdmlkZXMgaW50ZWxsaWdlbnQgZmFsbGJhY2sgd2l0aCB3YXJuaW5ncyBmb3IgbWlzc2luZyB0cmFuc2xhdGlvbnMuXG4gICAqXG4gICAqIEBwYXJhbSBjbGFzc05hbWUgLSBUaGUgY29tcG9uZW50IGNsYXNzIG5hbWVcbiAgICogQHBhcmFtIGtleXMgLSBBcnJheSBvZiB0ZXh0IGtleXMgdG8gcmV0cmlldmVcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIGFuIG9iamVjdCB3aXRoIGFsbCByZXF1ZXN0ZWQga2V5c1xuICAgKi9cbiAgZ2V0TXVsdGlwbGVDb250ZW50KGNsYXNzTmFtZTogc3RyaW5nLCBrZXlzOiBzdHJpbmdbXSk6IE9ic2VydmFibGU8UmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuICAgIHJldHVybiB0aGlzLmN1cnJlbnRMYW5nJC5waXBlKFxuICAgICAgbWFwKGxhbmcgPT4ge1xuICAgICAgICBjb25zdCByZXN1bHQ6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcblxuICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHtcbiAgICAgICAgICBjb25zdCBjb250ZW50UmVzdWx0ID0gdGhpcy5nZXRCZXN0QXZhaWxhYmxlQ29udGVudChjbGFzc05hbWUsIGtleSwgbGFuZyk7XG5cbiAgICAgICAgICBpZiAoY29udGVudFJlc3VsdC5zaG91bGRXYXJuICYmIGNvbnRlbnRSZXN1bHQuYWN0dWFsTGFuZyAhPT0gbGFuZykge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgICBgTGFuZ1NlcnZpY2U6IENvbnRlbnQgXCIke2NsYXNzTmFtZX0uJHtrZXl9XCIgbm90IGF2YWlsYWJsZSBpbiBcIiR7bGFuZ31cIi5gLFxuICAgICAgICAgICAgICBgVXNpbmcgXCIke2NvbnRlbnRSZXN1bHQuYWN0dWFsTGFuZ31cIiBpbnN0ZWFkLmBcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmVzdWx0W2tleV0gPSBjb250ZW50UmVzdWx0LmNvbnRlbnQgfHwgYFske2NsYXNzTmFtZX0uJHtrZXl9XWA7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9KSxcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKChwcmV2LCBjdXJyKSA9PiBKU09OLnN0cmluZ2lmeShwcmV2KSA9PT0gSlNPTi5zdHJpbmdpZnkoY3VycikpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBhIGNvbnRlbnQga2V5IGV4aXN0cyBmb3IgYSBjb21wb25lbnQgaW4gYW55IGF2YWlsYWJsZSBsYW5ndWFnZS5cbiAgICpcbiAgICogQHBhcmFtIGNsYXNzTmFtZSAtIFRoZSBjb21wb25lbnQgY2xhc3MgbmFtZVxuICAgKiBAcGFyYW0ga2V5IC0gVGhlIHRleHQga2V5XG4gICAqIEByZXR1cm5zIFRydWUgaWYgdGhlIGtleSBleGlzdHMgaW4gYW55IGxhbmd1YWdlXG4gICAqL1xuICBoYXNDb250ZW50KGNsYXNzTmFtZTogc3RyaW5nLCBrZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGNsYXNzQ29udGVudCA9IHRoaXMuY29udGVudFtjbGFzc05hbWVdO1xuICAgIGlmICghY2xhc3NDb250ZW50KSByZXR1cm4gZmFsc2U7XG5cbiAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyhjbGFzc0NvbnRlbnQuQ29udGVudCkuc29tZShcbiAgICAgIGxhbmdDb250ZW50ID0+IGxhbmdDb250ZW50ICYmIHR5cGVvZiBsYW5nQ29udGVudFtrZXldID09PSAnc3RyaW5nJ1xuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgYSBjb250ZW50IGtleSBleGlzdHMgZm9yIGEgY29tcG9uZW50IGluIGEgc3BlY2lmaWMgbGFuZ3VhZ2UuXG4gICAqXG4gICAqIEBwYXJhbSBjbGFzc05hbWUgLSBUaGUgY29tcG9uZW50IGNsYXNzIG5hbWVcbiAgICogQHBhcmFtIGtleSAtIFRoZSB0ZXh0IGtleVxuICAgKiBAcGFyYW0gbGFuZyAtIFRoZSBsYW5ndWFnZSB0byBjaGVjayAoZGVmYXVsdHMgdG8gY3VycmVudCBsYW5ndWFnZSlcbiAgICogQHJldHVybnMgVHJ1ZSBpZiB0aGUga2V5IGV4aXN0cyBpbiB0aGUgc3BlY2lmaWVkIGxhbmd1YWdlXG4gICAqL1xuICBoYXNDb250ZW50SW5MYW5ndWFnZShjbGFzc05hbWU6IHN0cmluZywga2V5OiBzdHJpbmcsIGxhbmc/OiBMYW5nT3B0aW9uKTogYm9vbGVhbiB7XG4gICAgY29uc3QgdGFyZ2V0TGFuZyA9IGxhbmcgfHwgdGhpcy5jdXJyZW50TGFuZztcbiAgICBjb25zdCBjbGFzc0NvbnRlbnQgPSB0aGlzLmNvbnRlbnRbY2xhc3NOYW1lXT8uQ29udGVudFt0YXJnZXRMYW5nXTtcbiAgICByZXR1cm4gY2xhc3NDb250ZW50ICYmIHR5cGVvZiBjbGFzc0NvbnRlbnRba2V5XSA9PT0gJ3N0cmluZyc7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGF2YWlsYWJsZSBsYW5ndWFnZXMgZm9yIGEgc3BlY2lmaWMgY29tcG9uZW50LlxuICAgKlxuICAgKiBAcGFyYW0gY2xhc3NOYW1lIC0gVGhlIGNvbXBvbmVudCBjbGFzcyBuYW1lXG4gICAqIEByZXR1cm5zIEFycmF5IG9mIGxhbmd1YWdlIGNvZGVzIGF2YWlsYWJsZSBmb3IgdGhlIGNvbXBvbmVudFxuICAgKi9cbiAgZ2V0QXZhaWxhYmxlTGFuZ3VhZ2VzRm9yQ29tcG9uZW50KGNsYXNzTmFtZTogc3RyaW5nKTogTGFuZ09wdGlvbltdIHtcbiAgICBjb25zdCBjbGFzc0NvbnRlbnQgPSB0aGlzLmNvbnRlbnRbY2xhc3NOYW1lXTtcbiAgICBpZiAoIWNsYXNzQ29udGVudCkgcmV0dXJuIFtdO1xuXG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKGNsYXNzQ29udGVudC5Db250ZW50KS5maWx0ZXIoXG4gICAgICBsYW5nID0+IGNsYXNzQ29udGVudC5Db250ZW50W2xhbmddICYmIE9iamVjdC5rZXlzKGNsYXNzQ29udGVudC5Db250ZW50W2xhbmddKS5sZW5ndGggPiAwXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgbWlzc2luZyBjb250ZW50IGtleXMgZm9yIGEgY29tcG9uZW50IGluIGEgc3BlY2lmaWMgbGFuZ3VhZ2UuXG4gICAqIFVzZWZ1bCBmb3IgaWRlbnRpZnlpbmcgaW5jb21wbGV0ZSB0cmFuc2xhdGlvbnMuXG4gICAqXG4gICAqIEBwYXJhbSBjbGFzc05hbWUgLSBUaGUgY29tcG9uZW50IGNsYXNzIG5hbWVcbiAgICogQHBhcmFtIGxhbmcgLSBUaGUgbGFuZ3VhZ2UgdG8gY2hlY2tcbiAgICogQHBhcmFtIHJlZmVyZW5jZUxhbmcgLSBUaGUgcmVmZXJlbmNlIGxhbmd1YWdlIHRvIGNvbXBhcmUgYWdhaW5zdCAoZGVmYXVsdHMgdG8gZGVmYXVsdCBsYW5ndWFnZSlcbiAgICogQHJldHVybnMgQXJyYXkgb2YgbWlzc2luZyBrZXlzXG4gICAqL1xuICBnZXRNaXNzaW5nQ29udGVudEtleXMoY2xhc3NOYW1lOiBzdHJpbmcsIGxhbmc6IExhbmdPcHRpb24sIHJlZmVyZW5jZUxhbmc/OiBMYW5nT3B0aW9uKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IHJlZkxhbmcgPSByZWZlcmVuY2VMYW5nIHx8IHRoaXMuZGVmYXVsdExhbmc7XG4gICAgY29uc3QgY2xhc3NDb250ZW50ID0gdGhpcy5jb250ZW50W2NsYXNzTmFtZV07XG5cbiAgICBpZiAoIWNsYXNzQ29udGVudCkgcmV0dXJuIFtdO1xuXG4gICAgY29uc3QgcmVmZXJlbmNlQ29udGVudCA9IGNsYXNzQ29udGVudC5Db250ZW50W3JlZkxhbmddIHx8IHt9O1xuICAgIGNvbnN0IHRhcmdldENvbnRlbnQgPSBjbGFzc0NvbnRlbnQuQ29udGVudFtsYW5nXSB8fCB7fTtcblxuICAgIHJldHVybiBPYmplY3Qua2V5cyhyZWZlcmVuY2VDb250ZW50KS5maWx0ZXIoXG4gICAgICBrZXkgPT4gIXRhcmdldENvbnRlbnRba2V5XSB8fCB0eXBlb2YgdGFyZ2V0Q29udGVudFtrZXldICE9PSAnc3RyaW5nJ1xuICAgICk7XG4gIH1cblxuICAvLyBMZWdhY3kgZ2V0dGVycy9zZXR0ZXJzIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5XG4gIGdldCBMYW5nKCk6IExhbmdPcHRpb24ge1xuICAgIHJldHVybiB0aGlzLmN1cnJlbnRMYW5nO1xuICB9XG5cbiAgc2V0IExhbmcobGFuZzogTGFuZ09wdGlvbikge1xuICAgIHRoaXMuc2V0TGFuZyhsYW5nKTtcbiAgfVxufVxuIl19