ng-prime-tools 1.0.16 → 1.0.18
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.
- package/README.md +9 -0
- package/esm2022/lib/models/card-config.model.mjs +1 -1
- package/esm2022/lib/models/form-text-field.model.mjs +1 -1
- package/esm2022/lib/models/login-page-config.model.mjs +1 -1
- package/esm2022/lib/pt-card/pt-card.component.mjs +72 -12
- package/esm2022/lib/pt-login-page/pt-login-card/pt-login-card.component.mjs +147 -0
- package/esm2022/lib/pt-login-page/pt-login-page.component.mjs +35 -126
- package/esm2022/lib/pt-login-page/pt-login-page.module.mjs +7 -3
- package/esm2022/lib/pt-side-bar-menu/pt-side-bar-menu.component.mjs +10 -7
- package/esm2022/lib/pt-text-input/pt-text-input.component.mjs +3 -3
- package/fesm2022/ng-prime-tools.mjs +165 -52
- package/fesm2022/ng-prime-tools.mjs.map +1 -1
- package/lib/models/card-config.model.d.ts +4 -0
- package/lib/models/card-config.model.d.ts.map +1 -1
- package/lib/models/form-text-field.model.d.ts +1 -0
- package/lib/models/form-text-field.model.d.ts.map +1 -1
- package/lib/models/login-page-config.model.d.ts +5 -1
- package/lib/models/login-page-config.model.d.ts.map +1 -1
- package/lib/pt-card/pt-card.component.d.ts +29 -4
- package/lib/pt-card/pt-card.component.d.ts.map +1 -1
- package/lib/pt-login-page/pt-login-card/pt-login-card.component.d.ts +18 -0
- package/lib/pt-login-page/pt-login-card/pt-login-card.component.d.ts.map +1 -0
- package/lib/pt-login-page/pt-login-page.component.d.ts +5 -10
- package/lib/pt-login-page/pt-login-page.component.d.ts.map +1 -1
- package/lib/pt-login-page/pt-login-page.module.d.ts +2 -1
- package/lib/pt-login-page/pt-login-page.module.d.ts.map +1 -1
- package/lib/pt-side-bar-menu/pt-side-bar-menu.component.d.ts.map +1 -1
- package/lib/pt-text-input/pt-text-input.component.d.ts.map +1 -1
- package/package.json +1 -1
@@ -1,142 +1,51 @@
|
|
1
|
-
import { Component, Input, Output
|
2
|
-
import { Validators } from '@angular/forms';
|
3
|
-
import { FormInputTypeEnum } from '../enums';
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
4
2
|
import * as i0 from "@angular/core";
|
5
|
-
import * as i1 from "@angular/
|
6
|
-
import * as i2 from "
|
7
|
-
import * as i3 from "
|
8
|
-
import * as i4 from "../pt-card/pt-card.component";
|
9
|
-
import * as i5 from "../pt-button/pt-button.component";
|
3
|
+
import * as i1 from "@angular/common";
|
4
|
+
import * as i2 from "../pt-card/pt-card.component";
|
5
|
+
import * as i3 from "./pt-login-card/pt-login-card.component";
|
10
6
|
export class PTLoginPageComponent {
|
11
|
-
constructor(
|
12
|
-
this.fb = fb;
|
7
|
+
constructor() {
|
13
8
|
this.loginSubmit = new EventEmitter();
|
14
|
-
this.
|
15
|
-
|
9
|
+
this.defaultCardConfig = {
|
10
|
+
borderRadius: '0',
|
11
|
+
margin: '0',
|
12
|
+
width: '100%',
|
13
|
+
height: '100%',
|
14
|
+
noBorder: true,
|
15
|
+
alignContent: 'center',
|
16
|
+
alignBodyContent: 'center',
|
17
|
+
};
|
16
18
|
}
|
17
19
|
ngOnInit() {
|
18
|
-
this.
|
19
|
-
this.setupFormFields();
|
20
|
-
this.formGroup.patchValue({
|
21
|
-
username: this.loginPageConfig.login?.username || '',
|
22
|
-
password: this.loginPageConfig.login?.password || '',
|
23
|
-
});
|
24
|
-
this.setBackgroundImageStyle();
|
25
|
-
// Enable/Disable the button based on form validity
|
26
|
-
this.formGroup.statusChanges.subscribe((status) => {
|
27
|
-
this.loginPageConfig.buttonConfig.disabled = status !== 'VALID';
|
28
|
-
});
|
29
|
-
}
|
30
|
-
// Initialize default values for all fields in loginPageConfig if not set
|
31
|
-
initializeDefaults() {
|
32
|
-
// Initialize backgroundImage
|
33
|
-
this.loginPageConfig.backgroundImage = {
|
34
|
-
imageUrl: this.loginPageConfig.backgroundImage?.imageUrl || '',
|
35
|
-
transparencyPercentage: this.loginPageConfig.backgroundImage?.transparencyPercentage || '100',
|
36
|
-
...this.loginPageConfig.backgroundImage,
|
37
|
-
};
|
38
|
-
// Initialize title
|
39
|
-
this.loginPageConfig.title = {
|
40
|
-
text: this.loginPageConfig.title?.text || 'Login',
|
41
|
-
position: this.loginPageConfig.title?.position || 'center',
|
42
|
-
color: this.loginPageConfig.title?.color || '#333',
|
43
|
-
fontSize: this.loginPageConfig.title?.fontSize || '24px',
|
44
|
-
...this.loginPageConfig.title,
|
45
|
-
};
|
46
|
-
// Initialize logoUrl
|
47
|
-
this.loginPageConfig.logoUrl = {
|
48
|
-
altText: this.loginPageConfig.logoUrl?.altText || 'Logo',
|
49
|
-
imageUrl: this.loginPageConfig.logoUrl?.imageUrl || '',
|
50
|
-
width: this.loginPageConfig.logoUrl?.width || '100px',
|
51
|
-
height: this.loginPageConfig.logoUrl?.height || 'auto',
|
52
|
-
...this.loginPageConfig.logoUrl,
|
53
|
-
};
|
54
|
-
// Initialize footer
|
55
|
-
this.loginPageConfig.footer = {
|
56
|
-
version: this.loginPageConfig.footer?.version || 'V1.0',
|
57
|
-
copyright: this.loginPageConfig.footer?.copyright || 'Your Company © 2024',
|
58
|
-
...this.loginPageConfig.footer,
|
59
|
-
};
|
60
|
-
// Initialize login
|
61
|
-
this.loginPageConfig.login = {
|
62
|
-
username: this.loginPageConfig.login?.username || '',
|
63
|
-
password: this.loginPageConfig.login?.password || '',
|
64
|
-
errorMessage: this.loginPageConfig.login?.errorMessage || '',
|
65
|
-
emptyFieldsErrorMessage: this.loginPageConfig.login?.emptyFieldsErrorMessage ||
|
66
|
-
"Veuillez saisir votre nom d'utilisateur et votre mot de passe !",
|
67
|
-
...this.loginPageConfig.login,
|
68
|
-
};
|
69
|
-
// Initialize cardConfig
|
70
|
-
this.loginPageConfig.cardConfig = {
|
71
|
-
noBorder: this.loginPageConfig.cardConfig?.noBorder ?? true,
|
72
|
-
width: this.loginPageConfig.cardConfig?.width ?? '400px',
|
73
|
-
padding: this.loginPageConfig.cardConfig?.padding ?? '40px',
|
74
|
-
...this.loginPageConfig.cardConfig,
|
75
|
-
};
|
76
|
-
// Initialize usernameField
|
77
|
-
this.loginPageConfig.usernameField = {
|
78
|
-
name: this.loginPageConfig.usernameField?.name || 'username',
|
79
|
-
label: this.loginPageConfig.usernameField?.label || "Nom d'utilisateur",
|
80
|
-
required: this.loginPageConfig.usernameField?.required ?? true,
|
81
|
-
placeholder: this.loginPageConfig.usernameField?.placeholder ||
|
82
|
-
"Entrer votre nom d'utilisateur",
|
83
|
-
...this.loginPageConfig.usernameField,
|
84
|
-
};
|
85
|
-
// Initialize passwordField
|
86
|
-
this.loginPageConfig.passwordField = {
|
87
|
-
name: this.loginPageConfig.passwordField?.name || 'password',
|
88
|
-
label: this.loginPageConfig.passwordField?.label || 'Mot de passe',
|
89
|
-
required: this.loginPageConfig.passwordField?.required ?? true,
|
90
|
-
placeholder: this.loginPageConfig.passwordField?.placeholder ||
|
91
|
-
'Entrer votre mot de passe',
|
92
|
-
type: this.loginPageConfig.passwordField?.type || FormInputTypeEnum.PASSWORD,
|
93
|
-
...this.loginPageConfig.passwordField,
|
94
|
-
};
|
95
|
-
// Initialize buttonConfig
|
96
|
-
this.loginPageConfig.buttonConfig = {
|
97
|
-
label: this.loginPageConfig.buttonConfig?.label || 'Login',
|
98
|
-
type: this.loginPageConfig.buttonConfig?.type || 'submit',
|
99
|
-
icon: this.loginPageConfig.buttonConfig?.icon || 'pi pi-sign-in',
|
100
|
-
iconPos: this.loginPageConfig.buttonConfig?.iconPos || 'left',
|
101
|
-
styleClass: this.loginPageConfig.buttonConfig?.styleClass || 'p-button-success',
|
102
|
-
disabled: this.loginPageConfig.buttonConfig?.disabled ?? true,
|
103
|
-
width: this.loginPageConfig.buttonConfig?.width ?? '100%',
|
104
|
-
...this.loginPageConfig.buttonConfig,
|
105
|
-
};
|
20
|
+
this.applyDefaultConfigs();
|
106
21
|
}
|
107
|
-
|
108
|
-
|
109
|
-
this.
|
22
|
+
applyDefaultConfigs() {
|
23
|
+
// Apply defaults to centerCardConfig
|
24
|
+
this.loginPageConfig.centerCardConfig = this.applyDefaults(this.loginPageConfig.centerCardConfig);
|
25
|
+
// Apply defaults to leftCardConfig
|
26
|
+
this.loginPageConfig.leftCardConfig = this.applyDefaults(this.loginPageConfig.leftCardConfig);
|
27
|
+
// Apply defaults to rightCardConfig
|
28
|
+
this.loginPageConfig.rightCardConfig = this.applyDefaults(this.loginPageConfig.rightCardConfig);
|
110
29
|
}
|
111
|
-
|
112
|
-
|
113
|
-
this.
|
114
|
-
|
115
|
-
|
116
|
-
this.loginPageConfig.login.errorMessage =
|
117
|
-
this.loginPageConfig.login?.emptyFieldsErrorMessage;
|
118
|
-
}
|
30
|
+
applyDefaults(config) {
|
31
|
+
return {
|
32
|
+
...this.defaultCardConfig,
|
33
|
+
...(config || {}),
|
34
|
+
};
|
119
35
|
}
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
? [Validators.required]
|
124
|
-
: [];
|
125
|
-
const passwordValidators = this.loginPageConfig.passwordField?.required
|
126
|
-
? [Validators.required]
|
127
|
-
: [];
|
128
|
-
this.formGroup.addControl(this.loginPageConfig.usernameField.name, this.fb.control(this.loginPageConfig.login?.username, usernameValidators));
|
129
|
-
this.formGroup.addControl(this.loginPageConfig.passwordField.name, this.fb.control(this.loginPageConfig.login?.password, passwordValidators));
|
36
|
+
onLoginSubmit(loginModel) {
|
37
|
+
console.log('Login Submitted:', loginModel);
|
38
|
+
this.loginSubmit.emit(loginModel);
|
130
39
|
}
|
131
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: PTLoginPageComponent, deps: [
|
132
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: PTLoginPageComponent, selector: "pt-login-page", inputs: { loginPageConfig: "loginPageConfig" }, outputs: { loginSubmit: "loginSubmit" }, ngImport: i0, template: "<
|
40
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: PTLoginPageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
41
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: PTLoginPageComponent, selector: "pt-login-page", inputs: { loginPageConfig: "loginPageConfig" }, outputs: { loginSubmit: "loginSubmit" }, ngImport: i0, template: "<!-- Center Position -->\n<ng-container>\n <div *ngIf=\"loginPageConfig.position === 'center'\" class=\"center-container\">\n <pt-card\n *ngIf=\"loginPageConfig.centerCardConfig\"\n [config]=\"loginPageConfig.centerCardConfig\"\n >\n <pt-login-card\n [loginPageConfig]=\"loginPageConfig\"\n (loginSubmit)=\"onLoginSubmit($event)\"\n ></pt-login-card>\n </pt-card>\n </div>\n <!-- Left and Right Positions -->\n <div\n *ngIf=\"\n loginPageConfig.position === 'left' ||\n loginPageConfig.position === 'right'\n \"\n class=\"left-right-container\"\n >\n <!-- Left Card -->\n <pt-card\n *ngIf=\"loginPageConfig.leftCardConfig\"\n [config]=\"loginPageConfig.leftCardConfig\"\n >\n <pt-login-card\n *ngIf=\"loginPageConfig.position === 'left'\"\n [loginPageConfig]=\"loginPageConfig\"\n (loginSubmit)=\"onLoginSubmit($event)\"\n ></pt-login-card>\n </pt-card>\n\n <!-- Right Card -->\n <pt-card\n *ngIf=\"loginPageConfig.rightCardConfig\"\n [config]=\"loginPageConfig.rightCardConfig\"\n >\n <pt-login-card\n *ngIf=\"loginPageConfig.position === 'right'\"\n [loginPageConfig]=\"loginPageConfig\"\n (loginSubmit)=\"onLoginSubmit($event)\"\n ></pt-login-card>\n </pt-card>\n </div>\n</ng-container>\n", styles: [".left-right-container{display:flex;height:100vh;width:100%}.left-right-container pt-card{flex:1;max-width:50%;display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%}.center-container{display:flex;justify-content:center;align-items:center;height:100vh;width:100vw;margin:0;padding:0;box-sizing:border-box;overflow:hidden}.center-container pt-card{display:flex;flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;box-sizing:border-box}.center-container pt-card pt-login-card{display:flex;flex-direction:column;justify-content:center;align-items:center;width:100%;padding:16px;box-sizing:border-box;margin:0}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.PTCardComponent, selector: "pt-card", inputs: ["config"] }, { kind: "component", type: i3.PTLoginCardComponent, selector: "pt-login-card", inputs: ["loginPageConfig"], outputs: ["loginSubmit"] }] }); }
|
133
42
|
}
|
134
43
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: PTLoginPageComponent, decorators: [{
|
135
44
|
type: Component,
|
136
|
-
args: [{ selector: 'pt-login-page', template: "<
|
137
|
-
}],
|
45
|
+
args: [{ selector: 'pt-login-page', template: "<!-- Center Position -->\n<ng-container>\n <div *ngIf=\"loginPageConfig.position === 'center'\" class=\"center-container\">\n <pt-card\n *ngIf=\"loginPageConfig.centerCardConfig\"\n [config]=\"loginPageConfig.centerCardConfig\"\n >\n <pt-login-card\n [loginPageConfig]=\"loginPageConfig\"\n (loginSubmit)=\"onLoginSubmit($event)\"\n ></pt-login-card>\n </pt-card>\n </div>\n <!-- Left and Right Positions -->\n <div\n *ngIf=\"\n loginPageConfig.position === 'left' ||\n loginPageConfig.position === 'right'\n \"\n class=\"left-right-container\"\n >\n <!-- Left Card -->\n <pt-card\n *ngIf=\"loginPageConfig.leftCardConfig\"\n [config]=\"loginPageConfig.leftCardConfig\"\n >\n <pt-login-card\n *ngIf=\"loginPageConfig.position === 'left'\"\n [loginPageConfig]=\"loginPageConfig\"\n (loginSubmit)=\"onLoginSubmit($event)\"\n ></pt-login-card>\n </pt-card>\n\n <!-- Right Card -->\n <pt-card\n *ngIf=\"loginPageConfig.rightCardConfig\"\n [config]=\"loginPageConfig.rightCardConfig\"\n >\n <pt-login-card\n *ngIf=\"loginPageConfig.position === 'right'\"\n [loginPageConfig]=\"loginPageConfig\"\n (loginSubmit)=\"onLoginSubmit($event)\"\n ></pt-login-card>\n </pt-card>\n </div>\n</ng-container>\n", styles: [".left-right-container{display:flex;height:100vh;width:100%}.left-right-container pt-card{flex:1;max-width:50%;display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%}.center-container{display:flex;justify-content:center;align-items:center;height:100vh;width:100vw;margin:0;padding:0;box-sizing:border-box;overflow:hidden}.center-container pt-card{display:flex;flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;box-sizing:border-box}.center-container pt-card pt-login-card{display:flex;flex-direction:column;justify-content:center;align-items:center;width:100%;padding:16px;box-sizing:border-box;margin:0}\n"] }]
|
46
|
+
}], propDecorators: { loginPageConfig: [{
|
138
47
|
type: Input
|
139
48
|
}], loginSubmit: [{
|
140
49
|
type: Output
|
141
50
|
}] } });
|
142
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHQtbG9naW4tcGFnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1wcmltZS10b29scy9zcmMvbGliL3B0LWxvZ2luLXBhZ2UvcHQtbG9naW4tcGFnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1wcmltZS10b29scy9zcmMvbGliL3B0LWxvZ2luLXBhZ2UvcHQtbG9naW4tcGFnZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBMEIsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFcEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sVUFBVSxDQUFDOzs7Ozs7O0FBTzdDLE1BQU0sT0FBTyxvQkFBb0I7SUFTL0IsWUFBb0IsRUFBZTtRQUFmLE9BQUUsR0FBRixFQUFFLENBQWE7UUFOekIsZ0JBQVcsR0FDbkIsSUFBSSxZQUFZLEVBQWMsQ0FBQztRQUdqQyx5QkFBb0IsR0FBVyxFQUFFLENBQUM7UUFHaEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQztZQUN4QixRQUFRLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsUUFBUSxJQUFJLEVBQUU7WUFDcEQsUUFBUSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLFFBQVEsSUFBSSxFQUFFO1NBQ3JELENBQUMs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RUksV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBMb2dpblBhZ2VDb25maWcsIExvZ2luTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMnO1xuaW1wb3J0IHsgRm9ybUlucHV0VHlwZUVudW0gfSBmcm9tICcuLi9lbnVtcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3B0LWxvZ2luLXBhZ2UnLFxuICB0ZW1wbGF0ZVVybDogJy4vcHQtbG9naW4tcGFnZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3B0LWxvZ2luLXBhZ2UuY29tcG9uZW50LmNzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBQVExvZ2luUGFnZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIGxvZ2luUGFnZUNvbmZpZyE6IExvZ2luUGFnZUNvbmZpZztcblxuICBAT3V0cHV0KCkgbG9naW5TdWJtaXQ6IEV2ZW50RW1pdHRlcjxMb2dpbk1vZGVsPiA9XG4gICAgbmV3IEV2ZW50RW1pdHRlcjxMb2dpbk1vZGVsPigpO1xuXG4gIGZvcm1Hcm91cDogRm9ybUdyb3VwO1xuICBiYWNrZ3JvdW5kSW1hZ2VTdHlsZTogc3RyaW5nID0gJyc7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIpIHtcbiAgICB0aGlzLmZvcm1Hcm91cCA9IHRoaXMuZmIuZ3JvdXAoe30pO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5pbml0aWFsaXplRGVmYXVsdHMoKTtcbiAgICB0aGlzLnNldHVwRm9ybUZpZWxkcygpO1xuICAgIHRoaXMuZm9ybUdyb3VwLnBhdGNoVmFsdWUoe1xuICAgICAgdXNlcm5hbWU6IHRoaXMubG9naW5QYWdlQ29uZmlnLmxvZ2luPy51c2VybmFtZSB8fCAnJyxcbiAgICAgIHBhc3N3b3JkOiB0aGlzLmxvZ2luUGFnZUNvbmZpZy5sb2dpbj8ucGFzc3dvcmQgfHwgJycsXG4gICAgfSk7XG4gICAgdGhpcy5zZXRCYWNrZ3JvdW5kSW1hZ2VTdHlsZSgpO1xuXG4gICAgLy8gRW5hYmxlL0Rpc2FibGUgdGhlIGJ1dHRvbiBiYXNlZCBvbiBmb3JtIHZhbGlkaXR5XG4gICAgdGhpcy5mb3JtR3JvdXAuc3RhdHVzQ2hhbmdlcy5zdWJzY3JpYmUoKHN0YXR1cykgPT4ge1xuICAgICAgdGhpcy5sb2dpblBhZ2VDb25maWcuYnV0dG9uQ29uZmlnIS5kaXNhYmxlZCA9IHN0YXR1cyAhPT0gJ1ZBTElEJztcbiAgICB9KTtcbiAgfVxuXG4gIC8vIEluaXRpYWxpemUgZGVmYXVsdCB2YWx1ZXMgZm9yIGFsbCBmaWVsZHMgaW4gbG9naW5QYWdlQ29uZmlnIGlmIG5vdCBzZXRcbiAgaW5pdGlhbGl6ZURlZmF1bHRzKCkge1xuICAgIC8vIEluaXRpYWxpemUgYmFja2dyb3VuZEltYWdlXG4gICAgdGhpcy5sb2dpblBhZ2VDb25maWcuYmFja2dyb3VuZEltYWdlID0ge1xuICAgICAgaW1hZ2VVcmw6IHRoaXMubG9naW5QYWdlQ29uZmlnLmJhY2tncm91bmRJbWFnZT8uaW1hZ2VVcmwgfHwgJycsXG4gICAgICB0cmFuc3BhcmVuY3lQZXJjZW50YWdlOlxuICAgICAgICB0aGlzLmxvZ2luUGFnZUNvbmZpZy5iYWNrZ3JvdW5kSW1hZ2U/LnRyYW5zcGFyZW5jeVBlcmNlbnRhZ2UgfHwgJzEwMCcsXG4gICAgICAuLi50aGlzLmxvZ2luUGFnZUNvbmZpZy5iYWNrZ3JvdW5kSW1hZ2UsXG4gICAgfTtcblxuICAgIC8vIEluaXRpYWxpemUgdGl0bGVcbiAgICB0aGlzLmxvZ2luUGFnZUNvbmZpZy50aXRsZSA9IHtcbiAgICAgIHRleHQ6IHRoaXMubG9naW5QYWdlQ29uZmlnLnRpdGxlPy50ZXh0IHx8ICdMb2dpbicsXG4gICAgICBwb3NpdGlvbjogdGhpcy5sb2dpblBhZ2VDb25maWcudGl0bGU/LnBvc2l0aW9uIHx8ICdjZW50ZXInLFxuICAgICAgY29sb3I6IHRoaXMubG9naW5QYWdlQ29uZmlnLnRpdGxlPy5jb2xvciB8fCAnIzMzMycsXG4gICAgICBmb250U2l6ZTogdGhpcy5sb2dpblBhZ2VDb25maWcudGl0bGU/LmZvbnRTaXplIHx8ICcyNHB4JyxcbiAgICAgIC4uLnRoaXMubG9naW5QYWdlQ29uZmlnLnRpdGxlLFxuICAgIH07XG5cbiAgICAvLyBJbml0aWFsaXplIGxvZ29VcmxcbiAgICB0aGlzLmxvZ2luUGFnZUNvbmZpZy5sb2dvVXJsID0ge1xuICAgICAgYWx0VGV4dDogdGhpcy5sb2dpblBhZ2VDb25maWcubG9nb1VybD8uYWx0VGV4dCB8fCAnTG9nbycsXG4gICAgICBpbWFnZVVybDogdGhpcy5sb2dpblBhZ2VDb25maWcubG9nb1VybD8uaW1hZ2VVcmwgfHwgJycsXG4gICAgICB3aWR0aDogdGhpcy5sb2dpblBhZ2VDb25maWcubG9nb1VybD8ud2lkdGggfHwgJzEwMHB4JyxcbiAgICAgIGhlaWdodDogdGhpcy5sb2dpblBhZ2VDb25maWcubG9nb1VybD8uaGVpZ2h0IHx8ICdhdXRvJyxcbiAgICAgIC4uLnRoaXMubG9naW5QYWdlQ29uZmlnLmxvZ29VcmwsXG4gICAgfTtcblxuICAgIC8vIEluaXRpYWxpemUgZm9vdGVyXG4gICAgdGhpcy5sb2dpblBhZ2VDb25maWcuZm9vdGVyID0ge1xuICAgICAgdmVyc2lvbjogdGhpcy5sb2dpblBhZ2VDb25maWcuZm9vdGVyPy52ZXJzaW9uIHx8ICdWMS4wJyxcbiAgICAgIGNvcHlyaWdodDpcbiAgICAgICAgdGhpcy5sb2dpblBhZ2VDb25maWcuZm9vdGVyPy5jb3B5cmlnaHQgfHwgJ1lvdXIgQ29tcGFueSDCqSAyMDI0JyxcbiAgICAgIC4uLnRoaXMubG9naW5QYWdlQ29uZmlnLmZvb3RlcixcbiAgICB9O1xuXG4gICAgLy8gSW5pdGlhbGl6ZSBsb2dpblxuICAgIHRoaXMubG9naW5QYWdlQ29uZmlnLmxvZ2luID0ge1xuICAgICAgdXNlcm5hbWU6IHRoaXMubG9naW5QYWdlQ29uZmlnLmxvZ2luPy51c2VybmFtZSB8fCAnJyxcbiAgICAgIHBhc3N3b3JkOiB0aGlzLmxvZ2luUGFnZUNvbmZpZy5sb2dpbj8ucGFzc3dvcmQgfHwgJycsXG4gICAgICBlcnJvck1lc3NhZ2U6IHRoaXMubG9naW5QYWdlQ29uZmlnLmxvZ2luPy5lcnJvck1lc3NhZ2UgfHwgJycsXG4gICAgICBlbXB0eUZpZWxkc0Vycm9yTWVzc2FnZTpcbiAgICAgICAgdGhpcy5sb2dpblBhZ2VDb25maWcubG9naW4/LmVtcHR5RmllbGRzRXJyb3JNZXNzYWdlIHx8XG4gICAgICAgIFwiVmV1aWxsZXogc2Fpc2lyIHZvdHJlIG5vbSBkJ3V0aWxpc2F0ZXVyIGV0IHZvdHJlIG1vdCBkZSBwYXNzZSAhXCIsXG4gICAgICAuLi50aGlzLmxvZ2luUGFnZUNvbmZpZy5sb2dpbixcbiAgICB9O1xuXG4gICAgLy8gSW5pdGlhbGl6ZSBjYXJkQ29uZmlnXG4gICAgdGhpcy5sb2dpblBhZ2VDb25maWcuY2FyZENvbmZpZyA9IHtcbiAgICAgIG5vQm9yZGVyOiB0aGlzLmxvZ2luUGFnZUNvbmZpZy5jYXJkQ29uZmlnPy5ub0JvcmRlciA/PyB0cnVlLFxuICAgICAgd2lkdGg6IHRoaXMubG9naW5QYWdlQ29uZmlnLmNhcmRDb25maWc/LndpZHRoID8/ICc0MDBweCcsXG4gICAgICBwYWRkaW5nOiB0aGlzLmxvZ2luUGFnZUNvbmZpZy5jYXJkQ29uZmlnPy5wYWRkaW5nID8/ICc0MHB4JyxcbiAgICAgIC4uLnRoaXMubG9naW5QYWdlQ29uZmlnLmNhcmRDb25maWcsXG4gICAgfTtcblxuICAgIC8vIEluaXRpYWxpemUgdXNlcm5hbWVGaWVsZFxuICAgIHRoaXMubG9naW5QYWdlQ29uZmlnLnVzZXJuYW1lRmllbGQgPSB7XG4gICAgICBuYW1lOiB0aGlzLmxvZ2luUGFnZUNvbmZpZy51c2VybmFtZUZpZWxkPy5uYW1lIHx8ICd1c2VybmFtZScsXG4gICAgICBsYWJlbDogdGhpcy5sb2dpblBhZ2VDb25maWcudXNlcm5hbWVGaWVsZD8ubGFiZWwgfHwgXCJOb20gZCd1dGlsaXNhdGV1clwiLFxuICAgICAgcmVxdWlyZWQ6IHRoaXMubG9naW5QYWdlQ29uZmlnLnVzZXJuYW1lRmllbGQ/LnJlcXVpcmVkID8/IHRydWUsXG4gICAgICBwbGFjZWhvbGRlcjpcbiAgICAgICAgdGhpcy5sb2dpblBhZ2VDb25maWcudXNlcm5hbWVGaWVsZD8ucGxhY2Vob2xkZXIgfHxcbiAgICAgICAgXCJFbnRyZXIgdm90cmUgbm9tIGQndXRpbGlzYXRldXJcIixcbiAgICAgIC4uLnRoaXMubG9naW5QYWdlQ29uZmlnLnVzZXJuYW1lRmllbGQsXG4gICAgfTtcblxuICAgIC8vIEluaXRpYWxpemUgcGFzc3dvcmRGaWVsZFxuICAgIHRoaXMubG9naW5QYWdlQ29uZmlnLnBhc3N3b3JkRmllbGQgPSB7XG4gICAgICBuYW1lOiB0aGlzLmxvZ2luUGFnZUNvbmZpZy5wYXNzd29yZEZpZWxkPy5uYW1lIHx8ICdwYXNzd29yZCcsXG4gICAgICBsYWJlbDogdGhpcy5sb2dpblBhZ2VDb25maWcucGFzc3dvcmRGaWVsZD8ubGFiZWwgfHwgJ01vdCBkZSBwYXNzZScsXG4gICAgICByZXF1aXJlZDogdGhpcy5sb2dpblBhZ2VDb25maWcucGFzc3dvcmRGaWVsZD8ucmVxdWlyZWQgPz8gdHJ1ZSxcbiAgICAgIHBsYWNlaG9sZGVyOlxuICAgICAgICB0aGlzLmxvZ2luUGFnZUNvbmZpZy5wYXNzd29yZEZpZWxkPy5wbGFjZWhvbGRlciB8fFxuICAgICAgICAnRW50cmVyIHZvdHJlIG1vdCBkZSBwYXNzZScsXG4gICAgICB0eXBlOlxuICAgICAgICB0aGlzLmxvZ2luUGFnZUNvbmZpZy5wYXNzd29yZEZpZWxkPy50eXBlIHx8IEZvcm1JbnB1dFR5cGVFbnVtLlBBU1NXT1JELFxuICAgICAgLi4udGhpcy5sb2dpblBhZ2VDb25maWcucGFzc3dvcmRGaWVsZCxcbiAgICB9O1xuXG4gICAgLy8gSW5pdGlhbGl6ZSBidXR0b25Db25maWdcbiAgICB0aGlzLmxvZ2luUGFnZUNvbmZpZy5idXR0b25Db25maWcgPSB7XG4gICAgICBsYWJlbDogdGhpcy5sb2dpblBhZ2VDb25maWcuYnV0dG9uQ29uZmlnPy5sYWJlbCB8fCAnTG9naW4nLFxuICAgICAgdHlwZTogdGhpcy5sb2dpblBhZ2VDb25maWcuYnV0dG9uQ29uZmlnPy50eXBlIHx8ICdzdWJtaXQnLFxuICAgICAgaWNvbjogdGhpcy5sb2dpblBhZ2VDb25maWcuYnV0dG9uQ29uZmlnPy5pY29uIHx8ICdwaSBwaS1zaWduLWluJyxcbiAgICAgIGljb25Qb3M6IHRoaXMubG9naW5QYWdlQ29uZmlnLmJ1dHRvbkNvbmZpZz8uaWNvblBvcyB8fCAnbGVmdCcsXG4gICAgICBzdHlsZUNsYXNzOlxuICAgICAgICB0aGlzLmxvZ2luUGFnZUNvbmZpZy5idXR0b25Db25maWc/LnN0eWxlQ2xhc3MgfHwgJ3AtYnV0dG9uLXN1Y2Nlc3MnLFxuICAgICAgZGlzYWJsZWQ6IHRoaXMubG9naW5QYWdlQ29uZmlnLmJ1dHRvbkNvbmZpZz8uZGlzYWJsZWQgPz8gdHJ1ZSxcbiAgICAgIHdpZHRoOiB0aGlzLmxvZ2luUGFnZUNvbmZpZy5idXR0b25Db25maWc/LndpZHRoID8/ICcxMDAlJyxcbiAgICAgIC4uLnRoaXMubG9naW5QYWdlQ29uZmlnLmJ1dHRvbkNvbmZpZyxcbiAgICB9O1xuICB9XG5cbiAgc2V0QmFja2dyb3VuZEltYWdlU3R5bGUoKSB7XG4gICAgY29uc3QgdHJhbnNwYXJlbmN5ID1cbiAgICAgIHBhcnNlRmxvYXQoXG4gICAgICAgIHRoaXMubG9naW5QYWdlQ29uZmlnPy5iYWNrZ3JvdW5kSW1hZ2U/LnRyYW5zcGFyZW5jeVBlcmNlbnRhZ2UhXG4gICAgICApIC8gMTAwO1xuICAgIHRoaXMuYmFja2dyb3VuZEltYWdlU3R5bGUgPSBgbGluZWFyLWdyYWRpZW50KHJnYmEoMjU1LDI1NSwyNTUsJHtcbiAgICAgIDEgLSB0cmFuc3BhcmVuY3lcbiAgICB9KSwgcmdiYSgyNTUsMjU1LDI1NSwkezEgLSB0cmFuc3BhcmVuY3l9KSksIHVybCgke1xuICAgICAgdGhpcy5sb2dpblBhZ2VDb25maWc/LmJhY2tncm91bmRJbWFnZT8uaW1hZ2VVcmxcbiAgICB9KWA7XG4gIH1cblxuICBsb2dpbigpIHtcbiAgICBpZiAodGhpcy5mb3JtR3JvdXAudmFsaWQpIHtcbiAgICAgIHRoaXMubG9naW5TdWJtaXQuZW1pdCh0aGlzLmZvcm1Hcm91cC52YWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubG9naW5QYWdlQ29uZmlnLmxvZ2luIS5lcnJvck1lc3NhZ2UgPVxuICAgICAgICB0aGlzLmxvZ2luUGFnZUNvbmZpZy5sb2dpbj8uZW1wdHlGaWVsZHNFcnJvck1lc3NhZ2U7XG4gICAgfVxuICB9XG5cbiAgLy8gU2V0dXAgZm9ybSBmaWVsZHMgdXNpbmcgdGhlIHVzZXJuYW1lRmllbGQgYW5kIHBhc3N3b3JkRmllbGQgZnJvbSBMb2dpblBhZ2VDb25maWdcbiAgc2V0dXBGb3JtRmllbGRzKCkge1xuICAgIGNvbnN0IHVzZXJuYW1lVmFsaWRhdG9ycyA9IHRoaXMubG9naW5QYWdlQ29uZmlnLnVzZXJuYW1lRmllbGQ/LnJlcXVpcmVkXG4gICAgICA/IFtWYWxpZGF0b3JzLnJlcXVpcmVkXVxuICAgICAgOiBbXTtcbiAgICBjb25zdCBwYXNzd29yZFZhbGlkYXRvcnMgPSB0aGlzLmxvZ2luUGFnZUNvbmZpZy5wYXNzd29yZEZpZWxkPy5yZXF1aXJlZFxuICAgICAgPyBbVmFsaWRhdG9ycy5yZXF1aXJlZF1cbiAgICAgIDogW107XG5cbiAgICB0aGlzLmZvcm1Hcm91cC5hZGRDb250cm9sKFxuICAgICAgdGhpcy5sb2dpblBhZ2VDb25maWcudXNlcm5hbWVGaWVsZCEubmFtZSxcbiAgICAgIHRoaXMuZmIuY29udHJvbCh0aGlzLmxvZ2luUGFnZUNvbmZpZy5sb2dpbj8udXNlcm5hbWUsIHVzZXJuYW1lVmFsaWRhdG9ycylcbiAgICApO1xuICAgIHRoaXMuZm9ybUdyb3VwLmFkZENvbnRyb2woXG4gICAgICB0aGlzLmxvZ2luUGFnZUNvbmZpZy5wYXNzd29yZEZpZWxkIS5uYW1lLFxuICAgICAgdGhpcy5mYi5jb250cm9sKHRoaXMubG9naW5QYWdlQ29uZmlnLmxvZ2luPy5wYXNzd29yZCwgcGFzc3dvcmRWYWxpZGF0b3JzKVxuICAgICk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJsb2dpbi1jb250YWluZXJcIlxuICBbbmdTdHlsZV09XCJ7XG4gICAgJ2JhY2tncm91bmQtaW1hZ2UnOiBiYWNrZ3JvdW5kSW1hZ2VTdHlsZVxuICB9XCJcbj5cbiAgPHB0LWNhcmQgW2NvbmZpZ109XCJsb2dpblBhZ2VDb25maWcuY2FyZENvbmZpZyFcIj5cbiAgICA8ZGl2IGNsYXNzPVwibG9nby1jb250YWluZXJcIiAqbmdJZj1cImxvZ2luUGFnZUNvbmZpZy5sb2dvVXJsPy5pbWFnZVVybFwiPlxuICAgICAgPGltZ1xuICAgICAgICBbc3JjXT1cImxvZ2luUGFnZUNvbmZpZy5sb2dvVXJsPy5pbWFnZVVybFwiXG4gICAgICAgIFthbHRdPVwibG9naW5QYWdlQ29uZmlnLmxvZ29Vcmw/LmFsdFRleHRcIlxuICAgICAgICBbc3R5bGUud2lkdGhdPVwibG9naW5QYWdlQ29uZmlnLmxvZ29Vcmw/LndpZHRoXCJcbiAgICAgICAgW3N0eWxlLmhlaWdodF09XCJsb2dpblBhZ2VDb25maWcubG9nb1VybD8uaGVpZ2h0XCJcbiAgICAgIC8+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInRpdGxlLWNvbnRhaW5lclwiXG4gICAgICBbbmdTdHlsZV09XCJ7ICd0ZXh0LWFsaWduJzogbG9naW5QYWdlQ29uZmlnLnRpdGxlPy5wb3NpdGlvbiB9XCJcbiAgICA+XG4gICAgICA8aDFcbiAgICAgICAgW25nU3R5bGVdPVwie1xuICAgICAgICAgIGNvbG9yOiBsb2dpblBhZ2VDb25maWcudGl0bGU/LmNvbG9yLFxuICAgICAgICAgICdmb250LXNpemUnOiBsb2dpblBhZ2VDb25maWcudGl0bGU/LmZvbnRTaXplXG4gICAgICAgIH1cIlxuICAgICAgPlxuICAgICAgICB7eyBsb2dpblBhZ2VDb25maWcudGl0bGU/LnRleHQgfX1cbiAgICAgIDwvaDE+XG4gICAgPC9kaXY+XG5cbiAgICA8Zm9ybSBjbGFzcz1cImZvcm0tY29udGFpbmVyXCIgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIiAobmdTdWJtaXQpPVwibG9naW4oKVwiPlxuICAgICAgPGRpdiAqbmdJZj1cImxvZ2luUGFnZUNvbmZpZy5sb2dpbj8uZXJyb3JNZXNzYWdlXCIgY2xhc3M9XCJlcnJvci1tZXNzYWdlXCI+XG4gICAgICAgIHt7IGxvZ2luUGFnZUNvbmZpZy5sb2dpbj8uZXJyb3JNZXNzYWdlIH19XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxuICAgICAgICA8cHQtdGV4dC1pbnB1dFxuICAgICAgICAgIFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwXCJcbiAgICAgICAgICBbZm9ybUZpZWxkXT1cImxvZ2luUGFnZUNvbmZpZy51c2VybmFtZUZpZWxkIVwiXG4gICAgICAgID48L3B0LXRleHQtaW5wdXQ+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxuICAgICAgICA8cHQtdGV4dC1pbnB1dFxuICAgICAgICAgIFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwXCJcbiAgICAgICAgICBbZm9ybUZpZWxkXT1cImxvZ2luUGFnZUNvbmZpZy5wYXNzd29yZEZpZWxkIVwiXG4gICAgICAgID48L3B0LXRleHQtaW5wdXQ+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzdWJtaXQtYnRuXCI+XG4gICAgICAgIDxwdC1idXR0b24gW2J1dHRvbkNvbmZpZ109XCJsb2dpblBhZ2VDb25maWcuYnV0dG9uQ29uZmlnIVwiPjwvcHQtYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9mb3JtPlxuXG4gICAgPGRpdiBjbGFzcz1cImxvZ2luLWZvb3RlclwiPlxuICAgICAge3sgbG9naW5QYWdlQ29uZmlnLmZvb3Rlcj8udmVyc2lvbiB9fVxuICAgICAgPHNwYW4+e3sgbG9naW5QYWdlQ29uZmlnLmZvb3Rlcj8uY29weXJpZ2h0IH19PC9zcGFuPlxuICAgIDwvZGl2PlxuICA8L3B0LWNhcmQ+XG48L2Rpdj5cbiJdfQ==
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHQtbG9naW4tcGFnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1wcmltZS10b29scy9zcmMvbGliL3B0LWxvZ2luLXBhZ2UvcHQtbG9naW4tcGFnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1wcmltZS10b29scy9zcmMvbGliL3B0LWxvZ2luLXBhZ2UvcHQtbG9naW4tcGFnZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7OztBQVEvRSxNQUFNLE9BQU8sb0JBQW9CO0lBTGpDO1FBT1ksZ0JBQVcsR0FDbkIsSUFBSSxZQUFZLEVBQWMsQ0FBQztRQUV6QixzQkFBaUIsR0FBZTtZQUN0QyxZQUFZLEVBQUUsR0FBRztZQUNqQixNQUFNLEVBQUUsR0FBRztZQUNYLEtBQUssRUFBRSxNQUFNO1lBQ2IsTUFBTSxFQUFFLE1BQU07WUFDZCxRQUFRLEVBQUUsSUFBSTtZQUNkLFlBQVksRUFBRSxRQUFRO1lBQ3RCLGdCQUFnQixFQUFFLFFBQVE7U0FDM0IsQ0FBQztLQWtDSDtJQWhDQyxRQUFRO1FBQ04sSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVPLG1CQUFtQjtRQUN6QixxQ0FBcUM7UUFDckMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUN4RCxJQUFJLENBQUMsZUFBZSxDQUFDLGdCQUFnQixDQUN0QyxDQUFDO1FBRUYsbUNBQW1DO1FBQ25DLElBQUksQ0FBQyxlQUFlLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQ3RELElBQUksQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUNwQyxDQUFDO1FBRUYsb0NBQW9DO1FBQ3BDLElBQUksQ0FBQyxlQUFlLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQ3ZELElBQUksQ0FBQyxlQUFlLENBQUMsZUFBZSxDQUNyQyxDQUFDO0lBQ0osQ0FBQztJQUVPLGFBQWEsQ0FBQyxNQUFtQjtRQUN2QyxPQUFPO1lBQ0wsR0FBRyxJQUFJLENBQUMsaUJBQWlCO1lBQ3pCLEdBQUcsQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDO1NBQ2xCLENBQUM7SUFDSixDQUFDO0lBRUQsYUFBYSxDQUFDLFVBQXNCO1FBQ2xDLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0JBQWtCLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDcEMsQ0FBQzsrR0E5Q1Usb0JBQW9CO21HQUFwQixvQkFBb0IsOElDUmpDLHcxQ0E4Q0E7OzRGRHRDYSxvQkFBb0I7a0JBTGhDLFNBQVM7K0JBQ0UsZUFBZTs4QkFLaEIsZUFBZTtzQkFBdkIsS0FBSztnQkFDSSxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTG9naW5Nb2RlbCwgTG9naW5QYWdlQ29uZmlnLCBDYXJkQ29uZmlnIH0gZnJvbSAnLi4vbW9kZWxzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncHQtbG9naW4tcGFnZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9wdC1sb2dpbi1wYWdlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcHQtbG9naW4tcGFnZS5jb21wb25lbnQuY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFBUTG9naW5QYWdlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgbG9naW5QYWdlQ29uZmlnITogTG9naW5QYWdlQ29uZmlnO1xuICBAT3V0cHV0KCkgbG9naW5TdWJtaXQ6IEV2ZW50RW1pdHRlcjxMb2dpbk1vZGVsPiA9XG4gICAgbmV3IEV2ZW50RW1pdHRlcjxMb2dpbk1vZGVsPigpO1xuXG4gIHByaXZhdGUgZGVmYXVsdENhcmRDb25maWc6IENhcmRDb25maWcgPSB7XG4gICAgYm9yZGVyUmFkaXVzOiAnMCcsXG4gICAgbWFyZ2luOiAnMCcsXG4gICAgd2lkdGg6ICcxMDAlJyxcbiAgICBoZWlnaHQ6ICcxMDAlJyxcbiAgICBub0JvcmRlcjogdHJ1ZSxcbiAgICBhbGlnbkNvbnRlbnQ6ICdjZW50ZXInLFxuICAgIGFsaWduQm9keUNvbnRlbnQ6ICdjZW50ZXInLFxuICB9O1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuYXBwbHlEZWZhdWx0Q29uZmlncygpO1xuICB9XG5cbiAgcHJpdmF0ZSBhcHBseURlZmF1bHRDb25maWdzKCk6IHZvaWQge1xuICAgIC8vIEFwcGx5IGRlZmF1bHRzIHRvIGNlbnRlckNhcmRDb25maWdcbiAgICB0aGlzLmxvZ2luUGFnZUNvbmZpZy5jZW50ZXJDYXJkQ29uZmlnID0gdGhpcy5hcHBseURlZmF1bHRzKFxuICAgICAgdGhpcy5sb2dpblBhZ2VDb25maWcuY2VudGVyQ2FyZENvbmZpZ1xuICAgICk7XG5cbiAgICAvLyBBcHBseSBkZWZhdWx0cyB0byBsZWZ0Q2FyZENvbmZpZ1xuICAgIHRoaXMubG9naW5QYWdlQ29uZmlnLmxlZnRDYXJkQ29uZmlnID0gdGhpcy5hcHBseURlZmF1bHRzKFxuICAgICAgdGhpcy5sb2dpblBhZ2VDb25maWcubGVmdENhcmRDb25maWdcbiAgICApO1xuXG4gICAgLy8gQXBwbHkgZGVmYXVsdHMgdG8gcmlnaHRDYXJkQ29uZmlnXG4gICAgdGhpcy5sb2dpblBhZ2VDb25maWcucmlnaHRDYXJkQ29uZmlnID0gdGhpcy5hcHBseURlZmF1bHRzKFxuICAgICAgdGhpcy5sb2dpblBhZ2VDb25maWcucmlnaHRDYXJkQ29uZmlnXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlEZWZhdWx0cyhjb25maWc/OiBDYXJkQ29uZmlnKTogQ2FyZENvbmZpZyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnRoaXMuZGVmYXVsdENhcmRDb25maWcsXG4gICAgICAuLi4oY29uZmlnIHx8IHt9KSxcbiAgICB9O1xuICB9XG5cbiAgb25Mb2dpblN1Ym1pdChsb2dpbk1vZGVsOiBMb2dpbk1vZGVsKTogdm9pZCB7XG4gICAgY29uc29sZS5sb2coJ0xvZ2luIFN1Ym1pdHRlZDonLCBsb2dpbk1vZGVsKTtcbiAgICB0aGlzLmxvZ2luU3VibWl0LmVtaXQobG9naW5Nb2RlbCk7XG4gIH1cbn1cbiIsIjwhLS0gQ2VudGVyIFBvc2l0aW9uIC0tPlxuPG5nLWNvbnRhaW5lcj5cbiAgPGRpdiAqbmdJZj1cImxvZ2luUGFnZUNvbmZpZy5wb3NpdGlvbiA9PT0gJ2NlbnRlcidcIiBjbGFzcz1cImNlbnRlci1jb250YWluZXJcIj5cbiAgICA8cHQtY2FyZFxuICAgICAgKm5nSWY9XCJsb2dpblBhZ2VDb25maWcuY2VudGVyQ2FyZENvbmZpZ1wiXG4gICAgICBbY29uZmlnXT1cImxvZ2luUGFnZUNvbmZpZy5jZW50ZXJDYXJkQ29uZmlnXCJcbiAgICA+XG4gICAgICA8cHQtbG9naW4tY2FyZFxuICAgICAgICBbbG9naW5QYWdlQ29uZmlnXT1cImxvZ2luUGFnZUNvbmZpZ1wiXG4gICAgICAgIChsb2dpblN1Ym1pdCk9XCJvbkxvZ2luU3VibWl0KCRldmVudClcIlxuICAgICAgPjwvcHQtbG9naW4tY2FyZD5cbiAgICA8L3B0LWNhcmQ+XG4gIDwvZGl2PlxuICA8IS0tIExlZnQgYW5kIFJpZ2h0IFBvc2l0aW9ucyAtLT5cbiAgPGRpdlxuICAgICpuZ0lmPVwiXG4gICAgICBsb2dpblBhZ2VDb25maWcucG9zaXRpb24gPT09ICdsZWZ0JyB8fFxuICAgICAgbG9naW5QYWdlQ29uZmlnLnBvc2l0aW9uID09PSAncmlnaHQnXG4gICAgXCJcbiAgICBjbGFzcz1cImxlZnQtcmlnaHQtY29udGFpbmVyXCJcbiAgPlxuICAgIDwhLS0gTGVmdCBDYXJkIC0tPlxuICAgIDxwdC1jYXJkXG4gICAgICAqbmdJZj1cImxvZ2luUGFnZUNvbmZpZy5sZWZ0Q2FyZENvbmZpZ1wiXG4gICAgICBbY29uZmlnXT1cImxvZ2luUGFnZUNvbmZpZy5sZWZ0Q2FyZENvbmZpZ1wiXG4gICAgPlxuICAgICAgPHB0LWxvZ2luLWNhcmRcbiAgICAgICAgKm5nSWY9XCJsb2dpblBhZ2VDb25maWcucG9zaXRpb24gPT09ICdsZWZ0J1wiXG4gICAgICAgIFtsb2dpblBhZ2VDb25maWddPVwibG9naW5QYWdlQ29uZmlnXCJcbiAgICAgICAgKGxvZ2luU3VibWl0KT1cIm9uTG9naW5TdWJtaXQoJGV2ZW50KVwiXG4gICAgICA+PC9wdC1sb2dpbi1jYXJkPlxuICAgIDwvcHQtY2FyZD5cblxuICAgIDwhLS0gUmlnaHQgQ2FyZCAtLT5cbiAgICA8cHQtY2FyZFxuICAgICAgKm5nSWY9XCJsb2dpblBhZ2VDb25maWcucmlnaHRDYXJkQ29uZmlnXCJcbiAgICAgIFtjb25maWddPVwibG9naW5QYWdlQ29uZmlnLnJpZ2h0Q2FyZENvbmZpZ1wiXG4gICAgPlxuICAgICAgPHB0LWxvZ2luLWNhcmRcbiAgICAgICAgKm5nSWY9XCJsb2dpblBhZ2VDb25maWcucG9zaXRpb24gPT09ICdyaWdodCdcIlxuICAgICAgICBbbG9naW5QYWdlQ29uZmlnXT1cImxvZ2luUGFnZUNvbmZpZ1wiXG4gICAgICAgIChsb2dpblN1Ym1pdCk9XCJvbkxvZ2luU3VibWl0KCRldmVudClcIlxuICAgICAgPjwvcHQtbG9naW4tY2FyZD5cbiAgICA8L3B0LWNhcmQ+XG4gIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG4iXX0=
|
@@ -5,6 +5,7 @@ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
5
5
|
import { PTTextInputModule } from '../pt-text-input/pt-text-input.module';
|
6
6
|
import { PTCardModule } from '../pt-card/pt-card.module';
|
7
7
|
import { PTButtonModule } from '../pt-button';
|
8
|
+
import { PTLoginCardComponent } from './pt-login-card/pt-login-card.component';
|
8
9
|
import * as i0 from "@angular/core";
|
9
10
|
export class PTLoginPageModule {
|
10
11
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: PTLoginPageModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
@@ -13,13 +14,15 @@ export class PTLoginPageModule {
|
|
13
14
|
ReactiveFormsModule,
|
14
15
|
PTTextInputModule,
|
15
16
|
PTCardModule,
|
16
|
-
PTButtonModule
|
17
|
+
PTButtonModule,
|
18
|
+
PTLoginCardComponent], exports: [PTLoginPageComponent] }); }
|
17
19
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: PTLoginPageModule, imports: [CommonModule,
|
18
20
|
FormsModule,
|
19
21
|
ReactiveFormsModule,
|
20
22
|
PTTextInputModule,
|
21
23
|
PTCardModule,
|
22
|
-
PTButtonModule
|
24
|
+
PTButtonModule,
|
25
|
+
PTLoginCardComponent] }); }
|
23
26
|
}
|
24
27
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: PTLoginPageModule, decorators: [{
|
25
28
|
type: NgModule,
|
@@ -32,8 +35,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
|
|
32
35
|
PTTextInputModule,
|
33
36
|
PTCardModule,
|
34
37
|
PTButtonModule,
|
38
|
+
PTLoginCardComponent,
|
35
39
|
],
|
36
40
|
exports: [PTLoginPageComponent],
|
37
41
|
}]
|
38
42
|
}] });
|
39
|
-
//# sourceMappingURL=data:application/json;base64,
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHQtbG9naW4tcGFnZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1wcmltZS10b29scy9zcmMvbGliL3B0LWxvZ2luLXBhZ2UvcHQtbG9naW4tcGFnZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDakUsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzlDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDOztBQWUvRSxNQUFNLE9BQU8saUJBQWlCOytHQUFqQixpQkFBaUI7Z0hBQWpCLGlCQUFpQixpQkFaYixvQkFBb0IsYUFFakMsWUFBWTtZQUNaLFdBQVc7WUFDWCxtQkFBbUI7WUFDbkIsaUJBQWlCO1lBQ2pCLFlBQVk7WUFDWixjQUFjO1lBQ2Qsb0JBQW9CLGFBRVosb0JBQW9CO2dIQUVuQixpQkFBaUIsWUFWMUIsWUFBWTtZQUNaLFdBQVc7WUFDWCxtQkFBbUI7WUFDbkIsaUJBQWlCO1lBQ2pCLFlBQVk7WUFDWixjQUFjO1lBQ2Qsb0JBQW9COzs0RkFJWCxpQkFBaUI7a0JBYjdCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsb0JBQW9CLENBQUM7b0JBQ3BDLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixpQkFBaUI7d0JBQ2pCLFlBQVk7d0JBQ1osY0FBYzt3QkFDZCxvQkFBb0I7cUJBQ3JCO29CQUNELE9BQU8sRUFBRSxDQUFDLG9CQUFvQixDQUFDO2lCQUNoQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgUFRMb2dpblBhZ2VDb21wb25lbnQgfSBmcm9tICcuL3B0LWxvZ2luLXBhZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgUFRUZXh0SW5wdXRNb2R1bGUgfSBmcm9tICcuLi9wdC10ZXh0LWlucHV0L3B0LXRleHQtaW5wdXQubW9kdWxlJztcbmltcG9ydCB7IFBUQ2FyZE1vZHVsZSB9IGZyb20gJy4uL3B0LWNhcmQvcHQtY2FyZC5tb2R1bGUnO1xuaW1wb3J0IHsgUFRCdXR0b25Nb2R1bGUgfSBmcm9tICcuLi9wdC1idXR0b24nO1xuaW1wb3J0IHsgUFRMb2dpbkNhcmRDb21wb25lbnQgfSBmcm9tICcuL3B0LWxvZ2luLWNhcmQvcHQtbG9naW4tY2FyZC5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtQVExvZ2luUGFnZUNvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBQVFRleHRJbnB1dE1vZHVsZSxcbiAgICBQVENhcmRNb2R1bGUsXG4gICAgUFRCdXR0b25Nb2R1bGUsXG4gICAgUFRMb2dpbkNhcmRDb21wb25lbnQsXG4gIF0sXG4gIGV4cG9ydHM6IFtQVExvZ2luUGFnZUNvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIFBUTG9naW5QYWdlTW9kdWxlIHt9XG4iXX0=
|
@@ -18,15 +18,18 @@ export class PTSideBarMenuComponent {
|
|
18
18
|
height: '100vh',
|
19
19
|
scrollable: true,
|
20
20
|
backgroundColor: 'white',
|
21
|
-
fontColor: '#333',
|
22
|
-
fontColorSubMenu: '#666',
|
23
|
-
hoverColor: '#f1f1f1',
|
24
|
-
hoverColorSubMenu: '#e0e0e0',
|
21
|
+
fontColor: '#333',
|
22
|
+
fontColorSubMenu: '#666',
|
23
|
+
hoverColor: '#f1f1f1',
|
24
|
+
hoverColorSubMenu: '#e0e0e0',
|
25
25
|
};
|
26
26
|
this.searchCardConfig = {
|
27
|
+
alignContent: 'center',
|
28
|
+
alignBodyContent: 'center',
|
27
29
|
identifier: 'pt-side-bar-menu/search',
|
28
30
|
backgroundColor: 'white',
|
29
31
|
height: '72px',
|
32
|
+
padding: '0',
|
30
33
|
};
|
31
34
|
this.cardConfig = {
|
32
35
|
identifier: 'pt-side-bar-menu',
|
@@ -198,12 +201,12 @@ export class PTSideBarMenuComponent {
|
|
198
201
|
});
|
199
202
|
}
|
200
203
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: PTSideBarMenuComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
201
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: PTSideBarMenuComponent, selector: "pt-side-bar-menu", inputs: { menuConfig: "menuConfig" }, ngImport: i0, template: "<div class=\"pt-side-bar-menu\">\n <pt-card\n *ngIf=\"menuConfig.searchable\"\n [config]=\"searchCardConfig\"\n [ngClass]=\"{ 'sidebar-hidden': !menuConfig.isVisible }\"\n >\n <div class=\"search-input\">\n <pt-text-input [formGroup]=\"formGroup\" [formField]=\"searchField\">\n </pt-text-input>\n </div>\n </pt-card>\n\n <pt-card\n [config]=\"cardConfig\"\n [ngClass]=\"{ 'sidebar-hidden': !menuConfig.isVisible }\"\n >\n <ul class=\"menu-list\">\n <li\n *ngFor=\"let item of filteredMenus\"\n class=\"menu-item\"\n [ngClass]=\"{ 'menu-item-expanded': item.isExpanded }\"\n [ngStyle]=\"getMenuItemStyles()\"\n >\n <!-- Main menu items without children -->\n <a\n *ngIf=\"!item.children?.length\"\n [routerLink]=\"item.url\"\n class=\"menu-link\"\n [ngStyle]=\"getMenuLinkStyles()\"\n >\n <i [ngClass]=\"item.icon\"></i>\n <span>{{ item.label }}</span>\n <span\n *ngIf=\"item.badge\"\n [ngStyle]=\"getBadgeStyles(item.badge)\"\n class=\"badge\"\n >\n {{ item.badge.count }}\n </span>\n </a>\n\n <!-- Menu items with children -->\n <a\n *ngIf=\"item.children?.length\"\n class=\"menu-link\"\n (click)=\"toggleMenu(item, $event)\"\n [ngStyle]=\"getMenuLinkStyles()\"\n >\n <i [ngClass]=\"item.icon\"></i>\n <span>{{ item.label }}</span>\n <span\n *ngIf=\"item.badge\"\n [ngStyle]=\"getBadgeStyles(item.badge)\"\n class=\"badge\"\n >\n {{ item.badge.count }}\n </span>\n <i [ngClass]=\"getChevronClass(item)\" class=\"chevron\"></i>\n </a>\n\n <!-- Submenu -->\n <ul class=\"submenu-list\">\n <li *ngFor=\"let child of item.children\" class=\"submenu-item\">\n <a\n [routerLink]=\"child.url\"\n class=\"submenu-link\"\n [ngStyle]=\"getSubMenuLinkStyles()\"\n >\n <i [ngClass]=\"child.icon\"></i>\n <span class=\"submenu-title\">{{ child.label }}</span>\n <span\n *ngIf=\"child.badge\"\n [ngStyle]=\"getBadgeStyles(child.badge)\"\n class=\"badge\"\n >\n {{ child.badge.count }}\n </span>\n </a>\n </li>\n </ul>\n </li>\n </ul>\n </pt-card>\n</div>\n", styles: [".pt-side-bar-menu .badge{background-color:#38bdf8;border-radius:5px;color:#fff;font-size:12px;margin-left:auto;padding:2px 8px}.pt-side-bar-menu .chevron{color:#8c8c8c;cursor:pointer;margin-left:auto}.pt-side-bar-menu .menu-item{position:relative}.pt-side-bar-menu .menu-item-expanded .submenu-list{max-height:500px;padding-bottom:5px;padding-top:5px}.pt-side-bar-menu .menu-link{align-items:center;border-radius:8px;color:#333;cursor:pointer;display:flex;font-size:16px;margin-bottom:15px;padding:10px 15px;text-decoration:none;transition:background-color .2s,color .2s}.pt-side-bar-menu .menu-link:hover{background-color:#f1f1f1;color:#111}.pt-side-bar-menu .menu-link i{margin-right:10px}.pt-side-bar-menu .menu-list{list-style-type:none;padding:0}.pt-side-bar-menu pt-card{transition:transform .3s ease-in-out,opacity .3s ease-in-out;display:block}.pt-side-bar-menu .
|
204
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: PTSideBarMenuComponent, selector: "pt-side-bar-menu", inputs: { menuConfig: "menuConfig" }, ngImport: i0, template: "<div class=\"pt-side-bar-menu\">\n <pt-card\n *ngIf=\"menuConfig.searchable\"\n [config]=\"searchCardConfig\"\n [ngClass]=\"{ 'sidebar-hidden': !menuConfig.isVisible }\"\n >\n <div class=\"search-input\">\n <pt-text-input [formGroup]=\"formGroup\" [formField]=\"searchField\">\n </pt-text-input>\n </div>\n </pt-card>\n\n <pt-card\n [config]=\"cardConfig\"\n [ngClass]=\"{ 'sidebar-hidden': !menuConfig.isVisible }\"\n >\n <ul class=\"menu-list\">\n <li\n *ngFor=\"let item of filteredMenus\"\n class=\"menu-item\"\n [ngClass]=\"{ 'menu-item-expanded': item.isExpanded }\"\n [ngStyle]=\"getMenuItemStyles()\"\n >\n <!-- Main menu items without children -->\n <a\n *ngIf=\"!item.children?.length\"\n [routerLink]=\"item.url\"\n class=\"menu-link\"\n [ngStyle]=\"getMenuLinkStyles()\"\n >\n <i [ngClass]=\"item.icon\"></i>\n <span>{{ item.label }}</span>\n <span\n *ngIf=\"item.badge\"\n [ngStyle]=\"getBadgeStyles(item.badge)\"\n class=\"badge\"\n >\n {{ item.badge.count }}\n </span>\n </a>\n\n <!-- Menu items with children -->\n <a\n *ngIf=\"item.children?.length\"\n class=\"menu-link\"\n (click)=\"toggleMenu(item, $event)\"\n [ngStyle]=\"getMenuLinkStyles()\"\n >\n <i [ngClass]=\"item.icon\"></i>\n <span>{{ item.label }}</span>\n <span\n *ngIf=\"item.badge\"\n [ngStyle]=\"getBadgeStyles(item.badge)\"\n class=\"badge\"\n >\n {{ item.badge.count }}\n </span>\n <i [ngClass]=\"getChevronClass(item)\" class=\"chevron\"></i>\n </a>\n\n <!-- Submenu -->\n <ul class=\"submenu-list\">\n <li *ngFor=\"let child of item.children\" class=\"submenu-item\">\n <a\n [routerLink]=\"child.url\"\n class=\"submenu-link\"\n [ngStyle]=\"getSubMenuLinkStyles()\"\n >\n <i [ngClass]=\"child.icon\"></i>\n <span class=\"submenu-title\">{{ child.label }}</span>\n <span\n *ngIf=\"child.badge\"\n [ngStyle]=\"getBadgeStyles(child.badge)\"\n class=\"badge\"\n >\n {{ child.badge.count }}\n </span>\n </a>\n </li>\n </ul>\n </li>\n </ul>\n </pt-card>\n</div>\n", styles: [".pt-side-bar-menu .badge{background-color:#38bdf8;border-radius:5px;color:#fff;font-size:12px;margin-left:auto;padding:2px 8px}.pt-side-bar-menu .chevron{color:#8c8c8c;cursor:pointer;margin-left:auto}.pt-side-bar-menu .menu-item{position:relative}.pt-side-bar-menu .menu-item-expanded .submenu-list{max-height:500px;padding-bottom:5px;padding-top:5px}.pt-side-bar-menu .menu-link{align-items:center;border-radius:8px;color:#333;cursor:pointer;display:flex;font-size:16px;margin-bottom:15px;padding:10px 15px;text-decoration:none;transition:background-color .2s,color .2s}.pt-side-bar-menu .menu-link:hover{background-color:#f1f1f1;color:#111}.pt-side-bar-menu .menu-link i{margin-right:10px}.pt-side-bar-menu .menu-list{list-style-type:none;padding:0}.pt-side-bar-menu pt-card{transition:transform .3s ease-in-out,opacity .3s ease-in-out;display:block}.pt-side-bar-menu .sidebar-hidden{transform:translate(-100%);opacity:0}.pt-side-bar-menu .sidebar-menu{margin:0;padding:0;transition:transform .3s ease-in-out;width:250px}.pt-side-bar-menu .submenu-item{padding:5px 0;position:relative}.pt-side-bar-menu .submenu-item:before{background-color:#e5e7eb;content:\"\";height:1px;left:-25px;position:absolute;top:50%;transform:translateY(-50%);width:25px}.pt-side-bar-menu .submenu-item:last-child:after{content:none}.pt-side-bar-menu .submenu-link{align-items:center;border-radius:5px;color:#666;display:flex;font-size:14px;padding:5px 10px;text-decoration:none;transition:background-color .2s,color .2s}.pt-side-bar-menu .submenu-link:hover{background-color:#f1f1f1;color:#000}.pt-side-bar-menu .submenu-list{border-left:1px solid #e5e7eb;list-style-type:none;margin-left:23px;margin-top:5px;max-height:0;overflow:hidden;padding-left:25px;position:relative;transition:max-height .3s ease-out,padding .3s ease-out}.pt-side-bar-menu .submenu-list:after{background-color:#e5e7eb;bottom:0;content:\"\";left:-1px;position:absolute;top:0;width:1px}.pt-side-bar-menu .submenu-title{margin-left:5px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i3.PTCardComponent, selector: "pt-card", inputs: ["config"] }, { kind: "component", type: i4.PTTextInputComponent, selector: "pt-text-input", inputs: ["formGroup", "formField"] }] }); }
|
202
205
|
}
|
203
206
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: PTSideBarMenuComponent, decorators: [{
|
204
207
|
type: Component,
|
205
|
-
args: [{ selector: 'pt-side-bar-menu', template: "<div class=\"pt-side-bar-menu\">\n <pt-card\n *ngIf=\"menuConfig.searchable\"\n [config]=\"searchCardConfig\"\n [ngClass]=\"{ 'sidebar-hidden': !menuConfig.isVisible }\"\n >\n <div class=\"search-input\">\n <pt-text-input [formGroup]=\"formGroup\" [formField]=\"searchField\">\n </pt-text-input>\n </div>\n </pt-card>\n\n <pt-card\n [config]=\"cardConfig\"\n [ngClass]=\"{ 'sidebar-hidden': !menuConfig.isVisible }\"\n >\n <ul class=\"menu-list\">\n <li\n *ngFor=\"let item of filteredMenus\"\n class=\"menu-item\"\n [ngClass]=\"{ 'menu-item-expanded': item.isExpanded }\"\n [ngStyle]=\"getMenuItemStyles()\"\n >\n <!-- Main menu items without children -->\n <a\n *ngIf=\"!item.children?.length\"\n [routerLink]=\"item.url\"\n class=\"menu-link\"\n [ngStyle]=\"getMenuLinkStyles()\"\n >\n <i [ngClass]=\"item.icon\"></i>\n <span>{{ item.label }}</span>\n <span\n *ngIf=\"item.badge\"\n [ngStyle]=\"getBadgeStyles(item.badge)\"\n class=\"badge\"\n >\n {{ item.badge.count }}\n </span>\n </a>\n\n <!-- Menu items with children -->\n <a\n *ngIf=\"item.children?.length\"\n class=\"menu-link\"\n (click)=\"toggleMenu(item, $event)\"\n [ngStyle]=\"getMenuLinkStyles()\"\n >\n <i [ngClass]=\"item.icon\"></i>\n <span>{{ item.label }}</span>\n <span\n *ngIf=\"item.badge\"\n [ngStyle]=\"getBadgeStyles(item.badge)\"\n class=\"badge\"\n >\n {{ item.badge.count }}\n </span>\n <i [ngClass]=\"getChevronClass(item)\" class=\"chevron\"></i>\n </a>\n\n <!-- Submenu -->\n <ul class=\"submenu-list\">\n <li *ngFor=\"let child of item.children\" class=\"submenu-item\">\n <a\n [routerLink]=\"child.url\"\n class=\"submenu-link\"\n [ngStyle]=\"getSubMenuLinkStyles()\"\n >\n <i [ngClass]=\"child.icon\"></i>\n <span class=\"submenu-title\">{{ child.label }}</span>\n <span\n *ngIf=\"child.badge\"\n [ngStyle]=\"getBadgeStyles(child.badge)\"\n class=\"badge\"\n >\n {{ child.badge.count }}\n </span>\n </a>\n </li>\n </ul>\n </li>\n </ul>\n </pt-card>\n</div>\n", styles: [".pt-side-bar-menu .badge{background-color:#38bdf8;border-radius:5px;color:#fff;font-size:12px;margin-left:auto;padding:2px 8px}.pt-side-bar-menu .chevron{color:#8c8c8c;cursor:pointer;margin-left:auto}.pt-side-bar-menu .menu-item{position:relative}.pt-side-bar-menu .menu-item-expanded .submenu-list{max-height:500px;padding-bottom:5px;padding-top:5px}.pt-side-bar-menu .menu-link{align-items:center;border-radius:8px;color:#333;cursor:pointer;display:flex;font-size:16px;margin-bottom:15px;padding:10px 15px;text-decoration:none;transition:background-color .2s,color .2s}.pt-side-bar-menu .menu-link:hover{background-color:#f1f1f1;color:#111}.pt-side-bar-menu .menu-link i{margin-right:10px}.pt-side-bar-menu .menu-list{list-style-type:none;padding:0}.pt-side-bar-menu pt-card{transition:transform .3s ease-in-out,opacity .3s ease-in-out;display:block}.pt-side-bar-menu .
|
208
|
+
args: [{ selector: 'pt-side-bar-menu', template: "<div class=\"pt-side-bar-menu\">\n <pt-card\n *ngIf=\"menuConfig.searchable\"\n [config]=\"searchCardConfig\"\n [ngClass]=\"{ 'sidebar-hidden': !menuConfig.isVisible }\"\n >\n <div class=\"search-input\">\n <pt-text-input [formGroup]=\"formGroup\" [formField]=\"searchField\">\n </pt-text-input>\n </div>\n </pt-card>\n\n <pt-card\n [config]=\"cardConfig\"\n [ngClass]=\"{ 'sidebar-hidden': !menuConfig.isVisible }\"\n >\n <ul class=\"menu-list\">\n <li\n *ngFor=\"let item of filteredMenus\"\n class=\"menu-item\"\n [ngClass]=\"{ 'menu-item-expanded': item.isExpanded }\"\n [ngStyle]=\"getMenuItemStyles()\"\n >\n <!-- Main menu items without children -->\n <a\n *ngIf=\"!item.children?.length\"\n [routerLink]=\"item.url\"\n class=\"menu-link\"\n [ngStyle]=\"getMenuLinkStyles()\"\n >\n <i [ngClass]=\"item.icon\"></i>\n <span>{{ item.label }}</span>\n <span\n *ngIf=\"item.badge\"\n [ngStyle]=\"getBadgeStyles(item.badge)\"\n class=\"badge\"\n >\n {{ item.badge.count }}\n </span>\n </a>\n\n <!-- Menu items with children -->\n <a\n *ngIf=\"item.children?.length\"\n class=\"menu-link\"\n (click)=\"toggleMenu(item, $event)\"\n [ngStyle]=\"getMenuLinkStyles()\"\n >\n <i [ngClass]=\"item.icon\"></i>\n <span>{{ item.label }}</span>\n <span\n *ngIf=\"item.badge\"\n [ngStyle]=\"getBadgeStyles(item.badge)\"\n class=\"badge\"\n >\n {{ item.badge.count }}\n </span>\n <i [ngClass]=\"getChevronClass(item)\" class=\"chevron\"></i>\n </a>\n\n <!-- Submenu -->\n <ul class=\"submenu-list\">\n <li *ngFor=\"let child of item.children\" class=\"submenu-item\">\n <a\n [routerLink]=\"child.url\"\n class=\"submenu-link\"\n [ngStyle]=\"getSubMenuLinkStyles()\"\n >\n <i [ngClass]=\"child.icon\"></i>\n <span class=\"submenu-title\">{{ child.label }}</span>\n <span\n *ngIf=\"child.badge\"\n [ngStyle]=\"getBadgeStyles(child.badge)\"\n class=\"badge\"\n >\n {{ child.badge.count }}\n </span>\n </a>\n </li>\n </ul>\n </li>\n </ul>\n </pt-card>\n</div>\n", styles: [".pt-side-bar-menu .badge{background-color:#38bdf8;border-radius:5px;color:#fff;font-size:12px;margin-left:auto;padding:2px 8px}.pt-side-bar-menu .chevron{color:#8c8c8c;cursor:pointer;margin-left:auto}.pt-side-bar-menu .menu-item{position:relative}.pt-side-bar-menu .menu-item-expanded .submenu-list{max-height:500px;padding-bottom:5px;padding-top:5px}.pt-side-bar-menu .menu-link{align-items:center;border-radius:8px;color:#333;cursor:pointer;display:flex;font-size:16px;margin-bottom:15px;padding:10px 15px;text-decoration:none;transition:background-color .2s,color .2s}.pt-side-bar-menu .menu-link:hover{background-color:#f1f1f1;color:#111}.pt-side-bar-menu .menu-link i{margin-right:10px}.pt-side-bar-menu .menu-list{list-style-type:none;padding:0}.pt-side-bar-menu pt-card{transition:transform .3s ease-in-out,opacity .3s ease-in-out;display:block}.pt-side-bar-menu .sidebar-hidden{transform:translate(-100%);opacity:0}.pt-side-bar-menu .sidebar-menu{margin:0;padding:0;transition:transform .3s ease-in-out;width:250px}.pt-side-bar-menu .submenu-item{padding:5px 0;position:relative}.pt-side-bar-menu .submenu-item:before{background-color:#e5e7eb;content:\"\";height:1px;left:-25px;position:absolute;top:50%;transform:translateY(-50%);width:25px}.pt-side-bar-menu .submenu-item:last-child:after{content:none}.pt-side-bar-menu .submenu-link{align-items:center;border-radius:5px;color:#666;display:flex;font-size:14px;padding:5px 10px;text-decoration:none;transition:background-color .2s,color .2s}.pt-side-bar-menu .submenu-link:hover{background-color:#f1f1f1;color:#000}.pt-side-bar-menu .submenu-list{border-left:1px solid #e5e7eb;list-style-type:none;margin-left:23px;margin-top:5px;max-height:0;overflow:hidden;padding-left:25px;position:relative;transition:max-height .3s ease-out,padding .3s ease-out}.pt-side-bar-menu .submenu-list:after{background-color:#e5e7eb;bottom:0;content:\"\";left:-1px;position:absolute;top:0;width:1px}.pt-side-bar-menu .submenu-title{margin-left:5px}\n"] }]
|
206
209
|
}], ctorParameters: () => [{ type: i0.Renderer2 }, { type: i0.ElementRef }], propDecorators: { menuConfig: [{
|
207
210
|
type: Input
|
208
211
|
}] } });
|
209
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHQtc2lkZS1iYXItbWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1wcmltZS10b29scy9zcmMvbGliL3B0LXNpZGUtYmFyLW1lbnUvcHQtc2lkZS1iYXItbWVudS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1wcmltZS10b29scy9zcmMvbGliL3B0LXNpZGUtYmFyLW1lbnUvcHQtc2lkZS1iYXItbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUVULEtBQUssR0FHTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBUXhELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxVQUFVLENBQUM7Ozs7OztBQU9yQyxNQUFNLE9BQU8sc0JBQXNCO0lBZWpDLFlBQW9CLFFBQW1CLEVBQVUsRUFBYztRQUEzQyxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQVUsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQWR0RCxlQUFVLEdBQXNCO1lBQ3ZDLEtBQUssRUFBRSxFQUFFO1lBQ1QsU0FBUyxFQUFFLElBQUk7WUFDZixVQUFVLEVBQUUsSUFBSTtZQUNoQixLQUFLLEVBQUUsT0FBTztZQUNkLE1BQU0sRUFBRSxPQUFPO1lBQ2YsVUFBVSxFQUFFLElBQUk7WUFDaEIsZUFBZSxFQUFFLE9BQU87WUFDeEIsU0FBUyxFQUFFLE1BQU0sRUFBRSwwQkFBMEI7WUFDN0MsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLDZCQUE2QjtZQUN2RCxVQUFVLEVBQUUsU0FBUyxFQUFFLG9DQUFvQztZQUMzRCxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsa0NBQWtDO1NBQ2pFLENBQUM7UUFJRixxQkFBZ0IsR0FBZTtZQUM3QixVQUFVLEVBQUUseUJBQXlCO1lBQ3JD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QUcsRUFBRTtnQkFDNUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLGtCQUFrQixDQUFDLENBQUM7Z0JBQ3BELElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUNwQixJQUFJLEVBQ0osT0FBTyxFQUNQLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCO29CQUM5QixJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVM7b0JBQ3pCLE1BQU0sQ0FDVCxDQUFDO1lBQ0osQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7K0dBblBVLHNCQUFzQjttR0FBdEIsc0JBQXNCLDhGQ3ZCbkMsd2hGQW9GQTs7NEZEN0RhLHNCQUFzQjtrQkFMbEMsU0FBUzsrQkFDRSxrQkFBa0I7dUdBS25CLFVBQVU7c0JBQWxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIFJlbmRlcmVyMixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtR3JvdXAsIEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgTWVudSxcbiAgRm9ybVRleHRGaWVsZCxcbiAgU2lkZU1lbnVCYXJDb25maWcsXG4gIENhcmRDb25maWcsXG4gIEJhZGdlLFxufSBmcm9tICcuLi9tb2RlbHMnO1xuaW1wb3J0IHsgQmFkZ2VUeXBlIH0gZnJvbSAnLi4vZW51bXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwdC1zaWRlLWJhci1tZW51JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3B0LXNpZGUtYmFyLW1lbnUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wdC1zaWRlLWJhci1tZW51LmNvbXBvbmVudC5jc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgUFRTaWRlQmFyTWVudUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBJbnB1dCgpIG1lbnVDb25maWc6IFNpZGVNZW51QmFyQ29uZmlnID0ge1xuICAgIG1lbnVzOiBbXSxcbiAgICBpc1Zpc2libGU6IHRydWUsXG4gICAgc2VhcmNoYWJsZTogdHJ1ZSxcbiAgICB3aWR0aDogJzI1MHB4JyxcbiAgICBoZWlnaHQ6ICcxMDB2aCcsXG4gICAgc2Nyb2xsYWJsZTogdHJ1ZSxcbiAgICBiYWNrZ3JvdW5kQ29sb3I6ICd3aGl0ZScsXG4gICAgZm9udENvbG9yOiAnIzMzMycsIC8vIERlZmF1bHQgbWFpbiBmb250IGNvbG9yXG4gICAgZm9udENvbG9yU3ViTWVudTogJyM2NjYnLCAvLyBEZWZhdWx0IHN1Ym1lbnUgZm9udCBjb2xvclxuICAgIGhvdmVyQ29sb3I6ICcjZjFmMWYxJywgLy8gRGVmYXVsdCBob3ZlciBjb2xvciBmb3IgbWFpbiBtZW51XG4gICAgaG92ZXJDb2xvclN1Yk1lbnU6ICcjZTBlMGUwJywgLy8gRGVmYXVsdCBob3ZlciBjb2xvciBmb3Igc3VibWVudVxuICB9O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMiwgcHJpdmF0ZSBlbDogRWxlbWVudFJlZikge31cblxuICBzZWFyY2hDYXJkQ29uZmlnOiBDYXJkQ29uZmlnID0ge1xuICAgIGlkZW50aWZpZXI6ICdwdC1zaWRlLWJhci1tZW51L3NlYXJjaCcsXG4gICAgYmFja2dyb3VuZENvbG9yOiAnd2hpdGUnLFxuICAgIGhlaWdodDogJzcycHgnLFxuICB9O1xuXG4gIGNhcmRDb25maWc6IENhcmRDb25maWcgPSB7XG4gICAgaWRlbnRpZmllcjogJ3B0LXNpZGUtYmFyLW1lbnUnLFxuICAgIGJhY2tncm91bmRDb2xvcjogJycsXG4gICAgd2lkdGg6ICcnLFxuICAgIGhlaWdodDogJycsXG4gICAgc2Nyb2xsYWJsZVZlcnRpY2FsOiBmYWxzZSxcbiAgfTtcblxuICBmb3JtR3JvdXA6IEZvcm1Hcm91cCA9IG5ldyBGb3JtR3JvdXAoe1xuICAgIHNlYXJjaDogbmV3IEZvcm1Db250cm9sKCcnKSxcbiAgfSk7XG5cbiAgc2VhcmNoRmllbGQ6IEZvcm1UZXh0RmllbGQgPSB7XG4gICAgbmFtZTogJ3NlYXJjaCcsXG4gICAgcGxhY2Vob2xkZXI6ICdTZWFyY2guLi4nLFxuICAgIGljb25DbGFzczogJ3BpIHBpLXNlYXJjaCcsXG4gIH07XG5cbiAgZmlsdGVyZWRNZW51czogTWVudVtdID0gW107XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5jYXJkQ29uZmlnID0ge1xuICAgICAgaWRlbnRpZmllcjogJ3B0LXNpZGUtYmFyLW1lbnUnLFxuICAgICAgYmFja2dyb3VuZENvbG9yOiB0aGlzLm1lbnVDb25maWcuYmFja2dyb3VuZENvbG9yLFxuICAgICAgd2lkdGg6IHRoaXMubWVudUNvbmZpZy53aWR0aCxcbiAgICAgIGhlaWdodDogdGhpcy5tZW51Q29uZmlnLmhlaWdodCxcbiAgICAgIHNjcm9sbGFibGVWZXJ0aWNhbDogdGhpcy5tZW51Q29uZmlnLnNjcm9sbGFibGUsXG4gICAgICBwYXR0ZXJuOiB0aGlzLm1lbnVDb25maWcucGF0dGVybixcbiAgICB9O1xuXG4gICAgdGhpcy5maWx0ZXJlZE1lbnVzID0gdGhpcy5tZW51Q29uZmlnLm1lbnVzO1xuXG4gICAgY29uc3QgY2FyZFdpZHRoID0gdGhpcy5tZW51Q29uZmlnLndpZHRoXG4gICAgICA/IHBhcnNlSW50KHRoaXMubWVudUNvbmZpZy53aWR0aClcbiAgICAgIDogMjUwO1xuICAgIHRoaXMuc2VhcmNoRmllbGQud2lkdGggPSBgJHtjYXJkV2lkdGggLSA2MH1weGA7XG4gICAgdGhpcy5zZWFyY2hDYXJkQ29uZmlnLndpZHRoID0gdGhpcy5tZW51Q29uZmlnLndpZHRoO1xuICAgIHRoaXMuc2VhcmNoQ2FyZENvbmZpZy5wYXR0ZXJuID0gdGhpcy5tZW51Q29uZmlnLnBhdHRlcm47XG5cbiAgICBpZiAodGhpcy5tZW51Q29uZmlnLnNlYXJjaGFibGUpIHtcbiAgICAgIHRoaXMuZm9ybUdyb3VwXG4gICAgICAgIC5nZXQoJ3NlYXJjaCcpXG4gICAgICAgID8udmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgoc2VhcmNoVGVybTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgdGhpcy5vblNlYXJjaChzZWFyY2hUZXJtKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgdG9nZ2xlTWVudShpdGVtOiBNZW51LCBldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBpdGVtLmlzRXhwYW5kZWQgPSAhaXRlbS5pc0V4cGFuZGVkO1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gIH1cblxuICBnZXRDaGV2cm9uQ2xhc3MoaXRlbTogTWVudSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGl0ZW0uaXNFeHBhbmRlZCA/ICdmYSBmYS1jaGV2cm9uLWRvd24nIDogJ2ZhIGZhLWNoZXZyb24tcmlnaHQnO1xuICB9XG5cbiAgZ2V0QmFkZ2VTdHlsZXMoYmFkZ2U6IEJhZGdlKSB7XG4gICAgY29uc3QgZGVmYXVsdENvbG9ycyA9IHRoaXMuZ2V0RGVmYXVsdEJhZGdlQ29sb3JzKFxuICAgICAgYmFkZ2UudHlwZSB8fCBCYWRnZVR5cGUuSW5mb1xuICAgICk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgY29sb3I6IGJhZGdlLmNvbG9yIHx8IGRlZmF1bHRDb2xvcnMuY29sb3IsXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IGJhZGdlLmJhY2tncm91bmRDb2xvciB8fCBkZWZhdWx0Q29sb3JzLmJhY2tncm91bmRDb2xvcixcbiAgICAgIHBhZGRpbmc6ICcycHggOHB4JyxcbiAgICAgIGJvcmRlclJhZGl1czogJzVweCcsXG4gICAgICBmb250U2l6ZTogJzEycHgnLFxuICAgIH07XG4gIH1cblxuICBnZXREZWZhdWx0QmFkZ2VDb2xvcnModHlwZTogQmFkZ2VUeXBlKSB7XG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlIEJhZGdlVHlwZS5JbmZvOlxuICAgICAgICByZXR1cm4geyBjb2xvcjogJ3doaXRlJywgYmFja2dyb3VuZENvbG9yOiAnIzE3YTJiOCcgfTtcbiAgICAgIGNhc2UgQmFkZ2VUeXBlLkRhbmdlcjpcbiAgICAgICAgcmV0dXJuIHsgY29sb3I6ICd3aGl0ZScsIGJhY2tncm91bmRDb2xvcjogJyNkYzM1NDUnIH07XG4gICAgICBjYXNlIEJhZGdlVHlwZS5XYXJuaW5nOlxuICAgICAgICByZXR1cm4geyBjb2xvcjogJ3doaXRlJywgYmFja2dyb3VuZENvbG9yOiAnI2ZmYzEwNycgfTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiB7IGNvbG9yOiAnd2hpdGUnLCBiYWNrZ3JvdW5kQ29sb3I6ICcjNmM3NTdkJyB9O1xuICAgIH1cbiAgfVxuXG4gIG9uU2VhcmNoKHNlYXJjaFRlcm06IHN0cmluZyk6IHZvaWQge1xuICAgIGlmIChzZWFyY2hUZXJtLnRyaW0oKSA9PT0gJycpIHtcbiAgICAgIHRoaXMuZmlsdGVyZWRNZW51cyA9IHRoaXMubWVudUNvbmZpZy5tZW51cztcbiAgICAgIHRoaXMuY29sbGFwc2VBbGxNZW51cygpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBsb3dlckNhc2VTZWFyY2ggPSBzZWFyY2hUZXJtLnRvTG93ZXJDYXNlKCk7XG4gICAgICB0aGlzLmZpbHRlcmVkTWVudXMgPSB0aGlzLm1lbnVDb25maWcubWVudXNcbiAgICAgICAgLm1hcCgobWVudSkgPT4gdGhpcy5zZWFyY2hJbk1lbnUoeyAuLi5tZW51IH0sIGxvd2VyQ2FzZVNlYXJjaCkpXG4gICAgICAgIC5maWx0ZXIoQm9vbGVhbikgYXMgTWVudVtdO1xuICAgIH1cbiAgfVxuXG4gIHNlYXJjaEluTWVudShtZW51OiBNZW51LCBzZWFyY2hUZXJtOiBzdHJpbmcpOiBNZW51IHwgbnVsbCB7XG4gICAgY29uc3QgaXNNYXRjaCA9IG1lbnUubGFiZWwudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2hUZXJtKTtcblxuICAgIGlmIChtZW51LmNoaWxkcmVuKSB7XG4gICAgICBjb25zdCBtYXRjaGluZ0NoaWxkcmVuID0gbWVudS5jaGlsZHJlblxuICAgICAgICAubWFwKChjaGlsZCkgPT4gdGhpcy5zZWFyY2hJbk1lbnUoY2hpbGQsIHNlYXJjaFRlcm0pKVxuICAgICAgICAuZmlsdGVyKEJvb2xlYW4pIGFzIE1lbnVbXTtcblxuICAgICAgaWYgKG1hdGNoaW5nQ2hpbGRyZW4ubGVuZ3RoID4gMCkge1xuICAgICAgICBtZW51LmNoaWxkcmVuID0gbWF0Y2hpbmdDaGlsZHJlbjtcbiAgICAgICAgbWVudS5pc0V4cGFuZGVkID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIG1lbnU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGlzTWF0Y2ggPyBtZW51IDogbnVsbDtcbiAgfVxuXG4gIGNvbGxhcHNlQWxsTWVudXMoKTogdm9pZCB7XG4gICAgdGhpcy5tZW51Q29uZmlnLm1lbnVzLmZvckVhY2goKG1lbnUpID0+IHtcbiAgICAgIG1lbnUuaXNFeHBhbmRlZCA9IGZhbHNlO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0TWVudUl0ZW1TdHlsZXMoKTogYW55IHtcbiAgICByZXR1cm4ge1xuICAgICAgY29sb3I6IHRoaXMubWVudUNvbmZpZy5mb250Q29sb3IgfHwgJyMzMzMnLCAvLyBTZXQgZGVmYXVsdCBmb250IGNvbG9yIGlmIG5vdCBzcGVjaWZpZWQgaW4gY29uZmlnXG4gICAgfTtcbiAgfVxuXG4gIGdldE1lbnVMaW5rU3R5bGVzKCk6IGFueSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbG9yOiB0aGlzLm1lbnVDb25maWcuZm9udENvbG9yIHx8ICcjMzMzJyxcbiAgICAgICd0ZXh0LWRlY29yYXRpb24nOiAnbm9uZScsXG4gICAgICAnYm9yZGVyLXJhZGl1cyc6ICc4cHgnLFxuICAgICAgcGFkZGluZzogJzEwcHggMTVweCcsXG4gICAgICAnZm9udC1zaXplJzogJzE2cHgnLFxuICAgICAgdHJhbnNpdGlvbjogJ2JhY2tncm91bmQtY29sb3IgMC4ycywgY29sb3IgMC4ycycsXG4gICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAnYWxpZ24taXRlbXMnOiAnY2VudGVyJyxcbiAgICAgICc6aG92ZXInOiB7XG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogdGhpcy5tZW51Q29uZmlnLmhvdmVyQ29sb3IgfHwgJyNmMWYxZjEnLFxuICAgICAgICBjb2xvcjogJyMxMTEnLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgZ2V0U3ViTWVudUxpbmtTdHlsZXMoKTogYW55IHtcbiAgICByZXR1cm4ge1xuICAgICAgY29sb3I6XG4gICAgICAgIHRoaXMubWVudUNvbmZpZy5mb250Q29sb3JTdWJNZW51IHx8IHRoaXMubWVudUNvbmZpZy5mb250Q29sb3IgfHwgJyM2NjYnLFxuICAgICAgJ3RleHQtZGVjb3JhdGlvbic6ICdub25lJyxcbiAgICAgICdib3JkZXItcmFkaXVzJzogJzVweCcsXG4gICAgICBwYWRkaW5nOiAnNXB4IDEwcHgnLFxuICAgICAgdHJhbnNpdGlvbjogJ2JhY2tncm91bmQtY29sb3IgMC4ycywgY29sb3IgMC4ycycsXG4gICAgICAnOmhvdmVyJzoge1xuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoaXMubWVudUNvbmZpZy5ob3ZlckNvbG9yU3ViTWVudSB8fCAnI2UwZTBlMCcsXG4gICAgICB9LFxuICAgIH07XG4gIH1cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuYXBwbHlIb3ZlckVmZmVjdHMoKTtcbiAgfVxuXG4gIGFwcGx5SG92ZXJFZmZlY3RzKCk6IHZvaWQge1xuICAgIGNvbnN0IG1lbnVMaW5rcyA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKCdhLm1lbnUtbGluaycpO1xuICAgIGNvbnN0IHN1Yk1lbnVMaW5rcyA9XG4gICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgnYS5zdWJtZW51LWxpbmsnKTtcblxuICAgIC8vIEFwcGx5IGhvdmVyIGVmZmVjdHMgZm9yIG1haW4gbWVudSBsaW5rc1xuICAgIG1lbnVMaW5rcy5mb3JFYWNoKChsaW5rOiBIVE1MRWxlbWVudCkgPT4ge1xuICAgICAgdGhpcy5yZW5kZXJlci5saXN0ZW4obGluaywgJ21vdXNlZW50ZXInLCAoKSA9PiB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgICAgbGluayxcbiAgICAgICAgICAnYmFja2dyb3VuZC1jb2xvcicsXG4gICAgICAgICAgdGhpcy5tZW51Q29uZmlnLmhvdmVyQ29sb3IgfHwgJyNmMWYxZjEnXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgICAgbGluayxcbiAgICAgICAgICAnY29sb3InLFxuICAgICAgICAgIHRoaXMubWVudUNvbmZpZy5ob3ZlckZvbnRDb2xvciB8fCAnd2hpdGUnXG4gICAgICAgICk7XG4gICAgICB9KTtcblxuICAgICAgdGhpcy5yZW5kZXJlci5saXN0ZW4obGluaywgJ21vdXNlbGVhdmUnLCAoKSA9PiB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlU3R5bGUobGluaywgJ2JhY2tncm91bmQtY29sb3InKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgICBsaW5rLFxuICAgICAgICAgICdjb2xvcicsXG4gICAgICAgICAgdGhpcy5tZW51Q29uZmlnLmZvbnRDb2xvciB8fCAnIzMzMydcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgLy8gQXBwbHkgaG92ZXIgZWZmZWN0cyBmb3Igc3VibWVudSBsaW5rc1xuICAgIHN1Yk1lbnVMaW5rcy5mb3JFYWNoKChsaW5rOiBIVE1MRWxlbWVudCkgPT4ge1xuICAgICAgdGhpcy5yZW5kZXJlci5saXN0ZW4obGluaywgJ21vdXNlZW50ZXInLCAoKSA9PiB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgICAgbGluayxcbiAgICAgICAgICAnYmFja2dyb3VuZC1jb2xvcicsXG4gICAgICAgICAgdGhpcy5tZW51Q29uZmlnLmhvdmVyQ29sb3JTdWJNZW51IHx8XG4gICAgICAgICAgICB0aGlzLm1lbnVDb25maWcuaG92ZXJDb2xvciB8fFxuICAgICAgICAgICAgJyNmMWYxZjEnXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgICAgbGluayxcbiAgICAgICAgICAnY29sb3InLFxuICAgICAgICAgIHRoaXMubWVudUNvbmZpZy5ob3ZlckZvbnRDb2xvclN1Yk1lbnUgfHxcbiAgICAgICAgICAgIHRoaXMubWVudUNvbmZpZy5ob3ZlckZvbnRDb2xvciB8fFxuICAgICAgICAgICAgJyNmZmYnXG4gICAgICAgICk7XG4gICAgICB9KTtcblxuICAgICAgdGhpcy5yZW5kZXJlci5saXN0ZW4obGluaywgJ21vdXNlbGVhdmUnLCAoKSA9PiB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlU3R5bGUobGluaywgJ2JhY2tncm91bmQtY29sb3InKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgICBsaW5rLFxuICAgICAgICAgICdjb2xvcicsXG4gICAgICAgICAgdGhpcy5tZW51Q29uZmlnLmZvbnRDb2xvclN1Yk1lbnUgfHxcbiAgICAgICAgICAgIHRoaXMubWVudUNvbmZpZy5mb250Q29sb3IgfHxcbiAgICAgICAgICAgICcjNjY2J1xuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJwdC1zaWRlLWJhci1tZW51XCI+XG4gIDxwdC1jYXJkXG4gICAgKm5nSWY9XCJtZW51Q29uZmlnLnNlYXJjaGFibGVcIlxuICAgIFtjb25maWddPVwic2VhcmNoQ2FyZENvbmZpZ1wiXG4gICAgW25nQ2xhc3NdPVwieyAnc2lkZWJhci1oaWRkZW4nOiAhbWVudUNvbmZpZy5pc1Zpc2libGUgfVwiXG4gID5cbiAgICA8ZGl2IGNsYXNzPVwic2VhcmNoLWlucHV0XCI+XG4gICAgICA8cHQtdGV4dC1pbnB1dCBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiIFtmb3JtRmllbGRdPVwic2VhcmNoRmllbGRcIj5cbiAgICAgIDwvcHQtdGV4dC1pbnB1dD5cbiAgICA8L2Rpdj5cbiAgPC9wdC1jYXJkPlxuXG4gIDxwdC1jYXJkXG4gICAgW2NvbmZpZ109XCJjYXJkQ29uZmlnXCJcbiAgICBbbmdDbGFzc109XCJ7ICdzaWRlYmFyLWhpZGRlbic6ICFtZW51Q29uZmlnLmlzVmlzaWJsZSB9XCJcbiAgPlxuICAgIDx1bCBjbGFzcz1cIm1lbnUtbGlzdFwiPlxuICAgICAgPGxpXG4gICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIGZpbHRlcmVkTWVudXNcIlxuICAgICAgICBjbGFzcz1cIm1lbnUtaXRlbVwiXG4gICAgICAgIFtuZ0NsYXNzXT1cInsgJ21lbnUtaXRlbS1leHBhbmRlZCc6IGl0ZW0uaXNFeHBhbmRlZCB9XCJcbiAgICAgICAgW25nU3R5bGVdPVwiZ2V0TWVudUl0ZW1TdHlsZXMoKVwiXG4gICAgICA+XG4gICAgICAgIDwhLS0gTWFpbiBtZW51IGl0ZW1zIHdpdGhvdXQgY2hpbGRyZW4gLS0+XG4gICAgICAgIDxhXG4gICAgICAgICAgKm5nSWY9XCIhaXRlbS5jaGlsZHJlbj8ubGVuZ3RoXCJcbiAgICAgICAgICBbcm91dGVyTGlua109XCJpdGVtLnVybFwiXG4gICAgICAgICAgY2xhc3M9XCJtZW51LWxpbmtcIlxuICAgICAgICAgIFtuZ1N0eWxlXT1cImdldE1lbnVMaW5rU3R5bGVzKClcIlxuICAgICAgICA+XG4gICAgICAgICAgPGkgW25nQ2xhc3NdPVwiaXRlbS5pY29uXCI+PC9pPlxuICAgICAgICAgIDxzcGFuPnt7IGl0ZW0ubGFiZWwgfX08L3NwYW4+XG4gICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICpuZ0lmPVwiaXRlbS5iYWRnZVwiXG4gICAgICAgICAgICBbbmdTdHlsZV09XCJnZXRCYWRnZVN0eWxlcyhpdGVtLmJhZGdlKVwiXG4gICAgICAgICAgICBjbGFzcz1cImJhZGdlXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyBpdGVtLmJhZGdlLmNvdW50IH19XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2E+XG5cbiAgICAgICAgPCEtLSBNZW51IGl0ZW1zIHdpdGggY2hpbGRyZW4gLS0+XG4gICAgICAgIDxhXG4gICAgICAgICAgKm5nSWY9XCJpdGVtLmNoaWxkcmVuPy5sZW5ndGhcIlxuICAgICAgICAgIGNsYXNzPVwibWVudS1saW5rXCJcbiAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlTWVudShpdGVtLCAkZXZlbnQpXCJcbiAgICAgICAgICBbbmdTdHlsZV09XCJnZXRNZW51TGlua1N0eWxlcygpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxpIFtuZ0NsYXNzXT1cIml0ZW0uaWNvblwiPjwvaT5cbiAgICAgICAgICA8c3Bhbj57eyBpdGVtLmxhYmVsIH19PC9zcGFuPlxuICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAqbmdJZj1cIml0ZW0uYmFkZ2VcIlxuICAgICAgICAgICAgW25nU3R5bGVdPVwiZ2V0QmFkZ2VTdHlsZXMoaXRlbS5iYWRnZSlcIlxuICAgICAgICAgICAgY2xhc3M9XCJiYWRnZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgaXRlbS5iYWRnZS5jb3VudCB9fVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8aSBbbmdDbGFzc109XCJnZXRDaGV2cm9uQ2xhc3MoaXRlbSlcIiBjbGFzcz1cImNoZXZyb25cIj48L2k+XG4gICAgICAgIDwvYT5cblxuICAgICAgICA8IS0tIFN1Ym1lbnUgLS0+XG4gICAgICAgIDx1bCBjbGFzcz1cInN1Ym1lbnUtbGlzdFwiPlxuICAgICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgY2hpbGQgb2YgaXRlbS5jaGlsZHJlblwiIGNsYXNzPVwic3VibWVudS1pdGVtXCI+XG4gICAgICAgICAgICA8YVxuICAgICAgICAgICAgICBbcm91dGVyTGlua109XCJjaGlsZC51cmxcIlxuICAgICAgICAgICAgICBjbGFzcz1cInN1Ym1lbnUtbGlua1wiXG4gICAgICAgICAgICAgIFtuZ1N0eWxlXT1cImdldFN1Yk1lbnVMaW5rU3R5bGVzKClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8aSBbbmdDbGFzc109XCJjaGlsZC5pY29uXCI+PC9pPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN1Ym1lbnUtdGl0bGVcIj57eyBjaGlsZC5sYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAqbmdJZj1cImNoaWxkLmJhZGdlXCJcbiAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJnZXRCYWRnZVN0eWxlcyhjaGlsZC5iYWRnZSlcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYmFkZ2VcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3sgY2hpbGQuYmFkZ2UuY291bnQgfX1cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9hPlxuICAgICAgICAgIDwvbGk+XG4gICAgICAgIDwvdWw+XG4gICAgICA8L2xpPlxuICAgIDwvdWw+XG4gIDwvcHQtY2FyZD5cbjwvZGl2PlxuIl19
|
212
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHQtc2lkZS1iYXItbWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1wcmltZS10b29scy9zcmMvbGliL3B0LXNpZGUtYmFyLW1lbnUvcHQtc2lkZS1iYXItbWVudS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1wcmltZS10b29scy9zcmMvbGliL3B0LXNpZGUtYmFyLW1lbnUvcHQtc2lkZS1iYXItbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUVULEtBQUssR0FHTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBUXhELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxVQUFVLENBQUM7Ozs7OztBQU9yQyxNQUFNLE9BQU8sc0JBQXNCO0lBZWpDLFlBQW9CLFFBQW1CLEVBQVUsRUFBYztRQUEzQyxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQVUsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQWR0RCxlQUFVLEdBQXNCO1lBQ3ZDLEtBQUssRUFBRSxFQUFFO1lBQ1QsU0FBUyxFQUFFLElBQUk7WUFDZixVQUFVLEVBQUUsSUFBSTtZQUNoQixLQUFLLEVBQUUsT0FBTztZQUNkLE1BQU0sRUFBRSxPQUFPO1lBQ2YsVUFBVSxFQUFFLElBQUk7WUFDaEIsZUFBZSxFQUFFLE9BQU87WUFDeEIsU0FBUyxFQUFFLE1BQU07WUFDakIsZ0JBQWdCLEVBQUUsTUFBTTtZQUN4QixVQUFVLEVBQUUsU0FBUztZQUNyQixpQkFBaUIsRUFBRSxTQUFTO1NBQzdCLENBQUM7UUFJRixxQkFBZ0IsR0FBZTtZQUM3QixZQUFZLEVBQUUsUUFBUTtZQUN0QixnQkFBZ0IsRUFBRSxRQUFRO1lBQzFCLFVBQVUsRUFBRSx5QkFBeUI7WUFDckMsZUFBZSxFQUFFLE9BQU87WUFDeEIsTUFBTSxFQUFFLE1BQU07WUFDZCxPQUFPLEVBQUUsR0FBRztTQUNiLENBQUM7UUFFRixlQUFVLEdBQWU7WUFDdkIsVUFBVSxFQUFFLGtCQUFrQjtZQUM5QixlQUFlLEVBQUUsRUFBRTtZQUNuQixLQUFLLEVBQUUsRUFBRTtZQUNULE1BQU0sRUFBRSxFQUFFO1lBQ1Ysa0JBQWtCLEVBQUUsS0FBSztTQUMxQixDQUFDO1FBRUYsY0FBUyxHQUFjLElBQUksU0FBUyxDQUFDO1lBQ25DLE1BQU0sRUFBRSxJQUFJLFdBQVcsQ0FBQyxFQUFFLENBQUM7U0FDNUIsQ0FBQyxDQUFDO1FBRUgsZ0JBQVcsR0FBa0I7WUFDM0IsSUFBSSxFQUFFLFFBQVE7WUFDZCxXQUFXLEVBQUUsV0FBVztZQUN4QixTQUFTLEVBQUUsY0FBYztTQUMxQixDQUFDO1FBRUYsa0JBQWEsR0FBVyxFQUFFLENBQUM7SUE3QnVDLENBQUM7SUErQm5FLFFBQVE7UUFDTixJQUFJLENBQUMsVUFBVSxHQUFHO1lBQ2hCLFVBQVUsRUFBRSxrQkFBa0I7WUFDOUIsZUFBZSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsZUFBZTtZQUNoRCxLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLO1lBQzVCLE1BQU0sRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU07WUFDOUIsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVO1lBQzlDLE9BQU8sRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU87U0FDakMsQ0FBQztRQUVGLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUM7UUFFM0MsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLO1lBQ3JDLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUM7WUFDakMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztRQUNSLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxHQUFHLEdBQUcsU0FBUyxHQUFHLEVBQUUsSUFBSSxDQUFDO1FBQy9DLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUM7UUFDcEQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQztRQUV4RCxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDL0IsSUFBSSxDQUFDLFNBQVM7aUJBQ1gsR0FBRyxDQUFDLFFBQVEsQ0FBQztnQkFDZCxFQUFFLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxVQUFrQixFQUFFLEVBQUU7Z0JBQzlDLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDNUIsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDO0lBQ0gsQ0FBQztJQUVELFVBQVUsQ0FBQyxJQUFVLEVBQUUsS0FBWTtRQUNqQyxJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUNuQyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELGVBQWUsQ0FBQyxJQUFVO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixDQUFDO0lBQ3hFLENBQUM7SUFFRCxjQUFjLENBQUMsS0FBWTtRQUN6QixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQzlDLEtBQUssQ0FBQyxJQUFJLElBQUksU0FBUyxDQUFDLElBQUksQ0FDN0IsQ0FBQztRQUVGLE9BQU87WUFDTCxLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUssSUFBSSxhQUFhLENBQUMsS0FBSztZQUN6QyxlQUFlLEVBQUUsS0FBSyxDQUFDLGVBQWUsSUFBSSxhQUFhLENBQUMsZUFBZTtZQUN2RSxPQUFPLEVBQUUsU0FBUztZQUNsQixZQUFZLEVBQUUsS0FBSztZQUNuQixRQUFRLEVBQUUsTUFBTTtTQUNqQixDQUFDO0lBQ0osQ0FBQztJQUVELHFCQUFxQixDQUFDLElBQWU7UUFDbkMsUUFBUSxJQUFJLEVBQUUsQ0FBQztZQUNiLEtBQUssU0FBUyxDQUFDLElBQUk7Z0JBQ2pCLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsQ0FBQztZQUN4RCxLQUFLLFNBQVMsQ0FBQyxNQUFNO2dCQUNuQixPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLENBQUM7WUFDeEQsS0FBSyxTQUFTLENBQUMsT0FBTztnQkFDcEIsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxDQUFDO1lBQ3hEO2dCQUNFLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsQ0FBQztRQUMxRCxDQUFDO0lBQ0gsQ0FBQztJQUVELFFBQVEsQ0FBQyxVQUFrQjtRQUN6QixJQUFJLFVBQVUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDO1lBQzNDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQzFCLENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxlQUFlLEdBQUcsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2pELElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLO2lCQUN2QyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxHQUFHLElBQUksRUFBRSxFQUFFLGVBQWUsQ0FBQyxDQUFDO2lCQUM5RCxNQUFNLENBQUMsT0FBTyxDQUFXLENBQUM7UUFDL0IsQ0FBQztJQUNILENBQUM7SUFFRCxZQUFZLENBQUMsSUFBVSxFQUFFLFVBQWtCO1FBQ3pDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRTlELElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2xCLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFFBQVE7aUJBQ25DLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQUM7aUJBQ3BELE1BQU0sQ0FBQyxPQUFPLENBQVcsQ0FBQztZQUU3QixJQUFJLGdCQUFnQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDaEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxnQkFBZ0IsQ0FBQztnQkFDakMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7Z0JBQ3ZCLE9BQU8sSUFBSSxDQUFDO1lBQ2QsQ0FBQztRQUNILENBQUM7UUFFRCxPQUFPLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDL0IsQ0FBQztJQUVELGdCQUFnQjtRQUNkLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ3JDLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGlCQUFpQjtRQUNmLE9BQU87WUFDTCxLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLElBQUksTUFBTSxFQUFFLG9EQUFvRDtTQUNqRyxDQUFDO0lBQ0osQ0FBQztJQUVELGlCQUFpQjtRQUNmLE9BQU87WUFDTCxLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLElBQUksTUFBTTtZQUMxQyxpQkFBaUIsRUFBRSxNQUFNO1lBQ3pCLGVBQWUsRUFBRSxLQUFLO1lBQ3RCLE9BQU8sRUFBRSxXQUFXO1lBQ3BCLFdBQVcsRUFBRSxNQUFNO1lBQ25CLFVBQVUsRUFBRSxtQ0FBbUM7WUFDL0MsT0FBTyxFQUFFLE1BQU07WUFDZixhQUFhLEVBQUUsUUFBUTtZQUN2QixRQUFRLEVBQUU7Z0JBQ1IsZUFBZSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxJQUFJLFNBQVM7Z0JBQ3hELEtBQUssRUFBRSxNQUFNO2FBQ2Q7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUVELG9CQUFvQjtRQUNsQixPQUFPO1lBQ0wsS0FBSyxFQUNILElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLElBQUksTUFBTTtZQUN6RSxpQkFBaUIsRUFBRSxNQUFNO1lBQ3pCLGVBQWUsRUFBRSxLQUFLO1lBQ3RCLE9BQU8sRUFBRSxVQUFVO1lBQ25CLFVBQVUsRUFBRSxtQ0FBbUM7WUFDL0MsUUFBUSxFQUFFO2dCQUNSLGVBQWUsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLGlCQUFpQixJQUFJLFNBQVM7YUFDaEU7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUNELGVBQWU7UUFDYixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDeEUsTUFBTSxZQUFZLEdBQ2hCLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFFM0QsMENBQTBDO1FBQzFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFpQixFQUFFLEVBQUU7WUFDdEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRSxHQUFHLEVBQUU7Z0JBQzVDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUNwQixJQUFJLEVBQ0osa0JBQWtCLEVBQ2xCLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxJQUFJLFNBQVMsQ0FDeEMsQ0FBQztnQkFDRixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FDcEIsSUFBSSxFQUNKLE9BQU8sRUFDUCxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsSUFBSSxPQUFPLENBQzFDLENBQUM7WUFDSixDQUFDLENBQUMsQ0FBQztZQUVILElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxZQUFZLEVBQUUsR0FBRyxFQUFFO2dCQUM1QyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztnQkFDcEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQ3BCLElBQUksRUFDSixPQUFPLEVBQ1AsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLElBQUksTUFBTSxDQUNwQyxDQUFDO1lBQ0osQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILHdDQUF3QztRQUN4QyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBaUIsRUFBRSxFQUFFO1lBQ3pDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxZQUFZLEVBQUUsR0FBRyxFQUFFO2dCQUM1QyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FDcEIsSUFBSSxFQUNKLGtCQUFrQixFQUNsQixJQUFJLENBQUMsVUFBVSxDQUFDLGlCQUFpQjtvQkFDL0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVO29CQUMxQixTQUFTLENBQ1osQ0FBQztnQkFDRixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FDcEIsSUFBSSxFQUNKLE9BQU8sRUFDUCxJQUFJLENBQUMsVUFBVSxDQUFDLHFCQUFxQjtvQkFDbkMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxjQUFjO29CQUM5QixNQUFNLENBQ1QsQ0FBQztZQUNKLENBQUMsQ0FBQyxDQUFDO1lBRUgsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRSxHQUFHLEVBQUU7Z0JBQzVDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO2dCQUNwRCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FDcEIsSUFBSSxFQUNKLE9BQU8sRUFDUCxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQjtvQkFDOUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTO29CQUN6QixNQUFNLENBQ1QsQ0FBQztZQUNKLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOytHQXRQVSxzQkFBc0I7bUdBQXRCLHNCQUFzQiw4RkN2Qm5DLHdoRkFvRkE7OzRGRDdEYSxzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0Usa0JBQWtCO3VHQUtuQixVQUFVO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBSZW5kZXJlcjIsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwLCBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gIE1lbnUsXG4gIEZvcm1UZXh0RmllbGQsXG4gIFNpZGVNZW51QmFyQ29uZmlnLFxuICBDYXJkQ29uZmlnLFxuICBCYWRnZSxcbn0gZnJvbSAnLi4vbW9kZWxzJztcbmltcG9ydCB7IEJhZGdlVHlwZSB9IGZyb20gJy4uL2VudW1zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncHQtc2lkZS1iYXItbWVudScsXG4gIHRlbXBsYXRlVXJsOiAnLi9wdC1zaWRlLWJhci1tZW51LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcHQtc2lkZS1iYXItbWVudS5jb21wb25lbnQuY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFBUU2lkZUJhck1lbnVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xuICBASW5wdXQoKSBtZW51Q29uZmlnOiBTaWRlTWVudUJhckNvbmZpZyA9IHtcbiAgICBtZW51czogW10sXG4gICAgaXNWaXNpYmxlOiB0cnVlLFxuICAgIHNlYXJjaGFibGU6IHRydWUsXG4gICAgd2lkdGg6ICcyNTBweCcsXG4gICAgaGVpZ2h0OiAnMTAwdmgnLFxuICAgIHNjcm9sbGFibGU6IHRydWUsXG4gICAgYmFja2dyb3VuZENvbG9yOiAnd2hpdGUnLFxuICAgIGZvbnRDb2xvcjogJyMzMzMnLFxuICAgIGZvbnRDb2xvclN1Yk1lbnU6ICcjNjY2JyxcbiAgICBob3ZlckNvbG9yOiAnI2YxZjFmMScsXG4gICAgaG92ZXJDb2xvclN1Yk1lbnU6ICcjZTBlMGUwJyxcbiAgfTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsIHByaXZhdGUgZWw6IEVsZW1lbnRSZWYpIHt9XG5cbiAgc2VhcmNoQ2FyZENvbmZpZzogQ2FyZENvbmZpZyA9IHtcbiAgICBhbGlnbkNvbnRlbnQ6ICdjZW50ZXInLFxuICAgIGFsaWduQm9keUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgIGlkZW50aWZpZXI6ICdwdC1zaWRlLWJhci1tZW51L3NlYXJjaCcsXG4gICAgYmFja2dyb3VuZENvbG9yOiAnd2hpdGUnLFxuICAgIGhlaWdodDogJzcycHgnLFxuICAgIHBhZGRpbmc6ICcwJyxcbiAgfTtcblxuICBjYXJkQ29uZmlnOiBDYXJkQ29uZmlnID0ge1xuICAgIGlkZW50aWZpZXI6ICdwdC1zaWRlLWJhci1tZW51JyxcbiAgICBiYWNrZ3JvdW5kQ29sb3I6ICcnLFxuICAgIHdpZHRoOiAnJyxcbiAgICBoZWlnaHQ6ICcnLFxuICAgIHNjcm9sbGFibGVWZXJ0aWNhbDogZmFsc2UsXG4gIH07XG5cbiAgZm9ybUdyb3VwOiBGb3JtR3JvdXAgPSBuZXcgRm9ybUdyb3VwKHtcbiAgICBzZWFyY2g6IG5ldyBGb3JtQ29udHJvbCgnJyksXG4gIH0pO1xuXG4gIHNlYXJjaEZpZWxkOiBGb3JtVGV4dEZpZWxkID0ge1xuICAgIG5hbWU6ICdzZWFyY2gnLFxuICAgIHBsYWNlaG9sZGVyOiAnU2VhcmNoLi4uJyxcbiAgICBpY29uQ2xhc3M6ICdwaSBwaS1zZWFyY2gnLFxuICB9O1xuXG4gIGZpbHRlcmVkTWVudXM6IE1lbnVbXSA9IFtdO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuY2FyZENvbmZpZyA9IHtcbiAgICAgIGlkZW50aWZpZXI6ICdwdC1zaWRlLWJhci1tZW51JyxcbiAgICAgIGJhY2tncm91bmRDb2xvcjogdGhpcy5tZW51Q29uZmlnLmJhY2tncm91bmRDb2xvcixcbiAgICAgIHdpZHRoOiB0aGlzLm1lbnVDb25maWcud2lkdGgsXG4gICAgICBoZWlnaHQ6IHRoaXMubWVudUNvbmZpZy5oZWlnaHQsXG4gICAgICBzY3JvbGxhYmxlVmVydGljYWw6IHRoaXMubWVudUNvbmZpZy5zY3JvbGxhYmxlLFxuICAgICAgcGF0dGVybjogdGhpcy5tZW51Q29uZmlnLnBhdHRlcm4sXG4gICAgfTtcblxuICAgIHRoaXMuZmlsdGVyZWRNZW51cyA9IHRoaXMubWVudUNvbmZpZy5tZW51cztcblxuICAgIGNvbnN0IGNhcmRXaWR0aCA9IHRoaXMubWVudUNvbmZpZy53aWR0aFxuICAgICAgPyBwYXJzZUludCh0aGlzLm1lbnVDb25maWcud2lkdGgpXG4gICAgICA6IDI1MDtcbiAgICB0aGlzLnNlYXJjaEZpZWxkLndpZHRoID0gYCR7Y2FyZFdpZHRoIC0gNjB9cHhgO1xuICAgIHRoaXMuc2VhcmNoQ2FyZENvbmZpZy53aWR0aCA9IHRoaXMubWVudUNvbmZpZy53aWR0aDtcbiAgICB0aGlzLnNlYXJjaENhcmRDb25maWcucGF0dGVybiA9IHRoaXMubWVudUNvbmZpZy5wYXR0ZXJuO1xuXG4gICAgaWYgKHRoaXMubWVudUNvbmZpZy5zZWFyY2hhYmxlKSB7XG4gICAgICB0aGlzLmZvcm1Hcm91cFxuICAgICAgICAuZ2V0KCdzZWFyY2gnKVxuICAgICAgICA/LnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKHNlYXJjaFRlcm06IHN0cmluZykgPT4ge1xuICAgICAgICAgIHRoaXMub25TZWFyY2goc2VhcmNoVGVybSk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHRvZ2dsZU1lbnUoaXRlbTogTWVudSwgZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgaXRlbS5pc0V4cGFuZGVkID0gIWl0ZW0uaXNFeHBhbmRlZDtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICB9XG5cbiAgZ2V0Q2hldnJvbkNsYXNzKGl0ZW06IE1lbnUpOiBzdHJpbmcge1xuICAgIHJldHVybiBpdGVtLmlzRXhwYW5kZWQgPyAnZmEgZmEtY2hldnJvbi1kb3duJyA6ICdmYSBmYS1jaGV2cm9uLXJpZ2h0JztcbiAgfVxuXG4gIGdldEJhZGdlU3R5bGVzKGJhZGdlOiBCYWRnZSkge1xuICAgIGNvbnN0IGRlZmF1bHRDb2xvcnMgPSB0aGlzLmdldERlZmF1bHRCYWRnZUNvbG9ycyhcbiAgICAgIGJhZGdlLnR5cGUgfHwgQmFkZ2VUeXBlLkluZm9cbiAgICApO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbG9yOiBiYWRnZS5jb2xvciB8fCBkZWZhdWx0Q29sb3JzLmNvbG9yLFxuICAgICAgYmFja2dyb3VuZENvbG9yOiBiYWRnZS5iYWNrZ3JvdW5kQ29sb3IgfHwgZGVmYXVsdENvbG9ycy5iYWNrZ3JvdW5kQ29sb3IsXG4gICAgICBwYWRkaW5nOiAnMnB4IDhweCcsXG4gICAgICBib3JkZXJSYWRpdXM6ICc1cHgnLFxuICAgICAgZm9udFNpemU6ICcxMnB4JyxcbiAgICB9O1xuICB9XG5cbiAgZ2V0RGVmYXVsdEJhZGdlQ29sb3JzKHR5cGU6IEJhZGdlVHlwZSkge1xuICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgY2FzZSBCYWRnZVR5cGUuSW5mbzpcbiAgICAgICAgcmV0dXJuIHsgY29sb3I6ICd3aGl0ZScsIGJhY2tncm91bmRDb2xvcjogJyMxN2EyYjgnIH07XG4gICAgICBjYXNlIEJhZGdlVHlwZS5EYW5nZXI6XG4gICAgICAgIHJldHVybiB7IGNvbG9yOiAnd2hpdGUnLCBiYWNrZ3JvdW5kQ29sb3I6ICcjZGMzNTQ1JyB9O1xuICAgICAgY2FzZSBCYWRnZVR5cGUuV2FybmluZzpcbiAgICAgICAgcmV0dXJuIHsgY29sb3I6ICd3aGl0ZScsIGJhY2tncm91bmRDb2xvcjogJyNmZmMxMDcnIH07XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4geyBjb2xvcjogJ3doaXRlJywgYmFja2dyb3VuZENvbG9yOiAnIzZjNzU3ZCcgfTtcbiAgICB9XG4gIH1cblxuICBvblNlYXJjaChzZWFyY2hUZXJtOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoc2VhcmNoVGVybS50cmltKCkgPT09ICcnKSB7XG4gICAgICB0aGlzLmZpbHRlcmVkTWVudXMgPSB0aGlzLm1lbnVDb25maWcubWVudXM7XG4gICAgICB0aGlzLmNvbGxhcHNlQWxsTWVudXMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgbG93ZXJDYXNlU2VhcmNoID0gc2VhcmNoVGVybS50b0xvd2VyQ2FzZSgpO1xuICAgICAgdGhpcy5maWx0ZXJlZE1lbnVzID0gdGhpcy5tZW51Q29uZmlnLm1lbnVzXG4gICAgICAgIC5tYXAoKG1lbnUpID0+IHRoaXMuc2VhcmNoSW5NZW51KHsgLi4ubWVudSB9LCBsb3dlckNhc2VTZWFyY2gpKVxuICAgICAgICAuZmlsdGVyKEJvb2xlYW4pIGFzIE1lbnVbXTtcbiAgICB9XG4gIH1cblxuICBzZWFyY2hJbk1lbnUobWVudTogTWVudSwgc2VhcmNoVGVybTogc3RyaW5nKTogTWVudSB8IG51bGwge1xuICAgIGNvbnN0IGlzTWF0Y2ggPSBtZW51LmxhYmVsLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVGVybSk7XG5cbiAgICBpZiAobWVudS5jaGlsZHJlbikge1xuICAgICAgY29uc3QgbWF0Y2hpbmdDaGlsZHJlbiA9IG1lbnUuY2hpbGRyZW5cbiAgICAgICAgLm1hcCgoY2hpbGQpID0+IHRoaXMuc2VhcmNoSW5NZW51KGNoaWxkLCBzZWFyY2hUZXJtKSlcbiAgICAgICAgLmZpbHRlcihCb29sZWFuKSBhcyBNZW51W107XG5cbiAgICAgIGlmIChtYXRjaGluZ0NoaWxkcmVuLmxlbmd0aCA+IDApIHtcbiAgICAgICAgbWVudS5jaGlsZHJlbiA9IG1hdGNoaW5nQ2hpbGRyZW47XG4gICAgICAgIG1lbnUuaXNFeHBhbmRlZCA9IHRydWU7XG4gICAgICAgIHJldHVybiBtZW51O1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBpc01hdGNoID8gbWVudSA6IG51bGw7XG4gIH1cblxuICBjb2xsYXBzZUFsbE1lbnVzKCk6IHZvaWQge1xuICAgIHRoaXMubWVudUNvbmZpZy5tZW51cy5mb3JFYWNoKChtZW51KSA9PiB7XG4gICAgICBtZW51LmlzRXhwYW5kZWQgPSBmYWxzZTtcbiAgICB9KTtcbiAgfVxuXG4gIGdldE1lbnVJdGVtU3R5bGVzKCk6IGFueSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbG9yOiB0aGlzLm1lbnVDb25maWcuZm9udENvbG9yIHx8ICcjMzMzJywgLy8gU2V0IGRlZmF1bHQgZm9udCBjb2xvciBpZiBub3Qgc3BlY2lmaWVkIGluIGNvbmZpZ1xuICAgIH07XG4gIH1cblxuICBnZXRNZW51TGlua1N0eWxlcygpOiBhbnkge1xuICAgIHJldHVybiB7XG4gICAgICBjb2xvcjogdGhpcy5tZW51Q29uZmlnLmZvbnRDb2xvciB8fCAnIzMzMycsXG4gICAgICAndGV4dC1kZWNvcmF0aW9uJzogJ25vbmUnLFxuICAgICAgJ2JvcmRlci1yYWRpdXMnOiAnOHB4JyxcbiAgICAgIHBhZGRpbmc6ICcxMHB4IDE1cHgnLFxuICAgICAgJ2ZvbnQtc2l6ZSc6ICcxNnB4JyxcbiAgICAgIHRyYW5zaXRpb246ICdiYWNrZ3JvdW5kLWNvbG9yIDAuMnMsIGNvbG9yIDAuMnMnLFxuICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgJ2FsaWduLWl0ZW1zJzogJ2NlbnRlcicsXG4gICAgICAnOmhvdmVyJzoge1xuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoaXMubWVudUNvbmZpZy5ob3ZlckNvbG9yIHx8ICcjZjFmMWYxJyxcbiAgICAgICAgY29sb3I6ICcjMTExJyxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIGdldFN1Yk1lbnVMaW5rU3R5bGVzKCk6IGFueSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbG9yOlxuICAgICAgICB0aGlzLm1lbnVDb25maWcuZm9udENvbG9yU3ViTWVudSB8fCB0aGlzLm1lbnVDb25maWcuZm9udENvbG9yIHx8ICcjNjY2JyxcbiAgICAgICd0ZXh0LWRlY29yYXRpb24nOiAnbm9uZScsXG4gICAgICAnYm9yZGVyLXJhZGl1cyc6ICc1cHgnLFxuICAgICAgcGFkZGluZzogJzVweCAxMHB4JyxcbiAgICAgIHRyYW5zaXRpb246ICdiYWNrZ3JvdW5kLWNvbG9yIDAuMnMsIGNvbG9yIDAuMnMnLFxuICAgICAgJzpob3Zlcic6IHtcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiB0aGlzLm1lbnVDb25maWcuaG92ZXJDb2xvclN1Yk1lbnUgfHwgJyNlMGUwZTAnLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmFwcGx5SG92ZXJFZmZlY3RzKCk7XG4gIH1cblxuICBhcHBseUhvdmVyRWZmZWN0cygpOiB2b2lkIHtcbiAgICBjb25zdCBtZW51TGlua3MgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgnYS5tZW51LWxpbmsnKTtcbiAgICBjb25zdCBzdWJNZW51TGlua3MgPVxuICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2Euc3VibWVudS1saW5rJyk7XG5cbiAgICAvLyBBcHBseSBob3ZlciBlZmZlY3RzIGZvciBtYWluIG1lbnUgbGlua3NcbiAgICBtZW51TGlua3MuZm9yRWFjaCgobGluazogSFRNTEVsZW1lbnQpID0+IHtcbiAgICAgIHRoaXMucmVuZGVyZXIubGlzdGVuKGxpbmssICdtb3VzZWVudGVyJywgKCkgPT4ge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICAgIGxpbmssXG4gICAgICAgICAgJ2JhY2tncm91bmQtY29sb3InLFxuICAgICAgICAgIHRoaXMubWVudUNvbmZpZy5ob3ZlckNvbG9yIHx8ICcjZjFmMWYxJ1xuICAgICAgICApO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICAgIGxpbmssXG4gICAgICAgICAgJ2NvbG9yJyxcbiAgICAgICAgICB0aGlzLm1lbnVDb25maWcuaG92ZXJGb250Q29sb3IgfHwgJ3doaXRlJ1xuICAgICAgICApO1xuICAgICAgfSk7XG5cbiAgICAgIHRoaXMucmVuZGVyZXIubGlzdGVuKGxpbmssICdtb3VzZWxlYXZlJywgKCkgPT4ge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZVN0eWxlKGxpbmssICdiYWNrZ3JvdW5kLWNvbG9yJyk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgICAgbGluayxcbiAgICAgICAgICAnY29sb3InLFxuICAgICAgICAgIHRoaXMubWVudUNvbmZpZy5mb250Q29sb3IgfHwgJyMzMzMnXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIC8vIEFwcGx5IGhvdmVyIGVmZmVjdHMgZm9yIHN1Ym1lbnUgbGlua3NcbiAgICBzdWJNZW51TGlua3MuZm9yRWFjaCgobGluazogSFRNTEVsZW1lbnQpID0+IHtcbiAgICAgIHRoaXMucmVuZGVyZXIubGlzdGVuKGxpbmssICdtb3VzZWVudGVyJywgKCkgPT4ge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICAgIGxpbmssXG4gICAgICAgICAgJ2JhY2tncm91bmQtY29sb3InLFxuICAgICAgICAgIHRoaXMubWVudUNvbmZpZy5ob3ZlckNvbG9yU3ViTWVudSB8fFxuICAgICAgICAgICAgdGhpcy5tZW51Q29uZmlnLmhvdmVyQ29sb3IgfHxcbiAgICAgICAgICAgICcjZjFmMWYxJ1xuICAgICAgICApO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICAgIGxpbmssXG4gICAgICAgICAgJ2NvbG9yJyxcbiAgICAgICAgICB0aGlzLm1lbnVDb25maWcuaG92ZXJGb250Q29sb3JTdWJNZW51IHx8XG4gICAgICAgICAgICB0aGlzLm1lbnVDb25maWcuaG92ZXJGb250Q29sb3IgfHxcbiAgICAgICAgICAgICcjZmZmJ1xuICAgICAgICApO1xuICAgICAgfSk7XG5cbiAgICAgIHRoaXMucmVuZGVyZXIubGlzdGVuKGxpbmssICdtb3VzZWxlYXZlJywgKCkgPT4ge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZVN0eWxlKGxpbmssICdiYWNrZ3JvdW5kLWNvbG9yJyk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgICAgbGluayxcbiAgICAgICAgICAnY29sb3InLFxuICAgICAgICAgIHRoaXMubWVudUNvbmZpZy5mb250Q29sb3JTdWJNZW51IHx8XG4gICAgICAgICAgICB0aGlzLm1lbnVDb25maWcuZm9udENvbG9yIHx8XG4gICAgICAgICAgICAnIzY2NidcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwicHQtc2lkZS1iYXItbWVudVwiPlxuICA8cHQtY2FyZFxuICAgICpuZ0lmPVwibWVudUNvbmZpZy5zZWFyY2hhYmxlXCJcbiAgICBbY29uZmlnXT1cInNlYXJjaENhcmRDb25maWdcIlxuICAgIFtuZ0NsYXNzXT1cInsgJ3NpZGViYXItaGlkZGVuJzogIW1lbnVDb25maWcuaXNWaXNpYmxlIH1cIlxuICA+XG4gICAgPGRpdiBjbGFzcz1cInNlYXJjaC1pbnB1dFwiPlxuICAgICAgPHB0LXRleHQtaW5wdXQgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIiBbZm9ybUZpZWxkXT1cInNlYXJjaEZpZWxkXCI+XG4gICAgICA8L3B0LXRleHQtaW5wdXQ+XG4gICAgPC9kaXY+XG4gIDwvcHQtY2FyZD5cblxuICA8cHQtY2FyZFxuICAgIFtjb25maWddPVwiY2FyZENvbmZpZ1wiXG4gICAgW25nQ2xhc3NdPVwieyAnc2lkZWJhci1oaWRkZW4nOiAhbWVudUNvbmZpZy5pc1Zpc2libGUgfVwiXG4gID5cbiAgICA8dWwgY2xhc3M9XCJtZW51LWxpc3RcIj5cbiAgICAgIDxsaVxuICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBmaWx0ZXJlZE1lbnVzXCJcbiAgICAgICAgY2xhc3M9XCJtZW51LWl0ZW1cIlxuICAgICAgICBbbmdDbGFzc109XCJ7ICdtZW51LWl0ZW0tZXhwYW5kZWQnOiBpdGVtLmlzRXhwYW5kZWQgfVwiXG4gICAgICAgIFtuZ1N0eWxlXT1cImdldE1lbnVJdGVtU3R5bGVzKClcIlxuICAgICAgPlxuICAgICAgICA8IS0tIE1haW4gbWVudSBpdGVtcyB3aXRob3V0IGNoaWxkcmVuIC0tPlxuICAgICAgICA8YVxuICAgICAgICAgICpuZ0lmPVwiIWl0ZW0uY2hpbGRyZW4/Lmxlbmd0aFwiXG4gICAgICAgICAgW3JvdXRlckxpbmtdPVwiaXRlbS51cmxcIlxuICAgICAgICAgIGNsYXNzPVwibWVudS1saW5rXCJcbiAgICAgICAgICBbbmdTdHlsZV09XCJnZXRNZW51TGlua1N0eWxlcygpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxpIFtuZ0NsYXNzXT1cIml0ZW0uaWNvblwiPjwvaT5cbiAgICAgICAgICA8c3Bhbj57eyBpdGVtLmxhYmVsIH19PC9zcGFuPlxuICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAqbmdJZj1cIml0ZW0uYmFkZ2VcIlxuICAgICAgICAgICAgW25nU3R5bGVdPVwiZ2V0QmFkZ2VTdHlsZXMoaXRlbS5iYWRnZSlcIlxuICAgICAgICAgICAgY2xhc3M9XCJiYWRnZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgaXRlbS5iYWRnZS5jb3VudCB9fVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9hPlxuXG4gICAgICAgIDwhLS0gTWVudSBpdGVtcyB3aXRoIGNoaWxkcmVuIC0tPlxuICAgICAgICA8YVxuICAgICAgICAgICpuZ0lmPVwiaXRlbS5jaGlsZHJlbj8ubGVuZ3RoXCJcbiAgICAgICAgICBjbGFzcz1cIm1lbnUtbGlua1wiXG4gICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZU1lbnUoaXRlbSwgJGV2ZW50KVwiXG4gICAgICAgICAgW25nU3R5bGVdPVwiZ2V0TWVudUxpbmtTdHlsZXMoKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8aSBbbmdDbGFzc109XCJpdGVtLmljb25cIj48L2k+XG4gICAgICAgICAgPHNwYW4+e3sgaXRlbS5sYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgKm5nSWY9XCJpdGVtLmJhZGdlXCJcbiAgICAgICAgICAgIFtuZ1N0eWxlXT1cImdldEJhZGdlU3R5bGVzKGl0ZW0uYmFkZ2UpXCJcbiAgICAgICAgICAgIGNsYXNzPVwiYmFkZ2VcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7IGl0ZW0uYmFkZ2UuY291bnQgfX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPGkgW25nQ2xhc3NdPVwiZ2V0Q2hldnJvbkNsYXNzKGl0ZW0pXCIgY2xhc3M9XCJjaGV2cm9uXCI+PC9pPlxuICAgICAgICA8L2E+XG5cbiAgICAgICAgPCEtLSBTdWJtZW51IC0tPlxuICAgICAgICA8dWwgY2xhc3M9XCJzdWJtZW51LWxpc3RcIj5cbiAgICAgICAgICA8bGkgKm5nRm9yPVwibGV0IGNoaWxkIG9mIGl0ZW0uY2hpbGRyZW5cIiBjbGFzcz1cInN1Ym1lbnUtaXRlbVwiPlxuICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiY2hpbGQudXJsXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJzdWJtZW51LWxpbmtcIlxuICAgICAgICAgICAgICBbbmdTdHlsZV09XCJnZXRTdWJNZW51TGlua1N0eWxlcygpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGkgW25nQ2xhc3NdPVwiY2hpbGQuaWNvblwiPjwvaT5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdWJtZW51LXRpdGxlXCI+e3sgY2hpbGQubGFiZWwgfX08L3NwYW4+XG4gICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJjaGlsZC5iYWRnZVwiXG4gICAgICAgICAgICAgICAgW25nU3R5bGVdPVwiZ2V0QmFkZ2VTdHlsZXMoY2hpbGQuYmFkZ2UpXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJhZGdlXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7IGNoaWxkLmJhZGdlLmNvdW50IH19XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICA8L2xpPlxuICAgICAgICA8L3VsPlxuICAgICAgPC9saT5cbiAgICA8L3VsPlxuICA8L3B0LWNhcmQ+XG48L2Rpdj5cbiJdfQ==
|