imm-element-ui 0.0.6 → 0.0.7
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/lib/form/form-type/codemirror.type.mjs +43 -2
- package/esm2022/lib/grid/grid/grid.component.mjs +18 -4
- package/esm2022/lib/grid/grid-utils.mjs +9 -2
- package/esm2022/lib/service/userHistory.service.mjs +7 -3
- package/fesm2022/imm-element-ui.mjs +73 -7
- package/fesm2022/imm-element-ui.mjs.map +1 -1
- package/lib/form/form-type/codemirror.type.d.ts +1 -0
- package/lib/grid/grid/grid.component.d.ts +4 -1
- package/lib/search/pop-date/pop-date.component.d.ts +1 -1
- package/lib/service/themeConfig.service.d.ts +1 -1
- package/lib/service/userHistory.service.d.ts +1 -1
- package/package.json +1 -1
|
@@ -10,6 +10,9 @@ import { defaultKeymap, history, historyKeymap } from '@codemirror/commands';
|
|
|
10
10
|
import { searchKeymap, highlightSelectionMatches } from '@codemirror/search';
|
|
11
11
|
import { autocompletion, completionKeymap, closeBrackets, closeBracketsKeymap } from '@codemirror/autocomplete';
|
|
12
12
|
import { lintKeymap } from '@codemirror/lint';
|
|
13
|
+
import prettier from 'prettier';
|
|
14
|
+
import typescript from 'prettier/plugins/typescript';
|
|
15
|
+
import estree from 'prettier/plugins/estree';
|
|
13
16
|
import * as i0 from "@angular/core";
|
|
14
17
|
import * as i1 from "../../service/action.service";
|
|
15
18
|
export class CodeMirrorComponent {
|
|
@@ -78,6 +81,7 @@ export class CodeMirrorComponent {
|
|
|
78
81
|
crosshairCursor(),
|
|
79
82
|
highlightActiveLineGutter(),
|
|
80
83
|
highlightSelectionMatches(),
|
|
84
|
+
this.formatting(),
|
|
81
85
|
keymap.of([
|
|
82
86
|
...closeBracketsKeymap,
|
|
83
87
|
...defaultKeymap,
|
|
@@ -95,7 +99,7 @@ export class CodeMirrorComponent {
|
|
|
95
99
|
'.cm-activeLineGutter': {
|
|
96
100
|
backgroundColor: 'transparent',
|
|
97
101
|
},
|
|
98
|
-
'&': { minHeight: this.props.minHeight ?? '88px', maxHeight: this.props.maxHeight || '
|
|
102
|
+
'&': { minHeight: this.props.minHeight ?? '88px', maxHeight: this.props.maxHeight || '204px' },
|
|
99
103
|
'.cm-scroller': { overflow: 'auto', minHeight: this.props.minHeight ?? '88px' },
|
|
100
104
|
}),
|
|
101
105
|
this.getLanguageExtension(),
|
|
@@ -154,6 +158,43 @@ export class CodeMirrorComponent {
|
|
|
154
158
|
}
|
|
155
159
|
});
|
|
156
160
|
}
|
|
161
|
+
formatting() {
|
|
162
|
+
const formatCommand = (view) => {
|
|
163
|
+
try {
|
|
164
|
+
prettier
|
|
165
|
+
.format(view.state.doc.toString(), {
|
|
166
|
+
parser: 'typescript',
|
|
167
|
+
plugins: [typescript, estree],
|
|
168
|
+
semi: true,
|
|
169
|
+
singleQuote: true,
|
|
170
|
+
tabWidth: 2,
|
|
171
|
+
printWidth: 80,
|
|
172
|
+
trailingComma: 'all',
|
|
173
|
+
arrowParens: 'always',
|
|
174
|
+
})
|
|
175
|
+
.then((formatted) => {
|
|
176
|
+
const transaction = this.editorView.state.update({
|
|
177
|
+
changes: { from: 0, to: this.editorView.state.doc.length, insert: formatted },
|
|
178
|
+
});
|
|
179
|
+
this.editorView.dispatch(transaction);
|
|
180
|
+
console.log('格式化成功:', formatted);
|
|
181
|
+
});
|
|
182
|
+
return true;
|
|
183
|
+
}
|
|
184
|
+
catch (error) {
|
|
185
|
+
console.error('格式化错误:', error);
|
|
186
|
+
return false;
|
|
187
|
+
}
|
|
188
|
+
};
|
|
189
|
+
return keymap.of([
|
|
190
|
+
{
|
|
191
|
+
key: 'Shift-Alt-f',
|
|
192
|
+
mac: 'Shift-Cmd-f',
|
|
193
|
+
run: formatCommand,
|
|
194
|
+
preventDefault: true,
|
|
195
|
+
},
|
|
196
|
+
]);
|
|
197
|
+
}
|
|
157
198
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CodeMirrorComponent, deps: [{ token: i1.ActionService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
158
199
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: CodeMirrorComponent, isStandalone: true, selector: "form-codemirror", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "codeContainer", first: true, predicate: ["codeContainer"], descendants: true }], ngImport: i0, template: `<div #codeContainer></div>`, isInline: true, styles: [":host ::ng-deep .p-disabled,:host ::ng-deep .p-component:disabled{opacity:1}:host ::ng-deep .p-inputtext{border-width:0;border-radius:0;box-shadow:none;background:#fff;padding:0}:host ::ng-deep .p-inputtext:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputtext:not(:disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:not(:disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered .p-autocomplete-input:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-label{padding:0}:host ::ng-deep .p-select{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-select .p-select-dropdown{display:none}:host ::ng-deep .p-select .p-select-clear-icon{display:none}:host ::ng-deep .p-select:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-select-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-open .p-select-dropdown{display:flex}:host ::ng-deep .p-select-open .p-select-clear-icon{display:flex}:host ::ng-deep .p-select:hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select:hover .p-select-dropdown{display:flex}:host ::ng-deep .p-select:hover .p-select-clear-icon{display:flex}:host ::ng-deep .p-select.ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select.ng-hovered .p-select-dropdown{display:flex}:host ::ng-deep .p-select.ng-hovered .p-select-clear-icon{display:flex}:host ::ng-deep .p-multiselect-label{padding:0}:host ::ng-deep .p-multiselect{border-width:0;border-radius:0;background:#fff;box-shadow:none}:host ::ng-deep .p-multiselect .p-multiselect-dropdown{display:none}:host ::ng-deep .p-multiselect:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-multiselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect-open .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled):hover .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-textarea{border-radius:0;box-shadow:none;padding:0;background:#fff;resize:none}:host ::ng-deep .p-textarea:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border:1px solid var(--p-red-500)!important}:host ::ng-deep .p-textarea:not(:disabled):hover{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:not(:disabled).ng-hovered{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:focus{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-treeselect-label{padding:0}:host ::ng-deep .p-treeselect{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-treeselect .p-treeselect-dropdown{display:none}:host ::ng-deep .ng-invalid.ng-dirty>.p-treeselect{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-treeselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect-open .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled):hover .p-treeselect-dropdown{display:flex}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled) .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-menubar{border-width:0;padding:0}:host ::ng-deep .p-menubar-submenu{z-index:3}:host ::ng-deep .p-fileupload-advanced{border-width:0;border-radius:0;background-color:#fff}:host ::ng-deep .p-fileupload-header{padding:0}:host ::ng-deep .p-fileupload-content{padding:0;display:block;border-width:0}:host ::ng-deep .p-inputnumber:not(.ng-valid).ng-dirty>.p-inputtext{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputnumber.ng-hovered:not(.p-disabled)>.p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered>.p-datepicker:not(.p-disabled) .p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor{border:1px solid #cbd5e1}:host ::ng-deep .cm-editor.cm-focused{outline:none!important;border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor:hover{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor.ng-hovered{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-gutters{background-color:#fff;border:\"none\"}:host ::ng-deep .cm-activeLineGutter{background-color:#fff}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }] }); }
|
|
159
200
|
}
|
|
@@ -164,4 +205,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
164
205
|
type: ViewChild,
|
|
165
206
|
args: ['codeContainer', { static: false }]
|
|
166
207
|
}] } });
|
|
167
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZW1pcnJvci50eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW1tLWVsZW1lbnQtdWkvc3JjL2xpYi9mb3JtL2Zvcm0tdHlwZS9jb2RlbWlycm9yLnR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUMzRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDekQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzdDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzdELE9BQU8sRUFDTixVQUFVLEVBQ1YsTUFBTSxFQUNOLHFCQUFxQixFQUNyQixhQUFhLEVBQ2IsVUFBVSxFQUNWLG9CQUFvQixFQUNwQixlQUFlLEVBQ2YsV0FBVyxFQUNYLHlCQUF5QixFQUN6QixXQUFXLEdBQ1gsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQUUscUJBQXFCLEVBQUUsa0JBQWtCLEVBQUUsYUFBYSxFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekksT0FBTyxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDN0UsT0FBTyxFQUFFLFlBQVksRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJB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b0JBQ2xDLE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUU7aUJBQy9DLENBQUMsQ0FBQztnQkFDSCxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUM5QixDQUFDO1FBQ0YsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDOytHQTFKVyxtQkFBbUI7bUdBQW5CLG1CQUFtQiwrVEFIckIsNEJBQTRCLHVpTEFENUIsbUJBQW1COzs0RkFJakIsbUJBQW1CO2tCQVAvQixTQUFTOytCQUNDLGlCQUFpQixjQUNmLElBQUksV0FDUCxDQUFDLG1CQUFtQixDQUFDLFlBQ3BCLDRCQUE0QjswR0FJUyxhQUFhO3NCQUEzRCxTQUFTO3VCQUFDLGVBQWUsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIFZpZXdDaGlsZCwgaW5wdXQsIGVmZmVjdCwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEZvcm1GaWVsZCwgRmllbGRQcm9wcyB9IGZyb20gJy4uL2Zvcm0tZmllbGQvZm9ybS1maWVsZCc7XHJcbmltcG9ydCB7IGphdmFzY3JpcHQgfSBmcm9tICdAY29kZW1pcnJvci9sYW5nLWphdmFzY3JpcHQnO1xyXG5pbXBvcnQgeyBodG1sIH0gZnJvbSAnQGNvZGVtaXJyb3IvbGFuZy1odG1sJztcclxuaW1wb3J0IHsganNvbiB9IGZyb20gJ0Bjb2RlbWlycm9yL2xhbmctanNvbic7XHJcbmltcG9ydCB7IEVkaXRvclN0YXRlLCBTdGF0ZUVmZmVjdCB9IGZyb20gJ0Bjb2RlbWlycm9yL3N0YXRlJztcclxuaW1wb3J0IHtcclxuXHRFZGl0b3JWaWV3LFxyXG5cdGtleW1hcCxcclxuXHRoaWdobGlnaHRTcGVjaWFsQ2hhcnMsXHJcblx0ZHJhd1NlbGVjdGlvbixcclxuXHRkcm9wQ3Vyc29yLFxyXG5cdHJlY3Rhbmd1bGFyU2VsZWN0aW9uLFxyXG5cdGNyb3NzaGFpckN1cnNvcixcclxuXHRsaW5lTnVtYmVycyxcclxuXHRoaWdobGlnaHRBY3RpdmVMaW5lR3V0dGVyLFxyXG5cdHBsYWNlaG9sZGVyLFxyXG59IGZyb20gJ0Bjb2RlbWlycm9yL3ZpZXcnO1xyXG5pbXBvcnQgeyBkZWZhdWx0SGlnaGxpZ2h0U3R5bGUsIHN5bnRheEhpZ2hsaWdodGluZywgaW5kZW50T25JbnB1dCwgYnJhY2tldE1hdGNoaW5nLCBmb2xkR3V0dGVyLCBmb2xkS2V5bWFwIH0gZnJvbSAnQGNvZGVtaXJyb3IvbGFuZ3VhZ2UnO1xyXG5pbXBvcnQgeyBkZWZhdWx0S2V5bWFwLCBoaXN0b3J5LCBoaXN0b3J5S2V5bWFwIH0gZnJvbSAnQGNvZGVtaXJyb3IvY29tbWFuZHMnO1xyXG5pbXBvcnQgeyBzZWFyY2hLZXltYXAsIGhpZ2hsaWdodFNlbGVjdGlvbk1hdGNoZXMgfSBmcm9tICdAY29kZW1pcnJvci9zZWFyY2gnO1xyXG5pbXBvcnQgeyBhdXRvY29tcGxldGlvbiwgY29tcGxldGlvbktleW1hcCwgY2xvc2VCcmFja2V0cywgY2xvc2VCcmFja2V0c0tleW1hcCB9IGZyb20gJ0Bjb2RlbWlycm9yL2F1dG9jb21wbGV0ZSc7XHJcbmltcG9ydCB7IEFjdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlL2FjdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgbGludEtleW1hcCB9IGZyb20gJ0Bjb2RlbWlycm9yL2xpbnQnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDb2RlTWlycm9yUHJvcHMgZXh0ZW5kcyBGaWVsZFByb3BzIHtcclxuXHRsYW5ndWFnZT86ICdodG1sJyB8ICdqYXZhc2NyaXB0JyB8ICdqc29uJztcclxuXHRtYXhIZWlnaHQ/OiBzdHJpbmc7XHJcblx0bWluSGVpZ2h0Pzogc3RyaW5nO1xyXG5cdHBsYWNlaG9sZGVyPzogc3RyaW5nO1xyXG5cdHRlbXBsYXRlcz86IHN0cmluZ1tdO1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHRzZWxlY3RvcjogJ2Zvcm0tY29kZW1pcnJvcicsXHJcblx0c3RhbmRhbG9uZTogdHJ1ZSxcclxuXHRpbXBvcnRzOiBbUmVhY3RpdmVGb3Jtc01vZHVsZV0sXHJcblx0dGVtcGxhdGU6IGA8ZGl2ICNjb2RlQ29udGFpbmVyPjwvZGl2PmAsXHJcblx0c3R5bGVVcmw6ICcuLi8uLi9zdHlsZXMvc3R5bGVzLnNjc3MnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29kZU1pcnJvckNvbXBvbmVudCB7XHJcblx0QFZpZXdDaGlsZCgnY29kZUNvbnRhaW5lcicsIHsgc3RhdGljOiBmYWxzZSB9KSBjb2RlQ29udGFpbmVyITogRWxlbWVudFJlZjtcclxuXHRjbUVkaXRvciE6IEVsZW1lbnRSZWY7XHJcblx0ZmllbGQgPSBpbnB1dDxGb3JtRmllbGQ+KCk7XHJcblx0cHJvcHM6IENvZGVNaXJyb3JQcm9wcyA9IHt9O1xyXG5cdGVkaXRvclZpZXchOiBFZGl0b3JWaWV3O1xyXG5cdHRlbXBsYXRlSW5kZXggPSAwO1xyXG5cclxuXHRjb25zdHJ1Y3RvcihcclxuXHRcdHByaXZhdGUgYWN0aW9uOiBBY3Rpb25TZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG5cdCkge1xyXG5cdFx0ZWZmZWN0KCgpID0+IHtcclxuXHRcdFx0aWYgKHRoaXMuZmllbGQoKSkge1xyXG5cdFx0XHRcdHRoaXMucHJvcHMgPSB0aGlzLmZpZWxkKCkhLmNvZGVNaXJyb3JQcm9wcyE7XHJcblx0XHRcdFx0dGhpcy5oYW5kbGVNb2RlbENoYW5nZSgpO1xyXG5cdFx0XHRcdHRoaXMuaGFuZGxlRXh0ZW5zaW9ucygpO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHRcdGVmZmVjdCgoKSA9PiB7XHJcblx0XHRcdGNvbnN0IGxhYmVsQWN0aW9uID0gdGhpcy5hY3Rpb24uZ2V0RmllbGRMYWJlbEFjdGlvbigpO1xyXG5cdFx0XHRpZiAoIWxhYmVsQWN0aW9uIHx8IGxhYmVsQWN0aW9uPy5rZXkgIT0gdGhpcy5maWVsZCgpPy51dWlkKSB7XHJcblx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHR9XHJcblx0XHRcdGlmIChsYWJlbEFjdGlvbi50eXBlID09ICdtb3VzZWVudGVyJykge1xyXG5cdFx0XHRcdHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5jbUVkaXRvciwgJ25nLWhvdmVyZWQnKTtcclxuXHRcdFx0fSBlbHNlIGlmIChsYWJlbEFjdGlvbi50eXBlID09ICdtb3VzZWxlYXZlJykge1xyXG5cdFx0XHRcdHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5jbUVkaXRvciwgJ25nLWhvdmVyZWQnKTtcclxuXHRcdFx0fSBlbHNlIGlmIChsYWJlbEFjdGlvbi50eXBlID09ICdjbGljaycpIHtcclxuXHRcdFx0XHR0aGlzLmVkaXRvclZpZXcuZm9jdXMoKTtcclxuXHRcdFx0fSBlbHNlIGlmIChsYWJlbEFjdGlvbi50eXBlID09ICdkYmxjbGljaycpIHtcclxuXHRcdFx0XHRpZiAoIXRoaXMucHJvcHMudGVtcGxhdGVzIHx8ICF0aGlzLnByb3BzLnRlbXBsYXRlcy5sZW5ndGgpIHJldHVybjtcclxuXHRcdFx0XHR0aGlzLmZpZWxkKCk/LmZpZWxkQ29udHJvbD8uc2V0VmFsdWUoXHJcblx0XHRcdFx0XHR0aGlzLnByb3BzLnRlbXBsYXRlc1tcclxuXHRcdFx0XHRcdFx0KCh0aGlzLnRlbXBsYXRlSW5kZXggJSB0aGlzLnByb3BzLnRlbXBsYXRlcy5sZW5ndGgpICsgdGhpcy5wcm9wcy50ZW1wbGF0ZXMubGVuZ3RoKSAlIHRoaXMucHJvcHMudGVtcGxhdGVzLmxlbmd0aFxyXG5cdFx0XHRcdFx0XSxcclxuXHRcdFx0XHRcdHsgZW1pdEV2ZW50OiB0cnVlIH0sXHJcblx0XHRcdFx0XHR0cnVlLFxyXG5cdFx0XHRcdCk7XHJcblx0XHRcdFx0dGhpcy50ZW1wbGF0ZUluZGV4Kys7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0bmdBZnRlclZpZXdJbml0KCkge1xyXG5cdFx0dGhpcy5lZGl0b3JWaWV3ID0gbmV3IEVkaXRvclZpZXcoe1xyXG5cdFx0XHRzdGF0ZTogRWRpdG9yU3RhdGUuY3JlYXRlKHtcclxuXHRcdFx0XHRkb2M6IHRoaXMuZmllbGQoKT8uZmllbGRDb250cm9sPy52YWx1ZSxcclxuXHRcdFx0fSksXHJcblx0XHRcdHBhcmVudDogdGhpcy5jb2RlQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQsXHJcblx0XHR9KTtcclxuXHRcdHRoaXMuY21FZGl0b3IgPSB0aGlzLmNvZGVDb250YWluZXIubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuY20tZWRpdG9yJyk7XHJcblx0fVxyXG5cclxuXHRuZ09uRGVzdHJveSgpIHtcclxuXHRcdHRoaXMuZWRpdG9yVmlldy5kZXN0cm95KCk7XHJcblx0fVxyXG5cclxuXHRoYW5kbGVFeHRlbnNpb25zKCkge1xyXG5cdFx0Y29uc3QgZXh0ZW5kc2lvbnMgPSBbXHJcblx0XHRcdGxpbmVOdW1iZXJzKCksXHJcblx0XHRcdGZvbGRHdXR0ZXIoKSxcclxuXHRcdFx0aGlnaGxpZ2h0U3BlY2lhbENoYXJzKCksXHJcblx0XHRcdGhpc3RvcnkoKSxcclxuXHRcdFx0ZHJhd1NlbGVjdGlvbigpLFxyXG5cdFx0XHRkcm9wQ3Vyc29yKCksXHJcblx0XHRcdEVkaXRvclN0YXRlLmFsbG93TXVsdGlwbGVTZWxlY3Rpb25zLm9mKHRydWUpLFxyXG5cdFx0XHRpbmRlbnRPbklucHV0KCksXHJcblx0XHRcdHN5bnRheEhpZ2hsaWdodGluZyhkZWZhdWx0SGlnaGxpZ2h0U3R5bGUpLFxyXG5cdFx0XHRicmFja2V0TWF0Y2hpbmcoKSxcclxuXHRcdFx0Y2xvc2VCcmFja2V0cygpLFxyXG5cdFx0XHRhdXRvY29tcGxldGlvbigpLFxyXG5cdFx0XHRyZWN0YW5ndWxhclNlbGVjdGlvbigpLFxyXG5cdFx0XHRjcm9zc2hhaXJDdXJzb3IoKSxcclxuXHRcdFx0aGlnaGxpZ2h0QWN0aXZlTGluZUd1dHRlcigpLFxyXG5cdFx0XHRoaWdobGlnaHRTZWxlY3Rpb25NYXRjaGVzKCksXHJcblx0XHRcdGtleW1hcC5vZihbXHJcblx0XHRcdFx0Li4uY2xvc2VCcmFja2V0c0tleW1hcCxcclxuXHRcdFx0XHQuLi5kZWZhdWx0S2V5bWFwLFxyXG5cdFx0XHRcdC4uLnNlYXJjaEtleW1hcCxcclxuXHRcdFx0XHQuLi5oaXN0b3J5S2V5bWFwLFxyXG5cdFx0XHRcdC4uLmZvbGRLZXltYXAsXHJcblx0XHRcdFx0Li4uY29tcGxldGlvbktleW1hcCxcclxuXHRcdFx0XHQuLi5saW50S2V5bWFwLFxyXG5cdFx0XHRdKSxcclxuXHRcdFx0RWRpdG9yVmlldy50aGVtZSh7XHJcblx0XHRcdFx0Jy5jbS1ndXR0ZXJzJzoge1xyXG5cdFx0XHRcdFx0YmFja2dyb3VuZENvbG9yOiAndHJhbnNwYXJlbnQnLFxyXG5cdFx0XHRcdFx0Ym9yZGVyOiAnbm9uZScsXHJcblx0XHRcdFx0fSxcclxuXHRcdFx0XHQnLmNtLWFjdGl2ZUxpbmVHdXR0ZXInOiB7XHJcblx0XHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3I6ICd0cmFuc3BhcmVudCcsXHJcblx0XHRcdFx0fSxcclxuXHRcdFx0XHQnJic6IHsgbWluSGVpZ2h0OiB0aGlzLnByb3BzLm1pbkhlaWdodCA/PyAnODhweCcsIG1heEhlaWdodDogdGhpcy5wcm9wcy5tYXhIZWlnaHQgfHwgJzE1MHB4JyB9LFxyXG5cdFx0XHRcdCcuY20tc2Nyb2xsZXInOiB7IG92ZXJmbG93OiAnYXV0bycsIG1pbkhlaWdodDogdGhpcy5wcm9wcy5taW5IZWlnaHQgPz8gJzg4cHgnIH0sXHJcblx0XHRcdH0pLFxyXG5cdFx0XHR0aGlzLmdldExhbmd1YWdlRXh0ZW5zaW9uKCksXHJcblx0XHRcdEVkaXRvclZpZXcudXBkYXRlTGlzdGVuZXIub2YoKHVwZGF0ZSkgPT4ge1xyXG5cdFx0XHRcdC8vIGlmICh1cGRhdGUudHJhbnNhY3Rpb25zLnNvbWUoKHRyKSA9PiB0ci5pc1VzZXJFdmVudCgnaW5wdXQnKSkpIHtcdH1cclxuXHRcdFx0XHRpZiAodXBkYXRlLmRvY0NoYW5nZWQpIHtcclxuXHRcdFx0XHRcdHRoaXMuZmllbGQoKT8uZmllbGRDb250cm9sPy5zZXRWYWx1ZSh1cGRhdGUuc3RhdGUuZG9jLnRvU3RyaW5nKCkpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSksXHJcblx0XHRdO1xyXG5cdFx0aWYgKHRoaXMucHJvcHMucGxhY2Vob2xkZXIpIHtcclxuXHRcdFx0ZXh0ZW5kc2lvbnMudW5zaGlmdChwbGFjZWhvbGRlcih0aGlzLnByb3BzLnBsYWNlaG9sZGVyKSk7XHJcblx0XHR9XHJcblx0XHRpZiAodGhpcy5wcm9wcy5kaXNhYmxlZCkge1xyXG5cdFx0XHRleHRlbmRzaW9ucy5wdXNoKEVkaXRvclZpZXcuZWRpdGFibGUub2YoZmFsc2UpKTtcclxuXHRcdH1cclxuXHRcdHRoaXMuZWRpdG9yVmlldy5kaXNwYXRjaCh7XHJcblx0XHRcdGVmZmVjdHM6IFN0YXRlRWZmZWN0LnJlY29uZmlndXJlLm9mKGV4dGVuZHNpb25zKSxcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0aGFuZGxlTW9kZWxDaGFuZ2UoKSB7XHJcblx0XHR0aGlzLmZpZWxkKCk/LmZpZWxkQ29udHJvbD8ubW9kZWxDaGFuZ2Uuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xyXG5cdFx0XHRpZiAoIXRoaXMuZWRpdG9yVmlldy5zdGF0ZS5kb2MubGVuZ3RoICYmIHZhbHVlID09IG51bGwpIHtcclxuXHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdH1cclxuXHRcdFx0Y29uc3QgdHJhbnNhY3Rpb24gPSB0aGlzLmVkaXRvclZpZXcuc3RhdGUudXBkYXRlKHtcclxuXHRcdFx0XHRjaGFuZ2VzOiB7IGZyb206IDAsIHRvOiB0aGlzLmVkaXRvclZpZXcuc3RhdGUuZG9jLmxlbmd0aCwgaW5zZXJ0OiB2YWx1ZSB9LFxyXG5cdFx0XHR9KTtcclxuXHRcdFx0dGhpcy5lZGl0b3JWaWV3LmRpc3BhdGNoKHRyYW5zYWN0aW9uKTtcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0Z2V0TGFuZ3VhZ2VFeHRlbnNpb24oKSB7XHJcblx0XHRzd2l0Y2ggKHRoaXMucHJvcHMubGFuZ3VhZ2UpIHtcclxuXHRcdFx0Y2FzZSAnaHRtbCc6XHJcblx0XHRcdFx0cmV0dXJuIGh0bWwoKTtcclxuXHRcdFx0Y2FzZSAnamF2YXNjcmlwdCc6XHJcblx0XHRcdFx0cmV0dXJuIGphdmFzY3JpcHQoKTtcclxuXHRcdFx0Y2FzZSAnanNvbic6XHJcblx0XHRcdFx0cmV0dXJuIGpzb24oKTtcclxuXHRcdFx0ZGVmYXVsdDpcclxuXHRcdFx0XHRyZXR1cm4gamF2YXNjcmlwdCgpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0bWluTGluZXMobWluOiBudW1iZXIpIHtcclxuXHRcdHJldHVybiBFZGl0b3JWaWV3LnVwZGF0ZUxpc3RlbmVyLm9mKCh2KSA9PiB7XHJcblx0XHRcdGNvbnN0IGRvYyA9IHYuc3RhdGUuZG9jO1xyXG5cdFx0XHRjb25zdCBsaW5lQ291bnQgPSBkb2MubGluZXM7XHJcblx0XHRcdGlmIChsaW5lQ291bnQgPCBtaW4pIHtcclxuXHRcdFx0XHRjb25zdCBuZXdMaW5lcyA9IEFycmF5KG1pbiArIDEgLSBsaW5lQ291bnQpXHJcblx0XHRcdFx0XHQuZmlsbCgnJylcclxuXHRcdFx0XHRcdC5qb2luKCdcXG4nKTtcclxuXHRcdFx0XHRjb25zdCB0cmFuc2FjdGlvbiA9IHYuc3RhdGUudXBkYXRlKHtcclxuXHRcdFx0XHRcdGNoYW5nZXM6IHsgZnJvbTogZG9jLmxlbmd0aCwgaW5zZXJ0OiBuZXdMaW5lcyB9LFxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHRcdHYudmlldy5kaXNwYXRjaCh0cmFuc2FjdGlvbik7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cdH1cclxufVxyXG4iXX0=
|
|
208
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZW1pcnJvci50eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW1tLWVsZW1lbnQtdWkvc3JjL2xpYi9mb3JtL2Zvcm0tdHlwZS9jb2RlbWlycm9yLnR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUMzRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDekQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzdDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzdELE9BQU8sRUFDTixVQUFVLEVBQ1YsTUFBTSxFQUNOLHFCQUFxQixFQUNyQixhQUFhLEVBQ2IsVUFBVSxFQUNWLG9CQUFvQixFQUNwQixlQUFlLEVBQ2YsV0FBVyxFQUNYLHlCQUF5QixFQUN6QixXQUFXLEdBQ1gsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQUUscUJBQXFCLEVBQUUsa0JBQWtCLEVBQUUsYUFBYSxFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekksT0FBTyxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDN0UsT0FBTyxFQUFFLFlBQVksRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJB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VUFBVSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztvQkFDdEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUM7Z0JBQ2xDLENBQUMsQ0FBQyxDQUFDO2dCQUNKLE9BQU8sSUFBSSxDQUFDO1lBQ2IsQ0FBQztZQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7Z0JBQ2hCLE9BQU8sQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUMvQixPQUFPLEtBQUssQ0FBQztZQUNkLENBQUM7UUFDRixDQUFDLENBQUM7UUFDRixPQUFPLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDaEI7Z0JBQ0MsR0FBRyxFQUFFLGFBQWE7Z0JBQ2xCLEdBQUcsRUFBRSxhQUFhO2dCQUNsQixHQUFHLEVBQUUsYUFBYTtnQkFDbEIsY0FBYyxFQUFFLElBQUk7YUFDcEI7U0FDRCxDQUFDLENBQUM7SUFDSixDQUFDOytHQWhNVyxtQkFBbUI7bUdBQW5CLG1CQUFtQiwrVEFIckIsNEJBQTRCLHVpTEFENUIsbUJBQW1COzs0RkFJakIsbUJBQW1CO2tCQVAvQixTQUFTOytCQUNDLGlCQUFpQixjQUNmLElBQUksV0FDUCxDQUFDLG1CQUFtQixDQUFDLFlBQ3BCLDRCQUE0QjswR0FJUyxhQUFhO3NCQUEzRCxTQUFTO3VCQUFDLGVBQWUsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIFZpZXdDaGlsZCwgaW5wdXQsIGVmZmVjdCwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEZvcm1GaWVsZCwgRmllbGRQcm9wcyB9IGZyb20gJy4uL2Zvcm0tZmllbGQvZm9ybS1maWVsZCc7XHJcbmltcG9ydCB7IGphdmFzY3JpcHQgfSBmcm9tICdAY29kZW1pcnJvci9sYW5nLWphdmFzY3JpcHQnO1xyXG5pbXBvcnQgeyBodG1sIH0gZnJvbSAnQGNvZGVtaXJyb3IvbGFuZy1odG1sJztcclxuaW1wb3J0IHsganNvbiB9IGZyb20gJ0Bjb2RlbWlycm9yL2xhbmctanNvbic7XHJcbmltcG9ydCB7IEVkaXRvclN0YXRlLCBTdGF0ZUVmZmVjdCB9IGZyb20gJ0Bjb2RlbWlycm9yL3N0YXRlJztcclxuaW1wb3J0IHtcclxuXHRFZGl0b3JWaWV3LFxyXG5cdGtleW1hcCxcclxuXHRoaWdobGlnaHRTcGVjaWFsQ2hhcnMsXHJcblx0ZHJhd1NlbGVjdGlvbixcclxuXHRkcm9wQ3Vyc29yLFxyXG5cdHJlY3Rhbmd1bGFyU2VsZWN0aW9uLFxyXG5cdGNyb3NzaGFpckN1cnNvcixcclxuXHRsaW5lTnVtYmVycyxcclxuXHRoaWdobGlnaHRBY3RpdmVMaW5lR3V0dGVyLFxyXG5cdHBsYWNlaG9sZGVyLFxyXG59IGZyb20gJ0Bjb2RlbWlycm9yL3ZpZXcnO1xyXG5pbXBvcnQgeyBkZWZhdWx0SGlnaGxpZ2h0U3R5bGUsIHN5bnRheEhpZ2hsaWdodGluZywgaW5kZW50T25JbnB1dCwgYnJhY2tldE1hdGNoaW5nLCBmb2xkR3V0dGVyLCBmb2xkS2V5bWFwIH0gZnJvbSAnQGNvZGVtaXJyb3IvbGFuZ3VhZ2UnO1xyXG5pbXBvcnQgeyBkZWZhdWx0S2V5bWFwLCBoaXN0b3J5LCBoaXN0b3J5S2V5bWFwIH0gZnJvbSAnQGNvZGVtaXJyb3IvY29tbWFuZHMnO1xyXG5pbXBvcnQgeyBzZWFyY2hLZXltYXAsIGhpZ2hsaWdodFNlbGVjdGlvbk1hdGNoZXMgfSBmcm9tICdAY29kZW1pcnJvci9zZWFyY2gnO1xyXG5pbXBvcnQgeyBhdXRvY29tcGxldGlvbiwgY29tcGxldGlvbktleW1hcCwgY2xvc2VCcmFja2V0cywgY2xvc2VCcmFja2V0c0tleW1hcCB9IGZyb20gJ0Bjb2RlbWlycm9yL2F1dG9jb21wbGV0ZSc7XHJcbmltcG9ydCB7IEFjdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlL2FjdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgbGludEtleW1hcCB9IGZyb20gJ0Bjb2RlbWlycm9yL2xpbnQnO1xyXG5pbXBvcnQgcHJldHRpZXIgZnJvbSAncHJldHRpZXInO1xyXG5pbXBvcnQgdHlwZXNjcmlwdCBmcm9tICdwcmV0dGllci9wbHVnaW5zL3R5cGVzY3JpcHQnO1xyXG5pbXBvcnQgZXN0cmVlIGZyb20gJ3ByZXR0aWVyL3BsdWdpbnMvZXN0cmVlJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29kZU1pcnJvclByb3BzIGV4dGVuZHMgRmllbGRQcm9wcyB7XHJcblx0bGFuZ3VhZ2U/OiAnaHRtbCcgfCAnamF2YXNjcmlwdCcgfCAnanNvbic7XHJcblx0bWF4SGVpZ2h0Pzogc3RyaW5nO1xyXG5cdG1pbkhlaWdodD86IHN0cmluZztcclxuXHRwbGFjZWhvbGRlcj86IHN0cmluZztcclxuXHR0ZW1wbGF0ZXM/OiBzdHJpbmdbXTtcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcblx0c2VsZWN0b3I6ICdmb3JtLWNvZGVtaXJyb3InLFxyXG5cdHN0YW5kYWxvbmU6IHRydWUsXHJcblx0aW1wb3J0czogW1JlYWN0aXZlRm9ybXNNb2R1bGVdLFxyXG5cdHRlbXBsYXRlOiBgPGRpdiAjY29kZUNvbnRhaW5lcj48L2Rpdj5gLFxyXG5cdHN0eWxlVXJsOiAnLi4vLi4vc3R5bGVzL3N0eWxlcy5zY3NzJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIENvZGVNaXJyb3JDb21wb25lbnQge1xyXG5cdEBWaWV3Q2hpbGQoJ2NvZGVDb250YWluZXInLCB7IHN0YXRpYzogZmFsc2UgfSkgY29kZUNvbnRhaW5lciE6IEVsZW1lbnRSZWY7XHJcblx0Y21FZGl0b3IhOiBFbGVtZW50UmVmO1xyXG5cdGZpZWxkID0gaW5wdXQ8Rm9ybUZpZWxkPigpO1xyXG5cdHByb3BzOiBDb2RlTWlycm9yUHJvcHMgPSB7fTtcclxuXHRlZGl0b3JWaWV3ITogRWRpdG9yVmlldztcclxuXHR0ZW1wbGF0ZUluZGV4ID0gMDtcclxuXHJcblx0Y29uc3RydWN0b3IoXHJcblx0XHRwcml2YXRlIGFjdGlvbjogQWN0aW9uU2VydmljZSxcclxuXHRcdHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuXHQpIHtcclxuXHRcdGVmZmVjdCgoKSA9PiB7XHJcblx0XHRcdGlmICh0aGlzLmZpZWxkKCkpIHtcclxuXHRcdFx0XHR0aGlzLnByb3BzID0gdGhpcy5maWVsZCgpIS5jb2RlTWlycm9yUHJvcHMhO1xyXG5cdFx0XHRcdHRoaXMuaGFuZGxlTW9kZWxDaGFuZ2UoKTtcclxuXHRcdFx0XHR0aGlzLmhhbmRsZUV4dGVuc2lvbnMoKTtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblx0XHRlZmZlY3QoKCkgPT4ge1xyXG5cdFx0XHRjb25zdCBsYWJlbEFjdGlvbiA9IHRoaXMuYWN0aW9uLmdldEZpZWxkTGFiZWxBY3Rpb24oKTtcclxuXHRcdFx0aWYgKCFsYWJlbEFjdGlvbiB8fCBsYWJlbEFjdGlvbj8ua2V5ICE9IHRoaXMuZmllbGQoKT8udXVpZCkge1xyXG5cdFx0XHRcdHJldHVybjtcclxuXHRcdFx0fVxyXG5cdFx0XHRpZiAobGFiZWxBY3Rpb24udHlwZSA9PSAnbW91c2VlbnRlcicpIHtcclxuXHRcdFx0XHR0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuY21FZGl0b3IsICduZy1ob3ZlcmVkJyk7XHJcblx0XHRcdH0gZWxzZSBpZiAobGFiZWxBY3Rpb24udHlwZSA9PSAnbW91c2VsZWF2ZScpIHtcclxuXHRcdFx0XHR0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuY21FZGl0b3IsICduZy1ob3ZlcmVkJyk7XHJcblx0XHRcdH0gZWxzZSBpZiAobGFiZWxBY3Rpb24udHlwZSA9PSAnY2xpY2snKSB7XHJcblx0XHRcdFx0dGhpcy5lZGl0b3JWaWV3LmZvY3VzKCk7XHJcblx0XHRcdH0gZWxzZSBpZiAobGFiZWxBY3Rpb24udHlwZSA9PSAnZGJsY2xpY2snKSB7XHJcblx0XHRcdFx0aWYgKCF0aGlzLnByb3BzLnRlbXBsYXRlcyB8fCAhdGhpcy5wcm9wcy50ZW1wbGF0ZXMubGVuZ3RoKSByZXR1cm47XHJcblx0XHRcdFx0dGhpcy5maWVsZCgpPy5maWVsZENvbnRyb2w/LnNldFZhbHVlKFxyXG5cdFx0XHRcdFx0dGhpcy5wcm9wcy50ZW1wbGF0ZXNbXHJcblx0XHRcdFx0XHRcdCgodGhpcy50ZW1wbGF0ZUluZGV4ICUgdGhpcy5wcm9wcy50ZW1wbGF0ZXMubGVuZ3RoKSArIHRoaXMucHJvcHMudGVtcGxhdGVzLmxlbmd0aCkgJSB0aGlzLnByb3BzLnRlbXBsYXRlcy5sZW5ndGhcclxuXHRcdFx0XHRcdF0sXHJcblx0XHRcdFx0XHR7IGVtaXRFdmVudDogdHJ1ZSB9LFxyXG5cdFx0XHRcdFx0dHJ1ZSxcclxuXHRcdFx0XHQpO1xyXG5cdFx0XHRcdHRoaXMudGVtcGxhdGVJbmRleCsrO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuXHRcdHRoaXMuZWRpdG9yVmlldyA9IG5ldyBFZGl0b3JWaWV3KHtcclxuXHRcdFx0c3RhdGU6IEVkaXRvclN0YXRlLmNyZWF0ZSh7XHJcblx0XHRcdFx0ZG9jOiB0aGlzLmZpZWxkKCk/LmZpZWxkQ29udHJvbD8udmFsdWUsXHJcblx0XHRcdH0pLFxyXG5cdFx0XHRwYXJlbnQ6IHRoaXMuY29kZUNvbnRhaW5lci5uYXRpdmVFbGVtZW50LFxyXG5cdFx0fSk7XHJcblx0XHR0aGlzLmNtRWRpdG9yID0gdGhpcy5jb2RlQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLmNtLWVkaXRvcicpO1xyXG5cdH1cclxuXHJcblx0bmdPbkRlc3Ryb3koKSB7XHJcblx0XHR0aGlzLmVkaXRvclZpZXcuZGVzdHJveSgpO1xyXG5cdH1cclxuXHJcblx0aGFuZGxlRXh0ZW5zaW9ucygpIHtcclxuXHRcdGNvbnN0IGV4dGVuZHNpb25zID0gW1xyXG5cdFx0XHRsaW5lTnVtYmVycygpLFxyXG5cdFx0XHRmb2xkR3V0dGVyKCksXHJcblx0XHRcdGhpZ2hsaWdodFNwZWNpYWxDaGFycygpLFxyXG5cdFx0XHRoaXN0b3J5KCksXHJcblx0XHRcdGRyYXdTZWxlY3Rpb24oKSxcclxuXHRcdFx0ZHJvcEN1cnNvcigpLFxyXG5cdFx0XHRFZGl0b3JTdGF0ZS5hbGxvd011bHRpcGxlU2VsZWN0aW9ucy5vZih0cnVlKSxcclxuXHRcdFx0aW5kZW50T25JbnB1dCgpLFxyXG5cdFx0XHRzeW50YXhIaWdobGlnaHRpbmcoZGVmYXVsdEhpZ2hsaWdodFN0eWxlKSxcclxuXHRcdFx0YnJhY2tldE1hdGNoaW5nKCksXHJcblx0XHRcdGNsb3NlQnJhY2tldHMoKSxcclxuXHRcdFx0YXV0b2NvbXBsZXRpb24oKSxcclxuXHRcdFx0cmVjdGFuZ3VsYXJTZWxlY3Rpb24oKSxcclxuXHRcdFx0Y3Jvc3NoYWlyQ3Vyc29yKCksXHJcblx0XHRcdGhpZ2hsaWdodEFjdGl2ZUxpbmVHdXR0ZXIoKSxcclxuXHRcdFx0aGlnaGxpZ2h0U2VsZWN0aW9uTWF0Y2hlcygpLFxyXG5cdFx0XHR0aGlzLmZvcm1hdHRpbmcoKSxcclxuXHRcdFx0a2V5bWFwLm9mKFtcclxuXHRcdFx0XHQuLi5jbG9zZUJyYWNrZXRzS2V5bWFwLFxyXG5cdFx0XHRcdC4uLmRlZmF1bHRLZXltYXAsXHJcblx0XHRcdFx0Li4uc2VhcmNoS2V5bWFwLFxyXG5cdFx0XHRcdC4uLmhpc3RvcnlLZXltYXAsXHJcblx0XHRcdFx0Li4uZm9sZEtleW1hcCxcclxuXHRcdFx0XHQuLi5jb21wbGV0aW9uS2V5bWFwLFxyXG5cdFx0XHRcdC4uLmxpbnRLZXltYXAsXHJcblx0XHRcdF0pLFxyXG5cdFx0XHRFZGl0b3JWaWV3LnRoZW1lKHtcclxuXHRcdFx0XHQnLmNtLWd1dHRlcnMnOiB7XHJcblx0XHRcdFx0XHRiYWNrZ3JvdW5kQ29sb3I6ICd0cmFuc3BhcmVudCcsXHJcblx0XHRcdFx0XHRib3JkZXI6ICdub25lJyxcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdCcuY20tYWN0aXZlTGluZUd1dHRlcic6IHtcclxuXHRcdFx0XHRcdGJhY2tncm91bmRDb2xvcjogJ3RyYW5zcGFyZW50JyxcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdCcmJzogeyBtaW5IZWlnaHQ6IHRoaXMucHJvcHMubWluSGVpZ2h0ID8/ICc4OHB4JywgbWF4SGVpZ2h0OiB0aGlzLnByb3BzLm1heEhlaWdodCB8fCAnMjA0cHgnIH0sXHJcblx0XHRcdFx0Jy5jbS1zY3JvbGxlcic6IHsgb3ZlcmZsb3c6ICdhdXRvJywgbWluSGVpZ2h0OiB0aGlzLnByb3BzLm1pbkhlaWdodCA/PyAnODhweCcgfSxcclxuXHRcdFx0fSksXHJcblx0XHRcdHRoaXMuZ2V0TGFuZ3VhZ2VFeHRlbnNpb24oKSxcclxuXHRcdFx0RWRpdG9yVmlldy51cGRhdGVMaXN0ZW5lci5vZigodXBkYXRlKSA9PiB7XHJcblx0XHRcdFx0Ly8gaWYgKHVwZGF0ZS50cmFuc2FjdGlvbnMuc29tZSgodHIpID0+IHRyLmlzVXNlckV2ZW50KCdpbnB1dCcpKSkge1x0fVxyXG5cdFx0XHRcdGlmICh1cGRhdGUuZG9jQ2hhbmdlZCkge1xyXG5cdFx0XHRcdFx0dGhpcy5maWVsZCgpPy5maWVsZENvbnRyb2w/LnNldFZhbHVlKHVwZGF0ZS5zdGF0ZS5kb2MudG9TdHJpbmcoKSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9KSxcclxuXHRcdF07XHJcblx0XHRpZiAodGhpcy5wcm9wcy5wbGFjZWhvbGRlcikge1xyXG5cdFx0XHRleHRlbmRzaW9ucy51bnNoaWZ0KHBsYWNlaG9sZGVyKHRoaXMucHJvcHMucGxhY2Vob2xkZXIpKTtcclxuXHRcdH1cclxuXHRcdGlmICh0aGlzLnByb3BzLmRpc2FibGVkKSB7XHJcblx0XHRcdGV4dGVuZHNpb25zLnB1c2goRWRpdG9yVmlldy5lZGl0YWJsZS5vZihmYWxzZSkpO1xyXG5cdFx0fVxyXG5cdFx0dGhpcy5lZGl0b3JWaWV3LmRpc3BhdGNoKHtcclxuXHRcdFx0ZWZmZWN0czogU3RhdGVFZmZlY3QucmVjb25maWd1cmUub2YoZXh0ZW5kc2lvbnMpLFxyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRoYW5kbGVNb2RlbENoYW5nZSgpIHtcclxuXHRcdHRoaXMuZmllbGQoKT8uZmllbGRDb250cm9sPy5tb2RlbENoYW5nZS5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XHJcblx0XHRcdGlmICghdGhpcy5lZGl0b3JWaWV3LnN0YXRlLmRvYy5sZW5ndGggJiYgdmFsdWUgPT0gbnVsbCkge1xyXG5cdFx0XHRcdHJldHVybjtcclxuXHRcdFx0fVxyXG5cdFx0XHRjb25zdCB0cmFuc2FjdGlvbiA9IHRoaXMuZWRpdG9yVmlldy5zdGF0ZS51cGRhdGUoe1xyXG5cdFx0XHRcdGNoYW5nZXM6IHsgZnJvbTogMCwgdG86IHRoaXMuZWRpdG9yVmlldy5zdGF0ZS5kb2MubGVuZ3RoLCBpbnNlcnQ6IHZhbHVlIH0sXHJcblx0XHRcdH0pO1xyXG5cdFx0XHR0aGlzLmVkaXRvclZpZXcuZGlzcGF0Y2godHJhbnNhY3Rpb24pO1xyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRnZXRMYW5ndWFnZUV4dGVuc2lvbigpIHtcclxuXHRcdHN3aXRjaCAodGhpcy5wcm9wcy5sYW5ndWFnZSkge1xyXG5cdFx0XHRjYXNlICdodG1sJzpcclxuXHRcdFx0XHRyZXR1cm4gaHRtbCgpO1xyXG5cdFx0XHRjYXNlICdqYXZhc2NyaXB0JzpcclxuXHRcdFx0XHRyZXR1cm4gamF2YXNjcmlwdCgpO1xyXG5cdFx0XHRjYXNlICdqc29uJzpcclxuXHRcdFx0XHRyZXR1cm4ganNvbigpO1xyXG5cdFx0XHRkZWZhdWx0OlxyXG5cdFx0XHRcdHJldHVybiBqYXZhc2NyaXB0KCk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRtaW5MaW5lcyhtaW46IG51bWJlcikge1xyXG5cdFx0cmV0dXJuIEVkaXRvclZpZXcudXBkYXRlTGlzdGVuZXIub2YoKHYpID0+IHtcclxuXHRcdFx0Y29uc3QgZG9jID0gdi5zdGF0ZS5kb2M7XHJcblx0XHRcdGNvbnN0IGxpbmVDb3VudCA9IGRvYy5saW5lcztcclxuXHRcdFx0aWYgKGxpbmVDb3VudCA8IG1pbikge1xyXG5cdFx0XHRcdGNvbnN0IG5ld0xpbmVzID0gQXJyYXkobWluICsgMSAtIGxpbmVDb3VudClcclxuXHRcdFx0XHRcdC5maWxsKCcnKVxyXG5cdFx0XHRcdFx0LmpvaW4oJ1xcbicpO1xyXG5cdFx0XHRcdGNvbnN0IHRyYW5zYWN0aW9uID0gdi5zdGF0ZS51cGRhdGUoe1xyXG5cdFx0XHRcdFx0Y2hhbmdlczogeyBmcm9tOiBkb2MubGVuZ3RoLCBpbnNlcnQ6IG5ld0xpbmVzIH0sXHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdFx0di52aWV3LmRpc3BhdGNoKHRyYW5zYWN0aW9uKTtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRmb3JtYXR0aW5nKCkge1xyXG5cdFx0Y29uc3QgZm9ybWF0Q29tbWFuZCA9ICh2aWV3OiBhbnkpID0+IHtcclxuXHRcdFx0dHJ5IHtcclxuXHRcdFx0XHRwcmV0dGllclxyXG5cdFx0XHRcdFx0LmZvcm1hdCh2aWV3LnN0YXRlLmRvYy50b1N0cmluZygpLCB7XHJcblx0XHRcdFx0XHRcdHBhcnNlcjogJ3R5cGVzY3JpcHQnLFxyXG5cdFx0XHRcdFx0XHRwbHVnaW5zOiBbdHlwZXNjcmlwdCwgZXN0cmVlXSxcclxuXHRcdFx0XHRcdFx0c2VtaTogdHJ1ZSxcclxuXHRcdFx0XHRcdFx0c2luZ2xlUXVvdGU6IHRydWUsXHJcblx0XHRcdFx0XHRcdHRhYldpZHRoOiAyLFxyXG5cdFx0XHRcdFx0XHRwcmludFdpZHRoOiA4MCxcclxuXHRcdFx0XHRcdFx0dHJhaWxpbmdDb21tYTogJ2FsbCcsXHJcblx0XHRcdFx0XHRcdGFycm93UGFyZW5zOiAnYWx3YXlzJyxcclxuXHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHQudGhlbigoZm9ybWF0dGVkKSA9PiB7XHJcblx0XHRcdFx0XHRcdGNvbnN0IHRyYW5zYWN0aW9uID0gdGhpcy5lZGl0b3JWaWV3LnN0YXRlLnVwZGF0ZSh7XHJcblx0XHRcdFx0XHRcdFx0Y2hhbmdlczogeyBmcm9tOiAwLCB0bzogdGhpcy5lZGl0b3JWaWV3LnN0YXRlLmRvYy5sZW5ndGgsIGluc2VydDogZm9ybWF0dGVkIH0sXHJcblx0XHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0XHR0aGlzLmVkaXRvclZpZXcuZGlzcGF0Y2godHJhbnNhY3Rpb24pO1xyXG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZygn5qC85byP5YyW5oiQ5YqfOicsIGZvcm1hdHRlZCk7XHJcblx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRyZXR1cm4gdHJ1ZTtcclxuXHRcdFx0fSBjYXRjaCAoZXJyb3IpIHtcclxuXHRcdFx0XHRjb25zb2xlLmVycm9yKCfmoLzlvI/ljJbplJnor686JywgZXJyb3IpO1xyXG5cdFx0XHRcdHJldHVybiBmYWxzZTtcclxuXHRcdFx0fVxyXG5cdFx0fTtcclxuXHRcdHJldHVybiBrZXltYXAub2YoW1xyXG5cdFx0XHR7XHJcblx0XHRcdFx0a2V5OiAnU2hpZnQtQWx0LWYnLFxyXG5cdFx0XHRcdG1hYzogJ1NoaWZ0LUNtZC1mJyxcclxuXHRcdFx0XHRydW46IGZvcm1hdENvbW1hbmQsXHJcblx0XHRcdFx0cHJldmVudERlZmF1bHQ6IHRydWUsXHJcblx0XHRcdH0sXHJcblx0XHRdKTtcclxuXHR9XHJcbn1cclxuIl19
|
|
@@ -58,6 +58,7 @@ export class GridComponent {
|
|
|
58
58
|
this.ngZone = inject(NgZone);
|
|
59
59
|
this.cdr = inject(ChangeDetectorRef);
|
|
60
60
|
this.richMultMap = {};
|
|
61
|
+
this.horizontalScrollBarWidth = 0;
|
|
61
62
|
effect(async () => {
|
|
62
63
|
this.columnDefs = await this.setRichValue();
|
|
63
64
|
this.columnDefs = gridUtils.handleI18nKey(this.toOptions().columnDefs, this.i18nService);
|
|
@@ -111,7 +112,12 @@ export class GridComponent {
|
|
|
111
112
|
this.localeText = gridUtils.getLocalText(this.i18nService.currentLang);
|
|
112
113
|
}
|
|
113
114
|
ngAfterViewInit() {
|
|
114
|
-
this.
|
|
115
|
+
this.initGridHeight();
|
|
116
|
+
}
|
|
117
|
+
ngOnDestroy() {
|
|
118
|
+
if (this.horizontalScrollBarObserver) {
|
|
119
|
+
this.horizontalScrollBarObserver.disconnect();
|
|
120
|
+
}
|
|
115
121
|
}
|
|
116
122
|
getGrid() {
|
|
117
123
|
return this.grid;
|
|
@@ -359,6 +365,7 @@ export class GridComponent {
|
|
|
359
365
|
else {
|
|
360
366
|
this.addEmit.emit();
|
|
361
367
|
}
|
|
368
|
+
this.ajustGridHeight();
|
|
362
369
|
}
|
|
363
370
|
delRows() {
|
|
364
371
|
const selectedNodes = this.grid.api.getSelectedNodes();
|
|
@@ -370,8 +377,15 @@ export class GridComponent {
|
|
|
370
377
|
else if (selectedData.length > 0 && ids.length == 0) {
|
|
371
378
|
this.handleDeletedRows(selectedData);
|
|
372
379
|
}
|
|
380
|
+
this.ajustGridHeight();
|
|
373
381
|
}
|
|
374
|
-
|
|
382
|
+
initGridHeight() {
|
|
383
|
+
this.horizontalScrollBarObserver = new ResizeObserver((entries) => {
|
|
384
|
+
entries.forEach((entry) => {
|
|
385
|
+
this.horizontalScrollBarWidth = entry.target.clientHeight;
|
|
386
|
+
});
|
|
387
|
+
});
|
|
388
|
+
this.horizontalScrollBarObserver.observe(this.gridRef.nativeElement.querySelector('.ag-body-horizontal-scroll'));
|
|
375
389
|
this.renderer.setStyle(this.gridRef.nativeElement, 'width', '100%');
|
|
376
390
|
if (this.toOptions().scrollHeight) {
|
|
377
391
|
this.renderer.setStyle(this.containerRef.nativeElement, 'max-height', this.toOptions().scrollHeight);
|
|
@@ -380,7 +394,7 @@ export class GridComponent {
|
|
|
380
394
|
ajustGridHeight() {
|
|
381
395
|
const height = gridUtils.calcGridHeight(this.grid.api.getDisplayedRowCount());
|
|
382
396
|
this.ngZone.run(() => {
|
|
383
|
-
this.renderer.setStyle(this.gridRef.nativeElement, 'height', `${height}px`);
|
|
397
|
+
this.renderer.setStyle(this.gridRef.nativeElement, 'height', `${height + this.horizontalScrollBarWidth}px`);
|
|
384
398
|
});
|
|
385
399
|
}
|
|
386
400
|
editingFix() {
|
|
@@ -410,4 +424,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
410
424
|
type: ViewChild,
|
|
411
425
|
args: ['gridContainer']
|
|
412
426
|
}] } });
|
|
413
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbW0tZWxlbWVudC11aS9zcmMvbGliL2dyaWQvZ3JpZC9ncmlkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ltbS1lbGVtZW50LXVpL3NyYy9saWIvZ3JpZC9ncmlkL2dyaWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBQyxNQUFNLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWpLLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUV2RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFekQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGFBQWEsRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sY0FBYyxDQUFDOzs7O0FBZXZELE1BQU0sYUFBYSxHQUFnQjtJQUNsQyxhQUFhLEVBQUU7UUFDZCxJQUFJLEVBQUUsQ0FBQztRQUNQLFFBQVEsRUFBRSxHQUFHO1FBQ2IsUUFBUSxFQUFFLEtBQUs7UUFDZixNQUFNLEVBQUUsS0FBSztLQUNiO0lBQ0QsWUFBWSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtJQUNsQyxZQUFZLEVBQUUsWUFBWTtJQUMxQixhQUFhLEVBQUU7UUFDZCxNQUFNLEVBQUU7WUFDUCxJQUFJLEVBQUUsT0FBTztTQUNiO0tBQ0Q7SUFDRCxZQUFZLEVBQUUsSUFBSTtJQUNsQixtQkFBbUIsRUFBRSxJQUFJO0lBQ3pCLHdCQUF3QixFQUFFLEVBQUU7Q0FDNUIsQ0FBQztBQVNGLE1BQU0sT0FBTyxhQUFhO0lBb0N6QixZQUFvQixNQUFxQjtRQUFyQixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBaEN6QyxnQkFBVyxHQUFHLEtBQUssQ0FBYyxFQUFFLENBQUMsQ0FBQztRQUNyQyxjQUFTLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUN6QixPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztZQUM3QyxPQUFPLFNBQVMsQ0FBQyxZQUFZLENBQUMsRUFBRSxHQUFHLGFBQWEsRUFBRSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxFQUFFLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2xJLENBQUMsQ0FBQyxDQUFDO1FBQ0gsZ0JBQVcsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUV6QyxnQkFBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNsQyxZQUFPLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7UUFDL0QsZUFBVSxHQUFHLFVBQVUsQ0FBQztRQUN4QixlQUFVLEdBQWEsRUFBRSxDQUFDO1FBQzFCLGFBQVEsR0FBRyxJQUFJLENBQUM7UUFDaEIsZUFBVSxHQUEyQixFQUFFLENBQUM7UUFHeEMsV0FBTSxHQUFHLEtBQUssRUFBTyxDQUFDO1FBRXRCLFlBQU8sR0FBRyxLQUFLLENBQU0sU0FBUyxDQUFDLENBQUM7UUFDaEMsY0FBUyxHQUFHLEtBQUssQ0FBUyxFQUFFLENBQUMsQ0FBQztRQUM5QixlQUFVLEdBQUcsTUFBTSxFQUFZLENBQUM7UUFDaEMsWUFBTyxHQUFHLE1BQU0sRUFBRSxDQUFDO1FBQ25CLFlBQU8sR0FBRyxLQUFLLEVBQXVCLENBQUM7UUFDdkMsZUFBVSxHQUFHLEtBQUssRUFBUyxDQUFDO1FBQzVCLFlBQU8sR0FBRyxLQUFLLENBQVUsSUFBSSxDQUFDLENBQUM7UUFDL0IsV0FBTSxHQUFHLEtBQUssQ0FBbUIsUUFBUSxDQUFDLENBQUM7UUFDM0MsY0FBUyxHQUFHLEtBQUssQ0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQzdCLFNBQUksR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDMUIsYUFBUSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM3QixXQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3hCLFFBQUcsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNoQyxnQkFBVyxHQUF3QixFQUFFLENBQUM7UUFHckMsTUFBTSxDQUNMLEtBQUssSUFBSSxFQUFFO1lBQ1YsSUFBSSxDQUFDLFVBQVUsR0FBRyxNQUFNLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUM1QyxJQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLFVBQVcsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDMUYsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsU0FBVSxDQUFDO1lBQzdDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLFNBQVUsQ0FBQztZQUM3QyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxZQUFZLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7Z0JBQ2xGLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDO29CQUM1QixZQUFZLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLFNBQVM7b0JBQ3hDLEVBQUUsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsRUFBRTtvQkFDdkIsT0FBTyxFQUFFLEVBQUU7b0JBQ1gsTUFBTSxFQUFFLElBQUksR0FBRyxFQUFFO29CQUNqQixNQUFNLEVBQUUsSUFBSSxHQUFHLEVBQUU7aUJBQ2pCLENBQUMsQ0FBQztZQUNKLENBQUM7WUFDRCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxLQUFLLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNsRyxDQUFDLEVBQ0QsRUFBRSxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsQ0FDM0IsQ0FBQztRQUNGLE1BQU0sQ0FDTCxHQUFHLEVBQUU7WUFDSixJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDbkUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2hCLENBQUMsRUFDRCxFQUFFLGlCQUFpQixFQUFFLElBQUksRUFBRSxDQUMzQixDQUFDO1FBQ0YsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNYLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLFNBQVM7Z0JBQUUsT0FBTztZQUN6QyxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUNkLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxVQUFVLEdBQUcsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7Z0JBQ25HLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDL0IsQ0FBQyxDQUFDLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztRQUNILE1BQU0sQ0FDTCxHQUFHLEVBQUU7WUFDSixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ3JFLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRyxDQUFDLENBQUM7WUFDMUMsQ0FBQztRQUNGLENBQUMsRUFDRCxFQUFFLGlCQUFpQixFQUFFLElBQUksRUFBRSxDQUMzQixDQUFDO1FBQ0YsTUFBTSxDQUNMLEdBQUcsRUFBRTtZQUNKLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxTQUFTO2dCQUN6QixJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLGFBQWEsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsU0FBVSxDQUFDLGFBQWEsRUFBRSxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNsSCxDQUFDLEVBQ0QsRUFBRSxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsQ0FDM0IsQ0FBQztRQUNGLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQsUUFBUTtRQUNQLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ3pDLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDckMsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7WUFDdEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzlDLElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsVUFBVyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUMxRixVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNmLElBQUksQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNoQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztZQUN0QixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDVCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFFRCxlQUFlO1FBQ2QsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELE9BQU87UUFDTixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDbEIsQ0FBQztJQUVELFdBQVcsQ0FBQyxDQUFNO1FBQ2pCLElBQUksQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNoQixDQUFDO0lBRUQsa0JBQWtCLENBQUMsS0FBVTtRQUM1QixJQUFJLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFLFlBQVksSUFBSSxZQUFZLENBQUMsQ0FBQyxDQUFDO0lBQzlHLENBQUM7SUFFRCxnQkFBZ0I7UUFDZixJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRTtZQUNsQyxxQkFBcUIsQ0FBQyxHQUFHLEVBQUU7Z0JBQzFCLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN4QixDQUFDLENBQUMsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVELEtBQUssQ0FBQyxZQUFZO1FBQ2pCLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxVQUFXLElBQUksRUFBRSxDQUFDO1FBQzdDLElBQUksQ0FBQztZQUNKLE1BQU0sYUFBYSxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDdEMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBUyxFQUFFLEVBQUU7Z0JBQzNCLElBQ0MsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUM7b0JBQzlCLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSx3QkFBd0IsSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLG9CQUFvQixDQUFDO29CQUN4RixJQUFJLENBQUMsUUFBUSxFQUNaLENBQUM7b0JBQ0YsSUFBSSxNQUFNLEdBQVEsRUFBRSxDQUFDO29CQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO3dCQUMvRSxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQzs0QkFDdkMsTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO3dCQUNsQyxDQUFDO3dCQUNELElBQUksQ0FBQyxnQkFBZ0IsR0FBRzs0QkFDdkIsR0FBRyxJQUFJLENBQUMsZ0JBQWdCOzRCQUN4QixrQkFBa0IsRUFBRSxHQUFHO3lCQUN2QixDQUFDO29CQUNILENBQUM7eUJBQU0sSUFBSSxJQUFJLENBQUMsZ0JBQWdCLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO3dCQUNwRixNQUFNLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQzt3QkFDdEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGtCQUFrQixHQUFHLEdBQUcsQ0FBQzt3QkFDL0MsSUFBSSxDQUFDLGdCQUFnQixDQUFDLCtCQUErQixHQUFHLElBQUksQ0FBQztvQkFDOUQsQ0FBQztvQkFDRCxJQUFJLFFBQVEsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxRQUFRLENBQUMsQ0FBQztvQkFDckUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO3dCQUNmLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDO3dCQUMxQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQzt3QkFDckUsSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLE1BQVcsRUFBRSxFQUFFOzRCQUNyQyxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFVBQW1CLENBQUM7NEJBQ25FLElBQUksT0FBTyxNQUFNLENBQUMsS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO2dDQUN0QyxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFVBQW1CLENBQUM7Z0NBQ25FLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dDQUNoRSxPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQzs0QkFDN0MsQ0FBQztpQ0FBTSxDQUFDO2dDQUNQLElBQUksTUFBTSxHQUFRLEVBQUUsQ0FBQztnQ0FDckIsSUFBSSxPQUFPLE1BQU0sQ0FBQyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7b0NBQ3RDLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7d0NBQzdCLE1BQU0sR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7b0NBQ3JGLENBQUM7Z0NBQ0YsQ0FBQztxQ0FBTSxDQUFDO29DQUNQLE1BQU0sR0FBRyxNQUFNLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztnQ0FDN0IsQ0FBQztnQ0FDRCxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQ0FDekUsT0FBTyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7NEJBQ3JFLENBQUM7d0JBQ0YsQ0FBQyxDQUFDO3dCQUNGLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxNQUFXLEVBQUUsRUFBRTs0QkFDbEMsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFtQixDQUFDOzRCQUNuRSxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxLQUFLLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQzs0QkFDcEUsT0FBTyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUM7d0JBQ2hELENBQUMsQ0FBQztvQkFDSCxDQUFDO3lCQUFNLENBQUM7d0JBQ1AsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7b0JBQ3ZDLENBQUM7Z0JBQ0YsQ0FBQztnQkFDRCxPQUFPLElBQUksQ0FBQztZQUNiLENBQUMsQ0FBQyxDQUNGLENBQUM7WUFDRixPQUFPLGFBQWEsQ0FBQztRQUN0QixDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNoQixPQUFPLENBQUMsS0FBSyxDQUFDLDJCQUEyQixFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ2xELE1BQU0sS0FBSyxDQUFDO1FBQ2IsQ0FBQztJQUNGLENBQUM7SUFFRCxRQUFRLENBQUMsRUFBVTtRQUNsQixPQUFPLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDOUcsQ0FBQztJQUVELE9BQU87UUFDTixTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxTQUFTO2dCQUFFLE9BQU87WUFDeEMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ2pFLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxZQUFZLElBQUksWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzFHLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVELGFBQWEsQ0FBQyxNQUFlO1FBQzVCLElBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLGFBQWEsQ0FBQyxzQkFBc0IsRUFBRTtZQUNwRCxPQUFPLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRTtnQkFDbkIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztnQkFDbEQsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLGFBQWEsR0FBRyxNQUFNLEVBQUUsYUFBYSxDQUFDO2dCQUN2RCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQzlCLElBQUksQ0FBQyxTQUFTLEVBQUU7cUJBQ2QsVUFBVSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO3FCQUM5QixTQUFTLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRTtvQkFDdkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUM7d0JBQ25CLFFBQVEsRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVE7d0JBQ2pDLE1BQU0sRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU8sR0FBRyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVE7d0JBQ3BGLEtBQUssRUFBRSxHQUFHLENBQUMsUUFBUTtxQkFDbkIsQ0FBQyxDQUFDO29CQUNILE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7b0JBQ3RDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztnQkFDeEIsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDO1NBQ0QsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVELGdCQUFnQixDQUFDLE1BQVc7UUFDM0IsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRO1lBQUUsT0FBTztRQUN2QyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN6QyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsYUFBYSxHQUFHO2dCQUNoQyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxFQUFFO2FBQ3hHLENBQUM7UUFDSCxDQUFDO2FBQU0sQ0FBQztZQUNQLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQ3JDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxhQUFhLEdBQUcsQ0FBQyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNqRixDQUFDO1FBQ0YsQ0FBQztRQUNELElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsYUFBYSxDQUFDLE1BQWU7UUFDNUIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLEtBQUssR0FBRyxXQUFXLENBQUM7UUFDckMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLGFBQWEsR0FBRyxNQUFNLEVBQUUsYUFBYSxDQUFDO1FBQ3ZELElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxTQUFTLEVBQUU7YUFDZCxVQUFVLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7YUFDOUIsU0FBUyxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUU7WUFDdkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUM7Z0JBQ25CLEtBQUssRUFBRSxHQUFHLENBQUMsUUFBUTtnQkFDbkIsSUFBSSxFQUFFLFFBQVE7YUFDZCxDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxhQUFhLENBQUMsU0FBUyxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNsRCxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsZ0JBQWdCO1FBQ2YsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRO1lBQUUsT0FBTztRQUN2QyxNQUFNLFFBQVEsR0FBVSxFQUFFLENBQUM7UUFDM0IsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxTQUFVLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUN0RCxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDcEQsQ0FBQztRQUNELElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0lBQ3RDLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxDQUF3QjtRQUN4QyxJQUFJLEVBQ0gsTUFBTSxFQUFFLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsRUFDM0QsUUFBUSxFQUNSLFFBQVEsRUFDUixRQUFRLEVBQ1IsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQ1osR0FBRyxDQUFDLENBQUM7UUFDTixJQUFJLFVBQVUsSUFBSSx3QkFBd0IsSUFBSSxnQkFBZ0IsSUFBSSxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNoRyxRQUFRLEdBQUcsUUFBUSxJQUFJLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDckUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFNLENBQUMsR0FBRyxRQUFRLENBQUM7UUFDckMsQ0FBQztRQUNELElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNULElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxRQUFTLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1lBQ3hHLElBQUksS0FBSyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDN0IsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVMsR0FBRyxLQUFNLEVBQUUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7WUFDM0gsQ0FBQztRQUNGLENBQUM7YUFBTSxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ2YsTUFBTSxRQUFRLEdBQUcsR0FBRyxLQUFLLEVBQUUsQ0FBQztZQUM1QixJQUFJLENBQU0sQ0FBQztZQUNYLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVMsQ0FBQyxFQUFFLENBQUM7Z0JBQ3BFLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUyxDQUFDLENBQUM7Z0JBQ25FLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1lBQzVDLENBQUM7aUJBQU0sQ0FBQztnQkFDUCxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUM7WUFDdEMsQ0FBQztZQUNELElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxRQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDbEUsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVMsR0FBRyxLQUFNLENBQUMsQ0FBQztZQUNsRixJQUFJLEdBQUcsRUFBRSxDQUFDO2dCQUNULElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxRQUFTLEdBQUcsS0FBTSxFQUFFO29CQUN2RSxRQUFRLEVBQUUsUUFBUTtvQkFDbEIsUUFBUSxFQUFFLEdBQUcsQ0FBQyxRQUFRO29CQUN0QixFQUFFLEVBQUUsRUFBRTtvQkFDTixLQUFLLEVBQUUsVUFBVTtpQkFDakIsQ0FBQyxDQUFDO1lBQ0osQ0FBQztpQkFBTSxDQUFDO2dCQUNQLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxRQUFTLEdBQUcsS0FBTSxFQUFFO29CQUN2RSxRQUFRLEVBQUUsUUFBUTtvQkFDbEIsUUFBUSxFQUFFLFFBQVE7b0JBQ2xCLEVBQUUsRUFBRSxFQUFFO29CQUNOLEtBQUssRUFBRSxVQUFVO2lCQUNqQixDQUFDLENBQUM7WUFDSixDQUFDO1FBQ0YsQ0FBQztRQUNELElBQUksRUFBRSxHQUFVLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFVLEVBQUUsR0FBUSxFQUFFLEVBQUU7WUFDaEYsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoQixDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQ3pELENBQUM7SUFFRCxlQUFlLENBQUMsU0FBZ0I7UUFDL0IsSUFBSSxVQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUU7WUFDbEQsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDbEMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7WUFDOUIsQ0FBQztRQUNGLENBQUMsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztRQUNsRSxNQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFO1lBQ2pDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsUUFBUSxDQUFDO1lBQzdELElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxRQUFTLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzFFLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxRQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVUsRUFBRTtnQkFDaEYsUUFBUSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztnQkFDbkMsRUFBRSxFQUFFLENBQUM7Z0JBQ0wsS0FBSyxFQUFFLFVBQVU7YUFDakIsQ0FBQyxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLEVBQUUsR0FBVSxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBVSxFQUFFLEdBQVEsRUFBRSxFQUFFO1lBQ2hGLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEIsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUN4RCxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELGlCQUFpQixDQUFDLFdBQWtCO1FBQ25DLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGdCQUFnQixFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDcEYsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQWEsRUFBRSxFQUFFO1lBQ3ZDLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFTLENBQUMsQ0FBQztZQUNsRSxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUyxHQUFHLElBQUksQ0FBQyxTQUFVLENBQUMsQ0FBQztRQUNyRixDQUFDLENBQUMsQ0FBQztRQUNILElBQUksRUFBRSxHQUFVLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFVLEVBQUUsR0FBUSxFQUFFLEVBQUU7WUFDaEYsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoQixDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ3hELElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxNQUFNO1FBQ0wsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksUUFBUSxFQUFFLENBQUM7WUFDaEMsSUFBSSxJQUFJLEdBQUcsT0FBTyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsU0FBUyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUE7WUFDOUYsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDakQsQ0FBQzthQUFNLENBQUM7WUFDUCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JCLENBQUM7SUFDRixDQUFDO0lBRUQsT0FBTztRQUNOLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDdkQsTUFBTSxZQUFZLEdBQUcsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNsRSxJQUFJLEdBQUcsR0FBRyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckUsSUFBSSxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzNCLENBQUM7YUFBTSxJQUFJLFlBQVksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDdkQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3RDLENBQUM7SUFDRixDQUFDO0lBRUQsaUJBQWlCO1FBQ2hCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNwRSxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsRUFBRSxZQUFZLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3RHLENBQUM7SUFDRixDQUFDO0lBRUQsZUFBZTtRQUNkLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDO1FBQzlFLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNwQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxRQUFRLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxDQUFDO1FBQzdFLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVELFVBQVU7UUFDVCxRQUFRLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLENBQUMsS0FBVSxFQUFFLEVBQUU7WUFDakQsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLGVBQWUsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDO2dCQUNoRCxPQUFPO1lBQ1IsQ0FBQztZQUNELE1BQU0sV0FBVyxHQUFRLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1lBQ3RGLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO2dCQUN6QyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUM3QixDQUFDO1FBQ0YsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDOytHQWhaVyxhQUFhO21HQUFiLGFBQWEsMjFDQUNkLGFBQWEsMEVBQ2IsYUFBYSwyQkFBVSxVQUFVLDZIQ3REN0MscXJDQWlDQSxpT0RlVyxhQUFhLDg0UkFBRSxZQUFZOzs0RkFJekIsYUFBYTtrQkFQekIsU0FBUzsrQkFDQyxhQUFhLGNBQ1gsSUFBSSxXQUNQLENBQUMsYUFBYSxFQUFFLFlBQVksQ0FBQztrRkFLWixJQUFJO3NCQUE3QixTQUFTO3VCQUFDLGFBQWE7Z0JBQ3dCLE9BQU87c0JBQXRELFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkFDbEIsWUFBWTtzQkFBdkMsU0FBUzt1QkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYsIGlucHV0LCBlZmZlY3QsIGluamVjdCwgY29tcHV0ZWQsIHVudHJhY2tlZCwgbW9kZWwsIG91dHB1dCxOZ1pvbmUsIFJlbmRlcmVyMiwgQ2hhbmdlRGV0ZWN0b3JSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ2VsbFZhbHVlQ2hhbmdlZEV2ZW50LCBDb2xEZWYsIEdyaWRPcHRpb25zIGFzIFJhd0dyaWRPcHRpb25zIH0gZnJvbSAnYWctZ3JpZC1jb21tdW5pdHknO1xyXG5pbXBvcnQgeyBBZ0dyaWRBbmd1bGFyIH0gZnJvbSAnYWctZ3JpZC1hbmd1bGFyJztcclxuaW1wb3J0IHsgVGhlbWVDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZS90aGVtZUNvbmZpZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQWN0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2UvYWN0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2UvaTE4bi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU2VhcmNoIH0gZnJvbSAnLi4vLi4vYW0vYW0uY29tcG9uZW50JztcclxuaW1wb3J0IHsgZ3JpZFV0aWxzIH0gZnJvbSAnLi4vZ3JpZC11dGlscyc7XHJcbmltcG9ydCB7IEJ1dHRvbk1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvYnV0dG9uJztcclxuaW1wb3J0IHsgbGFzdFZhbHVlRnJvbSwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgY29tcG9uZW50cywgQ0xJRU5UTElNSVQgfSBmcm9tICcuLi9tb2NrLWRhdGEnO1xyXG5leHBvcnQgaW50ZXJmYWNlIEdyaWRPcHRpb25zIGV4dGVuZHMgUmF3R3JpZE9wdGlvbnMge1xyXG5cdHNlcnZlckZ1bmM/OiAoc2VhcmNoOiBTZWFyY2gpID0+IE9ic2VydmFibGU8YW55W10+O1xyXG5cdGNsaWVudEZ1bmM/OiAoc2VhcmNoOiBTZWFyY2gpID0+IE9ic2VydmFibGU8YW55W10+O1xyXG5cdHByZVNlYXJjaD86IFNlYXJjaDtcclxuXHR0cmVlRGF0YUZpZWxkPzogc3RyaW5nO1xyXG5cdHRyZWVMZXZlbD86IG51bWJlcjtcclxuXHRzY3JvbGxIZWlnaHQ/OiBzdHJpbmc7XHJcblx0dW5kb1JlZG9DZWxsRWRpdGluZz86IGJvb2xlYW47XHJcblx0dW5kb1JlZG9DZWxsRWRpdGluZ0xpbWl0PzogbnVtYmVyO1xyXG5cdG1haW5GaWVsZD86IHN0cmluZztcclxuXHRtb2RlbE5hbWU/OiBzdHJpbmc7XHJcblx0Zms/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmNvbnN0IGRlZmF1bHRPcHRpb246IEdyaWRPcHRpb25zID0ge1xyXG5cdGRlZmF1bHRDb2xEZWY6IHtcclxuXHRcdGZsZXg6IDEsXHJcblx0XHRtaW5XaWR0aDogMTAwLFxyXG5cdFx0c29ydGFibGU6IGZhbHNlLFxyXG5cdFx0ZmlsdGVyOiBmYWxzZSxcclxuXHR9LFxyXG5cdHJvd1NlbGVjdGlvbjogeyBtb2RlOiAnbXVsdGlSb3cnIH0sXHJcblx0cm93TW9kZWxUeXBlOiAnc2VydmVyU2lkZScsXHJcblx0Y2VsbFNlbGVjdGlvbjoge1xyXG5cdFx0aGFuZGxlOiB7XHJcblx0XHRcdG1vZGU6ICdyYW5nZScsXHJcblx0XHR9LFxyXG5cdH0sXHJcblx0ZW5hYmxlQ2hhcnRzOiB0cnVlLFxyXG5cdHVuZG9SZWRvQ2VsbEVkaXRpbmc6IHRydWUsXHJcblx0dW5kb1JlZG9DZWxsRWRpdGluZ0xpbWl0OiAyMCxcclxufTtcclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAnY3VzdG9tLWdyaWQnLFxyXG5cdHN0YW5kYWxvbmU6IHRydWUsXHJcblx0aW1wb3J0czogW0FnR3JpZEFuZ3VsYXIsIEJ1dHRvbk1vZHVsZV0sXHJcblx0dGVtcGxhdGVVcmw6ICcuL2dyaWQuY29tcG9uZW50Lmh0bWwnLFxyXG5cdHN0eWxlVXJsOiAnLi9ncmlkLmNvbXBvbmVudC5zY3NzJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEdyaWRDb21wb25lbnQge1xyXG5cdEBWaWV3Q2hpbGQoQWdHcmlkQW5ndWxhcikgZ3JpZCE6IEFnR3JpZEFuZ3VsYXI7XHJcblx0QFZpZXdDaGlsZChBZ0dyaWRBbmd1bGFyLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSkgZ3JpZFJlZiE6IEVsZW1lbnRSZWY7XHJcblx0QFZpZXdDaGlsZCgnZ3JpZENvbnRhaW5lcicpIGNvbnRhaW5lclJlZiE6IEVsZW1lbnRSZWY7XHJcblx0Z3JpZE9wdGlvbnMgPSBpbnB1dDxHcmlkT3B0aW9ucz4oe30pO1xyXG5cdHRvT3B0aW9ucyA9IGNvbXB1dGVkKCgpID0+IHtcclxuXHRcdGNvbnNvbGUubG9nKCd0b09wdGlvbnMnLCB0aGlzLmdyaWRPcHRpb25zKCkpO1xyXG5cdFx0cmV0dXJuIGdyaWRVdGlscy5tZXJnZU9wdGlvbnMoeyAuLi5kZWZhdWx0T3B0aW9uLCAuLi50aGlzLmdyaWRPcHRpb25zKCkgfSwgdW50cmFja2VkKCgpID0+IHRoaXMuc2VhcmNoUHJtKCkpLmxpbWl0LCB0aGlzLmFjdGlvbik7XHJcblx0fSk7XHJcblx0dGhlbWVDb25maWcgPSBpbmplY3QoVGhlbWVDb25maWdTZXJ2aWNlKTtcclxuXHRsb2NhbGVUZXh0OiBhbnk7XHJcblx0aTE4blNlcnZpY2UgPSBpbmplY3QoSTE4blNlcnZpY2UpO1xyXG5cdG15VGhlbWUgPSBjb21wdXRlZCgoKSA9PiBncmlkVXRpbHMuZ2V0VGhlbWUodGhpcy50aGVtZUNvbmZpZykpO1xyXG5cdGNvbXBvbmVudHMgPSBjb21wb25lbnRzO1xyXG5cdGNvbHVtbkRlZnM6IENvbERlZltdID0gW107XHJcblx0aW5pdEdyaWQgPSB0cnVlO1xyXG5cdGNvbnRlbnRNYXA6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcclxuXHRtYWluRmllbGQhOiBzdHJpbmc7XHJcblx0bW9kZWxOYW1lITogc3RyaW5nO1xyXG5cdHVwc2VydCA9IGlucHV0PGFueT4oKTtcclxuXHRzdWJJbmRleCE6IG51bWJlcjtcclxuXHRyb3dEYXRhID0gaW5wdXQ8YW55Pih1bmRlZmluZWQpO1xyXG5cdHNlYXJjaFBybSA9IG1vZGVsPFNlYXJjaD4oe30pO1xyXG5cdGRlbGV0ZUVtaXQgPSBvdXRwdXQ8bnVtYmVyW10+KCk7XHJcblx0YWRkRW1pdCA9IG91dHB1dCgpO1xyXG5cdGFkZFR5cGUgPSBpbnB1dDwnaGFuZGxlJyB8ICdzZWxlY3QnPigpO1xyXG5cdHNlbGVjdERhdGEgPSBpbnB1dDxhbnlbXT4oKTtcclxuXHRzaG93QWN0ID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XHJcblx0YWN0UG9zID0gaW5wdXQ8J3RvcCcgfCAnYm90dG9tJz4oJ2JvdHRvbScpO1xyXG5cdGF1dGhMZXZlbCA9IGlucHV0PG51bWJlcj4oLTEpXHJcblx0aHR0cCA9IGluamVjdChIdHRwQ2xpZW50KTtcclxuXHRyZW5kZXJlciA9IGluamVjdChSZW5kZXJlcjIpO1xyXG5cdG5nWm9uZSA9IGluamVjdChOZ1pvbmUpO1xyXG5cdGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XHJcblx0cmljaE11bHRNYXA6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcclxuXHJcblx0Y29uc3RydWN0b3IocHJpdmF0ZSBhY3Rpb246IEFjdGlvblNlcnZpY2UpIHtcclxuXHRcdGVmZmVjdChcclxuXHRcdFx0YXN5bmMgKCkgPT4ge1xyXG5cdFx0XHRcdHRoaXMuY29sdW1uRGVmcyA9IGF3YWl0IHRoaXMuc2V0UmljaFZhbHVlKCk7XHJcblx0XHRcdFx0dGhpcy5jb2x1bW5EZWZzID0gZ3JpZFV0aWxzLmhhbmRsZUkxOG5LZXkodGhpcy50b09wdGlvbnMoKS5jb2x1bW5EZWZzISwgdGhpcy5pMThuU2VydmljZSk7XHJcblx0XHRcdFx0dGhpcy5tYWluRmllbGQgPSB0aGlzLnRvT3B0aW9ucygpLm1haW5GaWVsZCE7XHJcblx0XHRcdFx0dGhpcy5tb2RlbE5hbWUgPSB0aGlzLnRvT3B0aW9ucygpLm1vZGVsTmFtZSE7XHJcblx0XHRcdFx0aWYgKCF0aGlzLnVwc2VydCgpPy5zdWJzZXJ0Py5maW5kKCh2OiBhbnkpID0+IHYuc3ViTW9kZWxOYW1lID09PSB0aGlzLm1vZGVsTmFtZSkpIHtcclxuXHRcdFx0XHRcdHRoaXMudXBzZXJ0KCk/LnN1YnNlcnQ/LnB1c2goe1xyXG5cdFx0XHRcdFx0XHRzdWJNb2RlbE5hbWU6IHRoaXMudG9PcHRpb25zKCkubW9kZWxOYW1lLFxyXG5cdFx0XHRcdFx0XHRmazogdGhpcy50b09wdGlvbnMoKS5mayxcclxuXHRcdFx0XHRcdFx0c3ViRGF0YTogW10sXHJcblx0XHRcdFx0XHRcdG1hcHRtcDogbmV3IE1hcCgpLFxyXG5cdFx0XHRcdFx0XHRsb2d0bXA6IG5ldyBNYXAoKSxcclxuXHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHR0aGlzLnN1YkluZGV4ID0gdGhpcy51cHNlcnQoKT8uc3Vic2VydD8uZmluZEluZGV4KCh2OiBhbnkpID0+IHYuc3ViTW9kZWxOYW1lID09PSB0aGlzLm1vZGVsTmFtZSk7XHJcblx0XHRcdH0sXHJcblx0XHRcdHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfSxcclxuXHRcdCk7XHJcblx0XHRlZmZlY3QoXHJcblx0XHRcdCgpID0+IHtcclxuXHRcdFx0XHR0aGlzLmFjdGlvbi5nZXRTZWFyY2godW50cmFja2VkKCgpID0+IHRoaXMudG9PcHRpb25zKCkubW9kZWxOYW1lKSk7XHJcblx0XHRcdFx0dGhpcy5nZXREYXRhKCk7XHJcblx0XHRcdH0sXHJcblx0XHRcdHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfSxcclxuXHRcdCk7XHJcblx0XHRlZmZlY3QoKCkgPT4ge1xyXG5cdFx0XHRpZiAodGhpcy5yb3dEYXRhKCkgPT09IHVuZGVmaW5lZCkgcmV0dXJuO1xyXG5cdFx0XHR1bnRyYWNrZWQoKCkgPT4ge1xyXG5cdFx0XHRcdHRoaXMudG9PcHRpb25zKCkuY2xpZW50RnVuYyA9ICgpID0+IG9mKHsgZGF0YTogdGhpcy5yb3dEYXRhKCksIHRvdGFsTnVtOiB0aGlzLnJvd0RhdGEoKT8ubGVuZ3RoIH0pO1xyXG5cdFx0XHRcdHRoaXMuZ2V0Q2xpZW50RGF0YSh1bmRlZmluZWQpO1xyXG5cdFx0XHR9KTtcclxuXHRcdH0pO1xyXG5cdFx0ZWZmZWN0KFxyXG5cdFx0XHQoKSA9PiB7XHJcblx0XHRcdFx0aWYgKHRoaXMuc2VsZWN0RGF0YSgpICYmIHRoaXMuc2VsZWN0RGF0YSgpIS5sZW5ndGggPiAwICYmIHRoaXMuZ3JpZCkge1xyXG5cdFx0XHRcdFx0dGhpcy5oYW5kbGVBZGRlZFJvd3ModGhpcy5zZWxlY3REYXRhKCkhKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHRcdHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfSxcclxuXHRcdCk7XHJcblx0XHRlZmZlY3QoXHJcblx0XHRcdCgpID0+IHtcclxuXHRcdFx0XHR0aGlzLnRvT3B0aW9ucygpLnByZVNlYXJjaCAmJlxyXG5cdFx0XHRcdFx0dGhpcy5hY3Rpb24uc2V0U2VhcmNoKHsgY29sdW1uRmlsdGVyczogdGhpcy50b09wdGlvbnMoKS5wcmVTZWFyY2ghLmNvbHVtbkZpbHRlcnMgfSwgdGhpcy50b09wdGlvbnMoKS5tb2RlbE5hbWUpO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHR7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH0sXHJcblx0XHQpO1xyXG5cdFx0dGhpcy5lZGl0aW5nRml4KCk7XHJcblx0fVxyXG5cclxuXHRuZ09uSW5pdCgpOiB2b2lkIHtcclxuXHRcdHRoaXMuaTE4blNlcnZpY2UuY2hhbmdlLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcblx0XHRcdHRoaXMuZ3JpZCAmJiB0aGlzLmdyaWQuYXBpLmRlc3Ryb3koKTtcclxuXHRcdFx0dGhpcy5pbml0R3JpZCA9IGZhbHNlO1xyXG5cdFx0XHR0aGlzLmxvY2FsZVRleHQgPSBncmlkVXRpbHMuZ2V0TG9jYWxUZXh0KHJlcyk7XHJcblx0XHRcdHRoaXMuY29sdW1uRGVmcyA9IGdyaWRVdGlscy5oYW5kbGVJMThuS2V5KHRoaXMudG9PcHRpb25zKCkuY29sdW1uRGVmcyEsIHRoaXMuaTE4blNlcnZpY2UpO1xyXG5cdFx0XHRzZXRUaW1lb3V0KCgpID0+IHtcclxuXHRcdFx0XHR0aGlzLmFjdGlvbi5zZXRTZWxlY3RlZFJvd3MoW10pO1xyXG5cdFx0XHRcdHRoaXMuaW5pdEdyaWQgPSB0cnVlO1xyXG5cdFx0XHR9LCAxMDApO1xyXG5cdFx0fSk7XHJcblx0XHR0aGlzLmxvY2FsZVRleHQgPSBncmlkVXRpbHMuZ2V0TG9jYWxUZXh0KHRoaXMuaTE4blNlcnZpY2UuY3VycmVudExhbmcpO1xyXG5cdH1cclxuXHJcblx0bmdBZnRlclZpZXdJbml0KCkge1xyXG5cdFx0dGhpcy5hanVzdFNjcm9sbEhlaWdodCgpO1xyXG5cdH1cclxuXHJcblx0Z2V0R3JpZCgpOiBBZ0dyaWRBbmd1bGFyIHtcclxuXHRcdHJldHVybiB0aGlzLmdyaWQ7XHJcblx0fVxyXG5cclxuXHRvbkdyaWRSZWFkeShlOiBhbnkpIHtcclxuXHRcdHRoaXMuYWN0aW9uLnNldFNlbGVjdGVkUm93cyhbXSk7XHJcblx0XHR0aGlzLmdldERhdGEoKTtcclxuXHR9XHJcblxyXG5cdG9uU2VsZWN0aW9uQ2hhbmdlZChldmVudDogYW55KTogYW55IHtcclxuXHRcdHRoaXMuYWN0aW9uLnNldFNlbGVjdGVkUm93cyhncmlkVXRpbHMuY2FsY1Jvd0lkcyhldmVudC5hcGksIHRoaXMudG9PcHRpb25zKCk/LnJvd01vZGVsVHlwZSA9PSAnc2VydmVyU2lkZScpKTtcclxuXHR9XHJcblxyXG5cdG9uUm93R3JvdXBPcGVuZWQoKSB7XHJcblx0XHR0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XHJcblx0XHRcdHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XHJcblx0XHRcdFx0dGhpcy5hanVzdEdyaWRIZWlnaHQoKTtcclxuXHRcdFx0fSk7XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdGFzeW5jIHNldFJpY2hWYWx1ZSgpIHtcclxuXHRcdGxldCBjb2wgPSB0aGlzLnRvT3B0aW9ucygpLmNvbHVtbkRlZnMhIHx8IHt9O1xyXG5cdFx0dHJ5IHtcclxuXHRcdFx0Y29uc3QgcHJvY2Vzc2VkQ29scyA9IGF3YWl0IFByb21pc2UuYWxsKFxyXG5cdFx0XHRcdGNvbC5tYXAoYXN5bmMgKGl0ZW06IGFueSkgPT4ge1xyXG5cdFx0XHRcdFx0aWYgKFxyXG5cdFx0XHRcdFx0XHRpdGVtLmhhc093blByb3BlcnR5KCdmaWVsZElkJykgJiZcclxuXHRcdFx0XHRcdFx0KGl0ZW0uY2VsbEVkaXRvciA9PSAnYWdSaWNoU2VsZWN0Q2VsbEVkaXRvcicgfHwgaXRlbS5jZWxsRWRpdG9yID09ICdhZ1NlbGVjdENlbGxFZGl0b3InKSAmJlxyXG5cdFx0XHRcdFx0XHRpdGVtLmVkaXRhYmxlXHJcblx0XHRcdFx0XHQpIHtcclxuXHRcdFx0XHRcdFx0bGV0IHZhbHVlczogYW55ID0gW107XHJcblx0XHRcdFx0XHRcdGlmICghaXRlbS5jZWxsRWRpdG9yUGFyYW1zIHx8ICFpdGVtLmNlbGxFZGl0b3JQYXJhbXMuaGFzT3duUHJvcGVydHkoJ3ZhbHVlcycpKSB7XHJcblx0XHRcdFx0XHRcdFx0aWYgKGl0ZW0uaGFzT3duUHJvcGVydHkoJ3NlbGVjdERhdGEnKSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0dmFsdWVzID0gYXdhaXQgaXRlbS5zZWxlY3REYXRhKCk7XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdGl0ZW0uY2VsbEVkaXRvclBhcmFtcyA9IHtcclxuXHRcdFx0XHRcdFx0XHRcdC4uLml0ZW0uY2VsbEVkaXRvclBhcmFtcyxcclxuXHRcdFx0XHRcdFx0XHRcdHZhbHVlTGlzdE1heEhlaWdodDogMjAwLFxyXG5cdFx0XHRcdFx0XHRcdH07XHJcblx0XHRcdFx0XHRcdH0gZWxzZSBpZiAoaXRlbS5jZWxsRWRpdG9yUGFyYW1zICYmIGl0ZW0uY2VsbEVkaXRvclBhcmFtcy5oYXNPd25Qcm9wZXJ0eSgndmFsdWVzJykpIHtcclxuXHRcdFx0XHRcdFx0XHR2YWx1ZXMgPSBpdGVtLmNlbGxFZGl0b3JQYXJhbXMudmFsdWVzO1xyXG5cdFx0XHRcdFx0XHRcdGl0ZW0uY2VsbEVkaXRvclBhcmFtcy52YWx1ZUxpc3RNYXhIZWlnaHQgPSAyMDA7XHJcblx0XHRcdFx0XHRcdFx0aXRlbS5jZWxsRWRpdG9yUGFyYW1zLnN1cHByZXNzTXVsdGlTZWxlY3RQaWxsUmVuZGVyZXIgPSB0cnVlO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdGxldCBpc1N0cmluZyA9IHZhbHVlcy5ldmVyeSgoaXRlbTogYW55KSA9PiB0eXBlb2YgaXRlbSA9PT0gJ3N0cmluZycpO1xyXG5cdFx0XHRcdFx0XHRpZiAoIWlzU3RyaW5nKSB7XHJcblx0XHRcdFx0XHRcdFx0aXRlbS5jZWxsRWRpdG9yUGFyYW1zLnJhd09wdGlvbnMgPSB2YWx1ZXM7XHJcblx0XHRcdFx0XHRcdFx0aXRlbS5jZWxsRWRpdG9yUGFyYW1zLnZhbHVlcyA9IHZhbHVlcy5tYXAoKGl0ZW06IGFueSkgPT4gaXRlbS52YWx1ZSk7XHJcblx0XHRcdFx0XHRcdFx0aXRlbS52YWx1ZUZvcm1hdHRlciA9IChwYXJhbXM6IGFueSkgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdFx0Y29uc3Qgb3B0aW9ucyA9IHBhcmFtcy5jb2xEZWYuY2VsbEVkaXRvclBhcmFtcy5yYXdPcHRpb25zIGFzIGFueVtdO1xyXG5cdFx0XHRcdFx0XHRcdFx0aWYgKHR5cGVvZiBwYXJhbXMudmFsdWUgPT09ICdudW1iZXInKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdGNvbnN0IG9wdGlvbnMgPSBwYXJhbXMuY29sRGVmLmNlbGxFZGl0b3JQYXJhbXMucmF3T3B0aW9ucyBhcyBhbnlbXTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0Y29uc3Qgb3B0aW9uID0gb3B0aW9ucy5maW5kKChvcHQpID0+IG9wdC52YWx1ZSA9PSBwYXJhbXMudmFsdWUpO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRyZXR1cm4gb3B0aW9uID8gb3B0aW9uLmxhYmVsIDogcGFyYW1zLnZhbHVlO1xyXG5cdFx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0bGV0IHZhbHVlczogYW55ID0gW107XHJcblx0XHRcdFx0XHRcdFx0XHRcdGlmICh0eXBlb2YgcGFyYW1zLnZhbHVlID09PSAnc3RyaW5nJykge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGlmIChwYXJhbXMudmFsdWUubGVuZ3RoID4gMCkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0dmFsdWVzID0gcGFyYW1zLnZhbHVlLnNwbGl0KCcsJykubWFwKCh2OiBhbnkpID0+ICghaXNOYU4odikgPyBOdW1iZXIodikgOiB2KSkgfHwgW107XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHZhbHVlcyA9IHBhcmFtcy52YWx1ZSB8fCBbXTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRjb25zdCBvcHRpb24gPSBvcHRpb25zLmZpbHRlcigob3B0KSA9PiB2YWx1ZXMuaW5jbHVkZXMob3B0LnZhbHVlKSkgfHwgW107XHJcblx0XHRcdFx0XHRcdFx0XHRcdHJldHVybiBvcHRpb24gPyBvcHRpb24ubWFwKCh2KSA9PiB2LmxhYmVsKS5qb2luKCcsJykgOiBwYXJhbXMudmFsdWU7XHJcblx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0fTtcclxuXHRcdFx0XHRcdFx0XHRpdGVtLnZhbHVlUGFyc2VyID0gKHBhcmFtczogYW55KSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0XHRjb25zdCBvcHRpb25zID0gcGFyYW1zLmNvbERlZi5jZWxsRWRpdG9yUGFyYW1zLnJhd09wdGlvbnMgYXMgYW55W107XHJcblx0XHRcdFx0XHRcdFx0XHRjb25zdCBvcHRpb24gPSBvcHRpb25zLmZpbmQoKG9wdCkgPT4gb3B0LmxhYmVsID09PSBwYXJhbXMubmV3VmFsdWUpO1xyXG5cdFx0XHRcdFx0XHRcdFx0cmV0dXJuIG9wdGlvbiA/IG9wdGlvbi52YWx1ZSA6IHBhcmFtcy5uZXdWYWx1ZTtcclxuXHRcdFx0XHRcdFx0XHR9O1xyXG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdGl0ZW0uY2VsbEVkaXRvclBhcmFtcy52YWx1ZXMgPSB2YWx1ZXM7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdHJldHVybiBpdGVtO1xyXG5cdFx0XHRcdH0pLFxyXG5cdFx0XHQpO1xyXG5cdFx0XHRyZXR1cm4gcHJvY2Vzc2VkQ29scztcclxuXHRcdH0gY2F0Y2ggKGVycm9yKSB7XHJcblx0XHRcdGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHByb2Nlc3NpbmcgY29sdW1uczonLCBlcnJvcik7XHJcblx0XHRcdHRocm93IGVycm9yO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Z2V0RW51bXMoaWQ6IG51bWJlcikge1xyXG5cdFx0cmV0dXJuIGxhc3RWYWx1ZUZyb20odGhpcy5odHRwLnBvc3QoJ2dldCcsIHsgaWQ6IE51bWJlcihpZCksIG1vZGVsTmFtZTogJ01vZGVsRmllbGQnLCBwcmVsb2FkczogWydFbnVtJ10gfSkpO1xyXG5cdH1cclxuXHJcblx0Z2V0RGF0YSgpIHtcclxuXHRcdHVudHJhY2tlZCgoKSA9PiB7XHJcblx0XHRcdGlmICghdGhpcy5zZWFyY2hQcm0oKS5tb2RlbE5hbWUpIHJldHVybjtcclxuXHRcdFx0Y29uc3Qgc2VhcmNoID0gdGhpcy5hY3Rpb24uZ2V0U2VhcmNoKHRoaXMudG9PcHRpb25zKCkubW9kZWxOYW1lKTtcclxuXHRcdFx0dGhpcy50b09wdGlvbnMoKT8ucm93TW9kZWxUeXBlID09ICdzZXJ2ZXJTaWRlJyA/IHRoaXMuZ2V0U2VydmVyRGF0YShzZWFyY2gpIDogdGhpcy5nZXRDbGllbnREYXRhKHNlYXJjaCk7XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdGdldFNlcnZlckRhdGEoc2VhcmNoPzogU2VhcmNoKSB7XHJcblx0XHR0aGlzLmdyaWQ/LmFwaS5zZXRHcmlkT3B0aW9uKCdzZXJ2ZXJTaWRlRGF0YXNvdXJjZScsIHtcclxuXHRcdFx0Z2V0Um93czogKHBhcmFtcykgPT4ge1xyXG5cdFx0XHRcdHRoaXMuc2VhcmNoUHJtKCkub2Zmc2V0ID0gcGFyYW1zLnJlcXVlc3Quc3RhcnRSb3c7XHJcblx0XHRcdFx0dGhpcy5zZWFyY2hQcm0oKS5jb2x1bW5GaWx0ZXJzID0gc2VhcmNoPy5jb2x1bW5GaWx0ZXJzO1xyXG5cdFx0XHRcdHRoaXMuaGFuZGxlU2VydmVyVHJlZShwYXJhbXMpO1xyXG5cdFx0XHRcdHRoaXMudG9PcHRpb25zKClcclxuXHRcdFx0XHRcdC5zZXJ2ZXJGdW5jPy4odGhpcy5zZWFyY2hQcm0oKSlcclxuXHRcdFx0XHRcdC5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcblx0XHRcdFx0XHRcdHRoaXMuYWN0aW9uLnNldFBhZ2Uoe1xyXG5cdFx0XHRcdFx0XHRcdHN0YXJ0Um93OiBwYXJhbXMucmVxdWVzdC5zdGFydFJvdyxcclxuXHRcdFx0XHRcdFx0XHRlbmRSb3c6IHBhcmFtcy5yZXF1ZXN0LmVuZFJvdyEgPCByZXMudG90YWxOdW0gPyBwYXJhbXMucmVxdWVzdC5lbmRSb3cgOiByZXMudG90YWxOdW0sXHJcblx0XHRcdFx0XHRcdFx0dG90YWw6IHJlcy50b3RhbE51bSxcclxuXHRcdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0XHRcdHBhcmFtcy5zdWNjZXNzKHsgcm93RGF0YTogcmVzLmRhdGEgfSk7XHJcblx0XHRcdFx0XHRcdHRoaXMuYWp1c3RHcmlkSGVpZ2h0KCk7XHJcblx0XHRcdFx0XHR9KTtcclxuXHRcdFx0fSxcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0aGFuZGxlU2VydmVyVHJlZShwYXJhbXM6IGFueSkge1xyXG5cdFx0aWYgKCF0aGlzLnRvT3B0aW9ucygpLnRyZWVEYXRhKSByZXR1cm47XHJcblx0XHRpZiAocGFyYW1zLnJlcXVlc3QuZ3JvdXBLZXlzLmxlbmd0aCA+IDApIHtcclxuXHRcdFx0dGhpcy5zZWFyY2hQcm0oKS5jb2x1bW5GaWx0ZXJzID0gW1xyXG5cdFx0XHRcdHsgY29sdW1uRmllbGQ6ICdwaWQnLCB0eXBlOiAnZXEnLCBmaXRlcjogcGFyYW1zLnJlcXVlc3QuZ3JvdXBLZXlzW3BhcmFtcy5yZXF1ZXN0Lmdyb3VwS2V5cy5sZW5ndGggLSAxXSB9LFxyXG5cdFx0XHRdO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0aWYgKCF0aGlzLnNlYXJjaFBybSgpLmNvbHVtbkZpbHRlcnMpIHtcclxuXHRcdFx0XHR0aGlzLnNlYXJjaFBybSgpLmNvbHVtbkZpbHRlcnMgPSBbeyBjb2x1bW5GaWVsZDogJ3BpZCcsIHR5cGU6ICdlcScsIGZpdGVyOiAwIH1dO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHR0aGlzLnNlYXJjaFBybSgpLnByZWxvYWRzID0gWydjaGlsZHJlbiddO1xyXG5cdH1cclxuXHJcblx0Z2V0Q2xpZW50RGF0YShzZWFyY2g/OiBTZWFyY2gpIHtcclxuXHRcdHRoaXMuc2VhcmNoUHJtKCkubGltaXQgPSBDTElFTlRMSU1JVDtcclxuXHRcdHRoaXMuc2VhcmNoUHJtKCkuY29sdW1uRmlsdGVycyA9IHNlYXJjaD8uY29sdW1uRmlsdGVycztcclxuXHRcdHRoaXMuaGFuZGxlQ2xpZW50VHJlZSgpO1xyXG5cdFx0dGhpcy50b09wdGlvbnMoKVxyXG5cdFx0XHQuY2xpZW50RnVuYz8uKHRoaXMuc2VhcmNoUHJtKCkpXHJcblx0XHRcdC5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcblx0XHRcdFx0dGhpcy5hY3Rpb24uc2V0UGFnZSh7XHJcblx0XHRcdFx0XHR0b3RhbDogcmVzLnRvdGFsTnVtLFxyXG5cdFx0XHRcdFx0bW9kZTogJ2NsaWVudCcsXHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdFx0dGhpcy5ncmlkPy5hcGkuc2V0R3JpZE9wdGlvbigncm93RGF0YScsIHJlcy5kYXRhKTtcclxuXHRcdFx0XHR0aGlzLmFqdXN0R3JpZEhlaWdodCgpO1xyXG5cdFx0XHR9KTtcclxuXHR9XHJcblxyXG5cdGhhbmRsZUNsaWVudFRyZWUoKSB7XHJcblx0XHRpZiAoIXRoaXMudG9PcHRpb25zKCkudHJlZURhdGEpIHJldHVybjtcclxuXHRcdGNvbnN0IHByZWxvYWRzOiBhbnlbXSA9IFtdO1xyXG5cdFx0Zm9yIChsZXQgaSA9IDE7IGkgPCB0aGlzLnRvT3B0aW9ucygpLnRyZWVMZXZlbCE7IGkrKykge1xyXG5cdFx0XHRwcmVsb2Fkcy5wdXNoKEFycmF5KGkpLmZpbGwoJ2NoaWxkcmVuJykuam9pbignLicpKTtcclxuXHRcdH1cclxuXHRcdHRoaXMuc2VhcmNoUHJtKCkucHJlbG9hZHMgPSBwcmVsb2FkcztcclxuXHR9XHJcblxyXG5cdGNlbGxWYWx1ZUNoYW5nZWQoZTogQ2VsbFZhbHVlQ2hhbmdlZEV2ZW50KSB7XHJcblx0XHRsZXQge1xyXG5cdFx0XHRjb2xEZWY6IHsgZmllbGQsIGhlYWRlck5hbWUsIGNlbGxFZGl0b3IsIGNlbGxFZGl0b3JQYXJhbXMgfSxcclxuXHRcdFx0bmV3VmFsdWUsXHJcblx0XHRcdG9sZFZhbHVlLFxyXG5cdFx0XHRyb3dJbmRleCxcclxuXHRcdFx0ZGF0YTogeyBpZCB9LFxyXG5cdFx0fSA9IGU7XHJcblx0XHRpZiAoY2VsbEVkaXRvciA9PSAnYWdSaWNoU2VsZWN0Q2VsbEVkaXRvcicgJiYgY2VsbEVkaXRvclBhcmFtcyAmJiBjZWxsRWRpdG9yUGFyYW1zLm11bHRpU2VsZWN0KSB7XHJcblx0XHRcdG5ld1ZhbHVlID0gbmV3VmFsdWUgJiYgbmV3VmFsdWUubGVuZ3RoID4gMCA/IG5ld1ZhbHVlLmpvaW4oJywnKSA6ICcnO1xyXG5cdFx0XHR0aGlzLnJpY2hNdWx0TWFwW2ZpZWxkIV0gPSBuZXdWYWx1ZTtcclxuXHRcdH1cclxuXHRcdGlmICghaWQpIHtcclxuXHRcdFx0dGhpcy51cHNlcnQoKT8uc3Vic2VydFt0aGlzLnN1YkluZGV4XVsnbWFwdG1wJ10uc2V0KHJvd0luZGV4ISwgT2JqZWN0LmFzc2lnbihlLmRhdGEsIHRoaXMucmljaE11bHRNYXApKTtcclxuXHRcdFx0aWYgKGZpZWxkID09IHRoaXMubWFpbkZpZWxkKSB7XHJcblx0XHRcdFx0dGhpcy51cHNlcnQoKT8uc3Vic2VydFt0aGlzLnN1YkluZGV4XVsnbG9ndG1wJ10uc2V0KHJvd0luZGV4ISArIGZpZWxkISwgeyBuZXdWYWx1ZTogbmV3VmFsdWUsIGlkOiAwLCBsYWJlbDogaGVhZGVyTmFtZSB9KTtcclxuXHRcdFx0fVxyXG5cdFx0fSBlbHNlIGlmIChpZCkge1xyXG5cdFx0XHRjb25zdCBmaWVsZHN0ciA9IGAke2ZpZWxkfWA7XHJcblx0XHRcdGxldCBvOiBhbnk7XHJcblx0XHRcdGlmICh0aGlzLnVwc2VydCgpPy5zdWJzZXJ0W3RoaXMuc3ViSW5kZXhdWydtYXB0bXAnXS5oYXMocm93SW5kZXghKSkge1xyXG5cdFx0XHRcdG8gPSB0aGlzLnVwc2VydCgpPy5zdWJzZXJ0W3RoaXMuc3ViSW5kZXhdWydtYXB0bXAnXS5nZXQocm93SW5kZXghKTtcclxuXHRcdFx0XHRPYmplY3QuYXNzaWduKG8sIHsgW2ZpZWxkc3RyXTogbmV3VmFsdWUgfSk7XHJcblx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0byA9IHsgaWQ6IGlkLCBbZmllbGRzdHJdOiBuZXdWYWx1ZSB9O1xyXG5cdFx0XHR9XHJcblx0XHRcdHRoaXMudXBzZXJ0KCk/LnN1YnNlcnRbdGhpcy5zdWJJbmRleF1bJ21hcHRtcCddLnNldChyb3dJbmRleCEsIG8pO1xyXG5cdFx0XHRsZXQgb2xkID0gdGhpcy51cHNlcnQoKT8uc3Vic2VydFt0aGlzLnN1YkluZGV4XVsnbG9ndG1wJ10uZ2V0KHJvd0luZGV4ISArIGZpZWxkISk7XHJcblx0XHRcdGlmIChvbGQpIHtcclxuXHRcdFx0XHR0aGlzLnVwc2VydCgpPy5zdWJzZXJ0W3RoaXMuc3ViSW5kZXhdWydsb2d0bXAnXS5zZXQocm93SW5kZXghICsgZmllbGQhLCB7XHJcblx0XHRcdFx0XHRuZXdWYWx1ZTogbmV3VmFsdWUsXHJcblx0XHRcdFx0XHRvbGRWYWx1ZTogb2xkLm9sZFZhbHVlLFxyXG5cdFx0XHRcdFx0aWQ6IGlkLFxyXG5cdFx0XHRcdFx0bGFiZWw6IGhlYWRlck5hbWUsXHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0dGhpcy51cHNlcnQoKT8uc3Vic2VydFt0aGlzLnN1YkluZGV4XVsnbG9ndG1wJ10uc2V0KHJvd0luZGV4ISArIGZpZWxkISwge1xyXG5cdFx0XHRcdFx0bmV3VmFsdWU6IG5ld1ZhbHVlLFxyXG5cdFx0XHRcdFx0b2xkVmFsdWU6IG9sZFZhbHVlLFxyXG5cdFx0XHRcdFx0aWQ6IGlkLFxyXG5cdFx0XHRcdFx0bGFiZWw6IGhlYWRlck5hbWUsXHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdGxldCBkdDogYW55W10gPSBbXTtcclxuXHRcdHRoaXMudXBzZXJ0KCk/LnN1YnNlcnRbdGhpcy5zdWJJbmRleF1bJ21hcHRtcCddLmZvckVhY2goKHZhbHVlOiBhbnksIGtleTogYW55KSA9PiB7XHJcblx0XHRcdGR0LnB1c2godmFsdWUpO1xyXG5cdFx0fSk7XHJcblx0XHR0aGlzLnVwc2VydCgpWydzdWJzZXJ0J11bdGhpcy5zdWJJbmRleF1bJ3N1YkRhdGEnXSA9IGR0O1xyXG5cdH1cclxuXHJcblx0aGFuZGxlQWRkZWRSb3dzKGFkZGVkUm93czogYW55W10pIHtcclxuXHRcdGxldCBoZWFkZXJOYW1lID0gJyc7XHJcblx0XHR0aGlzLnRvT3B0aW9ucygpLmNvbHVtbkRlZnM/LmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xyXG5cdFx0XHRpZiAoaXRlbS5maWVsZCA9PSB0aGlzLm1haW5GaWVsZCkge1xyXG5cdFx0XHRcdGhlYWRlck5hbWUgPSBpdGVtLmhlYWRlck5hbWU7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cdFx0Y29uc3QgcmVzdWx0ID0gdGhpcy5ncmlkLmFwaS5hcHBseVRyYW5zYWN0aW9uKHsgYWRkOiBhZGRlZFJvd3MgfSk7XHJcblx0XHRyZXN1bHQhLmFkZC5mb3JFYWNoKChub2RlOiBhbnkpID0+IHtcclxuXHRcdFx0Y29uc3Qgcm93SW5kZXggPSB0aGlzLmdyaWQuYXBpLmdldFJvd05vZGUobm9kZS5pZCk/LnJvd0luZGV4O1xyXG5cdFx0XHR0aGlzLnVwc2VydCgpPy5zdWJzZXJ0W3RoaXMuc3ViSW5kZXhdWydtYXB0bXAnXS5zZXQocm93SW5kZXghLCBub2RlLmRhdGEpO1xyXG5cdFx0XHR0aGlzLnVwc2VydCgpPy5zdWJzZXJ0W3RoaXMuc3ViSW5kZXhdWydsb2d0bXAnXS5zZXQocm93SW5kZXghICsgdGhpcy5tYWluRmllbGQhLCB7XHJcblx0XHRcdFx0bmV3VmFsdWU6IG5vZGUuZGF0YVt0aGlzLm1haW5GaWVsZF0sXHJcblx0XHRcdFx0aWQ6IDAsXHJcblx0XHRcdFx0bGFiZWw6IGhlYWRlck5hbWUsXHJcblx0XHRcdH0pO1xyXG5cdFx0fSk7XHJcblx0XHRsZXQgZHQ6IGFueVtdID0gW107XHJcblx0XHR0aGlzLnVwc2VydCgpPy5zdWJzZXJ0W3RoaXMuc3ViSW5kZXhdWydtYXB0bXAnXS5mb3JFYWNoKCh2YWx1ZTogYW55LCBrZXk6IGFueSkgPT4ge1xyXG5cdFx0XHRkdC5wdXNoKHZhbHVlKTtcclxuXHRcdH0pO1xyXG5cdFx0dGhpcy51cHNlcnQoKVsnc3Vic2VydCddW3RoaXMuc3ViSW5kZXhdWydzdWJEYXRhJ10gPSBkdDtcclxuXHRcdHRoaXMuYWp1c3RHcmlkSGVpZ2h0KCk7XHJcblx0fVxyXG5cclxuXHRoYW5kbGVEZWxldGVkUm93cyhkZWxldGVkUm93czogYW55W10pIHtcclxuXHRcdGNvbnN0IHJlbW92ZUluZGV4ZXMgPSB0aGlzLmdyaWQuYXBpLmdldFNlbGVjdGVkTm9kZXMoKS5tYXAoKG5vZGUpID0+IG5vZGUucm93SW5kZXgpO1xyXG5cdFx0cmVtb3ZlSW5kZXhlcy5mb3JFYWNoKChyb3dJbmRleDogYW55KSA9PiB7XHJcblx0XHRcdHRoaXMudXBzZXJ0KCk/LnN1YnNlcnRbdGhpcy5zdWJJbmRleF1bJ21hcHRtcCddLmRlbGV0ZShyb3dJbmRleCEpO1xyXG5cdFx0XHR0aGlzLnVwc2VydCgpPy5zdWJzZXJ0W3RoaXMuc3ViSW5kZXhdWydsb2d0bXAnXS5kZWxldGUocm93SW5kZXghICsgdGhpcy5tYWluRmllbGQhKTtcclxuXHRcdH0pO1xyXG5cdFx0bGV0IGR0OiBhbnlbXSA9IFtdO1xyXG5cdFx0dGhpcy51cHNlcnQoKT8uc3Vic2VydFt0aGlzLnN1YkluZGV4XVsnbWFwdG1wJ10uZm9yRWFjaCgodmFsdWU6IGFueSwga2V5OiBhbnkpID0+IHtcclxuXHRcdFx0ZHQucHVzaCh2YWx1ZSk7XHJcblx0XHR9KTtcclxuXHRcdHRoaXMudXBzZXJ0KClbJ3N1YnNlcnQnXVt0aGlzLnN1YkluZGV4XVsnc3ViRGF0YSddID0gZHQ7XHJcblx0XHR0aGlzLmdyaWQuYXBpLmFwcGx5VHJhbnNhY3Rpb24oeyByZW1vdmU6IGRlbGV0ZWRSb3dzIH0pO1xyXG5cdFx0dGhpcy5hanVzdEdyaWRIZWlnaHQoKTtcclxuXHR9XHJcblxyXG5cdGFkZFJvdygpIHtcclxuXHRcdGlmICh0aGlzLmFkZFR5cGUoKSA9PSAnaGFuZGxlJykge1xyXG5cdFx0XHRsZXQgaXRlbSA9IHR5cGVvZiB0aGlzLnRvT3B0aW9ucygpLmFkZERhdGFDYiA9PSAnZnVuY3Rpb24nID8gdGhpcy50b09wdGlvbnMoKS5hZGREYXRhQ2IoKSA6IHt9XHJcblx0XHRcdHRoaXMuZ3JpZC5hcGkuYXBwbHlUcmFuc2FjdGlvbih7IGFkZDogW2l0ZW1dIH0pO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0dGhpcy5hZGRFbWl0LmVtaXQoKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdGRlbFJvd3MoKSB7XHJcblx0XHRjb25zdCBzZWxlY3RlZE5vZGVzID0gdGhpcy5ncmlkLmFwaS5nZXRTZWxlY3RlZE5vZGVzKCk7XHJcblx0XHRjb25zdCBzZWxlY3RlZERhdGEgPSBzZWxlY3RlZE5vZGVzLm1hcCgobm9kZSkgPT4gbm9kZS5kYXRhKSB8fCBbXTtcclxuXHRcdGxldCBpZHMgPSBzZWxlY3RlZERhdGEubWFwKChkYXRhKSA9PiBkYXRhLmlkKS5maWx0ZXIoKHYpID0+IHYpIHx8IFtdO1xyXG5cdFx0aWYgKGlkcy5sZW5ndGggPiAwKSB7XHJcblx0XHRcdHRoaXMuZGVsZXRlRW1pdC5lbWl0KGlkcyk7XHJcblx0XHR9IGVsc2UgaWYgKHNlbGVjdGVkRGF0YS5sZW5ndGggPiAwICYmIGlkcy5sZW5ndGggPT0gMCkge1xyXG5cdFx0XHR0aGlzLmhhbmRsZURlbGV0ZWRSb3dzKHNlbGVjdGVkRGF0YSk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRhanVzdFNjcm9sbEhlaWdodCgpIHtcclxuXHRcdHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5ncmlkUmVmLm5hdGl2ZUVsZW1lbnQsICd3aWR0aCcsICcxMDAlJyk7XHJcblx0XHRpZiAodGhpcy50b09wdGlvbnMoKS5zY3JvbGxIZWlnaHQpIHtcclxuXHRcdFx0dGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmNvbnRhaW5lclJlZi5uYXRpdmVFbGVtZW50LCAnbWF4LWhlaWdodCcsIHRoaXMudG9PcHRpb25zKCkuc2Nyb2xsSGVpZ2h0KTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdGFqdXN0R3JpZEhlaWdodCgpIHtcclxuXHRcdGNvbnN0IGhlaWdodCA9IGdyaWRVdGlscy5jYWxjR3JpZEhlaWdodCh0aGlzLmdyaWQuYXBpLmdldERpc3BsYXllZFJvd0NvdW50KCkpO1xyXG5cdFx0dGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcclxuXHRcdFx0dGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmdyaWRSZWYubmF0aXZlRWxlbWVudCwgJ2hlaWdodCcsIGAke2hlaWdodH1weGApO1xyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRlZGl0aW5nRml4KCkge1xyXG5cdFx0ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoZXZlbnQ6IGFueSkgPT4ge1xyXG5cdFx0XHRpZiAoIXRoaXMuZ3JpZD8uYXBpPy5nZXRFZGl0aW5nQ2VsbHMoKT8ubGVuZ3RoKSB7XHJcblx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHR9XHJcblx0XHRcdGNvbnN0IGdyaWRFbGVtZW50OiBhbnkgPSB0aGlzLmdyaWRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuYWctcm9vdC13cmFwcGVyJyk7XHJcblx0XHRcdGlmICghZ3JpZEVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSkge1xyXG5cdFx0XHRcdHRoaXMuZ3JpZC5hcGkuc3RvcEVkaXRpbmcoKTtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblx0fVxyXG59IiwiQGlmIChpbml0R3JpZCkge1xyXG5cdDxkaXZcclxuXHRcdCNncmlkQ29udGFpbmVyXHJcblx0XHRbY2xhc3NdPVwiJ2dyaWQtY29udGFpbmVyIHctZnVsbCBmbGV4IGp1c3RpZnktYmV0d2VlbiAnICsgKGFjdFBvcygpID09ICdib3R0b20nID8gJ2ZsZXgtY29sJyA6ICdmbGV4LWNvbC1yZXZlcnNlJylcIj5cclxuXHRcdDxhZy1ncmlkLWFuZ3VsYXJcclxuXHRcdFx0W3RoZW1lXT1cIm15VGhlbWUoKVwiXHJcblx0XHRcdFtjb2x1bW5EZWZzXT1cImNvbHVtbkRlZnNcIlxyXG5cdFx0XHRbZ3JpZE9wdGlvbnNdPVwidG9PcHRpb25zKClcIlxyXG5cdFx0XHRbbG9jYWxlVGV4dF09XCJsb2NhbGVUZXh0XCJcclxuXHRcdFx0W2NvbXBvbmVudHNdPVwiY29tcG9uZW50c1wiXHJcblx0XHRcdFt1bmRvUmVkb0NlbGxFZGl0aW5nXT1cInRvT3B0aW9ucygpLnVuZG9SZWRvQ2VsbEVkaXRpbmdcIlxyXG5cdFx0XHRbdW5kb1JlZG9DZWxsRWRpdGluZ0xpbWl0XT1cInRvT3B0aW9ucygpLnVuZG9SZWRvQ2VsbEVkaXRpbmdMaW1pdFwiXHJcblx0XHRcdChjZWxsVmFsdWVDaGFuZ2VkKT1cImNlbGxWYWx1ZUNoYW5nZWQoJGV2ZW50KVwiXHJcblx0XHRcdChzZWxlY3Rpb25DaGFuZ2VkKT1cIm9uU2VsZWN0aW9uQ2hhbmdlZCgkZXZlbnQpXCJcclxuXHRcdFx0KHJvd0dyb3VwT3BlbmVkKT1cIm9uUm93R3JvdXBPcGVuZWQoKVwiXHJcblx0XHRcdChncmlkUmVhZHkpPVwib25HcmlkUmVhZHkoJGV2ZW50KVwiIC8+XHJcblx0XHRAaWYgKHNob3dBY3QoKSAmJiBhdXRoTGV2ZWwoKSA+PSAzKSB7XHJcblx0XHRcdDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktZW5kIHB5LVs1cHhdIHByLVs4cHhdXCI+XHJcblx0XHRcdFx0PHAtYnV0dG9uXHJcblx0XHRcdFx0XHRpY29uPVwicGkgcGktcGx1c1wiXHJcblx0XHRcdFx0XHRbdGV4dF09XCJ0cnVlXCJcclxuXHRcdFx0XHRcdHNldmVyaXR5PVwic3VjY2Vzc1wiXHJcblx0XHRcdFx0XHQob25DbGljayk9XCJhZGRSb3coKVwiIC8+XHJcblx0XHRcdFx0PHAtYnV0dG9uXHJcblx0XHRcdFx0XHRpY29uPVwicGkgcGktdHJhc2hcIlxyXG5cdFx0XHRcdFx0W3RleHRdPVwidHJ1ZVwiXHJcblx0XHRcdFx0XHRzZXZlcml0eT1cImRhbmdlclwiXHJcblx0XHRcdFx0XHQob25DbGljayk9XCJkZWxSb3dzKClcIiAvPlxyXG5cdFx0XHQ8L2Rpdj5cclxuXHRcdH1cclxuXHQ8L2Rpdj5cclxufVxyXG5cclxuIl19
|
|
427
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbW0tZWxlbWVudC11aS9zcmMvbGliL2dyaWQvZ3JpZC9ncmlkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ltbS1lbGVtZW50LXVpL3NyYy9saWIvZ3JpZC9ncmlkL2dyaWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBQyxNQUFNLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWpLLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUV2RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFekQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGFBQWEsRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sY0FBYyxDQUFDOzs7O0FBZXZELE1BQU0sYUFBYSxHQUFnQjtJQUNsQyxhQUFhLEVBQUU7UUFDZCxJQUFJLEVBQUUsQ0FBQztRQUNQLFFBQVEsRUFBRSxHQUFHO1FBQ2IsUUFBUSxFQUFFLEtBQUs7UUFDZixNQUFNLEVBQUUsS0FBSztLQUNi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LEdBQUcsSUFBSSxDQUFDLHdCQUF3QixJQUFJLENBQUMsQ0FBQztRQUM3RyxDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFRCxVQUFVO1FBQ1QsUUFBUSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQVUsRUFBRSxFQUFFO1lBQ2pELElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxlQUFlLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQztnQkFDaEQsT0FBTztZQUNSLENBQUM7WUFDRCxNQUFNLFdBQVcsR0FBUSxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsa0JBQWtCLENBQUMsQ0FBQztZQUN0RixJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztnQkFDekMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDN0IsQ0FBQztRQUNGLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQzsrR0FoYVcsYUFBYTttR0FBYixhQUFhLDIxQ0FDZCxhQUFhLDBFQUNiLGFBQWEsMkJBQVUsVUFBVSw2SEN0RDdDLHFyQ0FpQ0EsaU9EZVcsYUFBYSw4NFJBQUUsWUFBWTs7NEZBSXpCLGFBQWE7a0JBUHpCLFNBQVM7K0JBQ0MsYUFBYSxjQUNYLElBQUksV0FDUCxDQUFDLGFBQWEsRUFBRSxZQUFZLENBQUM7a0ZBS1osSUFBSTtzQkFBN0IsU0FBUzt1QkFBQyxhQUFhO2dCQUN3QixPQUFPO3NCQUF0RCxTQUFTO3VCQUFDLGFBQWEsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7Z0JBQ2xCLFlBQVk7c0JBQXZDLFNBQVM7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVmlld0NoaWxkLCBFbGVtZW50UmVmLCBpbnB1dCwgZWZmZWN0LCBpbmplY3QsIGNvbXB1dGVkLCB1bnRyYWNrZWQsIG1vZGVsLCBvdXRwdXQsTmdab25lLCBSZW5kZXJlcjIsIENoYW5nZURldGVjdG9yUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENlbGxWYWx1ZUNoYW5nZWRFdmVudCwgQ29sRGVmLCBHcmlkT3B0aW9ucyBhcyBSYXdHcmlkT3B0aW9ucyB9IGZyb20gJ2FnLWdyaWQtY29tbXVuaXR5JztcclxuaW1wb3J0IHsgQWdHcmlkQW5ndWxhciB9IGZyb20gJ2FnLWdyaWQtYW5ndWxhcic7XHJcbmltcG9ydCB7IFRoZW1lQ29uZmlnU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2UvdGhlbWVDb25maWcuc2VydmljZSc7XHJcbmltcG9ydCB7IEFjdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlL2FjdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlL2kxOG4uc2VydmljZSc7XHJcbmltcG9ydCB7IFNlYXJjaCB9IGZyb20gJy4uLy4uL2FtL2FtLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IGdyaWRVdGlscyB9IGZyb20gJy4uL2dyaWQtdXRpbHMnO1xyXG5pbXBvcnQgeyBCdXR0b25Nb2R1bGUgfSBmcm9tICdwcmltZW5nL2J1dHRvbic7XHJcbmltcG9ydCB7IGxhc3RWYWx1ZUZyb20sIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IGNvbXBvbmVudHMsIENMSUVOVExJTUlUIH0gZnJvbSAnLi4vbW9jay1kYXRhJztcclxuZXhwb3J0IGludGVyZmFjZSBHcmlkT3B0aW9ucyBleHRlbmRzIFJhd0dyaWRPcHRpb25zIHtcclxuXHRzZXJ2ZXJGdW5jPzogKHNlYXJjaDogU2VhcmNoKSA9PiBPYnNlcnZhYmxlPGFueVtdPjtcclxuXHRjbGllbnRGdW5jPzogKHNlYXJjaDogU2VhcmNoKSA9PiBPYnNlcnZhYmxlPGFueVtdPjtcclxuXHRwcmVTZWFyY2g/OiBTZWFyY2g7XHJcblx0dHJlZURhdGFGaWVsZD86IHN0cmluZztcclxuXHR0cmVlTGV2ZWw/OiBudW1iZXI7XHJcblx0c2Nyb2xsSGVpZ2h0Pzogc3RyaW5nO1xyXG5cdHVuZG9SZWRvQ2VsbEVkaXRpbmc/OiBib29sZWFuO1xyXG5cdHVuZG9SZWRvQ2VsbEVkaXRpbmdMaW1pdD86IG51bWJlcjtcclxuXHRtYWluRmllbGQ/OiBzdHJpbmc7XHJcblx0bW9kZWxOYW1lPzogc3RyaW5nO1xyXG5cdGZrPzogc3RyaW5nO1xyXG59XHJcblxyXG5jb25zdCBkZWZhdWx0T3B0aW9uOiBHcmlkT3B0aW9ucyA9IHtcclxuXHRkZWZhdWx0Q29sRGVmOiB7XHJcblx0XHRmbGV4OiAxLFxyXG5cdFx0bWluV2lkdGg6IDEwMCxcclxuXHRcdHNvcnRhYmxlOiBmYWxzZSxcclxuXHRcdGZpbHRlcjogZmFsc2UsXHJcblx0fSxcclxuXHRyb3dTZWxlY3Rpb246IHsgbW9kZTogJ211bHRpUm93JyB9LFxyXG5cdHJvd01vZGVsVHlwZTogJ3NlcnZlclNpZGUnLFxyXG5cdGNlbGxTZWxlY3Rpb246IHtcclxuXHRcdGhhbmRsZToge1xyXG5cdFx0XHRtb2RlOiAncmFuZ2UnLFxyXG5cdFx0fSxcclxuXHR9LFxyXG5cdGVuYWJsZUNoYXJ0czogdHJ1ZSxcclxuXHR1bmRvUmVkb0NlbGxFZGl0aW5nOiB0cnVlLFxyXG5cdHVuZG9SZWRvQ2VsbEVkaXRpbmdMaW1pdDogMjAsXHJcbn07XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHRzZWxlY3RvcjogJ2N1c3RvbS1ncmlkJyxcclxuXHRzdGFuZGFsb25lOiB0cnVlLFxyXG5cdGltcG9ydHM6IFtBZ0dyaWRBbmd1bGFyLCBCdXR0b25Nb2R1bGVdLFxyXG5cdHRlbXBsYXRlVXJsOiAnLi9ncmlkLmNvbXBvbmVudC5odG1sJyxcclxuXHRzdHlsZVVybDogJy4vZ3JpZC5jb21wb25lbnQuc2NzcycsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBHcmlkQ29tcG9uZW50IHtcclxuXHRAVmlld0NoaWxkKEFnR3JpZEFuZ3VsYXIpIGdyaWQhOiBBZ0dyaWRBbmd1bGFyO1xyXG5cdEBWaWV3Q2hpbGQoQWdHcmlkQW5ndWxhciwgeyByZWFkOiBFbGVtZW50UmVmIH0pIGdyaWRSZWYhOiBFbGVtZW50UmVmO1xyXG5cdEBWaWV3Q2hpbGQoJ2dyaWRDb250YWluZXInKSBjb250YWluZXJSZWYhOiBFbGVtZW50UmVmO1xyXG5cdGdyaWRPcHRpb25zID0gaW5wdXQ8R3JpZE9wdGlvbnM+KHt9KTtcclxuXHR0b09wdGlvbnMgPSBjb21wdXRlZCgoKSA9PiB7XHJcblx0XHRjb25zb2xlLmxvZygndG9PcHRpb25zJywgdGhpcy5ncmlkT3B0aW9ucygpKTtcclxuXHRcdHJldHVybiBncmlkVXRpbHMubWVyZ2VPcHRpb25zKHsgLi4uZGVmYXVsdE9wdGlvbiwgLi4udGhpcy5ncmlkT3B0aW9ucygpIH0sIHVudHJhY2tlZCgoKSA9PiB0aGlzLnNlYXJjaFBybSgpKS5saW1pdCwgdGhpcy5hY3Rpb24pO1xyXG5cdH0pO1xyXG5cdHRoZW1lQ29uZmlnID0gaW5qZWN0KFRoZW1lQ29uZmlnU2VydmljZSk7XHJcblx0bG9jYWxlVGV4dDogYW55O1xyXG5cdGkxOG5TZXJ2aWNlID0gaW5qZWN0KEkxOG5TZXJ2aWNlKTtcclxuXHRteVRoZW1lID0gY29tcHV0ZWQoKCkgPT4gZ3JpZFV0aWxzLmdldFRoZW1lKHRoaXMudGhlbWVDb25maWcpKTtcclxuXHRjb21wb25lbnRzID0gY29tcG9uZW50cztcclxuXHRjb2x1bW5EZWZzOiBDb2xEZWZbXSA9IFtdO1xyXG5cdGluaXRHcmlkID0gdHJ1ZTtcclxuXHRjb250ZW50TWFwOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XHJcblx0bWFpbkZpZWxkITogc3RyaW5nO1xyXG5cdG1vZGVsTmFtZSE6IHN0cmluZztcclxuXHR1cHNlcnQgPSBpbnB1dDxhbnk+KCk7XHJcblx0c3ViSW5kZXghOiBudW1iZXI7XHJcblx0cm93RGF0YSA9IGlucHV0PGFueT4odW5kZWZpbmVkKTtcclxuXHRzZWFyY2hQcm0gPSBtb2RlbDxTZWFyY2g+KHt9KTtcclxuXHRkZWxldGVFbWl0ID0gb3V0cHV0PG51bWJlcltdPigpO1xyXG5cdGFkZEVtaXQgPSBvdXRwdXQoKTtcclxuXHRhZGRUeXBlID0gaW5wdXQ8J2hhbmRsZScgfCAnc2VsZWN0Jz4oKTtcclxuXHRzZWxlY3REYXRhID0gaW5wdXQ8YW55W10+KCk7XHJcblx0c2hvd0FjdCA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xyXG5cdGFjdFBvcyA9IGlucHV0PCd0b3AnIHwgJ2JvdHRvbSc+KCdib3R0b20nKTtcclxuXHRhdXRoTGV2ZWwgPSBpbnB1dDxudW1iZXI+KC0xKTtcclxuXHRodHRwID0gaW5qZWN0KEh0dHBDbGllbnQpO1xyXG5cdHJlbmRlcmVyID0gaW5qZWN0KFJlbmRlcmVyMik7XHJcblx0bmdab25lID0gaW5qZWN0KE5nWm9uZSk7XHJcblx0Y2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcclxuXHRyaWNoTXVsdE1hcDogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xyXG5cdGhvcml6b250YWxTY3JvbGxCYXJPYnNlcnZlcjogYW55O1xyXG5cdGhvcml6b250YWxTY3JvbGxCYXJXaWR0aCA9IDA7XHJcblxyXG5cdGNvbnN0cnVjdG9yKHByaXZhdGUgYWN0aW9uOiBBY3Rpb25TZXJ2aWNlKSB7XHJcblx0XHRlZmZlY3QoXHJcblx0XHRcdGFzeW5jICgpID0+IHtcclxuXHRcdFx0XHR0aGlzLmNvbHVtbkRlZnMgPSBhd2FpdCB0aGlzLnNldFJpY2hWYWx1ZSgpO1xyXG5cdFx0XHRcdHRoaXMuY29sdW1uRGVmcyA9IGdyaWRVdGlscy5oYW5kbGVJMThuS2V5KHRoaXMudG9PcHRpb25zKCkuY29sdW1uRGVmcyEsIHRoaXMuaTE4blNlcnZpY2UpO1xyXG5cdFx0XHRcdHRoaXMubWFpbkZpZWxkID0gdGhpcy50b09wdGlvbnMoKS5tYWluRmllbGQhO1xyXG5cdFx0XHRcdHRoaXMubW9kZWxOYW1lID0gdGhpcy50b09wdGlvbnMoKS5tb2RlbE5hbWUhO1xyXG5cdFx0XHRcdGlmICghdGhpcy51cHNlcnQoKT8uc3Vic2VydD8uZmluZCgodjogYW55KSA9PiB2LnN1Yk1vZGVsTmFtZSA9PT0gdGhpcy5tb2RlbE5hbWUpKSB7XHJcblx0XHRcdFx0XHR0aGlzLnVwc2VydCgpPy5zdWJzZXJ0Py5wdXNoKHtcclxuXHRcdFx0XHRcdFx0c3ViTW9kZWxOYW1lOiB0aGlzLnRvT3B0aW9ucygpLm1vZGVsTmFtZSxcclxuXHRcdFx0XHRcdFx0Zms6IHRoaXMudG9PcHRpb25zKCkuZmssXHJcblx0XHRcdFx0XHRcdHN1YkRhdGE6IFtdLFxyXG5cdFx0XHRcdFx0XHRtYXB0bXA6IG5ldyBNYXAoKSxcclxuXHRcdFx0XHRcdFx0bG9ndG1wOiBuZXcgTWFwKCksXHJcblx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0dGhpcy5zdWJJbmRleCA9IHRoaXMudXBzZXJ0KCk/LnN1YnNlcnQ/LmZpbmRJbmRleCgodjogYW55KSA9PiB2LnN1Yk1vZGVsTmFtZSA9PT0gdGhpcy5tb2RlbE5hbWUpO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHR7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH0sXHJcblx0XHQpO1xyXG5cdFx0ZWZmZWN0KFxyXG5cdFx0XHQoKSA9PiB7XHJcblx0XHRcdFx0dGhpcy5hY3Rpb24uZ2V0U2VhcmNoKHVudHJhY2tlZCgoKSA9PiB0aGlzLnRvT3B0aW9ucygpLm1vZGVsTmFtZSkpO1xyXG5cdFx0XHRcdHRoaXMuZ2V0RGF0YSgpO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHR7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH0sXHJcblx0XHQpO1xyXG5cdFx0ZWZmZWN0KCgpID0+IHtcclxuXHRcdFx0aWYgKHRoaXMucm93RGF0YSgpID09PSB1bmRlZmluZWQpIHJldHVybjtcclxuXHRcdFx0dW50cmFja2VkKCgpID0+IHtcclxuXHRcdFx0XHR0aGlzLnRvT3B0aW9ucygpLmNsaWVudEZ1bmMgPSAoKSA9PiBvZih7IGRhdGE6IHRoaXMucm93RGF0YSgpLCB0b3RhbE51bTogdGhpcy5yb3dEYXRhKCk/Lmxlbmd0aCB9KTtcclxuXHRcdFx0XHR0aGlzLmdldENsaWVudERhdGEodW5kZWZpbmVkKTtcclxuXHRcdFx0fSk7XHJcblx0XHR9KTtcclxuXHRcdGVmZmVjdChcclxuXHRcdFx0KCkgPT4ge1xyXG5cdFx0XHRcdGlmICh0aGlzLnNlbGVjdERhdGEoKSAmJiB0aGlzLnNlbGVjdERhdGEoKSEubGVuZ3RoID4gMCAmJiB0aGlzLmdyaWQpIHtcclxuXHRcdFx0XHRcdHRoaXMuaGFuZGxlQWRkZWRSb3dzKHRoaXMuc2VsZWN0RGF0YSgpISk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cdFx0XHR7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH0sXHJcblx0XHQpO1xyXG5cdFx0ZWZmZWN0KFxyXG5cdFx0XHQoKSA9PiB7XHJcblx0XHRcdFx0dGhpcy50b09wdGlvbnMoKS5wcmVTZWFyY2ggJiZcclxuXHRcdFx0XHRcdHRoaXMuYWN0aW9uLnNldFNlYXJjaCh7IGNvbHVtbkZpbHRlcnM6IHRoaXMudG9PcHRpb25zKCkucHJlU2VhcmNoIS5jb2x1bW5GaWx0ZXJzIH0sIHRoaXMudG9PcHRpb25zKCkubW9kZWxOYW1lKTtcclxuXHRcdFx0fSxcclxuXHRcdFx0eyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9LFxyXG5cdFx0KTtcclxuXHRcdHRoaXMuZWRpdGluZ0ZpeCgpO1xyXG5cdH1cclxuXHJcblx0bmdPbkluaXQoKTogdm9pZCB7XHJcblx0XHR0aGlzLmkxOG5TZXJ2aWNlLmNoYW5nZS5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG5cdFx0XHR0aGlzLmdyaWQgJiYgdGhpcy5ncmlkLmFwaS5kZXN0cm95KCk7XHJcblx0XHRcdHRoaXMuaW5pdEdyaWQgPSBmYWxzZTtcclxuXHRcdFx0dGhpcy5sb2NhbGVUZXh0ID0gZ3JpZFV0aWxzLmdldExvY2FsVGV4dChyZXMpO1xyXG5cdFx0XHR0aGlzLmNvbHVtbkRlZnMgPSBncmlkVXRpbHMuaGFuZGxlSTE4bktleSh0aGlzLnRvT3B0aW9ucygpLmNvbHVtbkRlZnMhLCB0aGlzLmkxOG5TZXJ2aWNlKTtcclxuXHRcdFx0c2V0VGltZW91dCgoKSA9PiB7XHJcblx0XHRcdFx0dGhpcy5hY3Rpb24uc2V0U2VsZWN0ZWRSb3dzKFtdKTtcclxuXHRcdFx0XHR0aGlzLmluaXRHcmlkID0gdHJ1ZTtcclxuXHRcdFx0fSwgMTAwKTtcclxuXHRcdH0pO1xyXG5cdFx0dGhpcy5sb2NhbGVUZXh0ID0gZ3JpZFV0aWxzLmdldExvY2FsVGV4dCh0aGlzLmkxOG5TZXJ2aWNlLmN1cnJlbnRMYW5nKTtcclxuXHR9XHJcblxyXG5cdG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuXHRcdHRoaXMuaW5pdEdyaWRIZWlnaHQoKTtcclxuXHR9XHJcblxyXG5cdG5nT25EZXN0cm95KCkge1xyXG5cdFx0aWYgKHRoaXMuaG9yaXpvbnRhbFNjcm9sbEJhck9ic2VydmVyKSB7XHJcblx0XHRcdHRoaXMuaG9yaXpvbnRhbFNjcm9sbEJhck9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdGdldEdyaWQoKTogQWdHcmlkQW5ndWxhciB7XHJcblx0XHRyZXR1cm4gdGhpcy5ncmlkO1xyXG5cdH1cclxuXHJcblx0b25HcmlkUmVhZHkoZTogYW55KSB7XHJcblx0XHR0aGlzLmFjdGlvbi5zZXRTZWxlY3RlZFJvd3MoW10pO1xyXG5cdFx0dGhpcy5nZXREYXRhKCk7XHJcblx0fVxyXG5cclxuXHRvblNlbGVjdGlvbkNoYW5nZWQoZXZlbnQ6IGFueSk6IGFueSB7XHJcblx0XHR0aGlzLmFjdGlvbi5zZXRTZWxlY3RlZFJvd3MoZ3JpZFV0aWxzLmNhbGNSb3dJZHMoZXZlbnQuYXBpLCB0aGlzLnRvT3B0aW9ucygpPy5yb3dNb2RlbFR5cGUgPT0gJ3NlcnZlclNpZGUnKSk7XHJcblx0fVxyXG5cclxuXHRvblJvd0dyb3VwT3BlbmVkKCkge1xyXG5cdFx0dGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xyXG5cdFx0XHRyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xyXG5cdFx0XHRcdHRoaXMuYWp1c3RHcmlkSGVpZ2h0KCk7XHJcblx0XHRcdH0pO1xyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRhc3luYyBzZXRSaWNoVmFsdWUoKSB7XHJcblx0XHRsZXQgY29sID0gdGhpcy50b09wdGlvbnMoKS5jb2x1bW5EZWZzISB8fCB7fTtcclxuXHRcdHRyeSB7XHJcblx0XHRcdGNvbnN0IHByb2Nlc3NlZENvbHMgPSBhd2FpdCBQcm9taXNlLmFsbChcclxuXHRcdFx0XHRjb2wubWFwKGFzeW5jIChpdGVtOiBhbnkpID0+IHtcclxuXHRcdFx0XHRcdGlmIChcclxuXHRcdFx0XHRcdFx0aXRlbS5oYXNPd25Qcm9wZXJ0eSgnZmllbGRJZCcpICYmXHJcblx0XHRcdFx0XHRcdChpdGVtLmNlbGxFZGl0b3IgPT0gJ2FnUmljaFNlbGVjdENlbGxFZGl0b3InIHx8IGl0ZW0uY2VsbEVkaXRvciA9PSAnYWdTZWxlY3RDZWxsRWRpdG9yJykgJiZcclxuXHRcdFx0XHRcdFx0aXRlbS5lZGl0YWJsZVxyXG5cdFx0XHRcdFx0KSB7XHJcblx0XHRcdFx0XHRcdGxldCB2YWx1ZXM6IGFueSA9IFtdO1xyXG5cdFx0XHRcdFx0XHRpZiAoIWl0ZW0uY2VsbEVkaXRvclBhcmFtcyB8fCAhaXRlbS5jZWxsRWRpdG9yUGFyYW1zLmhhc093blByb3BlcnR5KCd2YWx1ZXMnKSkge1xyXG5cdFx0XHRcdFx0XHRcdGlmIChpdGVtLmhhc093blByb3BlcnR5KCdzZWxlY3REYXRhJykpIHtcclxuXHRcdFx0XHRcdFx0XHRcdHZhbHVlcyA9IGF3YWl0IGl0ZW0uc2VsZWN0RGF0YSgpO1xyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRpdGVtLmNlbGxFZGl0b3JQYXJhbXMgPSB7XHJcblx0XHRcdFx0XHRcdFx0XHQuLi5pdGVtLmNlbGxFZGl0b3JQYXJhbXMsXHJcblx0XHRcdFx0XHRcdFx0XHR2YWx1ZUxpc3RNYXhIZWlnaHQ6IDIwMCxcclxuXHRcdFx0XHRcdFx0XHR9O1xyXG5cdFx0XHRcdFx0XHR9IGVsc2UgaWYgKGl0ZW0uY2VsbEVkaXRvclBhcmFtcyAmJiBpdGVtLmNlbGxFZGl0b3JQYXJhbXMuaGFzT3duUHJvcGVydHkoJ3ZhbHVlcycpKSB7XHJcblx0XHRcdFx0XHRcdFx0dmFsdWVzID0gaXRlbS5jZWxsRWRpdG9yUGFyYW1zLnZhbHVlcztcclxuXHRcdFx0XHRcdFx0XHRpdGVtLmNlbGxFZGl0b3JQYXJhbXMudmFsdWVMaXN0TWF4SGVpZ2h0ID0gMjAwO1xyXG5cdFx0XHRcdFx0XHRcdGl0ZW0uY2VsbEVkaXRvclBhcmFtcy5zdXBwcmVzc011bHRpU2VsZWN0UGlsbFJlbmRlcmVyID0gdHJ1ZTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRsZXQgaXNTdHJpbmcgPSB2YWx1ZXMuZXZlcnkoKGl0ZW06IGFueSkgPT4gdHlwZW9mIGl0ZW0gPT09ICdzdHJpbmcnKTtcclxuXHRcdFx0XHRcdFx0aWYgKCFpc1N0cmluZykge1xyXG5cdFx0XHRcdFx0XHRcdGl0ZW0uY2VsbEVkaXRvclBhcmFtcy5yYXdPcHRpb25zID0gdmFsdWVzO1xyXG5cdFx0XHRcdFx0XHRcdGl0ZW0uY2VsbEVkaXRvclBhcmFtcy52YWx1ZXMgPSB2YWx1ZXMubWFwKChpdGVtOiBhbnkpID0+IGl0ZW0udmFsdWUpO1xyXG5cdFx0XHRcdFx0XHRcdGl0ZW0udmFsdWVGb3JtYXR0ZXIgPSAocGFyYW1zOiBhbnkpID0+IHtcclxuXHRcdFx0XHRcdFx0XHRcdGNvbnN0IG9wdGlvbnMgPSBwYXJhbXMuY29sRGVmLmNlbGxFZGl0b3JQYXJhbXMucmF3T3B0aW9ucyBhcyBhbnlbXTtcclxuXHRcdFx0XHRcdFx0XHRcdGlmICh0eXBlb2YgcGFyYW1zLnZhbHVlID09PSAnbnVtYmVyJykge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRjb25zdCBvcHRpb25zID0gcGFyYW1zLmNvbERlZi5jZWxsRWRpdG9yUGFyYW1zLnJhd09wdGlvbnMgYXMgYW55W107XHJcblx0XHRcdFx0XHRcdFx0XHRcdGNvbnN0IG9wdGlvbiA9IG9wdGlvbnMuZmluZCgob3B0KSA9PiBvcHQudmFsdWUgPT0gcGFyYW1zLnZhbHVlKTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0cmV0dXJuIG9wdGlvbiA/IG9wdGlvbi5sYWJlbCA6IHBhcmFtcy52YWx1ZTtcclxuXHRcdFx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdGxldCB2YWx1ZXM6IGFueSA9IFtdO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRpZiAodHlwZW9mIHBhcmFtcy52YWx1ZSA9PT0gJ3N0cmluZycpIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRpZiAocGFyYW1zLnZhbHVlLmxlbmd0aCA+IDApIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHZhbHVlcyA9IHBhcmFtcy52YWx1ZS5zcGxpdCgnLCcpLm1hcCgodjogYW55KSA9PiAoIWlzTmFOKHYpID8gTnVtYmVyKHYpIDogdikpIHx8IFtdO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHR2YWx1ZXMgPSBwYXJhbXMudmFsdWUgfHwgW107XHJcblx0XHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRcdFx0Y29uc3Qgb3B0aW9uID0gb3B0aW9ucy5maWx0ZXIoKG9wdCkgPT4gdmFsdWVzLmluY2x1ZGVzKG9wdC52YWx1ZSkpIHx8IFtdO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRyZXR1cm4gb3B0aW9uID8gb3B0aW9uLm1hcCgodikgPT4gdi5sYWJlbCkuam9pbignLCcpIDogcGFyYW1zLnZhbHVlO1xyXG5cdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdH07XHJcblx0XHRcdFx0XHRcdFx0aXRlbS52YWx1ZVBhcnNlciA9IChwYXJhbXM6IGFueSkgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdFx0Y29uc3Qgb3B0aW9ucyA9IHBhcmFtcy5jb2xEZWYuY2VsbEVkaXRvclBhcmFtcy5yYXdPcHRpb25zIGFzIGFueVtdO1xyXG5cdFx0XHRcdFx0XHRcdFx0Y29uc3Qgb3B0aW9uID0gb3B0aW9ucy5maW5kKChvcHQpID0+IG9wdC5sYWJlbCA9PT0gcGFyYW1zLm5ld1ZhbHVlKTtcclxuXHRcdFx0XHRcdFx0XHRcdHJldHVybiBvcHRpb24gPyBvcHRpb24udmFsdWUgOiBwYXJhbXMubmV3VmFsdWU7XHJcblx0XHRcdFx0XHRcdFx0fTtcclxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHRpdGVtLmNlbGxFZGl0b3JQYXJhbXMudmFsdWVzID0gdmFsdWVzO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRyZXR1cm4gaXRlbTtcclxuXHRcdFx0XHR9KSxcclxuXHRcdFx0KTtcclxuXHRcdFx0cmV0dXJuIHByb2Nlc3NlZENvbHM7XHJcblx0XHR9IGNhdGNoIChlcnJvcikge1xyXG5cdFx0XHRjb25zb2xlLmVycm9yKCdFcnJvciBwcm9jZXNzaW5nIGNvbHVtbnM6JywgZXJyb3IpO1xyXG5cdFx0XHR0aHJvdyBlcnJvcjtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdGdldEVudW1zKGlkOiBudW1iZXIpIHtcclxuXHRcdHJldHVybiBsYXN0VmFsdWVGcm9tKHRoaXMuaHR0cC5wb3N0KCdnZXQnLCB7IGlkOiBOdW1iZXIoaWQpLCBtb2RlbE5hbWU6ICdNb2RlbEZpZWxkJywgcHJlbG9hZHM6IFsnRW51bSddIH0pKTtcclxuXHR9XHJcblxyXG5cdGdldERhdGEoKSB7XHJcblx0XHR1bnRyYWNrZWQoKCkgPT4ge1xyXG5cdFx0XHRpZiAoIXRoaXMuc2VhcmNoUHJtKCkubW9kZWxOYW1lKSByZXR1cm47XHJcblx0XHRcdGNvbnN0IHNlYXJjaCA9IHRoaXMuYWN0aW9uLmdldFNlYXJjaCh0aGlzLnRvT3B0aW9ucygpLm1vZGVsTmFtZSk7XHJcblx0XHRcdHRoaXMudG9PcHRpb25zKCk/LnJvd01vZGVsVHlwZSA9PSAnc2VydmVyU2lkZScgPyB0aGlzLmdldFNlcnZlckRhdGEoc2VhcmNoKSA6IHRoaXMuZ2V0Q2xpZW50RGF0YShzZWFyY2gpO1xyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRnZXRTZXJ2ZXJEYXRhKHNlYXJjaD86IFNlYXJjaCkge1xyXG5cdFx0dGhpcy5ncmlkPy5hcGkuc2V0R3JpZE9wdGlvbignc2VydmVyU2lkZURhdGFzb3VyY2UnLCB7XHJcblx0XHRcdGdldFJvd3M6IChwYXJhbXMpID0+IHtcclxuXHRcdFx0XHR0aGlzLnNlYXJjaFBybSgpLm9mZnNldCA9IHBhcmFtcy5yZXF1ZXN0LnN0YXJ0Um93O1xyXG5cdFx0XHRcdHRoaXMuc2VhcmNoUHJtKCkuY29sdW1uRmlsdGVycyA9IHNlYXJjaD8uY29sdW1uRmlsdGVycztcclxuXHRcdFx0XHR0aGlzLmhhbmRsZVNlcnZlclRyZWUocGFyYW1zKTtcclxuXHRcdFx0XHR0aGlzLnRvT3B0aW9ucygpXHJcblx0XHRcdFx0XHQuc2VydmVyRnVuYz8uKHRoaXMuc2VhcmNoUHJtKCkpXHJcblx0XHRcdFx0XHQuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG5cdFx0XHRcdFx0XHR0aGlzLmFjdGlvbi5zZXRQYWdlKHtcclxuXHRcdFx0XHRcdFx0XHRzdGFydFJvdzogcGFyYW1zLnJlcXVlc3Quc3RhcnRSb3csXHJcblx0XHRcdFx0XHRcdFx0ZW5kUm93OiBwYXJhbXMucmVxdWVzdC5lbmRSb3chIDwgcmVzLnRvdGFsTnVtID8gcGFyYW1zLnJlcXVlc3QuZW5kUm93IDogcmVzLnRvdGFsTnVtLFxyXG5cdFx0XHRcdFx0XHRcdHRvdGFsOiByZXMudG90YWxOdW0sXHJcblx0XHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0XHRwYXJhbXMuc3VjY2Vzcyh7IHJvd0RhdGE6IHJlcy5kYXRhIH0pO1xyXG5cdFx0XHRcdFx0XHR0aGlzLmFqdXN0R3JpZEhlaWdodCgpO1xyXG5cdFx0XHRcdFx0fSk7XHJcblx0XHRcdH0sXHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdGhhbmRsZVNlcnZlclRyZWUocGFyYW1zOiBhbnkpIHtcclxuXHRcdGlmICghdGhpcy50b09wdGlvbnMoKS50cmVlRGF0YSkgcmV0dXJuO1xyXG5cdFx0aWYgKHBhcmFtcy5yZXF1ZXN0Lmdyb3VwS2V5cy5sZW5ndGggPiAwKSB7XHJcblx0XHRcdHRoaXMuc2VhcmNoUHJtKCkuY29sdW1uRmlsdGVycyA9IFtcclxuXHRcdFx0XHR7IGNvbHVtbkZpZWxkOiAncGlkJywgdHlwZTogJ2VxJywgZml0ZXI6IHBhcmFtcy5yZXF1ZXN0Lmdyb3VwS2V5c1twYXJhbXMucmVxdWVzdC5ncm91cEtleXMubGVuZ3RoIC0gMV0gfSxcclxuXHRcdFx0XTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdGlmICghdGhpcy5zZWFyY2hQcm0oKS5jb2x1bW5GaWx0ZXJzKSB7XHJcblx0XHRcdFx0dGhpcy5zZWFyY2hQcm0oKS5jb2x1bW5GaWx0ZXJzID0gW3sgY29sdW1uRmllbGQ6ICdwaWQnLCB0eXBlOiAnZXEnLCBmaXRlcjogMCB9XTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0dGhpcy5zZWFyY2hQcm0oKS5wcmVsb2FkcyA9IFsnY2hpbGRyZW4nXTtcclxuXHR9XHJcblxyXG5cdGdldENsaWVudERhdGEoc2VhcmNoPzogU2VhcmNoKSB7XHJcblx0XHR0aGlzLnNlYXJjaFBybSgpLmxpbWl0ID0gQ0xJRU5UTElNSVQ7XHJcblx0XHR0aGlzLnNlYXJjaFBybSgpLmNvbHVtbkZpbHRlcnMgPSBzZWFyY2g/LmNvbHVtbkZpbHRlcnM7XHJcblx0XHR0aGlzLmhhbmRsZUNsaWVudFRyZWUoKTtcclxuXHRcdHRoaXMudG9PcHRpb25zKClcclxuXHRcdFx0LmNsaWVudEZ1bmM/Lih0aGlzLnNlYXJjaFBybSgpKVxyXG5cdFx0XHQuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG5cdFx0XHRcdHRoaXMuYWN0aW9uLnNldFBhZ2Uoe1xyXG5cdFx0XHRcdFx0dG90YWw6IHJlcy50b3RhbE51bSxcclxuXHRcdFx0XHRcdG1vZGU6ICdjbGllbnQnLFxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHRcdHRoaXMuZ3JpZD8uYXBpLnNldEdyaWRPcHRpb24oJ3Jvd0RhdGEnLCByZXMuZGF0YSk7XHJcblx0XHRcdFx0dGhpcy5hanVzdEdyaWRIZWlnaHQoKTtcclxuXHRcdFx0fSk7XHJcblx0fVxyXG5cclxuXHRoYW5kbGVDbGllbnRUcmVlKCkge1xyXG5cdFx0aWYgKCF0aGlzLnRvT3B0aW9ucygpLnRyZWVEYXRhKSByZXR1cm47XHJcblx0XHRjb25zdCBwcmVsb2FkczogYW55W10gPSBbXTtcclxuXHRcdGZvciAobGV0IGkgPSAxOyBpIDwgdGhpcy50b09wdGlvbnMoKS50cmVlTGV2ZWwhOyBpKyspIHtcclxuXHRcdFx0cHJlbG9hZHMucHVzaChBcnJheShpKS5maWxsKCdjaGlsZHJlbicpLmpvaW4oJy4nKSk7XHJcblx0XHR9XHJcblx0XHR0aGlzLnNlYXJjaFBybSgpLnByZWxvYWRzID0gcHJlbG9hZHM7XHJcblx0fVxyXG5cclxuXHRjZWxsVmFsdWVDaGFuZ2VkKGU6IENlbGxWYWx1ZUNoYW5nZWRFdmVudCkge1xyXG5cdFx0bGV0IHtcclxuXHRcdFx0Y29sRGVmOiB7IGZpZWxkLCBoZWFkZXJOYW1lLCBjZWxsRWRpdG9yLCBjZWxsRWRpdG9yUGFyYW1zIH0sXHJcblx0XHRcdG5ld1ZhbHVlLFxyXG5cdFx0XHRvbGRWYWx1ZSxcclxuXHRcdFx0cm93SW5kZXgsXHJcblx0XHRcdGRhdGE6IHsgaWQgfSxcclxuXHRcdH0gPSBlO1xyXG5cdFx0aWYgKGNlbGxFZGl0b3IgPT0gJ2FnUmljaFNlbGVjdENlbGxFZGl0b3InICYmIGNlbGxFZGl0b3JQYXJhbXMgJiYgY2VsbEVkaXRvclBhcmFtcy5tdWx0aVNlbGVjdCkge1xyXG5cdFx0XHRuZXdWYWx1ZSA9IG5ld1ZhbHVlICYmIG5ld1ZhbHVlLmxlbmd0aCA+IDAgPyBuZXdWYWx1ZS5qb2luKCcsJykgOiAnJztcclxuXHRcdFx0dGhpcy5yaWNoTXVsdE1hcFtmaWVsZCFdID0gbmV3VmFsdWU7XHJcblx0XHR9XHJcblx0XHRpZiAoIWlkKSB7XHJcblx0XHRcdHRoaXMudXBzZXJ0KCk/LnN1YnNlcnRbdGhpcy5zdWJJbmRleF1bJ21hcHRtcCddLnNldChyb3dJbmRleCEsIE9iamVjdC5hc3NpZ24oZS5kYXRhLCB0aGlzLnJpY2hNdWx0TWFwKSk7XHJcblx0XHRcdGlmIChmaWVsZCA9PSB0aGlzLm1haW5GaWVsZCkge1xyXG5cdFx0XHRcdHRoaXMudXBzZXJ0KCk/LnN1YnNlcnRbdGhpcy5zdWJJbmRleF1bJ2xvZ3RtcCddLnNldChyb3dJbmRleCEgKyBmaWVsZCEsIHsgbmV3VmFsdWU6IG5ld1ZhbHVlLCBpZDogMCwgbGFiZWw6IGhlYWRlck5hbWUgfSk7XHJcblx0XHRcdH1cclxuXHRcdH0gZWxzZSBpZiAoaWQpIHtcclxuXHRcdFx0Y29uc3QgZmllbGRzdHIgPSBgJHtmaWVsZH1gO1xyXG5cdFx0XHRsZXQgbzogYW55O1xyXG5cdFx0XHRpZiAodGhpcy51cHNlcnQoKT8uc3Vic2VydFt0aGlzLnN1YkluZGV4XVsnbWFwdG1wJ10uaGFzKHJvd0luZGV4ISkpIHtcclxuXHRcdFx0XHRvID0gdGhpcy51cHNlcnQoKT8uc3Vic2VydFt0aGlzLnN1YkluZGV4XVsnbWFwdG1wJ10uZ2V0KHJvd0luZGV4ISk7XHJcblx0XHRcdFx0T2JqZWN0LmFzc2lnbihvLCB7IFtmaWVsZHN0cl06IG5ld1ZhbHVlIH0pO1xyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdG8gPSB7IGlkOiBpZCwgW2ZpZWxkc3RyXTogbmV3VmFsdWUgfTtcclxuXHRcdFx0fVxyXG5cdFx0XHR0aGlzLnVwc2VydCgpPy5zdWJzZXJ0W3RoaXMuc3ViSW5kZXhdWydtYXB0bXAnXS5zZXQocm93SW5kZXghLCBvKTtcclxuXHRcdFx0bGV0IG9sZCA9IHRoaXMudXBzZXJ0KCk/LnN1YnNlcnRbdGhpcy5zdWJJbmRleF1bJ2xvZ3RtcCddLmdldChyb3dJbmRleCEgKyBmaWVsZCEpO1xyXG5cdFx0XHRpZiAob2xkKSB7XHJcblx0XHRcdFx0dGhpcy51cHNlcnQoKT8uc3Vic2VydFt0aGlzLnN1YkluZGV4XVsnbG9ndG1wJ10uc2V0KHJvd0luZGV4ISArIGZpZWxkISwge1xyXG5cdFx0XHRcdFx0bmV3VmFsdWU6IG5ld1ZhbHVlLFxyXG5cdFx0XHRcdFx0b2xkVmFsdWU6IG9sZC5vbGRWYWx1ZSxcclxuXHRcdFx0XHRcdGlkOiBpZCxcclxuXHRcdFx0XHRcdGxhYmVsOiBoZWFkZXJOYW1lLFxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdHRoaXMudXBzZXJ0KCk/LnN1YnNlcnRbdGhpcy5zdWJJbmRleF1bJ2xvZ3RtcCddLnNldChyb3dJbmRleCEgKyBmaWVsZCEsIHtcclxuXHRcdFx0XHRcdG5ld1ZhbHVlOiBuZXdWYWx1ZSxcclxuXHRcdFx0XHRcdG9sZFZhbHVlOiBvbGRWYWx1ZSxcclxuXHRcdFx0XHRcdGlkOiBpZCxcclxuXHRcdFx0XHRcdGxhYmVsOiBoZWFkZXJOYW1lLFxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRsZXQgZHQ6IGFueVtdID0gW107XHJcblx0XHR0aGlzLnVwc2VydCgpPy5zdWJzZXJ0W3RoaXMuc3ViSW5kZXhdWydtYXB0bXAnXS5mb3JFYWNoKCh2YWx1ZTogYW55LCBrZXk6IGFueSkgPT4ge1xyXG5cdFx0XHRkdC5wdXNoKHZhbHVlKTtcclxuXHRcdH0pO1xyXG5cdFx0dGhpcy51cHNlcnQoKVsnc3Vic2VydCddW3RoaXMuc3ViSW5kZXhdWydzdWJEYXRhJ10gPSBkdDtcclxuXHR9XHJcblxyXG5cdGhhbmRsZUFkZGVkUm93cyhhZGRlZFJvd3M6IGFueVtdKSB7XHJcblx0XHRsZXQgaGVhZGVyTmFtZSA9ICcnO1xyXG5cdFx0dGhpcy50b09wdGlvbnMoKS5jb2x1bW5EZWZzPy5mb3JFYWNoKChpdGVtOiBhbnkpID0+IHtcclxuXHRcdFx0aWYgKGl0ZW0uZmllbGQgPT0gdGhpcy5tYWluRmllbGQpIHtcclxuXHRcdFx0XHRoZWFkZXJOYW1lID0gaXRlbS5oZWFkZXJOYW1lO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHRcdGNvbnN0IHJlc3VsdCA9IHRoaXMuZ3JpZC5hcGkuYXBwbHlUcmFuc2FjdGlvbih7IGFkZDogYWRkZWRSb3dzIH0pO1xyXG5cdFx0cmVzdWx0IS5hZGQuZm9yRWFjaCgobm9kZTogYW55KSA9PiB7XHJcblx0XHRcdGNvbnN0IHJvd0luZGV4ID0gdGhpcy5ncmlkLmFwaS5nZXRSb3dOb2RlKG5vZGUuaWQpPy5yb3dJbmRleDtcclxuXHRcdFx0dGhpcy51cHNlcnQoKT8uc3Vic2VydFt0aGlzLnN1YkluZGV4XVsnbWFwdG1wJ10uc2V0KHJvd0luZGV4ISwgbm9kZS5kYXRhKTtcclxuXHRcdFx0dGhpcy51cHNlcnQoKT8uc3Vic2VydFt0aGlzLnN1YkluZGV4XVsnbG9ndG1wJ10uc2V0KHJvd0luZGV4ISArIHRoaXMubWFpbkZpZWxkISwge1xyXG5cdFx0XHRcdG5ld1ZhbHVlOiBub2RlLmRhdGFbdGhpcy5tYWluRmllbGRdLFxyXG5cdFx0XHRcdGlkOiAwLFxyXG5cdFx0XHRcdGxhYmVsOiBoZWFkZXJOYW1lLFxyXG5cdFx0XHR9KTtcclxuXHRcdH0pO1xyXG5cdFx0bGV0IGR0OiBhbnlbXSA9IFtdO1xyXG5cdFx0dGhpcy51cHNlcnQoKT8uc3Vic2VydFt0aGlzLnN1YkluZGV4XVsnbWFwdG1wJ10uZm9yRWFjaCgodmFsdWU6IGFueSwga2V5OiBhbnkpID0+IHtcclxuXHRcdFx0ZHQucHVzaCh2YWx1ZSk7XHJcblx0XHR9KTtcclxuXHRcdHRoaXMudXBzZXJ0KClbJ3N1YnNlcnQnXVt0aGlzLnN1YkluZGV4XVsnc3ViRGF0YSddID0gZHQ7XHJcblx0XHR0aGlzLmFqdXN0R3JpZEhlaWdodCgpO1xyXG5cdH1cclxuXHJcblx0aGFuZGxlRGVsZXRlZFJvd3MoZGVsZXRlZFJvd3M6IGFueVtdKSB7XHJcblx0XHRjb25zdCByZW1vdmVJbmRleGVzID0gdGhpcy5ncmlkLmFwaS5nZXRTZWxlY3RlZE5vZGVzKCkubWFwKChub2RlKSA9PiBub2RlLnJvd0luZGV4KTtcclxuXHRcdHJlbW92ZUluZGV4ZXMuZm9yRWFjaCgocm93SW5kZXg6IGFueSkgPT4ge1xyXG5cdFx0XHR0aGlzLnVwc2VydCgpPy5zdWJzZXJ0W3RoaXMuc3ViSW5kZXhdWydtYXB0bXAnXS5kZWxldGUocm93SW5kZXghKTtcclxuXHRcdFx0dGhpcy51cHNlcnQoKT8uc3Vic2VydFt0aGlzLnN1YkluZGV4XVsnbG9ndG1wJ10uZGVsZXRlKHJvd0luZGV4ISArIHRoaXMubWFpbkZpZWxkISk7XHJcblx0XHR9KTtcclxuXHRcdGxldCBkdDogYW55W10gPSBbXTtcclxuXHRcdHRoaXMudXBzZXJ0KCk/LnN1YnNlcnRbdGhpcy5zdWJJbmRleF1bJ21hcHRtcCddLmZvckVhY2goKHZhbHVlOiBhbnksIGtleTogYW55KSA9PiB7XHJcblx0XHRcdGR0LnB1c2godmFsdWUpO1xyXG5cdFx0fSk7XHJcblx0XHR0aGlzLnVwc2VydCgpWydzdWJzZXJ0J11bdGhpcy5zdWJJbmRleF1bJ3N1YkRhdGEnXSA9IGR0O1xyXG5cdFx0dGhpcy5ncmlkLmFwaS5hcHBseVRyYW5zYWN0aW9uKHsgcmVtb3ZlOiBkZWxldGVkUm93cyB9KTtcclxuXHRcdHRoaXMuYWp1c3RHcmlkSGVpZ2h0KCk7XHJcblx0fVxyXG5cclxuXHRhZGRSb3coKSB7XHJcblx0XHRpZiAodGhpcy5hZGRUeXBlKCkgPT0gJ2hhbmRsZScpIHtcclxuXHRcdFx0bGV0IGl0ZW0gPSB0eXBlb2YgdGhpcy50b09wdGlvbnMoKS5hZGREYXRhQ2IgPT0gJ2Z1bmN0aW9uJyA/IHRoaXMudG9PcHRpb25zKCkuYWRkRGF0YUNiKCkgOiB7fTtcclxuXHRcdFx0dGhpcy5ncmlkLmFwaS5hcHBseVRyYW5zYWN0aW9uKHsgYWRkOiBbaXRlbV0gfSk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR0aGlzLmFkZEVtaXQuZW1pdCgpO1xyXG5cdFx0fVxyXG5cdFx0dGhpcy5hanVzdEdyaWRIZWlnaHQoKTtcclxuXHR9XHJcblxyXG5cdGRlbFJvd3MoKSB7XHJcblx0XHRjb25zdCBzZWxlY3RlZE5vZGVzID0gdGhpcy5ncmlkLmFwaS5nZXRTZWxlY3RlZE5vZGVzKCk7XHJcblx0XHRjb25zdCBzZWxlY3RlZERhdGEgPSBzZWxlY3RlZE5vZGVzLm1hcCgobm9kZSkgPT4gbm9kZS5kYXRhKSB8fCBbXTtcclxuXHRcdGxldCBpZHMgPSBzZWxlY3RlZERhdGEubWFwKChkYXRhKSA9PiBkYXRhLmlkKS5maWx0ZXIoKHYpID0+IHYpIHx8IFtdO1xyXG5cdFx0aWYgKGlkcy5sZW5ndGggPiAwKSB7XHJcblx0XHRcdHRoaXMuZGVsZXRlRW1pdC5lbWl0KGlkcyk7XHJcblx0XHR9IGVsc2UgaWYgKHNlbGVjdGVkRGF0YS5sZW5ndGggPiAwICYmIGlkcy5sZW5ndGggPT0gMCkge1xyXG5cdFx0XHR0aGlzLmhhbmRsZURlbGV0ZWRSb3dzKHNlbGVjdGVkRGF0YSk7XHJcblx0XHR9XHJcblx0XHR0aGlzLmFqdXN0R3JpZEhlaWdodCgpO1xyXG5cdH1cclxuXHJcblx0aW5pdEdyaWRIZWlnaHQoKSB7XHJcblx0XHR0aGlzLmhvcml6b250YWxTY3JvbGxCYXJPYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcigoZW50cmllcykgPT4ge1xyXG5cdFx0XHRlbnRyaWVzLmZvckVhY2goKGVudHJ5KSA9PiB7XHJcblx0XHRcdFx0dGhpcy5ob3Jpem9udGFsU2Nyb2xsQmFyV2lkdGggPSBlbnRyeS50YXJnZXQuY2xpZW50SGVpZ2h0O1xyXG5cdFx0XHR9KTtcclxuXHRcdH0pO1xyXG5cdFx0dGhpcy5ob3Jpem9udGFsU2Nyb2xsQmFyT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLmdyaWRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuYWctYm9keS1ob3Jpem9udGFsLXNjcm9sbCcpKTtcclxuXHRcdHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5ncmlkUmVmLm5hdGl2ZUVsZW1lbnQsICd3aWR0aCcsICcxMDAlJyk7XHJcblx0XHRpZiAodGhpcy50b09wdGlvbnMoKS5zY3JvbGxIZWlnaHQpIHtcclxuXHRcdFx0dGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmNvbnRhaW5lclJlZi5uYXRpdmVFbGVtZW50LCAnbWF4LWhlaWdodCcsIHRoaXMudG9PcHRpb25zKCkuc2Nyb2xsSGVpZ2h0KTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdGFqdXN0R3JpZEhlaWdodCgpIHtcclxuXHRcdGNvbnN0IGhlaWdodCA9IGdyaWRVdGlscy5jYWxjR3JpZEhlaWdodCh0aGlzLmdyaWQuYXBpLmdldERpc3BsYXllZFJvd0NvdW50KCkpO1xyXG5cdFx0dGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcclxuXHRcdFx0dGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmdyaWRSZWYubmF0aXZlRWxlbWVudCwgJ2hlaWdodCcsIGAke2hlaWdodCArIHRoaXMuaG9yaXpvbnRhbFNjcm9sbEJhcldpZHRofXB4YCk7XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdGVkaXRpbmdGaXgoKSB7XHJcblx0XHRkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIChldmVudDogYW55KSA9PiB7XHJcblx0XHRcdGlmICghdGhpcy5ncmlkPy5hcGk/LmdldEVkaXRpbmdDZWxscygpPy5sZW5ndGgpIHtcclxuXHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdH1cclxuXHRcdFx0Y29uc3QgZ3JpZEVsZW1lbnQ6IGFueSA9IHRoaXMuZ3JpZFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5hZy1yb290LXdyYXBwZXInKTtcclxuXHRcdFx0aWYgKCFncmlkRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQpKSB7XHJcblx0XHRcdFx0dGhpcy5ncmlkLmFwaS5zdG9wRWRpdGluZygpO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHR9XHJcbn0iLCJAaWYgKGluaXRHcmlkKSB7XHJcblx0PGRpdlxyXG5cdFx0I2dyaWRDb250YWluZXJcclxuXHRcdFtjbGFzc109XCInZ3JpZC1jb250YWluZXIgdy1mdWxsIGZsZXgganVzdGlmeS1iZXR3ZWVuICcgKyAoYWN0UG9zKCkgPT0gJ2JvdHRvbScgPyAnZmxleC1jb2wnIDogJ2ZsZXgtY29sLXJldmVyc2UnKVwiPlxyXG5cdFx0PGFnLWdyaWQtYW5ndWxhclxyXG5cdFx0XHRbdGhlbWVdPVwibXlUaGVtZSgpXCJcclxuXHRcdFx0W2NvbHVtbkRlZnNdPVwiY29sdW1uRGVmc1wiXHJcblx0XHRcdFtncmlkT3B0aW9uc109XCJ0b09wdGlvbnMoKVwiXHJcblx0XHRcdFtsb2NhbGVUZXh0XT1cImxvY2FsZVRleHRcIlxyXG5cdFx0XHRbY29tcG9uZW50c109XCJjb21wb25lbnRzXCJcclxuXHRcdFx0W3VuZG9SZWRvQ2VsbEVkaXRpbmddPVwidG9PcHRpb25zKCkudW5kb1JlZG9DZWxsRWRpdGluZ1wiXHJcblx0XHRcdFt1bmRvUmVkb0NlbGxFZGl0aW5nTGltaXRdPVwidG9PcHRpb25zKCkudW5kb1JlZG9DZWxsRWRpdGluZ0xpbWl0XCJcclxuXHRcdFx0KGNlbGxWYWx1ZUNoYW5nZWQpPVwiY2VsbFZhbHVlQ2hhbmdlZCgkZXZlbnQpXCJcclxuXHRcdFx0KHNlbGVjdGlvbkNoYW5nZWQpPVwib25TZWxlY3Rpb25DaGFuZ2VkKCRldmVudClcIlxyXG5cdFx0XHQocm93R3JvdXBPcGVuZWQpPVwib25Sb3dHcm91cE9wZW5lZCgpXCJcclxuXHRcdFx0KGdyaWRSZWFkeSk9XCJvbkdyaWRSZWFkeSgkZXZlbnQpXCIgLz5cclxuXHRcdEBpZiAoc2hvd0FjdCgpICYmIGF1dGhMZXZlbCgpID49IDMpIHtcclxuXHRcdFx0PGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1lbmQgcHktWzVweF0gcHItWzhweF1cIj5cclxuXHRcdFx0XHQ8cC1idXR0b25cclxuXHRcdFx0XHRcdGljb249XCJwaSBwaS1wbHVzXCJcclxuXHRcdFx0XHRcdFt0ZXh0XT1cInRydWVcIlxyXG5cdFx0XHRcdFx0c2V2ZXJpdHk9XCJzdWNjZXNzXCJcclxuXHRcdFx0XHRcdChvbkNsaWNrKT1cImFkZFJvdygpXCIgLz5cclxuXHRcdFx0XHQ8cC1idXR0b25cclxuXHRcdFx0XHRcdGljb249XCJwaSBwaS10cmFzaFwiXHJcblx0XHRcdFx0XHRbdGV4dF09XCJ0cnVlXCJcclxuXHRcdFx0XHRcdHNldmVyaXR5PVwiZGFuZ2VyXCJcclxuXHRcdFx0XHRcdChvbkNsaWNrKT1cImRlbFJvd3MoKVwiIC8+XHJcblx0XHRcdDwvZGl2PlxyXG5cdFx0fVxyXG5cdDwvZGl2PlxyXG59XHJcblxyXG4iXX0=
|
|
@@ -69,7 +69,6 @@ const _gridUtils = {
|
|
|
69
69
|
treeDataChildrenField: 'children',
|
|
70
70
|
rowSelection: {
|
|
71
71
|
mode: 'multiRow',
|
|
72
|
-
// groupSelects: 'descendants',
|
|
73
72
|
},
|
|
74
73
|
autoGroupColumnDef: {
|
|
75
74
|
cellStyle: { color: 'var(--p-form-field-focus-border-color)' },
|
|
@@ -87,6 +86,14 @@ const _gridUtils = {
|
|
|
87
86
|
getServerSideGroupKey: (dataItem) => {
|
|
88
87
|
return dataItem.id;
|
|
89
88
|
},
|
|
89
|
+
onRowSelected: (event, x) => {
|
|
90
|
+
const node = event.node;
|
|
91
|
+
if (!node.group)
|
|
92
|
+
return;
|
|
93
|
+
node.childrenAfterGroup.forEach((child) => {
|
|
94
|
+
child.setSelected(node.isSelected(), false);
|
|
95
|
+
});
|
|
96
|
+
},
|
|
90
97
|
};
|
|
91
98
|
return treeOptions;
|
|
92
99
|
},
|
|
@@ -108,4 +115,4 @@ export const gridUtils = {
|
|
|
108
115
|
handleI18nKey: _gridUtils.handleI18nKey,
|
|
109
116
|
mergeOptions: _gridUtils.mergeOptions,
|
|
110
117
|
};
|
|
111
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ltbS1lbGVtZW50LXVpL3NyYy9saWIvZ3JpZC9ncmlkLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN0QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFakQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDakYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFLcEQsTUFBTSxVQUFVLEdBQUc7SUFDbEIsVUFBVSxFQUFFLENBQUMsR0FBUSxFQUFFLFlBQXFCLEVBQVMsRUFBRTtRQUN0RCxNQUFNLE1BQU0sR0FBVSxFQUFFLENBQUM7UUFDekIsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFO1lBQzdCLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDaEQsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLE1BQU0sQ0FBQztJQUNmLENBQUM7SUFDRCxjQUFjLENBQUMsUUFBZ0I7UUFDOUIsTUFBTSxZQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ3hCLE1BQU0sU0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNyQixNQUFNLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDakIsTUFBTSxXQUFXLEdBQUcsWUFBWSxHQUFHLFFBQVEsR0FBRyxTQUFTLEdBQUcsTUFBTSxDQUFDO1FBQ2pFLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUNELFFBQVEsQ0FBQyxXQUErQjtRQUN2QyxNQUFNLE9B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Q3BCLENBQUM7U0FDRCxDQUFDO1FBQ0YsT0FBTyxXQUFXLENBQUM7SUFDcEIsQ0FBQztJQUNELFlBQVksQ0FBQyxXQUF3QixFQUFFLGNBQW1CLEVBQUUsTUFBcUI7UUFDaEYsV0FBVyxDQUFDLGNBQWMsR0FBRyxjQUFjLElBQUksRUFBRSxDQUFDO1FBQ2xELElBQUksV0FBVyxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQy9CLElBQUksU0FBUyxHQUFRLFdBQVcsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxJQUFJLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUN4RyxTQUFTLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztZQUN0QixPQUFPLEVBQUUsR0FBRyxXQUFXLEVBQUUsR0FBRyxVQUFVLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7UUFDcEUsQ0FBQztRQUNELE9BQU8sRUFBRSxHQUFHLFdBQVcsRUFBRSxDQUFDO0lBQzNCLENBQUM7Q0FDRCxDQUFDO0FBQ0YsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHO0lBQ3hCLFVBQVUsRUFBRSxVQUFVLENBQUMsVUFBVTtJQUNqQyxjQUFjLEVBQUUsVUFBVSxDQUFDLGNBQWM7SUFDekMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxRQUFRO0lBQzdCLFlBQVksRUFBRSxVQUFVLENBQUMsWUFBWTtJQUNyQyxhQUFhLEVBQUUsVUFBVSxDQUFDLGFBQWE7SUFDdkMsWUFBWSxFQUFFLFVBQVUsQ0FBQyxZQUFZO0NBQ3JDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyAkZHQgfSBmcm9tICdAcHJpbWVuZy90aGVtZXMnO1xyXG5pbXBvcnQgeyB0aGVtZVF1YXJ0eiB9IGZyb20gJ2FnLWdyaWQtZW50ZXJwcmlzZSc7XHJcbmltcG9ydCB7IFRoZW1lQ29uZmlnU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2UvdGhlbWVDb25maWcuc2VydmljZSc7XHJcbmltcG9ydCB7IEFHX0dSSURfTE9DQUxFX0NOLCBBR19HUklEX0xPQ0FMRV9FTiB9IGZyb20gJ0BhZy1ncmlkLWNvbW11bml0eS9sb2NhbGUnO1xyXG5pbXBvcnQgeyBmaWx0ZXJPYmplY3RCeUtleXMgfSBmcm9tICcuLi9zaGFyZS91dGlscyc7XHJcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZS9pMThuLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBHcmlkT3B0aW9ucyB9IGZyb20gJy4vZ3JpZC9ncmlkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFjdGlvblNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlL2FjdGlvbi5zZXJ2aWNlJztcclxuXHJcbmNvbnN0IF9ncmlkVXRpbHMgPSB7XHJcblx0Y2FsY1Jvd0lkczogKGFwaTogYW55LCBpc1NlcnZlclNpZGU6IGJvb2xlYW4pOiBhbnlbXSA9PiB7XHJcblx0XHRjb25zdCByZXN1bHQ6IGFueVtdID0gW107XHJcblx0XHRhcGkuZm9yRWFjaE5vZGUoKG5vZGU6IGFueSkgPT4ge1xyXG5cdFx0XHRub2RlLmlzU2VsZWN0ZWQoKSAmJiByZXN1bHQucHVzaChub2RlLmRhdGEuaWQpO1xyXG5cdFx0fSk7XHJcblx0XHRyZXR1cm4gcmVzdWx0O1xyXG5cdH0sXHJcblx0Y2FsY0dyaWRIZWlnaHQocm93Q291bnQ6IG51bWJlcikge1xyXG5cdFx0Y29uc3QgaGVhZGVySGVpZ2h0ID0gNDk7XHJcblx0XHRjb25zdCByb3dIZWlnaHQgPSA0MjtcclxuXHRcdGNvbnN0IG1hcmdpbiA9IDI7XHJcblx0XHRjb25zdCB0b3RhbEhlaWdodCA9IGhlYWRlckhlaWdodCArIHJvd0NvdW50ICogcm93SGVpZ2h0ICsgbWFyZ2luO1xyXG5cdFx0cmV0dXJuIE1hdGgubWF4KHRvdGFsSGVpZ2h0LCA5Myk7XHJcblx0fSxcclxuXHRnZXRUaGVtZSh0aGVtZUNvbmZpZzogVGhlbWVDb25maWdTZXJ2aWNlKSB7XHJcblx0XHRjb25zdCBwcmltYXJ5ID0gdGhlbWVDb25maWcuYXBwU3RhdGUoKT8ucHJpbWFyeSBhcyBzdHJpbmc7XHJcblx0XHRyZXR1cm4gdGhlbWVRdWFydHoud2l0aFBhcmFtcyh7XHJcblx0XHRcdGFjY2VudENvbG9yOiBwcmltYXJ5LFxyXG5cdFx0XHRzZWxlY3RlZFJvd0JhY2tncm91bmRDb2xvcjogJGR0KGAke3ByaW1hcnl9LjUwYCkudmFsdWUsXHJcblx0XHRcdGNoZWNrYm94Q2hlY2tlZEJhY2tncm91bmRDb2xvcjogJGR0KGAke3ByaW1hcnl9LjUwMGApLnZhbHVlLFxyXG5cdFx0XHRyb3dIb3ZlckNvbG9yOiAkZHQoYCR7cHJpbWFyeX0uNTBgKS52YWx1ZSxcclxuXHRcdFx0cmFuZ2VTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3I6ICRkdChgJHtwcmltYXJ5fS4xMDBgKS52YWx1ZSxcclxuXHRcdFx0cmFuZ2VTZWxlY3Rpb25Cb3JkZXJDb2xvcjogJGR0KGAke3ByaW1hcnl9LjEwMGApLnZhbHVlLFxyXG5cdFx0XHR3cmFwcGVyQm9yZGVyUmFkaXVzOiAwLFxyXG5cdFx0fSk7XHJcblx0fSxcclxuXHQvLyBhZy1ncmlkIOacrOWcsOWbvemZheWMliDlrpjmlrnml6Dms7Dmlofnv7vor5HljIUg55uu5YmN5pqC55So6Iux5paHIOWQjue7remcgOimgeWGjee/u+ivkVxyXG5cdGdldExvY2FsVGV4dChsb2NhbDogc3RyaW5nKSB7XHJcblx0XHRsZXQgbG9jYWxlVGV4dDtcclxuXHRcdHN3aXRjaCAobG9jYWwpIHtcclxuXHRcdFx0Y2FzZSAnemgtQ04nOlxyXG5cdFx0XHRcdGxvY2FsZVRleHQgPSBBR19HUklEX0xPQ0FMRV9DTjtcclxuXHRcdFx0XHRicmVhaztcclxuXHRcdFx0Y2FzZSAnZW4tVVMnOlxyXG5cdFx0XHRcdGxvY2FsZVRleHQgPSBBR19HUklEX0xPQ0FMRV9FTjtcclxuXHRcdFx0XHRicmVhaztcclxuXHRcdFx0Y2FzZSAndGgtVEgnOlxyXG5cdFx0XHRcdGxvY2FsZVRleHQgPSBBR19HUklEX0xPQ0FMRV9FTjtcclxuXHRcdFx0XHRicmVhaztcclxuXHRcdFx0ZGVmYXVsdDpcclxuXHRcdFx0XHQnJztcclxuXHRcdH1cclxuXHRcdHJldHVybiBsb2NhbGVUZXh0O1xyXG5cdH0sXHJcblx0aGFuZGxlSTE4bktleShjb2xzOiBhbnlbXSwgaTE4bjogSTE4blNlcnZpY2UpIHtcclxuXHRcdGNvbnN0IGNvbHVtbkRlZnM6IGFueVtdID0gW107XHJcblx0XHRjb2xzLmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xyXG5cdFx0XHRsZXQgY29sczogYW55O1xyXG5cdFx0XHRpZiAoaXRlbS5oYXNPd25Qcm9wZXJ0eSgnaTE4bktleScpKSB7XHJcblx0XHRcdFx0bGV0IGhlYWRlck5hbWUgPSBpMThuLmZhbnlpKGl0ZW0uaTE4bktleSk7XHJcblx0XHRcdFx0Y29scyA9IHsgLi4uaXRlbSwgaGVhZGVyTmFtZSB9O1xyXG5cdFx0XHRcdGRlbGV0ZSBjb2xzLmkxOG5LZXk7XHJcblx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0Y29scyA9IHsgLi4uaXRlbSB9O1xyXG5cdFx0XHR9XHJcblx0XHRcdGNvbHVtbkRlZnMucHVzaChjb2xzKTtcclxuXHRcdH0pO1xyXG5cdFx0cmV0dXJuIGNvbHVtbkRlZnM7XHJcblx0fSxcclxuXHRnZXRUcmVlT3B0aW9ucyhjb2x1bW5EZWY6IGFueSk6IGFueSB7XHJcblx0XHRjb25zdCB0cmVlT3B0aW9ucyA9IHtcclxuXHRcdFx0dHJlZURhdGE6IHRydWUsXHJcblx0XHRcdHRyZWVEYXRhQ2hpbGRyZW5GaWVsZDogJ2NoaWxkcmVuJyxcclxuXHRcdFx0cm93U2VsZWN0aW9uOiB7XHJcblx0XHRcdFx0bW9kZTogJ211bHRpUm93JyxcclxuXHRcdFx0XHQvLyBncm91cFNlbGVjdHM6ICdkZXNjZW5kYW50cycsXHJcblx0XHRcdH0sXHJcblx0XHRcdGF1dG9Hcm91cENvbHVtbkRlZjoge1xyXG5cdFx0XHRcdGNlbGxTdHlsZTogeyBjb2xvcjogJ3ZhcigtLXAtZm9ybS1maWVsZC1mb2N1cy1ib3JkZXItY29sb3IpJyB9LFxyXG5cdFx0XHRcdGNlbGxSZW5kZXJlcjogJ2FnR3JvdXBDZWxsUmVuZGVyZXInLFxyXG5cdFx0XHRcdGNlbGxSZW5kZXJlclBhcmFtczoge1xyXG5cdFx0XHRcdFx0Li4uY29sdW1uRGVmLmNlbGxSZW5kZXJlclBhcmFtcyxcclxuXHRcdFx0XHRcdGlubmVyUmVuZGVyZXI6ICdsaW5rUmVuZGVyZXInLFxyXG5cdFx0XHRcdFx0c3VwcHJlc3NDb3VudDogdHJ1ZSxcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdC4uLmZpbHRlck9iamVjdEJ5S2V5cyhjb2x1bW5EZWYsIFsnaGVhZGVyTmFtZScsICdmaWVsZCcsICdtaW5XaWR0aCddKSxcclxuXHRcdFx0fSxcclxuXHRcdFx0aXNTZXJ2ZXJTaWRlR3JvdXA6IChkYXRhSXRlbTogYW55KSA9PiB7XHJcblx0XHRcdFx0cmV0dXJuICEhZGF0YUl0ZW0uY2hpbGRyZW47XHJcblx0XHRcdH0sXHJcblx0XHRcdGdldFNlcnZlclNpZGVHcm91cEtleTogKGRhdGFJdGVtOiBhbnkpID0+IHtcclxuXHRcdFx0XHRyZXR1cm4gZGF0YUl0ZW0uaWQ7XHJcblx0XHRcdH0sXHJcblx0XHR9O1xyXG5cdFx0cmV0dXJuIHRyZWVPcHRpb25zO1xyXG5cdH0sXHJcblx0bWVyZ2VPcHRpb25zKGdyaWRPcHRpb25zOiBHcmlkT3B0aW9ucywgY2FjaGVCbG9ja1NpemU6IGFueSwgYWN0aW9uOiBBY3Rpb25TZXJ2aWNlKTogYW55IHtcclxuXHRcdGdyaWRPcHRpb25zLmNhY2hlQmxvY2tTaXplID0gY2FjaGVCbG9ja1NpemUgPz8gNTA7XHJcblx0XHRpZiAoZ3JpZE9wdGlvbnMudHJlZURhdGFGaWVsZCkge1xyXG5cdFx0XHRsZXQgY29sdW1uRGVmOiBhbnkgPSBncmlkT3B0aW9ucy5jb2x1bW5EZWZzPy5maW5kKChjb2w6IGFueSkgPT4gY29sLmZpZWxkID09IGdyaWRPcHRpb25zLnRyZWVEYXRhRmllbGQpO1xyXG5cdFx0XHRjb2x1bW5EZWYuaGlkZSA9IHRydWU7XHJcblx0XHRcdHJldHVybiB7IC4uLmdyaWRPcHRpb25zLCAuLi5fZ3JpZFV0aWxzLmdldFRyZWVPcHRpb25zKGNvbHVtbkRlZikgfTtcclxuXHRcdH1cclxuXHRcdHJldHVybiB7IC4uLmdyaWRPcHRpb25zIH07XHJcblx0fSxcclxufTtcclxuZXhwb3J0IGNvbnN0IGdyaWRVdGlscyA9IHtcclxuXHRjYWxjUm93SWRzOiBfZ3JpZFV0aWxzLmNhbGNSb3dJZHMsXHJcblx0Y2FsY0dyaWRIZWlnaHQ6IF9ncmlkVXRpbHMuY2FsY0dyaWRIZWlnaHQsXHJcblx0Z2V0VGhlbWU6IF9ncmlkVXRpbHMuZ2V0VGhlbWUsXHJcblx0Z2V0TG9jYWxUZXh0OiBfZ3JpZFV0aWxzLmdldExvY2FsVGV4dCxcclxuXHRoYW5kbGVJMThuS2V5OiBfZ3JpZFV0aWxzLmhhbmRsZUkxOG5LZXksXHJcblx0bWVyZ2VPcHRpb25zOiBfZ3JpZFV0aWxzLm1lcmdlT3B0aW9ucyxcclxufTtcclxuIl19
|
|
118
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ltbS1lbGVtZW50LXVpL3NyYy9saWIvZ3JpZC9ncmlkLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN0QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFakQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDakYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFLcEQsTUFBTSxVQUFVLEdBQUc7SUFDbEIsVUFBVSxFQUFFLENBQUMsR0FBUSxFQUFFLFlBQXFCLEVBQVMsRUFBRTtRQUN0RCxNQUFNLE1BQU0sR0FBVSxFQUFFLENBQUM7UUFDekIsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFO1lBQzdCLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDaEQsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLE1BQU0sQ0FBQztJQUNmLENBQUM7SUFDRCxjQUFjLENBQUMsUUFBZ0I7UUFDOUIsTUFBTSxZQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ3hCLE1BQU0sU0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNyQixNQUFNLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDakIsTUFBTSxXQUFXLEdBQUcsWUFBWSxHQUFHLFFBQVEsR0FBRyxTQUFTLEdBQUcsTUFBTSxDQUFDO1FBQ2pFLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUNELFFBQVEsQ0FBQyxXQUErQjtRQUN2QyxNQUFNLE9B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QVk7SUFDckMsYUFBYSxFQUFFLFVBQVUsQ0FBQyxhQUFhO0lBQ3ZDLFlBQVksRUFBRSxVQUFVLENBQUMsWUFBWTtDQUNyQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgJGR0IH0gZnJvbSAnQHByaW1lbmcvdGhlbWVzJztcclxuaW1wb3J0IHsgdGhlbWVRdWFydHogfSBmcm9tICdhZy1ncmlkLWVudGVycHJpc2UnO1xyXG5pbXBvcnQgeyBUaGVtZUNvbmZpZ1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlL3RoZW1lQ29uZmlnLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBR19HUklEX0xPQ0FMRV9DTiwgQUdfR1JJRF9MT0NBTEVfRU4gfSBmcm9tICdAYWctZ3JpZC1jb21tdW5pdHkvbG9jYWxlJztcclxuaW1wb3J0IHsgZmlsdGVyT2JqZWN0QnlLZXlzIH0gZnJvbSAnLi4vc2hhcmUvdXRpbHMnO1xyXG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2UvaTE4bi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgR3JpZE9wdGlvbnMgfSBmcm9tICcuL2dyaWQvZ3JpZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZS9hY3Rpb24uc2VydmljZSc7XHJcblxyXG5jb25zdCBfZ3JpZFV0aWxzID0ge1xyXG5cdGNhbGNSb3dJZHM6IChhcGk6IGFueSwgaXNTZXJ2ZXJTaWRlOiBib29sZWFuKTogYW55W10gPT4ge1xyXG5cdFx0Y29uc3QgcmVzdWx0OiBhbnlbXSA9IFtdO1xyXG5cdFx0YXBpLmZvckVhY2hOb2RlKChub2RlOiBhbnkpID0+IHtcclxuXHRcdFx0bm9kZS5pc1NlbGVjdGVkKCkgJiYgcmVzdWx0LnB1c2gobm9kZS5kYXRhLmlkKTtcclxuXHRcdH0pO1xyXG5cdFx0cmV0dXJuIHJlc3VsdDtcclxuXHR9LFxyXG5cdGNhbGNHcmlkSGVpZ2h0KHJvd0NvdW50OiBudW1iZXIpIHtcclxuXHRcdGNvbnN0IGhlYWRlckhlaWdodCA9IDQ5O1xyXG5cdFx0Y29uc3Qgcm93SGVpZ2h0ID0gNDI7XHJcblx0XHRjb25zdCBtYXJnaW4gPSAyO1xyXG5cdFx0Y29uc3QgdG90YWxIZWlnaHQgPSBoZWFkZXJIZWlnaHQgKyByb3dDb3VudCAqIHJvd0hlaWdodCArIG1hcmdpbjtcclxuXHRcdHJldHVybiBNYXRoLm1heCh0b3RhbEhlaWdodCwgOTMpO1xyXG5cdH0sXHJcblx0Z2V0VGhlbWUodGhlbWVDb25maWc6IFRoZW1lQ29uZmlnU2VydmljZSkge1xyXG5cdFx0Y29uc3QgcHJpbWFyeSA9IHRoZW1lQ29uZmlnLmFwcFN0YXRlKCk/LnByaW1hcnkgYXMgc3RyaW5nO1xyXG5cdFx0cmV0dXJuIHRoZW1lUXVhcnR6LndpdGhQYXJhbXMoe1xyXG5cdFx0XHRhY2NlbnRDb2xvcjogcHJpbWFyeSxcclxuXHRcdFx0c2VsZWN0ZWRSb3dCYWNrZ3JvdW5kQ29sb3I6ICRkdChgJHtwcmltYXJ5fS41MGApLnZhbHVlLFxyXG5cdFx0XHRjaGVja2JveENoZWNrZWRCYWNrZ3JvdW5kQ29sb3I6ICRkdChgJHtwcmltYXJ5fS41MDBgKS52YWx1ZSxcclxuXHRcdFx0cm93SG92ZXJDb2xvcjogJGR0KGAke3ByaW1hcnl9LjUwYCkudmFsdWUsXHJcblx0XHRcdHJhbmdlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yOiAkZHQoYCR7cHJpbWFyeX0uMTAwYCkudmFsdWUsXHJcblx0XHRcdHJhbmdlU2VsZWN0aW9uQm9yZGVyQ29sb3I6ICRkdChgJHtwcmltYXJ5fS4xMDBgKS52YWx1ZSxcclxuXHRcdFx0d3JhcHBlckJvcmRlclJhZGl1czogMCxcclxuXHRcdH0pO1xyXG5cdH0sXHJcblx0Ly8gYWctZ3JpZCDmnKzlnLDlm73pmYXljJYg5a6Y5pa55peg5rOw5paH57+76K+R5YyFIOebruWJjeaagueUqOiLseaWhyDlkI7nu63pnIDopoHlho3nv7vor5FcclxuXHRnZXRMb2NhbFRleHQobG9jYWw6IHN0cmluZykge1xyXG5cdFx0bGV0IGxvY2FsZVRleHQ7XHJcblx0XHRzd2l0Y2ggKGxvY2FsKSB7XHJcblx0XHRcdGNhc2UgJ3poLUNOJzpcclxuXHRcdFx0XHRsb2NhbGVUZXh0ID0gQUdfR1JJRF9MT0NBTEVfQ047XHJcblx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdGNhc2UgJ2VuLVVTJzpcclxuXHRcdFx0XHRsb2NhbGVUZXh0ID0gQUdfR1JJRF9MT0NBTEVfRU47XHJcblx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdGNhc2UgJ3RoLVRIJzpcclxuXHRcdFx0XHRsb2NhbGVUZXh0ID0gQUdfR1JJRF9MT0NBTEVfRU47XHJcblx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdGRlZmF1bHQ6XHJcblx0XHRcdFx0Jyc7XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gbG9jYWxlVGV4dDtcclxuXHR9LFxyXG5cdGhhbmRsZUkxOG5LZXkoY29sczogYW55W10sIGkxOG46IEkxOG5TZXJ2aWNlKSB7XHJcblx0XHRjb25zdCBjb2x1bW5EZWZzOiBhbnlbXSA9IFtdO1xyXG5cdFx0Y29scy5mb3JFYWNoKChpdGVtOiBhbnkpID0+IHtcclxuXHRcdFx0bGV0IGNvbHM6IGFueTtcclxuXHRcdFx0aWYgKGl0ZW0uaGFzT3duUHJvcGVydHkoJ2kxOG5LZXknKSkge1xyXG5cdFx0XHRcdGxldCBoZWFkZXJOYW1lID0gaTE4bi5mYW55aShpdGVtLmkxOG5LZXkpO1xyXG5cdFx0XHRcdGNvbHMgPSB7IC4uLml0ZW0sIGhlYWRlck5hbWUgfTtcclxuXHRcdFx0XHRkZWxldGUgY29scy5pMThuS2V5O1xyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdGNvbHMgPSB7IC4uLml0ZW0gfTtcclxuXHRcdFx0fVxyXG5cdFx0XHRjb2x1bW5EZWZzLnB1c2goY29scyk7XHJcblx0XHR9KTtcclxuXHRcdHJldHVybiBjb2x1bW5EZWZzO1xyXG5cdH0sXHJcblx0Z2V0VHJlZU9wdGlvbnMoY29sdW1uRGVmOiBhbnkpOiBhbnkge1xyXG5cdFx0Y29uc3QgdHJlZU9wdGlvbnMgPSB7XHJcblx0XHRcdHRyZWVEYXRhOiB0cnVlLFxyXG5cdFx0XHR0cmVlRGF0YUNoaWxkcmVuRmllbGQ6ICdjaGlsZHJlbicsXHJcblx0XHRcdHJvd1NlbGVjdGlvbjoge1xyXG5cdFx0XHRcdG1vZGU6ICdtdWx0aVJvdycsXHJcblx0XHRcdH0sXHJcblx0XHRcdGF1dG9Hcm91cENvbHVtbkRlZjoge1xyXG5cdFx0XHRcdGNlbGxTdHlsZTogeyBjb2xvcjogJ3ZhcigtLXAtZm9ybS1maWVsZC1mb2N1cy1ib3JkZXItY29sb3IpJyB9LFxyXG5cdFx0XHRcdGNlbGxSZW5kZXJlcjogJ2FnR3JvdXBDZWxsUmVuZGVyZXInLFxyXG5cdFx0XHRcdGNlbGxSZW5kZXJlclBhcmFtczoge1xyXG5cdFx0XHRcdFx0Li4uY29sdW1uRGVmLmNlbGxSZW5kZXJlclBhcmFtcyxcclxuXHRcdFx0XHRcdGlubmVyUmVuZGVyZXI6ICdsaW5rUmVuZGVyZXInLFxyXG5cdFx0XHRcdFx0c3VwcHJlc3NDb3VudDogdHJ1ZSxcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdC4uLmZpbHRlck9iamVjdEJ5S2V5cyhjb2x1bW5EZWYsIFsnaGVhZGVyTmFtZScsICdmaWVsZCcsICdtaW5XaWR0aCddKSxcclxuXHRcdFx0fSxcclxuXHRcdFx0aXNTZXJ2ZXJTaWRlR3JvdXA6IChkYXRhSXRlbTogYW55KSA9PiB7XHJcblx0XHRcdFx0cmV0dXJuICEhZGF0YUl0ZW0uY2hpbGRyZW47XHJcblx0XHRcdH0sXHJcblx0XHRcdGdldFNlcnZlclNpZGVHcm91cEtleTogKGRhdGFJdGVtOiBhbnkpID0+IHtcclxuXHRcdFx0XHRyZXR1cm4gZGF0YUl0ZW0uaWQ7XHJcblx0XHRcdH0sXHJcblx0XHRcdG9uUm93U2VsZWN0ZWQ6IChldmVudDogYW55LCB4OiBhbnkpID0+IHtcclxuXHRcdFx0XHRjb25zdCBub2RlID0gZXZlbnQubm9kZTtcclxuXHRcdFx0XHRpZiAoIW5vZGUuZ3JvdXApIHJldHVybjtcclxuXHRcdFx0XHRub2RlLmNoaWxkcmVuQWZ0ZXJHcm91cC5mb3JFYWNoKChjaGlsZDogYW55KSA9PiB7XHJcblx0XHRcdFx0XHRjaGlsZC5zZXRTZWxlY3RlZChub2RlLmlzU2VsZWN0ZWQoKSwgZmFsc2UpO1xyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHR9LFxyXG5cdFx0fTtcclxuXHRcdHJldHVybiB0cmVlT3B0aW9ucztcclxuXHR9LFxyXG5cdG1lcmdlT3B0aW9ucyhncmlkT3B0aW9uczogR3JpZE9wdGlvbnMsIGNhY2hlQmxvY2tTaXplOiBhbnksIGFjdGlvbjogQWN0aW9uU2VydmljZSk6IGFueSB7XHJcblx0XHRncmlkT3B0aW9ucy5jYWNoZUJsb2NrU2l6ZSA9IGNhY2hlQmxvY2tTaXplID8/IDUwO1xyXG5cdFx0aWYgKGdyaWRPcHRpb25zLnRyZWVEYXRhRmllbGQpIHtcclxuXHRcdFx0bGV0IGNvbHVtbkRlZjogYW55ID0gZ3JpZE9wdGlvbnMuY29sdW1uRGVmcz8uZmluZCgoY29sOiBhbnkpID0+IGNvbC5maWVsZCA9PSBncmlkT3B0aW9ucy50cmVlRGF0YUZpZWxkKTtcclxuXHRcdFx0Y29sdW1uRGVmLmhpZGUgPSB0cnVlO1xyXG5cdFx0XHRyZXR1cm4geyAuLi5ncmlkT3B0aW9ucywgLi4uX2dyaWRVdGlscy5nZXRUcmVlT3B0aW9ucyhjb2x1bW5EZWYpIH07XHJcblx0XHR9XHJcblx0XHRyZXR1cm4geyAuLi5ncmlkT3B0aW9ucyB9O1xyXG5cdH0sXHJcbn07XHJcbmV4cG9ydCBjb25zdCBncmlkVXRpbHMgPSB7XHJcblx0Y2FsY1Jvd0lkczogX2dyaWRVdGlscy5jYWxjUm93SWRzLFxyXG5cdGNhbGNHcmlkSGVpZ2h0OiBfZ3JpZFV0aWxzLmNhbGNHcmlkSGVpZ2h0LFxyXG5cdGdldFRoZW1lOiBfZ3JpZFV0aWxzLmdldFRoZW1lLFxyXG5cdGdldExvY2FsVGV4dDogX2dyaWRVdGlscy5nZXRMb2NhbFRleHQsXHJcblx0aGFuZGxlSTE4bktleTogX2dyaWRVdGlscy5oYW5kbGVJMThuS2V5LFxyXG5cdG1lcmdlT3B0aW9uczogX2dyaWRVdGlscy5tZXJnZU9wdGlvbnMsXHJcbn07XHJcblxyXG4iXX0=
|
|
@@ -85,9 +85,13 @@ export class UserHistoryService {
|
|
|
85
85
|
this.historyList().pop();
|
|
86
86
|
}
|
|
87
87
|
// 清空history
|
|
88
|
-
clear() {
|
|
88
|
+
clear(path) {
|
|
89
89
|
window.sessionStorage.removeItem('crumbAction');
|
|
90
|
-
|
|
90
|
+
let newHistory = [];
|
|
91
|
+
if (path) {
|
|
92
|
+
newHistory = this.historyList().filter(v => v.url === path);
|
|
93
|
+
}
|
|
94
|
+
this.historyList.set(newHistory);
|
|
91
95
|
}
|
|
92
96
|
// 手动触发详情页面获取title
|
|
93
97
|
setLastTitle(title) {
|
|
@@ -103,4 +107,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
103
107
|
type: Injectable,
|
|
104
108
|
args: [{ providedIn: 'root' }]
|
|
105
109
|
}], ctorParameters: () => [{ type: i1.Router }, { type: i1.ActivatedRoute }] });
|
|
106
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlckhpc3Rvcnkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ltbS1lbGVtZW50LXVpL3NyYy9saWIvc2VydmljZS91c2VySGlzdG9yeS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUMxRCxPQUFPLEVBQTBDLGFBQWEsRUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hHLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFVLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBVzdDLE1BQU0sT0FBTyxrQkFBa0I7SUFZN0IsWUFBbUIsTUFBYyxFQUFRLEtBQXFCO1FBQTNDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFBUSxVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQVg5RCxnQkFBVyxHQUFHLE1BQU0sQ0FBZ0IsRUFBRSxDQUFDLENBQUE7UUFDdkMsWUFBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTTthQUN6QixJQUFJLENBQ0gsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxZQUFZLGFBQWEsQ0FBQyxFQUMvQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNaLGlDQUFpQztZQUNqQyxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDdEUsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtRQUNILGVBQVUsR0FBRyxFQUFFLENBQUE7UUFDZixTQUFJLEdBQUUsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFBO1FBR3ZCLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLEVBQUMsQ0FBQyxL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QUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLEtBQUssQ0FBQyxDQUFBO1lBQ2xELElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFBO1FBQ2xDLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTztRQUNMLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQTtJQUMxQixDQUFDO0lBQ0QsWUFBWTtJQUNaLEtBQUs7UUFDSCxNQUFNLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQTtRQUMvQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQTtJQUMxQixDQUFDO0lBRUQsbUJBQW1CO0lBQ25CLFlBQVksQ0FBQyxLQUFZO1FBQ3ZCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxHQUFHLEVBQWlCLENBQUE7UUFDcEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssRUFBQyxFQUFDLEdBQUcsSUFBSSxFQUFDLEtBQUssRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ2hFLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFBO1FBQzVDLGlFQUFpRTtJQUVuRSxDQUFDOytHQWxHVSxrQkFBa0I7bUhBQWxCLGtCQUFrQixjQURQLE1BQU07OzRGQUNqQixrQkFBa0I7a0JBRDlCLFVBQVU7bUJBQUMsRUFBQyxVQUFVLEVBQUMsTUFBTSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlLCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgTmF2aWdhdGlvbkVuZCwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgZmlsdGVyLCBtYXAsIGNvbmZpZyB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4vaTE4bi5zZXJ2aWNlJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSGlzdG9yeUl0ZW0ge1xyXG4gIC8vIHR5cGU6ICdyb3V0ZXJMaW5rJyB8ICdjcmVhdGUnLFxyXG4gIHRpdGxlOiBzdHJpbmcsXHJcbiAgdXJsOiBzdHJpbmcsXHJcbiAgY29uZmlnUGF0aDogc3RyaW5nLFxyXG4gIGkxOG5LZXk6c3RyaW5nXHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKHtwcm92aWRlZEluOidyb290J30pXHJcbmV4cG9ydCBjbGFzcyBVc2VySGlzdG9yeVNlcnZpY2Uge1xyXG4gIGhpc3RvcnlMaXN0ID0gc2lnbmFsPEhpc3RvcnlJdGVtW10+KFtdKVxyXG4gIHJvdXRlciQgPSB0aGlzLnJvdXRlci5ldmVudHNcclxuICAgIC5waXBlKFxyXG4gICAgICBmaWx0ZXIoZXZlbnQgPT4gZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSxcclxuICAgICAgbWFwKChldmVudCkgPT57XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coJ2V2ZW50LS0tLScsZXZlbnQpXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlQnJlYWRjcnVtYnModGhpcy5yb3V0ZXIucm91dGVyU3RhdGUuc25hcHNob3Qucm9vdClcclxuICAgICAgfSlcclxuICAgIClcclxuICBkZXRhaWxOYW1lID0gJydcclxuICBpMThuID1pbmplY3QoSTE4blNlcnZpY2UpXHJcbiAgY29uc3RydWN0b3IocHVibGljIHJvdXRlcjogUm91dGVyLHB1YmxpYyByb3V0ZTogQWN0aXZhdGVkUm91dGUpe1xyXG5cclxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdiZWZvcmV1bmxvYWQnLChldmVudCkgPT4ge1xyXG4gICAgICB3aW5kb3cuc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgnY3J1bWJBY3Rpb24nLCBKU09OLnN0cmluZ2lmeSh0aGlzLmhpc3RvcnlMaXN0KCkpKVxyXG4gICAgfSlcclxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywoKSA9PiB7XHJcbiAgICAgIGxldCBoaXN0b3J5ID0gd2luZG93LnNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ2NydW1iQWN0aW9uJylcclxuICAgICAgY29uc29sZS5sb2coJ2NydW1iQWN0aW9uLWxvY2Fsc3RvcnknLGhpc3RvcnkpXHJcbiAgICAgIGlmKGhpc3Rvcnkpe1xyXG4gICAgICAgIHRoaXMuaGlzdG9yeUxpc3Quc2V0KEpTT04ucGFyc2UoaGlzdG9yeSkpXHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIFxyXG4gIHByaXZhdGUgY3JlYXRlQnJlYWRjcnVtYnMocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIHVybDogc3RyaW5nID0gJycsIGJyZWFkY3J1bWJzOiBhbnlbXSA9IFtdKTphbnkge1xyXG4gICAgY29uc3QgY2hpbGRyZW46IEFjdGl2YXRlZFJvdXRlU25hcHNob3RbXSA9IHJvdXRlLmNoaWxkcmVuO1xyXG4gICAgaWYoY2hpbGRyZW4ubGVuZ3RoID09IDApIHJldHVybiBcclxuICAgIGNvbnN0IGNoaWxkID0gY2hpbGRyZW5bMF07XHJcbiAgICBjb25zdCByb3V0ZVVSTDogc3RyaW5nID0gY2hpbGQudXJsLm1hcChzZWdtZW50ID0+IHNlZ21lbnQucGF0aCkuam9pbignLycpO1xyXG4gICAgY29uc3QgcXVlcnlLZXlzID0gT2JqZWN0LmtleXMoY2hpbGQucXVlcnlQYXJhbXMpICB8fCBbXVxyXG4gICAgaWYgKHJvdXRlVVJMICE9PSAnJykge1xyXG4gICAgICB1cmwgKz0gYC8ke3JvdXRlVVJMfWA7XHJcbiAgICB9XHJcbiAgICBpZihxdWVyeUtleXMubGVuZ3RoID4gMCl7XHJcbiAgICAgIHVybCs9Jz8nXHJcbiAgICAgIHF1ZXJ5S2V5cy5mb3JFYWNoKHYgPT4ge1xyXG4gICAgICAgIHVybCs9YCR7dn09JHtjaGlsZC5xdWVyeVBhcmFtc1t2XX1gXHJcbiAgICAgIH0pXHJcbiAgICB9XHJcbiAgICBsZXQgdGl0bGU6IHN0cmluZyA9ICcnO1xyXG4gICAgaWYgKGNoaWxkLmRhdGFbJ3RpdGxlJ10pIHtcclxuICAgICAgaWYgKHR5cGVvZiBjaGlsZC5kYXRhWyd0aXRsZSddID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgdGl0bGUgPSBjaGlsZC5kYXRhWyd0aXRsZSddKGNoaWxkKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aXRsZSA9IGNoaWxkLmRhdGFbJ3RpdGxlJ11cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgY29uc3QgaTE4bktleSA9IGNoaWxkLmRhdGFbJ2kxOG5LZXknXSA/IGNoaWxkLmRhdGFbJ2kxOG5LZXknXSA6ICcnXHJcbiAgICAvLyBjb25zdCBjb25maWdQYXRoOiBzdHJpbmcgPSBjaGlsZC5yb3V0ZUNvbmZpZz8ucGF0aCBhcyBzdHJpbmdcclxuICAgIGNvbnN0IGNvbmZpZ1BhdGggPSBjaGlsZC5wYXJhbXMuaGFzT3duUHJvcGVydHkoJ2lkJykgPyB1cmwucmVwbGFjZSgvKFteXFwvXSopJC8sIFwiXCIpIDogdXJsXHJcbiAgICBjb25zdCBwYXJhbXNLZXlzID0gT2JqZWN0LmtleXMoY2hpbGQucGFyYW1zKVxyXG4gICAgLy8gY29uc29sZS5sb2coJ3RpdGxlJyxjaGlsZCxjb25maWdQYXRoLHVybClcclxuICAgIGlmKHRpdGxlICYmIGNvbmZpZ1BhdGgpe1xyXG4gICAgICBsZXQgaXNFeGl0ID0gdGhpcy5oaXN0b3J5TGlzdCgpLmZpbHRlcih2ID0+IHYuY29uZmlnUGF0aCA9PSBjb25maWdQYXRoKSBcclxuICAgICAgLy8gY29uZmlnUGF0aC5pbmRleE9mKCc6JykgPiAtMSAmJiBwYXJhbXNLZXlzLmxlbmd0aCA+IDAgJiYgKCB0aXRsZSA9IHRoaXMuZGV0YWlsTmFtZSlcclxuICAgICAgaWYoaXNFeGl0Lmxlbmd0aCA9PSAwKXtcclxuICAgICAgICB0aGlzLmhpc3RvcnlMaXN0LnVwZGF0ZSgodmFsdWUpID0+IFsuLi52YWx1ZSx7dGl0bGUsdXJsLGNvbmZpZ1BhdGgsaTE4bktleX1dKVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuYmFja1VybCh1cmwpXHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIC8vIGNvbnNvbGUubG9nKCdoaXN0b3J5LS0tLScsdGhpcy5oaXN0b3J5TGlzdCgpKVxyXG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlQnJlYWRjcnVtYnMoY2hpbGQsIHVybCwgYnJlYWRjcnVtYnMpO1xyXG4gIH1cclxuICBhZGRIaXN0b3J5TGlzdChpdGVtOiBIaXN0b3J5SXRlbSl7XHJcbiAgICB0aGlzLmhpc3RvcnlMaXN0LnVwZGF0ZSgodmFsdWUpID0+IFsuLi52YWx1ZSxpdGVtXSlcclxuICB9XHJcblxyXG4gIGJhY2tVcmwodXJsOnN0cmluZyl7XHJcbiAgICBsZXQgaW5kZXggPSB0aGlzLmhpc3RvcnlMaXN0KCkuZmluZEluZGV4KHYgPT4gdi51cmwgPT0gdXJsKVxyXG4gICAgbGV0IGxlbmd0aCA9IHRoaXMuaGlzdG9yeUxpc3QoKS5sZW5ndGhcclxuICAgIGlmKGluZGV4ICsgMSAhPT0gbGVuZ3RoKXtcclxuICAgICAgbGV0IG5ld0hpc3RvcnkgPSB0aGlzLmhpc3RvcnlMaXN0KCkuc2xpY2UoMCxpbmRleClcclxuICAgICAgdGhpcy5oaXN0b3J5TGlzdC5zZXQobmV3SGlzdG9yeSlcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGxhc3RQb3AoKXtcclxuICAgIHRoaXMuaGlzdG9yeUxpc3QoKS5wb3AoKVxyXG4gIH1cclxuICAvLyDmuIXnqbpoaXN0b3J5XHJcbiAgY2xlYXIoKXtcclxuICAgIHdpbmRvdy5zZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKCdjcnVtYkFjdGlvbicpXHJcbiAgICB0aGlzLmhpc3RvcnlMaXN0LnNldChbXSlcclxuICB9XHJcblxyXG4gIC8vIOaJi+WKqOinpuWPkeivpuaDhemhtemdouiOt+WPlnRpdGxlIFxyXG4gIHNldExhc3RUaXRsZSh0aXRsZTpzdHJpbmcpe1xyXG4gICAgY29uc3QgbGFzdCA9IHRoaXMuaGlzdG9yeUxpc3QoKS5wb3AoKSBhcyBIaXN0b3J5SXRlbVxyXG4gICAgdGhpcy5oaXN0b3J5TGlzdC51cGRhdGUoKHZhbHVlKSA9PiAoWy4uLnZhbHVlLHsuLi5sYXN0LHRpdGxlfV0pKVxyXG4gICAgY29uc29sZS5sb2coJ3NldC0tdGl0bGUnLHRoaXMuaGlzdG9yeUxpc3QoKSlcclxuICAgIC8vIGNvbnN0IGxhc3QgPSB0aGlzLmhpc3RvcnlMaXN0KClbdGhpcy5oaXN0b3J5TGlzdCgpLmxlbmd0aCAtIDFdXHJcblxyXG4gIH1cclxuXHJcbn0iXX0=
|
|
110
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlckhpc3Rvcnkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ltbS1lbGVtZW50LXVpL3NyYy9saWIvc2VydmljZS91c2VySGlzdG9yeS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUMxRCxPQUFPLEVBQTBDLGFBQWEsRUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hHLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFVLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBVzdDLE1BQU0sT0FBTyxrQkFBa0I7SUFZN0IsWUFBbUIsTUFBYyxFQUFRLEtBQXFCO1FBQTNDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFBUSxVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQVg5RCxnQkFBVyxHQUFHLE1BQU0sQ0FBZ0IsRUFBRSxDQUFDLENBQUE7UUFDdkMsWUFBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTTthQUN6QixJQUFJLENBQ0gsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxZQUFZLGFBQWEsQ0FBQyxFQUMvQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNaLGlDQUFpQztZQUNqQyxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDdEUsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtRQUNILGVBQVUsR0FBRyxFQUFFLENBQUE7UUFDZixTQUFJLEdBQUUsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFBO1FBR3ZCLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLEVBQUMsQ0FBQyxL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QUMsRUFBQyxVQUFVLEVBQUMsTUFBTSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlLCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgTmF2aWdhdGlvbkVuZCwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgZmlsdGVyLCBtYXAsIGNvbmZpZyB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4vaTE4bi5zZXJ2aWNlJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSGlzdG9yeUl0ZW0ge1xyXG4gIC8vIHR5cGU6ICdyb3V0ZXJMaW5rJyB8ICdjcmVhdGUnLFxyXG4gIHRpdGxlOiBzdHJpbmcsXHJcbiAgdXJsOiBzdHJpbmcsXHJcbiAgY29uZmlnUGF0aDogc3RyaW5nLFxyXG4gIGkxOG5LZXk6c3RyaW5nXHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKHtwcm92aWRlZEluOidyb290J30pXHJcbmV4cG9ydCBjbGFzcyBVc2VySGlzdG9yeVNlcnZpY2Uge1xyXG4gIGhpc3RvcnlMaXN0ID0gc2lnbmFsPEhpc3RvcnlJdGVtW10+KFtdKVxyXG4gIHJvdXRlciQgPSB0aGlzLnJvdXRlci5ldmVudHNcclxuICAgIC5waXBlKFxyXG4gICAgICBmaWx0ZXIoZXZlbnQgPT4gZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSxcclxuICAgICAgbWFwKChldmVudCkgPT57XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coJ2V2ZW50LS0tLScsZXZlbnQpXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlQnJlYWRjcnVtYnModGhpcy5yb3V0ZXIucm91dGVyU3RhdGUuc25hcHNob3Qucm9vdClcclxuICAgICAgfSlcclxuICAgIClcclxuICBkZXRhaWxOYW1lID0gJydcclxuICBpMThuID1pbmplY3QoSTE4blNlcnZpY2UpXHJcbiAgY29uc3RydWN0b3IocHVibGljIHJvdXRlcjogUm91dGVyLHB1YmxpYyByb3V0ZTogQWN0aXZhdGVkUm91dGUpe1xyXG5cclxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdiZWZvcmV1bmxvYWQnLChldmVudCkgPT4ge1xyXG4gICAgICB3aW5kb3cuc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgnY3J1bWJBY3Rpb24nLCBKU09OLnN0cmluZ2lmeSh0aGlzLmhpc3RvcnlMaXN0KCkpKVxyXG4gICAgfSlcclxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywoKSA9PiB7XHJcbiAgICAgIGxldCBoaXN0b3J5ID0gd2luZG93LnNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ2NydW1iQWN0aW9uJylcclxuICAgICAgY29uc29sZS5sb2coJ2NydW1iQWN0aW9uLWxvY2Fsc3RvcnknLGhpc3RvcnkpXHJcbiAgICAgIGlmKGhpc3Rvcnkpe1xyXG4gICAgICAgIHRoaXMuaGlzdG9yeUxpc3Quc2V0KEpTT04ucGFyc2UoaGlzdG9yeSkpXHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIFxyXG4gIHByaXZhdGUgY3JlYXRlQnJlYWRjcnVtYnMocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIHVybDogc3RyaW5nID0gJycsIGJyZWFkY3J1bWJzOiBhbnlbXSA9IFtdKTphbnkge1xyXG4gICAgY29uc3QgY2hpbGRyZW46IEFjdGl2YXRlZFJvdXRlU25hcHNob3RbXSA9IHJvdXRlLmNoaWxkcmVuO1xyXG4gICAgaWYoY2hpbGRyZW4ubGVuZ3RoID09IDApIHJldHVybiBcclxuICAgIGNvbnN0IGNoaWxkID0gY2hpbGRyZW5bMF07XHJcbiAgICBjb25zdCByb3V0ZVVSTDogc3RyaW5nID0gY2hpbGQudXJsLm1hcChzZWdtZW50ID0+IHNlZ21lbnQucGF0aCkuam9pbignLycpO1xyXG4gICAgY29uc3QgcXVlcnlLZXlzID0gT2JqZWN0LmtleXMoY2hpbGQucXVlcnlQYXJhbXMpICB8fCBbXVxyXG4gICAgaWYgKHJvdXRlVVJMICE9PSAnJykge1xyXG4gICAgICB1cmwgKz0gYC8ke3JvdXRlVVJMfWA7XHJcbiAgICB9XHJcbiAgICBpZihxdWVyeUtleXMubGVuZ3RoID4gMCl7XHJcbiAgICAgIHVybCs9Jz8nXHJcbiAgICAgIHF1ZXJ5S2V5cy5mb3JFYWNoKHYgPT4ge1xyXG4gICAgICAgIHVybCs9YCR7dn09JHtjaGlsZC5xdWVyeVBhcmFtc1t2XX1gXHJcbiAgICAgIH0pXHJcbiAgICB9XHJcbiAgICBsZXQgdGl0bGU6IHN0cmluZyA9ICcnO1xyXG4gICAgaWYgKGNoaWxkLmRhdGFbJ3RpdGxlJ10pIHtcclxuICAgICAgaWYgKHR5cGVvZiBjaGlsZC5kYXRhWyd0aXRsZSddID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgdGl0bGUgPSBjaGlsZC5kYXRhWyd0aXRsZSddKGNoaWxkKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aXRsZSA9IGNoaWxkLmRhdGFbJ3RpdGxlJ11cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgY29uc3QgaTE4bktleSA9IGNoaWxkLmRhdGFbJ2kxOG5LZXknXSA/IGNoaWxkLmRhdGFbJ2kxOG5LZXknXSA6ICcnXHJcbiAgICAvLyBjb25zdCBjb25maWdQYXRoOiBzdHJpbmcgPSBjaGlsZC5yb3V0ZUNvbmZpZz8ucGF0aCBhcyBzdHJpbmdcclxuICAgIGNvbnN0IGNvbmZpZ1BhdGggPSBjaGlsZC5wYXJhbXMuaGFzT3duUHJvcGVydHkoJ2lkJykgPyB1cmwucmVwbGFjZSgvKFteXFwvXSopJC8sIFwiXCIpIDogdXJsXHJcbiAgICBjb25zdCBwYXJhbXNLZXlzID0gT2JqZWN0LmtleXMoY2hpbGQucGFyYW1zKVxyXG4gICAgLy8gY29uc29sZS5sb2coJ3RpdGxlJyxjaGlsZCxjb25maWdQYXRoLHVybClcclxuICAgIGlmKHRpdGxlICYmIGNvbmZpZ1BhdGgpe1xyXG4gICAgICBsZXQgaXNFeGl0ID0gdGhpcy5oaXN0b3J5TGlzdCgpLmZpbHRlcih2ID0+IHYuY29uZmlnUGF0aCA9PSBjb25maWdQYXRoKSBcclxuICAgICAgLy8gY29uZmlnUGF0aC5pbmRleE9mKCc6JykgPiAtMSAmJiBwYXJhbXNLZXlzLmxlbmd0aCA+IDAgJiYgKCB0aXRsZSA9IHRoaXMuZGV0YWlsTmFtZSlcclxuICAgICAgaWYoaXNFeGl0Lmxlbmd0aCA9PSAwKXtcclxuICAgICAgICB0aGlzLmhpc3RvcnlMaXN0LnVwZGF0ZSgodmFsdWUpID0+IFsuLi52YWx1ZSx7dGl0bGUsdXJsLGNvbmZpZ1BhdGgsaTE4bktleX1dKVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuYmFja1VybCh1cmwpXHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIC8vIGNvbnNvbGUubG9nKCdoaXN0b3J5LS0tLScsdGhpcy5oaXN0b3J5TGlzdCgpKVxyXG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlQnJlYWRjcnVtYnMoY2hpbGQsIHVybCwgYnJlYWRjcnVtYnMpO1xyXG4gIH1cclxuICBhZGRIaXN0b3J5TGlzdChpdGVtOiBIaXN0b3J5SXRlbSl7XHJcbiAgICB0aGlzLmhpc3RvcnlMaXN0LnVwZGF0ZSgodmFsdWUpID0+IFsuLi52YWx1ZSxpdGVtXSlcclxuICB9XHJcblxyXG4gIGJhY2tVcmwodXJsOnN0cmluZyl7XHJcbiAgICBsZXQgaW5kZXggPSB0aGlzLmhpc3RvcnlMaXN0KCkuZmluZEluZGV4KHYgPT4gdi51cmwgPT0gdXJsKVxyXG4gICAgbGV0IGxlbmd0aCA9IHRoaXMuaGlzdG9yeUxpc3QoKS5sZW5ndGhcclxuICAgIGlmKGluZGV4ICsgMSAhPT0gbGVuZ3RoKXtcclxuICAgICAgbGV0IG5ld0hpc3RvcnkgPSB0aGlzLmhpc3RvcnlMaXN0KCkuc2xpY2UoMCxpbmRleClcclxuICAgICAgdGhpcy5oaXN0b3J5TGlzdC5zZXQobmV3SGlzdG9yeSlcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGxhc3RQb3AoKXtcclxuICAgIHRoaXMuaGlzdG9yeUxpc3QoKS5wb3AoKVxyXG4gIH1cclxuICAvLyDmuIXnqbpoaXN0b3J5XHJcbiAgY2xlYXIocGF0aD86c3RyaW5nKXtcclxuICAgIHdpbmRvdy5zZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKCdjcnVtYkFjdGlvbicpXHJcbiAgICBsZXQgbmV3SGlzdG9yeSA6YW55PSBbXVxyXG4gICAgaWYocGF0aCkge1xyXG4gICAgICBuZXdIaXN0b3J5ID0gdGhpcy5oaXN0b3J5TGlzdCgpLmZpbHRlcih2ID0+IHYudXJsID09PSBwYXRoKVxyXG4gICAgfVxyXG4gICAgdGhpcy5oaXN0b3J5TGlzdC5zZXQobmV3SGlzdG9yeSlcclxuICB9XHJcblxyXG4gIC8vIOaJi+WKqOinpuWPkeivpuaDhemhtemdouiOt+WPlnRpdGxlIFxyXG4gIHNldExhc3RUaXRsZSh0aXRsZTpzdHJpbmcpe1xyXG4gICAgY29uc3QgbGFzdCA9IHRoaXMuaGlzdG9yeUxpc3QoKS5wb3AoKSBhcyBIaXN0b3J5SXRlbVxyXG4gICAgdGhpcy5oaXN0b3J5TGlzdC51cGRhdGUoKHZhbHVlKSA9PiAoWy4uLnZhbHVlLHsuLi5sYXN0LHRpdGxlfV0pKVxyXG4gICAgY29uc29sZS5sb2coJ3NldC0tdGl0bGUnLHRoaXMuaGlzdG9yeUxpc3QoKSlcclxuICAgIC8vIGNvbnN0IGxhc3QgPSB0aGlzLmhpc3RvcnlMaXN0KClbdGhpcy5oaXN0b3J5TGlzdCgpLmxlbmd0aCAtIDFdXHJcblxyXG4gIH1cclxuXHJcbn0iXX0=
|