@eui/components 17.2.1-snapshot-1707877313882 → 17.2.1-snapshot-1708395642178
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/EuiNotificationsV2Component.html +21 -1
- package/docs/components/EuiToolbarMenuComponent.html +1 -1
- package/docs/dependencies.html +2 -2
- package/docs/js/search/search_index.js +2 -2
- package/esm2022/eui-dialog/container/eui-dialog-container.component.mjs +2 -2
- package/esm2022/eui-dropdown/eui-dropdown.component.mjs +2 -2
- package/esm2022/eui-table/eui-table.component.mjs +2 -2
- package/esm2022/externals/eui-editor/eui-editor.component.mjs +2 -2
- package/esm2022/layout/eui-notifications-v2/eui-notifications.component.mjs +6 -3
- package/esm2022/layout/eui-toolbar/toolbar-menu/toolbar-menu.component.mjs +3 -3
- package/fesm2022/eui-components-eui-dialog.mjs +1 -1
- package/fesm2022/eui-components-eui-dialog.mjs.map +1 -1
- package/fesm2022/eui-components-eui-dropdown.mjs +1 -1
- package/fesm2022/eui-components-eui-dropdown.mjs.map +1 -1
- package/fesm2022/eui-components-eui-table.mjs +2 -2
- package/fesm2022/eui-components-eui-table.mjs.map +1 -1
- package/fesm2022/eui-components-externals-eui-editor.mjs +1 -1
- package/fesm2022/eui-components-externals-eui-editor.mjs.map +1 -1
- package/fesm2022/eui-components-layout.mjs +7 -4
- package/fesm2022/eui-components-layout.mjs.map +1 -1
- package/layout/eui-notifications-v2/eui-notifications.component.d.ts +1 -0
- package/layout/eui-notifications-v2/eui-notifications.component.d.ts.map +1 -1
- package/package.json +7 -7
@@ -199,7 +199,7 @@ export class EuiEditorComponent {
|
|
199
199
|
};
|
200
200
|
});
|
201
201
|
}
|
202
|
-
this.cdr.
|
202
|
+
this.cdr.markForCheck();
|
203
203
|
}
|
204
204
|
});
|
205
205
|
}
|
@@ -499,4 +499,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImpor
|
|
499
499
|
type: HostBinding,
|
500
500
|
args: ['class']
|
501
501
|
}] } });
|
502
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLWVkaXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9leHRlcm5hbHMvZXVpLWVkaXRvci9ldWktZWRpdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL2V4dGVybmFscy9ldWktZWRpdG9yL2V1aS1lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFFTixpQkFBaUIsRUFDakIsdUJBQXVCLEVBQ3ZCLFdBQVcsRUFFWCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsR0FHYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLFdBQVcsRUFBd0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUd6RixPQUFPLEVBQUUscUJBQXFCLEVBQWdCLE1BQU0sdUJBQXVCLENBQUM7QUFHNUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sS0FBSyxNQUFNLGFBQWEsQ0FBQztBQUVoQyxPQUFPLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFHL0UsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sK0NBQStDLENBQUM7Ozs7Ozs7Ozs7O0FBVDlGLDBHQUEwRztBQUMxRyxNQUFNLFNBQVMsR0FBUSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7QUFTdkMsd0NBQXdDO0FBQ3hDLElBQUksZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7QUFjbEQsTUFBTSxPQUFPLGtCQUFrQjtJQTJCM0IsSUFDSSxRQUFRO1FBQ1IsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFD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LGlCQUFZLEdBQUcsMkJBQTJCLENBQUM7SUFFckIsQ0FBQztpSUFIcEMsa0NBQWtDO3FIQUFsQyxrQ0FBa0M7OzJGQUFsQyxrQ0FBa0M7a0JBRDlDLFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUsd0JBQXdCLEVBQUU7K0VBRXZCLFlBQVk7c0JBQWpDLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG4gICAgT25Jbml0LFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIE9uRGVzdHJveSxcbiAgICBEaXJlY3RpdmUsXG4gICAgQ29udGVudENoaWxkLFxuICAgIGZvcndhcmRSZWYsXG4gICAgRWxlbWVudFJlZixcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ29udGVudENoYW5nZSwgUXVpbGxNb2R1bGVzIH0gZnJvbSAnQGV1aS9jb21wb25lbnRzL2V4dGVybmFscy9xdWlsbCc7XG5cbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSwgQm9vbGVhbklucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb24sbm8tdW5kZXJzY29yZS1kYW5nbGUsaWQtZGVueWxpc3QsaWQtbWF0Y2hcbmNvbnN0IFF1aWxsVHlwZTogYW55ID0gd2luZG93WydRdWlsbCddO1xuaW1wb3J0IHsgc3RhcnRXaXRoLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgRGVsdGEgZnJvbSAncXVpbGwtZGVsdGEnO1xuXG5pbXBvcnQgeyBFdWlEaWFsb2dDb25maWcsIEV1aURpYWxvZ1NlcnZpY2UgfSBmcm9tICdAZXVpL2NvbXBvbmVudHMvZXVpLWRpYWxvZyc7XG5cbmltcG9ydCB7IExvYWRlclNlcnZpY2UsIEJldHRlclRhYmxlTW9kdWxlLCBCbHVyLCBFZGl0b3JDaGFuZ2VTZWxlY3Rpb24sIEZvY3VzLCBTZWxlY3Rpb25DaGFuZ2UsIFRvb2xiYXJJdGVtQ29uZmlnIH0gZnJvbSAnQGV1aS9jb21wb25lbnRzL2V4dGVybmFscy9xdWlsbCc7XG5pbXBvcnQgeyBFdWlFZGl0b3JJbWFnZURpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vaW1hZ2UtdXJsLWRpYWxvZy9pbWFnZS11cmwtZGlhbG9nLmNvbXBvbmVudCc7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJlZmVyLWNvbnN0XG5sZXQgUXVpbGxCZXR0ZXJUYWJsZSA9IHdpbmRvd1sncXVpbGxCZXR0ZXJUYWJsZSddO1xuXG5AQ29tcG9uZW50KHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICBzZWxlY3RvcjogJ2V1aS1lZGl0b3InLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9ldWktZWRpdG9yLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9zdHlsZXMvX2luZGV4LnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICAvLyBUT0RPOiBDaGVjayB0byBjaGFuZ2UgdGhlIHByb3ZpZGluZyB3YXkuIFByb3ZpZGUgd2l0aCBpbmplY3RvciByZWZlcmVuY2VcbiAgICAgICAgRXVpRGlhbG9nU2VydmljZSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBFdWlFZGl0b3JDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIEBJbnB1dCgpIGUyZUF0dHIgPSAnZXVpLWVkaXRvcic7XG4gICAgQElucHV0KCkgaWQ6IHN0cmluZztcbiAgICBASW5wdXQoKSBzdHlsZUNsYXNzID0gJyc7XG4gICAgQElucHV0KCkgcGxhY2Vob2xkZXIgPSAnJztcbiAgICBASW5wdXQoKSBmb3JtYXQ6ICdodG1sJyB8ICdqc29uJyA9ICdodG1sJztcbiAgICBASW5wdXQoKSB0aGVtZTogJ3Nub3cnIHwgJ2J1YmJsZScgPSAnc25vdyc7XG4gICAgQElucHV0KCkgZGVidWc6ICd3YXJuJyB8ICdsb2cnIHwgJ2Vycm9yJyB8IGZhbHNlID0gZmFsc2U7XG4gICAgQElucHV0KCkgY3VzdG9tVG9vbGJhclBvc2l0aW9uOiAndG9wJyB8ICdib3R0b20nID0gJ3RvcCc7XG4gICAgQElucHV0KCkgdGFiaW5kZXggPSAnMCc7XG4gICAgQElucHV0KCkgbW9kdWxlczogUXVpbGxNb2R1bGVzO1xuICAgIEBJbnB1dCgpIGZvcm1hdHM/OiBzdHJpbmdbXSB8IG51bGw7XG4gICAgLy8gTkVXIEVVSSBJTlBVVFNcbiAgICBASW5wdXQoKSBjdXN0b21Ub29sYmFyQ29uZmlnOiBUb29sYmFySXRlbUNvbmZpZ1tdO1xuICAgIEBJbnB1dCgpIGhlaWdodDogc3RyaW5nO1xuICAgIC8vIE5FVyBPVVRQVVRTID0+IGVVSTEzKyBvbmx5XG4gICAgQE91dHB1dCgpIGVkaXRvckNyZWF0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8dHlwZW9mIFF1aWxsVHlwZT4oKTtcbiAgICBAT3V0cHV0KCkgZWRpdG9yQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxFZGl0b3JDaGFuZ2VTZWxlY3Rpb24gfCBDb250ZW50Q2hhbmdlPigpO1xuICAgIEBPdXRwdXQoKSBjb250ZW50Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxDb250ZW50Q2hhbmdlPigpO1xuICAgIEBPdXRwdXQoKSBzZWxlY3Rpb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFNlbGVjdGlvbkNoYW5nZT4oKTtcbiAgICBAT3V0cHV0KCkgZm9jdXMgPSBuZXcgRXZlbnRFbWl0dGVyPEZvY3VzPigpO1xuICAgIEBPdXRwdXQoKSBibHVyID0gbmV3IEV2ZW50RW1pdHRlcjxCbHVyPigpO1xuICAgIEBPdXRwdXQoKSBjaGFyYWN0ZXJzQ291bnRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcbiAgICBAT3V0cHV0KCkgd29yZHNDb3VudENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5ldWktZWRpdG9yJykgdHJ1ZTogYm9vbGVhbjtcblxuICAgIEBIb3N0QmluZGluZygnYXR0ci5yZWFkb25seScpXG4gICAgZ2V0IHJlYWRvbmx5KCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzUmVhZE9ubHkgPyAncmVhZG9ubHknIDogbnVsbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgdmFsdWU6IHN0cmluZyB8IGFueSA9ICcnO1xuICAgIHB1YmxpYyBjaGFyYWN0ZXJzQ291bnQgPSAwO1xuICAgIHB1YmxpYyB3b3Jkc0NvdW50ID0gMDtcbiAgICBwdWJsaWMgYnl0ZXNDb3VudCA9IDA7XG4gICAgcHVibGljIGlzRm9jdXNlZCA9IGZhbHNlO1xuICAgIHB1YmxpYyBnZW5lcmF0ZWRJZDogc3RyaW5nO1xuICAgIHB1YmxpYyBmb3JtQ29udHJvbDogRm9ybUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woKTtcbiAgICBwdWJsaWMganNvblRvSHRtbENvbnRlbnQ6IHN0cmluZztcbiAgICBwdWJsaWMgdG9vbGJhckNvbmZpZzogeyBbaWQ6IHN0cmluZ106IHsgbGFiZWw6IHN0cmluZzsgb3B0aW9uczogYW55W107IGRpYWxvZ01lc3NhZ2U6IHN0cmluZyB9IH07XG4gICAgcHJvdGVjdGVkIHJlYWR5VG9SZW5kZXI6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBtYXgtbGVuXG4gICAgQENvbnRlbnRDaGlsZChmb3J3YXJkUmVmKCgpID0+IEV1aUVkaXRvckN1c3RvbVRvb2xiYXJUYWdEaXJlY3RpdmUpLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgICBldWlFZGl0b3JDdXN0b21Ub29sYmFyOiBFdWlFZGl0b3JDdXN0b21Ub29sYmFyVGFnRGlyZWN0aXZlO1xuXG4gICAgQElucHV0KClcbiAgICBnZXQgaXNSZWFkT25seSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzUmVhZE9ubHk7XG4gICAgfVxuICAgIHNldCBpc1JlYWRPbmx5KHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5faXNSZWFkT25seSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIHByaXZhdGUgX2lzUmVhZE9ubHkgPSBmYWxzZTtcbiAgICBASW5wdXQoKVxuICAgIGdldCBzaG93Q291bnRlcnMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zaG93Q291bnRlcnM7XG4gICAgfVxuICAgIHNldCBzaG93Q291bnRlcnModmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9zaG93Q291bnRlcnMgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwcml2YXRlIF9zaG93Q291bnRlcnMgPSB0cnVlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGlzRW5hYmxlZE9uRm9jdXMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0VuYWJsZWRPbkZvY3VzO1xuICAgIH1cbiAgICBzZXQgaXNFbmFibGVkT25Gb2N1cyh2YWx1ZSkge1xuICAgICAgICB0aGlzLl9pc0VuYWJsZWRPbkZvY3VzID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfaXNFbmFibGVkT25Gb2N1cyA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGlzTWluaW1hbFRvb2xiYXIoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc01pbmltYWxUb29sYmFyO1xuICAgIH1cbiAgICBzZXQgaXNNaW5pbWFsVG9vbGJhcih2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2lzTWluaW1hbFRvb2xiYXIgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwcml2YXRlIF9pc01pbmltYWxUb29sYmFyID0gZmFsc2U7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1pbnZhbGlkJylcbiAgICBnZXQgaXNJbnZhbGlkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNJbnZhbGlkO1xuICAgIH1cbiAgICBzZXQgaXNJbnZhbGlkKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5faXNJbnZhbGlkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfaXNJbnZhbGlkID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIHF1aWxsOiB0eXBlb2YgUXVpbGxUeXBlO1xuICAgIHByaXZhdGUgbWluaW1hbFRvb2xiYXJDb25maWc6IFRvb2xiYXJJdGVtQ29uZmlnW10gPSBbXG4gICAgICAgIHsgbmFtZTogJ2hlYWRpbmdzJyB9LFxuICAgICAgICB7IG5hbWU6ICdib2xkJyB9LFxuICAgICAgICB7IG5hbWU6ICdpdGFsaWMnIH0sXG4gICAgICAgIHsgbmFtZTogJ3VuZGVybGluZScgfSxcbiAgICAgICAgeyBuYW1lOiAnZm9udENvbG9yJyB9LFxuICAgICAgICB7IG5hbWU6ICd0ZXh0QWxpZ24nIH0sXG4gICAgICAgIHsgbmFtZTogJ2xpbmsnIH0sXG4gICAgICAgIHsgbmFtZTogJ2ltYWdlJyB9LFxuICAgICAgICB7IG5hbWU6ICdpbWFnZVVybCcgfSxcbiAgICAgICAgeyBuYW1lOiAnY2xlYW4nIH0sXG4gICAgICAgIHsgbmFtZTogJ2RlbGV0ZScgfSxcbiAgICAgICAgeyBuYW1lOiAndW5kbycgfSxcbiAgICAgICAgeyBuYW1lOiAncmVkbycgfSxcbiAgICAgICAgeyBuYW1lOiAnY291bnRlcnMnIH0sXG4gICAgXTtcbiAgICBwcml2YXRlIGRlZmF1bHRUb29sYmFyQ29uZmlnOiBUb29sYmFySXRlbUNvbmZpZ1tdID0gW1xuICAgICAgICB7IG5hbWU6ICdoZWFkaW5ncycsIGxhYmVsOiAnU3R5bGUgLSBBcHBseSBhbiBIVE1MIHRhZyBvciBDU1MgY2xhc3MgdG8gdGhlIHNlbGVjdGVkIHRleHQnLCBvcHRpb25zOiBbMSwgMiwgMywgNCwgNSwgNl0gfSxcbiAgICAgICAgeyBuYW1lOiAnZm9udCcsIGxhYmVsOiAnRm9udCAtIENoYW5nZSB0aGUgZm9udCBmYWNlJyB9LFxuICAgICAgICB7IG5hbWU6ICdib2xkJywgbGFiZWw6ICdCb2xkIChDdHJsICsgQikgLSBNYWtlIHRoZSBzZWxlY3RlZCB0ZXh0IGJvbGQnIH0sXG4gICAgICAgIHsgbmFtZTogJ2l0YWxpYycsIGxhYmVsOiAnSXRhbGljIChDdHJsICsgSSkgLSBJdGFsaWNpemUgdGhlIHNlbGVjdGVkIHRleHQnIH0sXG4gICAgICAgIHsgbmFtZTogJ3VuZGVybGluZScsIGxhYmVsOiAnVW5kZXJsaW5lIChDdHJsICsgVSkgLSBVbmRlcmxpbmUgdGhlIHNlbGVjdGVkIHRleHQnIH0sXG4gICAgICAgIHsgbmFtZTogJ3N0cmlrZScsIGxhYmVsOiAnU3RyaWtldGhyb3VnaCAtIERyYXcgYSBsaW5lIHRvIHRoZSBtaWRkbGUgb2YgdGhlIHNlbGVjdGVkIHRleHQnIH0sXG4gICAgICAgIHsgbmFtZTogJ2ZvbnRDb2xvcicsIGxhYmVsOiAnRm9udCBDb2xvciAtIENoYW5nZSB0aGUgdGV4dCBjb2xvcicgfSxcbiAgICAgICAgeyBuYW1lOiAnZm9udEJhY2tncm91bmQnLCBsYWJlbDogJ0ZvbnQgQmFja2dyb3VuZCAtIENoYW5nZSB0aGUgdGV4dCBiYWNrZ3JvdW5kIGNvbG9yJyB9LFxuICAgICAgICB7IG5hbWU6ICdzdWJzY3JpcHQnLCBsYWJlbDogJ1N1YnNjcmlwdCAtIENyZWF0ZSBzc21hbGwgbGV0dGVycyBiZWxvdyB0aGUgdGV4dCBiYXNlbGluZScgfSxcbiAgICAgICAgeyBuYW1lOiAnc3VwZXJzY3JpcHQnLCBsYWJlbDogJ1N1cGVyc2NyaXB0IC0gQ3JlYXRlIHNtYWxsIGxldHRlcnMgYWJvdmUgdGhlIGxpbmUgb2YgdGhlIHRleHQnIH0sXG4gICAgICAgIHsgbmFtZTogJ3RleHRBbGlnbicsIGxhYmVsOiAnVGV4dCBBbGlnbiAtIEFsaWduIHRoZSB0ZXh0IHRvIHRoZSBzZWxlY3RlZCBwb3NpdGlvbjogbGVmdCAoZGVmYXVsdCksIGNlbnRlciwgcmlnaHQgb3IganVzdGlmeScgfSxcbiAgICAgICAgeyBuYW1lOiAnb3JkZXJlZExpc3QnLCBsYWJlbDogJ051bWJlcmluZyAtIFN0YXJ0IGFuIG9yZGVyZWQgbGlzdCcgfSxcbiAgICAgICAgeyBuYW1lOiAnYnVsbGV0TGlzdCcsIGxhYmVsOiAnQnVsbGV0cyAtIFN0YXJ0IGEgYnVsbGV0ZWQgbGlzdCcgfSxcbiAgICAgICAgeyBuYW1lOiAnaW5kZW50TGVzcycsIGxhYmVsOiAnRGVjcmVhc2UgSW5kZW50IC0gRGVjcmVhc2UgdGhlIGluZGVudCBsZXZlbCBvZiB0aGUgcGFyYWdyYXBoJyB9LFxuICAgICAgICB7IG5hbWU6ICdpbmRlbnRNb3JlJywgbGFiZWw6ICdJbmNyZWFzZSBJbmRlbnQgLSBJbmNyZWFzZSB0aGUgaW5kZW50IGxldmVsIG9mIHRoZSBwYXJhZ3JhcGgnIH0sXG4gICAgICAgIHsgbmFtZTogJ2Jsb2NrcXVvdGUnLCBsYWJlbDogJ0Jsb2NrcXVvdGUgLSBDcmVhdGUgYSBxdW90ZWQgYmxvY2sgb2YgdGhlIHNlbGVjdGVkIHRleHQnIH0sXG4gICAgICAgIHsgbmFtZTogJ2NvZGVCbG9jaycsIGxhYmVsOiAnSW5zZXJ0IENvZGUgQmxvY2sgLSBJbnNlcnQgYSBjb2RlIGJsb2NrIGF0IHRoZSBjdXJzb3Igcm93IHBvc2l0aW9uJyB9LFxuICAgICAgICB7IG5hbWU6ICdsaW5rJywgbGFiZWw6ICdJbnNlcnQgSHlwZXJsaW5rIChDdHJsICsgSykgLSBDcmVhdGUgYSBsaW5rIHRvIGEgV2ViIHBhZ2UsIGEgcGljdHVyZSwgYW4gZS1tYWlsIGFkZHJlc3Mgb3IgYSBwcm9ncmFtJyB9LFxuICAgICAgICB7IG5hbWU6ICdpbWFnZScsIGxhYmVsOiAnSW5zZXJ0IFBpY3R1cmUgLSBJbnNlcnQgYSBwaWN0dXJlIGZyb20gYSBmaWxlJyB9LFxuICAgICAgICB7IG5hbWU6ICdpbWFnZVVybCcsIGxhYmVsOiAnSW5zZXJ0IFBpY3R1cmUgZnJvbSBVUkwgLSBJbnNlcnQgYSBwaWN0dXJlIGZyb20gYSByZW1vdGUgVVJMJywgZGlhbG9nTWVzc2FnZTogJ0VudGVyIGltYWdlIGxpbmsgVVJMJyB9LFxuICAgICAgICB7IG5hbWU6ICd2aWRlbycsIGxhYmVsOiAnSW5zZXJ0IFZpZGVvIC0gSW5zZXJ0IGEgdmlkZW8gZnJvbSBhIGZpbGUnIH0sXG4gICAgICAgIHsgbmFtZTogJ3RhYmxlJywgbGFiZWw6ICdJbnNlcnQgVGFibGUgLSBJbnNlcnQgYSAzeDMgcm93cy9jb2xzIHRhYmxlJyB9LFxuICAgICAgICB7IG5hbWU6ICdjbGVhbicsIGxhYmVsOiAnUmVtb3ZlIFN0eWxlcyAtIFJlbW92ZSB0aGUgc3R5bGVzIG9mIHRoZSBzZWxlY3RlZCB0ZXh0JyB9LFxuICAgICAgICB7IG5hbWU6ICdkZWxldGUnLCBsYWJlbDogXCJEZWxldGUgY29udGVudCAtIFBlcm1hbmVudGx5IGRlbGV0ZXMgZWRpdG9yJ3MgY29udGVudHNcIiB9LFxuICAgICAgICB7IG5hbWU6ICd1bmRvJywgbGFiZWw6ICdVbmRvIChDdHJsICsgWikgLSBDYW5jZWxzIHRoZSBwcmV2aW91cyBhY3Rpb24nIH0sXG4gICAgICAgIHsgbmFtZTogJ3JlZG8nLCBsYWJlbDogJ1JlZG8gKEN0cmwgKyBZKSAtIERvIHRoZSBuZXh0IGhpc3RvcnkgYWN0aW9uIGFnYWluJyB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnY291bnRlcnMnLFxuICAgICAgICAgICAgbGFiZWw6ICdDb3VudGVycyAtIENoYXJhY3RlcnMgYW5kIHdvcmRzIGNvdW50ZXJzIChzdHJpcHBlZCBIdG1sKScsXG4gICAgICAgICAgICBvcHRpb25zOiBbXG4gICAgICAgICAgICAgICAgeyBuYW1lOiAnY2hhcmFjdGVycycsIGxhYmVsOiAnQ2hhcmFjdGVycycgfSxcbiAgICAgICAgICAgICAgICB7IG5hbWU6ICd3b3JkcycsIGxhYmVsOiAnV29yZHMnIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgIF07XG4gICAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGV1aURpYWxvZ1NlcnZpY2U6IEV1aURpYWxvZ1NlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgbmdDb250cm9sOiBOZ0NvbnRyb2wsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBsb2FkZXI6IExvYWRlclNlcnZpY2UpIHtcbiAgICAgICAgdGhpcy5uZ0NvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubG9hZGVyLmxvYWQoKS5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgY29tcGxldGU6ICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlYWR5VG9SZW5kZXIgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMubmdDb250cm9sLnN0YXR1c0NoYW5nZXMucGlwZShzdGFydFdpdGgodGhpcy5uZ0NvbnRyb2wuY29udHJvbC5zdGF0dXMpLCB0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoc3RhdHVzKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNJbnZhbGlkID0gc3RhdHVzICE9PSAnVkFMSUQnO1xuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5nZW5lcmF0ZWRJZCA9IHRoaXMuaWQgPyB0aGlzLmlkIDogJ2V1aS1lZGl0b3ItJyArIChNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAxMDAwMDAwKSArIDEpLnRvU3RyaW5nKCk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLnRvb2xiYXJDb25maWcgPSB7fTtcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuY3VzdG9tVG9vbGJhckNvbmZpZyAmJiAhdGhpcy5pc01pbmltYWxUb29sYmFyKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGVmYXVsdFRvb2xiYXJDb25maWcuZm9yRWFjaCgodCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50b29sYmFyQ29uZmlnID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLnRoaXMudG9vbGJhckNvbmZpZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdC5uYW1lXTogeyBsYWJlbDogdC5sYWJlbCwgb3B0aW9uczogdC5vcHRpb25zLCBkaWFsb2dNZXNzYWdlOiB0LmRpYWxvZ01lc3NhZ2UgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmN1c3RvbVRvb2xiYXJDb25maWcgJiYgIXRoaXMuaXNNaW5pbWFsVG9vbGJhcikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmN1c3RvbVRvb2xiYXJDb25maWcuZm9yRWFjaCgodCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGFiZWwgPSAhdC5sYWJlbCA/IHRoaXMuZGVmYXVsdFRvb2xiYXJDb25maWcuZmluZCgoYykgPT4gYy5uYW1lID09PSB0Lm5hbWUpLmxhYmVsIDogdC5sYWJlbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBvcHRpb25zID0gIXQub3B0aW9ucyA/IHRoaXMuZGVmYXVsdFRvb2xiYXJDb25maWcuZmluZCgoYykgPT4gYy5uYW1lID09PSB0Lm5hbWUpLm9wdGlvbnMgOiB0Lm9wdGlvbnM7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkID0gIXQuZGlhbG9nTWVzc2FnZSA/IHRoaXMuZGVmYXVsdFRvb2xiYXJDb25maWcuZmluZCgoYykgPT4gYy5uYW1lID09PSB0Lm5hbWUpLmRpYWxvZ01lc3NhZ2UgOiB0LmRpYWxvZ01lc3NhZ2U7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0Lm5hbWUgPT09ICdjb3VudGVycycpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXQub3B0aW9ucykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zID0gdGhpcy5kZWZhdWx0VG9vbGJhckNvbmZpZy5maW5kKChjKSA9PiBjLm5hbWUgPT09IHQubmFtZSkub3B0aW9ucztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zID0gdC5vcHRpb25zLm1hcCgob3B0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBvcHRpb25MYWJlbCA9IG9wdGlvbi5sYWJlbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gb3B0aW9uLmxhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0aGlzLmRlZmF1bHRUb29sYmFyQ29uZmlnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5maW5kKChkdGMpID0+IGR0Yy5uYW1lID09PSAnY291bnRlcnMnKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAub3B0aW9ucy5maW5kKChvKSA9PiBvLm5hbWUgPT09IG9wdGlvbi5uYW1lKS5sYWJlbDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7IG5hbWU6IG9wdGlvbi5uYW1lLCBsYWJlbDogb3B0aW9uTGFiZWwgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRvb2xiYXJDb25maWcgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4udGhpcy50b29sYmFyQ29uZmlnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0Lm5hbWVdOiB7IGxhYmVsLCBvcHRpb25zLCBkaWFsb2dNZXNzYWdlOiBkIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pc01pbmltYWxUb29sYmFyKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubWluaW1hbFRvb2xiYXJDb25maWcuZm9yRWFjaCgodCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGFiZWwgPSAhdC5sYWJlbCA/IHRoaXMuZGVmYXVsdFRvb2xiYXJDb25maWcuZmluZCgoYykgPT4gYy5uYW1lID09PSB0Lm5hbWUpLmxhYmVsIDogdC5sYWJlbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSAhdC5vcHRpb25zID8gdGhpcy5kZWZhdWx0VG9vbGJhckNvbmZpZy5maW5kKChjKSA9PiBjLm5hbWUgPT09IHQubmFtZSkub3B0aW9ucyA6IHQub3B0aW9ucztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGQgPSAhdC5kaWFsb2dNZXNzYWdlID8gdGhpcy5kZWZhdWx0VG9vbGJhckNvbmZpZy5maW5kKChjKSA9PiBjLm5hbWUgPT09IHQubmFtZSkuZGlhbG9nTWVzc2FnZSA6IHQuZGlhbG9nTWVzc2FnZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50b29sYmFyQ29uZmlnID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLnRoaXMudG9vbGJhckNvbmZpZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdC5uYW1lXTogeyBsYWJlbCwgb3B0aW9ucywgZGlhbG9nTWVzc2FnZTogZCB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcbiAgICAgICAgdGhpcy5kZXN0cm95JC51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBlbmFibGVFZGl0b3JPbkZvY3VzKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc0VuYWJsZWRPbkZvY3VzKSB7XG4gICAgICAgICAgICB0aGlzLmlzUmVhZE9ubHkgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBpbWFnZVVybEhhbmRsZXIoKTogdm9pZCB7XG4gICAgICAgIGxldCBpbWFnZVVybERpYWxvZ0Zvcm06IEZvcm1Hcm91cCA9IG51bGw7XG4gICAgICAgIHRoaXMuZXVpRGlhbG9nU2VydmljZS5vcGVuRGlhbG9nKFxuICAgICAgICAgICAgbmV3IEV1aURpYWxvZ0NvbmZpZyh7XG4gICAgICAgICAgICAgICAgdGl0bGU6IHRoaXMudG9vbGJhckNvbmZpZy5pbWFnZVVybC5kaWFsb2dNZXNzYWdlLFxuICAgICAgICAgICAgICAgIGlzSGFuZGxlQ2xvc2VPbkFjY2VwdDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBib2R5Q29tcG9uZW50OiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudDogRXVpRWRpdG9ySW1hZ2VEaWFsb2dDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZzoge1xuICAgICAgICAgICAgICAgICAgICAgICAgb25Gb3JtVmFsdWVDaGFuZ2U6IChmb3JtOiBGb3JtR3JvdXApOiB2b2lkID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbWFnZVVybERpYWxvZ0Zvcm0gPSBmb3JtO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGFjY2VwdDogKCk6IHZvaWQgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaW1hZ2VVcmxEaWFsb2dGb3JtICYmIGltYWdlVXJsRGlhbG9nRm9ybS52YWxpZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ldWlEaWFsb2dTZXJ2aWNlLmNsb3NlRGlhbG9nKCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJhbmdlID0gdGhpcy5xdWlsbC5nZXRTZWxlY3Rpb24oKSB8fCB7IGluZGV4OiAwLCBsZW5ndGg6IDAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucXVpbGwuaW5zZXJ0RW1iZWQocmFuZ2UuaW5kZXgsICdpbWFnZScsIGltYWdlVXJsRGlhbG9nRm9ybS5nZXQoJ3VybCcpLnZhbHVlLCAndXNlcicpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIGVkaXRvclVuZG8oKTogdm9pZCB7XG4gICAgICAgIHRoaXMucXVpbGxbJ2hpc3RvcnknXS51bmRvKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGVkaXRvclJlZG8oKTogdm9pZCB7XG4gICAgICAgIHRoaXMucXVpbGxbJ2hpc3RvcnknXS5yZWRvKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGVkaXRvckRlbGV0ZUNvbnRlbnQoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IG5ldyBFdWlEaWFsb2dDb25maWcoe1xuICAgICAgICAgICAgdGl0bGU6ICdEZWxldGUgY29udGVudCcsXG4gICAgICAgICAgICBjb250ZW50OiBcIjxwPkFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgZWRpdG9yJ3MgY29udGVudD88L3A+XCIsXG4gICAgICAgICAgICBoYXNDbG9zZUJ1dHRvbjogZmFsc2UsXG4gICAgICAgICAgICBhY2NlcHQ6ICgpOiB2b2lkID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnF1aWxsLnNldENvbnRlbnRzKG51bGwpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5ldWlEaWFsb2dTZXJ2aWNlLm9wZW5EaWFsb2coY29uZmlnKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaW5zZXJ0VGFibGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudGFibGVNb2R1bGUuaW5zZXJ0VGFibGUoMywgMyk7XG4gICAgfVxuXG4gICAgZ2V0IGhhc0ltYWdlRmVhdHVyZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZXVpRWRpdG9yQ3VzdG9tVG9vbGJhclxuICAgICAgICAgICAgPyB0aGlzLmV1aUVkaXRvckN1c3RvbVRvb2xiYXI/LmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcucWwtaW1hZ2UnKVxuICAgICAgICAgICAgOiB0aGlzLnRvb2xiYXJDb25maWcuaW1hZ2U7XG4gICAgfVxuXG4gICAgcHVibGljIF9vbkVkaXRvckNyZWF0ZWQocXVpbGw6IHR5cGVvZiBRdWlsbFR5cGUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5xdWlsbCA9IHF1aWxsO1xuXG4gICAgICAgIGlmICh0aGlzLmlzRW5hYmxlZE9uRm9jdXMpIHtcbiAgICAgICAgICAgIHRoaXMucXVpbGwuZm9jdXMoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmZvcm1hdCA9PT0gJ2h0bWwnKSB7XG4gICAgICAgICAgICBjb25zdCBkZWx0YSA9IHRoaXMucXVpbGwuY2xpcGJvYXJkLmNvbnZlcnQoeyBodG1sOiB0aGlzLnZhbHVlIGFzIHN0cmluZyB9KTtcbiAgICAgICAgICAgIHRoaXMuZm9ybUNvbnRyb2wucGF0Y2hWYWx1ZShkZWx0YSk7XG4gICAgICAgICAgICB0aGlzLnF1aWxsLnNldENvbnRlbnRzKGRlbHRhKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmZvcm1hdCA9PT0gJ2pzb24nKSB7XG4gICAgICAgICAgICB0aGlzLmZvcm1Db250cm9sLnBhdGNoVmFsdWUodGhpcy52YWx1ZSk7XG4gICAgICAgICAgICB0aGlzLnF1aWxsLnNldENvbnRlbnRzKEpTT04ucGFyc2UodGhpcy52YWx1ZSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0aGlzLmhhc0ltYWdlRmVhdHVyZSkge1xuICAgICAgICAgICAgcXVpbGwuY2xpcGJvYXJkLmFkZE1hdGNoZXIoJ0lNRycsIChlbGVtZW50OiBFbGVtZW50LCBkZWx0YTogRGVsdGEpID0+IG5ldyBEZWx0YSgpLmluc2VydCgnJykpO1xuICAgICAgICAgICAgcXVpbGwuY2xpcGJvYXJkLmFkZE1hdGNoZXIoJ1BJQ1RVUkUnLCAoZWxlbWVudDogRWxlbWVudCwgZGVsdGE6IERlbHRhKSA9PiBuZXcgRGVsdGEoKS5pbnNlcnQoJycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZWRpdG9yQ3JlYXRlLmVtaXQocXVpbGwpO1xuICAgIH1cblxuICAgIHB1YmxpYyBfb25FZGl0b3JDaGFuZ2VkKGV2ZW50OiBFZGl0b3JDaGFuZ2VTZWxlY3Rpb24gfCBDb250ZW50Q2hhbmdlIHwgRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc29sZS53YXJuKCdvbkVkaXRvckNoYW5nZWQoKSBldmVudCBpcyBERVBSRUNBVEVEIHBsZWFzZSB1c2UgY29udGVudENoYW5nZSgpIGV2ZW50IGluc3RlYWQuJyk7XG4gICAgICAgIHRoaXMuZWRpdG9yQ2hhbmdlLmVtaXQoZXZlbnQgYXMgRWRpdG9yQ2hhbmdlU2VsZWN0aW9uKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgX29uQ29udGVudENoYW5nZWQoZXZlbnQ6IENvbnRlbnRDaGFuZ2UpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZm9ybWF0ID09PSAnaHRtbCcpIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSBldmVudC5odG1sO1xuICAgICAgICAgICAgdGhpcy5jYWxjdWxhdGVDb3VudGVycyh0aGlzLnZhbHVlIGFzIHN0cmluZyk7XG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuaHRtbEVudGl0aWVzRGVjb2RlKHRoaXMudmFsdWUgYXMgc3RyaW5nKSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuZm9ybWF0ID09PSAnanNvbicpIHtcbiAgICAgICAgICAgIGlmIChldmVudC50ZXh0ICE9PSAnXFxuJykge1xuICAgICAgICAgICAgICAgIHRoaXMudmFsdWUgPSBldmVudC5jb250ZW50O1xuICAgICAgICAgICAgICAgIHRoaXMuY2FsY3VsYXRlQ291bnRlcnMoZXZlbnQudGV4dCk7XG4gICAgICAgICAgICAgICAgdGhpcy5qc29uVG9IdG1sQ29udGVudCA9IHRoaXMuaHRtbEVudGl0aWVzRGVjb2RlKEpTT04uc3RyaW5naWZ5KHRoaXMudmFsdWUpKTtcbiAgICAgICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuanNvblRvSHRtbENvbnRlbnQpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gbnVsbDtcbiAgICAgICAgICAgICAgICB0aGlzLmNhbGN1bGF0ZUNvdW50ZXJzKCcnKTtcbiAgICAgICAgICAgICAgICB0aGlzLmpzb25Ub0h0bWxDb250ZW50ID0gJyc7XG4gICAgICAgICAgICAgICAgdGhpcy5vbkNoYW5nZShudWxsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNvbnRlbnRDaGFuZ2UuZW1pdChldmVudCk7IC8vIE5ldyBlbWl0dGVyXG4gICAgICAgIHRoaXMuX29uRWRpdG9yQ2hhbmdlZChldmVudCk7IC8vIFN5bmMgd2l0aCBlZGl0b3IgY2hhbmdlIGV2ZW50IHNpbmNlIGl0J3MgZHVwbGljYXRlZCBldmVudFxuICAgIH1cblxuICAgIHB1YmxpYyBfb25TZWxlY3Rpb25DaGFuZ2VkKGV2ZW50OiBTZWxlY3Rpb25DaGFuZ2UpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2UuZW1pdChldmVudCk7XG4gICAgfVxuXG4gICAgcHVibGljIF9vbkZvY3VzKGV2ZW50OiBGb2N1cyk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzRm9jdXNlZCA9IHRydWU7XG4gICAgICAgIHRoaXMuZm9jdXMuZW1pdChldmVudCk7XG4gICAgfVxuXG4gICAgcHVibGljIF9vbkJsdXIoZXZlbnQ6IEJsdXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc0ZvY3VzZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5vblRvdWNoKCk7XG4gICAgICAgIHRoaXMuYmx1ci5lbWl0KGV2ZW50KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uVG91Y2ggPSBmbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZSB8fCBudWxsO1xuICAgICAgICB0aGlzLmpzb25Ub0h0bWxDb250ZW50ID0gdGhpcy52YWx1ZTtcblxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLnF1aWxsKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZm9ybWF0ID09PSAnaHRtbCcpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGVsdGEgPSB0aGlzLnF1aWxsLmNsaXBib2FyZC5jb252ZXJ0KHsgaHRtbDogdGhpcy52YWx1ZSBhcyBzdHJpbmcgfSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybUNvbnRyb2wucGF0Y2hWYWx1ZShkZWx0YSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucXVpbGwuc2V0Q29udGVudHMoZGVsdGEpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmZvcm1hdCA9PT0gJ2pzb24nKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybUNvbnRyb2wucGF0Y2hWYWx1ZSh0aGlzLnZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gdGhpcy5xdWlsbC5zZXRDb250ZW50cyhKU09OLnBhcnNlKHRoaXMudmFsdWUpKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0aGlzLmNhbGN1bGF0ZUNvdW50ZXJzKHRoaXMudmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCB0YWJsZU1vZHVsZSgpOiBCZXR0ZXJUYWJsZU1vZHVsZSB7XG4gICAgICAgIHJldHVybiB0aGlzLnF1aWxsLmdldE1vZHVsZSgnYmV0dGVyLXRhYmxlJyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvbkNoYW5nZTogYW55ID0gKCkgPT4ge307XG5cbiAgICBwcml2YXRlIG9uVG91Y2g6IGFueSA9ICgpID0+IHt9O1xuXG4gICAgcHJpdmF0ZSBodG1sRW50aXRpZXNEZWNvZGUoY29udGVudDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgbGV0IGMgPSBjb250ZW50O1xuICAgICAgICBpZiAoYykge1xuICAgICAgICAgICAgYyA9IGMucmVwbGFjZSgnJmFtcDsnLCAnJicpO1xuICAgICAgICAgICAgYyA9IGMucmVwbGFjZSgnJm5ic3A7JywgJyAnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjO1xuICAgIH1cblxuICAgIGdldCBoYXNDaGFyYWN0ZXJzQ291bnRlcigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudG9vbGJhckNvbmZpZy5jb3VudGVycy5vcHRpb25zLmZpbmQoKG8pID0+IG8ubmFtZSA9PT0gJ2NoYXJhY3RlcnMnKTtcbiAgICB9XG5cbiAgICBnZXQgY2hhcmFjdGVyc0NvdW50ZXJMYWJlbCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy50b29sYmFyQ29uZmlnLmNvdW50ZXJzLm9wdGlvbnMuZmluZCgobykgPT4gby5uYW1lID09PSAnY2hhcmFjdGVycycpPy5sYWJlbDtcbiAgICB9XG5cbiAgICBnZXQgaGFzV29yZHNDb3VudGVyKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy50b29sYmFyQ29uZmlnLmNvdW50ZXJzLm9wdGlvbnMuZmluZCgobykgPT4gby5uYW1lID09PSAnd29yZHMnKTtcbiAgICB9XG5cbiAgICBnZXQgd29yZHNDb3VudGVyTGFiZWwoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudG9vbGJhckNvbmZpZy5jb3VudGVycy5vcHRpb25zLmZpbmQoKG8pID0+IG8ubmFtZSA9PT0gJ3dvcmRzJyk/LmxhYmVsO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2FsY3VsYXRlQ291bnRlcnMoY29udGVudDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGxldCB0ZXh0OiBzdHJpbmc7XG4gICAgICAgIGNvbnN0IHJlZ2V4ID0gL1xccysvO1xuICAgICAgICBpZiAodGhpcy5mb3JtYXQgPT09ICdodG1sJykge1xuICAgICAgICAgICAgaWYgKGNvbnRlbnQgJiYgY29udGVudC5sZW5ndGggPiAwICYmIHRoaXMucXVpbGwpIHtcbiAgICAgICAgICAgICAgICB0ZXh0ID0gdGhpcy5zdHJpcEh0bWwoY29udGVudCk7XG4gICAgICAgICAgICAgICAgdGhpcy5jaGFyYWN0ZXJzQ291bnQgPSB0ZXh0Lmxlbmd0aDtcbiAgICAgICAgICAgICAgICB0ZXh0ID0gdGhpcy5jbGVhbkh0bWwoY29udGVudCk7XG4gICAgICAgICAgICAgICAgdGhpcy53b3Jkc0NvdW50ID0gIXRleHQgPyAwIDogdGV4dC50cmltKCkuc3BsaXQocmVnZXgpLmZpbHRlcih0ID0+IHQgIT09ICcnKS5sZW5ndGg7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuY2hhcmFjdGVyc0NvdW50ID0gMDtcbiAgICAgICAgICAgICAgICB0aGlzLndvcmRzQ291bnQgPSAwO1xuICAgICAgICAgICAgICAgIHRoaXMuYnl0ZXNDb3VudCA9IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5mb3JtYXQgPT09ICdqc29uJykge1xuICAgICAgICAgICAgaWYgKGNvbnRlbnQgJiYgdGhpcy5xdWlsbCkge1xuICAgICAgICAgICAgICAgIHRleHQgPSB0aGlzLnN0cmlwSHRtbCh0aGlzLnF1aWxsLnJvb3QuaW5uZXJIVE1MKTtcbiAgICAgICAgICAgICAgICB0aGlzLmNoYXJhY3RlcnNDb3VudCA9IHRleHQubGVuZ3RoO1xuXG4gICAgICAgICAgICAgICAgdGV4dCA9IHRoaXMuY2xlYW5IdG1sKHRoaXMucXVpbGwucm9vdC5pbm5lckhUTUwpO1xuICAgICAgICAgICAgICAgIHRoaXMud29yZHNDb3VudCA9ICF0ZXh0ID8gMCA6IHRleHQudHJpbSgpLnNwbGl0KHJlZ2V4KS5maWx0ZXIodCA9PiB0ICE9PSAnJykubGVuZ3RoO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNoYXJhY3RlcnNDb3VudCA9IDA7XG4gICAgICAgICAgICAgICAgdGhpcy53b3Jkc0NvdW50ID0gMDtcbiAgICAgICAgICAgICAgICB0aGlzLmJ5dGVzQ291bnQgPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jaGFyYWN0ZXJzQ291bnRDaGFuZ2UuZW1pdCh0aGlzLmNoYXJhY3RlcnNDb3VudCk7XG5cbiAgICAgICAgdGhpcy53b3Jkc0NvdW50Q2hhbmdlLmVtaXQodGhpcy53b3Jkc0NvdW50KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0cmlwSHRtbChjb250ZW50OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCByZWdleCA9IC8oPChbXj5dKyk+KS9nbTtcbiAgICAgICAgY29uc3QgY29udGVudFRvUmVwbGFjZSA9IGNvbnRlbnQucmVwbGFjZShyZWdleCwgJycpO1xuICAgICAgICByZXR1cm4gY29udGVudFRvUmVwbGFjZS5yZXBsYWNlKC9bXFx1MjAwQi1cXHUyMDBEXFx1RkVGRl0vZywgJycpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2xlYW5IdG1sKGNvbnRlbnQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGV4Y2VwdFRhZ3MgPSAvPHN0cm9uZz58PFxcL3N0cm9uZz58PGI+fDxcXC9iPnw8aT58PFxcL2k+fDxlbT58PFxcL2VtPnw8cz58PFxcL3M+fDxzdHJpa2U+fDxcXC9zdHJpa2U+fDx1Pnw8XFwvdT4vZ207XG4gICAgICAgIGNvbnN0IHJlZ2V4ID0gLyg8KFtePl0rKT4pL2dtO1xuICAgICAgICBjb25zdCBjb250ZW50VG9SZXBsYWNlID0gY29udGVudC5yZXBsYWNlKGV4Y2VwdFRhZ3MsICcnKS5yZXBsYWNlKHJlZ2V4LCAnICcpLnJlcGxhY2UoJyAgJywgJyAnKTtcbiAgICAgICAgcmV0dXJuIGNvbnRlbnRUb1JlcGxhY2UucmVwbGFjZSgvW1xcdTIwMEItXFx1MjAwRFxcdUZFRkZdL2csICcnKTtcbiAgICB9XG59XG5cbi8qIGVzbGludC1kaXNhYmxlICovXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICdldWlFZGl0b3JDdXN0b21Ub29sYmFyJyB9KVxuZXhwb3J0IGNsYXNzIEV1aUVkaXRvckN1c3RvbVRvb2xiYXJUYWdEaXJlY3RpdmUge1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKSBlbGVtZW50Q2xhc3MgPSAnZXVpLWVkaXRvci1jdXN0b20tdG9vbGJhcic7XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZikge31cbn1cbi8qIGVzbGludC1lbmFibGUgKi9cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJyZWFkeVRvUmVuZGVyXCI+XG48ZGl2IFtoaWRkZW5dPVwiaXNSZWFkT25seVwiIGNsYXNzPVwiZXVpLWVkaXRvci13cmFwcGVyXCIgW3N0eWxlLmhlaWdodF09XCJoZWlnaHQgKyAncHgnXCI+XG4gICAgPHF1aWxsLWVkaXRvclxuICAgICAgICBbaWRdPVwiZ2VuZXJhdGVkSWRcIlxuICAgICAgICBjbGFzcz1cImV1aS1lZGl0b3Ige3sgc3R5bGVDbGFzcyB9fVwiXG4gICAgICAgIFtjbGFzcy5ldWktZWRpdG9yLS1mb2N1c2VkXT1cImlzRm9jdXNlZFwiXG4gICAgICAgIFtmb3JtYXRdPVwiZm9ybWF0XCJcbiAgICAgICAgW2Zvcm1hdHNdPVwiZm9ybWF0c1wiXG4gICAgICAgIFtzYW5pdGl6ZV09XCJ0cnVlXCJcbiAgICAgICAgW21vZHVsZXNdPVwibW9kdWxlc1wiXG4gICAgICAgIFt0aGVtZV09XCJ0aGVtZVwiXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgICAgIFtjdXN0b21Ub29sYmFyUG9zaXRpb25dPVwiY3VzdG9tVG9vbGJhclBvc2l0aW9uXCJcbiAgICAgICAgW2Zvcm1Db250cm9sXT1cImZvcm1Db250cm9sXCJcbiAgICAgICAgW2RlYnVnXT1cImRlYnVnXCJcbiAgICAgICAgW3RhYmluZGV4XT1cInRhYmluZGV4XCJcbiAgICAgICAgW3ByZXNlcnZlV2hpdGVzcGFjZV09XCJ0cnVlXCJcbiAgICAgICAgW2hhc0ltYWdlRmVhdHVyZV09XCJoYXNJbWFnZUZlYXR1cmVcIlxuICAgICAgICAob25FZGl0b3JDcmVhdGVkKT1cIl9vbkVkaXRvckNyZWF0ZWQoJGV2ZW50KVwiXG4gICAgICAgIChvbkVkaXRvckNoYW5nZWQpPVwiX29uRWRpdG9yQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgKG9uQ29udGVudENoYW5nZWQpPVwiX29uQ29udGVudENoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgIChvblNlbGVjdGlvbkNoYW5nZWQpPVwiX29uU2VsZWN0aW9uQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgKG9uRm9jdXMpPVwiX29uRm9jdXMoJGV2ZW50KVwiXG4gICAgICAgIChvbkJsdXIpPVwiX29uQmx1cigkZXZlbnQpXCI+XG4gICAgICAgIDxkaXYgKm5nSWY9XCIhZXVpRWRpdG9yQ3VzdG9tVG9vbGJhclwiIHF1aWxsLWVkaXRvci10b29sYmFyPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICpuZ0lmPVwidG9vbGJhckNvbmZpZy5oZWFkaW5nc1wiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJxbC1mb3JtYXRzXCJcbiAgICAgICAgICAgICAgICByb2xlPVwiYXBwbGljYXRpb25cIlxuICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJTZWxlY3QgaGVhZGluZ3Mgc3R5bGVcIlxuICAgICAgICAgICAgICAgIGV1aVRvb2x0aXA9XCJ7eyB0b29sYmFyQ29uZmlnLmhlYWRpbmdzLmxhYmVsIH19XCI+XG4gICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cInFsLWhlYWRlclwiIFthdHRyLmFyaWEtbGFiZWxdPVwidG9vbGJhckNvbmZpZy5oZWFkaW5ncy5sYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwie3sgdmFsdWUgfX1cIiAqbmdGb3I9XCJsZXQgdmFsdWUgb2YgdG9vbGJhckNvbmZpZy5oZWFkaW5ncy5vcHRpb25zXCI+SGVhZGluZyB7eyB2YWx1ZSB9fTwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHNlbGVjdGVkPk5vcm1hbDwvb3B0aW9uPlxuICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgKm5nSWY9XCJ0b29sYmFyQ29uZmlnLmZvbnRcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwicWwtZm9ybWF0c1wiXG4gICAgICAgICAgICAgICAgcm9sZT1cImFwcGxpY2F0aW9uXCJcbiAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiU2VsZWN0IGZvbnQgc3R5bGVcIlxuICAgICAgICAgICAgICAgIGV1aVRvb2x0aXA9XCJ7eyB0b29sYmFyQ29uZmlnLmZvbnQubGFiZWwgfX1cIj5cbiAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwicWwtZm9udFwiIFthdHRyLmFyaWEtbGFiZWxdPVwidG9vbGJhckNvbmZpZy5mb250LmxhYmVsXCI+XG4gICAgICAgICAgICAgICAgICAgIDxvcHRpb24gc2VsZWN0ZWQ+U2FucyBTZXJpZjwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwic2VyaWZcIj5TZXJpZjwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwibW9ub3NwYWNlXCI+TW9ub3NwYWNlPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ0b29sYmFyQ29uZmlnLmJvbGQgfHwgdG9vbGJhckNvbmZpZy5pdGFsaWMgfHwgdG9vbGJhckNvbmZpZy51bmRlcmxpbmUgfHwgdG9vbGJhckNvbmZpZy5zdHJpa2VcIiBjbGFzcz1cInFsLWZvcm1hdHNcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwidG9vbGJhckNvbmZpZy5ib2xkXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJxbC1ib2xkXCJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwidG9vbGJhckNvbmZpZy5ib2xkLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgZXVpVG9vbHRpcD1cInt7IHRvb2xiYXJDb25maWcuYm9sZC5sYWJlbCB9fVwiPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJ0b29sYmFyQ29uZmlnLml0YWxpY1wiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicWwtaXRhbGljXCJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwidG9vbGJhckNvbmZpZy5pdGFsaWMubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICBldWlUb29sdGlwPVwie3sgdG9vbGJhckNvbmZpZy5pdGFsaWMubGFiZWwgfX1cIj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwidG9vbGJhckNvbmZpZy51bmRlcmxpbmVcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInFsLXVuZGVybGluZVwiXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInRvb2xiYXJDb25maWcudW5kZXJsaW5lLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgZXVpVG9vbHRpcD1cInt7IHRvb2xiYXJDb25maWcudW5kZXJsaW5lLmxhYmVsIH19XCI+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInRvb2xiYXJDb25maWcuc3RyaWtlXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJxbC1zdHJpa2VcIlxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0b29sYmFyQ29uZmlnLnN0cmlrZS5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgIGV1aVRvb2x0aXA9XCJ7eyB0b29sYmFyQ29uZmlnLnN0cmlrZS5sYWJlbCB9fVwiPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidG9vbGJhckNvbmZpZy5mb250Q29sb3IgfHwgdG9vbGJhckNvbmZpZy5mb250QmFja2dyb3VuZFwiIGNsYXNzPVwicWwtZm9ybWF0c1wiPlxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwidG9vbGJhckNvbmZpZy5mb250Q29sb3JcIiBldWlUb29sdGlwPVwie3sgdG9vbGJhckNvbmZpZy5mb250Q29sb3IubGFiZWwgfX1cIj5cbiAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cInFsLWNvbG9yXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJ0b29sYmFyQ29uZmlnLmZvbnRDb2xvci5sYWJlbFwiPjwvc2VsZWN0PlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInRvb2xiYXJDb25maWcuZm9udEJhY2tncm91bmRcIiBldWlUb29sdGlwPVwie3sgdG9vbGJhckNvbmZpZy5mb250QmFja2dyb3VuZC5sYWJlbCB9fVwiPlxuICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwicWwtYmFja2dyb3VuZFwiIFthdHRyLmFyaWEtbGFiZWxdPVwidG9vbGJhckNvbmZpZy5mb250QmFja2dyb3VuZC5sYWJlbFwiPjwvc2VsZWN0PlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInRvb2xiYXJDb25maWcuc3Vic2NyaXB0IHx8IHRvb2xiYXJDb25maWcuc3VwZXJzY3JpcHRcIiBjbGFzcz1cInFsLWZvcm1hdHNcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwidG9vbGJhckNvbmZpZy5zdWJzY3JpcHRcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInFsLXNjcmlwdFwiXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPVwic3ViXCJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwidG9vbGJhckNvbmZpZy5zdWJzY3JpcHQubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICBldWlUb29sdGlwPVwie3sgdG9vbGJhckNvbmZpZy5zdWJzY3JpcHQubGFiZWwgfX1cIj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwidG9vbGJhckNvbmZpZy5zdXBlcnNjcmlwdFwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicWwtc2NyaXB0XCJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCJzdXBlclwiXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInRvb2xiYXJDb25maWcuc3VwZXJzY3JpcHQubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICBldWlUb29sdGlwPVwie3sgdG9vbGJhckNvbmZpZy5zdXBlcnNjcmlwdC5sYWJlbCB9fVwiPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidG9vbGJhckNvbmZpZy50ZXh0QWxpZ25cIiBjbGFzcz1cInFsLWZvcm1hdHNcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBldWlUb29sdGlwPVwie3sgdG9vbGJhckNvbmZpZy50ZXh0QWxpZ24ubGFiZWwgfX1cIj5cbiAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cInFsLWFsaWduXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJ0b29sYmFyQ29uZmlnLnRleHRBbGlnbi5sYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBzZWxlY3RlZD48L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJjZW50ZXJcIj48L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJyaWdodFwiPjwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cImp1c3RpZnlcIj48L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgKm5nSWY9XCJ0b29sYmFyQ29uZmlnLm9yZGVyZWRMaXN0IHx8IHRvb2xiYXJDb25maWcuYnVsbGV0TGlzdCB8fCB0b29sYmFyQ29uZmlnLmluZGVudExlc3MgfHwgdG9vbGJhckNvbmZpZy5pbmRlbnRNb3JlXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInFsLWZvcm1hdHNcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwidG9vbGJhckNvbmZpZy5vcmRlcmVkTGlzdFwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicWwtbGlzdFwiXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPVwib3JkZXJlZFwiXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInRvb2xiYXJDb25maWcub3JkZXJlZExpc3QubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICBldWlUb29sdGlwPVwie3sgdG9vbGJhckNvbmZpZy5vcmRlcmVkTGlzdC5sYWJlbCB9fVwiPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJ0b29sYmFyQ29uZmlnLmJ1bGxldExpc3RcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInFsLWxpc3RcIlxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cImJ1bGxldFwiXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInRvb2xiYXJDb25maWcuYnVsbGV0TGlzdC5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgIGV1aVRvb2x0aXA9XCJ7eyB0b29sYmFyQ29uZmlnLmJ1bGxldExpc3QubGFiZWwgfX1cIj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInRvb2xiYXJDb25maWcuaW5kZW50TGVzc1wiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicWwtaW5kZW50XCJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCItMVwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwidG9vbGJhckNvbmZpZy5pbmRlbnRMZXNzLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgZXVpVG9vbHRpcD1cInt7IHRvb2xiYXJDb25maWcuaW5kZW50TGVzcy5sYWJlbCB9fVwiPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwidG9vbGJhckNvbmZpZy5pbmRlbnRNb3JlXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJxbC1pbmRlbnRcIlxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cIisxXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0b29sYmFyQ29uZmlnLmluZGVudE1vcmUubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICBldWlUb29sdGlwPVwie3sgdG9vbGJhckNvbmZpZy5pbmRlbnRNb3JlLmxhYmVsIH19XCI+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgICAgICB0b29sYmFyQ29uZmlnLmJsb2NrcXVvdGUgfHxcbiAgICAgICAgICAgICAgICAgICAgdG9vbGJhckNvbmZpZy5jb2RlQmxvY2sgfHxcbiAgICAgICAgICAgICAgICAgICAgdG9vbGJhckNvbmZpZy5saW5rIHx8XG4gICAgICAgICAgICAgICAgICAgIHRvb2xiYXJDb25maWcuaW1hZ2UgfHxcbiAgICAgICAgICAgICAgICAgICAgdG9vbGJhckNvbmZpZy5pbWFnZVVybCB8fFxuICAgICAgICAgICAgICAgICAgICB0b29sYmFyQ29uZmlnLnZpZGVvIHx8XG4gICAgICAgICAgICAgICAgICAgIHRvb2xiYXJDb25maWcudGFibGVcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwicWwtZm9ybWF0c1wiPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJ0b29sYmFyQ29uZmlnLmJsb2NrcXVvdGVcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInFsLWJsb2NrcXVvdGVcIlxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0b29sYmFyQ29uZmlnLmJsb2NrcXVvdGUubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICBldWlUb29sdGlwPVwie3sgdG9vbGJhckNvbmZpZy5ibG9ja3F1b3RlLmxhYmVsIH19XCI+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInRvb2xiYXJDb25maWcuY29kZUJsb2NrXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJxbC1jb2RlLWJsb2NrXCJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwidG9vbGJhckNvbmZpZy5jb2RlQmxvY2subGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICBldWlUb29sdGlwPVwie3sgdG9vbGJhckNvbmZpZy5jb2RlQmxvY2subGFiZWwgfX1cIj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwidG9vbGJhckNvbmZpZy5saW5rXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJxbC1saW5rXCJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwidG9vbGJhckNvbmZpZy5saW5rLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgZXVpVG9vbHRpcD1cInt7IHRvb2xiYXJDb25maWcubGluay5sYWJlbCB9fVwiPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJ0b29sYmFyQ29uZmlnLmltYWdlXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJxbC1pbWFnZVwiXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInRvb2xiYXJDb25maWcuaW1hZ2UubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICBldWlUb29sdGlwPVwie3sgdG9vbGJhckNvbmZpZy5pbWFnZS5sYWJlbCB9fVwiPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwidG9vbGJhckNvbmZpZy5pbWFnZVVybFwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwidG9vbGJhckNvbmZpZy5pbWFnZVVybC5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgIGV1aVRvb2x0aXA9XCJ7eyB0b29sYmFyQ29uZmlnLmltYWdlVXJsLmxhYmVsIH19XCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImltYWdlVXJsSGFuZGxlcigpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxldWktaWNvbi1zdmcgaWNvbj1cImV1aS1pbWFnZS1hZGRcIj48L2V1aS1pY29uLXN2Zz5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwidG9vbGJhckNvbmZpZy52aWRlb1wiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicWwtdmlkZW9cIlxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0b29sYmFyQ29uZmlnLnZpZGVvLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgZXVpVG9vbHRpcD1cInt7IHRvb2xiYXJDb25maWcudmlkZW8ubGFiZWwgfX1cIj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInRvb2xiYXJDb25maWcudGFibGVcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInRvb2xiYXJDb25maWcudGFibGUubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICBldWlUb29sdGlwPVwie3sgdG9vbGJhckNvbmZpZy50YWJsZS5sYWJlbCB9fVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJpbnNlcnRUYWJsZSgpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxldWktaWNvbi1zdmcgaWNvbj1cImV1aS1lY2wtc3ByZWFkc2hlZXRcIj48L2V1aS1pY29uLXN2Zz5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInRvb2xiYXJDb25maWcuY2xlYW4gfHwgdG9vbGJhckNvbmZpZy5kZWxldGVcIiBjbGFzcz1cInFsLWZvcm1hdHNcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwidG9vbGJhckNvbmZpZy5jbGVhblwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicWwtY2xlYW5cIlxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0b29sYmFyQ29uZmlnLmNsZWFuLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgZXVpVG9vbHRpcD1cInt7IHRvb2xiYXJDb25maWcuY2xlYW4ubGFiZWwgfX1cIj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInRvb2xiYXJDb25maWcuZGVsZXRlXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0b29sYmFyQ29uZmlnLmRlbGV0ZS5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgIGV1aVRvb2x0aXA9XCJ7eyB0b29sYmFyQ29uZmlnLmRlbGV0ZS5sYWJlbCB9fVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJlZGl0b3JEZWxldGVDb250ZW50KClcIj5cbiAgICAgICAgICAgICAgICAgICAgPGV1aS1pY29uLXN2ZyBpY29uPVwiZXVpLWRlbGV0ZS1mb3JldmVyXCI+PC9ldWktaWNvbi1zdmc+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ0b29sYmFyQ29uZmlnLnVuZG8gfHwgdG9vbGJhckNvbmZpZy5yZWRvXCIgY2xhc3M9XCJxbC1mb3JtYXRzXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJ0b29sYmFyQ29uZmlnLnVuZG9cIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInRvb2xiYXJDb25maWcudW5kby5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgIGV1aVRvb2x0aXA9XCJ7eyB0b29sYmFyQ29uZmlnLnVuZG8ubGFiZWwgfX1cIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZWRpdG9yVW5kbygpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxldWktaWNvbi1zdmcgaWNvbj1cImV1aS11bmRvXCI+PC9ldWktaWNvbi1zdmc+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJ0b29sYmFyQ29uZmlnLnJlZG9cIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInRvb2xiYXJDb25maWcucmVkby5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgIGV1aVRvb2x0aXA9XCJ7eyB0b29sYmFyQ29uZmlnLnJlZG8ubGFiZWwgfX1cIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZWRpdG9yUmVkbygpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxldWktaWNvbi1zdmcgaWNvbj1cImV1aS1yZWRvXCI+PC9ldWktaWNvbi1zdmc+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ0b29sYmFyQ29uZmlnLmNvdW50ZXJzXCIgY2xhc3M9XCJxbC1mb3JtYXRzXCI+XG4gICAgICAgICAgICAgICAgPGV1aS1lZGl0b3ItY291bnRlcnNcbiAgICAgICAgICAgICAgICAgICAgW2hhc0NoYXJhY3RlcnNDb3VudGVyXT1cImhhc0NoYXJhY3RlcnNDb3VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgW2NoYXJhY3RlcnNDb3VudGVyXT1cImNoYXJhY3RlcnNDb3VudFwiXG4gICAgICAgICAgICAgICAgICAgIFtjaGFyYWN0ZXJzTGFiZWxdPVwiY2hhcmFjdGVyc0NvdW50ZXJMYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgIFtoYXNXb3Jkc0NvdW50ZXJdPVwiaGFzV29yZHNDb3VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgW3dvcmRzQ291bnRlcl09XCJ3b3Jkc0NvdW50XCJcbiAgICAgICAgICAgICAgICAgICAgW3dvcmRzTGFiZWxdPVwid29yZHNDb3VudGVyTGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInRvb2xiYXJDb25maWcuY291bnRlcnMubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgZXVpVG9vbHRpcD1cInt7IHRvb2xiYXJDb25maWcuY291bnRlcnMubGFiZWwgfX1cIj5cbiAgICAgICAgICAgICAgICA8L2V1aS1lZGl0b3ItY291bnRlcnM+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJldWlFZGl0b3JDdXN0b21Ub29sYmFyXCIgcXVpbGwtZWRpdG9yLXRvb2xiYXI+XG4gICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJldWlFZGl0b3JDdXN0b21Ub29sYmFyXCI+PC9uZy1jb250ZW50PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L3F1aWxsLWVkaXRvcj5cbjwvZGl2PlxuXG48IS0tIFJFQURPTkxZIE1PREUgLS0+XG48ZGl2XG4gICAgW2hpZGRlbl09XCIhaXNSZWFkT25seVwiXG4gICAgY2xhc3M9XCJldWktZWRpdG9yIGV1aS1lZGl0b3ItLXJlYWRvbmx5IHt7IHN0eWxlQ2xhc3MgfX1cIlxuICAgIFtjbGFzcy5ldWktZWRpdG9yLS1lbXB0eV09XCIhdmFsdWVcIlxuICAgIHRhYmluZGV4PVwie3sgdGFiaW5kZXggfX1cIlxuICAgIChjbGljayk9XCJlbmFibGVFZGl0b3JPbkZvY3VzKClcIlxuICAgIChmb2N1c2luKT1cImVuYWJsZUVkaXRvck9uRm9jdXMoKVwiPlxuICAgIDxldWktZWRpdG9yLWh0bWwtdmlldyAqbmdJZj1cImZvcm1hdCA9PT0gJ2h0bWwnXCIgW2NvbnRlbnRdPVwidmFsdWVcIiBbdGhlbWVdPVwidGhlbWVcIj48L2V1aS1lZGl0b3ItaHRtbC12aWV3PlxuICAgIDxldWktZWRpdG9yLWpzb24tdmlldyAqbmdJZj1cImZvcm1hdCA9PT0gJ2pzb24nXCIgW2NvbnRlbnRdPVwianNvblRvSHRtbENvbnRlbnRcIiBbdGhlbWVdPVwidGhlbWVcIj48L2V1aS1lZGl0b3ItanNvbi12aWV3PlxuPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
|
502
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLWVkaXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9leHRlcm5hbHMvZXVpLWVkaXRvci9ldWktZWRpdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL2V4dGVybmFscy9ldWktZWRpdG9yL2V1aS1lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFFTixpQkFBaUIsRUFDakIsdUJBQXVCLEVBQ3ZCLFdBQVcsRUFFWCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsR0FHYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLFdBQVcsRUFBd0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUd6RixPQUFPLEVBQUUscUJBQXFCLEVBQWdCLE1BQU0sdUJBQXVCLENBQUM7QUFHNUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sS0FBSyxNQUFNLGFBQWEsQ0FBQztBQUVoQyxPQUFPLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFHL0UsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sK0NBQStDLENBQUM7Ozs7Ozs7Ozs7O0FBVDlGLDBHQUEwRztBQUMxRyxNQUFNLFNBQVMsR0FBUSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7QUFTdkMsd0NBQXdDO0FBQ3hDLElBQUksZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7QUFjbEQsTUFBTSxPQUFPLGtCQUFrQjtJQTJCM0IsSUFDSSxRQUFRO1FBQ1IsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFD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LGlCQUFZLEdBQUcsMkJBQTJCLENBQUM7SUFFckIsQ0FBQztpSUFIcEMsa0NBQWtDO3FIQUFsQyxrQ0FBa0M7OzJGQUFsQyxrQ0FBa0M7a0JBRDlDLFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUsd0JBQXdCLEVBQUU7K0VBRXZCLFlBQVk7c0JBQWpDLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG4gICAgT25Jbml0LFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIE9uRGVzdHJveSxcbiAgICBEaXJlY3RpdmUsXG4gICAgQ29udGVudENoaWxkLFxuICAgIGZvcndhcmRSZWYsXG4gICAgRWxlbWVudFJlZixcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ29udGVudENoYW5nZSwgUXVpbGxNb2R1bGVzIH0gZnJvbSAnQGV1aS9jb21wb25lbnRzL2V4dGVybmFscy9xdWlsbCc7XG5cbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSwgQm9vbGVhbklucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb24sbm8tdW5kZXJzY29yZS1kYW5nbGUsaWQtZGVueWxpc3QsaWQtbWF0Y2hcbmNvbnN0IFF1aWxsVHlwZTogYW55ID0gd2luZG93WydRdWlsbCddO1xuaW1wb3J0IHsgc3RhcnRXaXRoLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgRGVsdGEgZnJvbSAncXVpbGwtZGVsdGEnO1xuXG5pbXBvcnQgeyBFdWlEaWFsb2dDb25maWcsIEV1aURpYWxvZ1NlcnZpY2UgfSBmcm9tICdAZXVpL2NvbXBvbmVudHMvZXVpLWRpYWxvZyc7XG5cbmltcG9ydCB7IExvYWRlclNlcnZpY2UsIEJldHRlclRhYmxlTW9kdWxlLCBCbHVyLCBFZGl0b3JDaGFuZ2VTZWxlY3Rpb24sIEZvY3VzLCBTZWxlY3Rpb25DaGFuZ2UsIFRvb2xiYXJJdGVtQ29uZmlnIH0gZnJvbSAnQGV1aS9jb21wb25lbnRzL2V4dGVybmFscy9xdWlsbCc7XG5pbXBvcnQgeyBFdWlFZGl0b3JJbWFnZURpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vaW1hZ2UtdXJsLWRpYWxvZy9pbWFnZS11cmwtZGlhbG9nLmNvbXBvbmVudCc7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJlZmVyLWNvbnN0XG5sZXQgUXVpbGxCZXR0ZXJUYWJsZSA9IHdpbmRvd1sncXVpbGxCZXR0ZXJUYWJsZSddO1xuXG5AQ29tcG9uZW50KHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICBzZWxlY3RvcjogJ2V1aS1lZGl0b3InLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9ldWktZWRpdG9yLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9zdHlsZXMvX2luZGV4LnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICAvLyBUT0RPOiBDaGVjayB0byBjaGFuZ2UgdGhlIHByb3ZpZGluZyB3YXkuIFByb3ZpZGUgd2l0aCBpbmplY3RvciByZWZlcmVuY2VcbiAgICAgICAgRXVpRGlhbG9nU2VydmljZSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBFdWlFZGl0b3JDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIEBJbnB1dCgpIGUyZUF0dHIgPSAnZXVpLWVkaXRvcic7XG4gICAgQElucHV0KCkgaWQ6IHN0cmluZztcbiAgICBASW5wdXQoKSBzdHlsZUNsYXNzID0gJyc7XG4gICAgQElucHV0KCkgcGxhY2Vob2xkZXIgPSAnJztcbiAgICBASW5wdXQoKSBmb3JtYXQ6ICdodG1sJyB8ICdqc29uJyA9ICdodG1sJztcbiAgICBASW5wdXQoKSB0aGVtZTogJ3Nub3cnIHwgJ2J1YmJsZScgPSAnc25vdyc7XG4gICAgQElucHV0KCkgZGVidWc6ICd3YXJuJyB8ICdsb2cnIHwgJ2Vycm9yJyB8IGZhbHNlID0gZmFsc2U7XG4gICAgQElucHV0KCkgY3VzdG9tVG9vbGJhclBvc2l0aW9uOiAndG9wJyB8ICdib3R0b20nID0gJ3RvcCc7XG4gICAgQElucHV0KCkgdGFiaW5kZXggPSAnMCc7XG4gICAgQElucHV0KCkgbW9kdWxlczogUXVpbGxNb2R1bGVzO1xuICAgIEBJbnB1dCgpIGZvcm1hdHM/OiBzdHJpbmdbXSB8IG51bGw7XG4gICAgLy8gTkVXIEVVSSBJTlBVVFNcbiAgICBASW5wdXQoKSBjdXN0b21Ub29sYmFyQ29uZmlnOiBUb29sYmFySXRlbUNvbmZpZ1tdO1xuICAgIEBJbnB1dCgpIGhlaWdodDogc3RyaW5nO1xuICAgIC8vIE5FVyBPVVRQVVRTID0+IGVVSTEzKyBvbmx5XG4gICAgQE91dHB1dCgpIGVkaXRvckNyZWF0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8dHlwZW9mIFF1aWxsVHlwZT4oKTtcbiAgICBAT3V0cHV0KCkgZWRpdG9yQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxFZGl0b3JDaGFuZ2VTZWxlY3Rpb24gfCBDb250ZW50Q2hhbmdlPigpO1xuICAgIEBPdXRwdXQoKSBjb250ZW50Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxDb250ZW50Q2hhbmdlPigpO1xuICAgIEBPdXRwdXQoKSBzZWxlY3Rpb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFNlbGVjdGlvbkNoYW5nZT4oKTtcbiAgICBAT3V0cHV0KCkgZm9jdXMgPSBuZXcgRXZlbnRFbWl0dGVyPEZvY3VzPigpO1xuICAgIEBPdXRwdXQoKSBibHVyID0gbmV3IEV2ZW50RW1pdHRlcjxCbHVyPigpO1xuICAgIEBPdXRwdXQoKSBjaGFyYWN0ZXJzQ291bnRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcbiAgICBAT3V0cHV0KCkgd29yZHNDb3VudENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5ldWktZWRpdG9yJykgdHJ1ZTogYm9vbGVhbjtcblxuICAgIEBIb3N0QmluZGluZygnYXR0ci5yZWFkb25seScpXG4gICAgZ2V0IHJlYWRvbmx5KCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzUmVhZE9ubHkgPyAncmVhZG9ubHknIDogbnVsbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgdmFsdWU6IHN0cmluZyB8IGFueSA9ICcnO1xuICAgIHB1YmxpYyBjaGFyYWN0ZXJzQ291bnQgPSAwO1xuICAgIHB1YmxpYyB3b3Jkc0NvdW50ID0gMDtcbiAgICBwdWJsaWMgYnl0ZXNDb3VudCA9IDA7XG4gICAgcHVibGljIGlzRm9jdXNlZCA9IGZhbHNlO1xuICAgIHB1YmxpYyBnZW5lcmF0ZWRJZDogc3RyaW5nO1xuICAgIHB1YmxpYyBmb3JtQ29udHJvbDogRm9ybUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woKTtcbiAgICBwdWJsaWMganNvblRvSHRtbENvbnRlbnQ6IHN0cmluZztcbiAgICBwdWJsaWMgdG9vbGJhckNvbmZpZzogeyBbaWQ6IHN0cmluZ106IHsgbGFiZWw6IHN0cmluZzsgb3B0aW9uczogYW55W107IGRpYWxvZ01lc3NhZ2U6IHN0cmluZyB9IH07XG4gICAgcHJvdGVjdGVkIHJlYWR5VG9SZW5kZXI6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBtYXgtbGVuXG4gICAgQENvbnRlbnRDaGlsZChmb3J3YXJkUmVmKCgpID0+IEV1aUVkaXRvckN1c3RvbVRvb2xiYXJUYWdEaXJlY3RpdmUpLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgICBldWlFZGl0b3JDdXN0b21Ub29sYmFyOiBFdWlFZGl0b3JDdXN0b21Ub29sYmFyVGFnRGlyZWN0aXZlO1xuXG4gICAgQElucHV0KClcbiAgICBnZXQgaXNSZWFkT25seSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzUmVhZE9ubHk7XG4gICAgfVxuICAgIHNldCBpc1JlYWRPbmx5KHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5faXNSZWFkT25seSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIHByaXZhdGUgX2lzUmVhZE9ubHkgPSBmYWxzZTtcbiAgICBASW5wdXQoKVxuICAgIGdldCBzaG93Q291bnRlcnMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zaG93Q291bnRlcnM7XG4gICAgfVxuICAgIHNldCBzaG93Q291bnRlcnModmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9zaG93Q291bnRlcnMgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwcml2YXRlIF9zaG93Q291bnRlcnMgPSB0cnVlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGlzRW5hYmxlZE9uRm9jdXMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0VuYWJsZWRPbkZvY3VzO1xuICAgIH1cbiAgICBzZXQgaXNFbmFibGVkT25Gb2N1cyh2YWx1ZSkge1xuICAgICAgICB0aGlzLl9pc0VuYWJsZWRPbkZvY3VzID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfaXNFbmFibGVkT25Gb2N1cyA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGlzTWluaW1hbFRvb2xiYXIoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc01pbmltYWxUb29sYmFyO1xuICAgIH1cbiAgICBzZXQgaXNNaW5pbWFsVG9vbGJhcih2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2lzTWluaW1hbFRvb2xiYXIgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwcml2YXRlIF9pc01pbmltYWxUb29sYmFyID0gZmFsc2U7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1pbnZhbGlkJylcbiAgICBnZXQgaXNJbnZhbGlkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNJbnZhbGlkO1xuICAgIH1cbiAgICBzZXQgaXNJbnZhbGlkKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5faXNJbnZhbGlkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfaXNJbnZhbGlkID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIHF1aWxsOiB0eXBlb2YgUXVpbGxUeXBlO1xuICAgIHByaXZhdGUgbWluaW1hbFRvb2xiYXJDb25maWc6IFRvb2xiYXJJdGVtQ29uZmlnW10gPSBbXG4gICAgICAgIHsgbmFtZTogJ2hlYWRpbmdzJyB9LFxuICAgICAgICB7IG5hbWU6ICdib2xkJyB9LFxuICAgICAgICB7IG5hbWU6ICdpdGFsaWMnIH0sXG4gICAgICAgIHsgbmFtZTogJ3VuZGVybGluZScgfSxcbiAgICAgICAgeyBuYW1lOiAnZm9udENvbG9yJyB9LFxuICAgICAgICB7IG5hbWU6ICd0ZXh0QWxpZ24nIH0sXG4gICAgICAgIHsgbmFtZTogJ2xpbmsnIH0sXG4gICAgICAgIHsgbmFtZTogJ2ltYWdlJyB9LFxuICAgICAgICB7IG5hbWU6ICdpbWFnZVVybCcgfSxcbiAgICAgICAgeyBuYW1lOiAnY2xlYW4nIH0sXG4gICAgICAgIHsgbmFtZTogJ2RlbGV0ZScgfSxcbiAgICAgICAgeyBuYW1lOiAndW5kbycgfSxcbiAgICAgICAgeyBuYW1lOiAncmVkbycgfSxcbiAgICAgICAgeyBuYW1lOiAnY291bnRlcnMnIH0sXG4gICAgXTtcbiAgICBwcml2YXRlIGRlZmF1bHRUb29sYmFyQ29uZmlnOiBUb29sYmFySXRlbUNvbmZpZ1tdID0gW1xuICAgICAgICB7IG5hbWU6ICdoZWFkaW5ncycsIGxhYmVsOiAnU3R5bGUgLSBBcHBseSBhbiBIVE1MIHRhZyBvciBDU1MgY2xhc3MgdG8gdGhlIHNlbGVjdGVkIHRleHQnLCBvcHRpb25zOiBbMSwgMiwgMywgNCwgNSwgNl0gfSxcbiAgICAgICAgeyBuYW1lOiAnZm9udCcsIGxhYmVsOiAnRm9udCAtIENoYW5nZSB0aGUgZm9udCBmYWNlJyB9LFxuICAgICAgICB7IG5hbWU6ICdib2xkJywgbGFiZWw6ICdCb2xkIChDdHJsICsgQikgLSBNYWtlIHRoZSBzZWxlY3RlZCB0ZXh0IGJvbGQnIH0sXG4gICAgICAgIHsgbmFtZTogJ2l0YWxpYycsIGxhYmVsOiAnSXRhbGljIChDdHJsICsgSSkgLSBJdGFsaWNpemUgdGhlIHNlbGVjdGVkIHRleHQnIH0sXG4gICAgICAgIHsgbmFtZTogJ3VuZGVybGluZScsIGxhYmVsOiAnVW5kZXJsaW5lIChDdHJsICsgVSkgLSBVbmRlcmxpbmUgdGhlIHNlbGVjdGVkIHRleHQnIH0sXG4gICAgICAgIHsgbmFtZTogJ3N0cmlrZScsIGxhYmVsOiAnU3RyaWtldGhyb3VnaCAtIERyYXcgYSBsaW5lIHRvIHRoZSBtaWRkbGUgb2YgdGhlIHNlbGVjdGVkIHRleHQnIH0sXG4gICAgICAgIHsgbmFtZTogJ2ZvbnRDb2xvcicsIGxhYmVsOiAnRm9udCBDb2xvciAtIENoYW5nZSB0aGUgdGV4dCBjb2xvcicgfSxcbiAgICAgICAgeyBuYW1lOiAnZm9udEJhY2tncm91bmQnLCBsYWJlbDogJ0ZvbnQgQmFja2dyb3VuZCAtIENoYW5nZSB0aGUgdGV4dCBiYWNrZ3JvdW5kIGNvbG9yJyB9LFxuICAgICAgICB7IG5hbWU6ICdzdWJzY3JpcHQnLCBsYWJlbDogJ1N1YnNjcmlwdCAtIENyZWF0ZSBzc21hbGwgbGV0dGVycyBiZWxvdyB0aGUgdGV4dCBiYXNlbGluZScgfSxcbiAgICAgICAgeyBuYW1lOiAnc3VwZXJzY3JpcHQnLCBsYWJlbDogJ1N1cGVyc2NyaXB0IC0gQ3JlYXRlIHNtYWxsIGxldHRlcnMgYWJvdmUgdGhlIGxpbmUgb2YgdGhlIHRleHQnIH0sXG4gICAgICAgIHsgbmFtZTogJ3RleHRBbGlnbicsIGxhYmVsOiAnVGV4dCBBbGlnbiAtIEFsaWduIHRoZSB0ZXh0IHRvIHRoZSBzZWxlY3RlZCBwb3NpdGlvbjogbGVmdCAoZGVmYXVsdCksIGNlbnRlciwgcmlnaHQgb3IganVzdGlmeScgfSxcbiAgICAgICAgeyBuYW1lOiAnb3JkZXJlZExpc3QnLCBsYWJlbDogJ051bWJlcmluZyAtIFN0YXJ0IGFuIG9yZGVyZWQgbGlzdCcgfSxcbiAgICAgICAgeyBuYW1lOiAnYnVsbGV0TGlzdCcsIGxhYmVsOiAnQnVsbGV0cyAtIFN0YXJ0IGEgYnVsbGV0ZWQgbGlzdCcgfSxcbiAgICAgICAgeyBuYW1lOiAnaW5kZW50TGVzcycsIGxhYmVsOiAnRGVjcmVhc2UgSW5kZW50IC0gRGVjcmVhc2UgdGhlIGluZGVudCBsZXZlbCBvZiB0aGUgcGFyYWdyYXBoJyB9LFxuICAgICAgICB7IG5hbWU6ICdpbmRlbnRNb3JlJywgbGFiZWw6ICdJbmNyZWFzZSBJbmRlbnQgLSBJbmNyZWFzZSB0aGUgaW5kZW50IGxldmVsIG9mIHRoZSBwYXJhZ3JhcGgnIH0sXG4gICAgICAgIHsgbmFtZTogJ2Jsb2NrcXVvdGUnLCBsYWJlbDogJ0Jsb2NrcXVvdGUgLSBDcmVhdGUgYSBxdW90ZWQgYmxvY2sgb2YgdGhlIHNlbGVjdGVkIHRleHQnIH0sXG4gICAgICAgIHsgbmFtZTogJ2NvZGVCbG9jaycsIGxhYmVsOiAnSW5zZXJ0IENvZGUgQmxvY2sgLSBJbnNlcnQgYSBjb2RlIGJsb2NrIGF0IHRoZSBjdXJzb3Igcm93IHBvc2l0aW9uJyB9LFxuICAgICAgICB7IG5hbWU6ICdsaW5rJywgbGFiZWw6ICdJbnNlcnQgSHlwZXJsaW5rIChDdHJsICsgSykgLSBDcmVhdGUgYSBsaW5rIHRvIGEgV2ViIHBhZ2UsIGEgcGljdHVyZSwgYW4gZS1tYWlsIGFkZHJlc3Mgb3IgYSBwcm9ncmFtJyB9LFxuICAgICAgICB7IG5hbWU6ICdpbWFnZScsIGxhYmVsOiAnSW5zZXJ0IFBpY3R1cmUgLSBJbnNlcnQgYSBwaWN0dXJlIGZyb20gYSBmaWxlJyB9LFxuICAgICAgICB7IG5hbWU6ICdpbWFnZVVybCcsIGxhYmVsOiAnSW5zZXJ0IFBpY3R1cmUgZnJvbSBVUkwgLSBJbnNlcnQgYSBwaWN0dXJlIGZyb20gYSByZW1vdGUgVVJMJywgZGlhbG9nTWVzc2FnZTogJ0VudGVyIGltYWdlIGxpbmsgVVJMJyB9LFxuICAgICAgICB7IG5hbWU6ICd2aWRlbycsIGxhYmVsOiAnSW5zZXJ0IFZpZGVvIC0gSW5zZXJ0IGEgdmlkZW8gZnJvbSBhIGZpbGUnIH0sXG4gICAgICAgIHsgbmFtZTogJ3RhYmxlJywgbGFiZWw6ICdJbnNlcnQgVGFibGUgLSBJbnNlcnQgYSAzeDMgcm93cy9jb2xzIHRhYmxlJyB9LFxuICAgICAgICB7IG5hbWU6ICdjbGVhbicsIGxhYmVsOiAnUmVtb3ZlIFN0eWxlcyAtIFJlbW92ZSB0aGUgc3R5bGVzIG9mIHRoZSBzZWxlY3RlZCB0ZXh0JyB9LFxuICAgICAgICB7IG5hbWU6ICdkZWxldGUnLCBsYWJlbDogXCJEZWxldGUgY29udGVudCAtIFBlcm1hbmVudGx5IGRlbGV0ZXMgZWRpdG9yJ3MgY29udGVudHNcIiB9LFxuICAgICAgICB7IG5hbWU6ICd1bmRvJywgbGFiZWw6ICdVbmRvIChDdHJsICsgWikgLSBDYW5jZWxzIHRoZSBwcmV2aW91cyBhY3Rpb24nIH0sXG4gICAgICAgIHsgbmFtZTogJ3JlZG8nLCBsYWJlbDogJ1JlZG8gKEN0cmwgKyBZKSAtIERvIHRoZSBuZXh0IGhpc3RvcnkgYWN0aW9uIGFnYWluJyB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnY291bnRlcnMnLFxuICAgICAgICAgICAgbGFiZWw6ICdDb3VudGVycyAtIENoYXJhY3RlcnMgYW5kIHdvcmRzIGNvdW50ZXJzIChzdHJpcHBlZCBIdG1sKScsXG4gICAgICAgICAgICBvcHRpb25zOiBbXG4gICAgICAgICAgICAgICAgeyBuYW1lOiAnY2hhcmFjdGVycycsIGxhYmVsOiAnQ2hhcmFjdGVycycgfSxcbiAgICAgICAgICAgICAgICB7IG5hbWU6ICd3b3JkcycsIGxhYmVsOiAnV29yZHMnIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgIF07XG4gICAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGV1aURpYWxvZ1NlcnZpY2U6IEV1aURpYWxvZ1NlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgbmdDb250cm9sOiBOZ0NvbnRyb2wsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBsb2FkZXI6IExvYWRlclNlcnZpY2UpIHtcbiAgICAgICAgdGhpcy5uZ0NvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubG9hZGVyLmxvYWQoKS5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgY29tcGxldGU6ICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlYWR5VG9SZW5kZXIgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMubmdDb250cm9sLnN0YXR1c0NoYW5nZXMucGlwZShzdGFydFdpdGgodGhpcy5uZ0NvbnRyb2wuY29udHJvbC5zdGF0dXMpLCB0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoc3RhdHVzKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNJbnZhbGlkID0gc3RhdHVzICE9PSAnVkFMSUQnO1xuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5nZW5lcmF0ZWRJZCA9IHRoaXMuaWQgPyB0aGlzLmlkIDogJ2V1aS1lZGl0b3ItJyArIChNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAxMDAwMDAwKSArIDEpLnRvU3RyaW5nKCk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLnRvb2xiYXJDb25maWcgPSB7fTtcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuY3VzdG9tVG9vbGJhckNvbmZpZyAmJiAhdGhpcy5pc01pbmltYWxUb29sYmFyKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGVmYXVsdFRvb2xiYXJDb25maWcuZm9yRWFjaCgodCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50b29sYmFyQ29uZmlnID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLnRoaXMudG9vbGJhckNvbmZpZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdC5uYW1lXTogeyBsYWJlbDogdC5sYWJlbCwgb3B0aW9uczogdC5vcHRpb25zLCBkaWFsb2dNZXNzYWdlOiB0LmRpYWxvZ01lc3NhZ2UgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmN1c3RvbVRvb2xiYXJDb25maWcgJiYgIXRoaXMuaXNNaW5pbWFsVG9vbGJhcikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmN1c3RvbVRvb2xiYXJDb25maWcuZm9yRWFjaCgodCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGFiZWwgPSAhdC5sYWJlbCA/IHRoaXMuZGVmYXVsdFRvb2xiYXJDb25maWcuZmluZCgoYykgPT4gYy5uYW1lID09PSB0Lm5hbWUpLmxhYmVsIDogdC5sYWJlbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBvcHRpb25zID0gIXQub3B0aW9ucyA/IHRoaXMuZGVmYXVsdFRvb2xiYXJDb25maWcuZmluZCgoYykgPT4gYy5uYW1lID09PSB0Lm5hbWUpLm9wdGlvbnMgOiB0Lm9wdGlvbnM7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkID0gIXQuZGlhbG9nTWVzc2FnZSA/IHRoaXMuZGVmYXVsdFRvb2xiYXJDb25maWcuZmluZCgoYykgPT4gYy5uYW1lID09PSB0Lm5hbWUpLmRpYWxvZ01lc3NhZ2UgOiB0LmRpYWxvZ01lc3NhZ2U7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0Lm5hbWUgPT09ICdjb3VudGVycycpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXQub3B0aW9ucykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zID0gdGhpcy5kZWZhdWx0VG9vbGJhckNvbmZpZy5maW5kKChjKSA9PiBjLm5hbWUgPT09IHQubmFtZSkub3B0aW9ucztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zID0gdC5vcHRpb25zLm1hcCgob3B0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBvcHRpb25MYWJlbCA9IG9wdGlvbi5sYWJlbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gb3B0aW9uLmxhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0aGlzLmRlZmF1bHRUb29sYmFyQ29uZmlnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5maW5kKChkdGMpID0+IGR0Yy5uYW1lID09PSAnY291bnRlcnMnKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAub3B0aW9ucy5maW5kKChvKSA9PiBvLm5hbWUgPT09IG9wdGlvbi5uYW1lKS5sYWJlbDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7IG5hbWU6IG9wdGlvbi5uYW1lLCBsYWJlbDogb3B0aW9uTGFiZWwgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRvb2xiYXJDb25maWcgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4udGhpcy50b29sYmFyQ29uZmlnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0Lm5hbWVdOiB7IGxhYmVsLCBvcHRpb25zLCBkaWFsb2dNZXNzYWdlOiBkIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pc01pbmltYWxUb29sYmFyKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubWluaW1hbFRvb2xiYXJDb25maWcuZm9yRWFjaCgodCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGFiZWwgPSAhdC5sYWJlbCA/IHRoaXMuZGVmYXVsdFRvb2xiYXJDb25maWcuZmluZCgoYykgPT4gYy5uYW1lID09PSB0Lm5hbWUpLmxhYmVsIDogdC5sYWJlbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSAhdC5vcHRpb25zID8gdGhpcy5kZWZhdWx0VG9vbGJhckNvbmZpZy5maW5kKChjKSA9PiBjLm5hbWUgPT09IHQubmFtZSkub3B0aW9ucyA6IHQub3B0aW9ucztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGQgPSAhdC5kaWFsb2dNZXNzYWdlID8gdGhpcy5kZWZhdWx0VG9vbGJhckNvbmZpZy5maW5kKChjKSA9PiBjLm5hbWUgPT09IHQubmFtZSkuZGlhbG9nTWVzc2FnZSA6IHQuZGlhbG9nTWVzc2FnZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50b29sYmFyQ29uZmlnID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLnRoaXMudG9vbGJhckNvbmZpZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdC5uYW1lXTogeyBsYWJlbCwgb3B0aW9ucywgZGlhbG9nTWVzc2FnZTogZCB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGVuYWJsZUVkaXRvck9uRm9jdXMoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzRW5hYmxlZE9uRm9jdXMpIHtcbiAgICAgICAgICAgIHRoaXMuaXNSZWFkT25seSA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGltYWdlVXJsSGFuZGxlcigpOiB2b2lkIHtcbiAgICAgICAgbGV0IGltYWdlVXJsRGlhbG9nRm9ybTogRm9ybUdyb3VwID0gbnVsbDtcbiAgICAgICAgdGhpcy5ldWlEaWFsb2dTZXJ2aWNlLm9wZW5EaWFsb2coXG4gICAgICAgICAgICBuZXcgRXVpRGlhbG9nQ29uZmlnKHtcbiAgICAgICAgICAgICAgICB0aXRsZTogdGhpcy50b29sYmFyQ29uZmlnLmltYWdlVXJsLmRpYWxvZ01lc3NhZ2UsXG4gICAgICAgICAgICAgICAgaXNIYW5kbGVDbG9zZU9uQWNjZXB0OiB0cnVlLFxuICAgICAgICAgICAgICAgIGJvZHlDb21wb25lbnQ6IHtcbiAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50OiBFdWlFZGl0b3JJbWFnZURpYWxvZ0NvbXBvbmVudCxcbiAgICAgICAgICAgICAgICAgICAgY29uZmlnOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkZvcm1WYWx1ZUNoYW5nZTogKGZvcm06IEZvcm1Hcm91cCk6IHZvaWQgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltYWdlVXJsRGlhbG9nRm9ybSA9IGZvcm07XG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgYWNjZXB0OiAoKTogdm9pZCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpbWFnZVVybERpYWxvZ0Zvcm0gJiYgaW1hZ2VVcmxEaWFsb2dGb3JtLnZhbGlkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmV1aURpYWxvZ1NlcnZpY2UuY2xvc2VEaWFsb2coKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmFuZ2UgPSB0aGlzLnF1aWxsLmdldFNlbGVjdGlvbigpIHx8IHsgaW5kZXg6IDAsIGxlbmd0aDogMCB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5xdWlsbC5pbnNlcnRFbWJlZChyYW5nZS5pbmRleCwgJ2ltYWdlJywgaW1hZ2VVcmxEaWFsb2dGb3JtLmdldCgndXJsJykudmFsdWUsICd1c2VyJyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZWRpdG9yVW5kbygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5xdWlsbFsnaGlzdG9yeSddLnVuZG8oKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZWRpdG9yUmVkbygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5xdWlsbFsnaGlzdG9yeSddLnJlZG8oKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZWRpdG9yRGVsZXRlQ29udGVudCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY29uZmlnID0gbmV3IEV1aURpYWxvZ0NvbmZpZyh7XG4gICAgICAgICAgICB0aXRsZTogJ0RlbGV0ZSBjb250ZW50JyxcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiPHA+QXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSBlZGl0b3IncyBjb250ZW50PzwvcD5cIixcbiAgICAgICAgICAgIGhhc0Nsb3NlQnV0dG9uOiBmYWxzZSxcbiAgICAgICAgICAgIGFjY2VwdDogKCk6IHZvaWQgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMucXVpbGwuc2V0Q29udGVudHMobnVsbCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmV1aURpYWxvZ1NlcnZpY2Uub3BlbkRpYWxvZyhjb25maWcpO1xuICAgIH1cblxuICAgIHB1YmxpYyBpbnNlcnRUYWJsZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50YWJsZU1vZHVsZS5pbnNlcnRUYWJsZSgzLCAzKTtcbiAgICB9XG5cbiAgICBnZXQgaGFzSW1hZ2VGZWF0dXJlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5ldWlFZGl0b3JDdXN0b21Ub29sYmFyXG4gICAgICAgICAgICA/IHRoaXMuZXVpRWRpdG9yQ3VzdG9tVG9vbGJhcj8uZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5xbC1pbWFnZScpXG4gICAgICAgICAgICA6IHRoaXMudG9vbGJhckNvbmZpZy5pbWFnZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgX29uRWRpdG9yQ3JlYXRlZChxdWlsbDogdHlwZW9mIFF1aWxsVHlwZSk6IHZvaWQge1xuICAgICAgICB0aGlzLnF1aWxsID0gcXVpbGw7XG5cbiAgICAgICAgaWYgKHRoaXMuaXNFbmFibGVkT25Gb2N1cykge1xuICAgICAgICAgICAgdGhpcy5xdWlsbC5mb2N1cygpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuZm9ybWF0ID09PSAnaHRtbCcpIHtcbiAgICAgICAgICAgIGNvbnN0IGRlbHRhID0gdGhpcy5xdWlsbC5jbGlwYm9hcmQuY29udmVydCh7IGh0bWw6IHRoaXMudmFsdWUgYXMgc3RyaW5nIH0pO1xuICAgICAgICAgICAgdGhpcy5mb3JtQ29udHJvbC5wYXRjaFZhbHVlKGRlbHRhKTtcbiAgICAgICAgICAgIHRoaXMucXVpbGwuc2V0Q29udGVudHMoZGVsdGEpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuZm9ybWF0ID09PSAnanNvbicpIHtcbiAgICAgICAgICAgIHRoaXMuZm9ybUNvbnRyb2wucGF0Y2hWYWx1ZSh0aGlzLnZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMucXVpbGwuc2V0Q29udGVudHMoSlNPTi5wYXJzZSh0aGlzLnZhbHVlKSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXRoaXMuaGFzSW1hZ2VGZWF0dXJlKSB7XG4gICAgICAgICAgICBxdWlsbC5jbGlwYm9hcmQuYWRkTWF0Y2hlcignSU1HJywgKGVsZW1lbnQ6IEVsZW1lbnQsIGRlbHRhOiBEZWx0YSkgPT4gbmV3IERlbHRhKCkuaW5zZXJ0KCcnKSk7XG4gICAgICAgICAgICBxdWlsbC5jbGlwYm9hcmQuYWRkTWF0Y2hlcignUElDVFVSRScsIChlbGVtZW50OiBFbGVtZW50LCBkZWx0YTogRGVsdGEpID0+IG5ldyBEZWx0YSgpLmluc2VydCgnJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5lZGl0b3JDcmVhdGUuZW1pdChxdWlsbCk7XG4gICAgfVxuXG4gICAgcHVibGljIF9vbkVkaXRvckNoYW5nZWQoZXZlbnQ6IEVkaXRvckNoYW5nZVNlbGVjdGlvbiB8IENvbnRlbnRDaGFuZ2UgfCBFdmVudCk6IHZvaWQge1xuICAgICAgICBjb25zb2xlLndhcm4oJ29uRWRpdG9yQ2hhbmdlZCgpIGV2ZW50IGlzIERFUFJFQ0FURUQgcGxlYXNlIHVzZSBjb250ZW50Q2hhbmdlKCkgZXZlbnQgaW5zdGVhZC4nKTtcbiAgICAgICAgdGhpcy5lZGl0b3JDaGFuZ2UuZW1pdChldmVudCBhcyBFZGl0b3JDaGFuZ2VTZWxlY3Rpb24pO1xuICAgIH1cblxuICAgIHB1YmxpYyBfb25Db250ZW50Q2hhbmdlZChldmVudDogQ29udGVudENoYW5nZSk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5mb3JtYXQgPT09ICdodG1sJykge1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IGV2ZW50Lmh0bWw7XG4gICAgICAgICAgICB0aGlzLmNhbGN1bGF0ZUNvdW50ZXJzKHRoaXMudmFsdWUgYXMgc3RyaW5nKTtcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2UodGhpcy5odG1sRW50aXRpZXNEZWNvZGUodGhpcy52YWx1ZSBhcyBzdHJpbmcpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5mb3JtYXQgPT09ICdqc29uJykge1xuICAgICAgICAgICAgaWYgKGV2ZW50LnRleHQgIT09ICdcXG4nKSB7XG4gICAgICAgICAgICAgICAgdGhpcy52YWx1ZSA9IGV2ZW50LmNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgdGhpcy5jYWxjdWxhdGVDb3VudGVycyhldmVudC50ZXh0KTtcbiAgICAgICAgICAgICAgICB0aGlzLmpzb25Ub0h0bWxDb250ZW50ID0gdGhpcy5odG1sRW50aXRpZXNEZWNvZGUoSlNPTi5zdHJpbmdpZnkodGhpcy52YWx1ZSkpO1xuICAgICAgICAgICAgICAgIHRoaXMub25DaGFuZ2UodGhpcy5qc29uVG9IdG1sQ29udGVudCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMudmFsdWUgPSBudWxsO1xuICAgICAgICAgICAgICAgIHRoaXMuY2FsY3VsYXRlQ291bnRlcnMoJycpO1xuICAgICAgICAgICAgICAgIHRoaXMuanNvblRvSHRtbENvbnRlbnQgPSAnJztcbiAgICAgICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKG51bGwpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuY29udGVudENoYW5nZS5lbWl0KGV2ZW50KTsgLy8gTmV3IGVtaXR0ZXJcbiAgICAgICAgdGhpcy5fb25FZGl0b3JDaGFuZ2VkKGV2ZW50KTsgLy8gU3luYyB3aXRoIGVkaXRvciBjaGFuZ2UgZXZlbnQgc2luY2UgaXQncyBkdXBsaWNhdGVkIGV2ZW50XG4gICAgfVxuXG4gICAgcHVibGljIF9vblNlbGVjdGlvbkNoYW5nZWQoZXZlbnQ6IFNlbGVjdGlvbkNoYW5nZSk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZS5lbWl0KGV2ZW50KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgX29uRm9jdXMoZXZlbnQ6IEZvY3VzKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNGb2N1c2VkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5mb2N1cy5lbWl0KGV2ZW50KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgX29uQmx1cihldmVudDogQmx1cik6IHZvaWQge1xuICAgICAgICB0aGlzLmlzRm9jdXNlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLm9uVG91Y2goKTtcbiAgICAgICAgdGhpcy5ibHVyLmVtaXQoZXZlbnQpO1xuICAgIH1cblxuICAgIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICAgIH1cblxuICAgIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMub25Ub3VjaCA9IGZuO1xuICAgIH1cblxuICAgIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlIHx8IG51bGw7XG4gICAgICAgIHRoaXMuanNvblRvSHRtbENvbnRlbnQgPSB0aGlzLnZhbHVlO1xuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMucXVpbGwpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5mb3JtYXQgPT09ICdodG1sJykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBkZWx0YSA9IHRoaXMucXVpbGwuY2xpcGJvYXJkLmNvbnZlcnQoeyBodG1sOiB0aGlzLnZhbHVlIGFzIHN0cmluZyB9KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtQ29udHJvbC5wYXRjaFZhbHVlKGRlbHRhKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5xdWlsbC5zZXRDb250ZW50cyhkZWx0YSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZm9ybWF0ID09PSAnanNvbicpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtQ29udHJvbC5wYXRjaFZhbHVlKHRoaXMudmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAvLyB0aGlzLnF1aWxsLnNldENvbnRlbnRzKEpTT04ucGFyc2UodGhpcy52YWx1ZSkpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHRoaXMuY2FsY3VsYXRlQ291bnRlcnModGhpcy52YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IHRhYmxlTW9kdWxlKCk6IEJldHRlclRhYmxlTW9kdWxlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucXVpbGwuZ2V0TW9kdWxlKCdiZXR0ZXItdGFibGUnKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9uQ2hhbmdlOiBhbnkgPSAoKSA9PiB7fTtcblxuICAgIHByaXZhdGUgb25Ub3VjaDogYW55ID0gKCkgPT4ge307XG5cbiAgICBwcml2YXRlIGh0bWxFbnRpdGllc0RlY29kZShjb250ZW50OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBsZXQgYyA9IGNvbnRlbnQ7XG4gICAgICAgIGlmIChjKSB7XG4gICAgICAgICAgICBjID0gYy5yZXBsYWNlKCcmYW1wOycsICcmJyk7XG4gICAgICAgICAgICBjID0gYy5yZXBsYWNlKCcmbmJzcDsnLCAnICcpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGM7XG4gICAgfVxuXG4gICAgZ2V0IGhhc0NoYXJhY3RlcnNDb3VudGVyKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy50b29sYmFyQ29uZmlnLmNvdW50ZXJzLm9wdGlvbnMuZmluZCgobykgPT4gby5uYW1lID09PSAnY2hhcmFjdGVycycpO1xuICAgIH1cblxuICAgIGdldCBjaGFyYWN0ZXJzQ291bnRlckxhYmVsKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnRvb2xiYXJDb25maWcuY291bnRlcnMub3B0aW9ucy5maW5kKChvKSA9PiBvLm5hbWUgPT09ICdjaGFyYWN0ZXJzJyk/LmxhYmVsO1xuICAgIH1cblxuICAgIGdldCBoYXNXb3Jkc0NvdW50ZXIoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnRvb2xiYXJDb25maWcuY291bnRlcnMub3B0aW9ucy5maW5kKChvKSA9PiBvLm5hbWUgPT09ICd3b3JkcycpO1xuICAgIH1cblxuICAgIGdldCB3b3Jkc0NvdW50ZXJMYWJlbCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy50b29sYmFyQ29uZmlnLmNvdW50ZXJzLm9wdGlvbnMuZmluZCgobykgPT4gby5uYW1lID09PSAnd29yZHMnKT8ubGFiZWw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjYWxjdWxhdGVDb3VudGVycyhjb250ZW50OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgbGV0IHRleHQ6IHN0cmluZztcbiAgICAgICAgY29uc3QgcmVnZXggPSAvXFxzKy87XG4gICAgICAgIGlmICh0aGlzLmZvcm1hdCA9PT0gJ2h0bWwnKSB7XG4gICAgICAgICAgICBpZiAoY29udGVudCAmJiBjb250ZW50Lmxlbmd0aCA+IDAgJiYgdGhpcy5xdWlsbCkge1xuICAgICAgICAgICAgICAgIHRleHQgPSB0aGlzLnN0cmlwSHRtbChjb250ZW50KTtcbiAgICAgICAgICAgICAgICB0aGlzLmNoYXJhY3RlcnNDb3VudCA9IHRleHQubGVuZ3RoO1xuICAgICAgICAgICAgICAgIHRleHQgPSB0aGlzLmNsZWFuSHRtbChjb250ZW50KTtcbiAgICAgICAgICAgICAgICB0aGlzLndvcmRzQ291bnQgPSAhdGV4dCA/IDAgOiB0ZXh0LnRyaW0oKS5zcGxpdChyZWdleCkuZmlsdGVyKHQgPT4gdCAhPT0gJycpLmxlbmd0aDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jaGFyYWN0ZXJzQ291bnQgPSAwO1xuICAgICAgICAgICAgICAgIHRoaXMud29yZHNDb3VudCA9IDA7XG4gICAgICAgICAgICAgICAgdGhpcy5ieXRlc0NvdW50ID0gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmZvcm1hdCA9PT0gJ2pzb24nKSB7XG4gICAgICAgICAgICBpZiAoY29udGVudCAmJiB0aGlzLnF1aWxsKSB7XG4gICAgICAgICAgICAgICAgdGV4dCA9IHRoaXMuc3RyaXBIdG1sKHRoaXMucXVpbGwucm9vdC5pbm5lckhUTUwpO1xuICAgICAgICAgICAgICAgIHRoaXMuY2hhcmFjdGVyc0NvdW50ID0gdGV4dC5sZW5ndGg7XG5cbiAgICAgICAgICAgICAgICB0ZXh0ID0gdGhpcy5jbGVhbkh0bWwodGhpcy5xdWlsbC5yb290LmlubmVySFRNTCk7XG4gICAgICAgICAgICAgICAgdGhpcy53b3Jkc0NvdW50ID0gIXRleHQgPyAwIDogdGV4dC50cmltKCkuc3BsaXQocmVnZXgpLmZpbHRlcih0ID0+IHQgIT09ICcnKS5sZW5ndGg7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuY2hhcmFjdGVyc0NvdW50ID0gMDtcbiAgICAgICAgICAgICAgICB0aGlzLndvcmRzQ291bnQgPSAwO1xuICAgICAgICAgICAgICAgIHRoaXMuYnl0ZXNDb3VudCA9IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNoYXJhY3RlcnNDb3VudENoYW5nZS5lbWl0KHRoaXMuY2hhcmFjdGVyc0NvdW50KTtcblxuICAgICAgICB0aGlzLndvcmRzQ291bnRDaGFuZ2UuZW1pdCh0aGlzLndvcmRzQ291bnQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RyaXBIdG1sKGNvbnRlbnQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHJlZ2V4ID0gLyg8KFtePl0rKT4pL2dtO1xuICAgICAgICBjb25zdCBjb250ZW50VG9SZXBsYWNlID0gY29udGVudC5yZXBsYWNlKHJlZ2V4LCAnJyk7XG4gICAgICAgIHJldHVybiBjb250ZW50VG9SZXBsYWNlLnJlcGxhY2UoL1tcXHUyMDBCLVxcdTIwMERcXHVGRUZGXS9nLCAnJyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjbGVhbkh0bWwoY29udGVudDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgZXhjZXB0VGFncyA9IC88c3Ryb25nPnw8XFwvc3Ryb25nPnw8Yj58PFxcL2I+fDxpPnw8XFwvaT58PGVtPnw8XFwvZW0+fDxzPnw8XFwvcz58PHN0cmlrZT58PFxcL3N0cmlrZT58PHU+fDxcXC91Pi9nbTtcbiAgICAgICAgY29uc3QgcmVnZXggPSAvKDwoW14+XSspPikvZ207XG4gICAgICAgIGNvbnN0IGNvbnRlbnRUb1JlcGxhY2UgPSBjb250ZW50LnJlcGxhY2UoZXhjZXB0VGFncywgJycpLnJlcGxhY2UocmVnZXgsICcgJykucmVwbGFjZSgnICAnLCAnICcpO1xuICAgICAgICByZXR1cm4gY29udGVudFRvUmVwbGFjZS5yZXBsYWNlKC9bXFx1MjAwQi1cXHUyMDBEXFx1RkVGRl0vZywgJycpO1xuICAgIH1cbn1cblxuLyogZXNsaW50LWRpc2FibGUgKi9cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ2V1aUVkaXRvckN1c3RvbVRvb2xiYXInIH0pXG5leHBvcnQgY2xhc3MgRXVpRWRpdG9yQ3VzdG9tVG9vbGJhclRhZ0RpcmVjdGl2ZSB7XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIGVsZW1lbnRDbGFzcyA9ICdldWktZWRpdG9yLWN1c3RvbS10b29sYmFyJztcblxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7fVxufVxuLyogZXNsaW50LWVuYWJsZSAqL1xuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cInJlYWR5VG9SZW5kZXJcIj5cbjxkaXYgW2hpZGRlbl09XCJpc1JlYWRPbmx5XCIgY2xhc3M9XCJldWktZWRpdG9yLXdyYXBwZXJcIiBbc3R5bGUuaGVpZ2h0XT1cImhlaWdodCArICdweCdcIj5cbiAgICA8cXVpbGwtZWRpdG9yXG4gICAgICAgIFtpZF09XCJnZW5lcmF0ZWRJZFwiXG4gICAgICAgIGNsYXNzPVwiZXVpLWVkaXRvciB7eyBzdHlsZUNsYXNzIH19XCJcbiAgICAgICAgW2NsYXNzLmV1aS1lZGl0b3ItLWZvY3VzZWRdPVwiaXNGb2N1c2VkXCJcbiAgICAgICAgW2Zvcm1hdF09XCJmb3JtYXRcIlxuICAgICAgICBbZm9ybWF0c109XCJmb3JtYXRzXCJcbiAgICAgICAgW3Nhbml0aXplXT1cInRydWVcIlxuICAgICAgICBbbW9kdWxlc109XCJtb2R1bGVzXCJcbiAgICAgICAgW3RoZW1lXT1cInRoZW1lXCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgICAgW2N1c3RvbVRvb2xiYXJQb3NpdGlvbl09XCJjdXN0b21Ub29sYmFyUG9zaXRpb25cIlxuICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZm9ybUNvbnRyb2xcIlxuICAgICAgICBbZGVidWddPVwiZGVidWdcIlxuICAgICAgICBbdGFiaW5kZXhdPVwidGFiaW5kZXhcIlxuICAgICAgICBbcHJlc2VydmVXaGl0ZXNwYWNlXT1cInRydWVcIlxuICAgICAgICBbaGFzSW1hZ2VGZWF0dXJlXT1cImhhc0ltYWdlRmVhdHVyZVwiXG4gICAgICAgIChvbkVkaXRvckNyZWF0ZWQpPVwiX29uRWRpdG9yQ3JlYXRlZCgkZXZlbnQpXCJcbiAgICAgICAgKG9uRWRpdG9yQ2hhbmdlZCk9XCJfb25FZGl0b3JDaGFuZ2VkKCRldmVudClcIlxuICAgICAgICAob25Db250ZW50Q2hhbmdlZCk9XCJfb25Db250ZW50Q2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgKG9uU2VsZWN0aW9uQ2hhbmdlZCk9XCJfb25TZWxlY3Rpb25DaGFuZ2VkKCRldmVudClcIlxuICAgICAgICAob25Gb2N1cyk9XCJfb25Gb2N1cygkZXZlbnQpXCJcbiAgICAgICAgKG9uQmx1cik9XCJfb25CbHVyKCRldmVudClcIj5cbiAgICAgICAgPGRpdiAqbmdJZj1cIiFldWlFZGl0b3JDdXN0b21Ub29sYmFyXCIgcXVpbGwtZWRpdG9yLXRvb2xiYXI+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
|
@@ -106,6 +106,9 @@ export class EuiNotificationsV2Component {
|
|
106
106
|
set isShowRefreshButton(value) {
|
107
107
|
this._isShowRefreshButton = coerceBooleanProperty(value);
|
108
108
|
}
|
109
|
+
get isShowUnreadSinceLastCheckCount() {
|
110
|
+
return this.unreadSinceLastCheckCount && this.unreadSinceLastCheckCount > 0;
|
111
|
+
}
|
109
112
|
onHide() {
|
110
113
|
this.isOverlayActive = false;
|
111
114
|
}
|
@@ -172,11 +175,11 @@ export class EuiNotificationsV2Component {
|
|
172
175
|
return unreadNotifications.length;
|
173
176
|
}
|
174
177
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: EuiNotificationsV2Component, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
175
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: EuiNotificationsV2Component, selector: "eui-notifications-v2", inputs: { count: "count", unreadCount: "unreadCount", unreadSinceLastCheckCount: "unreadSinceLastCheckCount", items: "items", unreadLabel: "unreadLabel", totalLabel: "totalLabel", markAsReadLabel: "markAsReadLabel", markAsUnReadLabel: "markAsUnReadLabel", markAllAsReadLabel: "markAllAsReadLabel", settingsLabel: "settingsLabel", refreshLabel: "refreshLabel", viewAllNotificationsLabel: "viewAllNotificationsLabel", headerTitleLabel: "headerTitleLabel", headerHideLabel: "headerHideLabel", headerUnreadSinceLastCheckCountLabel: "headerUnreadSinceLastCheckCountLabel", headerUnreadCountLabel: "headerUnreadCountLabel", noNotificationFoundLabel: "noNotificationFoundLabel", nbUnreadCount: "nbUnreadCount", dateFormat: "dateFormat", noNotificationFoundLink: "noNotificationFoundLink", isShowMarkAsRead: "isShowMarkAsRead", isShowViewAllAction: "isShowViewAllAction", isHidePanelOnViewAllAction: "isHidePanelOnViewAllAction", customUnreadCount: "customUnreadCount", isShowMarkAllAsReadButton: "isShowMarkAllAsReadButton", isShowSettingsButton: "isShowSettingsButton", isShowRefreshButton: "isShowRefreshButton" }, outputs: { refreshClick: "refreshClick", notificationsClick: "notificationsClick", viewAllClick: "viewAllClick", markAllAsReadClick: "markAllAsReadClick", noNotificationFoundClick: "noNotificationFoundClick", itemClick: "itemClick", itemMarkAsReadClick: "itemMarkAsReadClick" }, host: { properties: { "class": "this.string" } }, usesOnChanges: true, ngImport: i0, template: "<eui-icon-svg-button\n class=\"eui-notifications-v2__trigger\"\n iconSvgName=\"eui-notifications\"\n iconSvgSize=\"m\"\n iconSvgFillColor=\"white\"\n (click)=\"onClicked($event)\"\n (keydown.enter)=\"onClicked($event)\"\n (keydown.esc)=\"onHide()\"\n hasFocusBorder>\n <eui-badge *ngIf=\"count\" euiSizeS euiDanger>{{ count }}</eui-badge>\n</eui-icon-svg-button>\n\n<eui-overlay [isActive]=\"isOverlayActive\" class=\"eui-overlay-offset--width-30\">\n <eui-overlay-header>\n <div class=\"eui-notifications-v2__header\">\n <div class=\"eui-notifications-v2__header-title\">\n <div class=\"eui-notifications-v2__header-title-label\">\n {{ headerTitleLabel ? headerTitleLabel : ('eui.MYNOTIFICATIONS' | translate) }}\n </div>\n\n <div class=\"eui-notifications-v2__header-title-actions\">\n <span class=\"hide\">\n <a (click)=\"onHide()\" class=\"eui-u-text-link\" role=\"button\" tabIndex=\"0\">\n {{ headerHideLabel ? headerHideLabel : ('eui.HIDE' | translate) }}\n </a>\n <eui-icon-svg set=\"eui\" icon=\"eui-chevron-forward\" size=\"2xs\"></eui-icon-svg>\n </span>\n </div>\n </div>\n\n <div class=\"eui-notifications-v2__header-subinfos-bar\">\n <strong>{{ unreadSinceLastCheckCount }}</strong>\n <span class=\"eui-u-ml-xs\">{{\n headerUnreadSinceLastCheckCountLabel ? headerUnreadSinceLastCheckCountLabel : ('eui.NEW-COUNT' | translate)\n }}</span>\n\n <span class=\"eui-u-ml-xs\">|</span>\n\n <span class=\"eui-u-ml-xs\">{{ unreadCount }}</span>\n <span class=\"eui-u-ml-xs\">{{ headerUnreadCountLabel ? headerUnreadCountLabel : ('eui.NEW-COUNT' | translate) }}</span>\n </div>\n\n <div class=\"eui-notifications-v2__header-subactions-bar\">\n <a *ngIf=\"items.length > 0\" (click)=\"onMarkAllAsRead($event)\" class=\"eui-u-text-link\" tabIndex=\"0\">\n {{ 'notif.MARK-ALL-READ' | translate }}\n </a>\n <a (click)=\"onRefresh($event)\" class=\"eui-u-text-link eui-u-ml-auto\" tabIndex=\"0\">\n <span class=\"eui-u-flex\">\n <span class=\"eui-icon eui-icon-refresh mr-1\"></span>\n {{ 'notif.SV-REFRESH' | translate }}\n </span>\n </a>\n </div>\n </div>\n </eui-overlay-header>\n\n <eui-overlay-body>\n <ul class=\"eui-notifications-items\" *ngIf=\"items\">\n <eui-notification-item-v2\n *ngFor=\"let item of items; trackBy: trackByFn\"\n [item]=\"item\"\n [dateFormat]=\"dateFormat\"\n [markAsReadLabel]=\"markAsReadLabel\"\n [isShowMarkAsRead]=\"isShowMarkAsRead\"\n (itemClick)=\"onItemClick($event)\"\n (itemMarkAsRead)=\"onItemMarkAsRead($event)\">\n </eui-notification-item-v2>\n </ul>\n </eui-overlay-body>\n\n <eui-overlay-footer>\n <ng-template [ngIf]=\"items?.length > 0\">\n <strong\n ><a (click)=\"onViewAllClick($event)\" class=\"eui-u-text-link\">{{\n viewAllNotificationsLabel ? viewAllNotificationsLabel : ('eui.VIEWALLNOTIFICATIONS' | translate)\n }}</a></strong\n >\n </ng-template>\n <ng-template [ngIf]=\"items?.length === 0\">\n <div class=\"ux-notification__item-content\" *ngIf=\"!noNotificationFoundLink\">\n {{ noNotificationFoundLabel ? noNotificationFoundLabel : ('eui.NONOTIFICATIONFOUND' | translate) }}\n </div>\n <div class=\"ux-notification__item-content\" *ngIf=\"noNotificationFoundLink\">\n <strong\n ><a (click)=\"onNoNotificationFoundClick()\" class=\"eui-u-text-link\">{{\n noNotificationFoundLabel ? noNotificationFoundLabel : ('eui.NONOTIFICATIONFOUND' | translate)\n }}</a></strong\n >\n </div>\n </ng-template>\n </eui-overlay-footer>\n</eui-overlay>\n", styles: [".eui-overlay-header{padding:0}.eui-overlay-footer{background-color:var(--eui-base-color-white)}.eui-notifications-items{margin:0;padding:0}.eui-notifications-v2__trigger .eui-icon-svg svg{transform:scale(1.1)}.eui-notifications-v2__header{border-bottom:1px solid var(--eui-base-color-grey-10);color:var(--eui-base-color-font);cursor:default;flex-direction:column;display:flex;width:100%}.eui-notifications-v2__header-title{display:flex;padding:var(--eui-base-spacing-xs) var(--eui-base-spacing-m)}.eui-notifications-v2__header-title-label{font:normal normal 400 1.125rem/1.5rem var(--eui-base-font-family);font-weight:700}.eui-notifications-v2__header-title-subLabel{margin-top:var(--eui-base-spacing-xs);font:normal normal 400 .875rem/1rem var(--eui-base-font-family)}.eui-notifications-v2__header-title-actions{align-items:center;display:flex;margin-left:auto}.eui-notifications-v2__header-subinfos-bar,.eui-notifications-v2__header-subactions-bar{display:flex;align-items:center;border-bottom:1px solid var(--eui-base-color-grey-10);padding:var(--eui-base-spacing-xs) var(--eui-base-spacing-m)}.eui-notification-item{display:flex;flex-direction:column;overflow-y:auto;margin:0}.eui-notification-item-content{background-color:var(--eui-base-color-info-10);border-bottom:1px solid var(--eui-base-color-grey-15);display:flex;flex-direction:column;min-height:var(--eui-base-spacing-4xl);padding:var(--eui-base-spacing-s) var(--eui-base-spacing-m);cursor:pointer}.eui-notification-item-content:hover{background-color:var(--eui-base-color-grey-5)!important}.eui-notification-item-content-top{align-items:center;display:flex;justify-content:space-between}.eui-notification-item-content-top__date{display:flex;align-items:center}.eui-notification-item-content-top__date-icon{position:relative}.eui-notification-item-content-top__date-icon--rotated{transform:rotate(20deg)}.eui-notification-item-content-top__date-icon-dot{position:absolute;top:0;right:0}.eui-notification-item-content-middle{display:flex;margin:var(--eui-base-spacing-2xs) 0}.eui-notification-item-content-middle__sub-label{margin-top:var(--eui-base-spacing-2xs)}.eui-notification-item-content-bottom{display:flex;justify-content:flex-end}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.EuiOverlayHeaderComponent, selector: "eui-overlay-header" }, { kind: "component", type: i2.EuiOverlayBodyComponent, selector: "eui-overlay-body" }, { kind: "component", type: i2.EuiOverlayFooterComponent, selector: "eui-overlay-footer" }, { kind: "component", type: i2.EuiOverlayComponent, selector: "eui-overlay", inputs: ["isActive", "position", "width", "fixedWidth"], outputs: ["activeState"] }, { kind: "component", type: i3.EuiBadgeComponent, selector: "div[euiBadge], span[euiBadge], eui-badge", inputs: ["e2eAttr", "aria-label"] }, { kind: "component", type: i4.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.EuiIconSvgButtonComponent, selector: "eui-icon-svg-button", inputs: ["iconSvgName", "iconSvgFillColor", "iconSvgSize", "ariaLabel", "hasFocusBorder", "hasNoPadding"], outputs: ["buttonClick"] }, { kind: "component", type: i5.EuiNotificationItemV2Component, selector: "eui-notification-item-v2", inputs: ["markAsReadLabel", "item", "dateFormat", "isShowMarkAsRead"], outputs: ["itemClick", "itemMarkAsRead"] }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }
|
178
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: EuiNotificationsV2Component, selector: "eui-notifications-v2", inputs: { count: "count", unreadCount: "unreadCount", unreadSinceLastCheckCount: "unreadSinceLastCheckCount", items: "items", unreadLabel: "unreadLabel", totalLabel: "totalLabel", markAsReadLabel: "markAsReadLabel", markAsUnReadLabel: "markAsUnReadLabel", markAllAsReadLabel: "markAllAsReadLabel", settingsLabel: "settingsLabel", refreshLabel: "refreshLabel", viewAllNotificationsLabel: "viewAllNotificationsLabel", headerTitleLabel: "headerTitleLabel", headerHideLabel: "headerHideLabel", headerUnreadSinceLastCheckCountLabel: "headerUnreadSinceLastCheckCountLabel", headerUnreadCountLabel: "headerUnreadCountLabel", noNotificationFoundLabel: "noNotificationFoundLabel", nbUnreadCount: "nbUnreadCount", dateFormat: "dateFormat", noNotificationFoundLink: "noNotificationFoundLink", isShowMarkAsRead: "isShowMarkAsRead", isShowViewAllAction: "isShowViewAllAction", isHidePanelOnViewAllAction: "isHidePanelOnViewAllAction", customUnreadCount: "customUnreadCount", isShowMarkAllAsReadButton: "isShowMarkAllAsReadButton", isShowSettingsButton: "isShowSettingsButton", isShowRefreshButton: "isShowRefreshButton" }, outputs: { refreshClick: "refreshClick", notificationsClick: "notificationsClick", viewAllClick: "viewAllClick", markAllAsReadClick: "markAllAsReadClick", noNotificationFoundClick: "noNotificationFoundClick", itemClick: "itemClick", itemMarkAsReadClick: "itemMarkAsReadClick" }, host: { properties: { "class": "this.string" } }, usesOnChanges: true, ngImport: i0, template: "<eui-icon-svg-button\n class=\"eui-notifications-v2__trigger\"\n iconSvgName=\"eui-notifications\"\n iconSvgSize=\"m\"\n iconSvgFillColor=\"white\"\n (click)=\"onClicked($event)\"\n (keydown.enter)=\"onClicked($event)\"\n (keydown.esc)=\"onHide()\"\n hasFocusBorder>\n <eui-badge *ngIf=\"isShowUnreadSinceLastCheckCount\" euiSizeS euiDanger>{{ unreadSinceLastCheckCount }}</eui-badge>\n</eui-icon-svg-button>\n\n<eui-overlay [isActive]=\"isOverlayActive\" class=\"eui-overlay-offset--width-30\">\n <eui-overlay-header>\n <div class=\"eui-notifications-v2__header\">\n <div class=\"eui-notifications-v2__header-title\">\n <div class=\"eui-notifications-v2__header-title-label\">\n {{ headerTitleLabel ? headerTitleLabel : ('eui.MYNOTIFICATIONS' | translate) }}\n </div>\n\n <div class=\"eui-notifications-v2__header-title-actions\">\n <span class=\"hide\">\n <a (click)=\"onHide()\" class=\"eui-u-text-link\" role=\"button\" tabIndex=\"0\">\n {{ headerHideLabel ? headerHideLabel : ('eui.HIDE' | translate) }}\n </a>\n <eui-icon-svg set=\"eui\" icon=\"eui-chevron-forward\" size=\"2xs\"></eui-icon-svg>\n </span>\n </div>\n </div>\n\n <div class=\"eui-notifications-v2__header-subinfos-bar\">\n <strong>{{ unreadSinceLastCheckCount }}</strong>\n <span class=\"eui-u-ml-xs\">{{\n headerUnreadSinceLastCheckCountLabel ? headerUnreadSinceLastCheckCountLabel : ('eui.NEW-COUNT' | translate)\n }}</span>\n\n <span class=\"eui-u-ml-xs\">|</span>\n\n <span class=\"eui-u-ml-xs\">{{ unreadCount }}</span>\n <span class=\"eui-u-ml-xs\">{{ headerUnreadCountLabel ? headerUnreadCountLabel : ('eui.NEW-COUNT' | translate) }}</span>\n </div>\n\n <div class=\"eui-notifications-v2__header-subactions-bar\">\n <a *ngIf=\"items.length > 0\" (click)=\"onMarkAllAsRead($event)\" class=\"eui-u-text-link\" tabIndex=\"0\">\n {{ 'notif.MARK-ALL-READ' | translate }}\n </a>\n <a (click)=\"onRefresh($event)\" class=\"eui-u-text-link eui-u-ml-auto\" tabIndex=\"0\">\n <span class=\"eui-u-flex\">\n <span class=\"eui-icon eui-icon-refresh mr-1\"></span>\n {{ 'notif.SV-REFRESH' | translate }}\n </span>\n </a>\n </div>\n </div>\n </eui-overlay-header>\n\n <eui-overlay-body>\n <ul class=\"eui-notifications-items\" *ngIf=\"items\">\n <eui-notification-item-v2\n *ngFor=\"let item of items; trackBy: trackByFn\"\n [item]=\"item\"\n [dateFormat]=\"dateFormat\"\n [markAsReadLabel]=\"markAsReadLabel\"\n [isShowMarkAsRead]=\"isShowMarkAsRead\"\n (itemClick)=\"onItemClick($event)\"\n (itemMarkAsRead)=\"onItemMarkAsRead($event)\">\n </eui-notification-item-v2>\n </ul>\n </eui-overlay-body>\n\n <eui-overlay-footer>\n <ng-template [ngIf]=\"items?.length > 0\">\n <strong\n ><a (click)=\"onViewAllClick($event)\" class=\"eui-u-text-link\">{{\n viewAllNotificationsLabel ? viewAllNotificationsLabel : ('eui.VIEWALLNOTIFICATIONS' | translate)\n }}</a></strong\n >\n </ng-template>\n <ng-template [ngIf]=\"items?.length === 0\">\n <div class=\"ux-notification__item-content\" *ngIf=\"!noNotificationFoundLink\">\n {{ noNotificationFoundLabel ? noNotificationFoundLabel : ('eui.NONOTIFICATIONFOUND' | translate) }}\n </div>\n <div class=\"ux-notification__item-content\" *ngIf=\"noNotificationFoundLink\">\n <strong\n ><a (click)=\"onNoNotificationFoundClick()\" class=\"eui-u-text-link\">{{\n noNotificationFoundLabel ? noNotificationFoundLabel : ('eui.NONOTIFICATIONFOUND' | translate)\n }}</a></strong\n >\n </div>\n </ng-template>\n </eui-overlay-footer>\n</eui-overlay>\n", styles: [".eui-overlay-header{padding:0}.eui-overlay-footer{background-color:var(--eui-base-color-white)}.eui-notifications-items{margin:0;padding:0}.eui-notifications-v2__trigger .eui-icon-svg svg{transform:scale(1.1)}.eui-notifications-v2__header{border-bottom:1px solid var(--eui-base-color-grey-10);color:var(--eui-base-color-font);cursor:default;flex-direction:column;display:flex;width:100%}.eui-notifications-v2__header-title{display:flex;padding:var(--eui-base-spacing-xs) var(--eui-base-spacing-m)}.eui-notifications-v2__header-title-label{font:normal normal 400 1.125rem/1.5rem var(--eui-base-font-family);font-weight:700}.eui-notifications-v2__header-title-subLabel{margin-top:var(--eui-base-spacing-xs);font:normal normal 400 .875rem/1rem var(--eui-base-font-family)}.eui-notifications-v2__header-title-actions{align-items:center;display:flex;margin-left:auto}.eui-notifications-v2__header-subinfos-bar,.eui-notifications-v2__header-subactions-bar{display:flex;align-items:center;border-bottom:1px solid var(--eui-base-color-grey-10);padding:var(--eui-base-spacing-xs) var(--eui-base-spacing-m)}.eui-notification-item{display:flex;flex-direction:column;overflow-y:auto;margin:0}.eui-notification-item-content{background-color:var(--eui-base-color-info-10);border-bottom:1px solid var(--eui-base-color-grey-15);display:flex;flex-direction:column;min-height:var(--eui-base-spacing-4xl);padding:var(--eui-base-spacing-s) var(--eui-base-spacing-m);cursor:pointer}.eui-notification-item-content:hover{background-color:var(--eui-base-color-grey-5)!important}.eui-notification-item-content-top{align-items:center;display:flex;justify-content:space-between}.eui-notification-item-content-top__date{display:flex;align-items:center}.eui-notification-item-content-top__date-icon{position:relative}.eui-notification-item-content-top__date-icon--rotated{transform:rotate(20deg)}.eui-notification-item-content-top__date-icon-dot{position:absolute;top:0;right:0}.eui-notification-item-content-middle{display:flex;margin:var(--eui-base-spacing-2xs) 0}.eui-notification-item-content-middle__sub-label{margin-top:var(--eui-base-spacing-2xs)}.eui-notification-item-content-bottom{display:flex;justify-content:flex-end}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.EuiOverlayHeaderComponent, selector: "eui-overlay-header" }, { kind: "component", type: i2.EuiOverlayBodyComponent, selector: "eui-overlay-body" }, { kind: "component", type: i2.EuiOverlayFooterComponent, selector: "eui-overlay-footer" }, { kind: "component", type: i2.EuiOverlayComponent, selector: "eui-overlay", inputs: ["isActive", "position", "width", "fixedWidth"], outputs: ["activeState"] }, { kind: "component", type: i3.EuiBadgeComponent, selector: "div[euiBadge], span[euiBadge], eui-badge", inputs: ["e2eAttr", "aria-label"] }, { kind: "component", type: i4.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.EuiIconSvgButtonComponent, selector: "eui-icon-svg-button", inputs: ["iconSvgName", "iconSvgFillColor", "iconSvgSize", "ariaLabel", "hasFocusBorder", "hasNoPadding"], outputs: ["buttonClick"] }, { kind: "component", type: i5.EuiNotificationItemV2Component, selector: "eui-notification-item-v2", inputs: ["markAsReadLabel", "item", "dateFormat", "isShowMarkAsRead"], outputs: ["itemClick", "itemMarkAsRead"] }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }
|
176
179
|
}
|
177
180
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: EuiNotificationsV2Component, decorators: [{
|
178
181
|
type: Component,
|
179
|
-
args: [{ selector: 'eui-notifications-v2', changeDetection: ChangeDetectionStrategy.Default, encapsulation: ViewEncapsulation.None, template: "<eui-icon-svg-button\n class=\"eui-notifications-v2__trigger\"\n iconSvgName=\"eui-notifications\"\n iconSvgSize=\"m\"\n iconSvgFillColor=\"white\"\n (click)=\"onClicked($event)\"\n (keydown.enter)=\"onClicked($event)\"\n (keydown.esc)=\"onHide()\"\n hasFocusBorder>\n <eui-badge *ngIf=\"
|
182
|
+
args: [{ selector: 'eui-notifications-v2', changeDetection: ChangeDetectionStrategy.Default, encapsulation: ViewEncapsulation.None, template: "<eui-icon-svg-button\n class=\"eui-notifications-v2__trigger\"\n iconSvgName=\"eui-notifications\"\n iconSvgSize=\"m\"\n iconSvgFillColor=\"white\"\n (click)=\"onClicked($event)\"\n (keydown.enter)=\"onClicked($event)\"\n (keydown.esc)=\"onHide()\"\n hasFocusBorder>\n <eui-badge *ngIf=\"isShowUnreadSinceLastCheckCount\" euiSizeS euiDanger>{{ unreadSinceLastCheckCount }}</eui-badge>\n</eui-icon-svg-button>\n\n<eui-overlay [isActive]=\"isOverlayActive\" class=\"eui-overlay-offset--width-30\">\n <eui-overlay-header>\n <div class=\"eui-notifications-v2__header\">\n <div class=\"eui-notifications-v2__header-title\">\n <div class=\"eui-notifications-v2__header-title-label\">\n {{ headerTitleLabel ? headerTitleLabel : ('eui.MYNOTIFICATIONS' | translate) }}\n </div>\n\n <div class=\"eui-notifications-v2__header-title-actions\">\n <span class=\"hide\">\n <a (click)=\"onHide()\" class=\"eui-u-text-link\" role=\"button\" tabIndex=\"0\">\n {{ headerHideLabel ? headerHideLabel : ('eui.HIDE' | translate) }}\n </a>\n <eui-icon-svg set=\"eui\" icon=\"eui-chevron-forward\" size=\"2xs\"></eui-icon-svg>\n </span>\n </div>\n </div>\n\n <div class=\"eui-notifications-v2__header-subinfos-bar\">\n <strong>{{ unreadSinceLastCheckCount }}</strong>\n <span class=\"eui-u-ml-xs\">{{\n headerUnreadSinceLastCheckCountLabel ? headerUnreadSinceLastCheckCountLabel : ('eui.NEW-COUNT' | translate)\n }}</span>\n\n <span class=\"eui-u-ml-xs\">|</span>\n\n <span class=\"eui-u-ml-xs\">{{ unreadCount }}</span>\n <span class=\"eui-u-ml-xs\">{{ headerUnreadCountLabel ? headerUnreadCountLabel : ('eui.NEW-COUNT' | translate) }}</span>\n </div>\n\n <div class=\"eui-notifications-v2__header-subactions-bar\">\n <a *ngIf=\"items.length > 0\" (click)=\"onMarkAllAsRead($event)\" class=\"eui-u-text-link\" tabIndex=\"0\">\n {{ 'notif.MARK-ALL-READ' | translate }}\n </a>\n <a (click)=\"onRefresh($event)\" class=\"eui-u-text-link eui-u-ml-auto\" tabIndex=\"0\">\n <span class=\"eui-u-flex\">\n <span class=\"eui-icon eui-icon-refresh mr-1\"></span>\n {{ 'notif.SV-REFRESH' | translate }}\n </span>\n </a>\n </div>\n </div>\n </eui-overlay-header>\n\n <eui-overlay-body>\n <ul class=\"eui-notifications-items\" *ngIf=\"items\">\n <eui-notification-item-v2\n *ngFor=\"let item of items; trackBy: trackByFn\"\n [item]=\"item\"\n [dateFormat]=\"dateFormat\"\n [markAsReadLabel]=\"markAsReadLabel\"\n [isShowMarkAsRead]=\"isShowMarkAsRead\"\n (itemClick)=\"onItemClick($event)\"\n (itemMarkAsRead)=\"onItemMarkAsRead($event)\">\n </eui-notification-item-v2>\n </ul>\n </eui-overlay-body>\n\n <eui-overlay-footer>\n <ng-template [ngIf]=\"items?.length > 0\">\n <strong\n ><a (click)=\"onViewAllClick($event)\" class=\"eui-u-text-link\">{{\n viewAllNotificationsLabel ? viewAllNotificationsLabel : ('eui.VIEWALLNOTIFICATIONS' | translate)\n }}</a></strong\n >\n </ng-template>\n <ng-template [ngIf]=\"items?.length === 0\">\n <div class=\"ux-notification__item-content\" *ngIf=\"!noNotificationFoundLink\">\n {{ noNotificationFoundLabel ? noNotificationFoundLabel : ('eui.NONOTIFICATIONFOUND' | translate) }}\n </div>\n <div class=\"ux-notification__item-content\" *ngIf=\"noNotificationFoundLink\">\n <strong\n ><a (click)=\"onNoNotificationFoundClick()\" class=\"eui-u-text-link\">{{\n noNotificationFoundLabel ? noNotificationFoundLabel : ('eui.NONOTIFICATIONFOUND' | translate)\n }}</a></strong\n >\n </div>\n </ng-template>\n </eui-overlay-footer>\n</eui-overlay>\n", styles: [".eui-overlay-header{padding:0}.eui-overlay-footer{background-color:var(--eui-base-color-white)}.eui-notifications-items{margin:0;padding:0}.eui-notifications-v2__trigger .eui-icon-svg svg{transform:scale(1.1)}.eui-notifications-v2__header{border-bottom:1px solid var(--eui-base-color-grey-10);color:var(--eui-base-color-font);cursor:default;flex-direction:column;display:flex;width:100%}.eui-notifications-v2__header-title{display:flex;padding:var(--eui-base-spacing-xs) var(--eui-base-spacing-m)}.eui-notifications-v2__header-title-label{font:normal normal 400 1.125rem/1.5rem var(--eui-base-font-family);font-weight:700}.eui-notifications-v2__header-title-subLabel{margin-top:var(--eui-base-spacing-xs);font:normal normal 400 .875rem/1rem var(--eui-base-font-family)}.eui-notifications-v2__header-title-actions{align-items:center;display:flex;margin-left:auto}.eui-notifications-v2__header-subinfos-bar,.eui-notifications-v2__header-subactions-bar{display:flex;align-items:center;border-bottom:1px solid var(--eui-base-color-grey-10);padding:var(--eui-base-spacing-xs) var(--eui-base-spacing-m)}.eui-notification-item{display:flex;flex-direction:column;overflow-y:auto;margin:0}.eui-notification-item-content{background-color:var(--eui-base-color-info-10);border-bottom:1px solid var(--eui-base-color-grey-15);display:flex;flex-direction:column;min-height:var(--eui-base-spacing-4xl);padding:var(--eui-base-spacing-s) var(--eui-base-spacing-m);cursor:pointer}.eui-notification-item-content:hover{background-color:var(--eui-base-color-grey-5)!important}.eui-notification-item-content-top{align-items:center;display:flex;justify-content:space-between}.eui-notification-item-content-top__date{display:flex;align-items:center}.eui-notification-item-content-top__date-icon{position:relative}.eui-notification-item-content-top__date-icon--rotated{transform:rotate(20deg)}.eui-notification-item-content-top__date-icon-dot{position:absolute;top:0;right:0}.eui-notification-item-content-middle{display:flex;margin:var(--eui-base-spacing-2xs) 0}.eui-notification-item-content-middle__sub-label{margin-top:var(--eui-base-spacing-2xs)}.eui-notification-item-content-bottom{display:flex;justify-content:flex-end}\n"] }]
|
180
183
|
}], propDecorators: { refreshClick: [{
|
181
184
|
type: Output
|
182
185
|
}], notificationsClick: [{
|
@@ -249,4 +252,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImpor
|
|
249
252
|
}], isShowRefreshButton: [{
|
250
253
|
type: Input
|
251
254
|
}] } });
|
252
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLW5vdGlmaWNhdGlvbnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGF5b3V0L2V1aS1ub3RpZmljYXRpb25zLXYyL2V1aS1ub3RpZmljYXRpb25zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL2xheW91dC9ldWktbm90aWZpY2F0aW9ucy12Mi9ldWktbm90aWZpY2F0aW9ucy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osV0FBVyxFQUNYLEtBQUssRUFHTCxNQUFNLEVBRU4saUJBQWlCLEdBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQWdCLE1BQU0sV0FBVyxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxxQkFBcUIsRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7Ozs7QUFTNUUsTUFBTSxPQUFPLDJCQUEyQjtJQVB4QztRQVFjLGlCQUFZLEdBQXdCLElBQUksWUFBWSxFQUFTLENBQUM7UUFDOUQsdUJBQWtCLEdBQTZDLElBQUksWUFBWSxFQUE4QixDQUFDO1FBQzlHLGlCQUFZLEdBQXdCLElBQUksWUFBWSxFQUFTLENBQUM7UUFDeEUsd0VBQXdFO1FBQzlELHVCQUFrQixHQUE2QixJQUFJLFlBQVksRUFBYyxDQUFDO1FBQzlFLDZCQUF3QixHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ3hFLGNBQVMsR0FBK0IsSUFBSSxZQUFZLEVBQWdCLENBQUM7UUFDekUsd0JBQW1CLEdBQStCLElBQUksWUFBWSxFQUFnQixDQUFDO1FBRTdGLG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLDRCQUF1QixHQUFHLEVBQUUsQ0FBQztRQUM3Qix3QkFBbUIsR0FBRyxFQUFFLENBQUM7UUFDekIsd0JBQW1CLEdBQUcsRUFBRSxDQUFDO1FBQ3pCLFVBQUssR0FBUyxJQUFJLElB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QUR0QixLQUFLO2dCQVNGLDBCQUEwQjtzQkFEN0IsS0FBSztnQkFhRixpQkFBaUI7c0JBRHBCLEtBQUs7Z0JBU0YseUJBQXlCO3NCQUQ1QixLQUFLO2dCQVNGLG9CQUFvQjtzQkFEdkIsS0FBSztnQkFTRixtQkFBbUI7c0JBRHRCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjb25zdW1lRXZlbnQsIFV4TGlua0xlZ2FjeSB9IGZyb20gJ0BldWkvY29yZSc7XG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHksIEJvb2xlYW5JbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZXVpLW5vdGlmaWNhdGlvbnMtdjInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9ldWktbm90aWZpY2F0aW9ucy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vc3R5bGVzL19pbmRleC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5EZWZhdWx0LFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIEV1aU5vdGlmaWNhdGlvbnNWMkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgICBAT3V0cHV0KCkgcmVmcmVzaENsaWNrOiBFdmVudEVtaXR0ZXI8RXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcbiAgICBAT3V0cHV0KCkgbm90aWZpY2F0aW9uc0NsaWNrOiBFdmVudEVtaXR0ZXI8S2V5Ym9hcmRFdmVudCB8IE1vdXNlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxLZXlib2FyZEV2ZW50IHwgTW91c2VFdmVudD4oKTtcbiAgICBAT3V0cHV0KCkgdmlld0FsbENsaWNrOiBFdmVudEVtaXR0ZXI8RXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcbiAgICAvLyBAT3V0cHV0KCkgc2V0dGluZ3NDbGljazogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgbWFya0FsbEFzUmVhZENsaWNrOiBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+KCk7XG4gICAgQE91dHB1dCgpIG5vTm90aWZpY2F0aW9uRm91bmRDbGljazogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICAgIEBPdXRwdXQoKSBpdGVtQ2xpY2s6IEV2ZW50RW1pdHRlcjxVeExpbmtMZWdhY3k+ID0gbmV3IEV2ZW50RW1pdHRlcjxVeExpbmtMZWdhY3k+KCk7XG4gICAgQE91dHB1dCgpIGl0ZW1NYXJrQXNSZWFkQ2xpY2s6IEV2ZW50RW1pdHRlcjxVeExpbmtMZWdhY3k+ID0gbmV3IEV2ZW50RW1pdHRlcjxVeExpbmtMZWdhY3k+KCk7XG5cbiAgICBpc092ZXJsYXlBY3RpdmUgPSBmYWxzZTtcbiAgICBjdXJyZW50RGF5Tm90aWZpY2F0aW9ucyA9IFtdO1xuICAgIG9sZGVzdE5vdGlmaWNhdGlvbnMgPSBbXTtcbiAgICB1bnJlYWROb3RpZmljYXRpb25zID0gW107XG4gICAgdG9kYXk6IERhdGUgPSBuZXcgRGF0ZSgpO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIHN0cmluZyA9ICdldWktbm90aWZpY2F0aW9ucy12Mic7XG5cbiAgICBASW5wdXQoKSBjb3VudDogbnVtYmVyID0gbnVsbDtcbiAgICBASW5wdXQoKSB1bnJlYWRDb3VudDogbnVtYmVyID0gbnVsbDtcbiAgICBASW5wdXQoKSB1bnJlYWRTaW5jZUxhc3RDaGVja0NvdW50OiBudW1iZXIgPSBudWxsO1xuICAgIEBJbnB1dCgpIGl0ZW1zID0gW107XG4gICAgQElucHV0KCkgdW5yZWFkTGFiZWw6IHN0cmluZyA9IG51bGw7XG4gICAgQElucHV0KCkgdG90YWxMYWJlbDogc3RyaW5nID0gbnVsbDtcbiAgICBASW5wdXQoKSBtYXJrQXNSZWFkTGFiZWw6IHN0cmluZyA9IG51bGw7XG4gICAgQElucHV0KCkgbWFya0FzVW5SZWFkTGFiZWw6IHN0cmluZyA9IG51bGw7XG4gICAgQElucHV0KCkgbWFya0FsbEFzUmVhZExhYmVsOiBzdHJpbmcgPSBudWxsO1xuICAgIEBJbnB1dCgpIHNldHRpbmdzTGFiZWw6IHN0cmluZyA9IG51bGw7XG4gICAgQElucHV0KCkgcmVmcmVzaExhYmVsOiBzdHJpbmcgPSBudWxsO1xuICAgIEBJbnB1dCgpIHZpZXdBbGxOb3RpZmljYXRpb25zTGFiZWw6IHN0cmluZyA9IG51bGw7XG4gICAgQElucHV0KCkgaGVhZGVyVGl0bGVMYWJlbDogc3RyaW5nID0gbnVsbDtcbiAgICBASW5wdXQoKSBoZWFkZXJIaWRlTGFiZWw6IHN0cmluZyA9IG51bGw7XG4gICAgQElucHV0KCkgaGVhZGVyVW5yZWFkU2luY2VMYXN0Q2hlY2tDb3VudExhYmVsOiBzdHJpbmcgPSBudWxsO1xuICAgIEBJbnB1dCgpIGhlYWRlclVucmVhZENvdW50TGFiZWw6IHN0cmluZyA9IG51bGw7XG4gICAgQElucHV0KCkgbm9Ob3RpZmljYXRpb25Gb3VuZExhYmVsOiBzdHJpbmcgPSBudWxsO1xuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIG5iVW5yZWFkQ291bnQgaXMgREVQUkVDQVRFRCwgaXQgaXMgbm90IHVzZWQgaW4gdGhlIHZpZXcuIFRvIGJlIHJlbW92ZWQgaW4gZVVJIDE4LlxuICAgICAqL1xuICAgIEBJbnB1dCgpIG5iVW5yZWFkQ291bnQ6IG51bWJlciA9IG51bGw7XG4gICAgQElucHV0KCkgZGF0ZUZvcm1hdCA9ICdkZC9NTS9ZWVlZJztcbiAgICBASW5wdXQoKVxuICAgIGdldCBub05vdGlmaWNhdGlvbkZvdW5kTGluaygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX25vTm90aWZpY2F0aW9uRm91bmRMaW5rO1xuICAgIH1cbiAgICBzZXQgbm9Ob3RpZmljYXRpb25Gb3VuZExpbmsodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9ub05vdGlmaWNhdGlvbkZvdW5kTGluayA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIHByaXZhdGUgX25vTm90aWZpY2F0aW9uRm91bmRMaW5rID0gZmFsc2U7XG4gICAgQElucHV0KClcbiAgICBnZXQgaXNTaG93TWFya0FzUmVhZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzU2hvd01hcmtBc1JlYWQ7XG4gICAgfVxuICAgIHNldCBpc1Nob3dNYXJrQXNSZWFkKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5faXNTaG93TWFya0FzUmVhZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIHByaXZhdGUgX2lzU2hvd01hcmtBc1JlYWQgPSB0cnVlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGlzU2hvd1ZpZXdBbGxBY3Rpb24oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc1Nob3dWaWV3QWxsQWN0aW9uO1xuICAgIH1cbiAgICBzZXQgaXNTaG93Vmlld0FsbEFjdGlvbih2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2lzU2hvd1ZpZXdBbGxBY3Rpb24gPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwcml2YXRlIF9pc1Nob3dWaWV3QWxsQWN0aW9uID0gdHJ1ZTtcbiAgICBASW5wdXQoKVxuICAgIGdldCBpc0hpZGVQYW5lbE9uVmlld0FsbEFjdGlvbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzSGlkZVBhbmVsT25WaWV3QWxsQWN0aW9uO1xuICAgIH1cbiAgICBzZXQgaXNIaWRlUGFuZWxPblZpZXdBbGxBY3Rpb24odmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9pc0hpZGVQYW5lbE9uVmlld0FsbEFjdGlvbiA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIHByaXZhdGUgX2lzSGlkZVBhbmVsT25WaWV3QWxsQWN0aW9uID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIGN1c3RvbVVucmVhZENvdW50IGlzIERFUFJFQ0FURUQsIGl0IGlzIG5vdCB1c2VkIGluIHRoZSB2aWV3LiBUbyBiZSByZW1vdmVkIGluIGVVSSAxOC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGdldCBjdXN0b21VbnJlYWRDb3VudCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2N1c3RvbVVucmVhZENvdW50O1xuICAgIH1cbiAgICBzZXQgY3VzdG9tVW5yZWFkQ291bnQodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9jdXN0b21VbnJlYWRDb3VudCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIHByaXZhdGUgX2N1c3RvbVVucmVhZENvdW50ID0gZmFsc2U7XG4gICAgQElucHV0KClcbiAgICBnZXQgaXNTaG93TWFya0FsbEFzUmVhZEJ1dHRvbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzU2hvd01hcmtBbGxBc1JlYWRCdXR0b247XG4gICAgfVxuICAgIHNldCBpc1Nob3dNYXJrQWxsQXNSZWFkQnV0dG9uKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5faXNTaG93TWFya0FsbEFzUmVhZEJ1dHRvbiA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIHByaXZhdGUgX2lzU2hvd01hcmtBbGxBc1JlYWRCdXR0b24gPSB0cnVlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGlzU2hvd1NldHRpbmdzQnV0dG9uKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNTaG93U2V0dGluZ3NCdXR0b247XG4gICAgfVxuICAgIHNldCBpc1Nob3dTZXR0aW5nc0J1dHRvbih2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2lzU2hvd1NldHRpbmdzQnV0dG9uID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfaXNTaG93U2V0dGluZ3NCdXR0b24gPSB0cnVlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGlzU2hvd1JlZnJlc2hCdXR0b24oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc1Nob3dSZWZyZXNoQnV0dG9uO1xuICAgIH1cbiAgICBzZXQgaXNTaG93UmVmcmVzaEJ1dHRvbih2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2lzU2hvd1JlZnJlc2hCdXR0b24gPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwcml2YXRlIF9pc1Nob3dSZWZyZXNoQnV0dG9uID0gdHJ1ZTtcblxuICAgIG9uSGlkZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc092ZXJsYXlBY3RpdmUgPSBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyBUT0RPOiBmaW5kIHRoZSBjb3JyZWN0IHR5cGUgb3IgdHVybiBpbnRvIGEgZ2VuZXJpYywgaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnL2RvY3MvaGFuZGJvb2svMi9nZW5lcmljcy5odG1sXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBvbkNsaWNrZWQoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMubm90aWZpY2F0aW9uc0NsaWNrLmVtaXQoKTtcbiAgICAgICAgY29uc3VtZUV2ZW50KGV2ZW50KTtcbiAgICAgICAgdGhpcy5pc092ZXJsYXlBY3RpdmUgPSAhdGhpcy5pc092ZXJsYXlBY3RpdmU7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoY2hhbmdlcy5jdXN0b21VbnJlYWRDb3VudCkge1xuICAgICAgICAgICAgY29uc3QgY3VzdG9tVW5yZWFkQ291bnQgPSBjaGFuZ2VzLmN1c3RvbVVucmVhZENvdW50LmN1cnJlbnRWYWx1ZTtcbiAgICAgICAgICAgIGlmICghY3VzdG9tVW5yZWFkQ291bnQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm5iVW5yZWFkQ291bnQgPSB0aGlzLl9nZXRVbnJlYWRDb3VudCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5jdXN0b21VbnJlYWRDb3VudCkge1xuICAgICAgICAgICAgdGhpcy5uYlVucmVhZENvdW50ID0gdGhpcy5fZ2V0VW5yZWFkQ291bnQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uUmVmcmVzaChldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZWZyZXNoQ2xpY2suZW1pdCgpO1xuICAgICAgICBjb25zdW1lRXZlbnQoZXZlbnQpO1xuICAgIH1cblxuICAgIC8vIFRPRE86IGZpbmQgdGhlIGNvcnJlY3QgdHlwZSBvciB0dXJuIGludG8gYSBnZW5lcmljLCBodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmcvZG9jcy9oYW5kYm9vay8yL2dlbmVyaWNzLmh0bWxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIG9uSXRlbUNsaWNrKGxpbms6IFV4TGlua0xlZ2FjeSk6IHZvaWQge1xuICAgICAgICB0aGlzLml0ZW1DbGljay5lbWl0KGxpbmspO1xuICAgICAgICBjb25zdW1lRXZlbnQoZXZlbnQpO1xuICAgIH1cblxuICAgIG9uVmlld0FsbENsaWNrKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLnZpZXdBbGxDbGljay5lbWl0KCk7XG4gICAgICAgIGlmICghdGhpcy5pc0hpZGVQYW5lbE9uVmlld0FsbEFjdGlvbikge1xuICAgICAgICAgICAgY29uc3VtZUV2ZW50KGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uTm9Ob3RpZmljYXRpb25Gb3VuZENsaWNrKCk6IHZvaWQge1xuICAgICAgICB0aGlzLm5vTm90aWZpY2F0aW9uRm91bmRDbGljay5lbWl0KCk7XG4gICAgfVxuXG4gICAgLy8gVE9ETzogZmluZCB0aGUgY29ycmVjdCB0eXBlIG9yIHR1cm4gaW50byBhIGdlbmVyaWMsIGh0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZy9kb2NzL2hhbmRib29rLzIvZ2VuZXJpY3MuaHRtbFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgb25JdGVtTWFya0FzUmVhZChsaW5rOiBVeExpbmtMZWdhY3kpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pdGVtTWFya0FzUmVhZENsaWNrLmVtaXQobGluayk7XG4gICAgfVxuXG4gICAgb25NYXJrQWxsQXNSZWFkKGU6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tYXJrQWxsQXNSZWFkQ2xpY2suZW1pdChlKTtcbiAgICAgICAgY29uc3VtZUV2ZW50KGUpO1xuICAgIH1cblxuICAgIC8vIFRPRE86IGZpbmQgdGhlIGNvcnJlY3QgdHlwZSBvciB0dXJuIGludG8gYSBnZW5lcmljLCBodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmcvZG9jcy9oYW5kYm9vay8yL2dlbmVyaWNzLmh0bWxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIHRyYWNrQnlGbihpbmRleDogbnVtYmVyLCBpdGVtOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgcmV0dXJuIGl0ZW0uaWQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZ2V0VW5yZWFkQ291bnQoKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgdW5yZWFkTm90aWZpY2F0aW9ucyA9IHRoaXMuaXRlbXMuZmlsdGVyKChsaW5rKSA9PiB7XG4gICAgICAgICAgICBpZiAobGluay5tZXRhZGF0YSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBsaW5rLm1ldGFkYXRhLnJlYWQgPT09IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHVucmVhZE5vdGlmaWNhdGlvbnMubGVuZ3RoO1xuICAgIH1cbn1cbiIsIjxldWktaWNvbi1zdmctYnV0dG9uXG4gICAgY2xhc3M9XCJldWktbm90aWZpY2F0aW9ucy12Ml9fdHJpZ2dlclwiXG4gICAgaWNvblN2Z05hbWU9XCJldWktbm90aWZpY2F0aW9uc1wiXG4gICAgaWNvblN2Z1NpemU9XCJtXCJcbiAgICBpY29uU3ZnRmlsbENvbG9yPVwid2hpdGVcIlxuICAgIChjbGljayk9XCJvbkNsaWNrZWQoJGV2ZW50KVwiXG4gICAgKGtleWRvd24uZW50ZXIpPVwib25DbGlja2VkKCRldmVudClcIlxuICAgIChrZXlkb3duLmVzYyk9XCJvbkhpZGUoKVwiXG4gICAgaGFzRm9jdXNCb3JkZXI+XG4gICAgPGV1aS1iYWRnZSAqbmdJZj1cImNvdW50XCIgZXVpU2l6ZVMgZXVpRGFuZ2VyPnt7IGNvdW50IH19PC9ldWktYmFkZ2U+XG48L2V1aS1pY29uLXN2Zy1idXR0b24+XG5cbjxldWktb3ZlcmxheSBbaXNBY3RpdmVdPVwiaXNPdmVybGF5QWN0aXZlXCIgY2xhc3M9XCJldWktb3ZlcmxheS1vZmZzZXQtLXdpZHRoLTMwXCI+XG4gICAgPGV1aS1vdmVybGF5LWhlYWRlcj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImV1aS1ub3RpZmljYXRpb25zLXYyX19oZWFkZXJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJldWktbm90aWZpY2F0aW9ucy12Ml9faGVhZGVyLXRpdGxlXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV1aS1ub3RpZmljYXRpb25zLXYyX19oZWFkZXItdGl0bGUtbGFiZWxcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgaGVhZGVyVGl0bGVMYWJlbCA/IGhlYWRlclRpdGxlTGFiZWwgOiAoJ2V1aS5NWU5PVElGSUNBVElPTlMnIHwgdHJhbnNsYXRlKSB9fVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV1aS1ub3RpZmljYXRpb25zLXYyX19oZWFkZXItdGl0bGUtYWN0aW9uc1wiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImhpZGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxhIChjbGljayk9XCJvbkhpZGUoKVwiIGNsYXNzPVwiZXVpLXUtdGV4dC1saW5rXCIgcm9sZT1cImJ1dHRvblwiIHRhYkluZGV4PVwiMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGhlYWRlckhpZGVMYWJlbCA/IGhlYWRlckhpZGVMYWJlbCA6ICgnZXVpLkhJREUnIHwgdHJhbnNsYXRlKSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGV1aS1pY29uLXN2ZyBzZXQ9XCJldWlcIiBpY29uPVwiZXVpLWNoZXZyb24tZm9yd2FyZFwiIHNpemU9XCIyeHNcIj48L2V1aS1pY29uLXN2Zz5cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJldWktbm90aWZpY2F0aW9ucy12Ml9faGVhZGVyLXN1YmluZm9zLWJhclwiPlxuICAgICAgICAgICAgICAgIDxzdHJvbmc+e3sgdW5yZWFkU2luY2VMYXN0Q2hlY2tDb3VudCB9fTwvc3Ryb25nPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZXVpLXUtbWwteHNcIj57e1xuICAgICAgICAgICAgICAgICAgICBoZWFkZXJVbnJlYWRTaW5jZUxhc3RDaGVja0NvdW50TGFiZWwgPyBoZWFkZXJVbnJlYWRTaW5jZUxhc3RDaGVja0NvdW50TGFiZWwgOiAoJ2V1aS5ORVctQ09VTlQnIHwgdHJhbnNsYXRlKVxuICAgICAgICAgICAgICAgIH19PC9zcGFuPlxuXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJldWktdS1tbC14c1wiPnw8L3NwYW4+XG5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImV1aS11LW1sLXhzXCI+e3sgdW5yZWFkQ291bnQgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJldWktdS1tbC14c1wiPnt7IGhlYWRlclVucmVhZENvdW50TGFiZWwgPyBoZWFkZXJVbnJlYWRDb3VudExhYmVsIDogKCdldWkuTkVXLUNPVU5UJyB8IHRyYW5zbGF0ZSkgfX08L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV1aS1ub3RpZmljYXRpb25zLXYyX19oZWFkZXItc3ViYWN0aW9ucy1iYXJcIj5cbiAgICAgICAgICAgICAgICA8YSAqbmdJZj1cIml0ZW1zLmxlbmd0aCA+IDBcIiAoY2xpY2spPVwib25NYXJrQWxsQXNSZWFkKCRldmVudClcIiBjbGFzcz1cImV1aS11LXRleHQtbGlua1wiIHRhYkluZGV4PVwiMFwiPlxuICAgICAgICAgICAgICAgICAgICB7eyAnbm90aWYuTUFSSy1BTEwtUkVBRCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgPGEgKGNsaWNrKT1cIm9uUmVmcmVzaCgkZXZlbnQpXCIgY2xhc3M9XCJldWktdS10ZXh0LWxpbmsgZXVpLXUtbWwtYXV0b1wiIHRhYkluZGV4PVwiMFwiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImV1aS11LWZsZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZXVpLWljb24gZXVpLWljb24tcmVmcmVzaCBtci0xXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgJ25vdGlmLlNWLVJFRlJFU0gnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9ldWktb3ZlcmxheS1oZWFkZXI+XG5cbiAgICA8ZXVpLW92ZXJsYXktYm9keT5cbiAgICAgICAgPHVsIGNsYXNzPVwiZXVpLW5vdGlmaWNhdGlvbnMtaXRlbXNcIiAqbmdJZj1cIml0ZW1zXCI+XG4gICAgICAgICAgICA8ZXVpLW5vdGlmaWNhdGlvbi1pdGVtLXYyXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXM7IHRyYWNrQnk6IHRyYWNrQnlGblwiXG4gICAgICAgICAgICAgICAgW2l0ZW1dPVwiaXRlbVwiXG4gICAgICAgICAgICAgICAgW2RhdGVGb3JtYXRdPVwiZGF0ZUZvcm1hdFwiXG4gICAgICAgICAgICAgICAgW21hcmtBc1JlYWRMYWJlbF09XCJtYXJrQXNSZWFkTGFiZWxcIlxuICAgICAgICAgICAgICAgIFtpc1Nob3dNYXJrQXNSZWFkXT1cImlzU2hvd01hcmtBc1JlYWRcIlxuICAgICAgICAgICAgICAgIChpdGVtQ2xpY2spPVwib25JdGVtQ2xpY2soJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKGl0ZW1NYXJrQXNSZWFkKT1cIm9uSXRlbU1hcmtBc1JlYWQoJGV2ZW50KVwiPlxuICAgICAgICAgICAgPC9ldWktbm90aWZpY2F0aW9uLWl0ZW0tdjI+XG4gICAgICAgIDwvdWw+XG4gICAgPC9ldWktb3ZlcmxheS1ib2R5PlxuXG4gICAgPGV1aS1vdmVybGF5LWZvb3Rlcj5cbiAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cIml0ZW1zPy5sZW5ndGggPiAwXCI+XG4gICAgICAgICAgICA8c3Ryb25nXG4gICAgICAgICAgICAgICAgPjxhIChjbGljayk9XCJvblZpZXdBbGxDbGljaygkZXZlbnQpXCIgY2xhc3M9XCJldWktdS10ZXh0LWxpbmtcIj57e1xuICAgICAgICAgICAgICAgICAgICB2aWV3QWxsTm90aWZpY2F0aW9uc0xhYmVsID8gdmlld0FsbE5vdGlmaWNhdGlvbnNMYWJlbCA6ICgnZXVpLlZJRVdBTExOT1RJRklDQVRJT05TJyB8IHRyYW5zbGF0ZSlcbiAgICAgICAgICAgICAgICB9fTwvYT48L3N0cm9uZ1xuICAgICAgICAgICAgPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8bmctdGVtcGxhdGUgW25nSWZdPVwiaXRlbXM/Lmxlbmd0aCA9PT0gMFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInV4LW5vdGlmaWNhdGlvbl9faXRlbS1jb250ZW50XCIgKm5nSWY9XCIhbm9Ob3RpZmljYXRpb25Gb3VuZExpbmtcIj5cbiAgICAgICAgICAgICAgICB7eyBub05vdGlmaWNhdGlvbkZvdW5kTGFiZWwgPyBub05vdGlmaWNhdGlvbkZvdW5kTGFiZWwgOiAoJ2V1aS5OT05PVElGSUNBVElPTkZPVU5EJyB8IHRyYW5zbGF0ZSkgfX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInV4LW5vdGlmaWNhdGlvbl9faXRlbS1jb250ZW50XCIgKm5nSWY9XCJub05vdGlmaWNhdGlvbkZvdW5kTGlua1wiPlxuICAgICAgICAgICAgICAgIDxzdHJvbmdcbiAgICAgICAgICAgICAgICAgICAgPjxhIChjbGljayk9XCJvbk5vTm90aWZpY2F0aW9uRm91bmRDbGljaygpXCIgY2xhc3M9XCJldWktdS10ZXh0LWxpbmtcIj57e1xuICAgICAgICAgICAgICAgICAgICAgICAgbm9Ob3RpZmljYXRpb25Gb3VuZExhYmVsID8gbm9Ob3RpZmljYXRpb25Gb3VuZExhYmVsIDogKCdldWkuTk9OT1RJRklDQVRJT05GT1VORCcgfCB0cmFuc2xhdGUpXG4gICAgICAgICAgICAgICAgICAgIH19PC9hPjwvc3Ryb25nXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9ldWktb3ZlcmxheS1mb290ZXI+XG48L2V1aS1vdmVybGF5PlxuIl19
|
255
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLW5vdGlmaWNhdGlvbnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGF5b3V0L2V1aS1ub3RpZmljYXRpb25zLXYyL2V1aS1ub3RpZmljYXRpb25zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL2xheW91dC9ldWktbm90aWZpY2F0aW9ucy12Mi9ldWktbm90aWZpY2F0aW9ucy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osV0FBVyxFQUNYLEtBQUssRUFHTCxNQUFNLEVBRU4saUJBQWlCLEdBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQWdCLE1BQU0sV0FBVyxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxxQkFBcUIsRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7Ozs7QUFTNUUsTUFBTSxPQUFPLDJCQUEyQjtJQVB4QztRQVFjLGlCQUFZLEdBQXdCLElBQUksWUFBWSxFQUFTLENBQUM7UUFDOUQsdUJBQWtCLEdBQTZDLElBQUksWUFBWSxFQUE4QixDQUFDO1FBQzlHLGlCQUFZLEdBQXdCLElBQUksWUFBWSxFQUFTLENBQUM7UUFDeEUsd0VBQXdFO1FBQzlELHVCQUFrQixHQUE2QixJQUFJLFlBQVksRUFBYyxDQUFDO1FBQzlFLDZCQUF3QixHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ3hFLGNBQVMsR0FBK0IsSUFBSSxZQUFZLEVBQWdCLENBQUM7UUFDekUsd0JBQW1CLEdBQStCLElBQUksWUFBWSxFQUFnQixDQUFDO1FBRTdGLG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLDRCQUF1QixHQUFHLEVBQUUsQ0FBQztRQUM3Qix3QkFBbUIsR0FBRyxFQUFFLENBQUM7UUFDekIsd0JBQW1CLEdBQUcsRUFBRSxDQUFDO1FBQ3pCLFVBQUssR0FBUyxJQUFJLElBQUksRUFBRSxDQUFDO1FBRUgsV0FBTSxHQUFHLHNCQUFzQixDQUFDO1FBRTdDLFVBQUssR0FBVyxJQUFJLENBQUM7UUFDckIsZ0JBQVcsR0FBVyxJQUFJLENBQUM7UUFDM0IsOEJBQXlCLEdBQVcsSUFBSSxDQUFDO1FBQ3pDLFVBQUssR0FBRyxFQUFFLENBQUM7UUFDWCxnQkFBVyxHQUFXLElBQUksQ0FBQztRQUMzQixlQUFVLEdBQVcsSUFBSSxDQUFDO1FBQzFCLG9CQUFlLEdBQVcsSUFBSSxDQUFDO1FBQy9CLHNCQUFpQixHQUFXLElBQUksQ0FBQztRQUNqQyx1QkFBa0IsR0FBVyxJQUFJLENBQUM7UUFDbEMsa0JBQWEsR0FBVyxJQUFJLENBQUM7UUFDN0IsaUJBQVksR0FBVyxJQUFJLENBQUM7UUFDNUIsOEJBQXlCLEdBQVcsSUFBSSxDQUFDO1FBQ3pDLHFCQUFnQixHQUFXLElBQUksQ0FBQztRQUNoQyxvQkFBZSxHQUFXLElBQUksQ0FBQztRQUMvQix5Q0FBb0MsR0FBVyxJQUFJLENBQUM7UUFDcEQsMkJBQXNCLEdBQVcsSUFBSSxDQUFDO1FBQ3RDLDZCQUF3QixHQUFXLElBQUksQ0FBQztRQUNqRDs7V0FFRztRQUNNLGtCQUFhLEdBQVcsSUFBSSxDQUFDO1FBQzdCLGVBQVUsR0FBRyxZQUFZLENBQUM7UUFRM0IsNkJBQXdCLEdBQUcsS0FBSyxDQUFDO1FBUWpDLHNCQUFpQixHQUFHLElBQUksQ0FBQztRQVF6Qix5QkFBb0IsR0FBRyxJQUFJLENBQUM7UUFRNUIsZ0NBQTJCLEdBQUcsSUFBSSxDQUFDO1FBWW5DLHVCQUFrQixHQUFHLEtBQUssQ0FBQztRQVEzQiwrQkFBMEIsR0FBRyxJQUFJLENBQUM7UUFRbEMsMEJBQXFCLEdBQUcsSUFBSSxDQUFDO1FBUTdCLHlCQUFvQixHQUFHLElBQUksQ0FBQztLQWtGdkM7SUFySkcsSUFDSSx1QkFBdUI7UUFDdkIsT0FBTyxJQUFJLENBQUMsd0JBQXdCLENBQUM7SUFDekMsQ0FBQztJQUNELElBQUksdUJBQXVCLENBQUMsS0FBbUI7UUFDM0MsSUFBSSxDQUFDLHdCQUF3QixHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxJQUNJLGdCQUFnQjtRQUNoQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztJQUNsQyxDQUFDO0lBQ0QsSUFBSSxnQkFBZ0IsQ0FBQyxLQUFtQjtRQUNwQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVELElBQ0ksbUJBQW1CO1FBQ25CLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDO0lBQ3JDLENBQUM7SUFDRCxJQUFJLG1CQUFtQixDQUFDLEtBQW1CO1FBQ3ZDLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsSUFDSSwwQkFBMEI7UUFDMUIsT0FBTyxJQUFJLENBQUMsMkJBQTJCLENBQUM7SUFDNUMsQ0FBQztJQUNELElBQUksMEJBQTBCLENBQUMsS0FBbUI7UUFDOUMsSUFBSSxDQUFDLDJCQUEyQixHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFHRDs7T0FFRztJQUNILElBQ0ksaUJBQWlCO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDO0lBQ25DLENBQUM7SUFDRCxJQUFJLGlCQUFpQixDQUFDLEtBQW1CO1FBQ3JDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQsSUFDSSx5QkFBeUI7UUFDekIsT0FBTyxJQUFJLENBQUMsMEJBQTBCLENBQUM7SUFDM0MsQ0FBQztJQUNELElBQUkseUJBQXlCLENBQUMsS0FBbUI7UUFDN0MsSUFBSSxDQUFDLDBCQUEwQixHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFRCxJQUNJLG9CQUFvQjtRQUNwQixPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQztJQUN0QyxDQUFDO0lBQ0QsSUFBSSxvQkFBb0IsQ0FBQyxLQUFtQjtRQUN4QyxJQUFJLENBQUMscUJBQXFCLEdBQUcscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELElBQ0ksbUJBQW1CO1FBQ25CLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDO0lBQ3JDLENBQUM7SUFDRCxJQUFJLG1CQUFtQixDQUFDLEtBQW1CO1FBQ3ZDLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBR0QsSUFBSSwrQkFBK0I7UUFDL0IsT0FBTyxJQUFJLENBQUMseUJBQXlCLElBQUksSUFBSSxDQUFDLHlCQUF5QixHQUFHLENBQUMsQ0FBQztJQUNoRixDQUFDO0lBRUQsTUFBTTtRQUNGLElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxtSEFBbUg7SUFDbkgsOERBQThEO0lBQzlELFNBQVMsQ0FBQyxLQUFZO1FBQ2xCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMvQixZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLGVBQWUsR0FBRyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDakQsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUM5QixJQUFJLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRTtZQUMzQixNQUFNLGlCQUFpQixHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLENBQUM7WUFDakUsSUFBSSxDQUFDLGlCQUFpQixFQUFFO2dCQUNwQixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQzthQUMvQztTQUNKO0lBQ0wsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQ3pCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1NBQy9DO0lBQ0wsQ0FBQztJQUVELFNBQVMsQ0FBQyxLQUFZO1FBQ2xCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDekIsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxtSEFBbUg7SUFDbkgsOERBQThEO0lBQzlELFdBQVcsQ0FBQyxJQUFrQjtRQUMxQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxQixZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUVELGNBQWMsQ0FBQyxLQUFZO1FBQ3ZCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQywwQkFBMEIsRUFBRTtZQUNsQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDdkI7SUFDTCxDQUFDO0lBRUQsMEJBQTBCO1FBQ3RCLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBRUQsbUhBQW1IO0lBQ25ILDhEQUE4RDtJQUM5RCxnQkFBZ0IsQ0FBQyxJQUFrQjtRQUMvQixJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxlQUFlLENBQUMsQ0FBYTtRQUN6QixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2hDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNwQixDQUFDO0lBRUQsbUhBQW1IO0lBQ25ILDhEQUE4RDtJQUM5RCxTQUFTLENBQUMsS0FBYSxFQUFFLElBQVM7UUFDOUIsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFTyxlQUFlO1FBQ25CLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNuRCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ2YsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksS0FBSyxLQUFLLENBQUM7YUFDdkM7WUFDRCxPQUFPLEtBQUssQ0FBQztRQUNqQixDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sbUJBQW1CLENBQUMsTUFBTSxDQUFDO0lBQ3RDLENBQUM7aUlBNUxRLDJCQUEyQjtxSEFBM0IsMkJBQTJCLGcvQ0N0QnhDLDYxSUE0RkE7OzJGRHRFYSwyQkFBMkI7a0JBUHZDLFNBQVM7K0JBQ0ksc0JBQXNCLG1CQUdmLHVCQUF1QixDQUFDLE9BQU8saUJBQ2pDLGlCQUFpQixDQUFDLElBQUk7OEJBRzNCLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csa0JBQWtCO3NCQUEzQixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU07Z0JBRUcsa0JBQWtCO3NCQUEzQixNQUFNO2dCQUNHLHdCQUF3QjtzQkFBakMsTUFBTTtnQkFDRyxTQUFTO3NCQUFsQixNQUFNO2dCQUNHLG1CQUFtQjtzQkFBNUIsTUFBTTtnQkFRZSxNQUFNO3NCQUEzQixXQUFXO3VCQUFDLE9BQU87Z0JBRVgsS0FBSztzQkFBYixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0cseUJBQXlCO3NCQUFqQyxLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyx5QkFBeUI7c0JBQWpDLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csb0NBQW9DO3NCQUE1QyxLQUFLO2dCQUNHLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFDRyx3QkFBd0I7c0JBQWhDLEtBQUs7Z0JBSUcsYUFBYTtzQkFBckIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVGLHVCQUF1QjtzQkFEMUIsS0FBSztnQkFTRixnQkFBZ0I7c0JBRG5CLEtBQUs7Z0JBU0YsbUJBQW1CO3NCQUR0QixLQUFLO2dCQVNGLDBCQUEwQjtzQkFEN0IsS0FBSztnQkFhRixpQkFBaUI7c0JBRHBCLEtBQUs7Z0JBU0YseUJBQXlCO3NCQUQ1QixLQUFLO2dCQVNGLG9CQUFvQjtzQkFEdkIsS0FBSztnQkFTRixtQkFBbUI7c0JBRHRCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjb25zdW1lRXZlbnQsIFV4TGlua0xlZ2FjeSB9IGZyb20gJ0BldWkvY29yZSc7XG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHksIEJvb2xlYW5JbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZXVpLW5vdGlmaWNhdGlvbnMtdjInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9ldWktbm90aWZpY2F0aW9ucy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vc3R5bGVzL19pbmRleC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5EZWZhdWx0LFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIEV1aU5vdGlmaWNhdGlvbnNWMkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgICBAT3V0cHV0KCkgcmVmcmVzaENsaWNrOiBFdmVudEVtaXR0ZXI8RXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcbiAgICBAT3V0cHV0KCkgbm90aWZpY2F0aW9uc0NsaWNrOiBFdmVudEVtaXR0ZXI8S2V5Ym9hcmRFdmVudCB8IE1vdXNlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxLZXlib2FyZEV2ZW50IHwgTW91c2VFdmVudD4oKTtcbiAgICBAT3V0cHV0KCkgdmlld0FsbENsaWNrOiBFdmVudEVtaXR0ZXI8RXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcbiAgICAvLyBAT3V0cHV0KCkgc2V0dGluZ3NDbGljazogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgbWFya0FsbEFzUmVhZENsaWNrOiBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+KCk7XG4gICAgQE91dHB1dCgpIG5vTm90aWZpY2F0aW9uRm91bmRDbGljazogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICAgIEBPdXRwdXQoKSBpdGVtQ2xpY2s6IEV2ZW50RW1pdHRlcjxVeExpbmtMZWdhY3k+ID0gbmV3IEV2ZW50RW1pdHRlcjxVeExpbmtMZWdhY3k+KCk7XG4gICAgQE91dHB1dCgpIGl0ZW1NYXJrQXNSZWFkQ2xpY2s6IEV2ZW50RW1pdHRlcjxVeExpbmtMZWdhY3k+ID0gbmV3IEV2ZW50RW1pdHRlcjxVeExpbmtMZWdhY3k+KCk7XG5cbiAgICBpc092ZXJsYXlBY3RpdmUgPSBmYWxzZTtcbiAgICBjdXJyZW50RGF5Tm90aWZpY2F0aW9ucyA9IFtdO1xuICAgIG9sZGVzdE5vdGlmaWNhdGlvbnMgPSBbXTtcbiAgICB1bnJlYWROb3RpZmljYXRpb25zID0gW107XG4gICAgdG9kYXk6IERhdGUgPSBuZXcgRGF0ZSgpO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIHN0cmluZyA9ICdldWktbm90aWZpY2F0aW9ucy12Mic7XG5cbiAgICBASW5wdXQoKSBjb3VudDogbnVtYmVyID0gbnVsbDtcbiAgICBASW5wdXQoKSB1bnJlYWRDb3VudDogbnVtYmVyID0gbnVsbDtcbiAgICBASW5wdXQoKSB1bnJlYWRTaW5jZUxhc3RDaGVja0NvdW50OiBudW1iZXIgPSBudWxsO1xuICAgIEBJbnB1dCgpIGl0ZW1zID0gW107XG4gICAgQElucHV0KCkgdW5yZWFkTGFiZWw6IHN0cmluZyA9IG51bGw7XG4gICAgQElucHV0KCkgdG90YWxMYWJlbDogc3RyaW5nID0gbnVsbDtcbiAgICBASW5wdXQoKSBtYXJrQXNSZWFkTGFiZWw6IHN0cmluZyA9IG51bGw7XG4gICAgQElucHV0KCkgbWFya0FzVW5SZWFkTGFiZWw6IHN0cmluZyA9IG51bGw7XG4gICAgQElucHV0KCkgbWFya0FsbEFzUmVhZExhYmVsOiBzdHJpbmcgPSBudWxsO1xuICAgIEBJbnB1dCgpIHNldHRpbmdzTGFiZWw6IHN0cmluZyA9IG51bGw7XG4gICAgQElucHV0KCkgcmVmcmVzaExhYmVsOiBzdHJpbmcgPSBudWxsO1xuICAgIEBJbnB1dCgpIHZpZXdBbGxOb3RpZmljYXRpb25zTGFiZWw6IHN0cmluZyA9IG51bGw7XG4gICAgQElucHV0KCkgaGVhZGVyVGl0bGVMYWJlbDogc3RyaW5nID0gbnVsbDtcbiAgICBASW5wdXQoKSBoZWFkZXJIaWRlTGFiZWw6IHN0cmluZyA9IG51bGw7XG4gICAgQElucHV0KCkgaGVhZGVyVW5yZWFkU2luY2VMYXN0Q2hlY2tDb3VudExhYmVsOiBzdHJpbmcgPSBudWxsO1xuICAgIEBJbnB1dCgpIGhlYWRlclVucmVhZENvdW50TGFiZWw6IHN0cmluZyA9IG51bGw7XG4gICAgQElucHV0KCkgbm9Ob3RpZmljYXRpb25Gb3VuZExhYmVsOiBzdHJpbmcgPSBudWxsO1xuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIG5iVW5yZWFkQ291bnQgaXMgREVQUkVDQVRFRCwgaXQgaXMgbm90IHVzZWQgaW4gdGhlIHZpZXcuIFRvIGJlIHJlbW92ZWQgaW4gZVVJIDE4LlxuICAgICAqL1xuICAgIEBJbnB1dCgpIG5iVW5yZWFkQ291bnQ6IG51bWJlciA9IG51bGw7XG4gICAgQElucHV0KCkgZGF0ZUZvcm1hdCA9ICdkZC9NTS9ZWVlZJztcbiAgICBASW5wdXQoKVxuICAgIGdldCBub05vdGlmaWNhdGlvbkZvdW5kTGluaygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX25vTm90aWZpY2F0aW9uRm91bmRMaW5rO1xuICAgIH1cbiAgICBzZXQgbm9Ob3RpZmljYXRpb25Gb3VuZExpbmsodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9ub05vdGlmaWNhdGlvbkZvdW5kTGluayA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIHByaXZhdGUgX25vTm90aWZpY2F0aW9uRm91bmRMaW5rID0gZmFsc2U7XG4gICAgQElucHV0KClcbiAgICBnZXQgaXNTaG93TWFya0FzUmVhZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzU2hvd01hcmtBc1JlYWQ7XG4gICAgfVxuICAgIHNldCBpc1Nob3dNYXJrQXNSZWFkKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5faXNTaG93TWFya0FzUmVhZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIHByaXZhdGUgX2lzU2hvd01hcmtBc1JlYWQgPSB0cnVlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGlzU2hvd1ZpZXdBbGxBY3Rpb24oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc1Nob3dWaWV3QWxsQWN0aW9uO1xuICAgIH1cbiAgICBzZXQgaXNTaG93Vmlld0FsbEFjdGlvbih2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2lzU2hvd1ZpZXdBbGxBY3Rpb24gPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwcml2YXRlIF9pc1Nob3dWaWV3QWxsQWN0aW9uID0gdHJ1ZTtcbiAgICBASW5wdXQoKVxuICAgIGdldCBpc0hpZGVQYW5lbE9uVmlld0FsbEFjdGlvbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzSGlkZVBhbmVsT25WaWV3QWxsQWN0aW9uO1xuICAgIH1cbiAgICBzZXQgaXNIaWRlUGFuZWxPblZpZXdBbGxBY3Rpb24odmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9pc0hpZGVQYW5lbE9uVmlld0FsbEFjdGlvbiA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIHByaXZhdGUgX2lzSGlkZVBhbmVsT25WaWV3QWxsQWN0aW9uID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIGN1c3RvbVVucmVhZENvdW50IGlzIERFUFJFQ0FURUQsIGl0IGlzIG5vdCB1c2VkIGluIHRoZSB2aWV3LiBUbyBiZSByZW1vdmVkIGluIGVVSSAxOC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGdldCBjdXN0b21VbnJlYWRDb3VudCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2N1c3RvbVVucmVhZENvdW50O1xuICAgIH1cbiAgICBzZXQgY3VzdG9tVW5yZWFkQ291bnQodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9jdXN0b21VbnJlYWRDb3VudCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIHByaXZhdGUgX2N1c3RvbVVucmVhZENvdW50ID0gZmFsc2U7XG4gICAgQElucHV0KClcbiAgICBnZXQgaXNTaG93TWFya0FsbEFzUmVhZEJ1dHRvbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzU2hvd01hcmtBbGxBc1JlYWRCdXR0b247XG4gICAgfVxuICAgIHNldCBpc1Nob3dNYXJrQWxsQXNSZWFkQnV0dG9uKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5faXNTaG93TWFya0FsbEFzUmVhZEJ1dHRvbiA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIHByaXZhdGUgX2lzU2hvd01hcmtBbGxBc1JlYWRCdXR0b24gPSB0cnVlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGlzU2hvd1NldHRpbmdzQnV0dG9uKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNTaG93U2V0dGluZ3NCdXR0b247XG4gICAgfVxuICAgIHNldCBpc1Nob3dTZXR0aW5nc0J1dHRvbih2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2lzU2hvd1NldHRpbmdzQnV0dG9uID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfaXNTaG93U2V0dGluZ3NCdXR0b24gPSB0cnVlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGlzU2hvd1JlZnJlc2hCdXR0b24oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc1Nob3dSZWZyZXNoQnV0dG9uO1xuICAgIH1cbiAgICBzZXQgaXNTaG93UmVmcmVzaEJ1dHRvbih2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2lzU2hvd1JlZnJlc2hCdXR0b24gPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwcml2YXRlIF9pc1Nob3dSZWZyZXNoQnV0dG9uID0gdHJ1ZTtcblxuICAgIGdldCBpc1Nob3dVbnJlYWRTaW5jZUxhc3RDaGVja0NvdW50KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy51bnJlYWRTaW5jZUxhc3RDaGVja0NvdW50ICYmIHRoaXMudW5yZWFkU2luY2VMYXN0Q2hlY2tDb3VudCA+IDA7XG4gICAgfVxuXG4gICAgb25IaWRlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzT3ZlcmxheUFjdGl2ZSA9IGZhbHNlO1xuICAgIH1cblxuICAgIC8vIFRPRE86IGZpbmQgdGhlIGNvcnJlY3QgdHlwZSBvciB0dXJuIGludG8gYSBnZW5lcmljLCBodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmcvZG9jcy9oYW5kYm9vay8yL2dlbmVyaWNzLmh0bWxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIG9uQ2xpY2tlZChldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5ub3RpZmljYXRpb25zQ2xpY2suZW1pdCgpO1xuICAgICAgICBjb25zdW1lRXZlbnQoZXZlbnQpO1xuICAgICAgICB0aGlzLmlzT3ZlcmxheUFjdGl2ZSA9ICF0aGlzLmlzT3ZlcmxheUFjdGl2ZTtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmIChjaGFuZ2VzLmN1c3RvbVVucmVhZENvdW50KSB7XG4gICAgICAgICAgICBjb25zdCBjdXN0b21VbnJlYWRDb3VudCA9IGNoYW5nZXMuY3VzdG9tVW5yZWFkQ291bnQuY3VycmVudFZhbHVlO1xuICAgICAgICAgICAgaWYgKCFjdXN0b21VbnJlYWRDb3VudCkge1xuICAgICAgICAgICAgICAgIHRoaXMubmJVbnJlYWRDb3VudCA9IHRoaXMuX2dldFVucmVhZENvdW50KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmN1c3RvbVVucmVhZENvdW50KSB7XG4gICAgICAgICAgICB0aGlzLm5iVW5yZWFkQ291bnQgPSB0aGlzLl9nZXRVbnJlYWRDb3VudCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25SZWZyZXNoKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJlZnJlc2hDbGljay5lbWl0KCk7XG4gICAgICAgIGNvbnN1bWVFdmVudChldmVudCk7XG4gICAgfVxuXG4gICAgLy8gVE9ETzogZmluZCB0aGUgY29ycmVjdCB0eXBlIG9yIHR1cm4gaW50byBhIGdlbmVyaWMsIGh0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZy9kb2NzL2hhbmRib29rLzIvZ2VuZXJpY3MuaHRtbFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgb25JdGVtQ2xpY2sobGluazogVXhMaW5rTGVnYWN5KTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXRlbUNsaWNrLmVtaXQobGluayk7XG4gICAgICAgIGNvbnN1bWVFdmVudChldmVudCk7XG4gICAgfVxuXG4gICAgb25WaWV3QWxsQ2xpY2soZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMudmlld0FsbENsaWNrLmVtaXQoKTtcbiAgICAgICAgaWYgKCF0aGlzLmlzSGlkZVBhbmVsT25WaWV3QWxsQWN0aW9uKSB7XG4gICAgICAgICAgICBjb25zdW1lRXZlbnQoZXZlbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25Ob05vdGlmaWNhdGlvbkZvdW5kQ2xpY2soKTogdm9pZCB7XG4gICAgICAgIHRoaXMubm9Ob3RpZmljYXRpb25Gb3VuZENsaWNrLmVtaXQoKTtcbiAgICB9XG5cbiAgICAvLyBUT0RPOiBmaW5kIHRoZSBjb3JyZWN0IHR5cGUgb3IgdHVybiBpbnRvIGEgZ2VuZXJpYywgaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnL2RvY3MvaGFuZGJvb2svMi9nZW5lcmljcy5odG1sXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBvbkl0ZW1NYXJrQXNSZWFkKGxpbms6IFV4TGlua0xlZ2FjeSk6IHZvaWQge1xuICAgICAgICB0aGlzLml0ZW1NYXJrQXNSZWFkQ2xpY2suZW1pdChsaW5rKTtcbiAgICB9XG5cbiAgICBvbk1hcmtBbGxBc1JlYWQoZTogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLm1hcmtBbGxBc1JlYWRDbGljay5lbWl0KGUpO1xuICAgICAgICBjb25zdW1lRXZlbnQoZSk7XG4gICAgfVxuXG4gICAgLy8gVE9ETzogZmluZCB0aGUgY29ycmVjdCB0eXBlIG9yIHR1cm4gaW50byBhIGdlbmVyaWMsIGh0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZy9kb2NzL2hhbmRib29rLzIvZ2VuZXJpY3MuaHRtbFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgdHJhY2tCeUZuKGluZGV4OiBudW1iZXIsIGl0ZW06IGFueSk6IHZvaWQge1xuICAgICAgICByZXR1cm4gaXRlbS5pZDtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9nZXRVbnJlYWRDb3VudCgpOiBudW1iZXIge1xuICAgICAgICBjb25zdCB1bnJlYWROb3RpZmljYXRpb25zID0gdGhpcy5pdGVtcy5maWx0ZXIoKGxpbmspID0+IHtcbiAgICAgICAgICAgIGlmIChsaW5rLm1ldGFkYXRhKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGxpbmsubWV0YWRhdGEucmVhZCA9PT0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gdW5yZWFkTm90aWZpY2F0aW9ucy5sZW5ndGg7XG4gICAgfVxufVxuIiwiPGV1aS1pY29uLXN2Zy1idXR0b25cbiAgICBjbGFzcz1cImV1aS1ub3RpZmljYXRpb25zLXYyX190cmlnZ2VyXCJcbiAgICBpY29uU3ZnTmFtZT1cImV1aS1ub3RpZmljYXRpb25zXCJcbiAgICBpY29uU3ZnU2l6ZT1cIm1cIlxuICAgIGljb25TdmdGaWxsQ29sb3I9XCJ3aGl0ZVwiXG4gICAgKGNsaWNrKT1cIm9uQ2xpY2tlZCgkZXZlbnQpXCJcbiAgICAoa2V5ZG93bi5lbnRlcik9XCJvbkNsaWNrZWQoJGV2ZW50KVwiXG4gICAgKGtleWRvd24uZXNjKT1cIm9uSGlkZSgpXCJcbiAgICBoYXNGb2N1c0JvcmRlcj5cbiAgICA8ZXVpLWJhZGdlICpuZ0lmPVwiaXNTaG93VW5yZWFkU2luY2VMYXN0Q2hlY2tDb3VudFwiIGV1aVNpemVTIGV1aURhbmdlcj57eyB1bnJlYWRTaW5jZUxhc3RDaGVja0NvdW50IH19PC9ldWktYmFkZ2U+XG48L2V1aS1pY29uLXN2Zy1idXR0b24+XG5cbjxldWktb3ZlcmxheSBbaXNBY3RpdmVdPVwiaXNPdmVybGF5QWN0aXZlXCIgY2xhc3M9XCJldWktb3ZlcmxheS1vZmZzZXQtLXdpZHRoLTMwXCI+XG4gICAgPGV1aS1vdmVybGF5LWhlYWRlcj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImV1aS1ub3RpZmljYXRpb25zLXYyX19oZWFkZXJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJldWktbm90aWZpY2F0aW9ucy12Ml9faGVhZGVyLXRpdGxlXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV1aS1ub3RpZmljYXRpb25zLXYyX19oZWFkZXItdGl0bGUtbGFiZWxcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgaGVhZGVyVGl0bGVMYWJlbCA/IGhlYWRlclRpdGxlTGFiZWwgOiAoJ2V1aS5NWU5PVElGSUNBVElPTlMnIHwgdHJhbnNsYXRlKSB9fVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV1aS1ub3RpZmljYXRpb25zLXYyX19oZWFkZXItdGl0bGUtYWN0aW9uc1wiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImhpZGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxhIChjbGljayk9XCJvbkhpZGUoKVwiIGNsYXNzPVwiZXVpLXUtdGV4dC1saW5rXCIgcm9sZT1cImJ1dHRvblwiIHRhYkluZGV4PVwiMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGhlYWRlckhpZGVMYWJlbCA/IGhlYWRlckhpZGVMYWJlbCA6ICgnZXVpLkhJREUnIHwgdHJhbnNsYXRlKSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGV1aS1pY29uLXN2ZyBzZXQ9XCJldWlcIiBpY29uPVwiZXVpLWNoZXZyb24tZm9yd2FyZFwiIHNpemU9XCIyeHNcIj48L2V1aS1pY29uLXN2Zz5cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJldWktbm90aWZpY2F0aW9ucy12Ml9faGVhZGVyLXN1YmluZm9zLWJhclwiPlxuICAgICAgICAgICAgICAgIDxzdHJvbmc+e3sgdW5yZWFkU2luY2VMYXN0Q2hlY2tDb3VudCB9fTwvc3Ryb25nPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZXVpLXUtbWwteHNcIj57e1xuICAgICAgICAgICAgICAgICAgICBoZWFkZXJVbnJlYWRTaW5jZUxhc3RDaGVja0NvdW50TGFiZWwgPyBoZWFkZXJVbnJlYWRTaW5jZUxhc3RDaGVja0NvdW50TGFiZWwgOiAoJ2V1aS5ORVctQ09VTlQnIHwgdHJhbnNsYXRlKVxuICAgICAgICAgICAgICAgIH19PC9zcGFuPlxuXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJldWktdS1tbC14c1wiPnw8L3NwYW4+XG5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImV1aS11LW1sLXhzXCI+e3sgdW5yZWFkQ291bnQgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJldWktdS1tbC14c1wiPnt7IGhlYWRlclVucmVhZENvdW50TGFiZWwgPyBoZWFkZXJVbnJlYWRDb3VudExhYmVsIDogKCdldWkuTkVXLUNPVU5UJyB8IHRyYW5zbGF0ZSkgfX08L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV1aS1ub3RpZmljYXRpb25zLXYyX19oZWFkZXItc3ViYWN0aW9ucy1iYXJcIj5cbiAgICAgICAgICAgICAgICA8YSAqbmdJZj1cIml0ZW1zLmxlbmd0aCA+IDBcIiAoY2xpY2spPVwib25NYXJrQWxsQXNSZWFkKCRldmVudClcIiBjbGFzcz1cImV1aS11LXRleHQtbGlua1wiIHRhYkluZGV4PVwiMFwiPlxuICAgICAgICAgICAgICAgICAgICB7eyAnbm90aWYuTUFSSy1BTEwtUkVBRCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgPGEgKGNsaWNrKT1cIm9uUmVmcmVzaCgkZXZlbnQpXCIgY2xhc3M9XCJldWktdS10ZXh0LWxpbmsgZXVpLXUtbWwtYXV0b1wiIHRhYkluZGV4PVwiMFwiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImV1aS11LWZsZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZXVpLWljb24gZXVpLWljb24tcmVmcmVzaCBtci0xXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgJ25vdGlmLlNWLVJFRlJFU0gnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9ldWktb3ZlcmxheS1oZWFkZXI+XG5cbiAgICA8ZXVpLW92ZXJsYXktYm9keT5cbiAgICAgICAgPHVsIGNsYXNzPVwiZXVpLW5vdGlmaWNhdGlvbnMtaXRlbXNcIiAqbmdJZj1cIml0ZW1zXCI+XG4gICAgICAgICAgICA8ZXVpLW5vdGlmaWNhdGlvbi1pdGVtLXYyXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXM7IHRyYWNrQnk6IHRyYWNrQnlGblwiXG4gICAgICAgICAgICAgICAgW2l0ZW1dPVwiaXRlbVwiXG4gICAgICAgICAgICAgICAgW2RhdGVGb3JtYXRdPVwiZGF0ZUZvcm1hdFwiXG4gICAgICAgICAgICAgICAgW21hcmtBc1JlYWRMYWJlbF09XCJtYXJrQXNSZWFkTGFiZWxcIlxuICAgICAgICAgICAgICAgIFtpc1Nob3dNYXJrQXNSZWFkXT1cImlzU2hvd01hcmtBc1JlYWRcIlxuICAgICAgICAgICAgICAgIChpdGVtQ2xpY2spPVwib25JdGVtQ2xpY2soJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKGl0ZW1NYXJrQXNSZWFkKT1cIm9uSXRlbU1hcmtBc1JlYWQoJGV2ZW50KVwiPlxuICAgICAgICAgICAgPC9ldWktbm90aWZpY2F0aW9uLWl0ZW0tdjI+XG4gICAgICAgIDwvdWw+XG4gICAgPC9ldWktb3ZlcmxheS1ib2R5PlxuXG4gICAgPGV1aS1vdmVybGF5LWZvb3Rlcj5cbiAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cIml0ZW1zPy5sZW5ndGggPiAwXCI+XG4gICAgICAgICAgICA8c3Ryb25nXG4gICAgICAgICAgICAgICAgPjxhIChjbGljayk9XCJvblZpZXdBbGxDbGljaygkZXZlbnQpXCIgY2xhc3M9XCJldWktdS10ZXh0LWxpbmtcIj57e1xuICAgICAgICAgICAgICAgICAgICB2aWV3QWxsTm90aWZpY2F0aW9uc0xhYmVsID8gdmlld0FsbE5vdGlmaWNhdGlvbnNMYWJlbCA6ICgnZXVpLlZJRVdBTExOT1RJRklDQVRJT05TJyB8IHRyYW5zbGF0ZSlcbiAgICAgICAgICAgICAgICB9fTwvYT48L3N0cm9uZ1xuICAgICAgICAgICAgPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8bmctdGVtcGxhdGUgW25nSWZdPVwiaXRlbXM/Lmxlbmd0aCA9PT0gMFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInV4LW5vdGlmaWNhdGlvbl9faXRlbS1jb250ZW50XCIgKm5nSWY9XCIhbm9Ob3RpZmljYXRpb25Gb3VuZExpbmtcIj5cbiAgICAgICAgICAgICAgICB7eyBub05vdGlmaWNhdGlvbkZvdW5kTGFiZWwgPyBub05vdGlmaWNhdGlvbkZvdW5kTGFiZWwgOiAoJ2V1aS5OT05PVElGSUNBVElPTkZPVU5EJyB8IHRyYW5zbGF0ZSkgfX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInV4LW5vdGlmaWNhdGlvbl9faXRlbS1jb250ZW50XCIgKm5nSWY9XCJub05vdGlmaWNhdGlvbkZvdW5kTGlua1wiPlxuICAgICAgICAgICAgICAgIDxzdHJvbmdcbiAgICAgICAgICAgICAgICAgICAgPjxhIChjbGljayk9XCJvbk5vTm90aWZpY2F0aW9uRm91bmRDbGljaygpXCIgY2xhc3M9XCJldWktdS10ZXh0LWxpbmtcIj57e1xuICAgICAgICAgICAgICAgICAgICAgICAgbm9Ob3RpZmljYXRpb25Gb3VuZExhYmVsID8gbm9Ob3RpZmljYXRpb25Gb3VuZExhYmVsIDogKCdldWkuTk9OT1RJRklDQVRJT05GT1VORCcgfCB0cmFuc2xhdGUpXG4gICAgICAgICAgICAgICAgICAgIH19PC9hPjwvc3Ryb25nXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9ldWktb3ZlcmxheS1mb290ZXI+XG48L2V1aS1vdmVybGF5PlxuIl19
|