@eui/components 17.3.11-snapshot-1726186323855 → 17.3.11
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/docs/components/EuiAlertComponent.html +1 -1
- package/docs/components/EuiPaginatorComponent.html +105 -1
- package/docs/dependencies.html +3 -3
- package/docs/js/search/search_index.js +2 -2
- package/esm2022/eui-alert/eui-alert.component.mjs +3 -3
- package/esm2022/eui-paginator/eui-paginator.component.mjs +12 -3
- package/esm2022/externals/eui-editor/eui-editor.component.mjs +4 -4
- package/eui-paginator/eui-paginator.component.d.ts +4 -1
- package/eui-paginator/eui-paginator.component.d.ts.map +1 -1
- package/externals/eui-editor/eui-editor.component.d.ts.map +1 -1
- package/fesm2022/eui-components-eui-alert.mjs +2 -2
- package/fesm2022/eui-components-eui-alert.mjs.map +1 -1
- package/fesm2022/eui-components-eui-paginator.mjs +11 -2
- package/fesm2022/eui-components-eui-paginator.mjs.map +1 -1
- package/fesm2022/eui-components-externals-eui-editor.mjs +3 -3
- package/fesm2022/eui-components-externals-eui-editor.mjs.map +1 -1
- package/package.json +27 -27
@@ -367,12 +367,12 @@ export class EuiEditorComponent {
|
|
367
367
|
}
|
368
368
|
calculateCounters(content) {
|
369
369
|
let text;
|
370
|
-
const regex =
|
370
|
+
const regex = /[\s\n]+/;
|
371
371
|
if (this.format === 'html') {
|
372
372
|
if (content && content.length > 0 && this.quill) {
|
373
373
|
text = this.stripHtml(content);
|
374
374
|
this.charactersCount = text.length;
|
375
|
-
text =
|
375
|
+
text = content.replace(/<\/(p|div|br|li|h[1-6])>/gi, ' ').replace(/<[^>]+>/g, '');
|
376
376
|
this.wordsCount = !text ? 0 : text.trim().split(regex).filter(t => t !== '').length;
|
377
377
|
}
|
378
378
|
else {
|
@@ -385,7 +385,7 @@ export class EuiEditorComponent {
|
|
385
385
|
if (content && this.quill) {
|
386
386
|
text = this.stripHtml(this.quill.root.innerHTML);
|
387
387
|
this.charactersCount = text.length;
|
388
|
-
text = this.
|
388
|
+
text = this.quill.root.innerHTML.replace(/<\/(p|div|br|li|h[1-6])>/gi, ' ').replace(/<[^>]+>/g, '');
|
389
389
|
this.wordsCount = !text ? 0 : text.trim().split(regex).filter(t => t !== '').length;
|
390
390
|
}
|
391
391
|
else {
|
@@ -497,4 +497,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.7", ngImpor
|
|
497
497
|
type: HostBinding,
|
498
498
|
args: ['class']
|
499
499
|
}] } });
|
500
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLWVkaXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9leHRlcm5hbHMvZXVpLWVkaXRvci9ldWktZWRpdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL2V4dGVybmFscy9ldWktZWRpdG9yL2V1aS1lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFFTixpQkFBaUIsRUFDakIsdUJBQXVCLEVBQ3ZCLFdBQVcsRUFFWCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsR0FHYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLFdBQVcsRUFBd0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUd6RixPQUFPLEVBQUUscUJBQXFCLEVBQWdCLE1BQU0sdUJBQXVCLENBQUM7QUFHNUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sS0FBSyxNQUFNLGFBQWEsQ0FBQztBQUVoQyxPQUFPLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFHL0UsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sK0NBQStDLENBQUM7Ozs7Ozs7Ozs7O0FBVDlGLDBHQUEwRztBQUMxRyxNQUFNLFNBQVMsR0FBUSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7QUFTdkMsd0NBQXdDO0FBQ3hDLElBQUksZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7QUFjbEQsTUFBTSxPQUFPLGtCQUFrQjtJQTJCM0IsSUFDSSxRQUFRO1FBQ1IsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFD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O3NCQUFqQyxXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxuICAgIE9uSW5pdCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBIb3N0QmluZGluZyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgRGlyZWN0aXZlLFxuICAgIENvbnRlbnRDaGlsZCxcbiAgICBmb3J3YXJkUmVmLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIE5nQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENvbnRlbnRDaGFuZ2UsIFF1aWxsTW9kdWxlcyB9IGZyb20gJ0BldWkvY29tcG9uZW50cy9leHRlcm5hbHMvcXVpbGwnO1xuXG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHksIEJvb2xlYW5JbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uLG5vLXVuZGVyc2NvcmUtZGFuZ2xlLGlkLWRlbnlsaXN0LGlkLW1hdGNoXG5jb25zdCBRdWlsbFR5cGU6IGFueSA9IHdpbmRvd1snUXVpbGwnXTtcbmltcG9ydCB7IHN0YXJ0V2l0aCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IERlbHRhIGZyb20gJ3F1aWxsLWRlbHRhJztcblxuaW1wb3J0IHsgRXVpRGlhbG9nQ29uZmlnLCBFdWlEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnQGV1aS9jb21wb25lbnRzL2V1aS1kaWFsb2cnO1xuXG5pbXBvcnQgeyBMb2FkZXJTZXJ2aWNlLCBCZXR0ZXJUYWJsZU1vZHVsZSwgQmx1ciwgRWRpdG9yQ2hhbmdlU2VsZWN0aW9uLCBGb2N1cywgU2VsZWN0aW9uQ2hhbmdlLCBUb29sYmFySXRlbUNvbmZpZyB9IGZyb20gJ0BldWkvY29tcG9uZW50cy9leHRlcm5hbHMvcXVpbGwnO1xuaW1wb3J0IHsgRXVpRWRpdG9ySW1hZ2VEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2ltYWdlLXVybC1kaWFsb2cvaW1hZ2UtdXJsLWRpYWxvZy5jb21wb25lbnQnO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHByZWZlci1jb25zdFxubGV0IFF1aWxsQmV0dGVyVGFibGUgPSB3aW5kb3dbJ3F1aWxsQmV0dGVyVGFibGUnXTtcblxuQENvbXBvbmVudCh7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgc2VsZWN0b3I6ICdldWktZWRpdG9yJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZXVpLWVkaXRvci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vc3R5bGVzL19pbmRleC5zY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgLy8gVE9ETzogQ2hlY2sgdG8gY2hhbmdlIHRoZSBwcm92aWRpbmcgd2F5LiBQcm92aWRlIHdpdGggaW5qZWN0b3IgcmVmZXJlbmNlXG4gICAgICAgIEV1aURpYWxvZ1NlcnZpY2UsXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRXVpRWRpdG9yQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICBASW5wdXQoKSBlMmVBdHRyID0gJ2V1aS1lZGl0b3InO1xuICAgIEBJbnB1dCgpIGlkOiBzdHJpbmc7XG4gICAgQElucHV0KCkgc3R5bGVDbGFzcyA9ICcnO1xuICAgIEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gJyc7XG4gICAgQElucHV0KCkgZm9ybWF0OiAnaHRtbCcgfCAnanNvbicgPSAnaHRtbCc7XG4gICAgQElucHV0KCkgdGhlbWU6ICdzbm93JyB8ICdidWJibGUnID0gJ3Nub3cnO1xuICAgIEBJbnB1dCgpIGRlYnVnOiAnd2FybicgfCAnbG9nJyB8ICdlcnJvcicgfCBmYWxzZSA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGN1c3RvbVRvb2xiYXJQb3NpdGlvbjogJ3RvcCcgfCAnYm90dG9tJyA9ICd0b3AnO1xuICAgIEBJbnB1dCgpIHRhYmluZGV4ID0gJzAnO1xuICAgIEBJbnB1dCgpIG1vZHVsZXM6IFF1aWxsTW9kdWxlcztcbiAgICBASW5wdXQoKSBmb3JtYXRzPzogc3RyaW5nW10gfCBudWxsO1xuICAgIC8vIE5FVyBFVUkgSU5QVVRTXG4gICAgQElucHV0KCkgY3VzdG9tVG9vbGJhckNvbmZpZzogVG9vbGJhckl0ZW1Db25maWdbXTtcbiAgICBASW5wdXQoKSBoZWlnaHQ6IHN0cmluZztcbiAgICAvLyBORVcgT1VUUFVUUyA9PiBlVUkxMysgb25seVxuICAgIEBPdXRwdXQoKSBlZGl0b3JDcmVhdGUgPSBuZXcgRXZlbnRFbWl0dGVyPHR5cGVvZiBRdWlsbFR5cGU+KCk7XG4gICAgQE91dHB1dCgpIGVkaXRvckNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RWRpdG9yQ2hhbmdlU2VsZWN0aW9uIHwgQ29udGVudENoYW5nZT4oKTtcbiAgICBAT3V0cHV0KCkgY29udGVudENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q29udGVudENoYW5nZT4oKTtcbiAgICBAT3V0cHV0KCkgc2VsZWN0aW9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxTZWxlY3Rpb25DaGFuZ2U+KCk7XG4gICAgQE91dHB1dCgpIGZvY3VzID0gbmV3IEV2ZW50RW1pdHRlcjxGb2N1cz4oKTtcbiAgICBAT3V0cHV0KCkgYmx1ciA9IG5ldyBFdmVudEVtaXR0ZXI8Qmx1cj4oKTtcbiAgICBAT3V0cHV0KCkgY2hhcmFjdGVyc0NvdW50Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG4gICAgQE91dHB1dCgpIHdvcmRzQ291bnRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZXVpLWVkaXRvcicpIHRydWU6IGJvb2xlYW47XG5cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIucmVhZG9ubHknKVxuICAgIGdldCByZWFkb25seSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5pc1JlYWRPbmx5ID8gJ3JlYWRvbmx5JyA6IG51bGw7XG4gICAgfVxuXG4gICAgcHVibGljIHZhbHVlOiBzdHJpbmcgfCBhbnkgPSAnJztcbiAgICBwdWJsaWMgY2hhcmFjdGVyc0NvdW50ID0gMDtcbiAgICBwdWJsaWMgd29yZHNDb3VudCA9IDA7XG4gICAgcHVibGljIGJ5dGVzQ291bnQgPSAwO1xuICAgIHB1YmxpYyBpc0ZvY3VzZWQgPSBmYWxzZTtcbiAgICBwdWJsaWMgZ2VuZXJhdGVkSWQ6IHN0cmluZztcbiAgICBwdWJsaWMgZm9ybUNvbnRyb2w6IEZvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sKCk7XG4gICAgcHVibGljIGpzb25Ub0h0bWxDb250ZW50OiBzdHJpbmc7XG4gICAgcHVibGljIHRvb2xiYXJDb25maWc6IHsgW2lkOiBzdHJpbmddOiB7IGxhYmVsOiBzdHJpbmc7IG9wdGlvbnM6IGFueVtdOyBkaWFsb2dNZXNzYWdlOiBzdHJpbmcgfSB9O1xuICAgIHByb3RlY3RlZCByZWFkeVRvUmVuZGVyOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWF4LWxlblxuICAgIEBDb250ZW50Q2hpbGQoZm9yd2FyZFJlZigoKSA9PiBFdWlFZGl0b3JDdXN0b21Ub29sYmFyVGFnRGlyZWN0aXZlKSwgeyBzdGF0aWM6IGZhbHNlIH0pXG4gICAgZXVpRWRpdG9yQ3VzdG9tVG9vbGJhcjogRXVpRWRpdG9yQ3VzdG9tVG9vbGJhclRhZ0RpcmVjdGl2ZTtcblxuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGlzUmVhZE9ubHkoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc1JlYWRPbmx5O1xuICAgIH1cbiAgICBzZXQgaXNSZWFkT25seSh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2lzUmVhZE9ubHkgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwcml2YXRlIF9pc1JlYWRPbmx5ID0gZmFsc2U7XG4gICAgQElucHV0KClcbiAgICBnZXQgc2hvd0NvdW50ZXJzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fc2hvd0NvdW50ZXJzO1xuICAgIH1cbiAgICBzZXQgc2hvd0NvdW50ZXJzKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5fc2hvd0NvdW50ZXJzID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfc2hvd0NvdW50ZXJzID0gdHJ1ZTtcbiAgICBASW5wdXQoKVxuICAgIGdldCBpc0VuYWJsZWRPbkZvY3VzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNFbmFibGVkT25Gb2N1cztcbiAgICB9XG4gICAgc2V0IGlzRW5hYmxlZE9uRm9jdXModmFsdWUpIHtcbiAgICAgICAgdGhpcy5faXNFbmFibGVkT25Gb2N1cyA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIHByaXZhdGUgX2lzRW5hYmxlZE9uRm9jdXMgPSBmYWxzZTtcbiAgICBASW5wdXQoKVxuICAgIGdldCBpc01pbmltYWxUb29sYmFyKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNNaW5pbWFsVG9vbGJhcjtcbiAgICB9XG4gICAgc2V0IGlzTWluaW1hbFRvb2xiYXIodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9pc01pbmltYWxUb29sYmFyID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfaXNNaW5pbWFsVG9vbGJhciA9IGZhbHNlO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtaW52YWxpZCcpXG4gICAgZ2V0IGlzSW52YWxpZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzSW52YWxpZDtcbiAgICB9XG4gICAgc2V0IGlzSW52YWxpZCh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2lzSW52YWxpZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIHByaXZhdGUgX2lzSW52YWxpZCA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSBxdWlsbDogdHlwZW9mIFF1aWxsVHlwZTtcbiAgICBwcml2YXRlIG1pbmltYWxUb29sYmFyQ29uZmlnOiBUb29sYmFySXRlbUNvbmZpZ1tdID0gW1xuICAgICAgICB7IG5hbWU6ICdoZWFkaW5ncycgfSxcbiAgICAgICAgeyBuYW1lOiAnYm9sZCcgfSxcbiAgICAgICAgeyBuYW1lOiAnaXRhbGljJyB9LFxuICAgICAgICB7IG5hbWU6ICd1bmRlcmxpbmUnIH0sXG4gICAgICAgIHsgbmFtZTogJ2ZvbnRDb2xvcicgfSxcbiAgICAgICAgeyBuYW1lOiAndGV4dEFsaWduJyB9LFxuICAgICAgICB7IG5hbWU6ICdsaW5rJyB9LFxuICAgICAgICB7IG5hbWU6ICdpbWFnZScgfSxcbiAgICAgICAgeyBuYW1lOiAnaW1hZ2VVcmwnIH0sXG4gICAgICAgIHsgbmFtZTogJ2NsZWFuJyB9LFxuICAgICAgICB7IG5hbWU6ICdkZWxldGUnIH0sXG4gICAgICAgIHsgbmFtZTogJ3VuZG8nIH0sXG4gICAgICAgIHsgbmFtZTogJ3JlZG8nIH0sXG4gICAgICAgIHsgbmFtZTogJ2NvdW50ZXJzJyB9LFxuICAgIF07XG4gICAgcHJpdmF0ZSBkZWZhdWx0VG9vbGJhckNvbmZpZzogVG9vbGJhckl0ZW1Db25maWdbXSA9IFtcbiAgICAgICAgeyBuYW1lOiAnaGVhZGluZ3MnLCBsYWJlbDogJ1N0eWxlIC0gQXBwbHkgYW4gSFRNTCB0YWcgb3IgQ1NTIGNsYXNzIHRvIHRoZSBzZWxlY3RlZCB0ZXh0Jywgb3B0aW9uczogWzEsIDIsIDMsIDQsIDUsIDZdIH0sXG4gICAgICAgIHsgbmFtZTogJ2ZvbnQnLCBsYWJlbDogJ0ZvbnQgLSBDaGFuZ2UgdGhlIGZvbnQgZmFjZScgfSxcbiAgICAgICAgeyBuYW1lOiAnYm9sZCcsIGxhYmVsOiAnQm9sZCAoQ3RybCArIEIpIC0gTWFrZSB0aGUgc2VsZWN0ZWQgdGV4dCBib2xkJyB9LFxuICAgICAgICB7IG5hbWU6ICdpdGFsaWMnLCBsYWJlbDogJ0l0YWxpYyAoQ3RybCArIEkpIC0gSXRhbGljaXplIHRoZSBzZWxlY3RlZCB0ZXh0JyB9LFxuICAgICAgICB7IG5hbWU6ICd1bmRlcmxpbmUnLCBsYWJlbDogJ1VuZGVybGluZSAoQ3RybCArIFUpIC0gVW5kZXJsaW5lIHRoZSBzZWxlY3RlZCB0ZXh0JyB9LFxuICAgICAgICB7IG5hbWU6ICdzdHJpa2UnLCBsYWJlbDogJ1N0cmlrZXRocm91Z2ggLSBEcmF3IGEgbGluZSB0byB0aGUgbWlkZGxlIG9mIHRoZSBzZWxlY3RlZCB0ZXh0JyB9LFxuICAgICAgICB7IG5hbWU6ICdmb250Q29sb3InLCBsYWJlbDogJ0ZvbnQgQ29sb3IgLSBDaGFuZ2UgdGhlIHRleHQgY29sb3InIH0sXG4gICAgICAgIHsgbmFtZTogJ2ZvbnRCYWNrZ3JvdW5kJywgbGFiZWw6ICdGb250IEJhY2tncm91bmQgLSBDaGFuZ2UgdGhlIHRleHQgYmFja2dyb3VuZCBjb2xvcicgfSxcbiAgICAgICAgeyBuYW1lOiAnc3Vic2NyaXB0JywgbGFiZWw6ICdTdWJzY3JpcHQgLSBDcmVhdGUgc3NtYWxsIGxldHRlcnMgYmVsb3cgdGhlIHRleHQgYmFzZWxpbmUnIH0sXG4gICAgICAgIHsgbmFtZTogJ3N1cGVyc2NyaXB0JywgbGFiZWw6ICdTdXBlcnNjcmlwdCAtIENyZWF0ZSBzbWFsbCBsZXR0ZXJzIGFib3ZlIHRoZSBsaW5lIG9mIHRoZSB0ZXh0JyB9LFxuICAgICAgICB7IG5hbWU6ICd0ZXh0QWxpZ24nLCBsYWJlbDogJ1RleHQgQWxpZ24gLSBBbGlnbiB0aGUgdGV4dCB0byB0aGUgc2VsZWN0ZWQgcG9zaXRpb246IGxlZnQgKGRlZmF1bHQpLCBjZW50ZXIsIHJpZ2h0IG9yIGp1c3RpZnknIH0sXG4gICAgICAgIHsgbmFtZTogJ29yZGVyZWRMaXN0JywgbGFiZWw6ICdOdW1iZXJpbmcgLSBTdGFydCBhbiBvcmRlcmVkIGxpc3QnIH0sXG4gICAgICAgIHsgbmFtZTogJ2J1bGxldExpc3QnLCBsYWJlbDogJ0J1bGxldHMgLSBTdGFydCBhIGJ1bGxldGVkIGxpc3QnIH0sXG4gICAgICAgIHsgbmFtZTogJ2luZGVudExlc3MnLCBsYWJlbDogJ0RlY3JlYXNlIEluZGVudCAtIERlY3JlYXNlIHRoZSBpbmRlbnQgbGV2ZWwgb2YgdGhlIHBhcmFncmFwaCcgfSxcbiAgICAgICAgeyBuYW1lOiAnaW5kZW50TW9yZScsIGxhYmVsOiAnSW5jcmVhc2UgSW5kZW50IC0gSW5jcmVhc2UgdGhlIGluZGVudCBsZXZlbCBvZiB0aGUgcGFyYWdyYXBoJyB9LFxuICAgICAgICB7IG5hbWU6ICdibG9ja3F1b3RlJywgbGFiZWw6ICdCbG9ja3F1b3RlIC0gQ3JlYXRlIGEgcXVvdGVkIGJsb2NrIG9mIHRoZSBzZWxlY3RlZCB0ZXh0JyB9LFxuICAgICAgICB7IG5hbWU6ICdjb2RlQmxvY2snLCBsYWJlbDogJ0luc2VydCBDb2RlIEJsb2NrIC0gSW5zZXJ0IGEgY29kZSBibG9jayBhdCB0aGUgY3Vyc29yIHJvdyBwb3NpdGlvbicgfSxcbiAgICAgICAgeyBuYW1lOiAnbGluaycsIGxhYmVsOiAnSW5zZXJ0IEh5cGVybGluayAoQ3RybCArIEspIC0gQ3JlYXRlIGEgbGluayB0byBhIFdlYiBwYWdlLCBhIHBpY3R1cmUsIGFuIGUtbWFpbCBhZGRyZXNzIG9yIGEgcHJvZ3JhbScgfSxcbiAgICAgICAgeyBuYW1lOiAnaW1hZ2UnLCBsYWJlbDogJ0luc2VydCBQaWN0dXJlIC0gSW5zZXJ0IGEgcGljdHVyZSBmcm9tIGEgZmlsZScgfSxcbiAgICAgICAgeyBuYW1lOiAnaW1hZ2VVcmwnLCBsYWJlbDogJ0luc2VydCBQaWN0dXJlIGZyb20gVVJMIC0gSW5zZXJ0IGEgcGljdHVyZSBmcm9tIGEgcmVtb3RlIFVSTCcsIGRpYWxvZ01lc3NhZ2U6ICdFbnRlciBpbWFnZSBsaW5rIFVSTCcgfSxcbiAgICAgICAgeyBuYW1lOiAndmlkZW8nLCBsYWJlbDogJ0luc2VydCBWaWRlbyAtIEluc2VydCBhIHZpZGVvIGZyb20gYSBmaWxlJyB9LFxuICAgICAgICB7IG5hbWU6ICd0YWJsZScsIGxhYmVsOiAnSW5zZXJ0IFRhYmxlIC0gSW5zZXJ0IGEgM3gzIHJvd3MvY29scyB0YWJsZScgfSxcbiAgICAgICAgeyBuYW1lOiAnY2xlYW4nLCBsYWJlbDogJ1JlbW92ZSBTdHlsZXMgLSBSZW1vdmUgdGhlIHN0eWxlcyBvZiB0aGUgc2VsZWN0ZWQgdGV4dCcgfSxcbiAgICAgICAgeyBuYW1lOiAnZGVsZXRlJywgbGFiZWw6IFwiRGVsZXRlIGNvbnRlbnQgLSBQZXJtYW5lbnRseSBkZWxldGVzIGVkaXRvcidzIGNvbnRlbnRzXCIgfSxcbiAgICAgICAgeyBuYW1lOiAndW5kbycsIGxhYmVsOiAnVW5kbyAoQ3RybCArIFopIC0gQ2FuY2VscyB0aGUgcHJldmlvdXMgYWN0aW9uJyB9LFxuICAgICAgICB7IG5hbWU6ICdyZWRvJywgbGFiZWw6ICdSZWRvIChDdHJsICsgWSkgLSBEbyB0aGUgbmV4dCBoaXN0b3J5IGFjdGlvbiBhZ2FpbicgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ2NvdW50ZXJzJyxcbiAgICAgICAgICAgIGxhYmVsOiAnQ291bnRlcnMgLSBDaGFyYWN0ZXJzIGFuZCB3b3JkcyBjb3VudGVycyAoc3RyaXBwZWQgSHRtbCknLFxuICAgICAgICAgICAgb3B0aW9uczogW1xuICAgICAgICAgICAgICAgIHsgbmFtZTogJ2NoYXJhY3RlcnMnLCBsYWJlbDogJ0NoYXJhY3RlcnMnIH0sXG4gICAgICAgICAgICAgICAgeyBuYW1lOiAnd29yZHMnLCBsYWJlbDogJ1dvcmRzJyB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICBdO1xuICAgIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBldWlEaWFsb2dTZXJ2aWNlOiBFdWlEaWFsb2dTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgICAgICAgICBwcml2YXRlIG5nQ29udHJvbDogTmdDb250cm9sLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgbG9hZGVyOiBMb2FkZXJTZXJ2aWNlKSB7XG4gICAgICAgIHRoaXMubmdDb250cm9sLnZhbHVlQWNjZXNzb3IgPSB0aGlzO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmxvYWRlci5sb2FkKCkuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgIGNvbXBsZXRlOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZWFkeVRvUmVuZGVyID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLm5nQ29udHJvbC5zdGF0dXNDaGFuZ2VzLnBpcGUoc3RhcnRXaXRoKHRoaXMubmdDb250cm9sLmNvbnRyb2wuc3RhdHVzKSwgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKHN0YXR1cykgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzSW52YWxpZCA9IHN0YXR1cyAhPT0gJ1ZBTElEJztcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIHRoaXMuZ2VuZXJhdGVkSWQgPSB0aGlzLmlkID8gdGhpcy5pZCA6ICdldWktZWRpdG9yLScgKyAoTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMTAwMDAwMCkgKyAxKS50b1N0cmluZygpO1xuXG4gICAgICAgICAgICAgICAgdGhpcy50b29sYmFyQ29uZmlnID0ge307XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLmN1c3RvbVRvb2xiYXJDb25maWcgJiYgIXRoaXMuaXNNaW5pbWFsVG9vbGJhcikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRlZmF1bHRUb29sYmFyQ29uZmlnLmZvckVhY2goKHQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudG9vbGJhckNvbmZpZyA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi50aGlzLnRvb2xiYXJDb25maWcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3QubmFtZV06IHsgbGFiZWw6IHQubGFiZWwsIG9wdGlvbnM6IHQub3B0aW9ucywgZGlhbG9nTWVzc2FnZTogdC5kaWFsb2dNZXNzYWdlIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5jdXN0b21Ub29sYmFyQ29uZmlnICYmICF0aGlzLmlzTWluaW1hbFRvb2xiYXIpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jdXN0b21Ub29sYmFyQ29uZmlnLmZvckVhY2goKHQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxhYmVsID0gIXQubGFiZWwgPyB0aGlzLmRlZmF1bHRUb29sYmFyQ29uZmlnLmZpbmQoKGMpID0+IGMubmFtZSA9PT0gdC5uYW1lKS5sYWJlbCA6IHQubGFiZWw7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgb3B0aW9ucyA9ICF0Lm9wdGlvbnMgPyB0aGlzLmRlZmF1bHRUb29sYmFyQ29uZmlnLmZpbmQoKGMpID0+IGMubmFtZSA9PT0gdC5uYW1lKS5vcHRpb25zIDogdC5vcHRpb25zO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZCA9ICF0LmRpYWxvZ01lc3NhZ2UgPyB0aGlzLmRlZmF1bHRUb29sYmFyQ29uZmlnLmZpbmQoKGMpID0+IGMubmFtZSA9PT0gdC5uYW1lKS5kaWFsb2dNZXNzYWdlIDogdC5kaWFsb2dNZXNzYWdlO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodC5uYW1lID09PSAnY291bnRlcnMnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF0Lm9wdGlvbnMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucyA9IHRoaXMuZGVmYXVsdFRvb2xiYXJDb25maWcuZmluZCgoYykgPT4gYy5uYW1lID09PSB0Lm5hbWUpLm9wdGlvbnM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucyA9IHQub3B0aW9ucy5tYXAoKG9wdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9uTGFiZWwgPSBvcHRpb24ubGFiZWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IG9wdGlvbi5sYWJlbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogdGhpcy5kZWZhdWx0VG9vbGJhckNvbmZpZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZmluZCgoZHRjKSA9PiBkdGMubmFtZSA9PT0gJ2NvdW50ZXJzJylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLm9wdGlvbnMuZmluZCgobykgPT4gby5uYW1lID09PSBvcHRpb24ubmFtZSkubGFiZWw7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBuYW1lOiBvcHRpb24ubmFtZSwgbGFiZWw6IG9wdGlvbkxhYmVsIH07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50b29sYmFyQ29uZmlnID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLnRoaXMudG9vbGJhckNvbmZpZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdC5uYW1lXTogeyBsYWJlbCwgb3B0aW9ucywgZGlhbG9nTWVzc2FnZTogZCB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNNaW5pbWFsVG9vbGJhcikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm1pbmltYWxUb29sYmFyQ29uZmlnLmZvckVhY2goKHQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxhYmVsID0gIXQubGFiZWwgPyB0aGlzLmRlZmF1bHRUb29sYmFyQ29uZmlnLmZpbmQoKGMpID0+IGMubmFtZSA9PT0gdC5uYW1lKS5sYWJlbCA6IHQubGFiZWw7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBvcHRpb25zID0gIXQub3B0aW9ucyA/IHRoaXMuZGVmYXVsdFRvb2xiYXJDb25maWcuZmluZCgoYykgPT4gYy5uYW1lID09PSB0Lm5hbWUpLm9wdGlvbnMgOiB0Lm9wdGlvbnM7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkID0gIXQuZGlhbG9nTWVzc2FnZSA/IHRoaXMuZGVmYXVsdFRvb2xiYXJDb25maWcuZmluZCgoYykgPT4gYy5uYW1lID09PSB0Lm5hbWUpLmRpYWxvZ01lc3NhZ2UgOiB0LmRpYWxvZ01lc3NhZ2U7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudG9vbGJhckNvbmZpZyA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi50aGlzLnRvb2xiYXJDb25maWcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3QubmFtZV06IHsgbGFiZWwsIG9wdGlvbnMsIGRpYWxvZ01lc3NhZ2U6IGQgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcbiAgICAgICAgdGhpcy5kZXN0cm95JC51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBlbmFibGVFZGl0b3JPbkZvY3VzKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc0VuYWJsZWRPbkZvY3VzKSB7XG4gICAgICAgICAgICB0aGlzLmlzUmVhZE9ubHkgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBpbWFnZVVybEhhbmRsZXIoKTogdm9pZCB7XG4gICAgICAgIGxldCBpbWFnZVVybERpYWxvZ0Zvcm06IEZvcm1Hcm91cCA9IG51bGw7XG4gICAgICAgIHRoaXMuZXVpRGlhbG9nU2VydmljZS5vcGVuRGlhbG9nKFxuICAgICAgICAgICAgbmV3IEV1aURpYWxvZ0NvbmZpZyh7XG4gICAgICAgICAgICAgICAgdGl0bGU6IHRoaXMudG9vbGJhckNvbmZpZy5pbWFnZVVybC5kaWFsb2dNZXNzYWdlLFxuICAgICAgICAgICAgICAgIGlzSGFuZGxlQ2xvc2VPbkFjY2VwdDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBib2R5Q29tcG9uZW50OiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudDogRXVpRWRpdG9ySW1hZ2VEaWFsb2dDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZzoge1xuICAgICAgICAgICAgICAgICAgICAgICAgb25Gb3JtVmFsdWVDaGFuZ2U6IChmb3JtOiBGb3JtR3JvdXApOiB2b2lkID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbWFnZVVybERpYWxvZ0Zvcm0gPSBmb3JtO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGFjY2VwdDogKCk6IHZvaWQgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaW1hZ2VVcmxEaWFsb2dGb3JtICYmIGltYWdlVXJsRGlhbG9nRm9ybS52YWxpZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ldWlEaWFsb2dTZXJ2aWNlLmNsb3NlRGlhbG9nKCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJhbmdlID0gdGhpcy5xdWlsbC5nZXRTZWxlY3Rpb24oKSB8fCB7IGluZGV4OiAwLCBsZW5ndGg6IDAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucXVpbGwuaW5zZXJ0RW1iZWQocmFuZ2UuaW5kZXgsICdpbWFnZScsIGltYWdlVXJsRGlhbG9nRm9ybS5nZXQoJ3VybCcpLnZhbHVlLCAndXNlcicpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIGVkaXRvclVuZG8oKTogdm9pZCB7XG4gICAgICAgIHRoaXMucXVpbGxbJ2hpc3RvcnknXS51bmRvKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGVkaXRvclJlZG8oKTogdm9pZCB7XG4gICAgICAgIHRoaXMucXVpbGxbJ2hpc3RvcnknXS5yZWRvKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGVkaXRvckRlbGV0ZUNvbnRlbnQoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IG5ldyBFdWlEaWFsb2dDb25maWcoe1xuICAgICAgICAgICAgdGl0bGU6ICdEZWxldGUgY29udGVudCcsXG4gICAgICAgICAgICBjb250ZW50OiBcIjxwPkFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgZWRpdG9yJ3MgY29udGVudD88L3A+XCIsXG4gICAgICAgICAgICBoYXNDbG9zZUJ1dHRvbjogZmFsc2UsXG4gICAgICAgICAgICBhY2NlcHQ6ICgpOiB2b2lkID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnF1aWxsLnNldENvbnRlbnRzKG51bGwpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5ldWlEaWFsb2dTZXJ2aWNlLm9wZW5EaWFsb2coY29uZmlnKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaW5zZXJ0VGFibGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudGFibGVNb2R1bGUuaW5zZXJ0VGFibGUoMywgMyk7XG4gICAgfVxuXG4gICAgZ2V0IGhhc0ltYWdlRmVhdHVyZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZXVpRWRpdG9yQ3VzdG9tVG9vbGJhclxuICAgICAgICAgICAgPyB0aGlzLmV1aUVkaXRvckN1c3RvbVRvb2xiYXI/LmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcucWwtaW1hZ2UnKVxuICAgICAgICAgICAgOiB0aGlzLnRvb2xiYXJDb25maWcuaW1hZ2U7XG4gICAgfVxuXG4gICAgcHVibGljIF9vbkVkaXRvckNyZWF0ZWQocXVpbGw6IHR5cGVvZiBRdWlsbFR5cGUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5xdWlsbCA9IHF1aWxsO1xuXG4gICAgICAgIGlmICh0aGlzLmlzRW5hYmxlZE9uRm9jdXMpIHtcbiAgICAgICAgICAgIHRoaXMucXVpbGwuZm9jdXMoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmZvcm1hdCA9PT0gJ2h0bWwnKSB7XG4gICAgICAgICAgICBjb25zdCBkZWx0YSA9IHRoaXMucXVpbGwuY2xpcGJvYXJkLmNvbnZlcnQoeyBodG1sOiB0aGlzLnZhbHVlIGFzIHN0cmluZyB9KTtcbiAgICAgICAgICAgIHRoaXMuZm9ybUNvbnRyb2wucGF0Y2hWYWx1ZShkZWx0YSk7XG4gICAgICAgICAgICB0aGlzLnF1aWxsLnNldENvbnRlbnRzKGRlbHRhKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmZvcm1hdCA9PT0gJ2pzb24nKSB7XG4gICAgICAgICAgICB0aGlzLmZvcm1Db250cm9sLnBhdGNoVmFsdWUodGhpcy52YWx1ZSk7XG4gICAgICAgICAgICB0aGlzLnF1aWxsLnNldENvbnRlbnRzKEpTT04ucGFyc2UodGhpcy52YWx1ZSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0aGlzLmhhc0ltYWdlRmVhdHVyZSkge1xuICAgICAgICAgICAgcXVpbGwuY2xpcGJvYXJkLmFkZE1hdGNoZXIoJ0lNRycsIChlbGVtZW50OiBFbGVtZW50LCBkZWx0YTogRGVsdGEpID0+IG5ldyBEZWx0YSgpLmluc2VydCgnJykpO1xuICAgICAgICAgICAgcXVpbGwuY2xpcGJvYXJkLmFkZE1hdGNoZXIoJ1BJQ1RVUkUnLCAoZWxlbWVudDogRWxlbWVudCwgZGVsdGE6IERlbHRhKSA9PiBuZXcgRGVsdGEoKS5pbnNlcnQoJycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZWRpdG9yQ3JlYXRlLmVtaXQocXVpbGwpO1xuICAgIH1cblxuICAgIHB1YmxpYyBfb25FZGl0b3JDaGFuZ2VkKGV2ZW50OiBFZGl0b3JDaGFuZ2VTZWxlY3Rpb24gfCBDb250ZW50Q2hhbmdlIHwgRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc29sZS53YXJuKCdvbkVkaXRvckNoYW5nZWQoKSBldmVudCBpcyBERVBSRUNBVEVEIHBsZWFzZSB1c2UgY29udGVudENoYW5nZSgpIGV2ZW50IGluc3RlYWQuJyk7XG4gICAgICAgIHRoaXMuZWRpdG9yQ2hhbmdlLmVtaXQoZXZlbnQgYXMgRWRpdG9yQ2hhbmdlU2VsZWN0aW9uKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgX29uQ29udGVudENoYW5nZWQoZXZlbnQ6IENvbnRlbnRDaGFuZ2UpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZm9ybWF0ID09PSAnaHRtbCcpIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSBldmVudC5odG1sO1xuICAgICAgICAgICAgdGhpcy5jYWxjdWxhdGVDb3VudGVycyh0aGlzLnZhbHVlIGFzIHN0cmluZyk7XG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuaHRtbEVudGl0aWVzRGVjb2RlKHRoaXMudmFsdWUgYXMgc3RyaW5nKSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuZm9ybWF0ID09PSAnanNvbicpIHtcbiAgICAgICAgICAgIGlmIChldmVudC50ZXh0ICE9PSAnXFxuJykge1xuICAgICAgICAgICAgICAgIHRoaXMudmFsdWUgPSBldmVudC5jb250ZW50O1xuICAgICAgICAgICAgICAgIHRoaXMuY2FsY3VsYXRlQ291bnRlcnMoZXZlbnQudGV4dCk7XG4gICAgICAgICAgICAgICAgdGhpcy5qc29uVG9IdG1sQ29udGVudCA9IHRoaXMuaHRtbEVudGl0aWVzRGVjb2RlKEpTT04uc3RyaW5naWZ5KHRoaXMudmFsdWUpKTtcbiAgICAgICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuanNvblRvSHRtbENvbnRlbnQpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gbnVsbDtcbiAgICAgICAgICAgICAgICB0aGlzLmNhbGN1bGF0ZUNvdW50ZXJzKCcnKTtcbiAgICAgICAgICAgICAgICB0aGlzLmpzb25Ub0h0bWxDb250ZW50ID0gJyc7XG4gICAgICAgICAgICAgICAgdGhpcy5vbkNoYW5nZShudWxsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNvbnRlbnRDaGFuZ2UuZW1pdChldmVudCk7IC8vIE5ldyBlbWl0dGVyXG4gICAgICAgIHRoaXMuX29uRWRpdG9yQ2hhbmdlZChldmVudCk7IC8vIFN5bmMgd2l0aCBlZGl0b3IgY2hhbmdlIGV2ZW50IHNpbmNlIGl0J3MgZHVwbGljYXRlZCBldmVudFxuICAgIH1cblxuICAgIHB1YmxpYyBfb25TZWxlY3Rpb25DaGFuZ2VkKGV2ZW50OiBTZWxlY3Rpb25DaGFuZ2UpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2UuZW1pdChldmVudCk7XG4gICAgfVxuXG4gICAgcHVibGljIF9vbkZvY3VzKGV2ZW50OiBGb2N1cyk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzRm9jdXNlZCA9IHRydWU7XG4gICAgICAgIHRoaXMuZm9jdXMuZW1pdChldmVudCk7XG4gICAgfVxuXG4gICAgcHVibGljIF9vbkJsdXIoZXZlbnQ6IEJsdXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc0ZvY3VzZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5vblRvdWNoKCk7XG4gICAgICAgIHRoaXMuYmx1ci5lbWl0KGV2ZW50KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uVG91Y2ggPSBmbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZSB8fCBudWxsO1xuICAgICAgICB0aGlzLmpzb25Ub0h0bWxDb250ZW50ID0gdGhpcy52YWx1ZTtcblxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLnF1aWxsKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZm9ybWF0ID09PSAnaHRtbCcpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGVsdGEgPSB0aGlzLnF1aWxsLmNsaXBib2FyZC5jb252ZXJ0KHsgaHRtbDogdGhpcy52YWx1ZSBhcyBzdHJpbmcgfSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybUNvbnRyb2wucGF0Y2hWYWx1ZShkZWx0YSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucXVpbGwuc2V0Q29udGVudHMoZGVsdGEpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmZvcm1hdCA9PT0gJ2pzb24nKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybUNvbnRyb2wucGF0Y2hWYWx1ZSh0aGlzLnZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gdGhpcy5xdWlsbC5zZXRDb250ZW50cyhKU09OLnBhcnNlKHRoaXMudmFsdWUpKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0aGlzLmNhbGN1bGF0ZUNvdW50ZXJzKHRoaXMudmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCB0YWJsZU1vZHVsZSgpOiBCZXR0ZXJUYWJsZU1vZHVsZSB7XG4gICAgICAgIHJldHVybiB0aGlzLnF1aWxsLmdldE1vZHVsZSgnYmV0dGVyLXRhYmxlJyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvbkNoYW5nZTogYW55ID0gKCkgPT4ge307XG5cbiAgICBwcml2YXRlIG9uVG91Y2g6IGFueSA9ICgpID0+IHt9O1xuXG4gICAgcHJpdmF0ZSBodG1sRW50aXRpZXNEZWNvZGUoY29udGVudDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgbGV0IGMgPSBjb250ZW50O1xuICAgICAgICBpZiAoYykge1xuICAgICAgICAgICAgYyA9IGMucmVwbGFjZSgnJmFtcDsnLCAnJicpO1xuICAgICAgICAgICAgYyA9IGMucmVwbGFjZSgnJm5ic3A7JywgJyAnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjO1xuICAgIH1cblxuICAgIGdldCBoYXNDaGFyYWN0ZXJzQ291bnRlcigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudG9vbGJhckNvbmZpZy5jb3VudGVycy5vcHRpb25zLmZpbmQoKG8pID0+IG8ubmFtZSA9PT0gJ2NoYXJhY3RlcnMnKTtcbiAgICB9XG5cbiAgICBnZXQgY2hhcmFjdGVyc0NvdW50ZXJMYWJlbCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy50b29sYmFyQ29uZmlnLmNvdW50ZXJzLm9wdGlvbnMuZmluZCgobykgPT4gby5uYW1lID09PSAnY2hhcmFjdGVycycpPy5sYWJlbDtcbiAgICB9XG5cbiAgICBnZXQgaGFzV29yZHNDb3VudGVyKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy50b29sYmFyQ29uZmlnLmNvdW50ZXJzLm9wdGlvbnMuZmluZCgobykgPT4gby5uYW1lID09PSAnd29yZHMnKTtcbiAgICB9XG5cbiAgICBnZXQgd29yZHNDb3VudGVyTGFiZWwoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudG9vbGJhckNvbmZpZy5jb3VudGVycy5vcHRpb25zLmZpbmQoKG8pID0+IG8ubmFtZSA9PT0gJ3dvcmRzJyk/LmxhYmVsO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2FsY3VsYXRlQ291bnRlcnMoY29udGVudDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGxldCB0ZXh0OiBzdHJpbmc7XG4gICAgICAgIGNvbnN0IHJlZ2V4ID0gL1xccysvO1xuICAgICAgICBpZiAodGhpcy5mb3JtYXQgPT09ICdodG1sJykge1xuICAgICAgICAgICAgaWYgKGNvbnRlbnQgJiYgY29udGVudC5sZW5ndGggPiAwICYmIHRoaXMucXVpbGwpIHtcbiAgICAgICAgICAgICAgICB0ZXh0ID0gdGhpcy5zdHJpcEh0bWwoY29udGVudCk7XG4gICAgICAgICAgICAgICAgdGhpcy5jaGFyYWN0ZXJzQ291bnQgPSB0ZXh0Lmxlbmd0aDtcbiAgICAgICAgICAgICAgICB0ZXh0ID0gdGhpcy5jbGVhbkh0bWwoY29udGVudCk7XG4gICAgICAgICAgICAgICAgdGhpcy53b3Jkc0NvdW50ID0gIXRleHQgPyAwIDogdGV4dC50cmltKCkuc3BsaXQocmVnZXgpLmZpbHRlcih0ID0+IHQgIT09ICcnKS5sZW5ndGg7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuY2hhcmFjdGVyc0NvdW50ID0gMDtcbiAgICAgICAgICAgICAgICB0aGlzLndvcmRzQ291bnQgPSAwO1xuICAgICAgICAgICAgICAgIHRoaXMuYnl0ZXNDb3VudCA9IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5mb3JtYXQgPT09ICdqc29uJykge1xuICAgICAgICAgICAgaWYgKGNvbnRlbnQgJiYgdGhpcy5xdWlsbCkge1xuICAgICAgICAgICAgICAgIHRleHQgPSB0aGlzLnN0cmlwSHRtbCh0aGlzLnF1aWxsLnJvb3QuaW5uZXJIVE1MKTtcbiAgICAgICAgICAgICAgICB0aGlzLmNoYXJhY3RlcnNDb3VudCA9IHRleHQubGVuZ3RoO1xuXG4gICAgICAgICAgICAgICAgdGV4dCA9IHRoaXMuY2xlYW5IdG1sKHRoaXMucXVpbGwucm9vdC5pbm5lckhUTUwpO1xuICAgICAgICAgICAgICAgIHRoaXMud29yZHNDb3VudCA9ICF0ZXh0ID8gMCA6IHRleHQudHJpbSgpLnNwbGl0KHJlZ2V4KS5maWx0ZXIodCA9PiB0ICE9PSAnJykubGVuZ3RoO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNoYXJhY3RlcnNDb3VudCA9IDA7XG4gICAgICAgICAgICAgICAgdGhpcy53b3Jkc0NvdW50ID0gMDtcbiAgICAgICAgICAgICAgICB0aGlzLmJ5dGVzQ291bnQgPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jaGFyYWN0ZXJzQ291bnRDaGFuZ2UuZW1pdCh0aGlzLmNoYXJhY3RlcnNDb3VudCk7XG5cbiAgICAgICAgdGhpcy53b3Jkc0NvdW50Q2hhbmdlLmVtaXQodGhpcy53b3Jkc0NvdW50KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0cmlwSHRtbChjb250ZW50OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCByZWdleCA9IC8oPChbXj5dKyk+KS9nbTtcbiAgICAgICAgY29uc3QgY29udGVudFRvUmVwbGFjZSA9IGNvbnRlbnQucmVwbGFjZShyZWdleCwgJycpO1xuICAgICAgICByZXR1cm4gY29udGVudFRvUmVwbGFjZS5yZXBsYWNlKC9bXFx1MjAwQi1cXHUyMDBEXFx1RkVGRl0vZywgJycpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2xlYW5IdG1sKGNvbnRlbnQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGNvbnRlbnRUb1JlcGxhY2UgPSBjb250ZW50LnJlcGxhY2UoLzxbXj5dKj4vZywgJycpO1xuICAgICAgICByZXR1cm4gY29udGVudFRvUmVwbGFjZS5yZXBsYWNlKC9bXFx1MjAwQi1cXHUyMDBEXFx1RkVGRl0vZywgJycpO1xuICAgIH1cbn1cblxuLyogZXNsaW50LWRpc2FibGUgKi9cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ2V1aUVkaXRvckN1c3RvbVRvb2xiYXInIH0pXG5leHBvcnQgY2xhc3MgRXVpRWRpdG9yQ3VzdG9tVG9vbGJhclRhZ0RpcmVjdGl2ZSB7XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIGVsZW1lbnRDbGFzcyA9ICdldWktZWRpdG9yLWN1c3RvbS10b29sYmFyJztcblxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7fVxufVxuLyogZXNsaW50LWVuYWJsZSAqL1xuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cInJlYWR5VG9SZW5kZXJcIj5cbjxkaXYgW2hpZGRlbl09XCJpc1JlYWRPbmx5XCIgY2xhc3M9XCJldWktZWRpdG9yLXdyYXBwZXJcIiBbc3R5bGUuaGVpZ2h0XT1cImhlaWdodCArICdweCdcIj5cbiAgICA8cXVpbGwtZWRpdG9yXG4gICAgICAgIFtpZF09XCJnZW5lcmF0ZWRJZFwiXG4gICAgICAgIGNsYXNzPVwiZXVpLWVkaXRvciB7eyBzdHlsZUNsYXNzIH19XCJcbiAgICAgICAgW2NsYXNzLmV1aS1lZGl0b3ItLWZvY3VzZWRdPVwiaXNGb2N1c2VkXCJcbiAgICAgICAgW2Zvcm1hdF09XCJmb3JtYXRcIlxuICAgICAgICBbZm9ybWF0c109XCJmb3JtYXRzXCJcbiAgICAgICAgW3Nhbml0aXplXT1cInRydWVcIlxuICAgICAgICBbbW9kdWxlc109XCJtb2R1bGVzXCJcbiAgICAgICAgW3RoZW1lXT1cInRoZW1lXCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgICAgW2N1c3RvbVRvb2xiYXJQb3NpdGlvbl09XCJjdXN0b21Ub29sYmFyUG9zaXRpb25cIlxuICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZm9ybUNvbnRyb2xcIlxuICAgICAgICBbZGVidWddPVwiZGVidWdcIlxuICAgICAgICBbdGFiaW5kZXhdPVwidGFiaW5kZXhcIlxuICAgICAgICBbcHJlc2VydmVXaGl0ZXNwYWNlXT1cInRydWVcIlxuICAgICAgICBbaGFzSW1hZ2VGZWF0dXJlXT1cImhhc0ltYWdlRmVhdHVyZVwiXG4gICAgICAgIChvbkVkaXRvckNyZWF0ZWQpPVwiX29uRWRpdG9yQ3JlYXRlZCgkZXZlbnQpXCJcbiAgICAgICAgKG9uRWRpdG9yQ2hhbmdlZCk9XCJfb25FZGl0b3JDaGFuZ2VkKCRldmVudClcIlxuICAgICAgICAob25Db250ZW50Q2hhbmdlZCk9XCJfb25Db250ZW50Q2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgKG9uU2VsZWN0aW9uQ2hhbmdlZCk9XCJfb25TZWxlY3Rpb25DaGFuZ2VkKCRldmVudClcIlxuICAgICAgICAob25Gb2N1cyk9XCJfb25Gb2N1cygkZXZlbnQpXCJcbiAgICAgICAgKG9uQmx1cik9XCJfb25CbHVyKCRldmVudClcIj5cbiAgICAgICAgPGRpdiAqbmdJZj1cIiFldWlFZGl0b3JDdXN0b21Ub29sYmFyXCIgcXVpbGwtZWRpdG9yLXRvb2xiYXI+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgKm5nSWY9XCJ0b29sYmFyQ29uZmlnLmhlYWRpbmdzXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInFsLWZvcm1hdHNcIlxuICAgICAgICAgICAgICAgIHJvbGU9XCJhcHBsaWNhdGlvblwiXG4gICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIlNlbGVjdCBoZWFkaW5ncyBzdHlsZVwiXG4gICAgICAgICAgICAgICAgZXVpVG9vbHRpcD1cInt7IHRvb2xiYXJDb25maWcuaGVhZGluZ3MubGFiZWwgfX1cIj5cbiAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwicWwtaGVhZGVyXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJ0b29sYmFyQ29uZmlnLmhlYWRpbmdzLmxhYmVsXCI+XG4gICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJ7eyB2YWx1ZSB9fVwiICpuZ0Zvcj1cImxldCB2YWx1ZSBvZiB0b29sYmFyQ29uZmlnLmhlYWRpbmdzLm9wdGlvbnNcIj5IZWFkaW5nIHt7IHZhbHVlIH19PC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgIDxvcHRpb24gc2VsZWN0ZWQ+Tm9ybWFsPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAqbmdJZj1cInRvb2xiYXJDb25maWcuZm9udFwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJxbC1mb3JtYXRzXCJcbiAgICAgICAgICAgICAgICByb2xlPVwiYXBwbGljYXRpb25cIlxuICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJTZWxlY3QgZm9udCBzdHlsZVwiXG4gICAgICAgICAgICAgICAgZXVpVG9vbHRpcD1cInt7IHRvb2xiYXJDb25maWcuZm9udC5sYWJlbCB9fVwiPlxuICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJxbC1mb250XCIgW2F0dHIuYXJpYS1sYWJlbF09XCJ0b29sYmFyQ29uZmlnLmZvbnQubGFiZWxcIj5cbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBzZWxlY3RlZD5TYW5zIFNlcmlmPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJzZXJpZlwiPlNlcmlmPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJtb25vc3BhY2VcIj5Nb25vc3BhY2U8L29wdGlvbj5cbiAgICAgICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInRvb2xiYXJDb25maWcuYm9sZCB8fCB0b29sYmFyQ29uZmlnLml0YWxpYyB8fCB0b29sYmFyQ29uZmlnLnVuZGVybGluZSB8fCB0b29sYmFyQ29uZmlnLnN0cmlrZVwiIGNsYXNzPVwicWwtZm9ybWF0c1wiPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJ0b29sYmFyQ29uZmlnLmJvbGRcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInFsLWJvbGRcIlxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0b29sYmFyQ29uZmlnLmJvbGQubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICBldWlUb29sdGlwPVwie3sgdG9vbGJhckNvbmZpZy5ib2xkLmxhYmVsIH19XCI+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInRvb2xiYXJDb25maWcuaXRhbGljXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJxbC1pdGFsaWNcIlxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0b29sYmFyQ29uZmlnLml0YWxpYy5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgIGV1aVRvb2x0aXA9XCJ7eyB0b29sYmFyQ29uZmlnLml0YWxpYy5sYWJlbCB9fVwiPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJ0b29sYmFyQ29uZmlnLnVuZGVybGluZVwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicWwtdW5kZXJsaW5lXCJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwidG9vbGJhckNvbmZpZy51bmRlcmxpbmUubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICBldWlUb29sdGlwPVwie3sgdG9vbGJhckNvbmZpZy51bmRlcmxpbmUubGFiZWwgfX1cIj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwidG9vbGJhckNvbmZpZy5zdHJpa2VcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInFsLXN0cmlrZVwiXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInRvb2xiYXJDb25maWcuc3RyaWtlLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgZXVpVG9vbHRpcD1cInt7IHRvb2xiYXJDb25maWcuc3RyaWtlLmxhYmVsIH19XCI+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ0b29sYmFyQ29uZmlnLmZvbnRDb2xvciB8fCB0b29sYmFyQ29uZmlnLmZvbnRCYWNrZ3JvdW5kXCIgY2xhc3M9XCJxbC1mb3JtYXRzXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJ0b29sYmFyQ29uZmlnLmZvbnRDb2xvclwiIGV1aVRvb2x0aXA9XCJ7eyB0b29sYmFyQ29uZmlnLmZvbnRDb2xvci5sYWJlbCB9fVwiPlxuICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwicWwtY29sb3JcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInRvb2xiYXJDb25maWcuZm9udENvbG9yLmxhYmVsXCI+PC9zZWxlY3Q+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwidG9vbGJhckNvbmZpZy5mb250QmFja2dyb3VuZFwiIGV1aVRvb2x0aXA9XCJ7eyB0b29sYmFyQ29uZmlnLmZvbnRCYWNrZ3JvdW5kLmxhYmVsIH19XCI+XG4gICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJxbC1iYWNrZ3JvdW5kXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJ0b29sYmFyQ29uZmlnLmZvbnRCYWNrZ3JvdW5kLmxhYmVsXCI+PC9zZWxlY3Q+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidG9vbGJhckNvbmZpZy5zdWJzY3JpcHQgfHwgdG9vbGJhckNvbmZpZy5zdXBlcnNjcmlwdFwiIGNsYXNzPVwicWwtZm9ybWF0c1wiPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJ0b29sYmFyQ29uZmlnLnN1YnNjcmlwdFwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicWwtc2NyaXB0XCJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCJzdWJcIlxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0b29sYmFyQ29uZmlnLnN1YnNjcmlwdC5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgIGV1aVRvb2x0aXA9XCJ7eyB0b29sYmFyQ29uZmlnLnN1YnNjcmlwdC5sYWJlbCB9fVwiPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJ0b29sYmFyQ29uZmlnLnN1cGVyc2NyaXB0XCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJxbC1zY3JpcHRcIlxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cInN1cGVyXCJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwidG9vbGJhckNvbmZpZy5zdXBlcnNjcmlwdC5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgIGV1aVRvb2x0aXA9XCJ7eyB0b29sYmFyQ29uZmlnLnN1cGVyc2NyaXB0LmxhYmVsIH19XCI+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ0b29sYmFyQ29uZmlnLnRleHRBbGlnblwiIGNsYXNzPVwicWwtZm9ybWF0c1wiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGV1aVRvb2x0aXA9XCJ7eyB0b29sYmFyQ29uZmlnLnRleHRBbGlnbi5sYWJlbCB9fVwiPlxuICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwicWwtYWxpZ25cIiBbYXR0ci5hcmlhLWxhYmVsXT1cInRvb2xiYXJDb25maWcudGV4dEFsaWduLmxhYmVsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHNlbGVjdGVkPjwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cImNlbnRlclwiPjwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cInJpZ2h0XCI+PC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwianVzdGlmeVwiPjwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAqbmdJZj1cInRvb2xiYXJDb25maWcub3JkZXJlZExpc3QgfHwgdG9vbGJhckNvbmZpZy5idWxsZXRMaXN0IHx8IHRvb2xiYXJDb25maWcuaW5kZW50TGVzcyB8fCB0b29sYmFyQ29uZmlnLmluZGVudE1vcmVcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwicWwtZm9ybWF0c1wiPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJ0b29sYmFyQ29uZmlnLm9yZGVyZWRMaXN0XCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJxbC1saXN0XCJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCJvcmRlcmVkXCJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwidG9vbGJhckNvbmZpZy5vcmRlcmVkTGlzdC5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgIGV1aVRvb2x0aXA9XCJ7eyB0b29sYmFyQ29uZmlnLm9yZGVyZWRMaXN0LmxhYmVsIH19XCI+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInRvb2xiYXJDb25maWcuYnVsbGV0TGlzdFwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicWwtbGlzdFwiXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPVwiYnVsbGV0XCJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwidG9vbGJhckNvbmZpZy5idWxsZXRMaXN0LmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgZXVpVG9vbHRpcD1cInt7IHRvb2xiYXJDb25maWcuYnVsbGV0TGlzdC5sYWJlbCB9fVwiPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwidG9vbGJhckNvbmZpZy5pbmRlbnRMZXNzXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJxbC1pbmRlbnRcIlxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cIi0xXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0b29sYmFyQ29uZmlnLmluZGVudExlc3MubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICBldWlUb29sdGlwPVwie3sgdG9vbGJhckNvbmZpZy5pbmRlbnRMZXNzLmxhYmVsIH19XCI+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJ0b29sYmFyQ29uZmlnLmluZGVudE1vcmVcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInFsLWluZGVudFwiXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPVwiKzFcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInRvb2xiYXJDb25maWcuaW5kZW50TW9yZS5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgIGV1aVRvb2x0aXA9XCJ7eyB0b29sYmFyQ29uZmlnLmluZGVudE1vcmUubGFiZWwgfX1cIj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgICAgIHRvb2xiYXJDb25maWcuYmxvY2txdW90ZSB8fFxuICAgICAgICAgICAgICAgICAgICB0b29sYmFyQ29uZmlnLmNvZGVCbG9jayB8fFxuICAgICAgICAgICAgICAgICAgICB0b29sYmFyQ29uZmlnLmxpbmsgfHxcbiAgICAgICAgICAgICAgICAgICAgdG9vbGJhckNvbmZpZy5pbWFnZSB8fFxuICAgICAgICAgICAgICAgICAgICB0b29sYmFyQ29uZmlnLmltYWdlVXJsIHx8XG4gICAgICAgICAgICAgICAgICAgIHRvb2xiYXJDb25maWcudmlkZW8gfHxcbiAgICAgICAgICAgICAgICAgICAgdG9vbGJhckNvbmZpZy50YWJsZVxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJxbC1mb3JtYXRzXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInRvb2xiYXJDb25maWcuYmxvY2txdW90ZVwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicWwtYmxvY2txdW90ZVwiXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInRvb2xiYXJDb25maWcuYmxvY2txdW90ZS5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgIGV1aVRvb2x0aXA9XCJ7eyB0b29sYmFyQ29uZmlnLmJsb2NrcXVvdGUubGFiZWwgfX1cIj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwidG9vbGJhckNvbmZpZy5jb2RlQmxvY2tcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInFsLWNvZGUtYmxvY2tcIlxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0b29sYmFyQ29uZmlnLmNvZGVCbG9jay5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgIGV1aVRvb2x0aXA9XCJ7eyB0b29sYmFyQ29uZmlnLmNvZGVCbG9jay5sYWJlbCB9fVwiPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJ0b29sYmFyQ29uZmlnLmxpbmtcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInFsLWxpbmtcIlxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0b29sYmFyQ29uZmlnLmxpbmsubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICBldWlUb29sdGlwPVwie3sgdG9vbGJhckNvbmZpZy5saW5rLmxhYmVsIH19XCI+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInRvb2xiYXJDb25maWcuaW1hZ2VcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInFsLWltYWdlXCJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwidG9vbGJhckNvbmZpZy5pbWFnZS5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgIGV1aVRvb2x0aXA9XCJ7eyB0b29sYmFyQ29uZmlnLmltYWdlLmxhYmVsIH19XCI+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJ0b29sYmFyQ29uZmlnLmltYWdlVXJsXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0b29sYmFyQ29uZmlnLmltYWdlVXJsLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgZXVpVG9vbHRpcD1cInt7IHRvb2xiYXJDb25maWcuaW1hZ2VVcmwubGFiZWwgfX1cIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiaW1hZ2VVcmxIYW5kbGVyKClcIj5cbiAgICAgICAgICAgICAgICAgICAgPGV1aS1pY29uLXN2ZyBpY29uPVwiZXVpLWltYWdlLWFkZFwiPjwvZXVpLWljb24tc3ZnPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJ0b29sYmFyQ29uZmlnLnZpZGVvXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJxbC12aWRlb1wiXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInRvb2xiYXJDb25maWcudmlkZW8ubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICBldWlUb29sdGlwPVwie3sgdG9vbGJhckNvbmZpZy52aWRlby5sYWJlbCB9fVwiPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwidG9vbGJhckNvbmZpZy50YWJsZVwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwidG9vbGJhckNvbmZpZy50YWJsZS5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgIGV1aVRvb2x0aXA9XCJ7eyB0b29sYmFyQ29uZmlnLnRhYmxlLmxhYmVsIH19XCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImluc2VydFRhYmxlKClcIj5cbiAgICAgICAgICAgICAgICAgICAgPGV1aS1pY29uLXN2ZyBpY29uPVwiZXVpLWVjbC1zcHJlYWRzaGVldFwiPjwvZXVpLWljb24tc3ZnPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidG9vbGJhckNvbmZpZy5jbGVhbiB8fCB0b29sYmFyQ29uZmlnLmRlbGV0ZVwiIGNsYXNzPVwicWwtZm9ybWF0c1wiPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJ0b29sYmFyQ29uZmlnLmNsZWFuXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJxbC1jbGVhblwiXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInRvb2xiYXJDb25maWcuY2xlYW4ubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICBldWlUb29sdGlwPVwie3sgdG9vbGJhckNvbmZpZy5jbGVhbi5sYWJlbCB9fVwiPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwidG9vbGJhckNvbmZpZy5kZWxldGVcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInRvb2xiYXJDb25maWcuZGVsZXRlLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgZXVpVG9vbHRpcD1cInt7IHRvb2xiYXJDb25maWcuZGVsZXRlLmxhYmVsIH19XCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImVkaXRvckRlbGV0ZUNvbnRlbnQoKVwiPlxuICAgICAgICAgICAgICAgICAgICA8ZXVpLWljb24tc3ZnIGljb249XCJldWktZGVsZXRlLWZvcmV2ZXJcIj48L2V1aS1pY29uLXN2Zz5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInRvb2xiYXJDb25maWcudW5kbyB8fCB0b29sYmFyQ29uZmlnLnJlZG9cIiBjbGFzcz1cInFsLWZvcm1hdHNcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInRvb2xiYXJDb25maWcudW5kb1wiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwidG9vbGJhckNvbmZpZy51bmRvLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgZXVpVG9vbHRpcD1cInt7IHRvb2xiYXJDb25maWcudW5kby5sYWJlbCB9fVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJlZGl0b3JVbmRvKClcIj5cbiAgICAgICAgICAgICAgICAgICAgPGV1aS1pY29uLXN2ZyBpY29uPVwiZXVpLXVuZG9cIj48L2V1aS1pY29uLXN2Zz5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInRvb2xiYXJDb25maWcucmVkb1wiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwidG9vbGJhckNvbmZpZy5yZWRvLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgZXVpVG9vbHRpcD1cInt7IHRvb2xiYXJDb25maWcucmVkby5sYWJlbCB9fVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJlZGl0b3JSZWRvKClcIj5cbiAgICAgICAgICAgICAgICAgICAgPGV1aS1pY29uLXN2ZyBpY29uPVwiZXVpLXJlZG9cIj48L2V1aS1pY29uLXN2Zz5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInRvb2xiYXJDb25maWcuY291bnRlcnNcIiBjbGFzcz1cInFsLWZvcm1hdHNcIj5cbiAgICAgICAgICAgICAgICA8ZXVpLWVkaXRvci1jb3VudGVyc1xuICAgICAgICAgICAgICAgICAgICBbaGFzQ2hhcmFjdGVyc0NvdW50ZXJdPVwiaGFzQ2hhcmFjdGVyc0NvdW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICBbY2hhcmFjdGVyc0NvdW50ZXJdPVwiY2hhcmFjdGVyc0NvdW50XCJcbiAgICAgICAgICAgICAgICAgICAgW2NoYXJhY3RlcnNMYWJlbF09XCJjaGFyYWN0ZXJzQ291bnRlckxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgW2hhc1dvcmRzQ291bnRlcl09XCJoYXNXb3Jkc0NvdW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICBbd29yZHNDb3VudGVyXT1cIndvcmRzQ291bnRcIlxuICAgICAgICAgICAgICAgICAgICBbd29yZHNMYWJlbF09XCJ3b3Jkc0NvdW50ZXJMYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwidG9vbGJhckNvbmZpZy5jb3VudGVycy5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBldWlUb29sdGlwPVwie3sgdG9vbGJhckNvbmZpZy5jb3VudGVycy5sYWJlbCB9fVwiPlxuICAgICAgICAgICAgICAgIDwvZXVpLWVkaXRvci1jb3VudGVycz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiAqbmdJZj1cImV1aUVkaXRvckN1c3RvbVRvb2xiYXJcIiBxdWlsbC1lZGl0b3ItdG9vbGJhcj5cbiAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImV1aUVkaXRvckN1c3RvbVRvb2xiYXJcIj48L25nLWNvbnRlbnQ+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvcXVpbGwtZWRpdG9yPlxuPC9kaXY+XG5cbjwhLS0gUkVBRE9OTFkgTU9ERSAtLT5cbjxkaXZcbiAgICBbaGlkZGVuXT1cIiFpc1JlYWRPbmx5XCJcbiAgICBjbGFzcz1cImV1aS1lZGl0b3IgZXVpLWVkaXRvci0tcmVhZG9ubHkge3sgc3R5bGVDbGFzcyB9fVwiXG4gICAgW2NsYXNzLmV1aS1lZGl0b3ItLWVtcHR5XT1cIiF2YWx1ZVwiXG4gICAgdGFiaW5kZXg9XCJ7eyB0YWJpbmRleCB9fVwiXG4gICAgKGNsaWNrKT1cImVuYWJsZUVkaXRvck9uRm9jdXMoKVwiXG4gICAgKGZvY3VzaW4pPVwiZW5hYmxlRWRpdG9yT25Gb2N1cygpXCI+XG4gICAgPGV1aS1lZGl0b3ItaHRtbC12aWV3ICpuZ0lmPVwiZm9ybWF0ID09PSAnaHRtbCdcIiBbY29udGVudF09XCJ2YWx1ZVwiIFt0aGVtZV09XCJ0aGVtZVwiPjwvZXVpLWVkaXRvci1odG1sLXZpZXc+XG4gICAgPGV1aS1lZGl0b3ItanNvbi12aWV3ICpuZ0lmPVwiZm9ybWF0ID09PSAnanNvbidcIiBbY29udGVudF09XCJqc29uVG9IdG1sQ29udGVudFwiIFt0aGVtZV09XCJ0aGVtZVwiPjwvZXVpLWVkaXRvci1qc29uLXZpZXc+XG48L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuIl19
|
500
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLWVkaXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9leHRlcm5hbHMvZXVpLWVkaXRvci9ldWktZWRpdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL2V4dGVybmFscy9ldWktZWRpdG9yL2V1aS1lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFFTixpQkFBaUIsRUFDakIsdUJBQXVCLEVBQ3ZCLFdBQVcsRUFFWCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsR0FHYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLFdBQVcsRUFBd0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUd6RixPQUFPLEVBQUUscUJBQXFCLEVBQWdCLE1BQU0sdUJBQXVCLENBQUM7QUFHNUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sS0FBSyxNQUFNLGFBQWEsQ0FBQztBQUVoQyxPQUFPLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFHL0UsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sK0NBQStDLENBQUM7Ozs7Ozs7Ozs7O0FBVDlGLDBHQUEwRztBQUMxRyxNQUFNLFNBQVMsR0FBUSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7QUFTdkMsd0NBQXdDO0FBQ3hDLElBQUksZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7QUFjbEQsTUFBTSxPQUFPLGtCQUFrQjtJQTJCM0IsSUFDSSxRQUFRO1FBQ1IsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFD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QyxrQ0FBa0M7cUhBQWxDLGtDQUFrQzs7MkZBQWxDLGtDQUFrQztrQkFEOUMsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSx3QkFBd0IsRUFBRTsrRUFFdkIsWUFBWTtzQkFBakMsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIElucHV0LFxuICAgIE91dHB1dCxcbiAgICBPbkluaXQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgT25EZXN0cm95LFxuICAgIERpcmVjdGl2ZSxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgZm9yd2FyZFJlZixcbiAgICBFbGVtZW50UmVmLFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBOZ0NvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDb250ZW50Q2hhbmdlLCBRdWlsbE1vZHVsZXMgfSBmcm9tICdAZXVpL2NvbXBvbmVudHMvZXh0ZXJuYWxzL3F1aWxsJztcblxuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5LCBCb29sZWFuSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvbixuby11bmRlcnNjb3JlLWRhbmdsZSxpZC1kZW55bGlzdCxpZC1tYXRjaFxuY29uc3QgUXVpbGxUeXBlOiBhbnkgPSB3aW5kb3dbJ1F1aWxsJ107XG5pbXBvcnQgeyBzdGFydFdpdGgsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCBEZWx0YSBmcm9tICdxdWlsbC1kZWx0YSc7XG5cbmltcG9ydCB7IEV1aURpYWxvZ0NvbmZpZywgRXVpRGlhbG9nU2VydmljZSB9IGZyb20gJ0BldWkvY29tcG9uZW50cy9ldWktZGlhbG9nJztcblxuaW1wb3J0IHsgTG9hZGVyU2VydmljZSwgQmV0dGVyVGFibGVNb2R1bGUsIEJsdXIsIEVkaXRvckNoYW5nZVNlbGVjdGlvbiwgRm9jdXMsIFNlbGVjdGlvbkNoYW5nZSwgVG9vbGJhckl0ZW1Db25maWcgfSBmcm9tICdAZXVpL2NvbXBvbmVudHMvZXh0ZXJuYWxzL3F1aWxsJztcbmltcG9ydCB7IEV1aUVkaXRvckltYWdlRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9pbWFnZS11cmwtZGlhbG9nL2ltYWdlLXVybC1kaWFsb2cuY29tcG9uZW50Jztcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcmVmZXItY29uc3RcbmxldCBRdWlsbEJldHRlclRhYmxlID0gd2luZG93WydxdWlsbEJldHRlclRhYmxlJ107XG5cbkBDb21wb25lbnQoe1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgIHNlbGVjdG9yOiAnZXVpLWVkaXRvcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2V1aS1lZGl0b3IuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3N0eWxlcy9faW5kZXguc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIC8vIFRPRE86IENoZWNrIHRvIGNoYW5nZSB0aGUgcHJvdmlkaW5nIHdheS4gUHJvdmlkZSB3aXRoIGluamVjdG9yIHJlZmVyZW5jZVxuICAgICAgICBFdWlEaWFsb2dTZXJ2aWNlLFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIEV1aUVkaXRvckNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgQElucHV0KCkgZTJlQXR0ciA9ICdldWktZWRpdG9yJztcbiAgICBASW5wdXQoKSBpZDogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHN0eWxlQ2xhc3MgPSAnJztcbiAgICBASW5wdXQoKSBwbGFjZWhvbGRlciA9ICcnO1xuICAgIEBJbnB1dCgpIGZvcm1hdDogJ2h0bWwnIHwgJ2pzb24nID0gJ2h0bWwnO1xuICAgIEBJbnB1dCgpIHRoZW1lOiAnc25vdycgfCAnYnViYmxlJyA9ICdzbm93JztcbiAgICBASW5wdXQoKSBkZWJ1ZzogJ3dhcm4nIHwgJ2xvZycgfCAnZXJyb3InIHwgZmFsc2UgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBjdXN0b21Ub29sYmFyUG9zaXRpb246ICd0b3AnIHwgJ2JvdHRvbScgPSAndG9wJztcbiAgICBASW5wdXQoKSB0YWJpbmRleCA9ICcwJztcbiAgICBASW5wdXQoKSBtb2R1bGVzOiBRdWlsbE1vZHVsZXM7XG4gICAgQElucHV0KCkgZm9ybWF0cz86IHN0cmluZ1tdIHwgbnVsbDtcbiAgICAvLyBORVcgRVVJIElOUFVUU1xuICAgIEBJbnB1dCgpIGN1c3RvbVRvb2xiYXJDb25maWc6IFRvb2xiYXJJdGVtQ29uZmlnW107XG4gICAgQElucHV0KCkgaGVpZ2h0OiBzdHJpbmc7XG4gICAgLy8gTkVXIE9VVFBVVFMgPT4gZVVJMTMrIG9ubHlcbiAgICBAT3V0cHV0KCkgZWRpdG9yQ3JlYXRlID0gbmV3IEV2ZW50RW1pdHRlcjx0eXBlb2YgUXVpbGxUeXBlPigpO1xuICAgIEBPdXRwdXQoKSBlZGl0b3JDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEVkaXRvckNoYW5nZVNlbGVjdGlvbiB8IENvbnRlbnRDaGFuZ2U+KCk7XG4gICAgQE91dHB1dCgpIGNvbnRlbnRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPENvbnRlbnRDaGFuZ2U+KCk7XG4gICAgQE91dHB1dCgpIHNlbGVjdGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8U2VsZWN0aW9uQ2hhbmdlPigpO1xuICAgIEBPdXRwdXQoKSBmb2N1cyA9IG5ldyBFdmVudEVtaXR0ZXI8Rm9jdXM+KCk7XG4gICAgQE91dHB1dCgpIGJsdXIgPSBuZXcgRXZlbnRFbWl0dGVyPEJsdXI+KCk7XG4gICAgQE91dHB1dCgpIGNoYXJhY3RlcnNDb3VudENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuICAgIEBPdXRwdXQoKSB3b3Jkc0NvdW50Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmV1aS1lZGl0b3InKSB0cnVlOiBib29sZWFuO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLnJlYWRvbmx5JylcbiAgICBnZXQgcmVhZG9ubHkoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNSZWFkT25seSA/ICdyZWFkb25seScgOiBudWxsO1xuICAgIH1cblxuICAgIHB1YmxpYyB2YWx1ZTogc3RyaW5nIHwgYW55ID0gJyc7XG4gICAgcHVibGljIGNoYXJhY3RlcnNDb3VudCA9IDA7XG4gICAgcHVibGljIHdvcmRzQ291bnQgPSAwO1xuICAgIHB1YmxpYyBieXRlc0NvdW50ID0gMDtcbiAgICBwdWJsaWMgaXNGb2N1c2VkID0gZmFsc2U7XG4gICAgcHVibGljIGdlbmVyYXRlZElkOiBzdHJpbmc7XG4gICAgcHVibGljIGZvcm1Db250cm9sOiBGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgpO1xuICAgIHB1YmxpYyBqc29uVG9IdG1sQ29udGVudDogc3RyaW5nO1xuICAgIHB1YmxpYyB0b29sYmFyQ29uZmlnOiB7IFtpZDogc3RyaW5nXTogeyBsYWJlbDogc3RyaW5nOyBvcHRpb25zOiBhbnlbXTsgZGlhbG9nTWVzc2FnZTogc3RyaW5nIH0gfTtcbiAgICBwcm90ZWN0ZWQgcmVhZHlUb1JlbmRlcjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG1heC1sZW5cbiAgICBAQ29udGVudENoaWxkKGZvcndhcmRSZWYoKCkgPT4gRXVpRWRpdG9yQ3VzdG9tVG9vbGJhclRhZ0RpcmVjdGl2ZSksIHsgc3RhdGljOiBmYWxzZSB9KVxuICAgIGV1aUVkaXRvckN1c3RvbVRvb2xiYXI6IEV1aUVkaXRvckN1c3RvbVRvb2xiYXJUYWdEaXJlY3RpdmU7XG5cbiAgICBASW5wdXQoKVxuICAgIGdldCBpc1JlYWRPbmx5KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNSZWFkT25seTtcbiAgICB9XG4gICAgc2V0IGlzUmVhZE9ubHkodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9pc1JlYWRPbmx5ID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfaXNSZWFkT25seSA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IHNob3dDb3VudGVycygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Nob3dDb3VudGVycztcbiAgICB9XG4gICAgc2V0IHNob3dDb3VudGVycyh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX3Nob3dDb3VudGVycyA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIHByaXZhdGUgX3Nob3dDb3VudGVycyA9IHRydWU7XG4gICAgQElucHV0KClcbiAgICBnZXQgaXNFbmFibGVkT25Gb2N1cygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzRW5hYmxlZE9uRm9jdXM7XG4gICAgfVxuICAgIHNldCBpc0VuYWJsZWRPbkZvY3VzKHZhbHVlKSB7XG4gICAgICAgIHRoaXMuX2lzRW5hYmxlZE9uRm9jdXMgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwcml2YXRlIF9pc0VuYWJsZWRPbkZvY3VzID0gZmFsc2U7XG4gICAgQElucHV0KClcbiAgICBnZXQgaXNNaW5pbWFsVG9vbGJhcigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzTWluaW1hbFRvb2xiYXI7XG4gICAgfVxuICAgIHNldCBpc01pbmltYWxUb29sYmFyKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5faXNNaW5pbWFsVG9vbGJhciA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIHByaXZhdGUgX2lzTWluaW1hbFRvb2xiYXIgPSBmYWxzZTtcblxuICAgIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWludmFsaWQnKVxuICAgIGdldCBpc0ludmFsaWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0ludmFsaWQ7XG4gICAgfVxuICAgIHNldCBpc0ludmFsaWQodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9pc0ludmFsaWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwcml2YXRlIF9pc0ludmFsaWQgPSBmYWxzZTtcblxuICAgIHByaXZhdGUgcXVpbGw6IHR5cGVvZiBRdWlsbFR5cGU7XG4gICAgcHJpdmF0ZSBtaW5pbWFsVG9vbGJhckNvbmZpZzogVG9vbGJhckl0ZW1Db25maWdbXSA9IFtcbiAgICAgICAgeyBuYW1lOiAnaGVhZGluZ3MnIH0sXG4gICAgICAgIHsgbmFtZTogJ2JvbGQnIH0sXG4gICAgICAgIHsgbmFtZTogJ2l0YWxpYycgfSxcbiAgICAgICAgeyBuYW1lOiAndW5kZXJsaW5lJyB9LFxuICAgICAgICB7IG5hbWU6ICdmb250Q29sb3InIH0sXG4gICAgICAgIHsgbmFtZTogJ3RleHRBbGlnbicgfSxcbiAgICAgICAgeyBuYW1lOiAnbGluaycgfSxcbiAgICAgICAgeyBuYW1lOiAnaW1hZ2UnIH0sXG4gICAgICAgIHsgbmFtZTogJ2ltYWdlVXJsJyB9LFxuICAgICAgICB7IG5hbWU6ICdjbGVhbicgfSxcbiAgICAgICAgeyBuYW1lOiAnZGVsZXRlJyB9LFxuICAgICAgICB7IG5hbWU6ICd1bmRvJyB9LFxuICAgICAgICB7IG5hbWU6ICdyZWRvJyB9LFxuICAgICAgICB7IG5hbWU6ICdjb3VudGVycycgfSxcbiAgICBdO1xuICAgIHByaXZhdGUgZGVmYXVsdFRvb2xiYXJDb25maWc6IFRvb2xiYXJJdGVtQ29uZmlnW10gPSBbXG4gICAgICAgIHsgbmFtZTogJ2hlYWRpbmdzJywgbGFiZWw6ICdTdHlsZSAtIEFwcGx5IGFuIEhUTUwgdGFnIG9yIENTUyBjbGFzcyB0byB0aGUgc2VsZWN0ZWQgdGV4dCcsIG9wdGlvbnM6IFsxLCAyLCAzLCA0LCA1LCA2XSB9LFxuICAgICAgICB7IG5hbWU6ICdmb250JywgbGFiZWw6ICdGb250IC0gQ2hhbmdlIHRoZSBmb250IGZhY2UnIH0sXG4gICAgICAgIHsgbmFtZTogJ2JvbGQnLCBsYWJlbDogJ0JvbGQgKEN0cmwgKyBCKSAtIE1ha2UgdGhlIHNlbGVjdGVkIHRleHQgYm9sZCcgfSxcbiAgICAgICAgeyBuYW1lOiAnaXRhbGljJywgbGFiZWw6ICdJdGFsaWMgKEN0cmwgKyBJKSAtIEl0YWxpY2l6ZSB0aGUgc2VsZWN0ZWQgdGV4dCcgfSxcbiAgICAgICAgeyBuYW1lOiAndW5kZXJsaW5lJywgbGFiZWw6ICdVbmRlcmxpbmUgKEN0cmwgKyBVKSAtIFVuZGVybGluZSB0aGUgc2VsZWN0ZWQgdGV4dCcgfSxcbiAgICAgICAgeyBuYW1lOiAnc3RyaWtlJywgbGFiZWw6ICdTdHJpa2V0aHJvdWdoIC0gRHJhdyBhIGxpbmUgdG8gdGhlIG1pZGRsZSBvZiB0aGUgc2VsZWN0ZWQgdGV4dCcgfSxcbiAgICAgICAgeyBuYW1lOiAnZm9udENvbG9yJywgbGFiZWw6ICdGb250IENvbG9yIC0gQ2hhbmdlIHRoZSB0ZXh0IGNvbG9yJyB9LFxuICAgICAgICB7IG5hbWU6ICdmb250QmFja2dyb3VuZCcsIGxhYmVsOiAnRm9udCBCYWNrZ3JvdW5kIC0gQ2hhbmdlIHRoZSB0ZXh0IGJhY2tncm91bmQgY29sb3InIH0sXG4gICAgICAgIHsgbmFtZTogJ3N1YnNjcmlwdCcsIGxhYmVsOiAnU3Vic2NyaXB0IC0gQ3JlYXRlIHNzbWFsbCBsZXR0ZXJzIGJlbG93IHRoZSB0ZXh0IGJhc2VsaW5lJyB9LFxuICAgICAgICB7IG5hbWU6ICdzdXBlcnNjcmlwdCcsIGxhYmVsOiAnU3VwZXJzY3JpcHQgLSBDcmVhdGUgc21hbGwgbGV0dGVycyBhYm92ZSB0aGUgbGluZSBvZiB0aGUgdGV4dCcgfSxcbiAgICAgICAgeyBuYW1lOiAndGV4dEFsaWduJywgbGFiZWw6ICdUZXh0IEFsaWduIC0gQWxpZ24gdGhlIHRleHQgdG8gdGhlIHNlbGVjdGVkIHBvc2l0aW9uOiBsZWZ0IChkZWZhdWx0KSwgY2VudGVyLCByaWdodCBvciBqdXN0aWZ5JyB9LFxuICAgICAgICB7IG5hbWU6ICdvcmRlcmVkTGlzdCcsIGxhYmVsOiAnTnVtYmVyaW5nIC0gU3RhcnQgYW4gb3JkZXJlZCBsaXN0JyB9LFxuICAgICAgICB7IG5hbWU6ICdidWxsZXRMaXN0JywgbGFiZWw6ICdCdWxsZXRzIC0gU3RhcnQgYSBidWxsZXRlZCBsaXN0JyB9LFxuICAgICAgICB7IG5hbWU6ICdpbmRlbnRMZXNzJywgbGFiZWw6ICdEZWNyZWFzZSBJbmRlbnQgLSBEZWNyZWFzZSB0aGUgaW5kZW50IGxldmVsIG9mIHRoZSBwYXJhZ3JhcGgnIH0sXG4gICAgICAgIHsgbmFtZTogJ2luZGVudE1vcmUnLCBsYWJlbDogJ0luY3JlYXNlIEluZGVudCAtIEluY3JlYXNlIHRoZSBpbmRlbnQgbGV2ZWwgb2YgdGhlIHBhcmFncmFwaCcgfSxcbiAgICAgICAgeyBuYW1lOiAnYmxvY2txdW90ZScsIGxhYmVsOiAnQmxvY2txdW90ZSAtIENyZWF0ZSBhIHF1b3RlZCBibG9jayBvZiB0aGUgc2VsZWN0ZWQgdGV4dCcgfSxcbiAgICAgICAgeyBuYW1lOiAnY29kZUJsb2NrJywgbGFiZWw6ICdJbnNlcnQgQ29kZSBCbG9jayAtIEluc2VydCBhIGNvZGUgYmxvY2sgYXQgdGhlIGN1cnNvciByb3cgcG9zaXRpb24nIH0sXG4gICAgICAgIHsgbmFtZTogJ2xpbmsnLCBsYWJlbDogJ0luc2VydCBIeXBlcmxpbmsgKEN0cmwgKyBLKSAtIENyZWF0ZSBhIGxpbmsgdG8gYSBXZWIgcGFnZSwgYSBwaWN0dXJlLCBhbiBlLW1haWwgYWRkcmVzcyBvciBhIHByb2dyYW0nIH0sXG4gICAgICAgIHsgbmFtZTogJ2ltYWdlJywgbGFiZWw6ICdJbnNlcnQgUGljdHVyZSAtIEluc2VydCBhIHBpY3R1cmUgZnJvbSBhIGZpbGUnIH0sXG4gICAgICAgIHsgbmFtZTogJ2ltYWdlVXJsJywgbGFiZWw6ICdJbnNlcnQgUGljdHVyZSBmcm9tIFVSTCAtIEluc2VydCBhIHBpY3R1cmUgZnJvbSBhIHJlbW90ZSBVUkwnLCBkaWFsb2dNZXNzYWdlOiAnRW50ZXIgaW1hZ2UgbGluayBVUkwnIH0sXG4gICAgICAgIHsgbmFtZTogJ3ZpZGVvJywgbGFiZWw6ICdJbnNlcnQgVmlkZW8gLSBJbnNlcnQgYSB2aWRlbyBmcm9tIGEgZmlsZScgfSxcbiAgICAgICAgeyBuYW1lOiAndGFibGUnLCBsYWJlbDogJ0luc2VydCBUYWJsZSAtIEluc2VydCBhIDN4MyByb3dzL2NvbHMgdGFibGUnIH0sXG4gICAgICAgIHsgbmFtZTogJ2NsZWFuJywgbGFiZWw6ICdSZW1vdmUgU3R5bGVzIC0gUmVtb3ZlIHRoZSBzdHlsZXMgb2YgdGhlIHNlbGVjdGVkIHRleHQnIH0sXG4gICAgICAgIHsgbmFtZTogJ2RlbGV0ZScsIGxhYmVsOiBcIkRlbGV0ZSBjb250ZW50IC0gUGVybWFuZW50bHkgZGVsZXRlcyBlZGl0b3IncyBjb250ZW50c1wiIH0sXG4gICAgICAgIHsgbmFtZTogJ3VuZG8nLCBsYWJlbDogJ1VuZG8gKEN0cmwgKyBaKSAtIENhbmNlbHMgdGhlIHByZXZpb3VzIGFjdGlvbicgfSxcbiAgICAgICAgeyBuYW1lOiAncmVkbycsIGxhYmVsOiAnUmVkbyAoQ3RybCArIFkpIC0gRG8gdGhlIG5leHQgaGlzdG9yeSBhY3Rpb24gYWdhaW4nIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdjb3VudGVycycsXG4gICAgICAgICAgICBsYWJlbDogJ0NvdW50ZXJzIC0gQ2hhcmFjdGVycyBhbmQgd29yZHMgY291bnRlcnMgKHN0cmlwcGVkIEh0bWwpJyxcbiAgICAgICAgICAgIG9wdGlvbnM6IFtcbiAgICAgICAgICAgICAgICB7IG5hbWU6ICdjaGFyYWN0ZXJzJywgbGFiZWw6ICdDaGFyYWN0ZXJzJyB9LFxuICAgICAgICAgICAgICAgIHsgbmFtZTogJ3dvcmRzJywgbGFiZWw6ICdXb3JkcycgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgXTtcbiAgICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZXVpRGlhbG9nU2VydmljZTogRXVpRGlhbG9nU2VydmljZSxcbiAgICAgICAgICAgICAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBuZ0NvbnRyb2w6IE5nQ29udHJvbCxcbiAgICAgICAgICAgICAgICBwcml2YXRlIGxvYWRlcjogTG9hZGVyU2VydmljZSkge1xuICAgICAgICB0aGlzLm5nQ29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5sb2FkZXIubG9hZCgpLnN1YnNjcmliZSh7XG4gICAgICAgICAgICBjb21wbGV0ZTogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMucmVhZHlUb1JlbmRlciA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5uZ0NvbnRyb2wuc3RhdHVzQ2hhbmdlcy5waXBlKHN0YXJ0V2l0aCh0aGlzLm5nQ29udHJvbC5jb250cm9sLnN0YXR1cyksIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKChzdGF0dXMpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc0ludmFsaWQgPSBzdGF0dXMgIT09ICdWQUxJRCc7XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLmdlbmVyYXRlZElkID0gdGhpcy5pZCA/IHRoaXMuaWQgOiAnZXVpLWVkaXRvci0nICsgKE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDEwMDAwMDApICsgMSkudG9TdHJpbmcoKTtcblxuICAgICAgICAgICAgICAgIHRoaXMudG9vbGJhckNvbmZpZyA9IHt9O1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5jdXN0b21Ub29sYmFyQ29uZmlnICYmICF0aGlzLmlzTWluaW1hbFRvb2xiYXIpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kZWZhdWx0VG9vbGJhckNvbmZpZy5mb3JFYWNoKCh0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRvb2xiYXJDb25maWcgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4udGhpcy50b29sYmFyQ29uZmlnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0Lm5hbWVdOiB7IGxhYmVsOiB0LmxhYmVsLCBvcHRpb25zOiB0Lm9wdGlvbnMsIGRpYWxvZ01lc3NhZ2U6IHQuZGlhbG9nTWVzc2FnZSB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuY3VzdG9tVG9vbGJhckNvbmZpZyAmJiAhdGhpcy5pc01pbmltYWxUb29sYmFyKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY3VzdG9tVG9vbGJhckNvbmZpZy5mb3JFYWNoKCh0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsYWJlbCA9ICF0LmxhYmVsID8gdGhpcy5kZWZhdWx0VG9vbGJhckNvbmZpZy5maW5kKChjKSA9PiBjLm5hbWUgPT09IHQubmFtZSkubGFiZWwgOiB0LmxhYmVsO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG9wdGlvbnMgPSAhdC5vcHRpb25zID8gdGhpcy5kZWZhdWx0VG9vbGJhckNvbmZpZy5maW5kKChjKSA9PiBjLm5hbWUgPT09IHQubmFtZSkub3B0aW9ucyA6IHQub3B0aW9ucztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGQgPSAhdC5kaWFsb2dNZXNzYWdlID8gdGhpcy5kZWZhdWx0VG9vbGJhckNvbmZpZy5maW5kKChjKSA9PiBjLm5hbWUgPT09IHQubmFtZSkuZGlhbG9nTWVzc2FnZSA6IHQuZGlhbG9nTWVzc2FnZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHQubmFtZSA9PT0gJ2NvdW50ZXJzJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdC5vcHRpb25zKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMgPSB0aGlzLmRlZmF1bHRUb29sYmFyQ29uZmlnLmZpbmQoKGMpID0+IGMubmFtZSA9PT0gdC5uYW1lKS5vcHRpb25zO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMgPSB0Lm9wdGlvbnMubWFwKChvcHRpb24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG9wdGlvbkxhYmVsID0gb3B0aW9uLmxhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBvcHRpb24ubGFiZWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHRoaXMuZGVmYXVsdFRvb2xiYXJDb25maWdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmZpbmQoKGR0YykgPT4gZHRjLm5hbWUgPT09ICdjb3VudGVycycpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5vcHRpb25zLmZpbmQoKG8pID0+IG8ubmFtZSA9PT0gb3B0aW9uLm5hbWUpLmxhYmVsO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgbmFtZTogb3B0aW9uLm5hbWUsIGxhYmVsOiBvcHRpb25MYWJlbCB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudG9vbGJhckNvbmZpZyA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi50aGlzLnRvb2xiYXJDb25maWcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3QubmFtZV06IHsgbGFiZWwsIG9wdGlvbnMsIGRpYWxvZ01lc3NhZ2U6IGQgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzTWluaW1hbFRvb2xiYXIpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5taW5pbWFsVG9vbGJhckNvbmZpZy5mb3JFYWNoKCh0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsYWJlbCA9ICF0LmxhYmVsID8gdGhpcy5kZWZhdWx0VG9vbGJhckNvbmZpZy5maW5kKChjKSA9PiBjLm5hbWUgPT09IHQubmFtZSkubGFiZWwgOiB0LmxhYmVsO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9ucyA9ICF0Lm9wdGlvbnMgPyB0aGlzLmRlZmF1bHRUb29sYmFyQ29uZmlnLmZpbmQoKGMpID0+IGMubmFtZSA9PT0gdC5uYW1lKS5vcHRpb25zIDogdC5vcHRpb25zO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZCA9ICF0LmRpYWxvZ01lc3NhZ2UgPyB0aGlzLmRlZmF1bHRUb29sYmFyQ29uZmlnLmZpbmQoKGMpID0+IGMubmFtZSA9PT0gdC5uYW1lKS5kaWFsb2dNZXNzYWdlIDogdC5kaWFsb2dNZXNzYWdlO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRvb2xiYXJDb25maWcgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4udGhpcy50b29sYmFyQ29uZmlnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0Lm5hbWVdOiB7IGxhYmVsLCBvcHRpb25zLCBkaWFsb2dNZXNzYWdlOiBkIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XG4gICAgICAgIHRoaXMuZGVzdHJveSQudW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZW5hYmxlRWRpdG9yT25Gb2N1cygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNFbmFibGVkT25Gb2N1cykge1xuICAgICAgICAgICAgdGhpcy5pc1JlYWRPbmx5ID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgaW1hZ2VVcmxIYW5kbGVyKCk6IHZvaWQge1xuICAgICAgICBsZXQgaW1hZ2VVcmxEaWFsb2dGb3JtOiBGb3JtR3JvdXAgPSBudWxsO1xuICAgICAgICB0aGlzLmV1aURpYWxvZ1NlcnZpY2Uub3BlbkRpYWxvZyhcbiAgICAgICAgICAgIG5ldyBFdWlEaWFsb2dDb25maWcoe1xuICAgICAgICAgICAgICAgIHRpdGxlOiB0aGlzLnRvb2xiYXJDb25maWcuaW1hZ2VVcmwuZGlhbG9nTWVzc2FnZSxcbiAgICAgICAgICAgICAgICBpc0hhbmRsZUNsb3NlT25BY2NlcHQ6IHRydWUsXG4gICAgICAgICAgICAgICAgYm9keUNvbXBvbmVudDoge1xuICAgICAgICAgICAgICAgICAgICBjb21wb25lbnQ6IEV1aUVkaXRvckltYWdlRGlhbG9nQ29tcG9uZW50LFxuICAgICAgICAgICAgICAgICAgICBjb25maWc6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uRm9ybVZhbHVlQ2hhbmdlOiAoZm9ybTogRm9ybUdyb3VwKTogdm9pZCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1hZ2VVcmxEaWFsb2dGb3JtID0gZm9ybTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBhY2NlcHQ6ICgpOiB2b2lkID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGltYWdlVXJsRGlhbG9nRm9ybSAmJiBpbWFnZVVybERpYWxvZ0Zvcm0udmFsaWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZXVpRGlhbG9nU2VydmljZS5jbG9zZURpYWxvZygpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByYW5nZSA9IHRoaXMucXVpbGwuZ2V0U2VsZWN0aW9uKCkgfHwgeyBpbmRleDogMCwgbGVuZ3RoOiAwIH07XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnF1aWxsLmluc2VydEVtYmVkKHJhbmdlLmluZGV4LCAnaW1hZ2UnLCBpbWFnZVVybERpYWxvZ0Zvcm0uZ2V0KCd1cmwnKS52YWx1ZSwgJ3VzZXInKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBlZGl0b3JVbmRvKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnF1aWxsWydoaXN0b3J5J10udW5kbygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBlZGl0b3JSZWRvKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnF1aWxsWydoaXN0b3J5J10ucmVkbygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBlZGl0b3JEZWxldGVDb250ZW50KCk6IHZvaWQge1xuICAgICAgICBjb25zdCBjb25maWcgPSBuZXcgRXVpRGlhbG9nQ29uZmlnKHtcbiAgICAgICAgICAgIHRpdGxlOiAnRGVsZXRlIGNvbnRlbnQnLFxuICAgICAgICAgICAgY29udGVudDogXCI8cD5BcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIGVkaXRvcidzIGNvbnRlbnQ/PC9wPlwiLFxuICAgICAgICAgICAgaGFzQ2xvc2VCdXR0b246IGZhbHNlLFxuICAgICAgICAgICAgYWNjZXB0OiAoKTogdm9pZCA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5xdWlsbC5zZXRDb250ZW50cyhudWxsKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuZXVpRGlhbG9nU2VydmljZS5vcGVuRGlhbG9nKGNvbmZpZyk7XG4gICAgfVxuXG4gICAgcHVibGljIGluc2VydFRhYmxlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnRhYmxlTW9kdWxlLmluc2VydFRhYmxlKDMsIDMpO1xuICAgIH1cblxuICAgIGdldCBoYXNJbWFnZUZlYXR1cmUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmV1aUVkaXRvckN1c3RvbVRvb2xiYXJcbiAgICAgICAgICAgID8gdGhpcy5ldWlFZGl0b3JDdXN0b21Ub29sYmFyPy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLnFsLWltYWdlJylcbiAgICAgICAgICAgIDogdGhpcy50b29sYmFyQ29uZmlnLmltYWdlO1xuICAgIH1cblxuICAgIHB1YmxpYyBfb25FZGl0b3JDcmVhdGVkKHF1aWxsOiB0eXBlb2YgUXVpbGxUeXBlKTogdm9pZCB7XG4gICAgICAgIHRoaXMucXVpbGwgPSBxdWlsbDtcblxuICAgICAgICBpZiAodGhpcy5pc0VuYWJsZWRPbkZvY3VzKSB7XG4gICAgICAgICAgICB0aGlzLnF1aWxsLmZvY3VzKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5mb3JtYXQgPT09ICdodG1sJykge1xuICAgICAgICAgICAgY29uc3QgZGVsdGEgPSB0aGlzLnF1aWxsLmNsaXBib2FyZC5jb252ZXJ0KHsgaHRtbDogdGhpcy52YWx1ZSBhcyBzdHJpbmcgfSk7XG4gICAgICAgICAgICB0aGlzLmZvcm1Db250cm9sLnBhdGNoVmFsdWUoZGVsdGEpO1xuICAgICAgICAgICAgdGhpcy5xdWlsbC5zZXRDb250ZW50cyhkZWx0YSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5mb3JtYXQgPT09ICdqc29uJykge1xuICAgICAgICAgICAgdGhpcy5mb3JtQ29udHJvbC5wYXRjaFZhbHVlKHRoaXMudmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5xdWlsbC5zZXRDb250ZW50cyhKU09OLnBhcnNlKHRoaXMudmFsdWUpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy5oYXNJbWFnZUZlYXR1cmUpIHtcbiAgICAgICAgICAgIHF1aWxsLmNsaXBib2FyZC5hZGRNYXRjaGVyKCdJTUcnLCAoZWxlbWVudDogRWxlbWVudCwgZGVsdGE6IERlbHRhKSA9PiBuZXcgRGVsdGEoKS5pbnNlcnQoJycpKTtcbiAgICAgICAgICAgIHF1aWxsLmNsaXBib2FyZC5hZGRNYXRjaGVyKCdQSUNUVVJFJywgKGVsZW1lbnQ6IEVsZW1lbnQsIGRlbHRhOiBEZWx0YSkgPT4gbmV3IERlbHRhKCkuaW5zZXJ0KCcnKSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmVkaXRvckNyZWF0ZS5lbWl0KHF1aWxsKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgX29uRWRpdG9yQ2hhbmdlZChldmVudDogRWRpdG9yQ2hhbmdlU2VsZWN0aW9uIHwgQ29udGVudENoYW5nZSB8IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnNvbGUud2Fybignb25FZGl0b3JDaGFuZ2VkKCkgZXZlbnQgaXMgREVQUkVDQVRFRCBwbGVhc2UgdXNlIGNvbnRlbnRDaGFuZ2UoKSBldmVudCBpbnN0ZWFkLicpO1xuICAgICAgICB0aGlzLmVkaXRvckNoYW5nZS5lbWl0KGV2ZW50IGFzIEVkaXRvckNoYW5nZVNlbGVjdGlvbik7XG4gICAgfVxuXG4gICAgcHVibGljIF9vbkNvbnRlbnRDaGFuZ2VkKGV2ZW50OiBDb250ZW50Q2hhbmdlKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmZvcm1hdCA9PT0gJ2h0bWwnKSB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gZXZlbnQuaHRtbDtcbiAgICAgICAgICAgIHRoaXMuY2FsY3VsYXRlQ291bnRlcnModGhpcy52YWx1ZSBhcyBzdHJpbmcpO1xuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLmh0bWxFbnRpdGllc0RlY29kZSh0aGlzLnZhbHVlIGFzIHN0cmluZykpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmZvcm1hdCA9PT0gJ2pzb24nKSB7XG4gICAgICAgICAgICBpZiAoZXZlbnQudGV4dCAhPT0gJ1xcbicpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gZXZlbnQuY29udGVudDtcbiAgICAgICAgICAgICAgICB0aGlzLmNhbGN1bGF0ZUNvdW50ZXJzKGV2ZW50LnRleHQpO1xuICAgICAgICAgICAgICAgIHRoaXMuanNvblRvSHRtbENvbnRlbnQgPSB0aGlzLmh0bWxFbnRpdGllc0RlY29kZShKU09OLnN0cmluZ2lmeSh0aGlzLnZhbHVlKSk7XG4gICAgICAgICAgICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLmpzb25Ub0h0bWxDb250ZW50KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy52YWx1ZSA9IG51bGw7XG4gICAgICAgICAgICAgICAgdGhpcy5jYWxjdWxhdGVDb3VudGVycygnJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5qc29uVG9IdG1sQ29udGVudCA9ICcnO1xuICAgICAgICAgICAgICAgIHRoaXMub25DaGFuZ2UobnVsbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jb250ZW50Q2hhbmdlLmVtaXQoZXZlbnQpOyAvLyBOZXcgZW1pdHRlclxuICAgICAgICB0aGlzLl9vbkVkaXRvckNoYW5nZWQoZXZlbnQpOyAvLyBTeW5jIHdpdGggZWRpdG9yIGNoYW5nZSBldmVudCBzaW5jZSBpdCdzIGR1cGxpY2F0ZWQgZXZlbnRcbiAgICB9XG5cbiAgICBwdWJsaWMgX29uU2VsZWN0aW9uQ2hhbmdlZChldmVudDogU2VsZWN0aW9uQ2hhbmdlKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlLmVtaXQoZXZlbnQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBfb25Gb2N1cyhldmVudDogRm9jdXMpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc0ZvY3VzZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLmZvY3VzLmVtaXQoZXZlbnQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBfb25CbHVyKGV2ZW50OiBCbHVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNGb2N1c2VkID0gZmFsc2U7XG4gICAgICAgIHRoaXMub25Ub3VjaCgpO1xuICAgICAgICB0aGlzLmJsdXIuZW1pdChldmVudCk7XG4gICAgfVxuXG4gICAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gICAgfVxuXG4gICAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vblRvdWNoID0gZm47XG4gICAgfVxuXG4gICAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWUgfHwgbnVsbDtcbiAgICAgICAgdGhpcy5qc29uVG9IdG1sQ29udGVudCA9IHRoaXMudmFsdWU7XG5cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5xdWlsbCkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmZvcm1hdCA9PT0gJ2h0bWwnKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGRlbHRhID0gdGhpcy5xdWlsbC5jbGlwYm9hcmQuY29udmVydCh7IGh0bWw6IHRoaXMudmFsdWUgYXMgc3RyaW5nIH0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm1Db250cm9sLnBhdGNoVmFsdWUoZGVsdGEpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnF1aWxsLnNldENvbnRlbnRzKGRlbHRhKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5mb3JtYXQgPT09ICdqc29uJykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm1Db250cm9sLnBhdGNoVmFsdWUodGhpcy52YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgIC8vIHRoaXMucXVpbGwuc2V0Q29udGVudHMoSlNPTi5wYXJzZSh0aGlzLnZhbHVlKSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdGhpcy5jYWxjdWxhdGVDb3VudGVycyh0aGlzLnZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgdGFibGVNb2R1bGUoKTogQmV0dGVyVGFibGVNb2R1bGUge1xuICAgICAgICByZXR1cm4gdGhpcy5xdWlsbC5nZXRNb2R1bGUoJ2JldHRlci10YWJsZScpO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25DaGFuZ2U6IGFueSA9ICgpID0+IHt9O1xuXG4gICAgcHJpdmF0ZSBvblRvdWNoOiBhbnkgPSAoKSA9PiB7fTtcblxuICAgIHByaXZhdGUgaHRtbEVudGl0aWVzRGVjb2RlKGNvbnRlbnQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGxldCBjID0gY29udGVudDtcbiAgICAgICAgaWYgKGMpIHtcbiAgICAgICAgICAgIGMgPSBjLnJlcGxhY2UoJyZhbXA7JywgJyYnKTtcbiAgICAgICAgICAgIGMgPSBjLnJlcGxhY2UoJyZuYnNwOycsICcgJyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYztcbiAgICB9XG5cbiAgICBnZXQgaGFzQ2hhcmFjdGVyc0NvdW50ZXIoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnRvb2xiYXJDb25maWcuY291bnRlcnMub3B0aW9ucy5maW5kKChvKSA9PiBvLm5hbWUgPT09ICdjaGFyYWN0ZXJzJyk7XG4gICAgfVxuXG4gICAgZ2V0IGNoYXJhY3RlcnNDb3VudGVyTGFiZWwoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudG9vbGJhckNvbmZpZy5jb3VudGVycy5vcHRpb25zLmZpbmQoKG8pID0+IG8ubmFtZSA9PT0gJ2NoYXJhY3RlcnMnKT8ubGFiZWw7XG4gICAgfVxuXG4gICAgZ2V0IGhhc1dvcmRzQ291bnRlcigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudG9vbGJhckNvbmZpZy5jb3VudGVycy5vcHRpb25zLmZpbmQoKG8pID0+IG8ubmFtZSA9PT0gJ3dvcmRzJyk7XG4gICAgfVxuXG4gICAgZ2V0IHdvcmRzQ291bnRlckxhYmVsKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnRvb2xiYXJDb25maWcuY291bnRlcnMub3B0aW9ucy5maW5kKChvKSA9PiBvLm5hbWUgPT09ICd3b3JkcycpPy5sYWJlbDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNhbGN1bGF0ZUNvdW50ZXJzKGNvbnRlbnQ6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBsZXQgdGV4dDogc3RyaW5nO1xuICAgICAgICBjb25zdCByZWdleCA9IC9bXFxzXFxuXSsvO1xuICAgICAgICBcbiAgICAgICAgaWYgKHRoaXMuZm9ybWF0ID09PSAnaHRtbCcpIHtcbiAgICAgICAgICAgIGlmIChjb250ZW50ICYmIGNvbnRlbnQubGVuZ3RoID4gMCAmJiB0aGlzLnF1aWxsKSB7XG4gICAgICAgICAgICAgICAgdGV4dCA9IHRoaXMuc3RyaXBIdG1sKGNvbnRlbnQpO1xuICAgICAgICAgICAgICAgIHRoaXMuY2hhcmFjdGVyc0NvdW50ID0gdGV4dC5sZW5ndGg7XG5cbiAgICAgICAgICAgICAgICB0ZXh0ID0gY29udGVudC5yZXBsYWNlKC88XFwvKHB8ZGl2fGJyfGxpfGhbMS02XSk+L2dpLCAnICcpLnJlcGxhY2UoLzxbXj5dKz4vZywgJycpO1xuICAgICAgICAgICAgICAgIHRoaXMud29yZHNDb3VudCA9ICF0ZXh0ID8gMCA6IHRleHQudHJpbSgpLnNwbGl0KHJlZ2V4KS5maWx0ZXIodCA9PiB0ICE9PSAnJykubGVuZ3RoO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNoYXJhY3RlcnNDb3VudCA9IDA7XG4gICAgICAgICAgICAgICAgdGhpcy53b3Jkc0NvdW50ID0gMDtcbiAgICAgICAgICAgICAgICB0aGlzLmJ5dGVzQ291bnQgPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuZm9ybWF0ID09PSAnanNvbicpIHtcbiAgICAgICAgICAgIGlmIChjb250ZW50ICYmIHRoaXMucXVpbGwpIHtcbiAgICAgICAgICAgICAgICB0ZXh0ID0gdGhpcy5zdHJpcEh0bWwodGhpcy5xdWlsbC5yb290LmlubmVySFRNTCk7XG4gICAgICAgICAgICAgICAgdGhpcy5jaGFyYWN0ZXJzQ291bnQgPSB0ZXh0Lmxlbmd0aDtcbiAgICBcbiAgICAgICAgICAgICAgICB0ZXh0ID0gdGhpcy5xdWlsbC5yb290LmlubmVySFRNTC5yZXBsYWNlKC88XFwvKHB8ZGl2fGJyfGxpfGhbMS02XSk+L2dpLCAnICcpLnJlcGxhY2UoLzxbXj5dKz4vZywgJycpO1xuICAgICAgICAgICAgICAgIHRoaXMud29yZHNDb3VudCA9ICF0ZXh0ID8gMCA6IHRleHQudHJpbSgpLnNwbGl0KHJlZ2V4KS5maWx0ZXIodCA9PiB0ICE9PSAnJykubGVuZ3RoO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNoYXJhY3RlcnNDb3VudCA9IDA7XG4gICAgICAgICAgICAgICAgdGhpcy53b3Jkc0NvdW50ID0gMDtcbiAgICAgICAgICAgICAgICB0aGlzLmJ5dGVzQ291bnQgPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgXG4gICAgICAgIHRoaXMuY2hhcmFjdGVyc0NvdW50Q2hhbmdlLmVtaXQodGhpcy5jaGFyYWN0ZXJzQ291bnQpO1xuICAgICAgICB0aGlzLndvcmRzQ291bnRDaGFuZ2UuZW1pdCh0aGlzLndvcmRzQ291bnQpO1xuICAgIH1cbiAgICBcbiAgICBwcml2YXRlIHN0cmlwSHRtbChjb250ZW50OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCByZWdleCA9IC8oPChbXj5dKyk+KS9nbTtcbiAgICAgICAgY29uc3QgY29udGVudFRvUmVwbGFjZSA9IGNvbnRlbnQucmVwbGFjZShyZWdleCwgJycpO1xuICAgICAgICByZXR1cm4gY29udGVudFRvUmVwbGFjZS5yZXBsYWNlKC9bXFx1MjAwQi1cXHUyMDBEXFx1RkVGRl0vZywgJycpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2xlYW5IdG1sKGNvbnRlbnQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGNvbnRlbnRUb1JlcGxhY2UgPSBjb250ZW50LnJlcGxhY2UoLzxbXj5dKj4vZywgJycpO1xuICAgICAgICByZXR1cm4gY29udGVudFRvUmVwbGFjZS5yZXBsYWNlKC9bXFx1MjAwQi1cXHUyMDBEXFx1RkVGRl0vZywgJycpO1xuICAgIH1cbn1cblxuLyogZXNsaW50LWRpc2FibGUgKi9cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ2V1aUVkaXRvckN1c3RvbVRvb2xiYXInIH0pXG5leHBvcnQgY2xhc3MgRXVpRWRpdG9yQ3VzdG9tVG9vbGJhclRhZ0RpcmVjdGl2ZSB7XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIGVsZW1lbnRDbGFzcyA9ICdldWktZWRpdG9yLWN1c3RvbS10b29sYmFyJztcblxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7fVxufVxuLyogZXNsaW50LWVuYWJsZSAqL1xuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cInJlYWR5VG9SZW5kZXJcIj5cbjxkaXYgW2hpZGRlbl09XCJpc1JlYWRPbmx5XCIgY2xhc3M9XCJldWktZWRpdG9yLXdyYXBwZXJcIiBbc3R5bGUuaGVpZ2h0XT1cImhlaWdodCArICdweCdcIj5cbiAgICA8cXVpbGwtZWRpdG9yXG4gICAgICAgIFtpZF09XCJnZW5lcmF0ZWRJZFwiXG4gICAgICAgIGNsYXNzPVwiZXVpLWVkaXRvciB7eyBzdHlsZUNsYXNzIH19XCJcbiAgICAgICAgW2NsYXNzLmV1aS1lZGl0b3ItLWZvY3VzZWRdPVwiaXNGb2N1c2VkXCJcbiAgICAgICAgW2Zvcm1hdF09XCJmb3JtYXRcIlxuICAgICAgICBbZm9ybWF0c109XCJmb3JtYXRzXCJcbiAgICAgICAgW3Nhbml0aXplXT1cInRydWVcIlxuICAgICAgICBbbW9kdWxlc109XCJtb2R1bGVzXCJcbiAgICAgICAgW3RoZW1lXT1cInRoZW1lXCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgICAgW2N1c3RvbVRvb2xiYXJQb3NpdGlvbl09XCJjdXN0b21Ub29sYmFyUG9zaXRpb25cIlxuICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZm9ybUNvbnRyb2xcIlxuICAgICAgICBbZGVidWddPVwiZGVidWdcIlxuICAgICAgICBbdGFiaW5kZXhdPVwidGFiaW5kZXhcIlxuICAgICAgICBbcHJlc2VydmVXaGl0ZXNwYWNlXT1cInRydWVcIlxuICAgICAgICBbaGFzSW1hZ2VGZWF0dXJlXT1cImhhc0ltYWdlRmVhdHVyZVwiXG4gICAgICAgIChvbkVkaXRvckNyZWF0ZWQpPVwiX29uRWRpdG9yQ3JlYXRlZCgkZXZlbnQpXCJcbiAgICAgICAgKG9uRWRpdG9yQ2hhbmdlZCk9XCJfb25FZGl0b3JDaGFuZ2VkKCRldmVudClcIlxuICAgICAgICAob25Db250ZW50Q2hhbmdlZCk9XCJfb25Db250ZW50Q2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgKG9uU2VsZWN0aW9uQ2hhbmdlZCk9XCJfb25TZWxlY3Rpb25DaGFuZ2VkKCRldmVudClcIlxuICAgICAgICAob25Gb2N1cyk9XCJfb25Gb2N1cygkZXZlbnQpXCJcbiAgICAgICAgKG9uQmx1cik9XCJfb25CbHVyKCRldmVudClcIj5cbiAgICAgICAgPGRpdiAqbmdJZj1cIiFldWlFZGl0b3JDdXN0b21Ub29sYmFyXCIgcXVpbGwtZWRpdG9yLXRvb2xiYXI+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgKm5nSWY9XCJ0b29sYmFyQ29uZmlnLmhlYWRpbmdzXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInFsLWZvcm1hdHNcIlxuICAgICAgICAgICAgICAgIHJvbGU9XCJhcHBsaWNhdGlvblwiXG4gICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIlNlbGVjdCBoZWFkaW5ncyBzdHlsZVwiXG4gICAgICAgICAgICAgICAgZXVpVG9vbHRpcD1cInt7IHRvb2xiYXJDb25maWcuaGVhZGluZ3MubGFiZWwgfX1cIj5cbiAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwicWwtaGVhZGVyXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJ0b29sYmFyQ29uZmlnLmhlYWRpbmdzLmxhYmVsXCI+XG4gICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJ7eyB2YWx1ZSB9fVwiICpuZ0Zvcj1cImxldCB2YWx1ZSBvZiB0b29sYmFyQ29uZmlnLmhlYWRpbmdzLm9wdGlvbnNcIj5IZWFkaW5nIHt7IHZhbHVlIH19PC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgIDxvcHRpb24gc2VsZWN0ZWQ+Tm9ybWFsPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAqbmdJZj1cInRvb2xiYXJDb25maWcuZm9udFwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJxbC1mb3JtYXRzXCJcbiAgICAgICAgICAgICAgICByb2xlPVwiYXBwbGljYXRpb25cIlxuICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJTZWxlY3QgZm9udCBzdHlsZVwiXG4gICAgICAgICAgICAgICAgZXVpVG9vbHRpcD1cInt7IHRvb2xiYXJDb25maWcuZm9udC5sYWJlbCB9fVwiPlxuICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJxbC1mb250XCIgW2F0dHIuYXJpYS1sYWJlbF09XCJ0b29sYmFyQ29uZmlnLmZvbnQubGFiZWxcIj5cbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBzZWxlY3RlZD5TYW5zIFNlcmlmPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJzZXJpZlwiPlNlcmlmPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJtb25vc3BhY2VcIj5Nb25vc3BhY2U8L29wdGlvbj5cbiAgICAgICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInRvb2xiYXJDb25maWcuYm9sZCB8fCB0b29sYmFyQ29uZmlnLml0YWxpYyB8fCB0b29sYmFyQ29uZmlnLnVuZGVybGluZSB8fCB0b29sYmFyQ29uZmlnLnN0cmlrZVwiIGNsYXNzPVwicWwtZm9ybWF0c1wiPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJ0b29sYmFyQ29uZmlnLmJvbGRcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInFsLWJvbGRcIlxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0b29sYmFyQ29uZmlnLmJvbGQubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICBldWlUb29sdGlwPVwie3sgdG9vbGJhckNvbmZpZy5ib2xkLmxhYmVsIH19XCI+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInRvb2xiYXJDb25maWcuaXRhbGljXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJxbC1pdGFsaWNcIlxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0b29sYmFyQ29uZmlnLml0YWxpYy5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgIGV1aVRvb2x0aXA9XCJ7eyB0b29sYmFyQ29uZmlnLml0YWxpYy5sYWJlbCB9fVwiPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJ0b29sYmFyQ29uZmlnLnVuZGVybGluZVwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicWwtdW5kZXJsaW5lXCJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwidG9vbGJhckNvbmZpZy51bmRlcmxpbmUubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICBldWlUb29sdGlwPVwie3sgdG9vbGJhckNvbmZpZy51bmRlcmxpbmUubGFiZWwgfX1cIj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwidG9vbGJhckNvbmZpZy5zdHJpa2VcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInFsLXN0cmlrZVwiXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInRvb2xiYXJDb25maWcuc3RyaWtlLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgZXVpVG9vbHRpcD1cInt7IHRvb2xiYXJDb25maWcuc3RyaWtlLmxhYmVsIH19XCI+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ0b29sYmFyQ29uZmlnLmZvbnRDb2xvciB8fCB0b29sYmFyQ29uZmlnLmZvbnRCYWNrZ3JvdW5kXCIgY2xhc3M9XCJxbC1mb3JtYXRzXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJ0b29sYmFyQ29uZmlnLmZvbnRDb2xvclwiIGV1aVRvb2x0aXA9XCJ7eyB0b29sYmFyQ29uZmlnLmZvbnRDb2xvci5sYWJlbCB9fVwiPlxuICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwicWwtY29sb3JcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInRvb2xiYXJDb25maWcuZm9udENvbG9yLmxhYmVsXCI+PC9zZWxlY3Q+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwidG9vbGJhckNvbmZpZy5mb250QmFja2dyb3VuZFwiIGV1aVRvb2x0aXA9XCJ7eyB0b29sYmFyQ29uZmlnLmZvbnRCYWNrZ3JvdW5kLmxhYmVsIH19XCI+XG4gICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJxbC1iYWNrZ3JvdW5kXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJ0b29sYmFyQ29uZmlnLmZvbnRCYWNrZ3JvdW5kLmxhYmVsXCI+PC9zZWxlY3Q+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidG9vbGJhckNvbmZpZy5zdWJzY3JpcHQgfHwgdG9vbGJhckNvbmZpZy5zdXBlcnNjcmlwdFwiIGNsYXNzPVwicWwtZm9ybWF0c1wiPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJ0b29sYmFyQ29uZmlnLnN1YnNjcmlwdFwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicWwtc2NyaXB0XCJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCJzdWJcIlxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0b29sYmFyQ29uZmlnLnN1YnNjcmlwdC5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgIGV1aVRvb2x0aXA9XCJ7eyB0b29sYmFyQ29uZmlnLnN1YnNjcmlwdC5sYWJlbCB9fVwiPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJ0b29sYmFyQ29uZmlnLnN1cGVyc2NyaXB0XCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJxbC1zY3JpcHRcIlxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cInN1cGVyXCJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwidG9vbGJhckNvbmZpZy5zdXBlcnNjcmlwdC5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgIGV1aVRvb2x0aXA9XCJ7eyB0b29sYmFyQ29uZmlnLnN1cGVyc2NyaXB0LmxhYmVsIH19XCI+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ0b29sYmFyQ29uZmlnLnRleHRBbGlnblwiIGNsYXNzPVwicWwtZm9ybWF0c1wiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGV1aVRvb2x0aXA9XCJ7eyB0b29sYmFyQ29uZmlnLnRleHRBbGlnbi5sYWJlbCB9fVwiPlxuICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwicWwtYWxpZ25cIiBbYXR0ci5hcmlhLWxhYmVsXT1cInRvb2xiYXJDb25maWcudGV4dEFsaWduLmxhYmVsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHNlbGVjdGVkPjwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cImNlbnRlclwiPjwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cInJpZ2h0XCI+PC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwianVzdGlmeVwiPjwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAqbmdJZj1cInRvb2xiYXJDb25maWcub3JkZXJlZExpc3QgfHwgdG9vbGJhckNvbmZpZy5idWxsZXRMaXN0IHx8IHRvb2xiYXJDb25maWcuaW5kZW50TGVzcyB8fCB0b29sYmFyQ29uZmlnLmluZGVudE1vcmVcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwicWwtZm9ybWF0c1wiPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJ0b29sYmFyQ29uZmlnLm9yZGVyZWRMaXN0XCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJxbC1saXN0XCJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCJvcmRlcmVkXCJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwidG9vbGJhckNvbmZpZy5vcmRlcmVkTGlzdC5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgIGV1aVRvb2x0aXA9XCJ7eyB0b29sYmFyQ29uZmlnLm9yZGVyZWRMaXN0LmxhYmVsIH19XCI+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInRvb2xiYXJDb25maWcuYnVsbGV0TGlzdFwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicWwtbGlzdFwiXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPVwiYnVsbGV0XCJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwidG9vbGJhckNvbmZpZy5idWxsZXRMaXN0LmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgZXVpVG9vbHRpcD1cInt7IHRvb2xiYXJDb25maWcuYnVsbGV0TGlzdC5sYWJlbCB9fVwiPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwidG9vbGJhckNvbmZpZy5pbmRlbnRMZXNzXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJxbC1pbmRlbnRcIlxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cIi0xXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0b29sYmFyQ29uZmlnLmluZGVudExlc3MubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICBldWlUb29sdGlwPVwie3sgdG9vbGJhckNvbmZpZy5pbmRlbnRMZXNzLmxhYmVsIH19XCI+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJ0b29sYmFyQ29uZmlnLmluZGVudE1vcmVcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInFsLWluZGVudFwiXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPVwiKzFcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInRvb2xiYXJDb25maWcuaW5kZW50TW9yZS5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgIGV1aVRvb2x0aXA9XCJ7eyB0b29sYmFyQ29uZmlnLmluZGVudE1vcmUubGFiZWwgfX1cIj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgICAgIHRvb2xiYXJDb25maWcuYmxvY2txdW90ZSB8fFxuICAgICAgICAgICAgICAgICAgICB0b29sYmFyQ29uZmlnLmNvZGVCbG9jayB8fFxuICAgICAgICAgICAgICAgICAgICB0b29sYmFyQ29uZmlnLmxpbmsgfHxcbiAgICAgICAgICAgICAgICAgICAgdG9vbGJhckNvbmZpZy5pbWFnZSB8fFxuICAgICAgICAgICAgICAgICAgICB0b29sYmFyQ29uZmlnLmltYWdlVXJsIHx8XG4gICAgICAgICAgICAgICAgICAgIHRvb2xiYXJDb25maWcudmlkZW8gfHxcbiAgICAgICAgICAgICAgICAgICAgdG9vbGJhckNvbmZpZy50YWJsZVxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJxbC1mb3JtYXRzXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInRvb2xiYXJDb25maWcuYmxvY2txdW90ZVwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicWwtYmxvY2txdW90ZVwiXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInRvb2xiYXJDb25maWcuYmxvY2txdW90ZS5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgIGV1aVRvb2x0aXA9XCJ7eyB0b29sYmFyQ29uZmlnLmJsb2NrcXVvdGUubGFiZWwgfX1cIj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwidG9vbGJhckNvbmZpZy5jb2RlQmxvY2tcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInFsLWNvZGUtYmxvY2tcIlxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0b29sYmFyQ29uZmlnLmNvZGVCbG9jay5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgIGV1aVRvb2x0aXA9XCJ7eyB0b29sYmFyQ29uZmlnLmNvZGVCbG9jay5sYWJlbCB9fVwiPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJ0b29sYmFyQ29uZmlnLmxpbmtcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInFsLWxpbmtcIlxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0b29sYmFyQ29uZmlnLmxpbmsubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICBldWlUb29sdGlwPVwie3sgdG9vbGJhckNvbmZpZy5saW5rLmxhYmVsIH19XCI+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInRvb2xiYXJDb25maWcuaW1hZ2VcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInFsLWltYWdlXCJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwidG9vbGJhckNvbmZpZy5pbWFnZS5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgIGV1aVRvb2x0aXA9XCJ7eyB0b29sYmFyQ29uZmlnLmltYWdlLmxhYmVsIH19XCI+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJ0b29sYmFyQ29uZmlnLmltYWdlVXJsXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0b29sYmFyQ29uZmlnLmltYWdlVXJsLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgZXVpVG9vbHRpcD1cInt7IHRvb2xiYXJDb25maWcuaW1hZ2VVcmwubGFiZWwgfX1cIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiaW1hZ2VVcmxIYW5kbGVyKClcIj5cbiAgICAgICAgICAgICAgICAgICAgPGV1aS1pY29uLXN2ZyBpY29uPVwiZXVpLWltYWdlLWFkZFwiPjwvZXVpLWljb24tc3ZnPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJ0b29sYmFyQ29uZmlnLnZpZGVvXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJxbC12aWRlb1wiXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInRvb2xiYXJDb25maWcudmlkZW8ubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICBldWlUb29sdGlwPVwie3sgdG9vbGJhckNvbmZpZy52aWRlby5sYWJlbCB9fVwiPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwidG9vbGJhckNvbmZpZy50YWJsZVwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwidG9vbGJhckNvbmZpZy50YWJsZS5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgIGV1aVRvb2x0aXA9XCJ7eyB0b29sYmFyQ29uZmlnLnRhYmxlLmxhYmVsIH19XCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImluc2VydFRhYmxlKClcIj5cbiAgICAgICAgICAgICAgICAgICAgPGV1aS1pY29uLXN2ZyBpY29uPVwiZXVpLWVjbC1zcHJlYWRzaGVldFwiPjwvZXVpLWljb24tc3ZnPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidG9vbGJhckNvbmZpZy5jbGVhbiB8fCB0b29sYmFyQ29uZmlnLmRlbGV0ZVwiIGNsYXNzPVwicWwtZm9ybWF0c1wiPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJ0b29sYmFyQ29uZmlnLmNsZWFuXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJxbC1jbGVhblwiXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInRvb2xiYXJDb25maWcuY2xlYW4ubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICBldWlUb29sdGlwPVwie3sgdG9vbGJhckNvbmZpZy5jbGVhbi5sYWJlbCB9fVwiPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwidG9vbGJhckNvbmZpZy5kZWxldGVcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInRvb2xiYXJDb25maWcuZGVsZXRlLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgZXVpVG9vbHRpcD1cInt7IHRvb2xiYXJDb25maWcuZGVsZXRlLmxhYmVsIH19XCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImVkaXRvckRlbGV0ZUNvbnRlbnQoKVwiPlxuICAgICAgICAgICAgICAgICAgICA8ZXVpLWljb24tc3ZnIGljb249XCJldWktZGVsZXRlLWZvcmV2ZXJcIj48L2V1aS1pY29uLXN2Zz5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInRvb2xiYXJDb25maWcudW5kbyB8fCB0b29sYmFyQ29uZmlnLnJlZG9cIiBjbGFzcz1cInFsLWZvcm1hdHNcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInRvb2xiYXJDb25maWcudW5kb1wiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwidG9vbGJhckNvbmZpZy51bmRvLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgZXVpVG9vbHRpcD1cInt7IHRvb2xiYXJDb25maWcudW5kby5sYWJlbCB9fVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJlZGl0b3JVbmRvKClcIj5cbiAgICAgICAgICAgICAgICAgICAgPGV1aS1pY29uLXN2ZyBpY29uPVwiZXVpLXVuZG9cIj48L2V1aS1pY29uLXN2Zz5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInRvb2xiYXJDb25maWcucmVkb1wiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwidG9vbGJhckNvbmZpZy5yZWRvLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgZXVpVG9vbHRpcD1cInt7IHRvb2xiYXJDb25maWcucmVkby5sYWJlbCB9fVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJlZGl0b3JSZWRvKClcIj5cbiAgICAgICAgICAgICAgICAgICAgPGV1aS1pY29uLXN2ZyBpY29uPVwiZXVpLXJlZG9cIj48L2V1aS1pY29uLXN2Zz5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInRvb2xiYXJDb25maWcuY291bnRlcnNcIiBjbGFzcz1cInFsLWZvcm1hdHNcIj5cbiAgICAgICAgICAgICAgICA8ZXVpLWVkaXRvci1jb3VudGVyc1xuICAgICAgICAgICAgICAgICAgICBbaGFzQ2hhcmFjdGVyc0NvdW50ZXJdPVwiaGFzQ2hhcmFjdGVyc0NvdW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICBbY2hhcmFjdGVyc0NvdW50ZXJdPVwiY2hhcmFjdGVyc0NvdW50XCJcbiAgICAgICAgICAgICAgICAgICAgW2NoYXJhY3RlcnNMYWJlbF09XCJjaGFyYWN0ZXJzQ291bnRlckxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgW2hhc1dvcmRzQ291bnRlcl09XCJoYXNXb3Jkc0NvdW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICBbd29yZHNDb3VudGVyXT1cIndvcmRzQ291bnRcIlxuICAgICAgICAgICAgICAgICAgICBbd29yZHNMYWJlbF09XCJ3b3Jkc0NvdW50ZXJMYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwidG9vbGJhckNvbmZpZy5jb3VudGVycy5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBldWlUb29sdGlwPVwie3sgdG9vbGJhckNvbmZpZy5jb3VudGVycy5sYWJlbCB9fVwiPlxuICAgICAgICAgICAgICAgIDwvZXVpLWVkaXRvci1jb3VudGVycz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiAqbmdJZj1cImV1aUVkaXRvckN1c3RvbVRvb2xiYXJcIiBxdWlsbC1lZGl0b3ItdG9vbGJhcj5cbiAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImV1aUVkaXRvckN1c3RvbVRvb2xiYXJcIj48L25nLWNvbnRlbnQ+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvcXVpbGwtZWRpdG9yPlxuPC9kaXY+XG5cbjwhLS0gUkVBRE9OTFkgTU9ERSAtLT5cbjxkaXZcbiAgICBbaGlkZGVuXT1cIiFpc1JlYWRPbmx5XCJcbiAgICBjbGFzcz1cImV1aS1lZGl0b3IgZXVpLWVkaXRvci0tcmVhZG9ubHkge3sgc3R5bGVDbGFzcyB9fVwiXG4gICAgW2NsYXNzLmV1aS1lZGl0b3ItLWVtcHR5XT1cIiF2YWx1ZVwiXG4gICAgdGFiaW5kZXg9XCJ7eyB0YWJpbmRleCB9fVwiXG4gICAgKGNsaWNrKT1cImVuYWJsZUVkaXRvck9uRm9jdXMoKVwiXG4gICAgKGZvY3VzaW4pPVwiZW5hYmxlRWRpdG9yT25Gb2N1cygpXCI+XG4gICAgPGV1aS1lZGl0b3ItaHRtbC12aWV3ICpuZ0lmPVwiZm9ybWF0ID09PSAnaHRtbCdcIiBbY29udGVudF09XCJ2YWx1ZVwiIFt0aGVtZV09XCJ0aGVtZVwiPjwvZXVpLWVkaXRvci1odG1sLXZpZXc+XG4gICAgPGV1aS1lZGl0b3ItanNvbi12aWV3ICpuZ0lmPVwiZm9ybWF0ID09PSAnanNvbidcIiBbY29udGVudF09XCJqc29uVG9IdG1sQ29udGVudFwiIFt0aGVtZV09XCJ0aGVtZVwiPjwvZXVpLWVkaXRvci1qc29uLXZpZXc+XG48L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuIl19
|
@@ -19,8 +19,11 @@ export declare class EuiPaginatorComponent implements OnInit, OnDestroy, OnChang
|
|
19
19
|
set isBasicMode(value: BooleanInput);
|
20
20
|
get isHidden(): boolean;
|
21
21
|
set isHidden(value: BooleanInput);
|
22
|
+
get hasPageSize(): boolean;
|
23
|
+
set hasPageSize(value: BooleanInput);
|
22
24
|
_isHidden: boolean;
|
23
25
|
_isBasicMode: boolean;
|
26
|
+
_hasPageSize: boolean;
|
24
27
|
pageChange: EventEmitter<EuiPaginationEvent>;
|
25
28
|
page$: BehaviorSubject<EuiPaginationEvent>;
|
26
29
|
length$: BehaviorSubject<number>;
|
@@ -56,6 +59,6 @@ export declare class EuiPaginatorComponent implements OnInit, OnDestroy, OnChang
|
|
56
59
|
*/
|
57
60
|
getPage(page: number): void;
|
58
61
|
static ɵfac: i0.ɵɵFactoryDeclaration<EuiPaginatorComponent, never>;
|
59
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<EuiPaginatorComponent, "eui-paginator", never, { "e2eAttr": { "alias": "e2eAttr"; "required": false; }; "pageSizeOptions": { "alias": "pageSizeOptions"; "required": false; }; "pageSize": { "alias": "pageSize"; "required": false; }; "page": { "alias": "page"; "required": false; }; "length": { "alias": "length"; "required": false; }; "nbPageNumberNavigation": { "alias": "nbPageNumberNavigation"; "required": false; }; "isBasicMode": { "alias": "isBasicMode"; "required": false; }; "isHidden": { "alias": "isHidden"; "required": false; }; "hasPageNumberNavigation": { "alias": "hasPageNumberNavigation"; "required": false; }; "hasDynamicLength": { "alias": "hasDynamicLength"; "required": false; }; }, { "pageChange": "pageChange"; }, never, never, false, never>;
|
62
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<EuiPaginatorComponent, "eui-paginator", never, { "e2eAttr": { "alias": "e2eAttr"; "required": false; }; "pageSizeOptions": { "alias": "pageSizeOptions"; "required": false; }; "pageSize": { "alias": "pageSize"; "required": false; }; "page": { "alias": "page"; "required": false; }; "length": { "alias": "length"; "required": false; }; "nbPageNumberNavigation": { "alias": "nbPageNumberNavigation"; "required": false; }; "isBasicMode": { "alias": "isBasicMode"; "required": false; }; "isHidden": { "alias": "isHidden"; "required": false; }; "hasPageSize": { "alias": "hasPageSize"; "required": false; }; "hasPageNumberNavigation": { "alias": "hasPageNumberNavigation"; "required": false; }; "hasDynamicLength": { "alias": "hasDynamicLength"; "required": false; }; }, { "pageChange": "pageChange"; }, never, never, false, never>;
|
60
63
|
}
|
61
64
|
//# sourceMappingURL=eui-paginator.component.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"eui-paginator.component.d.ts","sourceRoot":"","sources":["../../eui-paginator/eui-paginator.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,MAAM,EAEN,SAAS,EACT,YAAY,EAEZ,SAAS,EACT,aAAa,EAGhB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAW,eAAe,EAAE,MAAM,MAAM,CAAC;AAEhD,OAAO,EAAyB,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAE/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;;AAE9C,qBAOa,qBAAsB,YAAW,MAAM,EAAE,SAAS,EAAE,SAAS;
|
1
|
+
{"version":3,"file":"eui-paginator.component.d.ts","sourceRoot":"","sources":["../../eui-paginator/eui-paginator.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,MAAM,EAEN,SAAS,EACT,YAAY,EAEZ,SAAS,EACT,aAAa,EAGhB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAW,eAAe,EAAE,MAAM,MAAM,CAAC;AAEhD,OAAO,EAAyB,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAE/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;;AAE9C,qBAOa,qBAAsB,YAAW,MAAM,EAAE,SAAS,EAAE,SAAS;IAiE3D,kBAAkB,EAAE,kBAAkB;IAC7C,OAAO,CAAC,OAAO;IAjEoB,OAAO,SAAmB;IAC3C,MAAM,SAAmB;IACtC,eAAe,EAAE,MAAM,EAAE,CAAwB;IACjD,QAAQ,SAAM;IACd,IAAI,SAAK;IACT,MAAM,SAAK;IACX,sBAAsB,SAAK;IACpC,IACI,WAAW,IAAI,OAAO,CAEzB;IACD,IAAI,WAAW,CAAC,KAAK,EAAE,YAAY,EAElC;IAED,IACI,QAAQ,IAAI,OAAO,CAEtB;IACD,IAAI,QAAQ,CAAC,KAAK,EAAE,YAAY,EAE/B;IAED,IACI,WAAW,IAAI,OAAO,CAEzB;IACD,IAAI,WAAW,CAAC,KAAK,EAAE,YAAY,EAElC;IAED,SAAS,UAAS;IAClB,YAAY,UAAS;IACrB,YAAY,UAAQ;IAEV,UAAU,mCAA0C;IAEvD,KAAK,EAAE,eAAe,CAAC,kBAAkB,CAAC,CAA6B;IACvE,OAAO,EAAE,eAAe,CAAC,MAAM,CAAC,CAA0B;IAC1D,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IAEtB,IACI,uBAAuB,IAAI,OAAO,CAErC;IACD,IAAI,uBAAuB,CAAC,KAAK,EAAE,YAAY,EAE9C;IACD,OAAO,CAAC,wBAAwB,CAAS;IACzC,IACI,gBAAgB,IAAI,OAAO,CAE9B;IACD,IAAI,gBAAgB,CAAC,KAAK,EAAE,YAAY,EAEvC;IACD,OAAO,CAAC,iBAAiB,CAAS;IAElC,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,QAAQ,CAA4C;gBAGjD,kBAAkB,EAAE,kBAAkB,EACrC,OAAO,EAAE,WAAW;IAGhC,WAAW,CAAC,CAAC,EAAE,aAAa,GAAG,IAAI;IAgBnC,QAAQ,IAAI,IAAI;IA0BhB,WAAW,IAAI,IAAI;IAKnB,IAAI,oBAAoB,IAAI,MAAM,EAAE,CAwBnC;IAEM,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAgBlC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAO5B,WAAW,IAAI,IAAI;IAOnB,cAAc,IAAI,IAAI;IAOtB,UAAU,IAAI,IAAI;IAOlB,UAAU,IAAI,IAAI;IAOlB,OAAO,CAAC,IAAI,EAAE,kBAAkB,GAAG,IAAI;IAIvC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI/B,QAAQ,IAAI,IAAI;IAQvB;;;;OAIG;IACI,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;yCAtNzB,qBAAqB;2CAArB,qBAAqB;CA2NjC"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"eui-editor.component.d.ts","sourceRoot":"","sources":["../../../externals/eui-editor/eui-editor.component.ts"],"names":[],"mappings":"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
|
1
|
+
{"version":3,"file":"eui-editor.component.d.ts","sourceRoot":"","sources":["../../../externals/eui-editor/eui-editor.component.ts"],"names":[],"mappings":"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"}
|
@@ -95,7 +95,7 @@ class EuiAlertComponent {
|
|
95
95
|
this.closeAlert.emit();
|
96
96
|
}
|
97
97
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: EuiAlertComponent, deps: [{ token: i1.BaseStatesDirective }], target: i0.ɵɵFactoryTarget.Component }); }
|
98
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.7", type: EuiAlertComponent, selector: "div[euiAlert], eui-alert", inputs: { ariaDescribedBy: "ariaDescribedBy", e2eAttr: "e2eAttr", isMuted: ["isMuted", "isMuted", booleanAttribute], isCloseable: ["isCloseable", "isCloseable", booleanAttribute], isFocusable: ["isFocusable", "isFocusable", booleanAttribute] }, outputs: { closeAlert: "closeAlert" }, host: { properties: { "class": "this.cssClasses", "attr.role": "this.role", "attr.aria-describedby": "this.ariaDescribedBy", "attr.tabindex": "this.tabindex", "attr.data-e2e": "this.e2eAttr" } }, queries: [{ propertyName: "alertTitle", first: true, predicate: i0.forwardRef(() => EuiAlertTitleDirective), descendants: true }], hostDirectives: [{ directive: i1.BaseStatesDirective, inputs: ["euiSuccess", "euiSuccess", "euiInfo", "euiInfo", "euiWarning", "euiWarning", "euiDanger", "euiDanger", "euiVariant", "euiVariant"] }], ngImport: i0, template: "@if (!isMuted) {\n <div class=\"eui-alert__type-container\">\n @if (baseStatesDirective.euiSuccess) {\n <eui-icon-svg class=\"eui-alert__icon-type\" icon=\"eui-ecl-check-filled\" fillColor=\"success-100\"></eui-icon-svg>\n }\n @else if (baseStatesDirective.euiWarning) {\n <eui-icon-svg class=\"eui-alert__icon-type\" icon=\"eui-ecl-warning\" fillColor=\"warning-100\"></eui-icon-svg>\n }\n @else if (baseStatesDirective.euiDanger) {\n <eui-icon-svg class=\"eui-alert__icon-type\" icon=\"eui-ecl-error\" fillColor=\"danger-100\"></eui-icon-svg>\n }\n @else {\n <eui-icon-svg class=\"eui-alert__icon-type\" icon=\"eui-ecl-information\" fillColor=\"info-100\"></eui-icon-svg>\n }\n </div>\n}\n\n<div id=\"{{ ariaDescribedBy }}\" class=\"eui-alert__content\">\n @if (alertTitle) {\n <ng-template *ngTemplateOutlet=\"contentWithTitle\"></ng-template>\n } @else {\n <ng-template *ngTemplateOutlet=\"contentNoTitle\"></ng-template>\n }\n</div>\n\n<ng-template #contentWithTitle>\n <div class=\"eui-alert__content-header eui-alert__content-header--with-title\">\n <ng-content select=\"eui-alert-title\"></ng-content>\n <ng-template *ngTemplateOutlet=\"closeButton\"></ng-template>\n </div>\n <ng-template *ngTemplateOutlet=\"content\"></ng-template>\n</ng-template>\n\n<ng-template #contentNoTitle>\n <div class=\"eui-alert__content-header\">\n <ng-template *ngTemplateOutlet=\"content\"></ng-template>\n <ng-template *ngTemplateOutlet=\"closeButton\"></ng-template>\n </div>\n</ng-template>\n\n<ng-template #closeButton>\n <div class=\"eui-alert__close\">\n <button *ngIf=\"isCloseable\"\n euiButton\n euiBasicButton\n euiPrimary\n euiSizeS\n aria-label=\"Close alert
|
98
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.7", type: EuiAlertComponent, selector: "div[euiAlert], eui-alert", inputs: { ariaDescribedBy: "ariaDescribedBy", e2eAttr: "e2eAttr", isMuted: ["isMuted", "isMuted", booleanAttribute], isCloseable: ["isCloseable", "isCloseable", booleanAttribute], isFocusable: ["isFocusable", "isFocusable", booleanAttribute] }, outputs: { closeAlert: "closeAlert" }, host: { properties: { "class": "this.cssClasses", "attr.role": "this.role", "attr.aria-describedby": "this.ariaDescribedBy", "attr.tabindex": "this.tabindex", "attr.data-e2e": "this.e2eAttr" } }, queries: [{ propertyName: "alertTitle", first: true, predicate: i0.forwardRef(() => EuiAlertTitleDirective), descendants: true }], hostDirectives: [{ directive: i1.BaseStatesDirective, inputs: ["euiSuccess", "euiSuccess", "euiInfo", "euiInfo", "euiWarning", "euiWarning", "euiDanger", "euiDanger", "euiVariant", "euiVariant"] }], ngImport: i0, template: "@if (!isMuted) {\n <div class=\"eui-alert__type-container\">\n @if (baseStatesDirective.euiSuccess) {\n <eui-icon-svg class=\"eui-alert__icon-type\" aria-label=\"eUI success icon\" icon=\"eui-ecl-check-filled\" fillColor=\"success-100\"></eui-icon-svg>\n }\n @else if (baseStatesDirective.euiWarning) {\n <eui-icon-svg class=\"eui-alert__icon-type\" aria-label=\"eUI warning icon\" icon=\"eui-ecl-warning\" fillColor=\"warning-100\"></eui-icon-svg>\n }\n @else if (baseStatesDirective.euiDanger) {\n <eui-icon-svg class=\"eui-alert__icon-type\" aria-label=\"eUI danger icon\" icon=\"eui-ecl-error\" fillColor=\"danger-100\"></eui-icon-svg>\n }\n @else {\n <eui-icon-svg class=\"eui-alert__icon-type\" aria-label=\"eUI info icon\" icon=\"eui-ecl-information\" fillColor=\"info-100\"></eui-icon-svg>\n }\n </div>\n}\n\n<div id=\"{{ ariaDescribedBy }}\" class=\"eui-alert__content\">\n @if (alertTitle) {\n <ng-template *ngTemplateOutlet=\"contentWithTitle\"></ng-template>\n } @else {\n <ng-template *ngTemplateOutlet=\"contentNoTitle\"></ng-template>\n }\n</div>\n\n<ng-template #contentWithTitle>\n <div class=\"eui-alert__content-header eui-alert__content-header--with-title\">\n <ng-content select=\"eui-alert-title\"></ng-content>\n <ng-template *ngTemplateOutlet=\"closeButton\"></ng-template>\n </div>\n <ng-template *ngTemplateOutlet=\"content\"></ng-template>\n</ng-template>\n\n<ng-template #contentNoTitle>\n <div class=\"eui-alert__content-header\">\n <ng-template *ngTemplateOutlet=\"content\"></ng-template>\n <ng-template *ngTemplateOutlet=\"closeButton\"></ng-template>\n </div>\n</ng-template>\n\n<ng-template #closeButton>\n <div class=\"eui-alert__close\">\n <button *ngIf=\"isCloseable\"\n euiButton\n euiBasicButton\n euiPrimary\n euiSizeS\n aria-label=\"Close alert\"\n class=\"eui-u-ml-s\"\n (click)=\"onCloseClick()\">\n <span euiLabel class=\"eui-u-display-hidden-mobile\">{{ 'eui.CLOSE' | translate }}</span>\n <eui-icon-svg icon=\"eui-ecl-close\" class=\"eui-u-ml-xs\"></eui-icon-svg>\n </button>\n </div>\n</ng-template>\n\n<ng-template #content>\n <div [class.eui-u-mt-xs]=\"alertTitle\">\n <ng-content></ng-content>\n </div>\n</ng-template>\n", styles: [".eui-alert{--_border-color: var(--eui-alert-border-color, var(--eui-base-color-info-100));--_color: var(--eui-alert-color, var(--eui-base-color-info-130));--_bg-color: var(--eui-alert-type-container-bg-color, var(--eui-base-color-info-10))}.eui-alert{display:flex;background-color:var(--_bg-color);background-position:var(--eui-base-spacing-s);background-repeat:no-repeat;position:relative;border-left:var(--eui-base-spacing-2xs) solid var(--_border-color);border-radius:var(--eui-base-border-radius);flex-basis:auto;flex-shrink:1;overflow:auto;padding:var(--eui-base-spacing-m);width:100%}.eui-alert::-webkit-scrollbar{display:inherit;height:8px;width:8px;background-color:var(--eui-base-color-grey-5)}.eui-alert::-webkit-scrollbar-thumb{background-color:var(--eui-base-color-grey-20);border-radius:5rem}.eui-alert::-webkit-scrollbar-thumb:hover{background-color:var(--eui-base-color-grey-50)}.eui-alert::-webkit-scrollbar-track{background-color:var(--eui-base-color-grey-5);border-radius:0}.eui-alert__type-container{align-items:center;display:flex;margin-right:var(--eui-base-spacing-s);height:var(--eui-base-spacing-l)}.eui-alert__content{display:flex;flex-direction:column;width:100%}.eui-alert__content-header{align-items:center;display:flex;flex:1 1 100%;justify-content:space-between;width:100%}.eui-alert__content-header--with-title{min-height:var(--eui-base-spacing-l)}.eui-alert__title{color:var(--_color);font:normal normal 400 1rem/1.25rem var(--eui-base-font-family);font-weight:700}.eui-alert__close{align-self:flex-start;display:flex;margin-left:auto}.eui-alert__close:hover{text-decoration:underline}.eui-alert--info{--_border-color: var(--eui-base-color-info-100);--_bg-color: var(--eui-base-color-info-10);--_color: var(--eui-base-color-info-130)}.eui-alert--success{--_border-color: var(--eui-base-color-success-100);--_bg-color: var(--eui-base-color-success-10);--_color: var(--eui-base-color-success-130)}.eui-alert--danger{--_border-color: var(--eui-base-color-danger-100);--_bg-color: var(--eui-base-color-danger-10);--_color: var(--eui-base-color-danger-130)}.eui-alert--warning{--_border-color: var(--eui-base-color-warning-100);--_bg-color: var(--eui-base-color-warning-10);--_color: var(--eui-base-color-warning-140)}.eui-alert--hidden{display:none}.eui-alert--focusable:active:not([readonly]),.eui-alert--focusable:focus:not([readonly]){outline:2px solid var(--eui-base-color-accessible-focus);outline-offset:-2px;transition:none}.eui-alert--focusable [tabindex=\"0\"]:active:not([readonly]),.eui-alert--focusable [tabindex=\"0\"]:focus:not([readonly]){outline:2px solid var(--eui-base-color-accessible-focus);outline-offset:-2px;transition:none}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.EuiIconSvgComponent, selector: "eui-icon-svg, span[euiIconSvg], i[euiIconSvg]", inputs: ["icon", "size", "fillColor", "set", "ariaLabelledby", "role", "style", "iconUrl", "transform", "aria-label", "ariaHidden", "focusable", "isLoading"] }, { kind: "component", type: i4.EuiLabelComponent, selector: "label[euiLabel], span[euiLabel], div[euiLabel], a[euiLabel], eui-label, label[euiSublabel], span[euiSublabel], div[euiSublabel], a[euiSublabel], eui-sublabel", inputs: ["euiRequired", "euiReadonly", "euiSublabel"] }, { kind: "component", type: i5.EuiButtonComponent, selector: "button[euiButton], a[euiButton]", inputs: ["e2eAttr", "id", "euiBasicButton", "euiButtonCall", "euiBlockButton", "isLoading", "euiIconButton", "euiLineWrap"], outputs: ["buttonClick"] }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
99
99
|
}
|
100
100
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: EuiAlertComponent, decorators: [{
|
101
101
|
type: Component,
|
@@ -111,7 +111,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.7", ngImpor
|
|
111
111
|
'euiVariant',
|
112
112
|
],
|
113
113
|
},
|
114
|
-
], template: "@if (!isMuted) {\n <div class=\"eui-alert__type-container\">\n @if (baseStatesDirective.euiSuccess) {\n <eui-icon-svg class=\"eui-alert__icon-type\" icon=\"eui-ecl-check-filled\" fillColor=\"success-100\"></eui-icon-svg>\n }\n @else if (baseStatesDirective.euiWarning) {\n <eui-icon-svg class=\"eui-alert__icon-type\" icon=\"eui-ecl-warning\" fillColor=\"warning-100\"></eui-icon-svg>\n }\n @else if (baseStatesDirective.euiDanger) {\n <eui-icon-svg class=\"eui-alert__icon-type\" icon=\"eui-ecl-error\" fillColor=\"danger-100\"></eui-icon-svg>\n }\n @else {\n <eui-icon-svg class=\"eui-alert__icon-type\" icon=\"eui-ecl-information\" fillColor=\"info-100\"></eui-icon-svg>\n }\n </div>\n}\n\n<div id=\"{{ ariaDescribedBy }}\" class=\"eui-alert__content\">\n @if (alertTitle) {\n <ng-template *ngTemplateOutlet=\"contentWithTitle\"></ng-template>\n } @else {\n <ng-template *ngTemplateOutlet=\"contentNoTitle\"></ng-template>\n }\n</div>\n\n<ng-template #contentWithTitle>\n <div class=\"eui-alert__content-header eui-alert__content-header--with-title\">\n <ng-content select=\"eui-alert-title\"></ng-content>\n <ng-template *ngTemplateOutlet=\"closeButton\"></ng-template>\n </div>\n <ng-template *ngTemplateOutlet=\"content\"></ng-template>\n</ng-template>\n\n<ng-template #contentNoTitle>\n <div class=\"eui-alert__content-header\">\n <ng-template *ngTemplateOutlet=\"content\"></ng-template>\n <ng-template *ngTemplateOutlet=\"closeButton\"></ng-template>\n </div>\n</ng-template>\n\n<ng-template #closeButton>\n <div class=\"eui-alert__close\">\n <button *ngIf=\"isCloseable\"\n euiButton\n euiBasicButton\n euiPrimary\n euiSizeS\n aria-label=\"Close alert
|
114
|
+
], template: "@if (!isMuted) {\n <div class=\"eui-alert__type-container\">\n @if (baseStatesDirective.euiSuccess) {\n <eui-icon-svg class=\"eui-alert__icon-type\" aria-label=\"eUI success icon\" icon=\"eui-ecl-check-filled\" fillColor=\"success-100\"></eui-icon-svg>\n }\n @else if (baseStatesDirective.euiWarning) {\n <eui-icon-svg class=\"eui-alert__icon-type\" aria-label=\"eUI warning icon\" icon=\"eui-ecl-warning\" fillColor=\"warning-100\"></eui-icon-svg>\n }\n @else if (baseStatesDirective.euiDanger) {\n <eui-icon-svg class=\"eui-alert__icon-type\" aria-label=\"eUI danger icon\" icon=\"eui-ecl-error\" fillColor=\"danger-100\"></eui-icon-svg>\n }\n @else {\n <eui-icon-svg class=\"eui-alert__icon-type\" aria-label=\"eUI info icon\" icon=\"eui-ecl-information\" fillColor=\"info-100\"></eui-icon-svg>\n }\n </div>\n}\n\n<div id=\"{{ ariaDescribedBy }}\" class=\"eui-alert__content\">\n @if (alertTitle) {\n <ng-template *ngTemplateOutlet=\"contentWithTitle\"></ng-template>\n } @else {\n <ng-template *ngTemplateOutlet=\"contentNoTitle\"></ng-template>\n }\n</div>\n\n<ng-template #contentWithTitle>\n <div class=\"eui-alert__content-header eui-alert__content-header--with-title\">\n <ng-content select=\"eui-alert-title\"></ng-content>\n <ng-template *ngTemplateOutlet=\"closeButton\"></ng-template>\n </div>\n <ng-template *ngTemplateOutlet=\"content\"></ng-template>\n</ng-template>\n\n<ng-template #contentNoTitle>\n <div class=\"eui-alert__content-header\">\n <ng-template *ngTemplateOutlet=\"content\"></ng-template>\n <ng-template *ngTemplateOutlet=\"closeButton\"></ng-template>\n </div>\n</ng-template>\n\n<ng-template #closeButton>\n <div class=\"eui-alert__close\">\n <button *ngIf=\"isCloseable\"\n euiButton\n euiBasicButton\n euiPrimary\n euiSizeS\n aria-label=\"Close alert\"\n class=\"eui-u-ml-s\"\n (click)=\"onCloseClick()\">\n <span euiLabel class=\"eui-u-display-hidden-mobile\">{{ 'eui.CLOSE' | translate }}</span>\n <eui-icon-svg icon=\"eui-ecl-close\" class=\"eui-u-ml-xs\"></eui-icon-svg>\n </button>\n </div>\n</ng-template>\n\n<ng-template #content>\n <div [class.eui-u-mt-xs]=\"alertTitle\">\n <ng-content></ng-content>\n </div>\n</ng-template>\n", styles: [".eui-alert{--_border-color: var(--eui-alert-border-color, var(--eui-base-color-info-100));--_color: var(--eui-alert-color, var(--eui-base-color-info-130));--_bg-color: var(--eui-alert-type-container-bg-color, var(--eui-base-color-info-10))}.eui-alert{display:flex;background-color:var(--_bg-color);background-position:var(--eui-base-spacing-s);background-repeat:no-repeat;position:relative;border-left:var(--eui-base-spacing-2xs) solid var(--_border-color);border-radius:var(--eui-base-border-radius);flex-basis:auto;flex-shrink:1;overflow:auto;padding:var(--eui-base-spacing-m);width:100%}.eui-alert::-webkit-scrollbar{display:inherit;height:8px;width:8px;background-color:var(--eui-base-color-grey-5)}.eui-alert::-webkit-scrollbar-thumb{background-color:var(--eui-base-color-grey-20);border-radius:5rem}.eui-alert::-webkit-scrollbar-thumb:hover{background-color:var(--eui-base-color-grey-50)}.eui-alert::-webkit-scrollbar-track{background-color:var(--eui-base-color-grey-5);border-radius:0}.eui-alert__type-container{align-items:center;display:flex;margin-right:var(--eui-base-spacing-s);height:var(--eui-base-spacing-l)}.eui-alert__content{display:flex;flex-direction:column;width:100%}.eui-alert__content-header{align-items:center;display:flex;flex:1 1 100%;justify-content:space-between;width:100%}.eui-alert__content-header--with-title{min-height:var(--eui-base-spacing-l)}.eui-alert__title{color:var(--_color);font:normal normal 400 1rem/1.25rem var(--eui-base-font-family);font-weight:700}.eui-alert__close{align-self:flex-start;display:flex;margin-left:auto}.eui-alert__close:hover{text-decoration:underline}.eui-alert--info{--_border-color: var(--eui-base-color-info-100);--_bg-color: var(--eui-base-color-info-10);--_color: var(--eui-base-color-info-130)}.eui-alert--success{--_border-color: var(--eui-base-color-success-100);--_bg-color: var(--eui-base-color-success-10);--_color: var(--eui-base-color-success-130)}.eui-alert--danger{--_border-color: var(--eui-base-color-danger-100);--_bg-color: var(--eui-base-color-danger-10);--_color: var(--eui-base-color-danger-130)}.eui-alert--warning{--_border-color: var(--eui-base-color-warning-100);--_bg-color: var(--eui-base-color-warning-10);--_color: var(--eui-base-color-warning-140)}.eui-alert--hidden{display:none}.eui-alert--focusable:active:not([readonly]),.eui-alert--focusable:focus:not([readonly]){outline:2px solid var(--eui-base-color-accessible-focus);outline-offset:-2px;transition:none}.eui-alert--focusable [tabindex=\"0\"]:active:not([readonly]),.eui-alert--focusable [tabindex=\"0\"]:focus:not([readonly]){outline:2px solid var(--eui-base-color-accessible-focus);outline-offset:-2px;transition:none}\n"] }]
|
115
115
|
}], ctorParameters: () => [{ type: i1.BaseStatesDirective }], propDecorators: { cssClasses: [{
|
116
116
|
type: HostBinding,
|
117
117
|
args: ['class']
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"eui-components-eui-alert.mjs","sources":["../../eui-alert/eui-alert.component.ts","../../eui-alert/eui-alert.component.html","../../eui-alert/eui-alert.module.ts","../../eui-alert/eui-components-eui-alert.ts"],"sourcesContent":["// -------\n// IMPORTS\n// -------\n\n// Angular\nimport {\n Component,\n HostBinding,\n EventEmitter,\n Input,\n ChangeDetectionStrategy,\n ViewEncapsulation,\n Output,\n OnInit,\n Directive,\n ContentChild,\n forwardRef,\n QueryList,\n booleanAttribute,\n} from '@angular/core';\n\n// 3rd party\nimport * as uuid from 'uuid';\n\n// eUI internals\nimport { BaseStatesDirective } from '@eui/components/shared';\n\n// Sub content directives for projection - keep the component files tight\n\n/* eslint-disable */\n@Directive({ selector: 'eui-alert-title' })\nexport class EuiAlertTitleDirective {\n // host binding class assignment for the content directive, avoiding extra DOM templates wrapper\n @HostBinding('class') class = 'eui-alert__title';\n}\n/* eslint-enable */\n\n// --------------\n// MAIN COMPONENT\n// --------------\n@Component({\n templateUrl: './eui-alert.component.html', // respect component name convention\n selector: 'div[euiAlert], eui-alert', // if needed multi selectors\n styleUrl: './styles/_index.scss', // respect styles/_index.scss only import\n changeDetection: ChangeDetectionStrategy.OnPush, // OnPush by default for all\n encapsulation: ViewEncapsulation.None, // encapsulation.None by default for all\n\n // use of baseStatesDirective : defined here what the component needs as base props => reflected in styles / states.scss\n hostDirectives: [\n {\n directive: BaseStatesDirective,\n inputs: [\n 'euiSuccess',\n 'euiInfo',\n 'euiWarning',\n 'euiDanger',\n // important to add the variant per type : euiVariant for colors / euiSizeVariant for sizes\n 'euiVariant',\n ],\n },\n ],\n})\nexport class EuiAlertComponent implements OnInit {\n // class binding ALWAYS first (for binding against the baseStateDiretive)\n @HostBinding('class')\n public get cssClasses(): string {\n return [\n // Always refer to the baseStatesDirective\n this.baseStatesDirective.getCssClasses('eui-alert'),\n\n // own cmp state => reflected with the scss states\n this.isMuted ? 'eui-alert--muted' : '',\n this.isFocusable ? 'eui-alert--focusable' : '',\n !this.isVisible ? 'eui-alert--hidden' : '',\n ]\n .join(' ')\n .trim();\n }\n\n // a11y bindings, ideally always on the host side / never in the sub wrapper within the HTML,\n // cleaner and also attacking the host DOM element rather than its children\n @HostBinding('attr.role') role = 'alert';\n @HostBinding('attr.aria-describedby')\n @Input()\n get ariaDescribedBy(): string {\n return `alertContent-${this.uniqueId}`;\n }\n @HostBinding('attr.tabindex')\n get tabindex(): string {\n return this.isFocusable ? '0' : '-1';\n }\n\n // for e2e unique attr to be defined / pass as input\n @HostBinding('attr.data-e2e')\n @Input()\n e2eAttr = 'eui-alert';\n\n // component own states\n // conventions if boolean : is / has prefix\n // new v17 usage of transform / act like coerce and included in Angular natively now\n @Input({ transform: booleanAttribute }) isMuted = false;\n @Input({ transform: booleanAttribute }) isCloseable = false;\n @Input({ transform: booleanAttribute }) isFocusable = false;\n\n // Output event definition\n // convention : verb(present)Component\n @Output() closeAlert = new EventEmitter<null>();\n\n // contentChild def / viewChild defs if needed\n @ContentChild(forwardRef(() => EuiAlertTitleDirective), { static: false }) alertTitle: QueryList<EuiAlertTitleDirective>;\n\n // public variables used in the template\n isVisible = true;\n alertIconType: string;\n alertIconFillColor: string;\n\n private uniqueId: string;\n\n // CONSTRUCTOR\n // -----------\n constructor(public baseStatesDirective: BaseStatesDirective) {}\n\n // HOOKS\n // -----\n ngOnInit(): void {\n if (!this.baseStatesDirective.euiVariant) {\n this.baseStatesDirective.euiInfo = true;\n }\n this.uniqueId = uuid.v4();\n }\n\n // PUBLIC FUNCTIONS FROM TEMPLATE\n // ------------------------------\n onCloseClick(): void {\n this.isVisible = false;\n this.closeAlert.emit();\n }\n\n // PRIVATES\n // --------\n\n}\n","@if (!isMuted) {\n <div class=\"eui-alert__type-container\">\n @if (baseStatesDirective.euiSuccess) {\n <eui-icon-svg class=\"eui-alert__icon-type\" icon=\"eui-ecl-check-filled\" fillColor=\"success-100\"></eui-icon-svg>\n }\n @else if (baseStatesDirective.euiWarning) {\n <eui-icon-svg class=\"eui-alert__icon-type\" icon=\"eui-ecl-warning\" fillColor=\"warning-100\"></eui-icon-svg>\n }\n @else if (baseStatesDirective.euiDanger) {\n <eui-icon-svg class=\"eui-alert__icon-type\" icon=\"eui-ecl-error\" fillColor=\"danger-100\"></eui-icon-svg>\n }\n @else {\n <eui-icon-svg class=\"eui-alert__icon-type\" icon=\"eui-ecl-information\" fillColor=\"info-100\"></eui-icon-svg>\n }\n </div>\n}\n\n<div id=\"{{ ariaDescribedBy }}\" class=\"eui-alert__content\">\n @if (alertTitle) {\n <ng-template *ngTemplateOutlet=\"contentWithTitle\"></ng-template>\n } @else {\n <ng-template *ngTemplateOutlet=\"contentNoTitle\"></ng-template>\n }\n</div>\n\n<ng-template #contentWithTitle>\n <div class=\"eui-alert__content-header eui-alert__content-header--with-title\">\n <ng-content select=\"eui-alert-title\"></ng-content>\n <ng-template *ngTemplateOutlet=\"closeButton\"></ng-template>\n </div>\n <ng-template *ngTemplateOutlet=\"content\"></ng-template>\n</ng-template>\n\n<ng-template #contentNoTitle>\n <div class=\"eui-alert__content-header\">\n <ng-template *ngTemplateOutlet=\"content\"></ng-template>\n <ng-template *ngTemplateOutlet=\"closeButton\"></ng-template>\n </div>\n</ng-template>\n\n<ng-template #closeButton>\n <div class=\"eui-alert__close\">\n <button *ngIf=\"isCloseable\"\n euiButton\n euiBasicButton\n euiPrimary\n euiSizeS\n aria-label=\"Close alert button\"\n class=\"eui-u-ml-s\"\n (click)=\"onCloseClick()\">\n <span euiLabel class=\"eui-u-display-hidden-mobile\">{{ 'eui.CLOSE' | translate }}</span>\n <eui-icon-svg icon=\"eui-ecl-close\" class=\"eui-u-ml-xs\"></eui-icon-svg>\n </button>\n </div>\n</ng-template>\n\n<ng-template #content>\n <div [class.eui-u-mt-xs]=\"alertTitle\">\n <ng-content></ng-content>\n </div>\n</ng-template>\n","// Angular\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n// 3rd party\nimport { TranslateModule } from '@ngx-translate/core';\n\n// eUI internals\nimport { BaseStatesDirective } from '@eui/components/shared';\nimport { EuiIconModule } from '@eui/components/eui-icon';\nimport { EuiLabelModule } from '@eui/components/eui-label';\nimport { EuiButtonModule } from '@eui/components/eui-button';\n\n// component internals\nimport { EuiAlertComponent, EuiAlertTitleDirective } from './eui-alert.component';\n\nconst COMPONENTS = [\n EuiAlertComponent,\n EuiAlertTitleDirective,\n];\n\n// component main module\n@NgModule({\n imports: [\n // Angular and 3rd party\n CommonModule, TranslateModule,\n // eUI internals\n BaseStatesDirective,\n EuiIconModule, EuiLabelModule, EuiButtonModule,\n ],\n declarations: [...COMPONENTS],\n exports: [...COMPONENTS],\n})\n// Always same naming convention for all : Eui[CMP_NAME]Module\nexport class EuiAlertModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"eui-components-eui-alert.mjs","sources":["../../eui-alert/eui-alert.component.ts","../../eui-alert/eui-alert.component.html","../../eui-alert/eui-alert.module.ts","../../eui-alert/eui-components-eui-alert.ts"],"sourcesContent":["// -------\n// IMPORTS\n// -------\n\n// Angular\nimport {\n Component,\n HostBinding,\n EventEmitter,\n Input,\n ChangeDetectionStrategy,\n ViewEncapsulation,\n Output,\n OnInit,\n Directive,\n ContentChild,\n forwardRef,\n QueryList,\n booleanAttribute,\n} from '@angular/core';\n\n// 3rd party\nimport * as uuid from 'uuid';\n\n// eUI internals\nimport { BaseStatesDirective } from '@eui/components/shared';\n\n// Sub content directives for projection - keep the component files tight\n\n/* eslint-disable */\n@Directive({ selector: 'eui-alert-title' })\nexport class EuiAlertTitleDirective {\n // host binding class assignment for the content directive, avoiding extra DOM templates wrapper\n @HostBinding('class') class = 'eui-alert__title';\n}\n/* eslint-enable */\n\n// --------------\n// MAIN COMPONENT\n// --------------\n@Component({\n templateUrl: './eui-alert.component.html', // respect component name convention\n selector: 'div[euiAlert], eui-alert', // if needed multi selectors\n styleUrl: './styles/_index.scss', // respect styles/_index.scss only import\n changeDetection: ChangeDetectionStrategy.OnPush, // OnPush by default for all\n encapsulation: ViewEncapsulation.None, // encapsulation.None by default for all\n\n // use of baseStatesDirective : defined here what the component needs as base props => reflected in styles / states.scss\n hostDirectives: [\n {\n directive: BaseStatesDirective,\n inputs: [\n 'euiSuccess',\n 'euiInfo',\n 'euiWarning',\n 'euiDanger',\n // important to add the variant per type : euiVariant for colors / euiSizeVariant for sizes\n 'euiVariant',\n ],\n },\n ],\n})\nexport class EuiAlertComponent implements OnInit {\n // class binding ALWAYS first (for binding against the baseStateDiretive)\n @HostBinding('class')\n public get cssClasses(): string {\n return [\n // Always refer to the baseStatesDirective\n this.baseStatesDirective.getCssClasses('eui-alert'),\n\n // own cmp state => reflected with the scss states\n this.isMuted ? 'eui-alert--muted' : '',\n this.isFocusable ? 'eui-alert--focusable' : '',\n !this.isVisible ? 'eui-alert--hidden' : '',\n ]\n .join(' ')\n .trim();\n }\n\n // a11y bindings, ideally always on the host side / never in the sub wrapper within the HTML,\n // cleaner and also attacking the host DOM element rather than its children\n @HostBinding('attr.role') role = 'alert';\n @HostBinding('attr.aria-describedby')\n @Input()\n get ariaDescribedBy(): string {\n return `alertContent-${this.uniqueId}`;\n }\n @HostBinding('attr.tabindex')\n get tabindex(): string {\n return this.isFocusable ? '0' : '-1';\n }\n\n // for e2e unique attr to be defined / pass as input\n @HostBinding('attr.data-e2e')\n @Input()\n e2eAttr = 'eui-alert';\n\n // component own states\n // conventions if boolean : is / has prefix\n // new v17 usage of transform / act like coerce and included in Angular natively now\n @Input({ transform: booleanAttribute }) isMuted = false;\n @Input({ transform: booleanAttribute }) isCloseable = false;\n @Input({ transform: booleanAttribute }) isFocusable = false;\n\n // Output event definition\n // convention : verb(present)Component\n @Output() closeAlert = new EventEmitter<null>();\n\n // contentChild def / viewChild defs if needed\n @ContentChild(forwardRef(() => EuiAlertTitleDirective), { static: false }) alertTitle: QueryList<EuiAlertTitleDirective>;\n\n // public variables used in the template\n isVisible = true;\n alertIconType: string;\n alertIconFillColor: string;\n\n private uniqueId: string;\n\n // CONSTRUCTOR\n // -----------\n constructor(public baseStatesDirective: BaseStatesDirective) {}\n\n // HOOKS\n // -----\n ngOnInit(): void {\n if (!this.baseStatesDirective.euiVariant) {\n this.baseStatesDirective.euiInfo = true;\n }\n this.uniqueId = uuid.v4();\n }\n\n // PUBLIC FUNCTIONS FROM TEMPLATE\n // ------------------------------\n onCloseClick(): void {\n this.isVisible = false;\n this.closeAlert.emit();\n }\n\n // PRIVATES\n // --------\n\n}\n","@if (!isMuted) {\n <div class=\"eui-alert__type-container\">\n @if (baseStatesDirective.euiSuccess) {\n <eui-icon-svg class=\"eui-alert__icon-type\" aria-label=\"eUI success icon\" icon=\"eui-ecl-check-filled\" fillColor=\"success-100\"></eui-icon-svg>\n }\n @else if (baseStatesDirective.euiWarning) {\n <eui-icon-svg class=\"eui-alert__icon-type\" aria-label=\"eUI warning icon\" icon=\"eui-ecl-warning\" fillColor=\"warning-100\"></eui-icon-svg>\n }\n @else if (baseStatesDirective.euiDanger) {\n <eui-icon-svg class=\"eui-alert__icon-type\" aria-label=\"eUI danger icon\" icon=\"eui-ecl-error\" fillColor=\"danger-100\"></eui-icon-svg>\n }\n @else {\n <eui-icon-svg class=\"eui-alert__icon-type\" aria-label=\"eUI info icon\" icon=\"eui-ecl-information\" fillColor=\"info-100\"></eui-icon-svg>\n }\n </div>\n}\n\n<div id=\"{{ ariaDescribedBy }}\" class=\"eui-alert__content\">\n @if (alertTitle) {\n <ng-template *ngTemplateOutlet=\"contentWithTitle\"></ng-template>\n } @else {\n <ng-template *ngTemplateOutlet=\"contentNoTitle\"></ng-template>\n }\n</div>\n\n<ng-template #contentWithTitle>\n <div class=\"eui-alert__content-header eui-alert__content-header--with-title\">\n <ng-content select=\"eui-alert-title\"></ng-content>\n <ng-template *ngTemplateOutlet=\"closeButton\"></ng-template>\n </div>\n <ng-template *ngTemplateOutlet=\"content\"></ng-template>\n</ng-template>\n\n<ng-template #contentNoTitle>\n <div class=\"eui-alert__content-header\">\n <ng-template *ngTemplateOutlet=\"content\"></ng-template>\n <ng-template *ngTemplateOutlet=\"closeButton\"></ng-template>\n </div>\n</ng-template>\n\n<ng-template #closeButton>\n <div class=\"eui-alert__close\">\n <button *ngIf=\"isCloseable\"\n euiButton\n euiBasicButton\n euiPrimary\n euiSizeS\n aria-label=\"Close alert\"\n class=\"eui-u-ml-s\"\n (click)=\"onCloseClick()\">\n <span euiLabel class=\"eui-u-display-hidden-mobile\">{{ 'eui.CLOSE' | translate }}</span>\n <eui-icon-svg icon=\"eui-ecl-close\" class=\"eui-u-ml-xs\"></eui-icon-svg>\n </button>\n </div>\n</ng-template>\n\n<ng-template #content>\n <div [class.eui-u-mt-xs]=\"alertTitle\">\n <ng-content></ng-content>\n </div>\n</ng-template>\n","// Angular\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n// 3rd party\nimport { TranslateModule } from '@ngx-translate/core';\n\n// eUI internals\nimport { BaseStatesDirective } from '@eui/components/shared';\nimport { EuiIconModule } from '@eui/components/eui-icon';\nimport { EuiLabelModule } from '@eui/components/eui-label';\nimport { EuiButtonModule } from '@eui/components/eui-button';\n\n// component internals\nimport { EuiAlertComponent, EuiAlertTitleDirective } from './eui-alert.component';\n\nconst COMPONENTS = [\n EuiAlertComponent,\n EuiAlertTitleDirective,\n];\n\n// component main module\n@NgModule({\n imports: [\n // Angular and 3rd party\n CommonModule, TranslateModule,\n // eUI internals\n BaseStatesDirective,\n EuiIconModule, EuiLabelModule, EuiButtonModule,\n ],\n declarations: [...COMPONENTS],\n exports: [...COMPONENTS],\n})\n// Always same naming convention for all : Eui[CMP_NAME]Module\nexport class EuiAlertModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|