aril 0.1.48 → 0.1.50
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/esm2022/keycloak/src/auth.interceptor.mjs +4 -1
- package/esm2022/ui/table/src/table.component.mjs +11 -4
- package/esm2022/ui/value/src/value.component.mjs +15 -29
- package/esm2022/ui-business/detailed-overlay-panel/src/detailed-overlay-panel.component.mjs +1 -1
- package/esm2022/ui-business/multiple-ref-value/aril-ui-business-multiple-ref-value.mjs +5 -0
- package/esm2022/ui-business/multiple-ref-value/index.mjs +2 -0
- package/esm2022/ui-business/multiple-ref-value/src/multiple-ref-value.component.mjs +23 -0
- package/esm2022/ui-business/ref-value/src/ref-value.component.mjs +3 -3
- package/fesm2022/aril-keycloak.mjs +3 -0
- package/fesm2022/aril-keycloak.mjs.map +1 -1
- package/fesm2022/aril-ui-business-detailed-overlay-panel.mjs +1 -1
- package/fesm2022/aril-ui-business-detailed-overlay-panel.mjs.map +1 -1
- package/fesm2022/aril-ui-business-multiple-ref-value.mjs +30 -0
- package/fesm2022/aril-ui-business-multiple-ref-value.mjs.map +1 -0
- package/fesm2022/aril-ui-business-ref-value.mjs +2 -2
- package/fesm2022/aril-ui-business-ref-value.mjs.map +1 -1
- package/fesm2022/aril-ui-table.mjs +10 -3
- package/fesm2022/aril-ui-table.mjs.map +1 -1
- package/fesm2022/aril-ui-value.mjs +16 -56
- package/fesm2022/aril-ui-value.mjs.map +1 -1
- package/package.json +165 -159
- package/ui/table/src/table.component.d.ts +4 -3
- package/ui/value/src/value.component.d.ts +2 -6
- package/ui-business/multiple-ref-value/index.d.ts +1 -0
- package/ui-business/multiple-ref-value/src/multiple-ref-value.component.d.ts +16 -0
- package/esm2022/ui/value/src/value-badge-modal.mjs +0 -32
- package/ui/value/src/value-badge-modal.d.ts +0 -8
|
@@ -42,18 +42,21 @@ const getAppHeader = (appName) => {
|
|
|
42
42
|
switch (appName) {
|
|
43
43
|
case Apps.YEAP:
|
|
44
44
|
appHeader = {
|
|
45
|
+
"x-yeap-application": "yeap",
|
|
45
46
|
"x-application": "yeap",
|
|
46
47
|
"x-module": "yeap-fe"
|
|
47
48
|
};
|
|
48
49
|
break;
|
|
49
50
|
case Apps.LENA:
|
|
50
51
|
appHeader = {
|
|
52
|
+
"x-yeap-application": "lena",
|
|
51
53
|
"x-application": "lena",
|
|
52
54
|
"x-module": "lena-fe"
|
|
53
55
|
};
|
|
54
56
|
break;
|
|
55
57
|
case Apps.THOR:
|
|
56
58
|
appHeader = {
|
|
59
|
+
"x-yeap-application": "thor",
|
|
57
60
|
"x-application": "thor",
|
|
58
61
|
"x-module": "thor-fe"
|
|
59
62
|
};
|
|
@@ -81,4 +84,4 @@ export const authInterceptor = (req, next) => {
|
|
|
81
84
|
});
|
|
82
85
|
return next(authReq);
|
|
83
86
|
};
|
|
84
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
87
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5pbnRlcmNlcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FyaWwva2V5Y2xvYWsvc3JjL2F1dGguaW50ZXJjZXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTdDLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxJQUFZLEVBQUUsRUFBVSxFQUFFLEVBQUU7SUFDdEQsSUFBSSxPQUFPLEdBQUcsRUFBRSxDQUFDO0lBQ2pCLElBQUksSUFBSSxFQUFFLENBQUM7UUFDVixRQUFRLElBQUksRUFBRSxDQUFDO1lBQ2QsS0FBSyxJQUFJLENBQUMsSUFBSTtnQkFDYixPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztnQkFDcEIsTUFBTTtZQUNQLEtBQUssSUFBSSxDQUFDLElBQUk7Z0JBQ2IsT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7Z0JBQ3BCLE1BQU07WUFDUCxLQUFLLElBQUksQ0FBQyxJQUFJO2dCQUNiLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO2dCQUNwQixNQUFNO1FBQ1IsQ0FBQztJQUNGLENBQUM7U0FBTSxDQUFDO1FBQ1AsUUFBUSxFQUFFLEVBQUUsQ0FBQztZQUNaLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQztZQUNkLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQztZQUNkLEtBQUssSUFBSSxDQUFDLEdBQUc7Z0JBQ1osT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7Z0JBQ3BCLE1BQU07WUFDUCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUM7WUFDZCxLQUFLLElBQUksQ0FBQyxPQUFPLENBQUM7WUFDbEIsS0FBSyxJQUFJLENBQUMsT0FBTyxDQUFDO1lBQ2xCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQztZQUNkLEtBQUssSUFBSSxDQUFDLEdBQUc7Z0JBQ1osT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7Z0JBQ3BCLE1BQU07WUFDUCxLQUFLLElBQUksQ0FBQyxFQUFFO2dCQUNYLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO2dCQUNwQixNQUFNO1lBQ1A7Z0JBQ0MsT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDdEIsQ0FBQztJQUNGLENBQUM7SUFDRCxPQUFPLE9BQU8sQ0FBQztBQUNoQixDQUFDLENBQUM7QUFFRixNQUFNLFlBQVksR0FBRyxDQUFDLE9BQWUsRUFBRSxFQUFFO0lBQ3hDLElBQUksU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUNuQixRQUFRLE9BQU8sRUFBRSxDQUFDO1FBQ2pCLEtBQUssSUFBSSxDQUFDLElBQUk7WUFDYixTQUFTLEdBQUc7Z0JBQ1gsb0JBQW9CLEVBQUUsTUFBTTtnQkFDNUIsZUFBZSxFQUFFLE1BQU07Z0JBQ3ZCLFVBQVUsRUFBRSxTQUFTO2FBQ3JCLENBQUM7WUFDRixNQUFNO1FBQ1AsS0FBSyxJQUFJLENBQUMsSUFBSTtZQUNiLFNBQVMsR0FBRztnQkFDWCxvQkFBb0IsRUFBRSxNQUFNO2dCQUM1QixlQUFlLEVBQUUsTUFBTTtnQkFDdkIsVUFBVSxFQUFFLFNBQVM7YUFDckIsQ0FBQztZQUNGLE1BQU07UUFDUCxLQUFLLElBQUksQ0FBQyxJQUFJO1lBQ2IsU0FBUyxHQUFHO2dCQUNYLG9CQUFvQixFQUFFLE1BQU07Z0JBQzVCLGVBQWUsRUFBRSxNQUFNO2dCQUN2QixVQUFVLEVBQUUsU0FBUzthQUNyQixDQUFDO1lBQ0YsTUFBTTtJQUNSLENBQUM7SUFDRCxPQUFPLFNBQVMsQ0FBQztBQUNsQixDQUFDLENBQUM7QUFFRixNQUFNLFlBQVksR0FBRyxHQUF1QixFQUFFO0lBQzdDLE9BQU8sUUFBUSxDQUFDLE1BQU07U0FDbkIsS0FBSyxDQUFDLElBQUksQ0FBQztTQUNYLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDM0MsRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDakIsQ0FBQyxDQUFDO0FBRUosTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFzQixDQUFDLEdBQXlCLEVBQUUsSUFBbUIsRUFBRSxFQUFFO0lBQ3BHLE1BQU0sS0FBSyxHQUFTLFVBQVcsQ0FBQyxlQUFlLEVBQUUsU0FBUyxFQUFFLEtBQUssQ0FBQztJQUNsRSxNQUFNLFVBQVUsR0FBRyxpQkFBaUIsQ0FBTyxVQUFXLENBQUMsVUFBVSxFQUFRLFVBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMvRixNQUFNLGFBQWEsR0FBRyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDL0MsTUFBTSxTQUFTLEdBQUcsWUFBWSxFQUFFLENBQUM7SUFFakMsTUFBTSxPQUFPLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQztRQUN6QixVQUFVLEVBQUU7WUFDWCxhQUFhLEVBQUUsVUFBVSxLQUFLLEVBQUU7WUFDaEMsWUFBWSxFQUFFLFNBQVMsSUFBSSxFQUFFO1lBQzdCLEdBQUcsYUFBYTtTQUNoQjtLQUNELENBQUMsQ0FBQztJQUVILE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ3RCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBIYW5kbGVyRm4sIEh0dHBJbnRlcmNlcHRvckZuLCBIdHRwUmVxdWVzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuXHJcbmltcG9ydCB7IEFwcHMgfSBmcm9tICdhcmlsL2Jvb3QvY29uZmlnL2FwcHMnO1xyXG5cclxuY29uc3QgZ2V0Q3VycmVudEFwcE5hbWUgPSAoaG9zdDogc3RyaW5nLCBtZjogc3RyaW5nKSA9PiB7XHJcblx0bGV0IGFwcE5hbWUgPSAnJztcclxuXHRpZiAoaG9zdCkge1xyXG5cdFx0c3dpdGNoIChob3N0KSB7XHJcblx0XHRcdGNhc2UgQXBwcy5ZRUFQOlxyXG5cdFx0XHRcdGFwcE5hbWUgPSBBcHBzLllFQVA7XHJcblx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdGNhc2UgQXBwcy5MRU5BOlxyXG5cdFx0XHRcdGFwcE5hbWUgPSBBcHBzLkxFTkE7XHJcblx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdGNhc2UgQXBwcy5USE9SOlxyXG5cdFx0XHRcdGFwcE5hbWUgPSBBcHBzLlRIT1I7XHJcblx0XHRcdFx0YnJlYWs7XHJcblx0XHR9XHJcblx0fSBlbHNlIHtcclxuXHRcdHN3aXRjaCAobWYpIHtcclxuXHRcdFx0Y2FzZSBBcHBzLkhFUzpcclxuXHRcdFx0Y2FzZSBBcHBzLkNUUzpcclxuXHRcdFx0Y2FzZSBBcHBzLlNJUzpcclxuXHRcdFx0XHRhcHBOYW1lID0gQXBwcy5MRU5BO1xyXG5cdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRjYXNlIEFwcHMuQ1JNOlxyXG5cdFx0XHRjYXNlIEFwcHMuQklMTElORzpcclxuXHRcdFx0Y2FzZSBBcHBzLlBBWU1FTlQ6XHJcblx0XHRcdGNhc2UgQXBwcy5XRE06XHJcblx0XHRcdGNhc2UgQXBwcy5NTkc6XHJcblx0XHRcdFx0YXBwTmFtZSA9IEFwcHMuVEhPUjtcclxuXHRcdFx0XHRicmVhaztcclxuXHRcdFx0Y2FzZSBBcHBzLk1XOlxyXG5cdFx0XHRcdGFwcE5hbWUgPSBBcHBzLllFQVA7XHJcblx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdGRlZmF1bHQ6XHJcblx0XHRcdFx0YXBwTmFtZSA9IEFwcHMuWUVBUDtcclxuXHRcdH1cclxuXHR9XHJcblx0cmV0dXJuIGFwcE5hbWU7XHJcbn07XHJcblxyXG5jb25zdCBnZXRBcHBIZWFkZXIgPSAoYXBwTmFtZTogc3RyaW5nKSA9PiB7XHJcblx0bGV0IGFwcEhlYWRlciA9IHt9O1xyXG5cdHN3aXRjaCAoYXBwTmFtZSkge1xyXG5cdFx0Y2FzZSBBcHBzLllFQVA6XHJcblx0XHRcdGFwcEhlYWRlciA9IHtcclxuXHRcdFx0XHRcIngteWVhcC1hcHBsaWNhdGlvblwiOiBcInllYXBcIixcclxuXHRcdFx0XHRcIngtYXBwbGljYXRpb25cIjogXCJ5ZWFwXCIsXHJcblx0XHRcdFx0XCJ4LW1vZHVsZVwiOiBcInllYXAtZmVcIlxyXG5cdFx0XHR9O1xyXG5cdFx0XHRicmVhaztcclxuXHRcdGNhc2UgQXBwcy5MRU5BOlxyXG5cdFx0XHRhcHBIZWFkZXIgPSB7XHJcblx0XHRcdFx0XCJ4LXllYXAtYXBwbGljYXRpb25cIjogXCJsZW5hXCIsXHJcblx0XHRcdFx0XCJ4LWFwcGxpY2F0aW9uXCI6IFwibGVuYVwiLFxyXG5cdFx0XHRcdFwieC1tb2R1bGVcIjogXCJsZW5hLWZlXCJcclxuXHRcdFx0fTtcclxuXHRcdFx0YnJlYWs7XHJcblx0XHRjYXNlIEFwcHMuVEhPUjpcclxuXHRcdFx0YXBwSGVhZGVyID0ge1xyXG5cdFx0XHRcdFwieC15ZWFwLWFwcGxpY2F0aW9uXCI6IFwidGhvclwiLFxyXG5cdFx0XHRcdFwieC1hcHBsaWNhdGlvblwiOiBcInRob3JcIixcclxuXHRcdFx0XHRcIngtbW9kdWxlXCI6IFwidGhvci1mZVwiXHJcblx0XHRcdH07XHJcblx0XHRcdGJyZWFrO1xyXG5cdH1cclxuXHRyZXR1cm4gYXBwSGVhZGVyO1xyXG59O1xyXG5cclxuY29uc3QgZ2V0Q3NyZlRva2VuID0gKCk6IHN0cmluZyB8IHVuZGVmaW5lZCA9PiB7XHJcblx0cmV0dXJuIGRvY3VtZW50LmNvb2tpZVxyXG5cdCAgLnNwbGl0KCc7ICcpXHJcblx0ICAuZmluZChyb3cgPT4gcm93LnN0YXJ0c1dpdGgoJ2NzcmZfdG9rZW49JykpXHJcblx0ICA/LnNwbGl0KCc9JylbMV07XHJcbiAgfTtcclxuXHJcbmV4cG9ydCBjb25zdCBhdXRoSW50ZXJjZXB0b3I6IEh0dHBJbnRlcmNlcHRvckZuID0gKHJlcTogSHR0cFJlcXVlc3Q8dW5rbm93bj4sIG5leHQ6IEh0dHBIYW5kbGVyRm4pID0+IHtcclxuXHRjb25zdCB0b2tlbiA9ICg8YW55Pmdsb2JhbFRoaXMpLmtleWNsb2FrU2VydmljZT8uX2luc3RhbmNlPy50b2tlbjtcclxuXHRjb25zdCBjdXJyZW50QXBwID0gZ2V0Q3VycmVudEFwcE5hbWUoKDxhbnk+Z2xvYmFsVGhpcykuYWN0aXZlSG9zdCwgKDxhbnk+Z2xvYmFsVGhpcykuYWN0aXZlTUYpO1xyXG5cdGNvbnN0IGFwcE5hbWVIZWFkZXIgPSBnZXRBcHBIZWFkZXIoY3VycmVudEFwcCk7XHJcblx0Y29uc3QgY3NyZlRva2VuID0gZ2V0Q3NyZlRva2VuKCk7XHJcblxyXG5cdGNvbnN0IGF1dGhSZXEgPSByZXEuY2xvbmUoe1xyXG5cdFx0c2V0SGVhZGVyczoge1xyXG5cdFx0XHRBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7dG9rZW59YCxcclxuXHRcdFx0J2NzcmZfdG9rZW4nOiBjc3JmVG9rZW4gfHwgJycsXHJcblx0XHRcdC4uLmFwcE5hbWVIZWFkZXJcclxuXHRcdH1cclxuXHR9KTtcclxuXHJcblx0cmV0dXJuIG5leHQoYXV0aFJlcSk7XHJcbn07Il19
|
|
@@ -52,7 +52,7 @@ export class TableComponent {
|
|
|
52
52
|
this.proxy = input(ProxyTypes.Native);
|
|
53
53
|
this.showFooter = input(false);
|
|
54
54
|
this.tAlign = input('left');
|
|
55
|
-
this.selectionMode = input();
|
|
55
|
+
this.selectionMode = input('single');
|
|
56
56
|
this.showSearchTool = input(true);
|
|
57
57
|
this.showExportTool = input(true);
|
|
58
58
|
this.exportFileName = input('');
|
|
@@ -81,6 +81,7 @@ export class TableComponent {
|
|
|
81
81
|
this.isColumnExpandMode = input(false);
|
|
82
82
|
this.isResizableColumns = input(false);
|
|
83
83
|
this.isSortable = input(false);
|
|
84
|
+
this.handledSelectionMode = 'single';
|
|
84
85
|
this.isInitialLoad = true;
|
|
85
86
|
this.toggleExport = (event) => this.op.toggle(event);
|
|
86
87
|
this.primengConfig.setTranslation(tranlations);
|
|
@@ -100,6 +101,12 @@ export class TableComponent {
|
|
|
100
101
|
this.createExportForm();
|
|
101
102
|
}
|
|
102
103
|
});
|
|
104
|
+
effect(() => {
|
|
105
|
+
if (this.checkboxSelection())
|
|
106
|
+
this.handledSelectionMode = null;
|
|
107
|
+
else
|
|
108
|
+
this.handledSelectionMode = this.selectionMode();
|
|
109
|
+
});
|
|
103
110
|
}
|
|
104
111
|
ngOnChanges(changes) {
|
|
105
112
|
if (changes['data'] && changes['data'].currentValue !== changes['data'].previousValue) {
|
|
@@ -219,11 +226,11 @@ export class TableComponent {
|
|
|
219
226
|
this.op?.hide();
|
|
220
227
|
}
|
|
221
228
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TableComponent, deps: [{ token: i1.HttpClient }, { token: i2.NonNullableFormBuilder }, { token: i3.PrimeNGConfig }, { token: i3.MessageService }, { token: i4.TranslocoService }, { token: i5.SelectionGroupService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
222
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: TableComponent, selector: "aril-table", inputs: { kebabMenuItems: { classPropertyName: "kebabMenuItems", publicName: "kebabMenuItems", isSignal: false, isRequired: false, transformFunction: null }, expandableFields: { classPropertyName: "expandableFields", publicName: "expandableFields", isSignal: false, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: true, transformFunction: null }, checkboxSelection: { classPropertyName: "checkboxSelection", publicName: "checkboxSelection", isSignal: true, isRequired: false, transformFunction: null }, headerCheckboxSelection: { classPropertyName: "headerCheckboxSelection", publicName: "headerCheckboxSelection", isSignal: true, isRequired: false, transformFunction: null }, pageSize: { classPropertyName: "pageSize", publicName: "pageSize", isSignal: true, isRequired: false, transformFunction: null }, proxy: { classPropertyName: "proxy", publicName: "proxy", isSignal: true, isRequired: false, transformFunction: null }, showFooter: { classPropertyName: "showFooter", publicName: "showFooter", isSignal: true, isRequired: false, transformFunction: null }, tAlign: { classPropertyName: "tAlign", publicName: "tAlign", isSignal: true, isRequired: false, transformFunction: null }, selectionMode: { classPropertyName: "selectionMode", publicName: "selectionMode", isSignal: true, isRequired: false, transformFunction: null }, showSearchTool: { classPropertyName: "showSearchTool", publicName: "showSearchTool", isSignal: true, isRequired: false, transformFunction: null }, showExportTool: { classPropertyName: "showExportTool", publicName: "showExportTool", isSignal: true, isRequired: false, transformFunction: null }, exportFileName: { classPropertyName: "exportFileName", publicName: "exportFileName", isSignal: true, isRequired: false, transformFunction: null }, noDataFoundLabel: { classPropertyName: "noDataFoundLabel", publicName: "noDataFoundLabel", isSignal: true, isRequired: false, transformFunction: null }, tableHeader: { classPropertyName: "tableHeader", publicName: "tableHeader", isSignal: true, isRequired: false, transformFunction: null }, showTableHeader: { classPropertyName: "showTableHeader", publicName: "showTableHeader", isSignal: true, isRequired: false, transformFunction: null }, isFirstRowSelected: { classPropertyName: "isFirstRowSelected", publicName: "isFirstRowSelected", isSignal: true, isRequired: false, transformFunction: null }, dataKey: { classPropertyName: "dataKey", publicName: "dataKey", isSignal: true, isRequired: false, transformFunction: null }, selectedRowsInput: { classPropertyName: "selectedRowsInput", publicName: "selectedRowsInput", isSignal: true, isRequired: false, transformFunction: null }, isLazy: { classPropertyName: "isLazy", publicName: "isLazy", isSignal: true, isRequired: false, transformFunction: null }, totalRecords: { classPropertyName: "totalRecords", publicName: "totalRecords", isSignal: true, isRequired: false, transformFunction: null }, paginator: { classPropertyName: "paginator", publicName: "paginator", isSignal: true, isRequired: false, transformFunction: null }, paginatorDropdownAppendTo: { classPropertyName: "paginatorDropdownAppendTo", publicName: "paginatorDropdownAppendTo", isSignal: true, isRequired: false, transformFunction: null }, isShowNoDataFoundMessage: { classPropertyName: "isShowNoDataFoundMessage", publicName: "isShowNoDataFoundMessage", isSignal: true, isRequired: false, transformFunction: null }, exportConfig: { classPropertyName: "exportConfig", publicName: "exportConfig", isSignal: true, isRequired: false, transformFunction: null }, isColumnExpandMode: { classPropertyName: "isColumnExpandMode", publicName: "isColumnExpandMode", isSignal: true, isRequired: false, transformFunction: null }, isResizableColumns: { classPropertyName: "isResizableColumns", publicName: "isResizableColumns", isSignal: true, isRequired: false, transformFunction: null }, isSortable: { classPropertyName: "isSortable", publicName: "isSortable", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onPageEvent: "onPageEvent", selectionEvent: "selectionEvent", lazyLoadEvent: "lazyLoadEvent" }, queries: [{ propertyName: "columns", predicate: TableColumnComponent }], viewQueries: [{ propertyName: "op", first: true, predicate: OverlayPanel, descendants: true }, { propertyName: "tableRef", first: true, predicate: Table, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<p-table\r\n\t#ref\r\n\t[value]=\"data()\"\r\n\t[dataKey]=\"dataKey()\"\r\n\t[columns]=\"columns._results\"\r\n\t[rows]=\"pageSize()\"\r\n\t[rowHover]=\"true\"\r\n\t[paginator]=\"paginator()\"\r\n\t[lazy]=\"isLazy()\"\r\n\t[lazyLoadOnInit]=\"false\"\r\n\t[totalRecords]=\"totalRecords()\"\r\n\t[rowsPerPageOptions]=\"[10, 20, 50, 100]\"\r\n\t[filterDelay]=\"0\"\r\n\tsortMode=\"multiple\"\r\n\t[(selection)]=\"selectedRows\"\r\n\t(onPage)=\"onPageEvent.emit($event)\"\r\n\t(onLazyLoad)=\"handleLazyLoadEvent($event)\"\r\n\t(selectionChange)=\"selectionEvent.emit(selectedRows)\"\r\n\t[showCurrentPageReport]=\"true\"\r\n\t[selectionMode]=\"selectionMode()\"\r\n\t[columnResizeMode]=\"isColumnExpandMode() ? 'expand': ''\"\r\n\t[resizableColumns]=\"isResizableColumns()\"\r\n\tcurrentPageReportTemplate=\"Toplam : {totalRecords} kay\u0131t | Sayfa : {currentPage} / {totalPages}\"\r\n\tstyleClass=\"p-datatable-sm\"\r\n\t[paginatorDropdownAppendTo]=\"paginatorDropdownAppendTo()\">\r\n\t<!--@if (tableHeader() || showSearchTool() || showExportTool()) {\r\n\t\t<ng-template pTemplate=\"caption\">\r\n\t\t\t<div class=\"flex space-between\">\r\n\t\t\t\t<div style=\"flex: auto\">\r\n\t\t\t\t\t@if (tableHeader().length) {\r\n\t\t\t\t\t\t<div class=\"table-header\">\r\n\t\t\t\t\t\t\t{{ tableHeader() }}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t}\r\n\t\t\t\t</div>\r\n\t\t\t\t<div style=\"flex: auto\">\r\n\t\t\t\t\t<div class=\"flex justify-content-end align-items-center\">\r\n\t\t\t\t\t\t@if (false) {\r\n\t\t\t\t\t\t\t<aril-text\r\n\t\t\t\t\t\t\t\ticon=\"SEARCH\"\r\n\t\t\t\t\t\t\t\ticonPos=\"left\"\r\n\t\t\t\t\t\t\t\tplaceholder=\"Arama\"\r\n\t\t\t\t\t\t\t\t[ngModel]=\"filterText\"\r\n\t\t\t\t\t\t\t\tclass=\"mr-1\"\r\n\t\t\t\t\t\t\t\t(ngModelChange)=\"ref.filterGlobal($event.target.value, 'contains')\">\r\n\t\t\t\t\t\t\t</aril-text>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t@if (false) {\r\n\t\t\t\t\t\t\t<aril-button\r\n\t\t\t\t\t\t\t\tsize=\"sm\"\r\n\t\t\t\t\t\t\t\ticon=\"FILE_EXCEL\"\r\n\t\t\t\t\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t\t\t\t\tpTooltip=\"XLS\"\r\n\t\t\t\t\t\t\t\ttooltipPosition=\"top\"\r\n\t\t\t\t\t\t\t\t(clickEvent)=\"excelExport()\"\r\n\t\t\t\t\t\t\t\tclass=\"mr-1\">\r\n\t\t\t\t\t\t\t</aril-button>\r\n\t\t\t\t\t\t\t<aril-button\r\n\t\t\t\t\t\t\t\tsize=\"sm\"\r\n\t\t\t\t\t\t\t\ticon=\"FILE_PDF\"\r\n\t\t\t\t\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t\t\t\t\tpTooltip=\"PDF\"\r\n\t\t\t\t\t\t\t\ttooltipPosition=\"top\"\r\n\t\t\t\t\t\t\t\t(clickEvent)=\"exportPdf()\">\r\n\t\t\t\t\t\t\t</aril-button>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t@if (data() && kebabMenuItems.length > 0 ) {\r\n\t\t\t\t\t\t\t<div tools style=\"padding: 4px;margin-left: 4px;border:1px solid #6366f1;border-radius: 6px;background-color: #6366f1; color: white;\" >\r\n\t\t\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t\t\t[attr.role]=\"'none'\"\r\n\t\t\t\t\t\t\t\t\tclass=\"pi mr-1 header-icon pi-ellipsis-v\"\r\n\t\t\t\t\t\t\t\t\t(click)=\"bulkOperations.toggle($event);\"></i>\r\n\t\t\t\t\t\t\t\t<p-menu\r\n\t\t\t\t\t\t\t\t\t#bulkOperations\r\n\t\t\t\t\t\t\t\t\t[popup]=\"true\"\r\n\t\t\t\t\t\t\t\t\t[model]=\"kebabMenuItems\"\r\n\t\t\t\t\t\t\t\t\tstyleClass=\"z-index: 9998899;\"\r\n\t\t\t\t\t\t\t\t\tappendTo=\"body\"></p-menu>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</ng-template>\r\n\t}-->\r\n\r\n\t<ng-template pTemplate=\"header\" let-columns>\r\n\t\t<tr>\r\n\t\t\t@if (checkboxSelection()) {\r\n\t\t\t\t<th>\r\n\t\t\t\t\t@if (headerCheckboxSelection()) {\r\n\t\t\t\t\t\t<p-tableHeaderCheckbox></p-tableHeaderCheckbox>\r\n\t\t\t\t\t}\r\n\t\t\t\t</th>\r\n\t\t\t}\r\n\t\t\t@for (column of columns; track $index) {\r\n\t\t\t\t@if (column.type() === 'operations') {\r\n\t\t\t\t\t<th>\r\n\t\t\t\t\t\t<div class=\"flex justify-content-center\">\u0130\u015Flemler</div>\r\n\t\t\t\t\t</th>\r\n\t\t\t\t} @else {\r\n\r\n\t\t\t\t\t@if (isResizableColumns()) {\r\n\t\t\t\t\t\t<th [pSortableColumn]=\"column.field()\" [ngStyle]=\"{'width': column.width() ? column.width() : 'auto'}\" pResizableColumn>\r\n\t\t\t\t\t\t\t<div class=\"flex justify-content-between align-items-center gap-2\">\r\n\t\t\t\t\t\t\t\t{{ column.header() }}\r\n\t\t\t\t\t\t\t\t<div class=\"flex\">\r\n\t\t\t\t\t\t\t\t\t@if (column.isShowHeaderTooltip()) {\r\n\t\t\t\t\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t\t\t\t\tstyle=\"color: green; padding-top: 4px; padding-left: 4px\"\r\n\t\t\t\t\t\t\t\t\t\t\tclass=\"pi pi-info-circle\"\r\n\t\t\t\t\t\t\t\t\t\t\t[pTooltip]=\"column.tooltipTemplate()\"\r\n\t\t\t\t\t\t\t\t\t\t\ttooltipPosition=\"top\"></i>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t@if (!isLazy()) {\r\n\t\t\t\t\t\t\t\t\t\t<p-sortIcon [field]=\"column.field()\"></p-sortIcon>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</th>\r\n\t\t\t\t\t}\r\n\t\t\t\t\t@else if (isSortable()){\r\n\t\t\t\t\t\t<th [pSortableColumn]=\"column.field()\" [ngStyle]=\"{'width': column.width() ? column.width() : 'auto'}\" style=\"min-width:170px\">\r\n\t\t\t\t\t\t\t<div class=\"flex justify-content-between align-items-center gap-2\">\r\n\t\t\t\t\t\t\t\t{{ column.header() }}\r\n\t\t\t\t\t\t\t\t<div class=\"flex\">\r\n\t\t\t\t\t\t\t\t\t@if (column.isShowHeaderTooltip()) {\r\n\t\t\t\t\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t\t\t\t\tstyle=\"color: green; padding-top: 4px; padding-left: 4px\"\r\n\t\t\t\t\t\t\t\t\t\t\tclass=\"pi pi-info-circle\"\r\n\t\t\t\t\t\t\t\t\t\t\t[pTooltip]=\"column.tooltipTemplate()\"\r\n\t\t\t\t\t\t\t\t\t\t\ttooltipPosition=\"top\"></i>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t<p-sortIcon [field]=\"column.field()\"></p-sortIcon>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</th>\r\n\t\t\t\t\t} @else {\r\n\t\t\t\t\t\t<th [ngStyle]=\"{'width': column.width() ? column.width() : 'auto'}\" style=\"min-width:170px\">\r\n\t\t\t\t\t\t\t<div class=\"flex justify-content-between align-items-center gap-2\">\r\n\t\t\t\t\t\t\t\t{{ column.header() }}\r\n\t\t\t\t\t\t\t\t<div class=\"flex\">\r\n\t\t\t\t\t\t\t\t\t@if (column.isShowHeaderTooltip()) {\r\n\t\t\t\t\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t\t\t\t\tstyle=\"color: green; padding-top: 4px; padding-left: 4px\"\r\n\t\t\t\t\t\t\t\t\t\t\tclass=\"pi pi-info-circle\"\r\n\t\t\t\t\t\t\t\t\t\t\t[pTooltip]=\"column.tooltipTemplate()\"\r\n\t\t\t\t\t\t\t\t\t\t\ttooltipPosition=\"top\"></i>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</th>\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t</tr>\r\n\t</ng-template>\r\n\r\n\t<ng-template pTemplate=\"body\" let-item let-columns=\"columns\">\r\n\t\t@if (selectionMode()) {\r\n\t\t\t<tr [pSelectableRow]=\"item\">\r\n\t\t\t\t@for (column of columns; track $index) {\r\n\t\t\t\t\t<td [ngStyle]=\"{ 'text-align': column.type() === 'operations' ? 'center' : column.tAlign() || tAlign() }\">\r\n\t\t\t\t\t\t<ng-template ngFor [ngForOf]=\"[item]\" [ngForTemplate]=\"column.template\"></ng-template>\r\n\t\t\t\t\t</td>\r\n\t\t\t\t}\r\n\t\t\t</tr>\r\n\t\t} @else {\r\n\t\t\t<tr [ngStyle]=\"{ 'background-color': item?.rowColor ? item?.rowColor : '#fff' }\">\r\n\t\t\t\t@if (checkboxSelection()) {\r\n\t\t\t\t\t<td>\r\n\t\t\t\t\t\t<p-tableCheckbox [value]=\"item\"></p-tableCheckbox>\r\n\t\t\t\t\t</td>\r\n\t\t\t\t}\r\n\r\n\t\t\t\t@for (column of columns; track $index) {\r\n\t\t\t\t\t<td [ngStyle]=\"{ 'text-align': column.type() === 'operations' ? 'center' : column.tAlign() || tAlign() }\">\r\n\t\t\t\t\t\t<ng-template ngFor [ngForOf]=\"[item]\" [ngForTemplate]=\"column.template\"></ng-template>\r\n\t\t\t\t\t</td>\r\n\t\t\t\t}\r\n\t\t\t</tr>\r\n\t\t}\r\n\t</ng-template>\r\n\r\n\t@if (showFooter()) {\r\n\t\t<ng-template pTemplate=\"summary\">\r\n\t\t\t<ng-content select=\"[footer]\"></ng-content>\r\n\t\t</ng-template>\r\n\t}\r\n\r\n\t<ng-template pTemplate=\"emptymessage\">\r\n\t\t<tr>\r\n\t\t\t<td [attr.colspan]=\"columns._results.length\">{{ noDataFoundLabel() }}</td>\r\n\t\t</tr>\r\n\t</ng-template>\r\n</p-table>\r\n\r\n<p-overlayPanel styleClass=\"export-overlay-panel\">\r\n\t@if (exportForm) {\r\n\t\t<aril-form [formGroup]=\"exportForm\" class=\"w-20rem\">\r\n\t\t\t<aril-field [label]=\"'Export Tipi'\" [cols]=\"{ default: 12 }\">\r\n\t\t\t\t<aril-radio-button formControlName=\"exportType\" [options]=\"exportTypeOptions\" />\r\n\t\t\t</aril-field>\r\n\r\n\t\t\t<aril-field [label]=\"'Dosya \u0130smi'\" [cols]=\"{ default: 12 }\">\r\n\t\t\t\t<aril-text class=\"w-full\" formControlName=\"exportLabel\" />\r\n\t\t\t</aril-field>\r\n\r\n\t\t\t<ng-container formArrayName=\"columns\">\r\n\t\t\t\t<p-orderList\r\n\t\t\t\t\t#orderListRef\r\n\t\t\t\t\tclass=\"col-12\"\r\n\t\t\t\t\t[value]=\"exportForm.controls.columns.controls\"\r\n\t\t\t\t\t[listStyle]=\"{ 'max-height': '20rem' }\"\r\n\t\t\t\t\tfilterBy=\"value.title\">\r\n\t\t\t\t\t<ng-template pTemplate=\"filter\">\r\n\t\t\t\t\t\t<div class=\"flex align-items-center gap-3\">\r\n\t\t\t\t\t\t\t<aril-checkbox\r\n\t\t\t\t\t\t\t\t[label]=\"''\"\r\n\t\t\t\t\t\t\t\t[ngModel]=\"isAllSelected\"\r\n\t\t\t\t\t\t\t\t[ngModelOptions]=\"{ standalone: true }\"\r\n\t\t\t\t\t\t\t\t(ngModelChange)=\"onSelectAll($event)\" />\r\n\r\n\t\t\t\t\t\t\t<div class=\"p-orderlist-filter\" [attr.data-pc-section]=\"'filter'\">\r\n\t\t\t\t\t\t\t\t<input\r\n\t\t\t\t\t\t\t\t\t#filter\r\n\t\t\t\t\t\t\t\t\ttype=\"text\"\r\n\t\t\t\t\t\t\t\t\trole=\"textbox\"\r\n\t\t\t\t\t\t\t\t\t(keyup)=\"orderListRef.onFilterKeyup($event)\"\r\n\t\t\t\t\t\t\t\t\t[disabled]=\"orderListRef.disabled\"\r\n\t\t\t\t\t\t\t\t\tclass=\"p-orderlist-filter-input p-inputtext p-component\" />\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t<ng-template let-col pTemplate=\"item\">\r\n\t\t\t\t\t\t<aril-checkbox [label]=\"col.value.title\" [formControl]=\"col.controls.checked\" />\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t</p-orderList>\r\n\t\t\t</ng-container>\r\n\r\n\t\t\t<aril-button class=\"col-12\" label=\"Export\" color=\"primary\" (clickEvent)=\"export()\" />\r\n\t\t</aril-form>\r\n\t}\r\n</p-overlayPanel>\r\n", styles: ["::ng-deep aril-table th{min-width:0px!important}\n"], dependencies: [{ kind: "component", type: i6.FormComponent, selector: "aril-form", inputs: ["formGroup"] }, { kind: "component", type: i7.ButtonComponent, selector: "aril-button:not([click])", inputs: ["label", "loading", "disabled", "raised", "outlined", "badge", "size", "icon", "color"], outputs: ["clickEvent"] }, { kind: "directive", type: i3.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i8.CheckboxComponent, selector: "aril-checkbox[ngModel], aril-checkbox[formControl], aril-checkbox[formControlName]", inputs: ["label", "tabindex"] }, { kind: "component", type: i9.FieldComponent, selector: "aril-field", inputs: ["label", "color", "labelWidth", "valueWidth", "labelPos", "markAsRequired", "cols", "infoData"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i10.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "directive", type: i11.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i11.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i12.OrderList, selector: "p-orderList", inputs: ["header", "style", "styleClass", "tabindex", "ariaLabel", "ariaLabelledBy", "listStyle", "responsive", "filterBy", "filterPlaceholder", "filterLocale", "metaKeySelection", "dragdrop", "controlsPosition", "ariaFilterLabel", "filterMatchMode", "breakpoint", "stripedRows", "disabled", "trackBy", "selection", "value"], outputs: ["selectionChange", "onReorder", "onSelectionChange", "onFilterEvent", "onFocus", "onBlur"] }, { kind: "component", type: i13.OverlayPanel, selector: "p-overlayPanel", inputs: ["ariaLabel", "ariaLabelledBy", "dismissable", "showCloseIcon", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }, { kind: "component", type: i14.RadioButtonComponent, selector: "aril-radio-button[ngModel], aril-radio-button[formControl], aril-radio-button[formControlName]", inputs: ["options", "tabindex", "align"] }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i2.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "component", type: i15.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorStyleClass", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "scrollDirection", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "responsive", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "autoLayout", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "groupRowsByOrder", "responsiveLayout", "breakpoint", "paginatorLocale", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "selectAll", "virtualRowHeight"], outputs: ["contextMenuSelectionChange", "selectAllChange", "selectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }, { kind: "directive", type: i15.SortableColumn, selector: "[pSortableColumn]", inputs: ["pSortableColumn", "pSortableColumnDisabled"] }, { kind: "directive", type: i15.SelectableRow, selector: "[pSelectableRow]", inputs: ["pSelectableRow", "pSelectableRowIndex", "pSelectableRowDisabled"] }, { kind: "directive", type: i15.ResizableColumn, selector: "[pResizableColumn]", inputs: ["pResizableColumnDisabled"] }, { kind: "component", type: i15.SortIcon, selector: "p-sortIcon", inputs: ["field"] }, { kind: "component", type: i15.TableCheckbox, selector: "p-tableCheckbox", inputs: ["disabled", "value", "index", "inputId", "name", "required", "ariaLabel"] }, { kind: "component", type: i15.TableHeaderCheckbox, selector: "p-tableHeaderCheckbox", inputs: ["disabled", "inputId", "name", "ariaLabel"] }, { kind: "component", type: i16.TextComponent, selector: "aril-text[ngModel], aril-text[formControl], aril-text[formControlName]", inputs: ["placeholder", "tabindex", "icon", "iconPos", "size"] }] }); }
|
|
229
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: TableComponent, selector: "aril-table", inputs: { kebabMenuItems: { classPropertyName: "kebabMenuItems", publicName: "kebabMenuItems", isSignal: false, isRequired: false, transformFunction: null }, expandableFields: { classPropertyName: "expandableFields", publicName: "expandableFields", isSignal: false, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: true, transformFunction: null }, checkboxSelection: { classPropertyName: "checkboxSelection", publicName: "checkboxSelection", isSignal: true, isRequired: false, transformFunction: null }, headerCheckboxSelection: { classPropertyName: "headerCheckboxSelection", publicName: "headerCheckboxSelection", isSignal: true, isRequired: false, transformFunction: null }, pageSize: { classPropertyName: "pageSize", publicName: "pageSize", isSignal: true, isRequired: false, transformFunction: null }, proxy: { classPropertyName: "proxy", publicName: "proxy", isSignal: true, isRequired: false, transformFunction: null }, showFooter: { classPropertyName: "showFooter", publicName: "showFooter", isSignal: true, isRequired: false, transformFunction: null }, tAlign: { classPropertyName: "tAlign", publicName: "tAlign", isSignal: true, isRequired: false, transformFunction: null }, selectionMode: { classPropertyName: "selectionMode", publicName: "selectionMode", isSignal: true, isRequired: false, transformFunction: null }, showSearchTool: { classPropertyName: "showSearchTool", publicName: "showSearchTool", isSignal: true, isRequired: false, transformFunction: null }, showExportTool: { classPropertyName: "showExportTool", publicName: "showExportTool", isSignal: true, isRequired: false, transformFunction: null }, exportFileName: { classPropertyName: "exportFileName", publicName: "exportFileName", isSignal: true, isRequired: false, transformFunction: null }, noDataFoundLabel: { classPropertyName: "noDataFoundLabel", publicName: "noDataFoundLabel", isSignal: true, isRequired: false, transformFunction: null }, tableHeader: { classPropertyName: "tableHeader", publicName: "tableHeader", isSignal: true, isRequired: false, transformFunction: null }, showTableHeader: { classPropertyName: "showTableHeader", publicName: "showTableHeader", isSignal: true, isRequired: false, transformFunction: null }, isFirstRowSelected: { classPropertyName: "isFirstRowSelected", publicName: "isFirstRowSelected", isSignal: true, isRequired: false, transformFunction: null }, dataKey: { classPropertyName: "dataKey", publicName: "dataKey", isSignal: true, isRequired: false, transformFunction: null }, selectedRowsInput: { classPropertyName: "selectedRowsInput", publicName: "selectedRowsInput", isSignal: true, isRequired: false, transformFunction: null }, isLazy: { classPropertyName: "isLazy", publicName: "isLazy", isSignal: true, isRequired: false, transformFunction: null }, totalRecords: { classPropertyName: "totalRecords", publicName: "totalRecords", isSignal: true, isRequired: false, transformFunction: null }, paginator: { classPropertyName: "paginator", publicName: "paginator", isSignal: true, isRequired: false, transformFunction: null }, paginatorDropdownAppendTo: { classPropertyName: "paginatorDropdownAppendTo", publicName: "paginatorDropdownAppendTo", isSignal: true, isRequired: false, transformFunction: null }, isShowNoDataFoundMessage: { classPropertyName: "isShowNoDataFoundMessage", publicName: "isShowNoDataFoundMessage", isSignal: true, isRequired: false, transformFunction: null }, exportConfig: { classPropertyName: "exportConfig", publicName: "exportConfig", isSignal: true, isRequired: false, transformFunction: null }, isColumnExpandMode: { classPropertyName: "isColumnExpandMode", publicName: "isColumnExpandMode", isSignal: true, isRequired: false, transformFunction: null }, isResizableColumns: { classPropertyName: "isResizableColumns", publicName: "isResizableColumns", isSignal: true, isRequired: false, transformFunction: null }, isSortable: { classPropertyName: "isSortable", publicName: "isSortable", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onPageEvent: "onPageEvent", selectionEvent: "selectionEvent", lazyLoadEvent: "lazyLoadEvent" }, queries: [{ propertyName: "columns", predicate: TableColumnComponent }], viewQueries: [{ propertyName: "op", first: true, predicate: OverlayPanel, descendants: true }, { propertyName: "tableRef", first: true, predicate: Table, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<p-table\r\n\t#ref\r\n\t[value]=\"data()\"\r\n\t[dataKey]=\"dataKey()\"\r\n\t[columns]=\"columns._results\"\r\n\t[rows]=\"pageSize()\"\r\n\t[rowHover]=\"true\"\r\n\t[paginator]=\"paginator()\"\r\n\t[lazy]=\"isLazy()\"\r\n\t[lazyLoadOnInit]=\"false\"\r\n\t[totalRecords]=\"totalRecords()\"\r\n\t[rowsPerPageOptions]=\"[10, 20, 50, 100]\"\r\n\t[filterDelay]=\"0\"\r\n\tsortMode=\"multiple\"\r\n\t[(selection)]=\"selectedRows\"\r\n\t(onPage)=\"onPageEvent.emit($event)\"\r\n\t(onLazyLoad)=\"handleLazyLoadEvent($event)\"\r\n\t(selectionChange)=\"selectionEvent.emit(selectedRows)\"\r\n\t[showCurrentPageReport]=\"true\"\r\n\t[selectionMode]=\"selectionMode()\"\r\n\t[columnResizeMode]=\"isColumnExpandMode() ? 'expand' : ''\"\r\n\t[resizableColumns]=\"isResizableColumns()\"\r\n\tcurrentPageReportTemplate=\"Toplam : {totalRecords} kay\u0131t | Sayfa : {currentPage} / {totalPages}\"\r\n\tstyleClass=\"p-datatable-sm\"\r\n\t[paginatorDropdownAppendTo]=\"paginatorDropdownAppendTo()\">\r\n\t<!--@if (tableHeader() || showSearchTool() || showExportTool()) {\r\n\t\t<ng-template pTemplate=\"caption\">\r\n\t\t\t<div class=\"flex space-between\">\r\n\t\t\t\t<div style=\"flex: auto\">\r\n\t\t\t\t\t@if (tableHeader().length) {\r\n\t\t\t\t\t\t<div class=\"table-header\">\r\n\t\t\t\t\t\t\t{{ tableHeader() }}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t}\r\n\t\t\t\t</div>\r\n\t\t\t\t<div style=\"flex: auto\">\r\n\t\t\t\t\t<div class=\"flex justify-content-end align-items-center\">\r\n\t\t\t\t\t\t@if (false) {\r\n\t\t\t\t\t\t\t<aril-text\r\n\t\t\t\t\t\t\t\ticon=\"SEARCH\"\r\n\t\t\t\t\t\t\t\ticonPos=\"left\"\r\n\t\t\t\t\t\t\t\tplaceholder=\"Arama\"\r\n\t\t\t\t\t\t\t\t[ngModel]=\"filterText\"\r\n\t\t\t\t\t\t\t\tclass=\"mr-1\"\r\n\t\t\t\t\t\t\t\t(ngModelChange)=\"ref.filterGlobal($event.target.value, 'contains')\">\r\n\t\t\t\t\t\t\t</aril-text>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t@if (false) {\r\n\t\t\t\t\t\t\t<aril-button\r\n\t\t\t\t\t\t\t\tsize=\"sm\"\r\n\t\t\t\t\t\t\t\ticon=\"FILE_EXCEL\"\r\n\t\t\t\t\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t\t\t\t\tpTooltip=\"XLS\"\r\n\t\t\t\t\t\t\t\ttooltipPosition=\"top\"\r\n\t\t\t\t\t\t\t\t(clickEvent)=\"excelExport()\"\r\n\t\t\t\t\t\t\t\tclass=\"mr-1\">\r\n\t\t\t\t\t\t\t</aril-button>\r\n\t\t\t\t\t\t\t<aril-button\r\n\t\t\t\t\t\t\t\tsize=\"sm\"\r\n\t\t\t\t\t\t\t\ticon=\"FILE_PDF\"\r\n\t\t\t\t\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t\t\t\t\tpTooltip=\"PDF\"\r\n\t\t\t\t\t\t\t\ttooltipPosition=\"top\"\r\n\t\t\t\t\t\t\t\t(clickEvent)=\"exportPdf()\">\r\n\t\t\t\t\t\t\t</aril-button>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t@if (data() && kebabMenuItems.length > 0 ) {\r\n\t\t\t\t\t\t\t<div tools style=\"padding: 4px;margin-left: 4px;border:1px solid #6366f1;border-radius: 6px;background-color: #6366f1; color: white;\" >\r\n\t\t\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t\t\t[attr.role]=\"'none'\"\r\n\t\t\t\t\t\t\t\t\tclass=\"pi mr-1 header-icon pi-ellipsis-v\"\r\n\t\t\t\t\t\t\t\t\t(click)=\"bulkOperations.toggle($event);\"></i>\r\n\t\t\t\t\t\t\t\t<p-menu\r\n\t\t\t\t\t\t\t\t\t#bulkOperations\r\n\t\t\t\t\t\t\t\t\t[popup]=\"true\"\r\n\t\t\t\t\t\t\t\t\t[model]=\"kebabMenuItems\"\r\n\t\t\t\t\t\t\t\t\tstyleClass=\"z-index: 9998899;\"\r\n\t\t\t\t\t\t\t\t\tappendTo=\"body\"></p-menu>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</ng-template>\r\n\t}-->\r\n\r\n\t<ng-template pTemplate=\"header\" let-columns>\r\n\t\t<tr>\r\n\t\t\t@if (checkboxSelection()) {\r\n\t\t\t\t<th>\r\n\t\t\t\t\t@if (headerCheckboxSelection()) {\r\n\t\t\t\t\t\t<p-tableHeaderCheckbox></p-tableHeaderCheckbox>\r\n\t\t\t\t\t}\r\n\t\t\t\t</th>\r\n\t\t\t}\r\n\t\t\t@for (column of columns; track $index) {\r\n\t\t\t\t@if (column.type() === 'operations') {\r\n\t\t\t\t\t<th>\r\n\t\t\t\t\t\t<div class=\"flex justify-content-center\">\u0130\u015Flemler</div>\r\n\t\t\t\t\t</th>\r\n\t\t\t\t} @else {\r\n\t\t\t\t\t@if (isResizableColumns()) {\r\n\t\t\t\t\t\t<th\r\n\t\t\t\t\t\t\t[pSortableColumn]=\"column.field()\"\r\n\t\t\t\t\t\t\t[ngStyle]=\"{ width: column.width() ? column.width() : 'auto' }\"\r\n\t\t\t\t\t\t\tpResizableColumn>\r\n\t\t\t\t\t\t\t<div class=\"flex justify-content-between align-items-center gap-2\">\r\n\t\t\t\t\t\t\t\t{{ column.header() }}\r\n\t\t\t\t\t\t\t\t<div class=\"flex\">\r\n\t\t\t\t\t\t\t\t\t@if (column.isShowHeaderTooltip()) {\r\n\t\t\t\t\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t\t\t\t\tstyle=\"color: green; padding-top: 4px; padding-left: 4px\"\r\n\t\t\t\t\t\t\t\t\t\t\tclass=\"pi pi-info-circle\"\r\n\t\t\t\t\t\t\t\t\t\t\t[pTooltip]=\"column.tooltipTemplate()\"\r\n\t\t\t\t\t\t\t\t\t\t\ttooltipPosition=\"top\"></i>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t@if (!isLazy()) {\r\n\t\t\t\t\t\t\t\t\t\t<p-sortIcon [field]=\"column.field()\"></p-sortIcon>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</th>\r\n\t\t\t\t\t} @else if (isSortable()) {\r\n\t\t\t\t\t\t<th\r\n\t\t\t\t\t\t\t[pSortableColumn]=\"column.field()\"\r\n\t\t\t\t\t\t\t[ngStyle]=\"{ width: column.width() ? column.width() : 'auto' }\"\r\n\t\t\t\t\t\t\tstyle=\"min-width: 170px\">\r\n\t\t\t\t\t\t\t<div class=\"flex justify-content-between align-items-center gap-2\">\r\n\t\t\t\t\t\t\t\t{{ column.header() }}\r\n\t\t\t\t\t\t\t\t<div class=\"flex\">\r\n\t\t\t\t\t\t\t\t\t@if (column.isShowHeaderTooltip()) {\r\n\t\t\t\t\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t\t\t\t\tstyle=\"color: green; padding-top: 4px; padding-left: 4px\"\r\n\t\t\t\t\t\t\t\t\t\t\tclass=\"pi pi-info-circle\"\r\n\t\t\t\t\t\t\t\t\t\t\t[pTooltip]=\"column.tooltipTemplate()\"\r\n\t\t\t\t\t\t\t\t\t\t\ttooltipPosition=\"top\"></i>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t<p-sortIcon [field]=\"column.field()\"></p-sortIcon>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</th>\r\n\t\t\t\t\t} @else {\r\n\t\t\t\t\t\t<th [ngStyle]=\"{ width: column.width() ? column.width() : 'auto' }\" style=\"min-width: 170px\">\r\n\t\t\t\t\t\t\t<div class=\"flex justify-content-between align-items-center gap-2\">\r\n\t\t\t\t\t\t\t\t{{ column.header() }}\r\n\t\t\t\t\t\t\t\t<div class=\"flex\">\r\n\t\t\t\t\t\t\t\t\t@if (column.isShowHeaderTooltip()) {\r\n\t\t\t\t\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t\t\t\t\tstyle=\"color: green; padding-top: 4px; padding-left: 4px\"\r\n\t\t\t\t\t\t\t\t\t\t\tclass=\"pi pi-info-circle\"\r\n\t\t\t\t\t\t\t\t\t\t\t[pTooltip]=\"column.tooltipTemplate()\"\r\n\t\t\t\t\t\t\t\t\t\t\ttooltipPosition=\"top\"></i>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</th>\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t</tr>\r\n\t</ng-template>\r\n\r\n\t<ng-template pTemplate=\"body\" let-item let-columns=\"columns\">\r\n\t\t@if (handledSelectionMode) {\r\n\t\t\t<tr [pSelectableRow]=\"item\">\r\n\t\t\t\t@for (column of columns; track $index) {\r\n\t\t\t\t\t<td [ngStyle]=\"{ 'text-align': column.type() === 'operations' ? 'center' : column.tAlign() || tAlign() }\">\r\n\t\t\t\t\t\t<ng-template ngFor [ngForOf]=\"[item]\" [ngForTemplate]=\"column.template\"></ng-template>\r\n\t\t\t\t\t</td>\r\n\t\t\t\t}\r\n\t\t\t</tr>\r\n\t\t} @else {\r\n\t\t\t<tr [ngStyle]=\"{ 'background-color': item?.rowColor ? item?.rowColor : '#fff' }\">\r\n\t\t\t\t@if (checkboxSelection()) {\r\n\t\t\t\t\t<td>\r\n\t\t\t\t\t\t<p-tableCheckbox [value]=\"item\"></p-tableCheckbox>\r\n\t\t\t\t\t</td>\r\n\t\t\t\t}\r\n\r\n\t\t\t\t@for (column of columns; track $index) {\r\n\t\t\t\t\t<td [ngStyle]=\"{ 'text-align': column.type() === 'operations' ? 'center' : column.tAlign() || tAlign() }\">\r\n\t\t\t\t\t\t<ng-template ngFor [ngForOf]=\"[item]\" [ngForTemplate]=\"column.template\"></ng-template>\r\n\t\t\t\t\t</td>\r\n\t\t\t\t}\r\n\t\t\t</tr>\r\n\t\t}\r\n\t</ng-template>\r\n\r\n\t@if (showFooter()) {\r\n\t\t<ng-template pTemplate=\"summary\">\r\n\t\t\t<ng-content select=\"[footer]\"></ng-content>\r\n\t\t</ng-template>\r\n\t}\r\n\r\n\t<ng-template pTemplate=\"emptymessage\">\r\n\t\t<tr>\r\n\t\t\t<td [attr.colspan]=\"columns._results.length\">{{ noDataFoundLabel() }}</td>\r\n\t\t</tr>\r\n\t</ng-template>\r\n</p-table>\r\n\r\n<p-overlayPanel styleClass=\"export-overlay-panel\">\r\n\t@if (exportForm) {\r\n\t\t<aril-form [formGroup]=\"exportForm\" class=\"w-20rem\">\r\n\t\t\t<aril-field [label]=\"'Export Tipi'\" [cols]=\"{ default: 12 }\">\r\n\t\t\t\t<aril-radio-button formControlName=\"exportType\" [options]=\"exportTypeOptions\" />\r\n\t\t\t</aril-field>\r\n\r\n\t\t\t<aril-field [label]=\"'Dosya \u0130smi'\" [cols]=\"{ default: 12 }\">\r\n\t\t\t\t<aril-text class=\"w-full\" formControlName=\"exportLabel\" />\r\n\t\t\t</aril-field>\r\n\r\n\t\t\t<ng-container formArrayName=\"columns\">\r\n\t\t\t\t<p-orderList\r\n\t\t\t\t\t#orderListRef\r\n\t\t\t\t\tclass=\"col-12\"\r\n\t\t\t\t\t[value]=\"exportForm.controls.columns.controls\"\r\n\t\t\t\t\t[listStyle]=\"{ 'max-height': '20rem' }\"\r\n\t\t\t\t\tfilterBy=\"value.title\">\r\n\t\t\t\t\t<ng-template pTemplate=\"filter\">\r\n\t\t\t\t\t\t<div class=\"flex align-items-center gap-3\">\r\n\t\t\t\t\t\t\t<aril-checkbox\r\n\t\t\t\t\t\t\t\t[label]=\"''\"\r\n\t\t\t\t\t\t\t\t[ngModel]=\"isAllSelected\"\r\n\t\t\t\t\t\t\t\t[ngModelOptions]=\"{ standalone: true }\"\r\n\t\t\t\t\t\t\t\t(ngModelChange)=\"onSelectAll($event)\" />\r\n\r\n\t\t\t\t\t\t\t<div class=\"p-orderlist-filter\" [attr.data-pc-section]=\"'filter'\">\r\n\t\t\t\t\t\t\t\t<input\r\n\t\t\t\t\t\t\t\t\t#filter\r\n\t\t\t\t\t\t\t\t\ttype=\"text\"\r\n\t\t\t\t\t\t\t\t\trole=\"textbox\"\r\n\t\t\t\t\t\t\t\t\t(keyup)=\"orderListRef.onFilterKeyup($event)\"\r\n\t\t\t\t\t\t\t\t\t[disabled]=\"orderListRef.disabled\"\r\n\t\t\t\t\t\t\t\t\tclass=\"p-orderlist-filter-input p-inputtext p-component\" />\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t<ng-template let-col pTemplate=\"item\">\r\n\t\t\t\t\t\t<aril-checkbox [label]=\"col.value.title\" [formControl]=\"col.controls.checked\" />\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t</p-orderList>\r\n\t\t\t</ng-container>\r\n\r\n\t\t\t<aril-button class=\"col-12\" label=\"Export\" color=\"primary\" (clickEvent)=\"export()\" />\r\n\t\t</aril-form>\r\n\t}\r\n</p-overlayPanel>\r\n", styles: ["::ng-deep aril-table th{min-width:0px!important}\n"], dependencies: [{ kind: "component", type: i6.FormComponent, selector: "aril-form", inputs: ["formGroup"] }, { kind: "component", type: i7.ButtonComponent, selector: "aril-button:not([click])", inputs: ["label", "loading", "disabled", "raised", "outlined", "badge", "size", "icon", "color"], outputs: ["clickEvent"] }, { kind: "directive", type: i3.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i8.CheckboxComponent, selector: "aril-checkbox[ngModel], aril-checkbox[formControl], aril-checkbox[formControlName]", inputs: ["label", "tabindex"] }, { kind: "component", type: i9.FieldComponent, selector: "aril-field", inputs: ["label", "color", "labelWidth", "valueWidth", "labelPos", "markAsRequired", "cols", "infoData"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i10.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "directive", type: i11.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i11.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i12.OrderList, selector: "p-orderList", inputs: ["header", "style", "styleClass", "tabindex", "ariaLabel", "ariaLabelledBy", "listStyle", "responsive", "filterBy", "filterPlaceholder", "filterLocale", "metaKeySelection", "dragdrop", "controlsPosition", "ariaFilterLabel", "filterMatchMode", "breakpoint", "stripedRows", "disabled", "trackBy", "selection", "value"], outputs: ["selectionChange", "onReorder", "onSelectionChange", "onFilterEvent", "onFocus", "onBlur"] }, { kind: "component", type: i13.OverlayPanel, selector: "p-overlayPanel", inputs: ["ariaLabel", "ariaLabelledBy", "dismissable", "showCloseIcon", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }, { kind: "component", type: i14.RadioButtonComponent, selector: "aril-radio-button[ngModel], aril-radio-button[formControl], aril-radio-button[formControlName]", inputs: ["options", "tabindex", "align"] }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i2.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "component", type: i15.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorStyleClass", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "scrollDirection", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "responsive", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "autoLayout", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "groupRowsByOrder", "responsiveLayout", "breakpoint", "paginatorLocale", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "selectAll", "virtualRowHeight"], outputs: ["contextMenuSelectionChange", "selectAllChange", "selectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }, { kind: "directive", type: i15.SortableColumn, selector: "[pSortableColumn]", inputs: ["pSortableColumn", "pSortableColumnDisabled"] }, { kind: "directive", type: i15.SelectableRow, selector: "[pSelectableRow]", inputs: ["pSelectableRow", "pSelectableRowIndex", "pSelectableRowDisabled"] }, { kind: "directive", type: i15.ResizableColumn, selector: "[pResizableColumn]", inputs: ["pResizableColumnDisabled"] }, { kind: "component", type: i15.SortIcon, selector: "p-sortIcon", inputs: ["field"] }, { kind: "component", type: i15.TableCheckbox, selector: "p-tableCheckbox", inputs: ["disabled", "value", "index", "inputId", "name", "required", "ariaLabel"] }, { kind: "component", type: i15.TableHeaderCheckbox, selector: "p-tableHeaderCheckbox", inputs: ["disabled", "inputId", "name", "ariaLabel"] }, { kind: "component", type: i16.TextComponent, selector: "aril-text[ngModel], aril-text[formControl], aril-text[formControlName]", inputs: ["placeholder", "tabindex", "icon", "iconPos", "size"] }] }); }
|
|
223
230
|
}
|
|
224
231
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TableComponent, decorators: [{
|
|
225
232
|
type: Component,
|
|
226
|
-
args: [{ selector: 'aril-table', template: "<p-table\r\n\t#ref\r\n\t[value]=\"data()\"\r\n\t[dataKey]=\"dataKey()\"\r\n\t[columns]=\"columns._results\"\r\n\t[rows]=\"pageSize()\"\r\n\t[rowHover]=\"true\"\r\n\t[paginator]=\"paginator()\"\r\n\t[lazy]=\"isLazy()\"\r\n\t[lazyLoadOnInit]=\"false\"\r\n\t[totalRecords]=\"totalRecords()\"\r\n\t[rowsPerPageOptions]=\"[10, 20, 50, 100]\"\r\n\t[filterDelay]=\"0\"\r\n\tsortMode=\"multiple\"\r\n\t[(selection)]=\"selectedRows\"\r\n\t(onPage)=\"onPageEvent.emit($event)\"\r\n\t(onLazyLoad)=\"handleLazyLoadEvent($event)\"\r\n\t(selectionChange)=\"selectionEvent.emit(selectedRows)\"\r\n\t[showCurrentPageReport]=\"true\"\r\n\t[selectionMode]=\"selectionMode()\"\r\n\t[columnResizeMode]=\"isColumnExpandMode() ? 'expand': ''\"\r\n\t[resizableColumns]=\"isResizableColumns()\"\r\n\tcurrentPageReportTemplate=\"Toplam : {totalRecords} kay\u0131t | Sayfa : {currentPage} / {totalPages}\"\r\n\tstyleClass=\"p-datatable-sm\"\r\n\t[paginatorDropdownAppendTo]=\"paginatorDropdownAppendTo()\">\r\n\t<!--@if (tableHeader() || showSearchTool() || showExportTool()) {\r\n\t\t<ng-template pTemplate=\"caption\">\r\n\t\t\t<div class=\"flex space-between\">\r\n\t\t\t\t<div style=\"flex: auto\">\r\n\t\t\t\t\t@if (tableHeader().length) {\r\n\t\t\t\t\t\t<div class=\"table-header\">\r\n\t\t\t\t\t\t\t{{ tableHeader() }}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t}\r\n\t\t\t\t</div>\r\n\t\t\t\t<div style=\"flex: auto\">\r\n\t\t\t\t\t<div class=\"flex justify-content-end align-items-center\">\r\n\t\t\t\t\t\t@if (false) {\r\n\t\t\t\t\t\t\t<aril-text\r\n\t\t\t\t\t\t\t\ticon=\"SEARCH\"\r\n\t\t\t\t\t\t\t\ticonPos=\"left\"\r\n\t\t\t\t\t\t\t\tplaceholder=\"Arama\"\r\n\t\t\t\t\t\t\t\t[ngModel]=\"filterText\"\r\n\t\t\t\t\t\t\t\tclass=\"mr-1\"\r\n\t\t\t\t\t\t\t\t(ngModelChange)=\"ref.filterGlobal($event.target.value, 'contains')\">\r\n\t\t\t\t\t\t\t</aril-text>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t@if (false) {\r\n\t\t\t\t\t\t\t<aril-button\r\n\t\t\t\t\t\t\t\tsize=\"sm\"\r\n\t\t\t\t\t\t\t\ticon=\"FILE_EXCEL\"\r\n\t\t\t\t\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t\t\t\t\tpTooltip=\"XLS\"\r\n\t\t\t\t\t\t\t\ttooltipPosition=\"top\"\r\n\t\t\t\t\t\t\t\t(clickEvent)=\"excelExport()\"\r\n\t\t\t\t\t\t\t\tclass=\"mr-1\">\r\n\t\t\t\t\t\t\t</aril-button>\r\n\t\t\t\t\t\t\t<aril-button\r\n\t\t\t\t\t\t\t\tsize=\"sm\"\r\n\t\t\t\t\t\t\t\ticon=\"FILE_PDF\"\r\n\t\t\t\t\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t\t\t\t\tpTooltip=\"PDF\"\r\n\t\t\t\t\t\t\t\ttooltipPosition=\"top\"\r\n\t\t\t\t\t\t\t\t(clickEvent)=\"exportPdf()\">\r\n\t\t\t\t\t\t\t</aril-button>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t@if (data() && kebabMenuItems.length > 0 ) {\r\n\t\t\t\t\t\t\t<div tools style=\"padding: 4px;margin-left: 4px;border:1px solid #6366f1;border-radius: 6px;background-color: #6366f1; color: white;\" >\r\n\t\t\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t\t\t[attr.role]=\"'none'\"\r\n\t\t\t\t\t\t\t\t\tclass=\"pi mr-1 header-icon pi-ellipsis-v\"\r\n\t\t\t\t\t\t\t\t\t(click)=\"bulkOperations.toggle($event);\"></i>\r\n\t\t\t\t\t\t\t\t<p-menu\r\n\t\t\t\t\t\t\t\t\t#bulkOperations\r\n\t\t\t\t\t\t\t\t\t[popup]=\"true\"\r\n\t\t\t\t\t\t\t\t\t[model]=\"kebabMenuItems\"\r\n\t\t\t\t\t\t\t\t\tstyleClass=\"z-index: 9998899;\"\r\n\t\t\t\t\t\t\t\t\tappendTo=\"body\"></p-menu>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</ng-template>\r\n\t}-->\r\n\r\n\t<ng-template pTemplate=\"header\" let-columns>\r\n\t\t<tr>\r\n\t\t\t@if (checkboxSelection()) {\r\n\t\t\t\t<th>\r\n\t\t\t\t\t@if (headerCheckboxSelection()) {\r\n\t\t\t\t\t\t<p-tableHeaderCheckbox></p-tableHeaderCheckbox>\r\n\t\t\t\t\t}\r\n\t\t\t\t</th>\r\n\t\t\t}\r\n\t\t\t@for (column of columns; track $index) {\r\n\t\t\t\t@if (column.type() === 'operations') {\r\n\t\t\t\t\t<th>\r\n\t\t\t\t\t\t<div class=\"flex justify-content-center\">\u0130\u015Flemler</div>\r\n\t\t\t\t\t</th>\r\n\t\t\t\t} @else {\r\n\r\n\t\t\t\t\t@if (isResizableColumns()) {\r\n\t\t\t\t\t\t<th [pSortableColumn]=\"column.field()\" [ngStyle]=\"{'width': column.width() ? column.width() : 'auto'}\" pResizableColumn>\r\n\t\t\t\t\t\t\t<div class=\"flex justify-content-between align-items-center gap-2\">\r\n\t\t\t\t\t\t\t\t{{ column.header() }}\r\n\t\t\t\t\t\t\t\t<div class=\"flex\">\r\n\t\t\t\t\t\t\t\t\t@if (column.isShowHeaderTooltip()) {\r\n\t\t\t\t\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t\t\t\t\tstyle=\"color: green; padding-top: 4px; padding-left: 4px\"\r\n\t\t\t\t\t\t\t\t\t\t\tclass=\"pi pi-info-circle\"\r\n\t\t\t\t\t\t\t\t\t\t\t[pTooltip]=\"column.tooltipTemplate()\"\r\n\t\t\t\t\t\t\t\t\t\t\ttooltipPosition=\"top\"></i>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t@if (!isLazy()) {\r\n\t\t\t\t\t\t\t\t\t\t<p-sortIcon [field]=\"column.field()\"></p-sortIcon>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</th>\r\n\t\t\t\t\t}\r\n\t\t\t\t\t@else if (isSortable()){\r\n\t\t\t\t\t\t<th [pSortableColumn]=\"column.field()\" [ngStyle]=\"{'width': column.width() ? column.width() : 'auto'}\" style=\"min-width:170px\">\r\n\t\t\t\t\t\t\t<div class=\"flex justify-content-between align-items-center gap-2\">\r\n\t\t\t\t\t\t\t\t{{ column.header() }}\r\n\t\t\t\t\t\t\t\t<div class=\"flex\">\r\n\t\t\t\t\t\t\t\t\t@if (column.isShowHeaderTooltip()) {\r\n\t\t\t\t\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t\t\t\t\tstyle=\"color: green; padding-top: 4px; padding-left: 4px\"\r\n\t\t\t\t\t\t\t\t\t\t\tclass=\"pi pi-info-circle\"\r\n\t\t\t\t\t\t\t\t\t\t\t[pTooltip]=\"column.tooltipTemplate()\"\r\n\t\t\t\t\t\t\t\t\t\t\ttooltipPosition=\"top\"></i>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t<p-sortIcon [field]=\"column.field()\"></p-sortIcon>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</th>\r\n\t\t\t\t\t} @else {\r\n\t\t\t\t\t\t<th [ngStyle]=\"{'width': column.width() ? column.width() : 'auto'}\" style=\"min-width:170px\">\r\n\t\t\t\t\t\t\t<div class=\"flex justify-content-between align-items-center gap-2\">\r\n\t\t\t\t\t\t\t\t{{ column.header() }}\r\n\t\t\t\t\t\t\t\t<div class=\"flex\">\r\n\t\t\t\t\t\t\t\t\t@if (column.isShowHeaderTooltip()) {\r\n\t\t\t\t\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t\t\t\t\tstyle=\"color: green; padding-top: 4px; padding-left: 4px\"\r\n\t\t\t\t\t\t\t\t\t\t\tclass=\"pi pi-info-circle\"\r\n\t\t\t\t\t\t\t\t\t\t\t[pTooltip]=\"column.tooltipTemplate()\"\r\n\t\t\t\t\t\t\t\t\t\t\ttooltipPosition=\"top\"></i>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</th>\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t</tr>\r\n\t</ng-template>\r\n\r\n\t<ng-template pTemplate=\"body\" let-item let-columns=\"columns\">\r\n\t\t@if (selectionMode()) {\r\n\t\t\t<tr [pSelectableRow]=\"item\">\r\n\t\t\t\t@for (column of columns; track $index) {\r\n\t\t\t\t\t<td [ngStyle]=\"{ 'text-align': column.type() === 'operations' ? 'center' : column.tAlign() || tAlign() }\">\r\n\t\t\t\t\t\t<ng-template ngFor [ngForOf]=\"[item]\" [ngForTemplate]=\"column.template\"></ng-template>\r\n\t\t\t\t\t</td>\r\n\t\t\t\t}\r\n\t\t\t</tr>\r\n\t\t} @else {\r\n\t\t\t<tr [ngStyle]=\"{ 'background-color': item?.rowColor ? item?.rowColor : '#fff' }\">\r\n\t\t\t\t@if (checkboxSelection()) {\r\n\t\t\t\t\t<td>\r\n\t\t\t\t\t\t<p-tableCheckbox [value]=\"item\"></p-tableCheckbox>\r\n\t\t\t\t\t</td>\r\n\t\t\t\t}\r\n\r\n\t\t\t\t@for (column of columns; track $index) {\r\n\t\t\t\t\t<td [ngStyle]=\"{ 'text-align': column.type() === 'operations' ? 'center' : column.tAlign() || tAlign() }\">\r\n\t\t\t\t\t\t<ng-template ngFor [ngForOf]=\"[item]\" [ngForTemplate]=\"column.template\"></ng-template>\r\n\t\t\t\t\t</td>\r\n\t\t\t\t}\r\n\t\t\t</tr>\r\n\t\t}\r\n\t</ng-template>\r\n\r\n\t@if (showFooter()) {\r\n\t\t<ng-template pTemplate=\"summary\">\r\n\t\t\t<ng-content select=\"[footer]\"></ng-content>\r\n\t\t</ng-template>\r\n\t}\r\n\r\n\t<ng-template pTemplate=\"emptymessage\">\r\n\t\t<tr>\r\n\t\t\t<td [attr.colspan]=\"columns._results.length\">{{ noDataFoundLabel() }}</td>\r\n\t\t</tr>\r\n\t</ng-template>\r\n</p-table>\r\n\r\n<p-overlayPanel styleClass=\"export-overlay-panel\">\r\n\t@if (exportForm) {\r\n\t\t<aril-form [formGroup]=\"exportForm\" class=\"w-20rem\">\r\n\t\t\t<aril-field [label]=\"'Export Tipi'\" [cols]=\"{ default: 12 }\">\r\n\t\t\t\t<aril-radio-button formControlName=\"exportType\" [options]=\"exportTypeOptions\" />\r\n\t\t\t</aril-field>\r\n\r\n\t\t\t<aril-field [label]=\"'Dosya \u0130smi'\" [cols]=\"{ default: 12 }\">\r\n\t\t\t\t<aril-text class=\"w-full\" formControlName=\"exportLabel\" />\r\n\t\t\t</aril-field>\r\n\r\n\t\t\t<ng-container formArrayName=\"columns\">\r\n\t\t\t\t<p-orderList\r\n\t\t\t\t\t#orderListRef\r\n\t\t\t\t\tclass=\"col-12\"\r\n\t\t\t\t\t[value]=\"exportForm.controls.columns.controls\"\r\n\t\t\t\t\t[listStyle]=\"{ 'max-height': '20rem' }\"\r\n\t\t\t\t\tfilterBy=\"value.title\">\r\n\t\t\t\t\t<ng-template pTemplate=\"filter\">\r\n\t\t\t\t\t\t<div class=\"flex align-items-center gap-3\">\r\n\t\t\t\t\t\t\t<aril-checkbox\r\n\t\t\t\t\t\t\t\t[label]=\"''\"\r\n\t\t\t\t\t\t\t\t[ngModel]=\"isAllSelected\"\r\n\t\t\t\t\t\t\t\t[ngModelOptions]=\"{ standalone: true }\"\r\n\t\t\t\t\t\t\t\t(ngModelChange)=\"onSelectAll($event)\" />\r\n\r\n\t\t\t\t\t\t\t<div class=\"p-orderlist-filter\" [attr.data-pc-section]=\"'filter'\">\r\n\t\t\t\t\t\t\t\t<input\r\n\t\t\t\t\t\t\t\t\t#filter\r\n\t\t\t\t\t\t\t\t\ttype=\"text\"\r\n\t\t\t\t\t\t\t\t\trole=\"textbox\"\r\n\t\t\t\t\t\t\t\t\t(keyup)=\"orderListRef.onFilterKeyup($event)\"\r\n\t\t\t\t\t\t\t\t\t[disabled]=\"orderListRef.disabled\"\r\n\t\t\t\t\t\t\t\t\tclass=\"p-orderlist-filter-input p-inputtext p-component\" />\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t<ng-template let-col pTemplate=\"item\">\r\n\t\t\t\t\t\t<aril-checkbox [label]=\"col.value.title\" [formControl]=\"col.controls.checked\" />\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t</p-orderList>\r\n\t\t\t</ng-container>\r\n\r\n\t\t\t<aril-button class=\"col-12\" label=\"Export\" color=\"primary\" (clickEvent)=\"export()\" />\r\n\t\t</aril-form>\r\n\t}\r\n</p-overlayPanel>\r\n", styles: ["::ng-deep aril-table th{min-width:0px!important}\n"] }]
|
|
233
|
+
args: [{ selector: 'aril-table', template: "<p-table\r\n\t#ref\r\n\t[value]=\"data()\"\r\n\t[dataKey]=\"dataKey()\"\r\n\t[columns]=\"columns._results\"\r\n\t[rows]=\"pageSize()\"\r\n\t[rowHover]=\"true\"\r\n\t[paginator]=\"paginator()\"\r\n\t[lazy]=\"isLazy()\"\r\n\t[lazyLoadOnInit]=\"false\"\r\n\t[totalRecords]=\"totalRecords()\"\r\n\t[rowsPerPageOptions]=\"[10, 20, 50, 100]\"\r\n\t[filterDelay]=\"0\"\r\n\tsortMode=\"multiple\"\r\n\t[(selection)]=\"selectedRows\"\r\n\t(onPage)=\"onPageEvent.emit($event)\"\r\n\t(onLazyLoad)=\"handleLazyLoadEvent($event)\"\r\n\t(selectionChange)=\"selectionEvent.emit(selectedRows)\"\r\n\t[showCurrentPageReport]=\"true\"\r\n\t[selectionMode]=\"selectionMode()\"\r\n\t[columnResizeMode]=\"isColumnExpandMode() ? 'expand' : ''\"\r\n\t[resizableColumns]=\"isResizableColumns()\"\r\n\tcurrentPageReportTemplate=\"Toplam : {totalRecords} kay\u0131t | Sayfa : {currentPage} / {totalPages}\"\r\n\tstyleClass=\"p-datatable-sm\"\r\n\t[paginatorDropdownAppendTo]=\"paginatorDropdownAppendTo()\">\r\n\t<!--@if (tableHeader() || showSearchTool() || showExportTool()) {\r\n\t\t<ng-template pTemplate=\"caption\">\r\n\t\t\t<div class=\"flex space-between\">\r\n\t\t\t\t<div style=\"flex: auto\">\r\n\t\t\t\t\t@if (tableHeader().length) {\r\n\t\t\t\t\t\t<div class=\"table-header\">\r\n\t\t\t\t\t\t\t{{ tableHeader() }}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t}\r\n\t\t\t\t</div>\r\n\t\t\t\t<div style=\"flex: auto\">\r\n\t\t\t\t\t<div class=\"flex justify-content-end align-items-center\">\r\n\t\t\t\t\t\t@if (false) {\r\n\t\t\t\t\t\t\t<aril-text\r\n\t\t\t\t\t\t\t\ticon=\"SEARCH\"\r\n\t\t\t\t\t\t\t\ticonPos=\"left\"\r\n\t\t\t\t\t\t\t\tplaceholder=\"Arama\"\r\n\t\t\t\t\t\t\t\t[ngModel]=\"filterText\"\r\n\t\t\t\t\t\t\t\tclass=\"mr-1\"\r\n\t\t\t\t\t\t\t\t(ngModelChange)=\"ref.filterGlobal($event.target.value, 'contains')\">\r\n\t\t\t\t\t\t\t</aril-text>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t@if (false) {\r\n\t\t\t\t\t\t\t<aril-button\r\n\t\t\t\t\t\t\t\tsize=\"sm\"\r\n\t\t\t\t\t\t\t\ticon=\"FILE_EXCEL\"\r\n\t\t\t\t\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t\t\t\t\tpTooltip=\"XLS\"\r\n\t\t\t\t\t\t\t\ttooltipPosition=\"top\"\r\n\t\t\t\t\t\t\t\t(clickEvent)=\"excelExport()\"\r\n\t\t\t\t\t\t\t\tclass=\"mr-1\">\r\n\t\t\t\t\t\t\t</aril-button>\r\n\t\t\t\t\t\t\t<aril-button\r\n\t\t\t\t\t\t\t\tsize=\"sm\"\r\n\t\t\t\t\t\t\t\ticon=\"FILE_PDF\"\r\n\t\t\t\t\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t\t\t\t\tpTooltip=\"PDF\"\r\n\t\t\t\t\t\t\t\ttooltipPosition=\"top\"\r\n\t\t\t\t\t\t\t\t(clickEvent)=\"exportPdf()\">\r\n\t\t\t\t\t\t\t</aril-button>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t@if (data() && kebabMenuItems.length > 0 ) {\r\n\t\t\t\t\t\t\t<div tools style=\"padding: 4px;margin-left: 4px;border:1px solid #6366f1;border-radius: 6px;background-color: #6366f1; color: white;\" >\r\n\t\t\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t\t\t[attr.role]=\"'none'\"\r\n\t\t\t\t\t\t\t\t\tclass=\"pi mr-1 header-icon pi-ellipsis-v\"\r\n\t\t\t\t\t\t\t\t\t(click)=\"bulkOperations.toggle($event);\"></i>\r\n\t\t\t\t\t\t\t\t<p-menu\r\n\t\t\t\t\t\t\t\t\t#bulkOperations\r\n\t\t\t\t\t\t\t\t\t[popup]=\"true\"\r\n\t\t\t\t\t\t\t\t\t[model]=\"kebabMenuItems\"\r\n\t\t\t\t\t\t\t\t\tstyleClass=\"z-index: 9998899;\"\r\n\t\t\t\t\t\t\t\t\tappendTo=\"body\"></p-menu>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</ng-template>\r\n\t}-->\r\n\r\n\t<ng-template pTemplate=\"header\" let-columns>\r\n\t\t<tr>\r\n\t\t\t@if (checkboxSelection()) {\r\n\t\t\t\t<th>\r\n\t\t\t\t\t@if (headerCheckboxSelection()) {\r\n\t\t\t\t\t\t<p-tableHeaderCheckbox></p-tableHeaderCheckbox>\r\n\t\t\t\t\t}\r\n\t\t\t\t</th>\r\n\t\t\t}\r\n\t\t\t@for (column of columns; track $index) {\r\n\t\t\t\t@if (column.type() === 'operations') {\r\n\t\t\t\t\t<th>\r\n\t\t\t\t\t\t<div class=\"flex justify-content-center\">\u0130\u015Flemler</div>\r\n\t\t\t\t\t</th>\r\n\t\t\t\t} @else {\r\n\t\t\t\t\t@if (isResizableColumns()) {\r\n\t\t\t\t\t\t<th\r\n\t\t\t\t\t\t\t[pSortableColumn]=\"column.field()\"\r\n\t\t\t\t\t\t\t[ngStyle]=\"{ width: column.width() ? column.width() : 'auto' }\"\r\n\t\t\t\t\t\t\tpResizableColumn>\r\n\t\t\t\t\t\t\t<div class=\"flex justify-content-between align-items-center gap-2\">\r\n\t\t\t\t\t\t\t\t{{ column.header() }}\r\n\t\t\t\t\t\t\t\t<div class=\"flex\">\r\n\t\t\t\t\t\t\t\t\t@if (column.isShowHeaderTooltip()) {\r\n\t\t\t\t\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t\t\t\t\tstyle=\"color: green; padding-top: 4px; padding-left: 4px\"\r\n\t\t\t\t\t\t\t\t\t\t\tclass=\"pi pi-info-circle\"\r\n\t\t\t\t\t\t\t\t\t\t\t[pTooltip]=\"column.tooltipTemplate()\"\r\n\t\t\t\t\t\t\t\t\t\t\ttooltipPosition=\"top\"></i>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t@if (!isLazy()) {\r\n\t\t\t\t\t\t\t\t\t\t<p-sortIcon [field]=\"column.field()\"></p-sortIcon>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</th>\r\n\t\t\t\t\t} @else if (isSortable()) {\r\n\t\t\t\t\t\t<th\r\n\t\t\t\t\t\t\t[pSortableColumn]=\"column.field()\"\r\n\t\t\t\t\t\t\t[ngStyle]=\"{ width: column.width() ? column.width() : 'auto' }\"\r\n\t\t\t\t\t\t\tstyle=\"min-width: 170px\">\r\n\t\t\t\t\t\t\t<div class=\"flex justify-content-between align-items-center gap-2\">\r\n\t\t\t\t\t\t\t\t{{ column.header() }}\r\n\t\t\t\t\t\t\t\t<div class=\"flex\">\r\n\t\t\t\t\t\t\t\t\t@if (column.isShowHeaderTooltip()) {\r\n\t\t\t\t\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t\t\t\t\tstyle=\"color: green; padding-top: 4px; padding-left: 4px\"\r\n\t\t\t\t\t\t\t\t\t\t\tclass=\"pi pi-info-circle\"\r\n\t\t\t\t\t\t\t\t\t\t\t[pTooltip]=\"column.tooltipTemplate()\"\r\n\t\t\t\t\t\t\t\t\t\t\ttooltipPosition=\"top\"></i>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t<p-sortIcon [field]=\"column.field()\"></p-sortIcon>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</th>\r\n\t\t\t\t\t} @else {\r\n\t\t\t\t\t\t<th [ngStyle]=\"{ width: column.width() ? column.width() : 'auto' }\" style=\"min-width: 170px\">\r\n\t\t\t\t\t\t\t<div class=\"flex justify-content-between align-items-center gap-2\">\r\n\t\t\t\t\t\t\t\t{{ column.header() }}\r\n\t\t\t\t\t\t\t\t<div class=\"flex\">\r\n\t\t\t\t\t\t\t\t\t@if (column.isShowHeaderTooltip()) {\r\n\t\t\t\t\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t\t\t\t\tstyle=\"color: green; padding-top: 4px; padding-left: 4px\"\r\n\t\t\t\t\t\t\t\t\t\t\tclass=\"pi pi-info-circle\"\r\n\t\t\t\t\t\t\t\t\t\t\t[pTooltip]=\"column.tooltipTemplate()\"\r\n\t\t\t\t\t\t\t\t\t\t\ttooltipPosition=\"top\"></i>\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</th>\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t</tr>\r\n\t</ng-template>\r\n\r\n\t<ng-template pTemplate=\"body\" let-item let-columns=\"columns\">\r\n\t\t@if (handledSelectionMode) {\r\n\t\t\t<tr [pSelectableRow]=\"item\">\r\n\t\t\t\t@for (column of columns; track $index) {\r\n\t\t\t\t\t<td [ngStyle]=\"{ 'text-align': column.type() === 'operations' ? 'center' : column.tAlign() || tAlign() }\">\r\n\t\t\t\t\t\t<ng-template ngFor [ngForOf]=\"[item]\" [ngForTemplate]=\"column.template\"></ng-template>\r\n\t\t\t\t\t</td>\r\n\t\t\t\t}\r\n\t\t\t</tr>\r\n\t\t} @else {\r\n\t\t\t<tr [ngStyle]=\"{ 'background-color': item?.rowColor ? item?.rowColor : '#fff' }\">\r\n\t\t\t\t@if (checkboxSelection()) {\r\n\t\t\t\t\t<td>\r\n\t\t\t\t\t\t<p-tableCheckbox [value]=\"item\"></p-tableCheckbox>\r\n\t\t\t\t\t</td>\r\n\t\t\t\t}\r\n\r\n\t\t\t\t@for (column of columns; track $index) {\r\n\t\t\t\t\t<td [ngStyle]=\"{ 'text-align': column.type() === 'operations' ? 'center' : column.tAlign() || tAlign() }\">\r\n\t\t\t\t\t\t<ng-template ngFor [ngForOf]=\"[item]\" [ngForTemplate]=\"column.template\"></ng-template>\r\n\t\t\t\t\t</td>\r\n\t\t\t\t}\r\n\t\t\t</tr>\r\n\t\t}\r\n\t</ng-template>\r\n\r\n\t@if (showFooter()) {\r\n\t\t<ng-template pTemplate=\"summary\">\r\n\t\t\t<ng-content select=\"[footer]\"></ng-content>\r\n\t\t</ng-template>\r\n\t}\r\n\r\n\t<ng-template pTemplate=\"emptymessage\">\r\n\t\t<tr>\r\n\t\t\t<td [attr.colspan]=\"columns._results.length\">{{ noDataFoundLabel() }}</td>\r\n\t\t</tr>\r\n\t</ng-template>\r\n</p-table>\r\n\r\n<p-overlayPanel styleClass=\"export-overlay-panel\">\r\n\t@if (exportForm) {\r\n\t\t<aril-form [formGroup]=\"exportForm\" class=\"w-20rem\">\r\n\t\t\t<aril-field [label]=\"'Export Tipi'\" [cols]=\"{ default: 12 }\">\r\n\t\t\t\t<aril-radio-button formControlName=\"exportType\" [options]=\"exportTypeOptions\" />\r\n\t\t\t</aril-field>\r\n\r\n\t\t\t<aril-field [label]=\"'Dosya \u0130smi'\" [cols]=\"{ default: 12 }\">\r\n\t\t\t\t<aril-text class=\"w-full\" formControlName=\"exportLabel\" />\r\n\t\t\t</aril-field>\r\n\r\n\t\t\t<ng-container formArrayName=\"columns\">\r\n\t\t\t\t<p-orderList\r\n\t\t\t\t\t#orderListRef\r\n\t\t\t\t\tclass=\"col-12\"\r\n\t\t\t\t\t[value]=\"exportForm.controls.columns.controls\"\r\n\t\t\t\t\t[listStyle]=\"{ 'max-height': '20rem' }\"\r\n\t\t\t\t\tfilterBy=\"value.title\">\r\n\t\t\t\t\t<ng-template pTemplate=\"filter\">\r\n\t\t\t\t\t\t<div class=\"flex align-items-center gap-3\">\r\n\t\t\t\t\t\t\t<aril-checkbox\r\n\t\t\t\t\t\t\t\t[label]=\"''\"\r\n\t\t\t\t\t\t\t\t[ngModel]=\"isAllSelected\"\r\n\t\t\t\t\t\t\t\t[ngModelOptions]=\"{ standalone: true }\"\r\n\t\t\t\t\t\t\t\t(ngModelChange)=\"onSelectAll($event)\" />\r\n\r\n\t\t\t\t\t\t\t<div class=\"p-orderlist-filter\" [attr.data-pc-section]=\"'filter'\">\r\n\t\t\t\t\t\t\t\t<input\r\n\t\t\t\t\t\t\t\t\t#filter\r\n\t\t\t\t\t\t\t\t\ttype=\"text\"\r\n\t\t\t\t\t\t\t\t\trole=\"textbox\"\r\n\t\t\t\t\t\t\t\t\t(keyup)=\"orderListRef.onFilterKeyup($event)\"\r\n\t\t\t\t\t\t\t\t\t[disabled]=\"orderListRef.disabled\"\r\n\t\t\t\t\t\t\t\t\tclass=\"p-orderlist-filter-input p-inputtext p-component\" />\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t<ng-template let-col pTemplate=\"item\">\r\n\t\t\t\t\t\t<aril-checkbox [label]=\"col.value.title\" [formControl]=\"col.controls.checked\" />\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t</p-orderList>\r\n\t\t\t</ng-container>\r\n\r\n\t\t\t<aril-button class=\"col-12\" label=\"Export\" color=\"primary\" (clickEvent)=\"export()\" />\r\n\t\t</aril-form>\r\n\t}\r\n</p-overlayPanel>\r\n", styles: ["::ng-deep aril-table th{min-width:0px!important}\n"] }]
|
|
227
234
|
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.NonNullableFormBuilder }, { type: i3.PrimeNGConfig }, { type: i3.MessageService }, { type: i4.TranslocoService }, { type: i5.SelectionGroupService }], propDecorators: { onPageEvent: [{
|
|
228
235
|
type: Output
|
|
229
236
|
}], selectionEvent: [{
|
|
@@ -244,4 +251,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
|
|
|
244
251
|
}], expandableFields: [{
|
|
245
252
|
type: Input
|
|
246
253
|
}] } });
|
|
247
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC91aS90YWJsZS9zcmMvdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC91aS90YWJsZS9zcmMvdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQWlCLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pJLE9BQU8sRUFBcUMsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHL0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNwQyxPQUFPLEVBQ04sVUFBVSxFQUNWLFNBQVMsRUFDVCxNQUFNLEVBQ04sUUFBUSxFQUNSLGNBQWMsRUFDZCxJQUFJLEVBQ0osUUFBUSxFQUNSLEdBQUcsRUFDSCxTQUFTLEVBQ1QsSUFBSSxFQUNKLFVBQVUsRUFDVixPQUFPLEVBQ1AsTUFBTSxNQUFNLENBQUM7QUFFZCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUt2QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ3JDLE9BQU8sRUFBMEUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2xILE9BQU8sRUFBYyxvQkFBb0IsRUFBZ0IsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRTFGOzs7OztHQUtHO0FBQ0gs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Z0MsT0FBTztzQkFBN0MsZUFBZTt1QkFBQyxvQkFBb0I7Z0JBQ1osRUFBRTtzQkFBMUIsU0FBUzt1QkFBQyxZQUFZO2dCQUNMLFFBQVE7c0JBQXpCLFNBQVM7dUJBQUMsS0FBSztnQkFDUCxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgQ29udGVudENoaWxkcmVuLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMsIFZpZXdDaGlsZCwgZWZmZWN0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAsIE5vbk51bGxhYmxlRm9ybUJ1aWxkZXIsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5pbXBvcnQgeyBNZW51SXRlbSwgTWVzc2FnZVNlcnZpY2UsIFByaW1lTkdDb25maWcgfSBmcm9tICdwcmltZW5nL2FwaSc7XHJcbmltcG9ydCB7IE92ZXJsYXlQYW5lbCB9IGZyb20gJ3ByaW1lbmcvb3ZlcmxheXBhbmVsJztcclxuaW1wb3J0IHsgVGFibGUgfSBmcm9tICdwcmltZW5nL3RhYmxlJztcclxuXHJcbmltcG9ydCB7IHNhdmVBcyB9IGZyb20gJ2ZpbGUtc2F2ZXInO1xyXG5pbXBvcnQge1xyXG5cdGNhdGNoRXJyb3IsXHJcblx0Y29uY2F0TWFwLFxyXG5cdGZpbHRlcixcclxuXHRmaW5hbGl6ZSxcclxuXHRmaXJzdFZhbHVlRnJvbSxcclxuXHRmcm9tLFxyXG5cdGludGVydmFsLFxyXG5cdG1hcCxcclxuXHRzd2l0Y2hNYXAsXHJcblx0dGFrZSxcclxuXHR0aHJvd0Vycm9yLFxyXG5cdHRvQXJyYXlcclxufSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7IEFQSV9DT05GSUdTIH0gZnJvbSAnYXJpbC9ib290L2NvbmZpZy9hcGknO1xyXG5pbXBvcnQgeyBQcm94eVR5cGVzIH0gZnJvbSAnYXJpbC9odHRwJztcclxuaW1wb3J0IHsgU2VsZWN0aW9uR3JvdXBTZXJ2aWNlIH0gZnJvbSAnYXJpbC90aGVtZS9sYXlvdXQnO1xyXG5cclxuaW1wb3J0IHsgVHJhbnNsb2NvU2VydmljZSB9IGZyb20gJ0BuZ25lYXQvdHJhbnNsb2NvJztcclxuXHJcbmltcG9ydCB7IHRyYW5sYXRpb25zIH0gZnJvbSAnLi9pMThuJztcclxuaW1wb3J0IHsgQ29sRm9ybSwgQ29sdW1uRmllbGRWYWx1ZU1hcCwgRXhwb3J0Rm9ybSwgRXhwb3J0T3B0aW9ucywgRXhwb3J0UmVxdWVzdCwgRXhwb3J0VHlwZSB9IGZyb20gJy4vaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IEFsaWduVHlwZXMsIFRhYmxlQ29sdW1uQ29tcG9uZW50LCBUYWJsZUNvbHVtbnMgfSBmcm9tICcuL3RhYmxlLWNvbHVtbi5jb21wb25lbnQnO1xyXG5cclxuLyogVE9ETyA6XHJcbiAqIHNlcnZlci1zaWRlLXByb3h5IChQcm94eVR5cGVzLlNlcnZlclNpZGUpXHJcbiAqIHNlYXJjaCAmIGNvbHVtIGZpbHRlciAmIHNvcnRcclxuICogcGFnaW5hdGlvbiBvcGVyYXRpb25cclxuICogUXVlcnkgU2lnbmFsc1xyXG4gKi9cclxuY29uc3QgcGFnZU9wdGlvbnMgPSBbMTAsIDIwLCA1MCwgMTAwXSBhcyBjb25zdDtcclxuXHJcbnR5cGUgU2VsZWN0aW9uVHlwZXMgPSAnc2luZ2xlJyB8ICdtdWx0aXBsZSc7XHJcblxyXG5pbnRlcmZhY2UgSUtlYmFiTWVudUl0ZW0ge1xyXG5cdGljb246IHN0cmluZztcclxuXHRsYWJlbDogc3RyaW5nO1xyXG5cdG9uQ2xpY2s6IChldmVudDogTW91c2VFdmVudCkgPT4gdm9pZDtcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcblx0c2VsZWN0b3I6ICdhcmlsLXRhYmxlJyxcclxuXHR0ZW1wbGF0ZVVybDogJy4vdGFibGUuY29tcG9uZW50Lmh0bWwnLFxyXG5cdHN0eWxlVXJsOiAnLi90YWJsZS5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIFRhYmxlQ29tcG9uZW50IHtcclxuXHRAT3V0cHV0KCkgb25QYWdlRXZlbnQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblx0QE91dHB1dCgpIHNlbGVjdGlvbkV2ZW50OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cdEBPdXRwdXQoKSBsYXp5TG9hZEV2ZW50OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cdEBDb250ZW50Q2hpbGRyZW4oVGFibGVDb2x1bW5Db21wb25lbnQpIGNvbHVtbnMhOiBUYWJsZUNvbHVtbnM7XHJcblx0QFZpZXdDaGlsZChPdmVybGF5UGFuZWwpIG9wITogT3ZlcmxheVBhbmVsO1xyXG5cdEBWaWV3Q2hpbGQoVGFibGUpIHRhYmxlUmVmITogVGFibGU7XHJcblx0QElucHV0KCkga2ViYWJNZW51SXRlbXM6IE1lbnVJdGVtW10gPSBbXTtcclxuXHRASW5wdXQoKSBleHBhbmRhYmxlRmllbGRzITogc3RyaW5nXHJcblxyXG5cdGRhdGEgPSBpbnB1dC5yZXF1aXJlZDxhbnlbXT4oKTtcclxuXHRjaGVja2JveFNlbGVjdGlvbiA9IGlucHV0PGJvb2xlYW4+KCk7XHJcblx0aGVhZGVyQ2hlY2tib3hTZWxlY3Rpb24gPSBpbnB1dDxib29sZWFuPigpO1xyXG5cdHBhZ2VTaXplID0gaW5wdXQ8KHR5cGVvZiBwYWdlT3B0aW9ucylbbnVtYmVyXT4oMTApO1xyXG5cdHByb3h5ID0gaW5wdXQ8UHJveHlUeXBlcz4oUHJveHlUeXBlcy5OYXRpdmUpO1xyXG5cdHNob3dGb290ZXIgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcblx0dEFsaWduID0gaW5wdXQ8QWxpZ25UeXBlcz4oJ2xlZnQnKTtcclxuXHRzZWxlY3Rpb25Nb2RlID0gaW5wdXQ8U2VsZWN0aW9uVHlwZXM+KCk7XHJcblx0c2hvd1NlYXJjaFRvb2wgPSBpbnB1dDxib29sZWFuPih0cnVlKTtcclxuXHRzaG93RXhwb3J0VG9vbCA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xyXG5cdGV4cG9ydEZpbGVOYW1lID0gaW5wdXQ8c3RyaW5nPignJyk7XHJcblx0bm9EYXRhRm91bmRMYWJlbCA9IGlucHV0PHN0cmluZz4oJ05vIERhdGEgRm91bmQnKTtcclxuXHR0YWJsZUhlYWRlciA9IGlucHV0PHN0cmluZz4oJycpO1xyXG5cdHNob3dUYWJsZUhlYWRlciA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHRpc0ZpcnN0Um93U2VsZWN0ZWQgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcblx0ZGF0YUtleSA9IGlucHV0PHN0cmluZz4oJycpO1xyXG5cdHNlbGVjdGVkUm93c0lucHV0ID0gaW5wdXQ8YW55PihbXSk7XHJcblx0aXNMYXp5ID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cdHRvdGFsUmVjb3JkcyA9IGlucHV0PG51bWJlcj4oMCk7XHJcblx0cGFnaW5hdG9yID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XHJcblx0cGFnaW5hdG9yRHJvcGRvd25BcHBlbmRUbyA9IGlucHV0PHN0cmluZz4oJ2JvZHknKTsgLy8gJ2JvZHknfCAnbXlEaXYnXHJcblxyXG5cdGlzU2hvd05vRGF0YUZvdW5kTWVzc2FnZSA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xyXG5cdC8qKlxyXG5cdCAqIEBzZWUge0BsaW5rIEV4cG9ydE9wdGlvbnN9XHJcblx0ICovXHJcblx0ZXhwb3J0Q29uZmlnID0gaW5wdXQ8RXhwb3J0T3B0aW9ucz4oKTtcclxuXHJcblx0ZXhwb3J0Rm9ybSE6IEZvcm1Hcm91cDxFeHBvcnRGb3JtPjtcclxuXHRleHBvcnRUeXBlT3B0aW9ucyA9IFtcclxuXHRcdHsga2V5OiBFeHBvcnRUeXBlLkV4Y2VsLCBsYWJlbDogJ0V4Y2VsJywgZmlsZUV4dGVuc2lvbjogJy54bHN4JyB9LFxyXG5cdFx0eyBrZXk6IEV4cG9ydFR5cGUuQ3N2LCBsYWJlbDogJ0NzdicsIGZpbGVFeHRlbnNpb246ICcuY3N2JyB9XHJcblx0XTtcclxuXHJcblx0ZmlsdGVyVGV4dCE6IHN0cmluZztcclxuXHRpc0FsbFNlbGVjdGVkID0gdHJ1ZTtcclxuXHRzZWxlY3RlZFJvd3M6IGFueTtcclxuXHRwYWdlT3B0aW9ucyA9IHBhZ2VPcHRpb25zO1xyXG5cdGV4cG9ydENvbHVtbnM6IEFycmF5PHsgdGl0bGU6IHN0cmluZzsgZGF0YUtleTogc3RyaW5nIH0+ID0gW107XHJcblx0aXNDb2x1bW5FeHBhbmRNb2RlID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cdGlzUmVzaXphYmxlQ29sdW1ucyA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHRpc1NvcnRhYmxlID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cclxuXHRjb25zdHJ1Y3RvcihcclxuXHRcdHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuXHRcdHByaXZhdGUgZmI6IE5vbk51bGxhYmxlRm9ybUJ1aWxkZXIsXHJcblx0XHRwcml2YXRlIHByaW1lbmdDb25maWc6IFByaW1lTkdDb25maWcsXHJcblx0XHRwcml2YXRlIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcclxuXHRcdHByaXZhdGUgdHJhbnNsb2NvU2VydmljZTogVHJhbnNsb2NvU2VydmljZSxcclxuXHRcdHByaXZhdGUgc2VsZWN0aW9uR3JvdXBTZXJ2aWNlOiBTZWxlY3Rpb25Hcm91cFNlcnZpY2VcclxuXHQpIHtcclxuXHRcdHRoaXMucHJpbWVuZ0NvbmZpZy5zZXRUcmFuc2xhdGlvbih0cmFubGF0aW9ucyk7XHJcblxyXG5cdFx0ZWZmZWN0KCgpID0+IHtcclxuXHRcdFx0aWYgKHRoaXMuaXNGaXJzdFJvd1NlbGVjdGVkKCkgJiYgdGhpcy5kYXRhKCkpIHtcclxuXHRcdFx0XHR0aGlzLnNlbGVjdGVkUm93cyA9IHRoaXMuZGF0YSgpWzBdO1xyXG5cdFx0XHRcdHRoaXMuc2VsZWN0aW9uRXZlbnQuZW1pdCh0aGlzLnNlbGVjdGVkUm93cyk7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cclxuXHRcdGVmZmVjdCgoKSA9PiB7XHJcblx0XHRcdGlmICh0aGlzLnNlbGVjdGVkUm93c0lucHV0KCkpIHtcclxuXHRcdFx0XHR0aGlzLnNlbGVjdGVkUm93cyA9IHRoaXMuc2VsZWN0ZWRSb3dzSW5wdXQoKTtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblxyXG5cdFx0ZWZmZWN0KCgpID0+IHtcclxuXHRcdFx0aWYgKHRoaXMuZXhwb3J0Q29uZmlnKCkpIHtcclxuXHRcdFx0XHR0aGlzLmNyZWF0ZUV4cG9ydEZvcm0oKTtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGlzSW5pdGlhbExvYWQgPSB0cnVlO1xyXG5cclxuXHRuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcblx0XHRpZiAoY2hhbmdlc1snZGF0YSddICYmIGNoYW5nZXNbJ2RhdGEnXS5jdXJyZW50VmFsdWUgIT09IGNoYW5nZXNbJ2RhdGEnXS5wcmV2aW91c1ZhbHVlKSB7XHJcblx0XHRcdGlmICh0aGlzLmlzSW5pdGlhbExvYWQpIHtcclxuXHRcdFx0XHR0aGlzLmlzSW5pdGlhbExvYWQgPSBmYWxzZTtcclxuXHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdGNvbnN0IGN1cnJlbnREYXRhID0gY2hhbmdlc1snZGF0YSddLmN1cnJlbnRWYWx1ZTtcclxuXHRcdFx0aWYgKHRoaXMuaXNTaG93Tm9EYXRhRm91bmRNZXNzYWdlKCkgJiYgIWN1cnJlbnREYXRhPy5sZW5ndGgpIHtcclxuXHRcdFx0XHR0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7XHJcblx0XHRcdFx0XHRzZXZlcml0eTogJ2luZm8nLFxyXG5cdFx0XHRcdFx0c3VtbWFyeTogdGhpcy50cmFuc2xvY29TZXJ2aWNlLnRyYW5zbGF0ZSgnbWVzc2FnZXMubm9EYXRhVG9EaXNwbGF5JyksXHJcblx0XHRcdFx0XHRrZXk6ICd0b2FzdC1yb290J1xyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGNyZWF0ZUV4cG9ydEZvcm0oKTogdm9pZCB7XHJcblx0XHRjb25zdCB7IGV4cG9ydExhYmVsIH0gPSB0aGlzLmV4cG9ydENvbmZpZygpITtcclxuXHJcblx0XHR0aGlzLmV4cG9ydEZvcm0gPSB0aGlzLmZiLmdyb3VwPEV4cG9ydEZvcm0+KHtcclxuXHRcdFx0ZXhwb3J0VHlwZTogdGhpcy5mYi5jb250cm9sKEV4cG9ydFR5cGUuRXhjZWwsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxyXG5cdFx0XHRleHBvcnRMYWJlbDogdGhpcy5mYi5jb250cm9sKGV4cG9ydExhYmVsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcclxuXHRcdFx0Y29sdW1uczogdGhpcy5mYi5hcnJheTxGb3JtR3JvdXA8Q29sRm9ybT4+KFtdKVxyXG5cdFx0fSk7XHJcblxyXG5cdFx0dGhpcy5jb2x1bW5zLl9yZXN1bHRzXHJcblx0XHRcdC5maWx0ZXIoKGNvbCkgPT4gY29sLnR5cGUoKSAhPT0gJ29wZXJhdGlvbnMnKVxyXG5cdFx0XHQuZmlsdGVyKChjb2wpID0+IHtcclxuXHRcdFx0XHRjb25zdCBleHBvcnRDb25maWcgPSB0aGlzLmV4cG9ydENvbmZpZygpO1xyXG5cdFx0XHRcdGNvbnN0IGV4Y2x1ZGVkRmllbGRzID0gZXhwb3J0Q29uZmlnPy5leGNsdWRlZEZpZWxkcyA/PyBbXTtcclxuXHJcblx0XHRcdFx0cmV0dXJuICFleGNsdWRlZEZpZWxkcy5pbmNsdWRlcyhjb2wuZmllbGQoKSk7XHJcblx0XHRcdH0pXHJcblx0XHRcdC5mb3JFYWNoKChjb2wpID0+IHtcclxuXHRcdFx0XHRjb25zdCBjb2xHcm91cCA9IHRoaXMuZmIuZ3JvdXA8Q29sRm9ybT4oe1xyXG5cdFx0XHRcdFx0Y2hlY2tlZDogdGhpcy5mYi5jb250cm9sKHRydWUpLFxyXG5cdFx0XHRcdFx0dGl0bGU6IHRoaXMuZmIuY29udHJvbChjb2wuaGVhZGVyKCkpLFxyXG5cdFx0XHRcdFx0ZGF0YUtleTogdGhpcy5mYi5jb250cm9sKGNvbC5maWVsZCgpKVxyXG5cdFx0XHRcdH0pO1xyXG5cclxuXHRcdFx0XHR0aGlzLmV4cG9ydEZvcm0uY29udHJvbHMuY29sdW1ucy5wdXNoKGNvbEdyb3VwKTtcclxuXHRcdFx0fSk7XHJcblxyXG5cdFx0dGhpcy5leHBvcnRGb3JtLmNvbnRyb2xzLmNvbHVtbnMudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgodCkgPT4gKHRoaXMuaXNBbGxTZWxlY3RlZCA9IHQuZXZlcnkoKGEpID0+IGEuY2hlY2tlZCkpKTtcclxuXHR9XHJcblxyXG5cdGdldCBob3N0VXJsKCk6IHN0cmluZyB7XHJcblx0XHRyZXR1cm4gYCR7Z2xvYmFsVGhpcy5sb2NhdGlvbi5wcm90b2NvbH0vLyR7Z2xvYmFsVGhpcy5sb2NhdGlvbi5ob3N0fS9odG1sL2A7XHJcblx0fVxyXG5cclxuXHRhc3luYyBleHBvcnQoKSB7XHJcblx0XHRjb25zdCB7IGV4cG9ydFR5cGUsIGV4cG9ydExhYmVsLCBjb2x1bW5zIH0gPSB0aGlzLmV4cG9ydEZvcm0udmFsdWU7XHJcblx0XHRjb25zdCB7IHJvdXRlLCBwYXJhbXMsIGNvbHVtbkZpZWxkVmFsdWVNYXAsIGRhdGVDb2x1bW5Gb3JtYXRNYXAsIGNvbXB1dGVkQ29sdW1uTWFwIH0gPSB0aGlzLmV4cG9ydENvbmZpZygpITtcclxuXHJcblx0XHRjb25zdCBjaGVja2VkQ29sdW1ucyA9IGNvbHVtbnMhLmZpbHRlcigodCkgPT4gdC5jaGVja2VkKTtcclxuXHRcdGNvbnN0IGZpbGVFeHRlbnNpb24gPSB0aGlzLmV4cG9ydFR5cGVPcHRpb25zLmZpbmQoKHQpID0+IHQua2V5ID09PSBleHBvcnRUeXBlKT8uZmlsZUV4dGVuc2lvbjtcclxuXHJcblx0XHRsZXQgY29sdW1uRmllbGRWYWx1ZU1hcE9iajogQ29sdW1uRmllbGRWYWx1ZU1hcCB8IHVuZGVmaW5lZDtcclxuXHJcblx0XHRpZiAoY29sdW1uRmllbGRWYWx1ZU1hcCkge1xyXG5cdFx0XHRjb25zdCB0ZW1wT2JqID0ge30gYXMgQ29sdW1uRmllbGRWYWx1ZU1hcDtcclxuXHJcblx0XHRcdGF3YWl0IGZpcnN0VmFsdWVGcm9tKFxyXG5cdFx0XHRcdGZyb20oT2JqZWN0LmVudHJpZXMoY29sdW1uRmllbGRWYWx1ZU1hcCkpLnBpcGUoXHJcblx0XHRcdFx0XHRjb25jYXRNYXAoKFtmaWVsZE5hbWUsIHZhbHVlXSkgPT4ge1xyXG5cdFx0XHRcdFx0XHRpZiAoXHJcblx0XHRcdFx0XHRcdFx0IXRoaXMuc2VsZWN0aW9uR3JvdXBTZXJ2aWNlLnNlbGVjdGlvbkdyb3VwcygpW2Ake3ZhbHVlLmdyb3VwTmFtZX1+JHt2YWx1ZS5wYXJlbnRTZWxlY3Rpb25LZXkgPz8gJ0FMTCd9YF1cclxuXHRcdFx0XHRcdFx0KSB7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5zZWxlY3Rpb25Hcm91cFNlcnZpY2UuZmV0Y2hFbnVtKHZhbHVlLmdyb3VwTmFtZSwgdmFsdWUucGFyZW50U2VsZWN0aW9uS2V5KTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRcdFx0Y29uc3Qga2V5ID0gdmFsdWUuZ3JvdXBOYW1lICsgJ34nICsgKHZhbHVlLnBhcmVudFNlbGVjdGlvbktleSA/PyAnQUxMJyk7XHJcblxyXG5cdFx0XHRcdFx0XHRyZXR1cm4gaW50ZXJ2YWwoMTApLnBpcGUoXHJcblx0XHRcdFx0XHRcdFx0ZmlsdGVyKCgpID0+ICF0aGlzLnNlbGVjdGlvbkdyb3VwU2VydmljZS5pc0xvYWRpbmcoa2V5KSksXHJcblx0XHRcdFx0XHRcdFx0dGFrZSgxKSxcclxuXHRcdFx0XHRcdFx0XHRtYXAoKCkgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdFx0Y29uc3Qgc2VsZWN0aW9uR3JvdXAgPSB0aGlzLnNlbGVjdGlvbkdyb3VwU2VydmljZS5zZWxlY3Rpb25Hcm91cHMoKVtrZXldO1xyXG5cdFx0XHRcdFx0XHRcdFx0aWYgKHNlbGVjdGlvbkdyb3VwKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdHRlbXBPYmpbZmllbGROYW1lXSA9IHNlbGVjdGlvbkdyb3VwLnNlbGVjdGlvbkl0ZW1zLnJlZHVjZSgoYWNjOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LCBpdGVtKSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0YWNjW2l0ZW0uc2VsZWN0aW9uS2V5XSA9IGl0ZW0uc2VsZWN0aW9uRGlzcGxheTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRyZXR1cm4gYWNjO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcblx0XHRcdFx0XHRcdFx0XHRcdH0sIHt9KSBhcyBhbnk7XHJcblx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdFx0KTtcclxuXHRcdFx0XHRcdH0pLFxyXG5cdFx0XHRcdFx0dG9BcnJheSgpLFxyXG5cdFx0XHRcdFx0ZmluYWxpemUoKCkgPT4ge1xyXG5cdFx0XHRcdFx0XHRjb2x1bW5GaWVsZFZhbHVlTWFwT2JqID0gdGVtcE9iajtcclxuXHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0KVxyXG5cdFx0XHQpO1xyXG5cdFx0fVxyXG5cclxuXHRcdGNvbnN0IHJlcXVlc3Q6IEV4cG9ydFJlcXVlc3QgPSB7XHJcblx0XHRcdHJvdXRlOiByb3V0ZSEsXHJcblx0XHRcdHBhcmFtczogcGFyYW1zISxcclxuXHRcdFx0ZXhwb3J0VHlwZTogZXhwb3J0VHlwZSEsXHJcblx0XHRcdGV4cG9ydExhYmVsOiBleHBvcnRMYWJlbCEsXHJcblx0XHRcdGNvbXB1dGVkQ29sdW1uTWFwOiBjb21wdXRlZENvbHVtbk1hcCEsXHJcblx0XHRcdGRhdGVDb2x1bW5Gb3JtYXRNYXA6IGRhdGVDb2x1bW5Gb3JtYXRNYXAhLFxyXG5cdFx0XHRjb2x1bW5GaWVsZFZhbHVlTWFwOiBjb2x1bW5GaWVsZFZhbHVlTWFwT2JqISxcclxuXHRcdFx0aGVhZGVyTmFtZXM6IGNoZWNrZWRDb2x1bW5zLm1hcCgoY29sKSA9PiBjb2wudGl0bGUhKSxcclxuXHRcdFx0b3V0cHV0RmllbGRzOiBjaGVja2VkQ29sdW1ucy5tYXAoKGNvbCkgPT4gY29sLmRhdGFLZXkhKVxyXG5cdFx0fTtcclxuXHJcblx0XHRjb25zdCByZXNwb25zZSA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKFxyXG5cdFx0XHR0aGlzLmh0dHAucG9zdDx7IHN1Y2Nlc3M6IGJvb2xlYW47IHVybDogc3RyaW5nIH0+KEFQSV9DT05GSUdTLmFwaSArICcvYmF0Y2gtZXhwb3J0ZXJzL2V4cG9ydCcsIHJlcXVlc3QpLnBpcGUoXHJcblx0XHRcdFx0c3dpdGNoTWFwKChyZXMpID0+XHJcblx0XHRcdFx0XHR0aGlzLmh0dHAuZ2V0KEFQSV9DT05GSUdTLmFwaSArICcvYnVja2V0LW9iamVjdHMvZG93bmxvYWQnLCB7XHJcblx0XHRcdFx0XHRcdHBhcmFtczogeyB1cmw6IHJlcy51cmwgfSxcclxuXHRcdFx0XHRcdFx0cmVzcG9uc2VUeXBlOiAnYmxvYidcclxuXHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0KSxcclxuXHRcdFx0XHRjYXRjaEVycm9yKChlcnJvcikgPT4ge1xyXG5cdFx0XHRcdFx0aWYgKGVycm9yLnN0YXR1cyA9PT0gNTA0KSB7XHJcblx0XHRcdFx0XHRcdHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gYCR7dGhpcy5ob3N0VXJsfW1uZy8jL21uZy9jb250cm9sLW1hbmFnZW1lbnQvZXhwb3J0LXJlcXVlc3RzYDtcclxuXHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdGNvbnNvbGUuZXJyb3IoJ0hhdGEgb2x1xZ90dTonLCBlcnJvcik7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRyZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBlcnJvcik7XHJcblx0XHRcdFx0fSlcclxuXHRcdFx0KVxyXG5cdFx0KTtcclxuXHJcblx0XHRzYXZlQXMocmVzcG9uc2UsIGAke2V4cG9ydExhYmVsfS0ke25ldyBEYXRlKCkuZ2V0VGltZSgpfSR7ZmlsZUV4dGVuc2lvbn1gKTtcclxuXHR9XHJcblxyXG5cdG9uU2VsZWN0QWxsKHZhbHVlOiBib29sZWFuKTogdm9pZCB7XHJcblx0XHRmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuZXhwb3J0Rm9ybS5jb250cm9scy5jb2x1bW5zLmxlbmd0aDsgaSsrKSB7XHJcblx0XHRcdGNvbnN0IGZvcm1Hcm91cCA9IHRoaXMuZXhwb3J0Rm9ybS5jb250cm9scy5jb2x1bW5zLmF0KGkpO1xyXG5cdFx0XHRmb3JtR3JvdXAuY29udHJvbHMuY2hlY2tlZC5zZXRWYWx1ZSh2YWx1ZSk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHR0b2dnbGVFeHBvcnQgPSAoZXZlbnQ6IEV2ZW50KTogdm9pZCA9PiB0aGlzLm9wLnRvZ2dsZShldmVudCk7XHJcblxyXG5cdGhhbmRsZUxhenlMb2FkRXZlbnQoZXZlbnQ6IGFueSk6IHZvaWQge1xyXG5cdFx0Y29uc3QgbmV3RXZlbnREYXRhID0ge1xyXG5cdFx0XHRwYWdlcjoge1xyXG5cdFx0XHRcdHBhZ2VTaXplOiBldmVudC5yb3dzLFxyXG5cdFx0XHRcdHBhZ2VOdW1iZXI6IGV2ZW50LmZpcnN0IC8gZXZlbnQucm93cyArIDFcclxuXHRcdFx0fSxcclxuXHRcdFx0c29ydDogZXZlbnQubXVsdGlTb3J0TWV0YSxcclxuXHRcdFx0ZmlsdGVyOiBldmVudC5maWx0ZXJzXHJcblx0XHR9O1xyXG5cdFx0dGhpcy5sYXp5TG9hZEV2ZW50LmVtaXQobmV3RXZlbnREYXRhKTtcclxuXHR9XHJcblxyXG5cdGNsZWFyKCk6IHZvaWQge1xyXG5cdFx0dGhpcy50YWJsZVJlZi52YWx1ZSA9IFtdO1xyXG5cdFx0dGhpcy50YWJsZVJlZi5jbGVhcigpO1xyXG5cdFx0dGhpcy5vcD8uaGlkZSgpO1xyXG5cdH1cclxufVxyXG4iLCI8cC10YWJsZVxyXG5cdCNyZWZcclxuXHRbdmFsdWVdPVwiZGF0YSgpXCJcclxuXHRbZGF0YUtleV09XCJkYXRhS2V5KClcIlxyXG5cdFtjb2x1bW5zXT1cImNvbHVtbnMuX3Jlc3VsdHNcIlxyXG5cdFtyb3dzXT1cInBhZ2VTaXplKClcIlxyXG5cdFtyb3dIb3Zlcl09XCJ0cnVlXCJcclxuXHRbcGFnaW5hdG9yXT1cInBhZ2luYXRvcigpXCJcclxuXHRbbGF6eV09XCJpc0xhenkoKVwiXHJcblx0W2xhenlMb2FkT25Jbml0XT1cImZhbHNlXCJcclxuXHRbdG90YWxSZWNvcmRzXT1cInRvdGFsUmVjb3JkcygpXCJcclxuXHRbcm93c1BlclBhZ2VPcHRpb25zXT1cIlsxMCwgMjAsIDUwLCAxMDBdXCJcclxuXHRbZmlsdGVyRGVsYXldPVwiMFwiXHJcblx0c29ydE1vZGU9XCJtdWx0aXBsZVwiXHJcblx0WyhzZWxlY3Rpb24pXT1cInNlbGVjdGVkUm93c1wiXHJcblx0KG9uUGFnZSk9XCJvblBhZ2VFdmVudC5lbWl0KCRldmVudClcIlxyXG5cdChvbkxhenlMb2FkKT1cImhhbmRsZUxhenlMb2FkRXZlbnQoJGV2ZW50KVwiXHJcblx0KHNlbGVjdGlvbkNoYW5nZSk9XCJzZWxlY3Rpb25FdmVudC5lbWl0KHNlbGVjdGVkUm93cylcIlxyXG5cdFtzaG93Q3VycmVudFBhZ2VSZXBvcnRdPVwidHJ1ZVwiXHJcblx0W3NlbGVjdGlvbk1vZGVdPVwic2VsZWN0aW9uTW9kZSgpXCJcclxuXHRbY29sdW1uUmVzaXplTW9kZV09XCJpc0NvbHVtbkV4cGFuZE1vZGUoKSA/ICdleHBhbmQnOiAnJ1wiXHJcblx0W3Jlc2l6YWJsZUNvbHVtbnNdPVwiaXNSZXNpemFibGVDb2x1bW5zKClcIlxyXG5cdGN1cnJlbnRQYWdlUmVwb3J0VGVtcGxhdGU9XCJUb3BsYW0gOiB7dG90YWxSZWNvcmRzfSBrYXnEsXQgfCBTYXlmYSA6IHtjdXJyZW50UGFnZX0gLyB7dG90YWxQYWdlc31cIlxyXG5cdHN0eWxlQ2xhc3M9XCJwLWRhdGF0YWJsZS1zbVwiXHJcblx0W3BhZ2luYXRvckRyb3Bkb3duQXBwZW5kVG9dPVwicGFnaW5hdG9yRHJvcGRvd25BcHBlbmRUbygpXCI+XHJcblx0PCEtLUBpZiAodGFibGVIZWFkZXIoKSB8fCBzaG93U2VhcmNoVG9vbCgpIHx8IHNob3dFeHBvcnRUb29sKCkpIHtcclxuXHRcdDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJjYXB0aW9uXCI+XHJcblx0XHRcdDxkaXYgY2xhc3M9XCJmbGV4IHNwYWNlLWJldHdlZW5cIj5cclxuXHRcdFx0XHQ8ZGl2IHN0eWxlPVwiZmxleDogYXV0b1wiPlxyXG5cdFx0XHRcdFx0QGlmICh0YWJsZUhlYWRlcigpLmxlbmd0aCkge1xyXG5cdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwidGFibGUtaGVhZGVyXCI+XHJcblx0XHRcdFx0XHRcdFx0e3sgdGFibGVIZWFkZXIoKSB9fVxyXG5cdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHQ8ZGl2IHN0eWxlPVwiZmxleDogYXV0b1wiPlxyXG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1jb250ZW50LWVuZCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuXHRcdFx0XHRcdFx0QGlmIChmYWxzZSkge1xyXG5cdFx0XHRcdFx0XHRcdDxhcmlsLXRleHRcclxuXHRcdFx0XHRcdFx0XHRcdGljb249XCJTRUFSQ0hcIlxyXG5cdFx0XHRcdFx0XHRcdFx0aWNvblBvcz1cImxlZnRcIlxyXG5cdFx0XHRcdFx0XHRcdFx0cGxhY2Vob2xkZXI9XCJBcmFtYVwiXHJcblx0XHRcdFx0XHRcdFx0XHRbbmdNb2RlbF09XCJmaWx0ZXJUZXh0XCJcclxuXHRcdFx0XHRcdFx0XHRcdGNsYXNzPVwibXItMVwiXHJcblx0XHRcdFx0XHRcdFx0XHQobmdNb2RlbENoYW5nZSk9XCJyZWYuZmlsdGVyR2xvYmFsKCRldmVudC50YXJnZXQudmFsdWUsICdjb250YWlucycpXCI+XHJcblx0XHRcdFx0XHRcdFx0PC9hcmlsLXRleHQ+XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0QGlmIChmYWxzZSkge1xyXG5cdFx0XHRcdFx0XHRcdDxhcmlsLWJ1dHRvblxyXG5cdFx0XHRcdFx0XHRcdFx0c2l6ZT1cInNtXCJcclxuXHRcdFx0XHRcdFx0XHRcdGljb249XCJGSUxFX0VYQ0VMXCJcclxuXHRcdFx0XHRcdFx0XHRcdGNvbG9yPVwicHJpbWFyeVwiXHJcblx0XHRcdFx0XHRcdFx0XHRwVG9vbHRpcD1cIlhMU1wiXHJcblx0XHRcdFx0XHRcdFx0XHR0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxyXG5cdFx0XHRcdFx0XHRcdFx0KGNsaWNrRXZlbnQpPVwiZXhjZWxFeHBvcnQoKVwiXHJcblx0XHRcdFx0XHRcdFx0XHRjbGFzcz1cIm1yLTFcIj5cclxuXHRcdFx0XHRcdFx0XHQ8L2FyaWwtYnV0dG9uPlxyXG5cdFx0XHRcdFx0XHRcdDxhcmlsLWJ1dHRvblxyXG5cdFx0XHRcdFx0XHRcdFx0c2l6ZT1cInNtXCJcclxuXHRcdFx0XHRcdFx0XHRcdGljb249XCJGSUxFX1BERlwiXHJcblx0XHRcdFx0XHRcdFx0XHRjb2xvcj1cInByaW1hcnlcIlxyXG5cdFx0XHRcdFx0XHRcdFx0cFRvb2x0aXA9XCJQREZcIlxyXG5cdFx0XHRcdFx0XHRcdFx0dG9vbHRpcFBvc2l0aW9uPVwidG9wXCJcclxuXHRcdFx0XHRcdFx0XHRcdChjbGlja0V2ZW50KT1cImV4cG9ydFBkZigpXCI+XHJcblx0XHRcdFx0XHRcdFx0PC9hcmlsLWJ1dHRvbj5cclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRAaWYgKGRhdGEoKSAmJiBrZWJhYk1lbnVJdGVtcy5sZW5ndGggPiAwICkge1xyXG5cdFx0XHRcdFx0XHRcdDxkaXYgdG9vbHMgc3R5bGU9XCJwYWRkaW5nOiA0cHg7bWFyZ2luLWxlZnQ6IDRweDtib3JkZXI6MXB4IHNvbGlkICM2MzY2ZjE7Ym9yZGVyLXJhZGl1czogNnB4O2JhY2tncm91bmQtY29sb3I6ICM2MzY2ZjE7IGNvbG9yOiB3aGl0ZTtcIiA+XHJcblx0XHRcdFx0XHRcdFx0XHQ8aVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRbYXR0ci5yb2xlXT1cIidub25lJ1wiXHJcblx0XHRcdFx0XHRcdFx0XHRcdGNsYXNzPVwicGkgbXItMSBoZWFkZXItaWNvbiBwaS1lbGxpcHNpcy12XCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0KGNsaWNrKT1cImJ1bGtPcGVyYXRpb25zLnRvZ2dsZSgkZXZlbnQpO1wiPjwvaT5cclxuXHRcdFx0XHRcdFx0XHRcdDxwLW1lbnVcclxuXHRcdFx0XHRcdFx0XHRcdFx0I2J1bGtPcGVyYXRpb25zXHJcblx0XHRcdFx0XHRcdFx0XHRcdFtwb3B1cF09XCJ0cnVlXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0W21vZGVsXT1cImtlYmFiTWVudUl0ZW1zXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0c3R5bGVDbGFzcz1cInotaW5kZXg6IDk5OTg4OTk7XCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0YXBwZW5kVG89XCJib2R5XCI+PC9wLW1lbnU+XHJcblx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHQ8L2Rpdj5cclxuXHRcdDwvbmctdGVtcGxhdGU+XHJcblx0fS0tPlxyXG5cclxuXHQ8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaGVhZGVyXCIgbGV0LWNvbHVtbnM+XHJcblx0XHQ8dHI+XHJcblx0XHRcdEBpZiAoY2hlY2tib3hTZWxlY3Rpb24oKSkge1xyXG5cdFx0XHRcdDx0aD5cclxuXHRcdFx0XHRcdEBpZiAoaGVhZGVyQ2hlY2tib3hTZWxlY3Rpb24oKSkge1xyXG5cdFx0XHRcdFx0XHQ8cC10YWJsZUhlYWRlckNoZWNrYm94PjwvcC10YWJsZUhlYWRlckNoZWNrYm94PlxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdDwvdGg+XHJcblx0XHRcdH1cclxuXHRcdFx0QGZvciAoY29sdW1uIG9mIGNvbHVtbnM7IHRyYWNrICRpbmRleCkge1xyXG5cdFx0XHRcdEBpZiAoY29sdW1uLnR5cGUoKSA9PT0gJ29wZXJhdGlvbnMnKSB7XHJcblx0XHRcdFx0XHQ8dGg+XHJcblx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXJcIj7EsMWfbGVtbGVyPC9kaXY+XHJcblx0XHRcdFx0XHQ8L3RoPlxyXG5cdFx0XHRcdH0gQGVsc2Uge1xyXG5cclxuXHRcdFx0XHRcdEBpZiAoaXNSZXNpemFibGVDb2x1bW5zKCkpIHtcclxuXHRcdFx0XHRcdFx0PHRoIFtwU29ydGFibGVDb2x1bW5dPVwiY29sdW1uLmZpZWxkKClcIiBbbmdTdHlsZV09XCJ7J3dpZHRoJzogY29sdW1uLndpZHRoKCkgPyBjb2x1bW4ud2lkdGgoKSA6ICdhdXRvJ31cIiBwUmVzaXphYmxlQ29sdW1uPlxyXG5cdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMlwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0e3sgY29sdW1uLmhlYWRlcigpIH19XHJcblx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleFwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRAaWYgKGNvbHVtbi5pc1Nob3dIZWFkZXJUb29sdGlwKCkpIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8aVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0c3R5bGU9XCJjb2xvcjogZ3JlZW47IHBhZGRpbmctdG9wOiA0cHg7IHBhZGRpbmctbGVmdDogNHB4XCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNsYXNzPVwicGkgcGktaW5mby1jaXJjbGVcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0W3BUb29sdGlwXT1cImNvbHVtbi50b29sdGlwVGVtcGxhdGUoKVwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR0b29sdGlwUG9zaXRpb249XCJ0b3BcIj48L2k+XHJcblx0XHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRcdFx0QGlmICghaXNMYXp5KCkpIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8cC1zb3J0SWNvbiBbZmllbGRdPVwiY29sdW1uLmZpZWxkKClcIj48L3Atc29ydEljb24+XHJcblx0XHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0XHQ8L3RoPlxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0QGVsc2UgaWYgKGlzU29ydGFibGUoKSl7XHJcblx0XHRcdFx0XHRcdDx0aCBbcFNvcnRhYmxlQ29sdW1uXT1cImNvbHVtbi5maWVsZCgpXCIgW25nU3R5bGVdPVwieyd3aWR0aCc6IGNvbHVtbi53aWR0aCgpID8gY29sdW1uLndpZHRoKCkgOiAnYXV0byd9XCIgIHN0eWxlPVwibWluLXdpZHRoOjE3MHB4XCI+XHJcblx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XHJcblx0XHRcdFx0XHRcdFx0XHR7eyBjb2x1bW4uaGVhZGVyKCkgfX1cclxuXHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJmbGV4XCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdEBpZiAoY29sdW1uLmlzU2hvd0hlYWRlclRvb2x0aXAoKSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxpXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRzdHlsZT1cImNvbG9yOiBncmVlbjsgcGFkZGluZy10b3A6IDRweDsgcGFkZGluZy1sZWZ0OiA0cHhcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJwaSBwaS1pbmZvLWNpcmNsZVwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRbcFRvb2x0aXBdPVwiY29sdW1uLnRvb2x0aXBUZW1wbGF0ZSgpXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHRvb2x0aXBQb3NpdGlvbj1cInRvcFwiPjwvaT5cclxuXHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8cC1zb3J0SWNvbiBbZmllbGRdPVwiY29sdW1uLmZpZWxkKClcIj48L3Atc29ydEljb24+XHJcblx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0PC90aD5cclxuXHRcdFx0XHRcdH0gQGVsc2Uge1xyXG5cdFx0XHRcdFx0XHQ8dGggW25nU3R5bGVdPVwieyd3aWR0aCc6IGNvbHVtbi53aWR0aCgpID8gY29sdW1uLndpZHRoKCkgOiAnYXV0byd9XCIgIHN0eWxlPVwibWluLXdpZHRoOjE3MHB4XCI+XHJcblx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XHJcblx0XHRcdFx0XHRcdFx0XHR7eyBjb2x1bW4uaGVhZGVyKCkgfX1cclxuXHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJmbGV4XCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdEBpZiAoY29sdW1uLmlzU2hvd0hlYWRlclRvb2x0aXAoKSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxpXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRzdHlsZT1cImNvbG9yOiBncmVlbjsgcGFkZGluZy10b3A6IDRweDsgcGFkZGluZy1sZWZ0OiA0cHhcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJwaSBwaS1pbmZvLWNpcmNsZVwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRbcFRvb2x0aXBdPVwiY29sdW1uLnRvb2x0aXBUZW1wbGF0ZSgpXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHRvb2x0aXBQb3NpdGlvbj1cInRvcFwiPjwvaT5cclxuXHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdDwvdGg+XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHQ8L3RyPlxyXG5cdDwvbmctdGVtcGxhdGU+XHJcblxyXG5cdDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJib2R5XCIgbGV0LWl0ZW0gbGV0LWNvbHVtbnM9XCJjb2x1bW5zXCI+XHJcblx0XHRAaWYgKHNlbGVjdGlvbk1vZGUoKSkge1xyXG5cdFx0XHQ8dHIgW3BTZWxlY3RhYmxlUm93XT1cIml0ZW1cIj5cclxuXHRcdFx0XHRAZm9yIChjb2x1bW4gb2YgY29sdW1uczsgdHJhY2sgJGluZGV4KSB7XHJcblx0XHRcdFx0XHQ8dGQgW25nU3R5bGVdPVwieyAndGV4dC1hbGlnbic6IGNvbHVtbi50eXBlKCkgPT09ICdvcGVyYXRpb25zJyA/ICdjZW50ZXInIDogY29sdW1uLnRBbGlnbigpIHx8IHRBbGlnbigpIH1cIj5cclxuXHRcdFx0XHRcdFx0PG5nLXRlbXBsYXRlIG5nRm9yIFtuZ0Zvck9mXT1cIltpdGVtXVwiIFtuZ0ZvclRlbXBsYXRlXT1cImNvbHVtbi50ZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XHJcblx0XHRcdFx0XHQ8L3RkPlxyXG5cdFx0XHRcdH1cclxuXHRcdFx0PC90cj5cclxuXHRcdH0gQGVsc2Uge1xyXG5cdFx0XHQ8dHIgW25nU3R5bGVdPVwieyAnYmFja2dyb3VuZC1jb2xvcic6IGl0ZW0/LnJvd0NvbG9yID8gaXRlbT8ucm93Q29sb3IgOiAnI2ZmZicgfVwiPlxyXG5cdFx0XHRcdEBpZiAoY2hlY2tib3hTZWxlY3Rpb24oKSkge1xyXG5cdFx0XHRcdFx0PHRkPlxyXG5cdFx0XHRcdFx0XHQ8cC10YWJsZUNoZWNrYm94IFt2YWx1ZV09XCJpdGVtXCI+PC9wLXRhYmxlQ2hlY2tib3g+XHJcblx0XHRcdFx0XHQ8L3RkPlxyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0QGZvciAoY29sdW1uIG9mIGNvbHVtbnM7IHRyYWNrICRpbmRleCkge1xyXG5cdFx0XHRcdFx0PHRkIFtuZ1N0eWxlXT1cInsgJ3RleHQtYWxpZ24nOiBjb2x1bW4udHlwZSgpID09PSAnb3BlcmF0aW9ucycgPyAnY2VudGVyJyA6IGNvbHVtbi50QWxpZ24oKSB8fCB0QWxpZ24oKSB9XCI+XHJcblx0XHRcdFx0XHRcdDxuZy10ZW1wbGF0ZSBuZ0ZvciBbbmdGb3JPZl09XCJbaXRlbV1cIiBbbmdGb3JUZW1wbGF0ZV09XCJjb2x1bW4udGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxyXG5cdFx0XHRcdFx0PC90ZD5cclxuXHRcdFx0XHR9XHJcblx0XHRcdDwvdHI+XHJcblx0XHR9XHJcblx0PC9uZy10ZW1wbGF0ZT5cclxuXHJcblx0QGlmIChzaG93Rm9vdGVyKCkpIHtcclxuXHRcdDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJzdW1tYXJ5XCI+XHJcblx0XHRcdDxuZy1jb250ZW50IHNlbGVjdD1cIltmb290ZXJdXCI+PC9uZy1jb250ZW50PlxyXG5cdFx0PC9uZy10ZW1wbGF0ZT5cclxuXHR9XHJcblxyXG5cdDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJlbXB0eW1lc3NhZ2VcIj5cclxuXHRcdDx0cj5cclxuXHRcdFx0PHRkIFthdHRyLmNvbHNwYW5dPVwiY29sdW1ucy5fcmVzdWx0cy5sZW5ndGhcIj57eyBub0RhdGFGb3VuZExhYmVsKCkgfX08L3RkPlxyXG5cdFx0PC90cj5cclxuXHQ8L25nLXRlbXBsYXRlPlxyXG48L3AtdGFibGU+XHJcblxyXG48cC1vdmVybGF5UGFuZWwgc3R5bGVDbGFzcz1cImV4cG9ydC1vdmVybGF5LXBhbmVsXCI+XHJcblx0QGlmIChleHBvcnRGb3JtKSB7XHJcblx0XHQ8YXJpbC1mb3JtIFtmb3JtR3JvdXBdPVwiZXhwb3J0Rm9ybVwiIGNsYXNzPVwidy0yMHJlbVwiPlxyXG5cdFx0XHQ8YXJpbC1maWVsZCBbbGFiZWxdPVwiJ0V4cG9ydCBUaXBpJ1wiIFtjb2xzXT1cInsgZGVmYXVsdDogMTIgfVwiPlxyXG5cdFx0XHRcdDxhcmlsLXJhZGlvLWJ1dHRvbiBmb3JtQ29udHJvbE5hbWU9XCJleHBvcnRUeXBlXCIgW29wdGlvbnNdPVwiZXhwb3J0VHlwZU9wdGlvbnNcIiAvPlxyXG5cdFx0XHQ8L2FyaWwtZmllbGQ+XHJcblxyXG5cdFx0XHQ8YXJpbC1maWVsZCBbbGFiZWxdPVwiJ0Rvc3lhIMSwc21pJ1wiIFtjb2xzXT1cInsgZGVmYXVsdDogMTIgfVwiPlxyXG5cdFx0XHRcdDxhcmlsLXRleHQgY2xhc3M9XCJ3LWZ1bGxcIiBmb3JtQ29udHJvbE5hbWU9XCJleHBvcnRMYWJlbFwiIC8+XHJcblx0XHRcdDwvYXJpbC1maWVsZD5cclxuXHJcblx0XHRcdDxuZy1jb250YWluZXIgZm9ybUFycmF5TmFtZT1cImNvbHVtbnNcIj5cclxuXHRcdFx0XHQ8cC1vcmRlckxpc3RcclxuXHRcdFx0XHRcdCNvcmRlckxpc3RSZWZcclxuXHRcdFx0XHRcdGNsYXNzPVwiY29sLTEyXCJcclxuXHRcdFx0XHRcdFt2YWx1ZV09XCJleHBvcnRGb3JtLmNvbnRyb2xzLmNvbHVtbnMuY29udHJvbHNcIlxyXG5cdFx0XHRcdFx0W2xpc3RTdHlsZV09XCJ7ICdtYXgtaGVpZ2h0JzogJzIwcmVtJyB9XCJcclxuXHRcdFx0XHRcdGZpbHRlckJ5PVwidmFsdWUudGl0bGVcIj5cclxuXHRcdFx0XHRcdDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJmaWx0ZXJcIj5cclxuXHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0zXCI+XHJcblx0XHRcdFx0XHRcdFx0PGFyaWwtY2hlY2tib3hcclxuXHRcdFx0XHRcdFx0XHRcdFtsYWJlbF09XCInJ1wiXHJcblx0XHRcdFx0XHRcdFx0XHRbbmdNb2RlbF09XCJpc0FsbFNlbGVjdGVkXCJcclxuXHRcdFx0XHRcdFx0XHRcdFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXHJcblx0XHRcdFx0XHRcdFx0XHQobmdNb2RlbENoYW5nZSk9XCJvblNlbGVjdEFsbCgkZXZlbnQpXCIgLz5cclxuXHJcblx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cInAtb3JkZXJsaXN0LWZpbHRlclwiIFthdHRyLmRhdGEtcGMtc2VjdGlvbl09XCInZmlsdGVyJ1wiPlxyXG5cdFx0XHRcdFx0XHRcdFx0PGlucHV0XHJcblx0XHRcdFx0XHRcdFx0XHRcdCNmaWx0ZXJcclxuXHRcdFx0XHRcdFx0XHRcdFx0dHlwZT1cInRleHRcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRyb2xlPVwidGV4dGJveFwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdChrZXl1cCk9XCJvcmRlckxpc3RSZWYub25GaWx0ZXJLZXl1cCgkZXZlbnQpXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0W2Rpc2FibGVkXT1cIm9yZGVyTGlzdFJlZi5kaXNhYmxlZFwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdGNsYXNzPVwicC1vcmRlcmxpc3QtZmlsdGVyLWlucHV0IHAtaW5wdXR0ZXh0IHAtY29tcG9uZW50XCIgLz5cclxuXHRcdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHQ8L25nLXRlbXBsYXRlPlxyXG5cdFx0XHRcdFx0PG5nLXRlbXBsYXRlIGxldC1jb2wgcFRlbXBsYXRlPVwiaXRlbVwiPlxyXG5cdFx0XHRcdFx0XHQ8YXJpbC1jaGVja2JveCBbbGFiZWxdPVwiY29sLnZhbHVlLnRpdGxlXCIgW2Zvcm1Db250cm9sXT1cImNvbC5jb250cm9scy5jaGVja2VkXCIgLz5cclxuXHRcdFx0XHRcdDwvbmctdGVtcGxhdGU+XHJcblx0XHRcdFx0PC9wLW9yZGVyTGlzdD5cclxuXHRcdFx0PC9uZy1jb250YWluZXI+XHJcblxyXG5cdFx0XHQ8YXJpbC1idXR0b24gY2xhc3M9XCJjb2wtMTJcIiBsYWJlbD1cIkV4cG9ydFwiIGNvbG9yPVwicHJpbWFyeVwiIChjbGlja0V2ZW50KT1cImV4cG9ydCgpXCIgLz5cclxuXHRcdDwvYXJpbC1mb3JtPlxyXG5cdH1cclxuPC9wLW92ZXJsYXlQYW5lbD5cclxuIl19
|
|
254
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC91aS90YWJsZS9zcmMvdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC91aS90YWJsZS9zcmMvdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNOLFNBQVMsRUFDVCxlQUFlLEVBQ2YsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBRU4sU0FBUyxFQUNULE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFxQyxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUcvRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDcEQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd0QyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3BDLE9BQU8sRUFDTixVQUFVLEVBQ1YsU0FBUyxFQUNULE1BQU0sRUFDTixRQUFRLEVBQ1IsY0FBYyxFQUNkLElBQUksRUFDSixRQUFRLEVBQ1IsR0FBRyxFQUNILFNBQVMsRUFDVCxJQUFJLEVBQ0osVUFBVSxFQUNWLE9BQU8sRUFDUCxNQUFNLE1BQU0sQ0FBQztBQUVkLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBR3ZDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDckMsT0FBTyxFQUEwRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDbEgsT0FBTyxFQUFjLG9CQUFvQixFQUFnQixNQUFNLDBCQUEwQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFMUY7Ozs7O0dBS0c7QUFDSCxNQUFNLFdBQVcsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBVSxDQUFDO0FBYy9DLE1BQU0sT0FBTyxjQUFjO0lBc0QxQixZQUNTLElBQWdCLEVBQ2hCLEVBQTBCLEVBQzFCLGFBQTRCLEVBQzVCLGNBQThCLEVBQzlCLGdCQUFrQyxFQUNsQyxxQkFBNEM7UUFMNUMsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixPQUFFLEdBQUYsRUFBRSxDQUF3QjtRQUMxQixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQywwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBM0QzQyxnQkFBVyxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ3pELG1CQUFjLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7UUFDNUQsa0JBQWEsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUk1RCxtQkFBYyxHQUFlLEVBQUUsQ0FBQztRQUd6QyxTQUFJLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBUyxDQUFDO1FBQy9CLHNCQUFpQixHQUFHLEtBQUssRUFBVyxDQUFDO1FBQ3JDLDRCQUF1QixHQUFHLEtBQUssRUFBVyxDQUFDO1FBQzNDLGFBQVEsR0FBRyxLQUFLLENBQStCLEVBQUUsQ0FBQyxDQUFDO1FBQ25ELFVBQUssR0FBRyxLQUFLLENBQWEsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzdDLGVBQVUsR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDbkMsV0FBTSxHQUFHLEtBQUssQ0FBYSxNQUFNLENBQUMsQ0FBQztRQUNuQyxrQkFBYSxHQUFHLEtBQUssQ0FBaUIsUUFBUSxDQUFDLENBQUM7UUFDaEQsbUJBQWMsR0FBRyxLQUFLLENBQVUsSUFBSSxDQUFDLENBQUM7UUFDdEMsbUJBQWMsR0FBRyxLQUFLLENBQVUsSUFBSSxDQUFDLENBQUM7UUFDdEMsbUJBQWMsR0FBRyxLQUFLLENBQVMsRUFBRSxDQUFDLENBQUM7UUFDbkMscUJBQWdCLEdBQUcsS0FBSyxDQUFTLGVBQWUsQ0FBQyxDQUFDO1FBQ2xELGdCQUFXLEdBQUcsS0FBSyxDQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ2hDLG9CQUFlLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ3hDLHVCQUFrQixHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUMzQyxZQUFPLEdBQUcsS0FBSyxDQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQzVCLHNCQUFpQixHQUFHLEtBQUssQ0FBTSxFQUFFLENBQUMsQ0FBQztRQUNuQyxXQUFNLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQy9CLGlCQUFZLEdBQUcsS0FBSyxDQUFTLENBQUMsQ0FBQyxDQUFDO1FBQ2hDLGNBQVMsR0FBRyxLQUFLLENBQVUsSUFBSSxDQUFDLENBQUM7UUFDakMsOEJBQXlCLEdBQUcsS0FBSyxDQUFTLE1BQU0sQ0FBQyxDQUFDLENBQUMsa0JBQWtCO1FBRXJFLDZCQUF3QixHQUFHLEtBQUssQ0FBVSxJQUFJLENBQUMsQ0FBQztRQUNoRDs7V0FFRztRQUNILGlCQUFZLEdBQUcsS0FBSyxFQUFpQixDQUFDO1FBR3RDLHNCQUFpQixHQUFHO1lBQ25CLEVBQUUsR0FBRyxFQUFFLFVBQVUsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFO1lBQ2pFLEVBQUUsR0FBRyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFO1NBQzVELENBQUM7UUFHRixrQkFBYSxHQUFHLElBQUksQ0FBQztRQUVyQixnQkFBVyxHQUFHLFdBQVcsQ0FBQztRQUMxQixrQkFBYSxHQUE4QyxFQUFFLENBQUM7UUFDOUQsdUJBQWtCLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQzNDLHVCQUFrQixHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUMzQyxlQUFVLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ25DLHlCQUFvQixHQUFtQixRQUFRLENBQUM7UUFxQ3hDLGtCQUFhLEdBQUcsSUFBSSxDQUFDO1FBNkk3QixpQkFBWSxHQUFHLENBQUMsS0FBWSxFQUFRLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQXhLNUQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFL0MsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNYLElBQUksSUFBSSxDQUFDLGtCQUFrQixFQUFFLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7Z0JBQzlDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNuQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDN0MsQ0FBQztRQUNGLENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNYLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLEVBQUUsQ0FBQztnQkFDOUIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUM5QyxDQUFDO1FBQ0YsQ0FBQyxDQUFDLENBQUM7UUFFSCxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1gsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQztnQkFDekIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDekIsQ0FBQztRQUNGLENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNYLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFO2dCQUFFLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUM7O2dCQUMxRCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3ZELENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUlELFdBQVcsQ0FBQyxPQUFzQjtRQUNqQyxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsWUFBWSxLQUFLLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN2RixJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDeEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7Z0JBQzNCLE9BQU87WUFDUixDQUFDO1lBRUQsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFlBQVksQ0FBQztZQUNqRCxJQUFJLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLE1BQU0sRUFBRSxDQUFDO2dCQUM3RCxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQztvQkFDdkIsUUFBUSxFQUFFLE1BQU07b0JBQ2hCLE9BQU8sRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLDBCQUEwQixDQUFDO29CQUNwRSxHQUFHLEVBQUUsWUFBWTtpQkFDakIsQ0FBQyxDQUFDO1lBQ0osQ0FBQztRQUNGLENBQUM7SUFDRixDQUFDO0lBRU8sZ0JBQWdCO1FBQ3ZCLE1BQU0sRUFBRSxXQUFXLEVBQUUsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFHLENBQUM7UUFFN0MsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBYTtZQUMzQyxVQUFVLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQ2xFLFdBQVcsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUM5RCxPQUFPLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQXFCLEVBQUUsQ0FBQztTQUM5QyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVE7YUFDbkIsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLEtBQUssWUFBWSxDQUFDO2FBQzVDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ2YsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3pDLE1BQU0sY0FBYyxHQUFHLFlBQVksRUFBRSxjQUFjLElBQUksRUFBRSxDQUFDO1lBRTFELE9BQU8sQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQzlDLENBQUMsQ0FBQzthQUNELE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ2hCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFVO2dCQUN2QyxPQUFPLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO2dCQUM5QixLQUFLLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNwQyxPQUFPLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDO2FBQ3JDLENBQUMsQ0FBQztZQUVILElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDakQsQ0FBQyxDQUFDLENBQUM7UUFFSixJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEgsQ0FBQztJQUVELElBQUksT0FBTztRQUNWLE9BQU8sR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDLFFBQVEsS0FBSyxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksUUFBUSxDQUFDO0lBQzdFLENBQUM7SUFFRCxLQUFLLENBQUMsTUFBTTtRQUNYLE1BQU0sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDO1FBQ25FLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLG1CQUFtQixFQUFFLG1CQUFtQixFQUFFLGlCQUFpQixFQUFFLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRyxDQUFDO1FBRTVHLE1BQU0sY0FBYyxHQUFHLE9BQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN6RCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLFVBQVUsQ0FBQyxFQUFFLGFBQWEsQ0FBQztRQUU5RixJQUFJLHNCQUF1RCxDQUFDO1FBRTVELElBQUksbUJBQW1CLEVBQUUsQ0FBQztZQUN6QixNQUFNLE9BQU8sR0FBRyxFQUF5QixDQUFDO1lBRTFDLE1BQU0sY0FBYyxDQUNuQixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUM3QyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFO2dCQUNoQyxJQUNDLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGVBQWUsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLFNBQVMsSUFBSSxLQUFLLENBQUMsa0JBQWtCLElBQUksS0FBSyxFQUFFLENBQUMsRUFDdkcsQ0FBQztvQkFDRixJQUFJLENBQUMscUJBQXFCLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLGtCQUFrQixDQUFDLENBQUM7Z0JBQ2pGLENBQUM7Z0JBRUQsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLFNBQVMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsa0JBQWtCLElBQUksS0FBSyxDQUFDLENBQUM7Z0JBRXhFLE9BQU8sUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FDdkIsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUN4RCxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQ1AsR0FBRyxDQUFDLEdBQUcsRUFBRTtvQkFDUixNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsZUFBZSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQ3pFLElBQUksY0FBYyxFQUFFLENBQUM7d0JBQ3BCLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxjQUFjLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQTJCLEVBQUUsSUFBSSxFQUFFLEVBQUU7NEJBQy9GLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDOzRCQUMvQyxPQUFPLEdBQUcsQ0FBQzs0QkFDWCw4REFBOEQ7d0JBQy9ELENBQUMsRUFBRSxFQUFFLENBQVEsQ0FBQztvQkFDZixDQUFDO2dCQUNGLENBQUMsQ0FBQyxDQUNGLENBQUM7WUFDSCxDQUFDLENBQUMsRUFDRixPQUFPLEVBQUUsRUFDVCxRQUFRLENBQUMsR0FBRyxFQUFFO2dCQUNiLHNCQUFzQixHQUFHLE9BQU8sQ0FBQztZQUNsQyxDQUFDLENBQUMsQ0FDRixDQUNELENBQUM7UUFDSCxDQUFDO1FBRUQsTUFBTSxPQUFPLEdBQWtCO1lBQzlCLEtBQUssRUFBRSxLQUFNO1lBQ2IsTUFBTSxFQUFFLE1BQU87WUFDZixVQUFVLEVBQUUsVUFBVztZQUN2QixXQUFXLEVBQUUsV0FBWTtZQUN6QixpQkFBaUIsRUFBRSxpQkFBa0I7WUFDckMsbUJBQW1CLEVBQUUsbUJBQW9CO1lBQ3pDLG1CQUFtQixFQUFFLHNCQUF1QjtZQUM1QyxXQUFXLEVBQUUsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEtBQU0sQ0FBQztZQUNwRCxZQUFZLEVBQUUsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLE9BQVEsQ0FBQztTQUN2RCxDQUFDO1FBRUYsTUFBTSxRQUFRLEdBQUcsTUFBTSxjQUFjLENBQ3BDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFvQyxXQUFXLENBQUMsR0FBRyxHQUFHLHlCQUF5QixFQUFFLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FDM0csU0FBUyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FDakIsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLEdBQUcsR0FBRywwQkFBMEIsRUFBRTtZQUMzRCxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUN4QixZQUFZLEVBQUUsTUFBTTtTQUNwQixDQUFDLENBQ0YsRUFDRCxVQUFVLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNwQixJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUM7Z0JBQzFCLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sOENBQThDLENBQUM7WUFDdEYsQ0FBQztpQkFBTSxDQUFDO2dCQUNQLE9BQU8sQ0FBQyxLQUFLLENBQUMsY0FBYyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3RDLENBQUM7WUFDRCxPQUFPLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoQyxDQUFDLENBQUMsQ0FDRixDQUNELENBQUM7UUFFRixNQUFNLENBQUMsUUFBUSxFQUFFLEdBQUcsV0FBVyxJQUFJLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLEdBQUcsYUFBYSxFQUFFLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQWM7UUFDekIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNsRSxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3pELFNBQVMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1QyxDQUFDO0lBQ0YsQ0FBQztJQUlELG1CQUFtQixDQUFDLEtBQVU7UUFDN0IsTUFBTSxZQUFZLEdBQUc7WUFDcEIsS0FBSyxFQUFFO2dCQUNOLFFBQVEsRUFBRSxLQUFLLENBQUMsSUFBSTtnQkFDcEIsVUFBVSxFQUFFLEtBQUssQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLElBQUksR0FBRyxDQUFDO2FBQ3hDO1lBQ0QsSUFBSSxFQUFFLEtBQUssQ0FBQyxhQUFhO1lBQ3pCLE1BQU0sRUFBRSxLQUFLLENBQUMsT0FBTztTQUNyQixDQUFDO1FBQ0YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELEtBQUs7UUFDSixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDO0lBQ2pCLENBQUM7OEdBeFBXLGNBQWM7a0dBQWQsY0FBYyxzcUlBSVQsb0JBQW9CLGlFQUMxQixZQUFZLDJFQUNaLEtBQUsscUVDckVqQixrMFRBd1BBOzsyRkR6TGEsY0FBYztrQkFMMUIsU0FBUzsrQkFDQyxZQUFZO2dQQUtaLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUNnQyxPQUFPO3NCQUE3QyxlQUFlO3VCQUFDLG9CQUFvQjtnQkFDWixFQUFFO3NCQUExQixTQUFTO3VCQUFDLFlBQVk7Z0JBQ0wsUUFBUTtzQkFBekIsU0FBUzt1QkFBQyxLQUFLO2dCQUNQLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHtcclxuXHRDb21wb25lbnQsXHJcblx0Q29udGVudENoaWxkcmVuLFxyXG5cdEV2ZW50RW1pdHRlcixcclxuXHRJbnB1dCxcclxuXHRPdXRwdXQsXHJcblx0U2ltcGxlQ2hhbmdlcyxcclxuXHRWaWV3Q2hpbGQsXHJcblx0ZWZmZWN0LFxyXG5cdGlucHV0XHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCwgTm9uTnVsbGFibGVGb3JtQnVpbGRlciwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmltcG9ydCB7IE1lbnVJdGVtLCBNZXNzYWdlU2VydmljZSwgUHJpbWVOR0NvbmZpZyB9IGZyb20gJ3ByaW1lbmcvYXBpJztcclxuaW1wb3J0IHsgT3ZlcmxheVBhbmVsIH0gZnJvbSAncHJpbWVuZy9vdmVybGF5cGFuZWwnO1xyXG5pbXBvcnQgeyBUYWJsZSB9IGZyb20gJ3ByaW1lbmcvdGFibGUnO1xyXG5cclxuaW1wb3J0IHsgVHJhbnNsb2NvU2VydmljZSB9IGZyb20gJ0BuZ25lYXQvdHJhbnNsb2NvJztcclxuaW1wb3J0IHsgc2F2ZUFzIH0gZnJvbSAnZmlsZS1zYXZlcic7XHJcbmltcG9ydCB7XHJcblx0Y2F0Y2hFcnJvcixcclxuXHRjb25jYXRNYXAsXHJcblx0ZmlsdGVyLFxyXG5cdGZpbmFsaXplLFxyXG5cdGZpcnN0VmFsdWVGcm9tLFxyXG5cdGZyb20sXHJcblx0aW50ZXJ2YWwsXHJcblx0bWFwLFxyXG5cdHN3aXRjaE1hcCxcclxuXHR0YWtlLFxyXG5cdHRocm93RXJyb3IsXHJcblx0dG9BcnJheVxyXG59IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgQVBJX0NPTkZJR1MgfSBmcm9tICdhcmlsL2Jvb3QvY29uZmlnL2FwaSc7XHJcbmltcG9ydCB7IFByb3h5VHlwZXMgfSBmcm9tICdhcmlsL2h0dHAnO1xyXG5pbXBvcnQgeyBTZWxlY3Rpb25Hcm91cFNlcnZpY2UgfSBmcm9tICdhcmlsL3RoZW1lL2xheW91dCc7XHJcblxyXG5pbXBvcnQgeyB0cmFubGF0aW9ucyB9IGZyb20gJy4vaTE4bic7XHJcbmltcG9ydCB7IENvbEZvcm0sIENvbHVtbkZpZWxkVmFsdWVNYXAsIEV4cG9ydEZvcm0sIEV4cG9ydE9wdGlvbnMsIEV4cG9ydFJlcXVlc3QsIEV4cG9ydFR5cGUgfSBmcm9tICcuL2ludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBBbGlnblR5cGVzLCBUYWJsZUNvbHVtbkNvbXBvbmVudCwgVGFibGVDb2x1bW5zIH0gZnJvbSAnLi90YWJsZS1jb2x1bW4uY29tcG9uZW50JztcclxuXHJcbi8qIFRPRE8gOlxyXG4gKiBzZXJ2ZXItc2lkZS1wcm94eSAoUHJveHlUeXBlcy5TZXJ2ZXJTaWRlKVxyXG4gKiBzZWFyY2ggJiBjb2x1bSBmaWx0ZXIgJiBzb3J0XHJcbiAqIHBhZ2luYXRpb24gb3BlcmF0aW9uXHJcbiAqIFF1ZXJ5IFNpZ25hbHNcclxuICovXHJcbmNvbnN0IHBhZ2VPcHRpb25zID0gWzEwLCAyMCwgNTAsIDEwMF0gYXMgY29uc3Q7XHJcblxyXG50eXBlIFNlbGVjdGlvblR5cGVzID0gJ3NpbmdsZScgfCAnbXVsdGlwbGUnIHwgbnVsbDtcclxuaW50ZXJmYWNlIElLZWJhYk1lbnVJdGVtIHtcclxuXHRpY29uOiBzdHJpbmc7XHJcblx0bGFiZWw6IHN0cmluZztcclxuXHRvbkNsaWNrOiAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHZvaWQ7XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAnYXJpbC10YWJsZScsXHJcblx0dGVtcGxhdGVVcmw6ICcuL3RhYmxlLmNvbXBvbmVudC5odG1sJyxcclxuXHRzdHlsZVVybDogJy4vdGFibGUuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUYWJsZUNvbXBvbmVudCB7XHJcblx0QE91dHB1dCgpIG9uUGFnZUV2ZW50OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cdEBPdXRwdXQoKSBzZWxlY3Rpb25FdmVudDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHRAT3V0cHV0KCkgbGF6eUxvYWRFdmVudDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHRAQ29udGVudENoaWxkcmVuKFRhYmxlQ29sdW1uQ29tcG9uZW50KSBjb2x1bW5zITogVGFibGVDb2x1bW5zO1xyXG5cdEBWaWV3Q2hpbGQoT3ZlcmxheVBhbmVsKSBvcCE6IE92ZXJsYXlQYW5lbDtcclxuXHRAVmlld0NoaWxkKFRhYmxlKSB0YWJsZVJlZiE6IFRhYmxlO1xyXG5cdEBJbnB1dCgpIGtlYmFiTWVudUl0ZW1zOiBNZW51SXRlbVtdID0gW107XHJcblx0QElucHV0KCkgZXhwYW5kYWJsZUZpZWxkcyE6IHN0cmluZztcclxuXHJcblx0ZGF0YSA9IGlucHV0LnJlcXVpcmVkPGFueVtdPigpO1xyXG5cdGNoZWNrYm94U2VsZWN0aW9uID0gaW5wdXQ8Ym9vbGVhbj4oKTtcclxuXHRoZWFkZXJDaGVja2JveFNlbGVjdGlvbiA9IGlucHV0PGJvb2xlYW4+KCk7XHJcblx0cGFnZVNpemUgPSBpbnB1dDwodHlwZW9mIHBhZ2VPcHRpb25zKVtudW1iZXJdPigxMCk7XHJcblx0cHJveHkgPSBpbnB1dDxQcm94eVR5cGVzPihQcm94eVR5cGVzLk5hdGl2ZSk7XHJcblx0c2hvd0Zvb3RlciA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHR0QWxpZ24gPSBpbnB1dDxBbGlnblR5cGVzPignbGVmdCcpO1xyXG5cdHNlbGVjdGlvbk1vZGUgPSBpbnB1dDxTZWxlY3Rpb25UeXBlcz4oJ3NpbmdsZScpO1xyXG5cdHNob3dTZWFyY2hUb29sID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XHJcblx0c2hvd0V4cG9ydFRvb2wgPSBpbnB1dDxib29sZWFuPih0cnVlKTtcclxuXHRleHBvcnRGaWxlTmFtZSA9IGlucHV0PHN0cmluZz4oJycpO1xyXG5cdG5vRGF0YUZvdW5kTGFiZWwgPSBpbnB1dDxzdHJpbmc+KCdObyBEYXRhIEZvdW5kJyk7XHJcblx0dGFibGVIZWFkZXIgPSBpbnB1dDxzdHJpbmc+KCcnKTtcclxuXHRzaG93VGFibGVIZWFkZXIgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcblx0aXNGaXJzdFJvd1NlbGVjdGVkID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cdGRhdGFLZXkgPSBpbnB1dDxzdHJpbmc+KCcnKTtcclxuXHRzZWxlY3RlZFJvd3NJbnB1dCA9IGlucHV0PGFueT4oW10pO1xyXG5cdGlzTGF6eSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHR0b3RhbFJlY29yZHMgPSBpbnB1dDxudW1iZXI+KDApO1xyXG5cdHBhZ2luYXRvciA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xyXG5cdHBhZ2luYXRvckRyb3Bkb3duQXBwZW5kVG8gPSBpbnB1dDxzdHJpbmc+KCdib2R5Jyk7IC8vICdib2R5J3wgJ215RGl2J1xyXG5cclxuXHRpc1Nob3dOb0RhdGFGb3VuZE1lc3NhZ2UgPSBpbnB1dDxib29sZWFuPih0cnVlKTtcclxuXHQvKipcclxuXHQgKiBAc2VlIHtAbGluayBFeHBvcnRPcHRpb25zfVxyXG5cdCAqL1xyXG5cdGV4cG9ydENvbmZpZyA9IGlucHV0PEV4cG9ydE9wdGlvbnM+KCk7XHJcblxyXG5cdGV4cG9ydEZvcm0hOiBGb3JtR3JvdXA8RXhwb3J0Rm9ybT47XHJcblx0ZXhwb3J0VHlwZU9wdGlvbnMgPSBbXHJcblx0XHR7IGtleTogRXhwb3J0VHlwZS5FeGNlbCwgbGFiZWw6ICdFeGNlbCcsIGZpbGVFeHRlbnNpb246ICcueGxzeCcgfSxcclxuXHRcdHsga2V5OiBFeHBvcnRUeXBlLkNzdiwgbGFiZWw6ICdDc3YnLCBmaWxlRXh0ZW5zaW9uOiAnLmNzdicgfVxyXG5cdF07XHJcblxyXG5cdGZpbHRlclRleHQhOiBzdHJpbmc7XHJcblx0aXNBbGxTZWxlY3RlZCA9IHRydWU7XHJcblx0c2VsZWN0ZWRSb3dzOiBhbnk7XHJcblx0cGFnZU9wdGlvbnMgPSBwYWdlT3B0aW9ucztcclxuXHRleHBvcnRDb2x1bW5zOiBBcnJheTx7IHRpdGxlOiBzdHJpbmc7IGRhdGFLZXk6IHN0cmluZyB9PiA9IFtdO1xyXG5cdGlzQ29sdW1uRXhwYW5kTW9kZSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHRpc1Jlc2l6YWJsZUNvbHVtbnMgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcblx0aXNTb3J0YWJsZSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHRoYW5kbGVkU2VsZWN0aW9uTW9kZTogU2VsZWN0aW9uVHlwZXMgPSAnc2luZ2xlJztcclxuXHJcblx0Y29uc3RydWN0b3IoXHJcblx0XHRwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXHJcblx0XHRwcml2YXRlIGZiOiBOb25OdWxsYWJsZUZvcm1CdWlsZGVyLFxyXG5cdFx0cHJpdmF0ZSBwcmltZW5nQ29uZmlnOiBQcmltZU5HQ29uZmlnLFxyXG5cdFx0cHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXHJcblx0XHRwcml2YXRlIHRyYW5zbG9jb1NlcnZpY2U6IFRyYW5zbG9jb1NlcnZpY2UsXHJcblx0XHRwcml2YXRlIHNlbGVjdGlvbkdyb3VwU2VydmljZTogU2VsZWN0aW9uR3JvdXBTZXJ2aWNlXHJcblx0KSB7XHJcblx0XHR0aGlzLnByaW1lbmdDb25maWcuc2V0VHJhbnNsYXRpb24odHJhbmxhdGlvbnMpO1xyXG5cclxuXHRcdGVmZmVjdCgoKSA9PiB7XHJcblx0XHRcdGlmICh0aGlzLmlzRmlyc3RSb3dTZWxlY3RlZCgpICYmIHRoaXMuZGF0YSgpKSB7XHJcblx0XHRcdFx0dGhpcy5zZWxlY3RlZFJvd3MgPSB0aGlzLmRhdGEoKVswXTtcclxuXHRcdFx0XHR0aGlzLnNlbGVjdGlvbkV2ZW50LmVtaXQodGhpcy5zZWxlY3RlZFJvd3MpO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHJcblx0XHRlZmZlY3QoKCkgPT4ge1xyXG5cdFx0XHRpZiAodGhpcy5zZWxlY3RlZFJvd3NJbnB1dCgpKSB7XHJcblx0XHRcdFx0dGhpcy5zZWxlY3RlZFJvd3MgPSB0aGlzLnNlbGVjdGVkUm93c0lucHV0KCk7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cclxuXHRcdGVmZmVjdCgoKSA9PiB7XHJcblx0XHRcdGlmICh0aGlzLmV4cG9ydENvbmZpZygpKSB7XHJcblx0XHRcdFx0dGhpcy5jcmVhdGVFeHBvcnRGb3JtKCk7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cclxuXHRcdGVmZmVjdCgoKSA9PiB7XHJcblx0XHRcdGlmICh0aGlzLmNoZWNrYm94U2VsZWN0aW9uKCkpIHRoaXMuaGFuZGxlZFNlbGVjdGlvbk1vZGUgPSBudWxsO1xyXG5cdFx0XHRlbHNlIHRoaXMuaGFuZGxlZFNlbGVjdGlvbk1vZGUgPSB0aGlzLnNlbGVjdGlvbk1vZGUoKTtcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBpc0luaXRpYWxMb2FkID0gdHJ1ZTtcclxuXHJcblx0bmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG5cdFx0aWYgKGNoYW5nZXNbJ2RhdGEnXSAmJiBjaGFuZ2VzWydkYXRhJ10uY3VycmVudFZhbHVlICE9PSBjaGFuZ2VzWydkYXRhJ10ucHJldmlvdXNWYWx1ZSkge1xyXG5cdFx0XHRpZiAodGhpcy5pc0luaXRpYWxMb2FkKSB7XHJcblx0XHRcdFx0dGhpcy5pc0luaXRpYWxMb2FkID0gZmFsc2U7XHJcblx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRjb25zdCBjdXJyZW50RGF0YSA9IGNoYW5nZXNbJ2RhdGEnXS5jdXJyZW50VmFsdWU7XHJcblx0XHRcdGlmICh0aGlzLmlzU2hvd05vRGF0YUZvdW5kTWVzc2FnZSgpICYmICFjdXJyZW50RGF0YT8ubGVuZ3RoKSB7XHJcblx0XHRcdFx0dGhpcy5tZXNzYWdlU2VydmljZS5hZGQoe1xyXG5cdFx0XHRcdFx0c2V2ZXJpdHk6ICdpbmZvJyxcclxuXHRcdFx0XHRcdHN1bW1hcnk6IHRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ21lc3NhZ2VzLm5vRGF0YVRvRGlzcGxheScpLFxyXG5cdFx0XHRcdFx0a2V5OiAndG9hc3Qtcm9vdCdcclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBjcmVhdGVFeHBvcnRGb3JtKCk6IHZvaWQge1xyXG5cdFx0Y29uc3QgeyBleHBvcnRMYWJlbCB9ID0gdGhpcy5leHBvcnRDb25maWcoKSE7XHJcblxyXG5cdFx0dGhpcy5leHBvcnRGb3JtID0gdGhpcy5mYi5ncm91cDxFeHBvcnRGb3JtPih7XHJcblx0XHRcdGV4cG9ydFR5cGU6IHRoaXMuZmIuY29udHJvbChFeHBvcnRUeXBlLkV4Y2VsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcclxuXHRcdFx0ZXhwb3J0TGFiZWw6IHRoaXMuZmIuY29udHJvbChleHBvcnRMYWJlbCwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXHJcblx0XHRcdGNvbHVtbnM6IHRoaXMuZmIuYXJyYXk8Rm9ybUdyb3VwPENvbEZvcm0+PihbXSlcclxuXHRcdH0pO1xyXG5cclxuXHRcdHRoaXMuY29sdW1ucy5fcmVzdWx0c1xyXG5cdFx0XHQuZmlsdGVyKChjb2wpID0+IGNvbC50eXBlKCkgIT09ICdvcGVyYXRpb25zJylcclxuXHRcdFx0LmZpbHRlcigoY29sKSA9PiB7XHJcblx0XHRcdFx0Y29uc3QgZXhwb3J0Q29uZmlnID0gdGhpcy5leHBvcnRDb25maWcoKTtcclxuXHRcdFx0XHRjb25zdCBleGNsdWRlZEZpZWxkcyA9IGV4cG9ydENvbmZpZz8uZXhjbHVkZWRGaWVsZHMgPz8gW107XHJcblxyXG5cdFx0XHRcdHJldHVybiAhZXhjbHVkZWRGaWVsZHMuaW5jbHVkZXMoY29sLmZpZWxkKCkpO1xyXG5cdFx0XHR9KVxyXG5cdFx0XHQuZm9yRWFjaCgoY29sKSA9PiB7XHJcblx0XHRcdFx0Y29uc3QgY29sR3JvdXAgPSB0aGlzLmZiLmdyb3VwPENvbEZvcm0+KHtcclxuXHRcdFx0XHRcdGNoZWNrZWQ6IHRoaXMuZmIuY29udHJvbCh0cnVlKSxcclxuXHRcdFx0XHRcdHRpdGxlOiB0aGlzLmZiLmNvbnRyb2woY29sLmhlYWRlcigpKSxcclxuXHRcdFx0XHRcdGRhdGFLZXk6IHRoaXMuZmIuY29udHJvbChjb2wuZmllbGQoKSlcclxuXHRcdFx0XHR9KTtcclxuXHJcblx0XHRcdFx0dGhpcy5leHBvcnRGb3JtLmNvbnRyb2xzLmNvbHVtbnMucHVzaChjb2xHcm91cCk7XHJcblx0XHRcdH0pO1xyXG5cclxuXHRcdHRoaXMuZXhwb3J0Rm9ybS5jb250cm9scy5jb2x1bW5zLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKHQpID0+ICh0aGlzLmlzQWxsU2VsZWN0ZWQgPSB0LmV2ZXJ5KChhKSA9PiBhLmNoZWNrZWQpKSk7XHJcblx0fVxyXG5cclxuXHRnZXQgaG9zdFVybCgpOiBzdHJpbmcge1xyXG5cdFx0cmV0dXJuIGAke2dsb2JhbFRoaXMubG9jYXRpb24ucHJvdG9jb2x9Ly8ke2dsb2JhbFRoaXMubG9jYXRpb24uaG9zdH0vaHRtbC9gO1xyXG5cdH1cclxuXHJcblx0YXN5bmMgZXhwb3J0KCkge1xyXG5cdFx0Y29uc3QgeyBleHBvcnRUeXBlLCBleHBvcnRMYWJlbCwgY29sdW1ucyB9ID0gdGhpcy5leHBvcnRGb3JtLnZhbHVlO1xyXG5cdFx0Y29uc3QgeyByb3V0ZSwgcGFyYW1zLCBjb2x1bW5GaWVsZFZhbHVlTWFwLCBkYXRlQ29sdW1uRm9ybWF0TWFwLCBjb21wdXRlZENvbHVtbk1hcCB9ID0gdGhpcy5leHBvcnRDb25maWcoKSE7XHJcblxyXG5cdFx0Y29uc3QgY2hlY2tlZENvbHVtbnMgPSBjb2x1bW5zIS5maWx0ZXIoKHQpID0+IHQuY2hlY2tlZCk7XHJcblx0XHRjb25zdCBmaWxlRXh0ZW5zaW9uID0gdGhpcy5leHBvcnRUeXBlT3B0aW9ucy5maW5kKCh0KSA9PiB0LmtleSA9PT0gZXhwb3J0VHlwZSk/LmZpbGVFeHRlbnNpb247XHJcblxyXG5cdFx0bGV0IGNvbHVtbkZpZWxkVmFsdWVNYXBPYmo6IENvbHVtbkZpZWxkVmFsdWVNYXAgfCB1bmRlZmluZWQ7XHJcblxyXG5cdFx0aWYgKGNvbHVtbkZpZWxkVmFsdWVNYXApIHtcclxuXHRcdFx0Y29uc3QgdGVtcE9iaiA9IHt9IGFzIENvbHVtbkZpZWxkVmFsdWVNYXA7XHJcblxyXG5cdFx0XHRhd2FpdCBmaXJzdFZhbHVlRnJvbShcclxuXHRcdFx0XHRmcm9tKE9iamVjdC5lbnRyaWVzKGNvbHVtbkZpZWxkVmFsdWVNYXApKS5waXBlKFxyXG5cdFx0XHRcdFx0Y29uY2F0TWFwKChbZmllbGROYW1lLCB2YWx1ZV0pID0+IHtcclxuXHRcdFx0XHRcdFx0aWYgKFxyXG5cdFx0XHRcdFx0XHRcdCF0aGlzLnNlbGVjdGlvbkdyb3VwU2VydmljZS5zZWxlY3Rpb25Hcm91cHMoKVtgJHt2YWx1ZS5ncm91cE5hbWV9fiR7dmFsdWUucGFyZW50U2VsZWN0aW9uS2V5ID8/ICdBTEwnfWBdXHJcblx0XHRcdFx0XHRcdCkge1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMuc2VsZWN0aW9uR3JvdXBTZXJ2aWNlLmZldGNoRW51bSh2YWx1ZS5ncm91cE5hbWUsIHZhbHVlLnBhcmVudFNlbGVjdGlvbktleSk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHRcdGNvbnN0IGtleSA9IHZhbHVlLmdyb3VwTmFtZSArICd+JyArICh2YWx1ZS5wYXJlbnRTZWxlY3Rpb25LZXkgPz8gJ0FMTCcpO1xyXG5cclxuXHRcdFx0XHRcdFx0cmV0dXJuIGludGVydmFsKDEwKS5waXBlKFxyXG5cdFx0XHRcdFx0XHRcdGZpbHRlcigoKSA9PiAhdGhpcy5zZWxlY3Rpb25Hcm91cFNlcnZpY2UuaXNMb2FkaW5nKGtleSkpLFxyXG5cdFx0XHRcdFx0XHRcdHRha2UoMSksXHJcblx0XHRcdFx0XHRcdFx0bWFwKCgpID0+IHtcclxuXHRcdFx0XHRcdFx0XHRcdGNvbnN0IHNlbGVjdGlvbkdyb3VwID0gdGhpcy5zZWxlY3Rpb25Hcm91cFNlcnZpY2Uuc2VsZWN0aW9uR3JvdXBzKClba2V5XTtcclxuXHRcdFx0XHRcdFx0XHRcdGlmIChzZWxlY3Rpb25Hcm91cCkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHR0ZW1wT2JqW2ZpZWxkTmFtZV0gPSBzZWxlY3Rpb25Hcm91cC5zZWxlY3Rpb25JdGVtcy5yZWR1Y2UoKGFjYzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiwgaXRlbSkgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGFjY1tpdGVtLnNlbGVjdGlvbktleV0gPSBpdGVtLnNlbGVjdGlvbkRpc3BsYXk7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0cmV0dXJuIGFjYztcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG5cdFx0XHRcdFx0XHRcdFx0XHR9LCB7fSkgYXMgYW55O1xyXG5cdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHRcdCk7XHJcblx0XHRcdFx0XHR9KSxcclxuXHRcdFx0XHRcdHRvQXJyYXkoKSxcclxuXHRcdFx0XHRcdGZpbmFsaXplKCgpID0+IHtcclxuXHRcdFx0XHRcdFx0Y29sdW1uRmllbGRWYWx1ZU1hcE9iaiA9IHRlbXBPYmo7XHJcblx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdClcclxuXHRcdFx0KTtcclxuXHRcdH1cclxuXHJcblx0XHRjb25zdCByZXF1ZXN0OiBFeHBvcnRSZXF1ZXN0ID0ge1xyXG5cdFx0XHRyb3V0ZTogcm91dGUhLFxyXG5cdFx0XHRwYXJhbXM6IHBhcmFtcyEsXHJcblx0XHRcdGV4cG9ydFR5cGU6IGV4cG9ydFR5cGUhLFxyXG5cdFx0XHRleHBvcnRMYWJlbDogZXhwb3J0TGFiZWwhLFxyXG5cdFx0XHRjb21wdXRlZENvbHVtbk1hcDogY29tcHV0ZWRDb2x1bW5NYXAhLFxyXG5cdFx0XHRkYXRlQ29sdW1uRm9ybWF0TWFwOiBkYXRlQ29sdW1uRm9ybWF0TWFwISxcclxuXHRcdFx0Y29sdW1uRmllbGRWYWx1ZU1hcDogY29sdW1uRmllbGRWYWx1ZU1hcE9iaiEsXHJcblx0XHRcdGhlYWRlck5hbWVzOiBjaGVja2VkQ29sdW1ucy5tYXAoKGNvbCkgPT4gY29sLnRpdGxlISksXHJcblx0XHRcdG91dHB1dEZpZWxkczogY2hlY2tlZENvbHVtbnMubWFwKChjb2wpID0+IGNvbC5kYXRhS2V5ISlcclxuXHRcdH07XHJcblxyXG5cdFx0Y29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbShcclxuXHRcdFx0dGhpcy5odHRwLnBvc3Q8eyBzdWNjZXNzOiBib29sZWFuOyB1cmw6IHN0cmluZyB9PihBUElfQ09ORklHUy5hcGkgKyAnL2JhdGNoLWV4cG9ydGVycy9leHBvcnQnLCByZXF1ZXN0KS5waXBlKFxyXG5cdFx0XHRcdHN3aXRjaE1hcCgocmVzKSA9PlxyXG5cdFx0XHRcdFx0dGhpcy5odHRwLmdldChBUElfQ09ORklHUy5hcGkgKyAnL2J1Y2tldC1vYmplY3RzL2Rvd25sb2FkJywge1xyXG5cdFx0XHRcdFx0XHRwYXJhbXM6IHsgdXJsOiByZXMudXJsIH0sXHJcblx0XHRcdFx0XHRcdHJlc3BvbnNlVHlwZTogJ2Jsb2InXHJcblx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdCksXHJcblx0XHRcdFx0Y2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcclxuXHRcdFx0XHRcdGlmIChlcnJvci5zdGF0dXMgPT09IDUwNCkge1xyXG5cdFx0XHRcdFx0XHR3aW5kb3cubG9jYXRpb24uaHJlZiA9IGAke3RoaXMuaG9zdFVybH1tbmcvIy9tbmcvY29udHJvbC1tYW5hZ2VtZW50L2V4cG9ydC1yZXF1ZXN0c2A7XHJcblx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRjb25zb2xlLmVycm9yKCdIYXRhIG9sdcWfdHU6JywgZXJyb3IpO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0cmV0dXJuIHRocm93RXJyb3IoKCkgPT4gZXJyb3IpO1xyXG5cdFx0XHRcdH0pXHJcblx0XHRcdClcclxuXHRcdCk7XHJcblxyXG5cdFx0c2F2ZUFzKHJlc3BvbnNlLCBgJHtleHBvcnRMYWJlbH0tJHtuZXcgRGF0ZSgpLmdldFRpbWUoKX0ke2ZpbGVFeHRlbnNpb259YCk7XHJcblx0fVxyXG5cclxuXHRvblNlbGVjdEFsbCh2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xyXG5cdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmV4cG9ydEZvcm0uY29udHJvbHMuY29sdW1ucy5sZW5ndGg7IGkrKykge1xyXG5cdFx0XHRjb25zdCBmb3JtR3JvdXAgPSB0aGlzLmV4cG9ydEZvcm0uY29udHJvbHMuY29sdW1ucy5hdChpKTtcclxuXHRcdFx0Zm9ybUdyb3VwLmNvbnRyb2xzLmNoZWNrZWQuc2V0VmFsdWUodmFsdWUpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0dG9nZ2xlRXhwb3J0ID0gKGV2ZW50OiBFdmVudCk6IHZvaWQgPT4gdGhpcy5vcC50b2dnbGUoZXZlbnQpO1xyXG5cclxuXHRoYW5kbGVMYXp5TG9hZEV2ZW50KGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuXHRcdGNvbnN0IG5ld0V2ZW50RGF0YSA9IHtcclxuXHRcdFx0cGFnZXI6IHtcclxuXHRcdFx0XHRwYWdlU2l6ZTogZXZlbnQucm93cyxcclxuXHRcdFx0XHRwYWdlTnVtYmVyOiBldmVudC5maXJzdCAvIGV2ZW50LnJvd3MgKyAxXHJcblx0XHRcdH0sXHJcblx0XHRcdHNvcnQ6IGV2ZW50Lm11bHRpU29ydE1ldGEsXHJcblx0XHRcdGZpbHRlcjogZXZlbnQuZmlsdGVyc1xyXG5cdFx0fTtcclxuXHRcdHRoaXMubGF6eUxvYWRFdmVudC5lbWl0KG5ld0V2ZW50RGF0YSk7XHJcblx0fVxyXG5cclxuXHRjbGVhcigpOiB2b2lkIHtcclxuXHRcdHRoaXMudGFibGVSZWYudmFsdWUgPSBbXTtcclxuXHRcdHRoaXMudGFibGVSZWYuY2xlYXIoKTtcclxuXHRcdHRoaXMub3A/LmhpZGUoKTtcclxuXHR9XHJcbn1cclxuIiwiPHAtdGFibGVcclxuXHQjcmVmXHJcblx0W3ZhbHVlXT1cImRhdGEoKVwiXHJcblx0W2RhdGFLZXldPVwiZGF0YUtleSgpXCJcclxuXHRbY29sdW1uc109XCJjb2x1bW5zLl9yZXN1bHRzXCJcclxuXHRbcm93c109XCJwYWdlU2l6ZSgpXCJcclxuXHRbcm93SG92ZXJdPVwidHJ1ZVwiXHJcblx0W3BhZ2luYXRvcl09XCJwYWdpbmF0b3IoKVwiXHJcblx0W2xhenldPVwiaXNMYXp5KClcIlxyXG5cdFtsYXp5TG9hZE9uSW5pdF09XCJmYWxzZVwiXHJcblx0W3RvdGFsUmVjb3Jkc109XCJ0b3RhbFJlY29yZHMoKVwiXHJcblx0W3Jvd3NQZXJQYWdlT3B0aW9uc109XCJbMTAsIDIwLCA1MCwgMTAwXVwiXHJcblx0W2ZpbHRlckRlbGF5XT1cIjBcIlxyXG5cdHNvcnRNb2RlPVwibXVsdGlwbGVcIlxyXG5cdFsoc2VsZWN0aW9uKV09XCJzZWxlY3RlZFJvd3NcIlxyXG5cdChvblBhZ2UpPVwib25QYWdlRXZlbnQuZW1pdCgkZXZlbnQpXCJcclxuXHQob25MYXp5TG9hZCk9XCJoYW5kbGVMYXp5TG9hZEV2ZW50KCRldmVudClcIlxyXG5cdChzZWxlY3Rpb25DaGFuZ2UpPVwic2VsZWN0aW9uRXZlbnQuZW1pdChzZWxlY3RlZFJvd3MpXCJcclxuXHRbc2hvd0N1cnJlbnRQYWdlUmVwb3J0XT1cInRydWVcIlxyXG5cdFtzZWxlY3Rpb25Nb2RlXT1cInNlbGVjdGlvbk1vZGUoKVwiXHJcblx0W2NvbHVtblJlc2l6ZU1vZGVdPVwiaXNDb2x1bW5FeHBhbmRNb2RlKCkgPyAnZXhwYW5kJyA6ICcnXCJcclxuXHRbcmVzaXphYmxlQ29sdW1uc109XCJpc1Jlc2l6YWJsZUNvbHVtbnMoKVwiXHJcblx0Y3VycmVudFBhZ2VSZXBvcnRUZW1wbGF0ZT1cIlRvcGxhbSA6IHt0b3RhbFJlY29yZHN9IGthecSxdCB8IFNheWZhIDoge2N1cnJlbnRQYWdlfSAvIHt0b3RhbFBhZ2VzfVwiXHJcblx0c3R5bGVDbGFzcz1cInAtZGF0YXRhYmxlLXNtXCJcclxuXHRbcGFnaW5hdG9yRHJvcGRvd25BcHBlbmRUb109XCJwYWdpbmF0b3JEcm9wZG93bkFwcGVuZFRvKClcIj5cclxuXHQ8IS0tQGlmICh0YWJsZUhlYWRlcigpIHx8IHNob3dTZWFyY2hUb29sKCkgfHwgc2hvd0V4cG9ydFRvb2woKSkge1xyXG5cdFx0PG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImNhcHRpb25cIj5cclxuXHRcdFx0PGRpdiBjbGFzcz1cImZsZXggc3BhY2UtYmV0d2VlblwiPlxyXG5cdFx0XHRcdDxkaXYgc3R5bGU9XCJmbGV4OiBhdXRvXCI+XHJcblx0XHRcdFx0XHRAaWYgKHRhYmxlSGVhZGVyKCkubGVuZ3RoKSB7XHJcblx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJ0YWJsZS1oZWFkZXJcIj5cclxuXHRcdFx0XHRcdFx0XHR7eyB0YWJsZUhlYWRlcigpIH19XHJcblx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdDxkaXYgc3R5bGU9XCJmbGV4OiBhdXRvXCI+XHJcblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG5cdFx0XHRcdFx0XHRAaWYgKGZhbHNlKSB7XHJcblx0XHRcdFx0XHRcdFx0PGFyaWwtdGV4dFxyXG5cdFx0XHRcdFx0XHRcdFx0aWNvbj1cIlNFQVJDSFwiXHJcblx0XHRcdFx0XHRcdFx0XHRpY29uUG9zPVwibGVmdFwiXHJcblx0XHRcdFx0XHRcdFx0XHRwbGFjZWhvbGRlcj1cIkFyYW1hXCJcclxuXHRcdFx0XHRcdFx0XHRcdFtuZ01vZGVsXT1cImZpbHRlclRleHRcIlxyXG5cdFx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJtci0xXCJcclxuXHRcdFx0XHRcdFx0XHRcdChuZ01vZGVsQ2hhbmdlKT1cInJlZi5maWx0ZXJHbG9iYWwoJGV2ZW50LnRhcmdldC52YWx1ZSwgJ2NvbnRhaW5zJylcIj5cclxuXHRcdFx0XHRcdFx0XHQ8L2FyaWwtdGV4dD5cclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRAaWYgKGZhbHNlKSB7XHJcblx0XHRcdFx0XHRcdFx0PGFyaWwtYnV0dG9uXHJcblx0XHRcdFx0XHRcdFx0XHRzaXplPVwic21cIlxyXG5cdFx0XHRcdFx0XHRcdFx0aWNvbj1cIkZJTEVfRVhDRUxcIlxyXG5cdFx0XHRcdFx0XHRcdFx0Y29sb3I9XCJwcmltYXJ5XCJcclxuXHRcdFx0XHRcdFx0XHRcdHBUb29sdGlwPVwiWExTXCJcclxuXHRcdFx0XHRcdFx0XHRcdHRvb2x0aXBQb3NpdGlvbj1cInRvcFwiXHJcblx0XHRcdFx0XHRcdFx0XHQoY2xpY2tFdmVudCk9XCJleGNlbEV4cG9ydCgpXCJcclxuXHRcdFx0XHRcdFx0XHRcdGNsYXNzPVwibXItMVwiPlxyXG5cdFx0XHRcdFx0XHRcdDwvYXJpbC1idXR0b24+XHJcblx0XHRcdFx0XHRcdFx0PGFyaWwtYnV0dG9uXHJcblx0XHRcdFx0XHRcdFx0XHRzaXplPVwic21cIlxyXG5cdFx0XHRcdFx0XHRcdFx0aWNvbj1cIkZJTEVfUERGXCJcclxuXHRcdFx0XHRcdFx0XHRcdGNvbG9yPVwicHJpbWFyeVwiXHJcblx0XHRcdFx0XHRcdFx0XHRwVG9vbHRpcD1cIlBERlwiXHJcblx0XHRcdFx0XHRcdFx0XHR0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxyXG5cdFx0XHRcdFx0XHRcdFx0KGNsaWNrRXZlbnQpPVwiZXhwb3J0UGRmKClcIj5cclxuXHRcdFx0XHRcdFx0XHQ8L2FyaWwtYnV0dG9uPlxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdEBpZiAoZGF0YSgpICYmIGtlYmFiTWVudUl0ZW1zLmxlbmd0aCA+IDAgKSB7XHJcblx0XHRcdFx0XHRcdFx0PGRpdiB0b29scyBzdHlsZT1cInBhZGRpbmc6IDRweDttYXJnaW4tbGVmdDogNHB4O2JvcmRlcjoxcHggc29saWQgIzYzNjZmMTtib3JkZXItcmFkaXVzOiA2cHg7YmFja2dyb3VuZC1jb2xvcjogIzYzNjZmMTsgY29sb3I6IHdoaXRlO1wiID5cclxuXHRcdFx0XHRcdFx0XHRcdDxpXHJcblx0XHRcdFx0XHRcdFx0XHRcdFthdHRyLnJvbGVdPVwiJ25vbmUnXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJwaSBtci0xIGhlYWRlci1pY29uIHBpLWVsbGlwc2lzLXZcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQoY2xpY2spPVwiYnVsa09wZXJhdGlvbnMudG9nZ2xlKCRldmVudCk7XCI+PC9pPlxyXG5cdFx0XHRcdFx0XHRcdFx0PHAtbWVudVxyXG5cdFx0XHRcdFx0XHRcdFx0XHQjYnVsa09wZXJhdGlvbnNcclxuXHRcdFx0XHRcdFx0XHRcdFx0W3BvcHVwXT1cInRydWVcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRbbW9kZWxdPVwia2ViYWJNZW51SXRlbXNcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRzdHlsZUNsYXNzPVwiei1pbmRleDogOTk5ODg5OTtcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRhcHBlbmRUbz1cImJvZHlcIj48L3AtbWVudT5cclxuXHRcdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdDwvZGl2PlxyXG5cdFx0PC9uZy10ZW1wbGF0ZT5cclxuXHR9LS0+XHJcblxyXG5cdDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJoZWFkZXJcIiBsZXQtY29sdW1ucz5cclxuXHRcdDx0cj5cclxuXHRcdFx0QGlmIChjaGVja2JveFNlbGVjdGlvbigpKSB7XHJcblx0XHRcdFx0PHRoPlxyXG5cdFx0XHRcdFx0QGlmIChoZWFkZXJDaGVja2JveFNlbGVjdGlvbigpKSB7XHJcblx0XHRcdFx0XHRcdDxwLXRhYmxlSGVhZGVyQ2hlY2tib3g+PC9wLXRhYmxlSGVhZGVyQ2hlY2tib3g+XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0PC90aD5cclxuXHRcdFx0fVxyXG5cdFx0XHRAZm9yIChjb2x1bW4gb2YgY29sdW1uczsgdHJhY2sgJGluZGV4KSB7XHJcblx0XHRcdFx0QGlmIChjb2x1bW4udHlwZSgpID09PSAnb3BlcmF0aW9ucycpIHtcclxuXHRcdFx0XHRcdDx0aD5cclxuXHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlclwiPsSwxZ9sZW1sZXI8L2Rpdj5cclxuXHRcdFx0XHRcdDwvdGg+XHJcblx0XHRcdFx0fSBAZWxzZSB7XHJcblx0XHRcdFx0XHRAaWYgKGlzUmVzaXphYmxlQ29sdW1ucygpKSB7XHJcblx0XHRcdFx0XHRcdDx0aFxyXG5cdFx0XHRcdFx0XHRcdFtwU29ydGFibGVDb2x1bW5dPVwiY29sdW1uLmZpZWxkKClcIlxyXG5cdFx0XHRcdFx0XHRcdFtuZ1N0eWxlXT1cInsgd2lkdGg6IGNvbHVtbi53aWR0aCgpID8gY29sdW1uLndpZHRoKCkgOiAnYXV0bycgfVwiXHJcblx0XHRcdFx0XHRcdFx0cFJlc2l6YWJsZUNvbHVtbj5cclxuXHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTJcIj5cclxuXHRcdFx0XHRcdFx0XHRcdHt7IGNvbHVtbi5oZWFkZXIoKSB9fVxyXG5cdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImZsZXhcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0QGlmIChjb2x1bW4uaXNTaG93SGVhZGVyVG9vbHRpcCgpKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PGlcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHN0eWxlPVwiY29sb3I6IGdyZWVuOyBwYWRkaW5nLXRvcDogNHB4OyBwYWRkaW5nLWxlZnQ6IDRweFwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRjbGFzcz1cInBpIHBpLWluZm8tY2lyY2xlXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFtwVG9vbHRpcF09XCJjb2x1bW4udG9vbHRpcFRlbXBsYXRlKClcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0dG9vbHRpcFBvc2l0aW9uPVwidG9wXCI+PC9pPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0XHRcdEBpZiAoIWlzTGF6eSgpKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PHAtc29ydEljb24gW2ZpZWxkXT1cImNvbHVtbi5maWVsZCgpXCI+PC9wLXNvcnRJY29uPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0PC90aD5cclxuXHRcdFx0XHRcdH0gQGVsc2UgaWYgKGlzU29ydGFibGUoKSkge1xyXG5cdFx0XHRcdFx0XHQ8dGhcclxuXHRcdFx0XHRcdFx0XHRbcFNvcnRhYmxlQ29sdW1uXT1cImNvbHVtbi5maWVsZCgpXCJcclxuXHRcdFx0XHRcdFx0XHRbbmdTdHlsZV09XCJ7IHdpZHRoOiBjb2x1bW4ud2lkdGgoKSA/IGNvbHVtbi53aWR0aCgpIDogJ2F1dG8nIH1cIlxyXG5cdFx0XHRcdFx0XHRcdHN0eWxlPVwibWluLXdpZHRoOiAxNzBweFwiPlxyXG5cdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMlwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0e3sgY29sdW1uLmhlYWRlcigpIH19XHJcblx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleFwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRAaWYgKGNvbHVtbi5pc1Nob3dIZWFkZXJUb29sdGlwKCkpIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8aVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0c3R5bGU9XCJjb2xvcjogZ3JlZW47IHBhZGRpbmctdG9wOiA0cHg7IHBhZGRpbmctbGVmdDogNHB4XCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNsYXNzPVwicGkgcGktaW5mby1jaXJjbGVcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0W3BUb29sdGlwXT1cImNvbHVtbi50b29sdGlwVGVtcGxhdGUoKVwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR0b29sdGlwUG9zaXRpb249XCJ0b3BcIj48L2k+XHJcblx0XHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHAtc29ydEljb24gW2ZpZWxkXT1cImNvbHVtbi5maWVsZCgpXCI+PC9wLXNvcnRJY29uPlxyXG5cdFx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdDwvdGg+XHJcblx0XHRcdFx0XHR9IEBlbHNlIHtcclxuXHRcdFx0XHRcdFx0PHRoIFtuZ1N0eWxlXT1cInsgd2lkdGg6IGNvbHVtbi53aWR0aCgpID8gY29sdW1uLndpZHRoKCkgOiAnYXV0bycgfVwiIHN0eWxlPVwibWluLXdpZHRoOiAxNzBweFwiPlxyXG5cdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMlwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0e3sgY29sdW1uLmhlYWRlcigpIH19XHJcblx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleFwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRAaWYgKGNvbHVtbi5pc1Nob3dIZWFkZXJUb29sdGlwKCkpIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8aVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0c3R5bGU9XCJjb2xvcjogZ3JlZW47IHBhZGRpbmctdG9wOiA0cHg7IHBhZGRpbmctbGVmdDogNHB4XCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNsYXNzPVwicGkgcGktaW5mby1jaXJjbGVcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0W3BUb29sdGlwXT1cImNvbHVtbi50b29sdGlwVGVtcGxhdGUoKVwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR0b29sdGlwUG9zaXRpb249XCJ0b3BcIj48L2k+XHJcblx0XHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0XHQ8L3RoPlxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0PC90cj5cclxuXHQ8L25nLXRlbXBsYXRlPlxyXG5cclxuXHQ8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiYm9keVwiIGxldC1pdGVtIGxldC1jb2x1bW5zPVwiY29sdW1uc1wiPlxyXG5cdFx0QGlmIChoYW5kbGVkU2VsZWN0aW9uTW9kZSkge1xyXG5cdFx0XHQ8dHIgW3BTZWxlY3RhYmxlUm93XT1cIml0ZW1cIj5cclxuXHRcdFx0XHRAZm9yIChjb2x1bW4gb2YgY29sdW1uczsgdHJhY2sgJGluZGV4KSB7XHJcblx0XHRcdFx0XHQ8dGQgW25nU3R5bGVdPVwieyAndGV4dC1hbGlnbic6IGNvbHVtbi50eXBlKCkgPT09ICdvcGVyYXRpb25zJyA/ICdjZW50ZXInIDogY29sdW1uLnRBbGlnbigpIHx8IHRBbGlnbigpIH1cIj5cclxuXHRcdFx0XHRcdFx0PG5nLXRlbXBsYXRlIG5nRm9yIFtuZ0Zvck9mXT1cIltpdGVtXVwiIFtuZ0ZvclRlbXBsYXRlXT1cImNvbHVtbi50ZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XHJcblx0XHRcdFx0XHQ8L3RkPlxyXG5cdFx0XHRcdH1cclxuXHRcdFx0PC90cj5cclxuXHRcdH0gQGVsc2Uge1xyXG5cdFx0XHQ8dHIgW25nU3R5bGVdPVwieyAnYmFja2dyb3VuZC1jb2xvcic6IGl0ZW0/LnJvd0NvbG9yID8gaXRlbT8ucm93Q29sb3IgOiAnI2ZmZicgfVwiPlxyXG5cdFx0XHRcdEBpZiAoY2hlY2tib3hTZWxlY3Rpb24oKSkge1xyXG5cdFx0XHRcdFx0PHRkPlxyXG5cdFx0XHRcdFx0XHQ8cC10YWJsZUNoZWNrYm94IFt2YWx1ZV09XCJpdGVtXCI+PC9wLXRhYmxlQ2hlY2tib3g+XHJcblx0XHRcdFx0XHQ8L3RkPlxyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0QGZvciAoY29sdW1uIG9mIGNvbHVtbnM7IHRyYWNrICRpbmRleCkge1xyXG5cdFx0XHRcdFx0PHRkIFtuZ1N0eWxlXT1cInsgJ3RleHQtYWxpZ24nOiBjb2x1bW4udHlwZSgpID09PSAnb3BlcmF0aW9ucycgPyAnY2VudGVyJyA6IGNvbHVtbi50QWxpZ24oKSB8fCB0QWxpZ24oKSB9XCI+XHJcblx0XHRcdFx0XHRcdDxuZy10ZW1wbGF0ZSBuZ0ZvciBbbmdGb3JPZl09XCJbaXRlbV1cIiBbbmdGb3JUZW1wbGF0ZV09XCJjb2x1bW4udGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxyXG5cdFx0XHRcdFx0PC90ZD5cclxuXHRcdFx0XHR9XHJcblx0XHRcdDwvdHI+XHJcblx0XHR9XHJcblx0PC9uZy10ZW1wbGF0ZT5cclxuXHJcblx0QGlmIChzaG93Rm9vdGVyKCkpIHtcclxuXHRcdDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJzdW1tYXJ5XCI+XHJcblx0XHRcdDxuZy1jb250ZW50IHNlbGVjdD1cIltmb290ZXJdXCI+PC9uZy1jb250ZW50PlxyXG5cdFx0PC9uZy10ZW1wbGF0ZT5cclxuXHR9XHJcblxyXG5cdDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJlbXB0eW1lc3NhZ2VcIj5cclxuXHRcdDx0cj5cclxuXHRcdFx0PHRkIFthdHRyLmNvbHNwYW5dPVwiY29sdW1ucy5fcmVzdWx0cy5sZW5ndGhcIj57eyBub0RhdGFGb3VuZExhYmVsKCkgfX08L3RkPlxyXG5cdFx0PC90cj5cclxuXHQ8L25nLXRlbXBsYXRlPlxyXG48L3AtdGFibGU+XHJcblxyXG48cC1vdmVybGF5UGFuZWwgc3R5bGVDbGFzcz1cImV4cG9ydC1vdmVybGF5LXBhbmVsXCI+XHJcblx0QGlmIChleHBvcnRGb3JtKSB7XHJcblx0XHQ8YXJpbC1mb3JtIFtmb3JtR3JvdXBdPVwiZXhwb3J0Rm9ybVwiIGNsYXNzPVwidy0yMHJlbVwiPlxyXG5cdFx0XHQ8YXJpbC1maWVsZCBbbGFiZWxdPVwiJ0V4cG9ydCBUaXBpJ1wiIFtjb2xzXT1cInsgZGVmYXVsdDogMTIgfVwiPlxyXG5cdFx0XHRcdDxhcmlsLXJhZGlvLWJ1dHRvbiBmb3JtQ29udHJvbE5hbWU9XCJleHBvcnRUeXBlXCIgW29wdGlvbnNdPVwiZXhwb3J0VHlwZU9wdGlvbnNcIiAvPlxyXG5cdFx0XHQ8L2FyaWwtZmllbGQ+XHJcblxyXG5cdFx0XHQ8YXJpbC1maWVsZCBbbGFiZWxdPVwiJ0Rvc3lhIMSwc21pJ1wiIFtjb2xzXT1cInsgZGVmYXVsdDogMTIgfVwiPlxyXG5cdFx0XHRcdDxhcmlsLXRleHQgY2xhc3M9XCJ3LWZ1bGxcIiBmb3JtQ29udHJvbE5hbWU9XCJleHBvcnRMYWJlbFwiIC8+XHJcblx0XHRcdDwvYXJpbC1maWVsZD5cclxuXHJcblx0XHRcdDxuZy1jb250YWluZXIgZm9ybUFycmF5TmFtZT1cImNvbHVtbnNcIj5cclxuXHRcdFx0XHQ8cC1vcmRlckxpc3RcclxuXHRcdFx0XHRcdCNvcmRlckxpc3RSZWZcclxuXHRcdFx0XHRcdGNsYXNzPVwiY29sLTEyXCJcclxuXHRcdFx0XHRcdFt2YWx1ZV09XCJleHBvcnRGb3JtLmNvbnRyb2xzLmNvbHVtbnMuY29udHJvbHNcIlxyXG5cdFx0XHRcdFx0W2xpc3RTdHlsZV09XCJ7ICdtYXgtaGVpZ2h0JzogJzIwcmVtJyB9XCJcclxuXHRcdFx0XHRcdGZpbHRlckJ5PVwidmFsdWUudGl0bGVcIj5cclxuXHRcdFx0XHRcdDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJmaWx0ZXJcIj5cclxuXHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0zXCI+XHJcblx0XHRcdFx0XHRcdFx0PGFyaWwtY2hlY2tib3hcclxuXHRcdFx0XHRcdFx0XHRcdFtsYWJlbF09XCInJ1wiXHJcblx0XHRcdFx0XHRcdFx0XHRbbmdNb2RlbF09XCJpc0FsbFNlbGVjdGVkXCJcclxuXHRcdFx0XHRcdFx0XHRcdFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXHJcblx0XHRcdFx0XHRcdFx0XHQobmdNb2RlbENoYW5nZSk9XCJvblNlbGVjdEFsbCgkZXZlbnQpXCIgLz5cclxuXHJcblx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cInAtb3JkZXJsaXN0LWZpbHRlclwiIFthdHRyLmRhdGEtcGMtc2VjdGlvbl09XCInZmlsdGVyJ1wiPlxyXG5cdFx0XHRcdFx0XHRcdFx0PGlucHV0XHJcblx0XHRcdFx0XHRcdFx0XHRcdCNmaWx0ZXJcclxuXHRcdFx0XHRcdFx0XHRcdFx0dHlwZT1cInRleHRcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRyb2xlPVwidGV4dGJveFwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdChrZXl1cCk9XCJvcmRlckxpc3RSZWYub25GaWx0ZXJLZXl1cCgkZXZlbnQpXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0W2Rpc2FibGVkXT1cIm9yZGVyTGlzdFJlZi5kaXNhYmxlZFwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdGNsYXNzPVwicC1vcmRlcmxpc3QtZmlsdGVyLWlucHV0IHAtaW5wdXR0ZXh0IHAtY29tcG9uZW50XCIgLz5cclxuXHRcdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHQ8L25nLXRlbXBsYXRlPlxyXG5cdFx0XHRcdFx0PG5nLXRlbXBsYXRlIGxldC1jb2wgcFRlbXBsYXRlPVwiaXRlbVwiPlxyXG5cdFx0XHRcdFx0XHQ8YXJpbC1jaGVja2JveCBbbGFiZWxdPVwiY29sLnZhbHVlLnRpdGxlXCIgW2Zvcm1Db250cm9sXT1cImNvbC5jb250cm9scy5jaGVja2VkXCIgLz5cclxuXHRcdFx0XHRcdDwvbmctdGVtcGxhdGU+XHJcblx0XHRcdFx0PC9wLW9yZGVyTGlzdD5cclxuXHRcdFx0PC9uZy1jb250YWluZXI+XHJcblxyXG5cdFx0XHQ8YXJpbC1idXR0b24gY2xhc3M9XCJjb2wtMTJcIiBsYWJlbD1cIkV4cG9ydFwiIGNvbG9yPVwicHJpbWFyeVwiIChjbGlja0V2ZW50KT1cImV4cG9ydCgpXCIgLz5cclxuXHRcdDwvYXJpbC1mb3JtPlxyXG5cdH1cclxuPC9wLW92ZXJsYXlQYW5lbD5cclxuIl19
|