@alfresco/adf-process-services-cloud 8.1.0-14418000089 → 8.1.0-14437626631
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/app/components/app-details-cloud/app-details-cloud.component.mjs +4 -4
- package/esm2022/lib/app/components/app-list-cloud/app-list-cloud.component.mjs +4 -4
- package/esm2022/lib/app/services/apps-process-cloud.service.mjs +4 -4
- package/esm2022/lib/common/date-range-filter/date-range-filter.component.mjs +4 -4
- package/esm2022/lib/common/date-range-filter/date-range-filter.service.mjs +4 -4
- package/esm2022/lib/form/components/cloud-form-rendering.service.mjs +4 -4
- package/esm2022/lib/form/components/form-cloud-custom-outcomes.component.mjs +4 -4
- package/esm2022/lib/form/components/form-cloud.component.mjs +4 -4
- package/esm2022/lib/form/components/form-definition-selector-cloud.component.mjs +4 -4
- package/esm2022/lib/form/components/spinner/form-spinner.component.mjs +4 -4
- package/esm2022/lib/form/components/widgets/attach-file/attach-file-cloud-widget.component.mjs +4 -4
- package/esm2022/lib/form/components/widgets/attach-file/file-properties-table/file-properties-table-cloud.component.mjs +4 -4
- package/esm2022/lib/form/components/widgets/data-table/data-table.widget.mjs +4 -4
- package/esm2022/lib/form/components/widgets/date/date-cloud.widget.mjs +4 -4
- package/esm2022/lib/form/components/widgets/display-external-property/display-external-property.widget.mjs +4 -4
- package/esm2022/lib/form/components/widgets/display-rich-text/display-rich-text.widget.mjs +4 -4
- package/esm2022/lib/form/components/widgets/dropdown/dropdown-cloud.widget.mjs +4 -4
- package/esm2022/lib/form/components/widgets/file-viewer/file-viewer.widget.mjs +4 -4
- package/esm2022/lib/form/components/widgets/group/group-cloud.widget.mjs +4 -4
- package/esm2022/lib/form/components/widgets/people/people-cloud.widget.mjs +4 -4
- package/esm2022/lib/form/components/widgets/properties-viewer/properties-viewer-wrapper/properties-viewer-wrapper.component.mjs +4 -4
- package/esm2022/lib/form/components/widgets/properties-viewer/properties-viewer.widget.mjs +4 -4
- package/esm2022/lib/form/components/widgets/radio-buttons/radio-buttons-cloud.widget.mjs +4 -4
- package/esm2022/lib/form/components/widgets/upload/upload-cloud.widget.mjs +4 -4
- package/esm2022/lib/form/form-cloud.module.mjs +5 -5
- package/esm2022/lib/form/services/content-cloud-node-selector.service.mjs +4 -4
- package/esm2022/lib/form/services/display-mode.service.mjs +4 -4
- package/esm2022/lib/form/services/form-cloud.service.mjs +4 -4
- package/esm2022/lib/form/services/form-definition-selector-cloud.service.mjs +4 -4
- package/esm2022/lib/form/services/form-utils.service.mjs +4 -4
- package/esm2022/lib/form/services/process-cloud-content.service.mjs +4 -4
- package/esm2022/lib/form/services/spinner/form-cloud-spinner.service.mjs +4 -4
- package/esm2022/lib/group/components/group-cloud.component.mjs +4 -4
- package/esm2022/lib/group/group-cloud.module.mjs +5 -5
- package/esm2022/lib/group/services/identity-group.service.mjs +4 -4
- package/esm2022/lib/people/components/people-cloud.component.mjs +4 -4
- package/esm2022/lib/people/people-cloud.module.mjs +5 -5
- package/esm2022/lib/people/services/identity-user.service.mjs +4 -4
- package/esm2022/lib/process/process-cloud.module.mjs +5 -5
- package/esm2022/lib/process/process-filters/components/edit-process-filter/edit-process-filter-cloud.component.mjs +4 -4
- package/esm2022/lib/process/process-filters/components/process-filter-dialog/process-filter-dialog-cloud.component.mjs +4 -4
- package/esm2022/lib/process/process-filters/components/process-filters/process-filters-cloud.component.mjs +4 -4
- package/esm2022/lib/process/process-filters/process-filters-cloud.module.mjs +5 -5
- package/esm2022/lib/process/process-filters/services/process-filter-cloud.service.mjs +4 -4
- package/esm2022/lib/process/process-header/components/process-header-cloud.component.mjs +4 -4
- package/esm2022/lib/process/process-header/process-header-cloud.module.mjs +5 -5
- package/esm2022/lib/process/process-list/components/process-list-cloud.component.mjs +4 -4
- package/esm2022/lib/process/process-list/process-list-cloud.module.mjs +5 -5
- package/esm2022/lib/process/process-list/services/process-list-cloud.service.mjs +4 -4
- package/esm2022/lib/process/process-list/services/process-task-list-cloud.service.mjs +4 -4
- package/esm2022/lib/process/services/process-cloud.service.mjs +4 -4
- package/esm2022/lib/process/start-process/components/start-process-cloud.component.mjs +26 -6
- package/esm2022/lib/process/start-process/services/start-process-cloud.service.mjs +4 -4
- package/esm2022/lib/process-services-cloud.module.mjs +5 -5
- package/esm2022/lib/rich-text-editor/rich-text-editor.component.mjs +4 -4
- package/esm2022/lib/rich-text-editor/rich-text-editor.module.mjs +5 -5
- package/esm2022/lib/screen/components/screen-cloud/screen-cloud.component.mjs +4 -4
- package/esm2022/lib/services/base-cloud.service.mjs +4 -4
- package/esm2022/lib/services/local-preference-cloud.service.mjs +4 -4
- package/esm2022/lib/services/notification-cloud.service.mjs +4 -4
- package/esm2022/lib/services/screen-rendering.service.mjs +4 -4
- package/esm2022/lib/services/user-preference-cloud.service.mjs +4 -4
- package/esm2022/lib/services/variable-mapper.sevice.mjs +4 -4
- package/esm2022/lib/services/web-socket.service.mjs +4 -4
- package/esm2022/lib/task/services/task-cloud.service.mjs +4 -4
- package/esm2022/lib/task/task-cloud.module.mjs +5 -5
- package/esm2022/lib/task/task-filters/components/base-task-filters-cloud.component.mjs +4 -4
- package/esm2022/lib/task/task-filters/components/edit-task-filters/base-edit-task-filter-cloud.component.mjs +4 -4
- package/esm2022/lib/task/task-filters/components/edit-task-filters/edit-service-task-filter/edit-service-task-filter-cloud.component.mjs +4 -4
- package/esm2022/lib/task/task-filters/components/edit-task-filters/edit-task-filter/edit-task-filter-cloud.component.mjs +7 -5
- package/esm2022/lib/task/task-filters/components/service-task-filters/service-task-filters-cloud.component.mjs +4 -4
- package/esm2022/lib/task/task-filters/components/task-assignment-filter/task-assignment-filter.component.mjs +4 -4
- package/esm2022/lib/task/task-filters/components/task-filter-dialog/task-filter-dialog-cloud.component.mjs +4 -4
- package/esm2022/lib/task/task-filters/components/task-filters/task-filters-cloud.component.mjs +4 -4
- package/esm2022/lib/task/task-filters/services/service-task-filter-cloud.service.mjs +4 -4
- package/esm2022/lib/task/task-filters/services/task-filter-cloud.service.mjs +4 -4
- package/esm2022/lib/task/task-filters/task-filters-cloud.module.mjs +5 -5
- package/esm2022/lib/task/task-form/components/task-form-cloud/task-form-cloud.component.mjs +4 -4
- package/esm2022/lib/task/task-form/components/user-task-cloud/complete-task/complete-task.directive.mjs +4 -4
- package/esm2022/lib/task/task-form/components/user-task-cloud/user-task-cloud.component.mjs +4 -4
- package/esm2022/lib/task/task-form/components/user-task-cloud-buttons/claim-task/claim-task-cloud.directive.mjs +4 -4
- package/esm2022/lib/task/task-form/components/user-task-cloud-buttons/unclaim-task/unclaim-task-cloud.directive.mjs +4 -4
- package/esm2022/lib/task/task-form/components/user-task-cloud-buttons/user-task-cloud-buttons.component.mjs +4 -4
- package/esm2022/lib/task/task-form/task-form.module.mjs +5 -5
- package/esm2022/lib/task/task-header/components/task-header-cloud.component.mjs +4 -4
- package/esm2022/lib/task/task-header/task-header-cloud.module.mjs +5 -5
- package/esm2022/lib/task/task-list/components/base-task-list-cloud.component.mjs +4 -4
- package/esm2022/lib/task/task-list/components/service-task-list/service-task-list-cloud.component.mjs +4 -4
- package/esm2022/lib/task/task-list/components/task-list/task-list-cloud.component.mjs +4 -4
- package/esm2022/lib/task/task-list/services/service-task-list-cloud.service.mjs +4 -4
- package/esm2022/lib/task/task-list/services/task-list-cloud.service.mjs +4 -4
- package/esm2022/lib/task/task-list/task-list-cloud.module.mjs +5 -5
- package/fesm2022/adf-process-services-cloud.mjs +318 -297
- package/fesm2022/adf-process-services-cloud.mjs.map +1 -1
- package/lib/common/date-range-filter/date-range-filter.service.d.ts +1 -1
- package/lib/process/start-process/components/start-process-cloud.component.d.ts +2 -0
- package/package.json +4 -4
|
@@ -430,10 +430,10 @@ export class BaseEditTaskFilterCloudComponent {
|
|
|
430
430
|
this.sortProperties = this.getDefaultSortProperties();
|
|
431
431
|
}
|
|
432
432
|
}
|
|
433
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
434
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
433
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: BaseEditTaskFilterCloudComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
434
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1.3", type: BaseEditTaskFilterCloudComponent, inputs: { appName: "appName", id: "id", environmentList: "environmentList", processInstanceId: "processInstanceId", showTitle: "showTitle", showTaskFilterName: "showTaskFilterName", filterProperties: "filterProperties", role: "role", showFilterActions: "showFilterActions", actions: "actions", sortProperties: "sortProperties", taskFilter: "taskFilter" }, outputs: { action: "action", filterChange: "filterChange" }, usesOnChanges: true, ngImport: i0 }); }
|
|
435
435
|
}
|
|
436
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
436
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: BaseEditTaskFilterCloudComponent, decorators: [{
|
|
437
437
|
type: Directive
|
|
438
438
|
}], propDecorators: { appName: [{
|
|
439
439
|
type: Input
|
|
@@ -464,4 +464,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
464
464
|
}], filterChange: [{
|
|
465
465
|
type: Output
|
|
466
466
|
}] } });
|
|
467
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1lZGl0LXRhc2stZmlsdGVyLWNsb3VkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9wcm9jZXNzLXNlcnZpY2VzLWNsb3VkL3NyYy9saWIvdGFzay90YXNrLWZpbHRlcnMvY29tcG9uZW50cy9lZGl0LXRhc2stZmlsdGVycy9iYXNlLWVkaXQtdGFzay1maWx0ZXItY2xvdWQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQzdILE9BQU8sRUFBRSxjQUFjLEVBQXlELGdCQUFnQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDMUksT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDMUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDaEcsT0FBTyxFQUFFLG1CQUFtQixFQUFtQixNQUFNLDRDQUE0QyxDQUFDO0FBQ2xHLE9BQU8sRUFBbUIsa0JBQWtCLEVBQW9CLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLGtCQUFrQixFQUFFLHNCQUFzQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEgsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDMUcsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixD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QkFEYixLQUFLO2dCQUtOLE1BQU07c0JBREwsTUFBTTtnQkF1QlAsVUFBVTtzQkFEVCxLQUFLO2dCQU9OLFlBQVk7c0JBRFgsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgRGVzdHJveVJlZiwgRGlyZWN0aXZlLCBFdmVudEVtaXR0ZXIsIGluamVjdCwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFzc2lnbm1lbnRUeXBlLCBGaWx0ZXJPcHRpb25zLCBUYXNrRmlsdGVyQWN0aW9uLCBUYXNrRmlsdGVyUHJvcGVydGllcywgVGFza1N0YXR1c0ZpbHRlciB9IGZyb20gJy4uLy4uL21vZGVscy9maWx0ZXItY2xvdWQubW9kZWwnO1xuaW1wb3J0IHsgVGFza0Nsb3VkU2VydmljZSB9IGZyb20gJy4vLi4vLi4vLi4vc2VydmljZXMvdGFzay1jbG91ZC5zZXJ2aWNlJztcbmltcG9ydCB7IEFwcHNQcm9jZXNzQ2xvdWRTZXJ2aWNlIH0gZnJvbSAnLi8uLi8uLi8uLi8uLi9hcHAvc2VydmljZXMvYXBwcy1wcm9jZXNzLWNsb3VkLnNlcnZpY2UnO1xuaW1wb3J0IHsgRGF0ZUNsb3VkRmlsdGVyVHlwZSwgRGF0ZVJhbmdlRmlsdGVyIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2RhdGUtY2xvdWQtZmlsdGVyLm1vZGVsJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgVW50eXBlZEZvcm1CdWlsZGVyLCBVbnR5cGVkRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBmaWx0ZXIsIGZpbmFsaXplLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEYXRlQWRhcHRlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgRGF0ZUZuc1V0aWxzLCBUcmFuc2xhdGlvblNlcnZpY2UsIFVzZXJQcmVmZXJlbmNlc1NlcnZpY2UsIFVzZXJQcmVmZXJlbmNlVmFsdWVzIH0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb3JlJztcbmltcG9ydCB7IFRhc2tGaWx0ZXJEaWFsb2dDbG91ZENvbXBvbmVudCB9IGZyb20gJy4uL3Rhc2stZmlsdGVyLWRpYWxvZy90YXNrLWZpbHRlci1kaWFsb2ctY2xvdWQuY29tcG9uZW50JztcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBJZGVudGl0eVVzZXJNb2RlbCB9IGZyb20gJy4uLy4uLy4uLy4uL3Blb3BsZS9tb2RlbHMvaWRlbnRpdHktdXNlci5tb2RlbCc7XG5pbXBvcnQgeyBJZGVudGl0eUdyb3VwTW9kZWwgfSBmcm9tICcuLi8uLi8uLi8uLi9ncm91cC9tb2RlbHMvaWRlbnRpdHktZ3JvdXAubW9kZWwnO1xuaW1wb3J0IHsgTWF0U2VsZWN0Q2hhbmdlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcbmltcG9ydCB7IEVudmlyb25tZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vY29tbW9uL2ludGVyZmFjZS9lbnZpcm9ubWVudC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgaXNWYWxpZCB9IGZyb20gJ2RhdGUtZm5zJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcblxuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uICovXG5cbmV4cG9ydCBpbnRlcmZhY2UgRHJvcGRvd25PcHRpb24ge1xuICAgIHZhbHVlOiBzdHJpbmc7XG4gICAgbGFiZWw6IHN0cmluZztcbn1cblxuY29uc3QgQUNUSU9OX1NBVkUgPSAnc2F2ZSc7XG5jb25zdCBBQ1RJT05fU0FWRV9BUyA9ICdzYXZlQXMnO1xuY29uc3QgQUNUSU9OX0RFTEVURSA9ICdkZWxldGUnO1xuY29uc3QgQVBQX0RFUExPWUVEX1NUQVRVUyA9ICdERVBMT1lFRCc7XG5jb25zdCBBUFBMSUNBVElPTl9OQU1FID0gJ2FwcE5hbWUnO1xuY29uc3QgUFJPQ0VTU19ERUZJTklUSU9OX05BTUUgPSAncHJvY2Vzc0RlZmluaXRpb25OYW1lJztcbmNvbnN0IExBU1RfTU9ESUZJRURfUFJPUEVSVFkgPSAnbGFzdE1vZGlmaWVkJztcbmNvbnN0IERBVEVfRk9STUFUID0gJ0REL01NL1lZWVknO1xuY29uc3QgREVGQVVMVF9BQ1RJT05TID0gW0FDVElPTl9TQVZFLCBBQ1RJT05fU0FWRV9BUywgQUNUSU9OX0RFTEVURV07XG5jb25zdCBTT1JUX1BST1BFUlRZID0gJ3NvcnQnO1xuY29uc3QgT1JERVJfUFJPUEVSVFkgPSAnb3JkZXInO1xuXG5ARGlyZWN0aXZlKClcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLWNsYXNzLXN1ZmZpeFxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VFZGl0VGFza0ZpbHRlckNsb3VkQ29tcG9uZW50PFQ+IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICAgIHB1YmxpYyBzdGF0aWMgQUNUSU9OU19ESVNBQkxFRF9CWV9ERUZBVUxUID0gW0FDVElPTl9TQVZFLCBBQ1RJT05fREVMRVRFXTtcblxuICAgIC8qKiAocmVxdWlyZWQpIE5hbWUgb2YgdGhlIGFwcC4gKi9cbiAgICBASW5wdXQoKVxuICAgIGFwcE5hbWU6IHN0cmluZyA9ICcnO1xuXG4gICAgLyoqIChyZXF1aXJlZCkgSUQgb2YgdGhlIHRhc2sgZmlsdGVyLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgaWQ6IHN0cmluZztcblxuICAgIC8qKiBMaXN0IG9mIGVudmlyb25tZW50cy4gKi9cbiAgICBASW5wdXQoKVxuICAgIGVudmlyb25tZW50TGlzdDogRW52aXJvbm1lbnRbXSA9IFtdO1xuXG4gICAgLyoqIHByb2Nlc3NJbnN0YW5jZUlkIG9mIHRoZSB0YXNrIGZpbHRlci4gKi9cbiAgICBASW5wdXQoKVxuICAgIHByb2Nlc3NJbnN0YW5jZUlkOiBzdHJpbmc7XG5cbiAgICAvKiogVG9nZ2xlcyB0aGUgdGl0bGUuICovXG4gICAgQElucHV0KClcbiAgICBzaG93VGl0bGUgPSB0cnVlO1xuXG4gICAgLyoqIFRvZ2dsZXMgZGlzcGxheSBvZiB0YXNrIGZpbHRlciBuYW1lICovXG4gICAgQElucHV0KClcbiAgICBzaG93VGFza0ZpbHRlck5hbWUgPSB0cnVlO1xuXG4gICAgLyoqIExpc3Qgb2YgdGFzayBmaWx0ZXIgcHJvcGVydGllcyB0byBkaXNwbGF5LiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZmlsdGVyUHJvcGVydGllczogc3RyaW5nW10gPSBbXTtcblxuICAgIC8qKiB1c2VyIHJvbGUuICovXG4gICAgQElucHV0KClcbiAgICByb2xlOiBzdHJpbmcgPSAnJztcblxuICAgIC8qKiBUb2dnbGVzIHRoZSBmaWx0ZXIgYWN0aW9ucy4gKi9cbiAgICBASW5wdXQoKVxuICAgIHNob3dGaWx0ZXJBY3Rpb25zID0gdHJ1ZTtcblxuICAgIC8qKiBMaXN0IG9mIHRhc2sgZmlsdGVyIGFjdGlvbnMuICovXG4gICAgQElucHV0KClcbiAgICBhY3Rpb25zOiBzdHJpbmdbXSA9IFsuLi5ERUZBVUxUX0FDVElPTlNdO1xuXG4gICAgLyoqIExpc3Qgb2Ygc29ydCBwcm9wZXJ0aWVzIHRvIGRpc3BsYXkuICovXG4gICAgQElucHV0KClcbiAgICBzb3J0UHJvcGVydGllczogc3RyaW5nW10gPSBbXTtcblxuICAgIC8qKiBFbWl0dGVkIHdoZW4gYSBmaWx0ZXIgYWN0aW9uIG9jY3VycyAoaS5lIFNhdmUsIFNhdmUgQXMsIERlbGV0ZSkuICovXG4gICAgQE91dHB1dCgpXG4gICAgYWN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjxUYXNrRmlsdGVyQWN0aW9uPigpO1xuXG4gICAgcHJvdGVjdGVkIGFwcGxpY2F0aW9uTmFtZXM6IERyb3Bkb3duT3B0aW9uW10gPSBbXTtcbiAgICBwcm90ZWN0ZWQgcHJvY2Vzc0RlZmluaXRpb25OYW1lczogRHJvcGRvd25PcHRpb25bXSA9IFtdO1xuICAgIHByb3RlY3RlZCBmb3JtSGFzQmVlbkNoYW5nZWQgPSBmYWxzZTtcblxuICAgIGVkaXRUYXNrRmlsdGVyRm9ybTogVW50eXBlZEZvcm1Hcm91cDtcbiAgICB0YXNrRmlsdGVyUHJvcGVydGllczogVGFza0ZpbHRlclByb3BlcnRpZXNbXSA9IFtdO1xuICAgIHRhc2tGaWx0ZXJBY3Rpb25zOiBUYXNrRmlsdGVyQWN0aW9uW10gPSBbXTtcbiAgICB0b2dnbGVGaWx0ZXJBY3Rpb25zOiBib29sZWFuID0gZmFsc2U7XG4gICAgc2VsZWN0ZWRTdGF0dXM6IFRhc2tTdGF0dXNGaWx0ZXI7XG4gICAgc29ydERpcmVjdGlvbnM6IERyb3Bkb3duT3B0aW9uW10gPSBbXG4gICAgICAgIHsgdmFsdWU6ICdBU0MnLCBsYWJlbDogJ0FERl9DTE9VRF9UQVNLX0ZJTFRFUlMuRElSRUNUSU9OLkFTQ0VORElORycgfSxcbiAgICAgICAgeyB2YWx1ZTogJ0RFU0MnLCBsYWJlbDogJ0FERl9DTE9VRF9UQVNLX0ZJTFRFUlMuRElSRUNUSU9OLkRFU0NFTkRJTkcnIH1cbiAgICBdO1xuICAgIGFsbFByb2Nlc3NEZWZpbml0aW9uTmFtZXNPcHRpb246IERyb3Bkb3duT3B0aW9uID0ge1xuICAgICAgICB2YWx1ZTogJycsXG4gICAgICAgIGxhYmVsOiAnQURGX0NMT1VEX1RBU0tfRklMVEVSUy5TVEFUVVMuQUxMJ1xuICAgIH07XG5cbiAgICAvKiogVGFzayBGaWx0ZXIgdG8gdXNlLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgdGFza0ZpbHRlcjogVDtcblxuICAgIGNoYW5nZWRUYXNrRmlsdGVyOiBUO1xuXG4gICAgLyoqIEVtaXR0ZWQgd2hlbiBhIHRhc2sgZmlsdGVyIHByb3BlcnR5IGNoYW5nZXMuICovXG4gICAgQE91dHB1dCgpXG4gICAgZmlsdGVyQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxUPigpO1xuXG4gICAgaXNMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBwcm90ZWN0ZWQgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcbiAgICBwcm90ZWN0ZWQgdHJhbnNsYXRlU2VydmljZSA9IGluamVjdChUcmFuc2xhdGlvblNlcnZpY2UpO1xuICAgIHByb3RlY3RlZCB0YXNrQ2xvdWRTZXJ2aWNlID0gaW5qZWN0KFRhc2tDbG91ZFNlcnZpY2UpO1xuICAgIHByb3RlY3RlZCB1c2VyUHJlZmVyZW5jZXNTZXJ2aWNlID0gaW5qZWN0KFVzZXJQcmVmZXJlbmNlc1NlcnZpY2UpO1xuICAgIHByb3RlY3RlZCBhcHBzUHJvY2Vzc0Nsb3VkU2VydmljZSA9IGluamVjdChBcHBzUHJvY2Vzc0Nsb3VkU2VydmljZSk7XG4gICAgcHJvdGVjdGVkIGRpYWxvZyA9IGluamVjdChNYXREaWFsb2cpO1xuICAgIHByb3RlY3RlZCBmb3JtQnVpbGRlciA9IGluamVjdChVbnR5cGVkRm9ybUJ1aWxkZXIpO1xuICAgIHByb3RlY3RlZCBkYXRlQWRhcHRlciA9IGluamVjdDxEYXRlQWRhcHRlcjxEYXRlPj4oRGF0ZUFkYXB0ZXIpO1xuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMudXNlclByZWZlcmVuY2VzU2VydmljZVxuICAgICAgICAgICAgLnNlbGVjdChVc2VyUHJlZmVyZW5jZVZhbHVlcy5Mb2NhbGUpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGxvY2FsZSkgPT4gdGhpcy5kYXRlQWRhcHRlci5zZXRMb2NhbGUobG9jYWxlKSk7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgICAgICBjb25zdCB7IGlkIH0gPSBjaGFuZ2VzO1xuICAgICAgICBpZiAoaWQgJiYgaWQuY3VycmVudFZhbHVlICE9PSBpZC5wcmV2aW91c1ZhbHVlKSB7XG4gICAgICAgICAgICBpZiAodGhpcy50YXNrRmlsdGVyICYmIHRoaXMudGFza0ZpbHRlclsnaWQnXSA9PT0gaWQuY3VycmVudFZhbHVlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy50YXNrRmlsdGVyUHJvcGVydGllcyA9IHRoaXMuY3JlYXRlQW5kRmlsdGVyUHJvcGVydGllcygpO1xuICAgICAgICAgICAgICAgIHRoaXMudGFza0ZpbHRlckFjdGlvbnMgPSB0aGlzLmNyZWF0ZUFuZEZpbHRlckFjdGlvbnMoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmJ1aWxkRm9ybSh0aGlzLnRhc2tGaWx0ZXJQcm9wZXJ0aWVzKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXRyaWV2ZVRhc2tGaWx0ZXJBbmRCdWlsZEZvcm0oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNyZWF0ZUZpbHRlckFjdGlvbnMoKTogVGFza0ZpbHRlckFjdGlvbltdIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBhY3Rpb25UeXBlOiBBQ1RJT05fU0FWRSxcbiAgICAgICAgICAgICAgICBpY29uOiAnYWRmOnNhdmUnLFxuICAgICAgICAgICAgICAgIHRvb2x0aXA6ICdBREZfQ0xPVURfRURJVF9UQVNLX0ZJTFRFUi5UT09MX1RJUC5TQVZFJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBhY3Rpb25UeXBlOiBBQ1RJT05fU0FWRV9BUyxcbiAgICAgICAgICAgICAgICBpY29uOiAnYWRmOnNhdmUtYXMnLFxuICAgICAgICAgICAgICAgIHRvb2x0aXA6ICdBREZfQ0xPVURfRURJVF9UQVNLX0ZJTFRFUi5UT09MX1RJUC5TQVZFX0FTJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBhY3Rpb25UeXBlOiBBQ1RJT05fREVMRVRFLFxuICAgICAgICAgICAgICAgIGljb246ICdkZWxldGUnLFxuICAgICAgICAgICAgICAgIHRvb2x0aXA6ICdBREZfQ0xPVURfRURJVF9UQVNLX0ZJTFRFUi5UT09MX1RJUC5ERUxFVEUnXG4gICAgICAgICAgICB9XG4gICAgICAgIF07XG4gICAgfVxuXG4gICAgaGFzRm9ybUNoYW5nZWQoYWN0aW9uOiBUYXNrRmlsdGVyQWN0aW9uKTogYm9vbGVhbiB7XG4gICAgICAgIGlmIChhY3Rpb24uYWN0aW9uVHlwZSA9PT0gQUNUSU9OX1NBVkUpIHtcbiAgICAgICAgICAgIHJldHVybiAhdGhpcy5mb3JtSGFzQmVlbkNoYW5nZWQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGFjdGlvbi5hY3Rpb25UeXBlID09PSBBQ1RJT05fU0FWRV9BUykge1xuICAgICAgICAgICAgcmV0dXJuICF0aGlzLmZvcm1IYXNCZWVuQ2hhbmdlZDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYWN0aW9uLmFjdGlvblR5cGUgPT09IEFDVElPTl9ERUxFVEUpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBvbkV4cGFuZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50b2dnbGVGaWx0ZXJBY3Rpb25zID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBvbkNsb3NlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnRvZ2dsZUZpbHRlckFjdGlvbnMgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBpc0Rpc2FibGVkQWN0aW9uKGFjdGlvbjogVGFza0ZpbHRlckFjdGlvbik6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc0Rpc2FibGVkRm9yRGVmYXVsdEZpbHRlcnMoYWN0aW9uKSA/IHRydWUgOiB0aGlzLmhhc0Zvcm1DaGFuZ2VkKGFjdGlvbik7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGRlZXBDb21wYXJlKGxlZnQ6IGFueSwgcmlnaHQ6IGFueSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkobGVmdCkudG9Mb3dlckNhc2UoKSA9PT0gSlNPTi5zdHJpbmdpZnkocmlnaHQpLnRvTG93ZXJDYXNlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0IHRoZSBzYW5pdGl6ZWQgZmlsdGVyIG5hbWVcbiAgICAgKlxuICAgICAqIEBwYXJhbSBmaWx0ZXJOYW1lIGZpbHRlciBuYW1lXG4gICAgICogQHJldHVybnMgc2FuaXRpemVkIGZpbHRlciBuYW1lXG4gICAgICovXG4gICAgZ2V0U2FuaXRpemVGaWx0ZXJOYW1lKGZpbHRlck5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IG5hbWVXaXRoSHlwaGVuID0gdGhpcy5yZXBsYWNlU3BhY2VXaXRoSHlwaGVuKGZpbHRlck5hbWUudHJpbSgpKTtcbiAgICAgICAgcmV0dXJuIG5hbWVXaXRoSHlwaGVuLnRvTG93ZXJDYXNlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXBsYWNlU3BhY2VXaXRoSHlwaGVuKG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHJlZ0V4dCA9IG5ldyBSZWdFeHAoJyAnLCAnZycpO1xuICAgICAgICByZXR1cm4gbmFtZS5yZXBsYWNlKHJlZ0V4dCwgJy0nKTtcbiAgICB9XG5cbiAgICBleGVjdXRlRmlsdGVyQWN0aW9ucyhhY3Rpb246IFRhc2tGaWx0ZXJBY3Rpb24pOiB2b2lkIHtcbiAgICAgICAgaWYgKGFjdGlvbi5hY3Rpb25UeXBlID09PSBBQ1RJT05fU0FWRSkge1xuICAgICAgICAgICAgdGhpcy5zYXZlKGFjdGlvbik7XG4gICAgICAgIH0gZWxzZSBpZiAoYWN0aW9uLmFjdGlvblR5cGUgPT09IEFDVElPTl9TQVZFX0FTKSB7XG4gICAgICAgICAgICB0aGlzLnNhdmVBcyhhY3Rpb24pO1xuICAgICAgICB9IGVsc2UgaWYgKGFjdGlvbi5hY3Rpb25UeXBlID09PSBBQ1RJT05fREVMRVRFKSB7XG4gICAgICAgICAgICB0aGlzLmRlbGV0ZShhY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0RGVwbG95ZWRBcHBsaWNhdGlvbnMoKSB7XG4gICAgICAgIHRoaXMuYXBwc1Byb2Nlc3NDbG91ZFNlcnZpY2UuZ2V0RGVwbG95ZWRBcHBsaWNhdGlvbnNCeVN0YXR1cyhBUFBfREVQTE9ZRURfU1RBVFVTLCB0aGlzLnJvbGUpLnN1YnNjcmliZSgoYXBwbGljYXRpb25zKSA9PiB7XG4gICAgICAgICAgICBpZiAoYXBwbGljYXRpb25zICYmIGFwcGxpY2F0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgYXBwbGljYXRpb25zLm1hcCgoYXBwbGljYXRpb24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hcHBsaWNhdGlvbk5hbWVzLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IHRoaXMuYXBwc1Byb2Nlc3NDbG91ZFNlcnZpY2UuZ2V0QXBwbGljYXRpb25MYWJlbChhcHBsaWNhdGlvbiwgdGhpcy5lbnZpcm9ubWVudExpc3QpLFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGFwcGxpY2F0aW9uLm5hbWVcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGdldFByb2Nlc3NEZWZpbml0aW9ucygpIHtcbiAgICAgICAgdGhpcy50YXNrQ2xvdWRTZXJ2aWNlLmdldFByb2Nlc3NEZWZpbml0aW9ucyh0aGlzLmFwcE5hbWUpLnN1YnNjcmliZSgocHJvY2Vzc0RlZmluaXRpb25zKSA9PiB7XG4gICAgICAgICAgICBpZiAocHJvY2Vzc0RlZmluaXRpb25zICYmIHByb2Nlc3NEZWZpbml0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wcm9jZXNzRGVmaW5pdGlvbk5hbWVzLnB1c2godGhpcy5hbGxQcm9jZXNzRGVmaW5pdGlvbk5hbWVzT3B0aW9uKTtcbiAgICAgICAgICAgICAgICBwcm9jZXNzRGVmaW5pdGlvbnMubWFwKChwcm9jZXNzRGVmaW5pdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnByb2Nlc3NEZWZpbml0aW9uTmFtZXMucHVzaCh7IGxhYmVsOiBwcm9jZXNzRGVmaW5pdGlvbi5uYW1lLCB2YWx1ZTogcHJvY2Vzc0RlZmluaXRpb24ubmFtZSB9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgY2hlY2tNYW5kYXRvcnlBY3Rpb25zKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5hY3Rpb25zID09PSB1bmRlZmluZWQgfHwgdGhpcy5hY3Rpb25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgdGhpcy5hY3Rpb25zID0gWy4uLkRFRkFVTFRfQUNUSU9OU107XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGlzVmFsaWRBY3Rpb24oYWN0aW9uczogc3RyaW5nW10sIGFjdGlvbjogYW55KTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBhY3Rpb25zID8gYWN0aW9ucy5pbmRleE9mKGFjdGlvbi5hY3Rpb25UeXBlKSA+PSAwIDogdHJ1ZTtcbiAgICB9XG5cbiAgICBpc0Zvcm1WYWxpZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWRpdFRhc2tGaWx0ZXJGb3JtLnZhbGlkO1xuICAgIH1cblxuICAgIGdldFByb3BlcnR5Q29udHJvbGxlcihwcm9wZXJ0eTogVGFza0ZpbHRlclByb3BlcnRpZXMpOiBBYnN0cmFjdENvbnRyb2wge1xuICAgICAgICByZXR1cm4gdGhpcy5lZGl0VGFza0ZpbHRlckZvcm0uZ2V0KHByb3BlcnR5LmtleSk7XG4gICAgfVxuXG4gICAgb25EYXRlQ2hhbmdlZChuZXdEYXRlVmFsdWU6IHN0cmluZyB8IERhdGUsIGRhdGVQcm9wZXJ0eTogVGFza0ZpbHRlclByb3BlcnRpZXMpIHtcbiAgICAgICAgaWYgKG5ld0RhdGVWYWx1ZSkge1xuICAgICAgICAgICAgbGV0IGRhdGU6IERhdGU7XG5cbiAgICAgICAgICAgIGlmICh0eXBlb2YgbmV3RGF0ZVZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIGRhdGUgPSBEYXRlRm5zVXRpbHMucGFyc2VEYXRlKG5ld0RhdGVWYWx1ZSwgREFURV9GT1JNQVQpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBkYXRlID0gbmV3RGF0ZVZhbHVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBjb250cm9sbGVyID0gdGhpcy5nZXRQcm9wZXJ0eUNvbnRyb2xsZXIoZGF0ZVByb3BlcnR5KTtcblxuICAgICAgICAgICAgaWYgKGlzVmFsaWQoZGF0ZSkpIHtcbiAgICAgICAgICAgICAgICBjb250cm9sbGVyLnNldFZhbHVlKGRhdGUudG9JU09TdHJpbmcoKSk7XG4gICAgICAgICAgICAgICAgY29udHJvbGxlci5zZXRFcnJvcnMobnVsbCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIuc2V0RXJyb3JzKHsgaW52YWxpZDogdHJ1ZSB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uRGF0ZVJhbmdlRmlsdGVyQ2hhbmdlZChkYXRlUmFuZ2U6IERhdGVSYW5nZUZpbHRlciwgcHJvcGVydHk6IFRhc2tGaWx0ZXJQcm9wZXJ0aWVzKSB7XG4gICAgICAgIHRoaXMuZWRpdFRhc2tGaWx0ZXJGb3JtLmdldChwcm9wZXJ0eS5hdHRyaWJ1dGVzPy5mcm9tKS5zZXRWYWx1ZShkYXRlUmFuZ2Uuc3RhcnREYXRlID8gZGF0ZVJhbmdlLnN0YXJ0RGF0ZSA6IG51bGwpO1xuICAgICAgICB0aGlzLmVkaXRUYXNrRmlsdGVyRm9ybS5nZXQocHJvcGVydHkuYXR0cmlidXRlcz8udG8pLnNldFZhbHVlKGRhdGVSYW5nZS5lbmREYXRlID8gZGF0ZVJhbmdlLmVuZERhdGUgOiBudWxsKTtcbiAgICAgICAgdGhpcy5lZGl0VGFza0ZpbHRlckZvcm0uZ2V0KHByb3BlcnR5LmF0dHJpYnV0ZXMuZGF0ZVR5cGUpLnNldFZhbHVlKERhdGVDbG91ZEZpbHRlclR5cGUuUkFOR0UpO1xuICAgIH1cblxuICAgIG9uQ2hhbmdlZFVzZXIodXNlcnM6IElkZW50aXR5VXNlck1vZGVsW10sIHVzZXJQcm9wZXJ0eTogVGFza0ZpbHRlclByb3BlcnRpZXMpIHtcbiAgICAgICAgbGV0IHNlbGVjdGVkVXNlcnM7XG4gICAgICAgIGlmICh1c2VyUHJvcGVydHkuc2VsZWN0aW9uTW9kZSA9PT0gJ3NpbmdsZScpIHtcbiAgICAgICAgICAgIHNlbGVjdGVkVXNlcnMgPSB1c2Vyc1swXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHNlbGVjdGVkVXNlcnMgPSB1c2VycztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmdldFByb3BlcnR5Q29udHJvbGxlcih1c2VyUHJvcGVydHkpLnNldFZhbHVlKHNlbGVjdGVkVXNlcnMpO1xuICAgIH1cblxuICAgIG9uQXNzaWduZWRVc2Vyc0NoYW5nZShhc3NpZ25lZFVzZXJzOiBJZGVudGl0eVVzZXJNb2RlbFtdKSB7XG4gICAgICAgIHRoaXMuZWRpdFRhc2tGaWx0ZXJGb3JtLmdldCgnY2FuZGlkYXRlR3JvdXBzJykuc2V0VmFsdWUodW5kZWZpbmVkKTtcbiAgICAgICAgdGhpcy5lZGl0VGFza0ZpbHRlckZvcm0uZ2V0KCdhc3NpZ25lZFVzZXJzJykuc2V0VmFsdWUoYXNzaWduZWRVc2Vycyk7XG4gICAgfVxuXG4gICAgb25Bc3NpZ25lZEdyb3Vwc0NoYW5nZShncm91cHM6IElkZW50aXR5R3JvdXBNb2RlbFtdKSB7XG4gICAgICAgIHRoaXMuZWRpdFRhc2tGaWx0ZXJGb3JtLmdldCgnYXNzaWduZWRVc2VycycpLnNldFZhbHVlKHVuZGVmaW5lZCk7XG4gICAgICAgIHRoaXMuZWRpdFRhc2tGaWx0ZXJGb3JtLmdldCgnY2FuZGlkYXRlR3JvdXBzJykuc2V0VmFsdWUoZ3JvdXBzKTtcbiAgICB9XG5cbiAgICBvbkFzc2lnbm1lbnRUeXBlQ2hhbmdlKGFzc2lnbm1lbnRUeXBlOiBBc3NpZ25tZW50VHlwZSkge1xuICAgICAgICBzd2l0Y2ggKGFzc2lnbm1lbnRUeXBlKSB7XG4gICAgICAgICAgICBjYXNlIEFzc2lnbm1lbnRUeXBlLlVOQVNTSUdORUQ6XG4gICAgICAgICAgICAgICAgdGhpcy5lZGl0VGFza0ZpbHRlckZvcm0uZ2V0KCdzdGF0dXMnKS5zZXRWYWx1ZShUYXNrU3RhdHVzRmlsdGVyLkNSRUFURUQpO1xuICAgICAgICAgICAgICAgIHRoaXMucmVzZXRBc3NpZ25tZW50VHlwZVZhbHVlcygpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBBc3NpZ25tZW50VHlwZS5OT05FOlxuICAgICAgICAgICAgICAgIHRoaXMuZWRpdFRhc2tGaWx0ZXJGb3JtLmdldCgnc3RhdHVzJykuc2V0VmFsdWUoVGFza1N0YXR1c0ZpbHRlci5BTEwpO1xuICAgICAgICAgICAgICAgIHRoaXMucmVzZXRBc3NpZ25tZW50VHlwZVZhbHVlcygpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBBc3NpZ25tZW50VHlwZS5BU1NJR05FRF9UTzpcbiAgICAgICAgICAgIGNhc2UgQXNzaWdubWVudFR5cGUuQ0FORElEQVRFX0dST1VQUzpcbiAgICAgICAgICAgICAgICB0aGlzLmVkaXRUYXNrRmlsdGVyRm9ybS5nZXQoJ3N0YXR1cycpLnNldFZhbHVlKFRhc2tTdGF0dXNGaWx0ZXIuQVNTSUdORUQpO1xuICAgICAgICAgICAgICAgIHRoaXMucmVzZXRBc3NpZ25tZW50VHlwZVZhbHVlcygpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICB0aGlzLmVkaXRUYXNrRmlsdGVyRm9ybS5nZXQoJ3N0YXR1cycpLnNldFZhbHVlKFRhc2tTdGF0dXNGaWx0ZXIuQVNTSUdORUQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25TdGF0dXNDaGFuZ2Uoc3RhdHVzOiBNYXRTZWxlY3RDaGFuZ2UpIHtcbiAgICAgICAgaWYgKHN0YXR1cy52YWx1ZSA9PT0gVGFza1N0YXR1c0ZpbHRlci5DUkVBVEVEKSB7XG4gICAgICAgICAgICB0aGlzLnJlc2V0QXNzaWdubWVudFR5cGVWYWx1ZXMoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRTdGF0dXMgPSBzdGF0dXMudmFsdWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXNldEFzc2lnbm1lbnRUeXBlVmFsdWVzKCkge1xuICAgICAgICB0aGlzLmVkaXRUYXNrRmlsdGVyRm9ybS5nZXQoJ2Fzc2lnbmVkVXNlcnMnKS5zZXRWYWx1ZSh1bmRlZmluZWQpO1xuICAgICAgICB0aGlzLmVkaXRUYXNrRmlsdGVyRm9ybS5nZXQoJ2NhbmRpZGF0ZUdyb3VwcycpLnNldFZhbHVlKHVuZGVmaW5lZCk7XG4gICAgfVxuXG4gICAgaGFzRXJyb3IocHJvcGVydHk6IFRhc2tGaWx0ZXJQcm9wZXJ0aWVzKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGNvbnRyb2xsZXIgPSB0aGlzLmdldFByb3BlcnR5Q29udHJvbGxlcihwcm9wZXJ0eSk7XG4gICAgICAgIHJldHVybiAhIWNvbnRyb2xsZXIuZXJyb3JzPy5pbnZhbGlkO1xuICAgIH1cblxuICAgIGhhc0xhc3RNb2RpZmllZFByb3BlcnR5KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5maWx0ZXJQcm9wZXJ0aWVzLmluZGV4T2YoTEFTVF9NT0RJRklFRF9QUk9QRVJUWSkgPj0gMDtcbiAgICB9XG5cbiAgICBnZXQgY3JlYXRlU29ydFByb3BlcnRpZXMoKTogRmlsdGVyT3B0aW9uc1tdIHtcbiAgICAgICAgdGhpcy5jaGVja01hbmRhdG9yeVNvcnRQcm9wZXJ0aWVzKCk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuc29ydFByb3BlcnRpZXMubWFwKChwcm9wZXJ0eTogc3RyaW5nKSA9PiAoeyBsYWJlbDogcHJvcGVydHksIHZhbHVlOiBwcm9wZXJ0eSB9KSk7XG4gICAgfVxuXG4gICAgY3JlYXRlQW5kRmlsdGVyQWN0aW9ucygpOiBUYXNrRmlsdGVyQWN0aW9uW10ge1xuICAgICAgICB0aGlzLmNoZWNrTWFuZGF0b3J5QWN0aW9ucygpO1xuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVGaWx0ZXJBY3Rpb25zKCkuZmlsdGVyKChhY3Rpb24pID0+IHRoaXMuaXNWYWxpZEFjdGlvbih0aGlzLmFjdGlvbnMsIGFjdGlvbikpO1xuICAgIH1cblxuICAgIGlzVmFsaWRQcm9wZXJ0eShmaWx0ZXJQcm9wZXJ0aWVzOiBzdHJpbmdbXSwga2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGZpbHRlclByb3BlcnRpZXMgPyBmaWx0ZXJQcm9wZXJ0aWVzLmluZGV4T2Yoa2V5KSA+PSAwIDogdHJ1ZTtcbiAgICB9XG5cbiAgICBjaGVja0ZvclByb3BlcnR5KHByb3BlcnR5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyUHJvcGVydGllcyA/IHRoaXMuZmlsdGVyUHJvcGVydGllcy5pbmRleE9mKHByb3BlcnR5KSA+PSAwIDogZmFsc2U7XG4gICAgfVxuXG4gICAgaGFzU29ydFByb3BlcnR5KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5maWx0ZXJQcm9wZXJ0aWVzLmluZGV4T2YoU09SVF9QUk9QRVJUWSkgPj0gMDtcbiAgICB9XG5cbiAgICByZW1vdmVPcmRlclByb3BlcnR5KGZpbHRlcmVkUHJvcGVydGllczogVGFza0ZpbHRlclByb3BlcnRpZXNbXSk6IFRhc2tGaWx0ZXJQcm9wZXJ0aWVzW10ge1xuICAgICAgICBpZiAoZmlsdGVyZWRQcm9wZXJ0aWVzPy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICByZXR1cm4gZmlsdGVyZWRQcm9wZXJ0aWVzLmZpbHRlcigocHJvcGVydHkpID0+IHByb3BlcnR5LmtleSAhPT0gT1JERVJfUFJPUEVSVFkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBjcmVhdGVBbmRGaWx0ZXJQcm9wZXJ0aWVzKCkge1xuICAgICAgICB0aGlzLmNoZWNrTWFuZGF0b3J5RmlsdGVyUHJvcGVydGllcygpO1xuXG4gICAgICAgIGlmICh0aGlzLmNoZWNrRm9yUHJvcGVydHkoQVBQTElDQVRJT05fTkFNRSkpIHtcbiAgICAgICAgICAgIHRoaXMuYXBwbGljYXRpb25OYW1lcyA9IFtdO1xuICAgICAgICAgICAgdGhpcy5nZXREZXBsb3llZEFwcGxpY2F0aW9ucygpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmNoZWNrRm9yUHJvcGVydHkoUFJPQ0VTU19ERUZJTklUSU9OX05BTUUpKSB7XG4gICAgICAgICAgICB0aGlzLnByb2Nlc3NEZWZpbml0aW9uTmFtZXMgPSBbXTtcbiAgICAgICAgICAgIHRoaXMuZ2V0UHJvY2Vzc0RlZmluaXRpb25zKCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBkZWZhdWx0UHJvcGVydGllcyA9IHRoaXMuY3JlYXRlVGFza0ZpbHRlclByb3BlcnRpZXMoKTtcbiAgICAgICAgbGV0IGZpbHRlcmVkUHJvcGVydGllcyA9IGRlZmF1bHRQcm9wZXJ0aWVzLmZpbHRlcigoZmlsdGVyUHJvcGVydHkpID0+IHRoaXMuaXNWYWxpZFByb3BlcnR5KHRoaXMuZmlsdGVyUHJvcGVydGllcywgZmlsdGVyUHJvcGVydHkua2V5KSk7XG5cbiAgICAgICAgaWYgKCF0aGlzLmhhc1NvcnRQcm9wZXJ0eSgpKSB7XG4gICAgICAgICAgICBmaWx0ZXJlZFByb3BlcnRpZXMgPSB0aGlzLnJlbW92ZU9yZGVyUHJvcGVydHkoZmlsdGVyZWRQcm9wZXJ0aWVzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmaWx0ZXJlZFByb3BlcnRpZXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2sgZm9yIGVkaXQgdGFzayBmaWx0ZXIgZm9ybSBjaGFuZ2VzXG4gICAgICovXG4gICAgb25GaWx0ZXJDaGFuZ2UoKSB7XG4gICAgICAgIHRoaXMuZWRpdFRhc2tGaWx0ZXJGb3JtLnZhbHVlQ2hhbmdlc1xuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgZGVib3VuY2VUaW1lKDUwMCksXG4gICAgICAgICAgICAgICAgZmlsdGVyKCgpID0+IHRoaXMuaXNGb3JtVmFsaWQoKSksXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZilcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGZvcm1WYWx1ZXMpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmFzc2lnbk5ld0ZpbHRlcihmb3JtVmFsdWVzKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIGdldEZvcm1Db250cm9sc0NvbmZpZyh0YXNrRmlsdGVyUHJvcGVydGllczogVGFza0ZpbHRlclByb3BlcnRpZXNbXSk6IGFueSB7XG4gICAgICAgIGNvbnN0IHByb3BlcnRpZXMgPSB0YXNrRmlsdGVyUHJvcGVydGllcy5tYXAoKHByb3BlcnR5KSA9PiB7XG4gICAgICAgICAgICBpZiAocHJvcGVydHkuYXR0cmlidXRlcykge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmdldEF0dHJpYnV0ZXNDb250cm9sQ29uZmlnKHByb3BlcnR5KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgW3Byb3BlcnR5LmtleV06IHByb3BlcnR5LnZhbHVlIH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gcHJvcGVydGllcy5yZWR1Y2UoKHJlc3VsdCwgY3VycmVudCkgPT4gT2JqZWN0LmFzc2lnbihyZXN1bHQsIGN1cnJlbnQpLCB7fSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRBdHRyaWJ1dGVzQ29udHJvbENvbmZpZyhwcm9wZXJ0eTogVGFza0ZpbHRlclByb3BlcnRpZXMpIHtcbiAgICAgICAgcmV0dXJuIE9iamVjdC52YWx1ZXMocHJvcGVydHkuYXR0cmlidXRlcykucmVkdWNlKChyZXN1bHQsIGtleSkgPT4ge1xuICAgICAgICAgICAgcmVzdWx0W2tleV0gPSBwcm9wZXJ0eS52YWx1ZVtrZXldO1xuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfSwge30pO1xuICAgIH1cblxuICAgIGJ1aWxkRm9ybSh0YXNrRmlsdGVyUHJvcGVydGllczogVGFza0ZpbHRlclByb3BlcnRpZXNbXSkge1xuICAgICAgICB0aGlzLmZvcm1IYXNCZWVuQ2hhbmdlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmVkaXRUYXNrRmlsdGVyRm9ybSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAodGhpcy5nZXRGb3JtQ29udHJvbHNDb25maWcodGFza0ZpbHRlclByb3BlcnRpZXMpKTtcbiAgICAgICAgdGhpcy5vbkZpbHRlckNoYW5nZSgpO1xuICAgIH1cblxuICAgIG9uRGF0ZVR5cGVDaGFuZ2UoZGF0ZVR5cGU6IERhdGVDbG91ZEZpbHRlclR5cGUsIHByb3BlcnR5OiBUYXNrRmlsdGVyUHJvcGVydGllcykge1xuICAgICAgICB0aGlzLmVkaXRUYXNrRmlsdGVyRm9ybS5nZXQocHJvcGVydHkuYXR0cmlidXRlcy5kYXRlVHlwZSkuc2V0VmFsdWUoZGF0ZVR5cGUpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCByZXRyaWV2ZVRhc2tGaWx0ZXJBbmRCdWlsZEZvcm0oKSB7XG4gICAgICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcblxuICAgICAgICB0aGlzLmdldFRhc2tGaWx0ZXJCeUlkKHRoaXMuYXBwTmFtZSwgdGhpcy5pZClcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIGZpbmFsaXplKCgpID0+ICh0aGlzLmlzTG9hZGluZyA9IGZhbHNlKSksXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZilcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy50YXNrRmlsdGVyID0gcmVzcG9uc2U7XG4gICAgICAgICAgICAgICAgdGhpcy50YXNrRmlsdGVyUHJvcGVydGllcyA9IHRoaXMuY3JlYXRlQW5kRmlsdGVyUHJvcGVydGllcygpO1xuICAgICAgICAgICAgICAgIHRoaXMudGFza0ZpbHRlckFjdGlvbnMgPSB0aGlzLmNyZWF0ZUFuZEZpbHRlckFjdGlvbnMoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmJ1aWxkRm9ybSh0aGlzLnRhc2tGaWx0ZXJQcm9wZXJ0aWVzKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIGRlbGV0ZShkZWxldGVBY3Rpb246IFRhc2tGaWx0ZXJBY3Rpb24pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZWxldGVGaWx0ZXIodGhpcy50YXNrRmlsdGVyKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgZmlsdGVyKChmaWx0ZXJzKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZUFjdGlvbi5maWx0ZXIgPSB0aGlzLnRhc2tGaWx0ZXI7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWN0aW9uLmVtaXQoZGVsZXRlQWN0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZpbHRlcnMubGVuZ3RoID09PSAwO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLnJlc3RvcmVEZWZhdWx0VGFza0ZpbHRlcnMoKSksXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZilcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge30pO1xuICAgIH1cblxuICAgIHNhdmUoc2F2ZUFjdGlvbjogVGFza0ZpbHRlckFjdGlvbik6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZUZpbHRlcih0aGlzLmNoYW5nZWRUYXNrRmlsdGVyKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICBzYXZlQWN0aW9uLmZpbHRlciA9IHRoaXMuY2hhbmdlZFRhc2tGaWx0ZXI7XG4gICAgICAgICAgICAgICAgdGhpcy5hY3Rpb24uZW1pdChzYXZlQWN0aW9uKTtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm1IYXNCZWVuQ2hhbmdlZCA9IHRoaXMuZGVlcENvbXBhcmUodGhpcy5jaGFuZ2VkVGFza0ZpbHRlciwgdGhpcy50YXNrRmlsdGVyKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHNhdmVBcyhzYXZlQXNBY3Rpb246IFRhc2tGaWx0ZXJBY3Rpb24pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihUYXNrRmlsdGVyRGlhbG9nQ2xvdWRDb21wb25lbnQsIHtcbiAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICBuYW1lOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgodGhpcy50YXNrRmlsdGVyIGFzIGFueSk/Lm5hbWUpXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaGVpZ2h0OiAnYXV0bycsXG4gICAgICAgICAgICBtaW5XaWR0aDogJzMwJSdcbiAgICAgICAgfSk7XG4gICAgICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XG4gICAgICAgICAgICBpZiAocmVzdWx0ICYmIHJlc3VsdC5hY3Rpb24gPT09IFRhc2tGaWx0ZXJEaWFsb2dDbG91ZENvbXBvbmVudC5BQ1RJT05fU0FWRSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpbHRlcklkID0gTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyKDIsIDkpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpbHRlcktleSA9IHRoaXMuZ2V0U2FuaXRpemVGaWx0ZXJOYW1lKHJlc3VsdC5uYW1lKTtcbiAgICAgICAgICAgICAgICBjb25zdCBuZXdGaWx0ZXIgPSB7XG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IHJlc3VsdC5uYW1lLFxuICAgICAgICAgICAgICAgICAgICBpY29uOiByZXN1bHQuaWNvbixcbiAgICAgICAgICAgICAgICAgICAgaWQ6IGZpbHRlcklkLFxuICAgICAgICAgICAgICAgICAgICBrZXk6ICdjdXN0b20tJyArIGZpbHRlcktleVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0RmlsdGVyOiBUID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5jaGFuZ2VkVGFza0ZpbHRlciwgbmV3RmlsdGVyKTtcbiAgICAgICAgICAgICAgICB0aGlzLmFkZEZpbHRlcihyZXN1bHRGaWx0ZXIpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHNhdmVBc0FjdGlvbi5maWx0ZXIgPSByZXN1bHRGaWx0ZXI7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWN0aW9uLmVtaXQoc2F2ZUFzQWN0aW9uKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgY2hlY2tNYW5kYXRvcnlGaWx0ZXJQcm9wZXJ0aWVzKCkge1xuICAgICAgICBpZiAodGhpcy5maWx0ZXJQcm9wZXJ0aWVzID09PSB1bmRlZmluZWQgfHwgdGhpcy5maWx0ZXJQcm9wZXJ0aWVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgdGhpcy5maWx0ZXJQcm9wZXJ0aWVzID0gdGhpcy5nZXREZWZhdWx0RmlsdGVyUHJvcGVydGllcygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY2hlY2tNYW5kYXRvcnlTb3J0UHJvcGVydGllcygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuc29ydFByb3BlcnRpZXMgPT09IHVuZGVmaW5lZCB8fCB0aGlzLnNvcnRQcm9wZXJ0aWVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgdGhpcy5zb3J0UHJvcGVydGllcyA9IHRoaXMuZ2V0RGVmYXVsdFNvcnRQcm9wZXJ0aWVzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhYnN0cmFjdCBnZXREZWZhdWx0RmlsdGVyUHJvcGVydGllcygpOiBzdHJpbmdbXTtcbiAgICBhYnN0cmFjdCBnZXREZWZhdWx0U29ydFByb3BlcnRpZXMoKTogc3RyaW5nW107XG4gICAgYWJzdHJhY3QgaXNEaXNhYmxlZEZvckRlZmF1bHRGaWx0ZXJzKGFjdGlvbjogVGFza0ZpbHRlckFjdGlvbik6IGJvb2xlYW47XG4gICAgYWJzdHJhY3QgY3JlYXRlVGFza0ZpbHRlclByb3BlcnRpZXMoKTogVGFza0ZpbHRlclByb3BlcnRpZXNbXTtcbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0VGFza0ZpbHRlckJ5SWQoYXBwTmFtZTogc3RyaW5nLCBpZDogc3RyaW5nKTtcbiAgICBhYnN0cmFjdCBhc3NpZ25OZXdGaWx0ZXIoZm9ybVZhbHVlcyk6IHZvaWQ7XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgcmVzdG9yZURlZmF1bHRUYXNrRmlsdGVycygpOiBPYnNlcnZhYmxlPFRbXT47XG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGFkZEZpbHRlcihmaWx0ZXJUb0FkZDogVCk6IE9ic2VydmFibGU8YW55PjtcbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZGVsZXRlRmlsdGVyKGZpbHRlclRvRGVsZXRlOiBUKTogT2JzZXJ2YWJsZTxUW10+O1xuICAgIHByb3RlY3RlZCBhYnN0cmFjdCB1cGRhdGVGaWx0ZXIoZmlsdGVyVG9VcGRhdGU6IFQpOiBPYnNlcnZhYmxlPGFueT47XG59XG4iXX0=
|
|
467
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1lZGl0LXRhc2stZmlsdGVyLWNsb3VkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9wcm9jZXNzLXNlcnZpY2VzLWNsb3VkL3NyYy9saWIvdGFzay90YXNrLWZpbHRlcnMvY29tcG9uZW50cy9lZGl0LXRhc2stZmlsdGVycy9iYXNlLWVkaXQtdGFzay1maWx0ZXItY2xvdWQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQzdILE9BQU8sRUFBRSxjQUFjLEVBQXlELGdCQUFnQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDMUksT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDMUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDaEcsT0FBTyxFQUFFLG1CQUFtQixFQUFtQixNQUFNLDRDQUE0QyxDQUFDO0FBQ2xHLE9BQU8sRUFBbUIsa0JBQWtCLEVBQW9CLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLGtCQUFrQixFQUFFLHNCQUFzQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEgsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDMUcsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixD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QkFEYixLQUFLO2dCQUtOLE1BQU07c0JBREwsTUFBTTtnQkF1QlAsVUFBVTtzQkFEVCxLQUFLO2dCQU9OLFlBQVk7c0JBRFgsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgRGVzdHJveVJlZiwgRGlyZWN0aXZlLCBFdmVudEVtaXR0ZXIsIGluamVjdCwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFzc2lnbm1lbnRUeXBlLCBGaWx0ZXJPcHRpb25zLCBUYXNrRmlsdGVyQWN0aW9uLCBUYXNrRmlsdGVyUHJvcGVydGllcywgVGFza1N0YXR1c0ZpbHRlciB9IGZyb20gJy4uLy4uL21vZGVscy9maWx0ZXItY2xvdWQubW9kZWwnO1xuaW1wb3J0IHsgVGFza0Nsb3VkU2VydmljZSB9IGZyb20gJy4vLi4vLi4vLi4vc2VydmljZXMvdGFzay1jbG91ZC5zZXJ2aWNlJztcbmltcG9ydCB7IEFwcHNQcm9jZXNzQ2xvdWRTZXJ2aWNlIH0gZnJvbSAnLi8uLi8uLi8uLi8uLi9hcHAvc2VydmljZXMvYXBwcy1wcm9jZXNzLWNsb3VkLnNlcnZpY2UnO1xuaW1wb3J0IHsgRGF0ZUNsb3VkRmlsdGVyVHlwZSwgRGF0ZVJhbmdlRmlsdGVyIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2RhdGUtY2xvdWQtZmlsdGVyLm1vZGVsJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgVW50eXBlZEZvcm1CdWlsZGVyLCBVbnR5cGVkRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBmaWx0ZXIsIGZpbmFsaXplLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEYXRlQWRhcHRlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgRGF0ZUZuc1V0aWxzLCBUcmFuc2xhdGlvblNlcnZpY2UsIFVzZXJQcmVmZXJlbmNlc1NlcnZpY2UsIFVzZXJQcmVmZXJlbmNlVmFsdWVzIH0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb3JlJztcbmltcG9ydCB7IFRhc2tGaWx0ZXJEaWFsb2dDbG91ZENvbXBvbmVudCB9IGZyb20gJy4uL3Rhc2stZmlsdGVyLWRpYWxvZy90YXNrLWZpbHRlci1kaWFsb2ctY2xvdWQuY29tcG9uZW50JztcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBJZGVudGl0eVVzZXJNb2RlbCB9IGZyb20gJy4uLy4uLy4uLy4uL3Blb3BsZS9tb2RlbHMvaWRlbnRpdHktdXNlci5tb2RlbCc7XG5pbXBvcnQgeyBJZGVudGl0eUdyb3VwTW9kZWwgfSBmcm9tICcuLi8uLi8uLi8uLi9ncm91cC9tb2RlbHMvaWRlbnRpdHktZ3JvdXAubW9kZWwnO1xuaW1wb3J0IHsgTWF0U2VsZWN0Q2hhbmdlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcbmltcG9ydCB7IEVudmlyb25tZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vY29tbW9uL2ludGVyZmFjZS9lbnZpcm9ubWVudC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgaXNWYWxpZCB9IGZyb20gJ2RhdGUtZm5zJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcblxuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uICovXG5cbmV4cG9ydCBpbnRlcmZhY2UgRHJvcGRvd25PcHRpb24ge1xuICAgIHZhbHVlOiBzdHJpbmc7XG4gICAgbGFiZWw6IHN0cmluZztcbn1cblxuY29uc3QgQUNUSU9OX1NBVkUgPSAnc2F2ZSc7XG5jb25zdCBBQ1RJT05fU0FWRV9BUyA9ICdzYXZlQXMnO1xuY29uc3QgQUNUSU9OX0RFTEVURSA9ICdkZWxldGUnO1xuY29uc3QgQVBQX0RFUExPWUVEX1NUQVRVUyA9ICdERVBMT1lFRCc7XG5jb25zdCBBUFBMSUNBVElPTl9OQU1FID0gJ2FwcE5hbWUnO1xuY29uc3QgUFJPQ0VTU19ERUZJTklUSU9OX05BTUUgPSAncHJvY2Vzc0RlZmluaXRpb25OYW1lJztcbmNvbnN0IExBU1RfTU9ESUZJRURfUFJPUEVSVFkgPSAnbGFzdE1vZGlmaWVkJztcbmNvbnN0IERBVEVfRk9STUFUID0gJ0REL01NL1lZWVknO1xuY29uc3QgREVGQVVMVF9BQ1RJT05TID0gW0FDVElPTl9TQVZFLCBBQ1RJT05fU0FWRV9BUywgQUNUSU9OX0RFTEVURV07XG5jb25zdCBTT1JUX1BST1BFUlRZID0gJ3NvcnQnO1xuY29uc3QgT1JERVJfUFJPUEVSVFkgPSAnb3JkZXInO1xuXG5ARGlyZWN0aXZlKClcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLWNsYXNzLXN1ZmZpeFxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VFZGl0VGFza0ZpbHRlckNsb3VkQ29tcG9uZW50PFQ+IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICAgIHB1YmxpYyBzdGF0aWMgQUNUSU9OU19ESVNBQkxFRF9CWV9ERUZBVUxUID0gW0FDVElPTl9TQVZFLCBBQ1RJT05fREVMRVRFXTtcblxuICAgIC8qKiAocmVxdWlyZWQpIE5hbWUgb2YgdGhlIGFwcC4gKi9cbiAgICBASW5wdXQoKVxuICAgIGFwcE5hbWU6IHN0cmluZyA9ICcnO1xuXG4gICAgLyoqIChyZXF1aXJlZCkgSUQgb2YgdGhlIHRhc2sgZmlsdGVyLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgaWQ6IHN0cmluZztcblxuICAgIC8qKiBMaXN0IG9mIGVudmlyb25tZW50cy4gKi9cbiAgICBASW5wdXQoKVxuICAgIGVudmlyb25tZW50TGlzdDogRW52aXJvbm1lbnRbXSA9IFtdO1xuXG4gICAgLyoqIHByb2Nlc3NJbnN0YW5jZUlkIG9mIHRoZSB0YXNrIGZpbHRlci4gKi9cbiAgICBASW5wdXQoKVxuICAgIHByb2Nlc3NJbnN0YW5jZUlkOiBzdHJpbmc7XG5cbiAgICAvKiogVG9nZ2xlcyB0aGUgdGl0bGUuICovXG4gICAgQElucHV0KClcbiAgICBzaG93VGl0bGUgPSB0cnVlO1xuXG4gICAgLyoqIFRvZ2dsZXMgZGlzcGxheSBvZiB0YXNrIGZpbHRlciBuYW1lICovXG4gICAgQElucHV0KClcbiAgICBzaG93VGFza0ZpbHRlck5hbWUgPSB0cnVlO1xuXG4gICAgLyoqIExpc3Qgb2YgdGFzayBmaWx0ZXIgcHJvcGVydGllcyB0byBkaXNwbGF5LiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZmlsdGVyUHJvcGVydGllczogc3RyaW5nW10gPSBbXTtcblxuICAgIC8qKiB1c2VyIHJvbGUuICovXG4gICAgQElucHV0KClcbiAgICByb2xlOiBzdHJpbmcgPSAnJztcblxuICAgIC8qKiBUb2dnbGVzIHRoZSBmaWx0ZXIgYWN0aW9ucy4gKi9cbiAgICBASW5wdXQoKVxuICAgIHNob3dGaWx0ZXJBY3Rpb25zID0gdHJ1ZTtcblxuICAgIC8qKiBMaXN0IG9mIHRhc2sgZmlsdGVyIGFjdGlvbnMuICovXG4gICAgQElucHV0KClcbiAgICBhY3Rpb25zOiBzdHJpbmdbXSA9IFsuLi5ERUZBVUxUX0FDVElPTlNdO1xuXG4gICAgLyoqIExpc3Qgb2Ygc29ydCBwcm9wZXJ0aWVzIHRvIGRpc3BsYXkuICovXG4gICAgQElucHV0KClcbiAgICBzb3J0UHJvcGVydGllczogc3RyaW5nW10gPSBbXTtcblxuICAgIC8qKiBFbWl0dGVkIHdoZW4gYSBmaWx0ZXIgYWN0aW9uIG9jY3VycyAoaS5lIFNhdmUsIFNhdmUgQXMsIERlbGV0ZSkuICovXG4gICAgQE91dHB1dCgpXG4gICAgYWN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjxUYXNrRmlsdGVyQWN0aW9uPigpO1xuXG4gICAgcHJvdGVjdGVkIGFwcGxpY2F0aW9uTmFtZXM6IERyb3Bkb3duT3B0aW9uW10gPSBbXTtcbiAgICBwcm90ZWN0ZWQgcHJvY2Vzc0RlZmluaXRpb25OYW1lczogRHJvcGRvd25PcHRpb25bXSA9IFtdO1xuICAgIHByb3RlY3RlZCBmb3JtSGFzQmVlbkNoYW5nZWQgPSBmYWxzZTtcblxuICAgIGVkaXRUYXNrRmlsdGVyRm9ybTogVW50eXBlZEZvcm1Hcm91cDtcbiAgICB0YXNrRmlsdGVyUHJvcGVydGllczogVGFza0ZpbHRlclByb3BlcnRpZXNbXSA9IFtdO1xuICAgIHRhc2tGaWx0ZXJBY3Rpb25zOiBUYXNrRmlsdGVyQWN0aW9uW10gPSBbXTtcbiAgICB0b2dnbGVGaWx0ZXJBY3Rpb25zOiBib29sZWFuID0gZmFsc2U7XG4gICAgc2VsZWN0ZWRTdGF0dXM6IFRhc2tTdGF0dXNGaWx0ZXI7XG4gICAgc29ydERpcmVjdGlvbnM6IERyb3Bkb3duT3B0aW9uW10gPSBbXG4gICAgICAgIHsgdmFsdWU6ICdBU0MnLCBsYWJlbDogJ0FERl9DTE9VRF9UQVNLX0ZJTFRFUlMuRElSRUNUSU9OLkFTQ0VORElORycgfSxcbiAgICAgICAgeyB2YWx1ZTogJ0RFU0MnLCBsYWJlbDogJ0FERl9DTE9VRF9UQVNLX0ZJTFRFUlMuRElSRUNUSU9OLkRFU0NFTkRJTkcnIH1cbiAgICBdO1xuICAgIGFsbFByb2Nlc3NEZWZpbml0aW9uTmFtZXNPcHRpb246IERyb3Bkb3duT3B0aW9uID0ge1xuICAgICAgICB2YWx1ZTogJycsXG4gICAgICAgIGxhYmVsOiAnQURGX0NMT1VEX1RBU0tfRklMVEVSUy5TVEFUVVMuQUxMJ1xuICAgIH07XG5cbiAgICAvKiogVGFzayBGaWx0ZXIgdG8gdXNlLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgdGFza0ZpbHRlcjogVDtcblxuICAgIGNoYW5nZWRUYXNrRmlsdGVyOiBUO1xuXG4gICAgLyoqIEVtaXR0ZWQgd2hlbiBhIHRhc2sgZmlsdGVyIHByb3BlcnR5IGNoYW5nZXMuICovXG4gICAgQE91dHB1dCgpXG4gICAgZmlsdGVyQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxUPigpO1xuXG4gICAgaXNMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBwcm90ZWN0ZWQgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcbiAgICBwcm90ZWN0ZWQgdHJhbnNsYXRlU2VydmljZSA9IGluamVjdChUcmFuc2xhdGlvblNlcnZpY2UpO1xuICAgIHByb3RlY3RlZCB0YXNrQ2xvdWRTZXJ2aWNlID0gaW5qZWN0KFRhc2tDbG91ZFNlcnZpY2UpO1xuICAgIHByb3RlY3RlZCB1c2VyUHJlZmVyZW5jZXNTZXJ2aWNlID0gaW5qZWN0KFVzZXJQcmVmZXJlbmNlc1NlcnZpY2UpO1xuICAgIHByb3RlY3RlZCBhcHBzUHJvY2Vzc0Nsb3VkU2VydmljZSA9IGluamVjdChBcHBzUHJvY2Vzc0Nsb3VkU2VydmljZSk7XG4gICAgcHJvdGVjdGVkIGRpYWxvZyA9IGluamVjdChNYXREaWFsb2cpO1xuICAgIHByb3RlY3RlZCBmb3JtQnVpbGRlciA9IGluamVjdChVbnR5cGVkRm9ybUJ1aWxkZXIpO1xuICAgIHByb3RlY3RlZCBkYXRlQWRhcHRlciA9IGluamVjdDxEYXRlQWRhcHRlcjxEYXRlPj4oRGF0ZUFkYXB0ZXIpO1xuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMudXNlclByZWZlcmVuY2VzU2VydmljZVxuICAgICAgICAgICAgLnNlbGVjdChVc2VyUHJlZmVyZW5jZVZhbHVlcy5Mb2NhbGUpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGxvY2FsZSkgPT4gdGhpcy5kYXRlQWRhcHRlci5zZXRMb2NhbGUobG9jYWxlKSk7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgICAgICBjb25zdCB7IGlkIH0gPSBjaGFuZ2VzO1xuICAgICAgICBpZiAoaWQgJiYgaWQuY3VycmVudFZhbHVlICE9PSBpZC5wcmV2aW91c1ZhbHVlKSB7XG4gICAgICAgICAgICBpZiAodGhpcy50YXNrRmlsdGVyICYmIHRoaXMudGFza0ZpbHRlclsnaWQnXSA9PT0gaWQuY3VycmVudFZhbHVlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy50YXNrRmlsdGVyUHJvcGVydGllcyA9IHRoaXMuY3JlYXRlQW5kRmlsdGVyUHJvcGVydGllcygpO1xuICAgICAgICAgICAgICAgIHRoaXMudGFza0ZpbHRlckFjdGlvbnMgPSB0aGlzLmNyZWF0ZUFuZEZpbHRlckFjdGlvbnMoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmJ1aWxkRm9ybSh0aGlzLnRhc2tGaWx0ZXJQcm9wZXJ0aWVzKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXRyaWV2ZVRhc2tGaWx0ZXJBbmRCdWlsZEZvcm0oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNyZWF0ZUZpbHRlckFjdGlvbnMoKTogVGFza0ZpbHRlckFjdGlvbltdIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBhY3Rpb25UeXBlOiBBQ1RJT05fU0FWRSxcbiAgICAgICAgICAgICAgICBpY29uOiAnYWRmOnNhdmUnLFxuICAgICAgICAgICAgICAgIHRvb2x0aXA6ICdBREZfQ0xPVURfRURJVF9UQVNLX0ZJTFRFUi5UT09MX1RJUC5TQVZFJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBhY3Rpb25UeXBlOiBBQ1RJT05fU0FWRV9BUyxcbiAgICAgICAgICAgICAgICBpY29uOiAnYWRmOnNhdmUtYXMnLFxuICAgICAgICAgICAgICAgIHRvb2x0aXA6ICdBREZfQ0xPVURfRURJVF9UQVNLX0ZJTFRFUi5UT09MX1RJUC5TQVZFX0FTJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBhY3Rpb25UeXBlOiBBQ1RJT05fREVMRVRFLFxuICAgICAgICAgICAgICAgIGljb246ICdkZWxldGUnLFxuICAgICAgICAgICAgICAgIHRvb2x0aXA6ICdBREZfQ0xPVURfRURJVF9UQVNLX0ZJTFRFUi5UT09MX1RJUC5ERUxFVEUnXG4gICAgICAgICAgICB9XG4gICAgICAgIF07XG4gICAgfVxuXG4gICAgaGFzRm9ybUNoYW5nZWQoYWN0aW9uOiBUYXNrRmlsdGVyQWN0aW9uKTogYm9vbGVhbiB7XG4gICAgICAgIGlmIChhY3Rpb24uYWN0aW9uVHlwZSA9PT0gQUNUSU9OX1NBVkUpIHtcbiAgICAgICAgICAgIHJldHVybiAhdGhpcy5mb3JtSGFzQmVlbkNoYW5nZWQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGFjdGlvbi5hY3Rpb25UeXBlID09PSBBQ1RJT05fU0FWRV9BUykge1xuICAgICAgICAgICAgcmV0dXJuICF0aGlzLmZvcm1IYXNCZWVuQ2hhbmdlZDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYWN0aW9uLmFjdGlvblR5cGUgPT09IEFDVElPTl9ERUxFVEUpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBvbkV4cGFuZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50b2dnbGVGaWx0ZXJBY3Rpb25zID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBvbkNsb3NlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnRvZ2dsZUZpbHRlckFjdGlvbnMgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBpc0Rpc2FibGVkQWN0aW9uKGFjdGlvbjogVGFza0ZpbHRlckFjdGlvbik6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc0Rpc2FibGVkRm9yRGVmYXVsdEZpbHRlcnMoYWN0aW9uKSA/IHRydWUgOiB0aGlzLmhhc0Zvcm1DaGFuZ2VkKGFjdGlvbik7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGRlZXBDb21wYXJlKGxlZnQ6IGFueSwgcmlnaHQ6IGFueSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkobGVmdCkudG9Mb3dlckNhc2UoKSA9PT0gSlNPTi5zdHJpbmdpZnkocmlnaHQpLnRvTG93ZXJDYXNlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0IHRoZSBzYW5pdGl6ZWQgZmlsdGVyIG5hbWVcbiAgICAgKlxuICAgICAqIEBwYXJhbSBmaWx0ZXJOYW1lIGZpbHRlciBuYW1lXG4gICAgICogQHJldHVybnMgc2FuaXRpemVkIGZpbHRlciBuYW1lXG4gICAgICovXG4gICAgZ2V0U2FuaXRpemVGaWx0ZXJOYW1lKGZpbHRlck5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IG5hbWVXaXRoSHlwaGVuID0gdGhpcy5yZXBsYWNlU3BhY2VXaXRoSHlwaGVuKGZpbHRlck5hbWUudHJpbSgpKTtcbiAgICAgICAgcmV0dXJuIG5hbWVXaXRoSHlwaGVuLnRvTG93ZXJDYXNlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXBsYWNlU3BhY2VXaXRoSHlwaGVuKG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHJlZ0V4dCA9IG5ldyBSZWdFeHAoJyAnLCAnZycpO1xuICAgICAgICByZXR1cm4gbmFtZS5yZXBsYWNlKHJlZ0V4dCwgJy0nKTtcbiAgICB9XG5cbiAgICBleGVjdXRlRmlsdGVyQWN0aW9ucyhhY3Rpb246IFRhc2tGaWx0ZXJBY3Rpb24pOiB2b2lkIHtcbiAgICAgICAgaWYgKGFjdGlvbi5hY3Rpb25UeXBlID09PSBBQ1RJT05fU0FWRSkge1xuICAgICAgICAgICAgdGhpcy5zYXZlKGFjdGlvbik7XG4gICAgICAgIH0gZWxzZSBpZiAoYWN0aW9uLmFjdGlvblR5cGUgPT09IEFDVElPTl9TQVZFX0FTKSB7XG4gICAgICAgICAgICB0aGlzLnNhdmVBcyhhY3Rpb24pO1xuICAgICAgICB9IGVsc2UgaWYgKGFjdGlvbi5hY3Rpb25UeXBlID09PSBBQ1RJT05fREVMRVRFKSB7XG4gICAgICAgICAgICB0aGlzLmRlbGV0ZShhY3Rpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0RGVwbG95ZWRBcHBsaWNhdGlvbnMoKSB7XG4gICAgICAgIHRoaXMuYXBwc1Byb2Nlc3NDbG91ZFNlcnZpY2UuZ2V0RGVwbG95ZWRBcHBsaWNhdGlvbnNCeVN0YXR1cyhBUFBfREVQTE9ZRURfU1RBVFVTLCB0aGlzLnJvbGUpLnN1YnNjcmliZSgoYXBwbGljYXRpb25zKSA9PiB7XG4gICAgICAgICAgICBpZiAoYXBwbGljYXRpb25zICYmIGFwcGxpY2F0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgYXBwbGljYXRpb25zLm1hcCgoYXBwbGljYXRpb24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hcHBsaWNhdGlvbk5hbWVzLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IHRoaXMuYXBwc1Byb2Nlc3NDbG91ZFNlcnZpY2UuZ2V0QXBwbGljYXRpb25MYWJlbChhcHBsaWNhdGlvbiwgdGhpcy5lbnZpcm9ubWVudExpc3QpLFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGFwcGxpY2F0aW9uLm5hbWVcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGdldFByb2Nlc3NEZWZpbml0aW9ucygpIHtcbiAgICAgICAgdGhpcy50YXNrQ2xvdWRTZXJ2aWNlLmdldFByb2Nlc3NEZWZpbml0aW9ucyh0aGlzLmFwcE5hbWUpLnN1YnNjcmliZSgocHJvY2Vzc0RlZmluaXRpb25zKSA9PiB7XG4gICAgICAgICAgICBpZiAocHJvY2Vzc0RlZmluaXRpb25zICYmIHByb2Nlc3NEZWZpbml0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wcm9jZXNzRGVmaW5pdGlvbk5hbWVzLnB1c2godGhpcy5hbGxQcm9jZXNzRGVmaW5pdGlvbk5hbWVzT3B0aW9uKTtcbiAgICAgICAgICAgICAgICBwcm9jZXNzRGVmaW5pdGlvbnMubWFwKChwcm9jZXNzRGVmaW5pdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnByb2Nlc3NEZWZpbml0aW9uTmFtZXMucHVzaCh7IGxhYmVsOiBwcm9jZXNzRGVmaW5pdGlvbi5uYW1lLCB2YWx1ZTogcHJvY2Vzc0RlZmluaXRpb24ubmFtZSB9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgY2hlY2tNYW5kYXRvcnlBY3Rpb25zKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5hY3Rpb25zID09PSB1bmRlZmluZWQgfHwgdGhpcy5hY3Rpb25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgdGhpcy5hY3Rpb25zID0gWy4uLkRFRkFVTFRfQUNUSU9OU107XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGlzVmFsaWRBY3Rpb24oYWN0aW9uczogc3RyaW5nW10sIGFjdGlvbjogYW55KTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBhY3Rpb25zID8gYWN0aW9ucy5pbmRleE9mKGFjdGlvbi5hY3Rpb25UeXBlKSA+PSAwIDogdHJ1ZTtcbiAgICB9XG5cbiAgICBpc0Zvcm1WYWxpZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWRpdFRhc2tGaWx0ZXJGb3JtLnZhbGlkO1xuICAgIH1cblxuICAgIGdldFByb3BlcnR5Q29udHJvbGxlcihwcm9wZXJ0eTogVGFza0ZpbHRlclByb3BlcnRpZXMpOiBBYnN0cmFjdENvbnRyb2wge1xuICAgICAgICByZXR1cm4gdGhpcy5lZGl0VGFza0ZpbHRlckZvcm0uZ2V0KHByb3BlcnR5LmtleSk7XG4gICAgfVxuXG4gICAgb25EYXRlQ2hhbmdlZChuZXdEYXRlVmFsdWU6IHN0cmluZyB8IERhdGUsIGRhdGVQcm9wZXJ0eTogVGFza0ZpbHRlclByb3BlcnRpZXMpIHtcbiAgICAgICAgaWYgKG5ld0RhdGVWYWx1ZSkge1xuICAgICAgICAgICAgbGV0IGRhdGU6IERhdGU7XG5cbiAgICAgICAgICAgIGlmICh0eXBlb2YgbmV3RGF0ZVZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIGRhdGUgPSBEYXRlRm5zVXRpbHMucGFyc2VEYXRlKG5ld0RhdGVWYWx1ZSwgREFURV9GT1JNQVQpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBkYXRlID0gbmV3RGF0ZVZhbHVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBjb250cm9sbGVyID0gdGhpcy5nZXRQcm9wZXJ0eUNvbnRyb2xsZXIoZGF0ZVByb3BlcnR5KTtcblxuICAgICAgICAgICAgaWYgKGlzVmFsaWQoZGF0ZSkpIHtcbiAgICAgICAgICAgICAgICBjb250cm9sbGVyLnNldFZhbHVlKGRhdGUudG9JU09TdHJpbmcoKSk7XG4gICAgICAgICAgICAgICAgY29udHJvbGxlci5zZXRFcnJvcnMobnVsbCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIuc2V0RXJyb3JzKHsgaW52YWxpZDogdHJ1ZSB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uRGF0ZVJhbmdlRmlsdGVyQ2hhbmdlZChkYXRlUmFuZ2U6IERhdGVSYW5nZUZpbHRlciwgcHJvcGVydHk6IFRhc2tGaWx0ZXJQcm9wZXJ0aWVzKSB7XG4gICAgICAgIHRoaXMuZWRpdFRhc2tGaWx0ZXJGb3JtLmdldChwcm9wZXJ0eS5hdHRyaWJ1dGVzPy5mcm9tKS5zZXRWYWx1ZShkYXRlUmFuZ2Uuc3RhcnREYXRlID8gZGF0ZVJhbmdlLnN0YXJ0RGF0ZSA6IG51bGwpO1xuICAgICAgICB0aGlzLmVkaXRUYXNrRmlsdGVyRm9ybS5nZXQocHJvcGVydHkuYXR0cmlidXRlcz8udG8pLnNldFZhbHVlKGRhdGVSYW5nZS5lbmREYXRlID8gZGF0ZVJhbmdlLmVuZERhdGUgOiBudWxsKTtcbiAgICAgICAgdGhpcy5lZGl0VGFza0ZpbHRlckZvcm0uZ2V0KHByb3BlcnR5LmF0dHJpYnV0ZXMuZGF0ZVR5cGUpLnNldFZhbHVlKERhdGVDbG91ZEZpbHRlclR5cGUuUkFOR0UpO1xuICAgIH1cblxuICAgIG9uQ2hhbmdlZFVzZXIodXNlcnM6IElkZW50aXR5VXNlck1vZGVsW10sIHVzZXJQcm9wZXJ0eTogVGFza0ZpbHRlclByb3BlcnRpZXMpIHtcbiAgICAgICAgbGV0IHNlbGVjdGVkVXNlcnM7XG4gICAgICAgIGlmICh1c2VyUHJvcGVydHkuc2VsZWN0aW9uTW9kZSA9PT0gJ3NpbmdsZScpIHtcbiAgICAgICAgICAgIHNlbGVjdGVkVXNlcnMgPSB1c2Vyc1swXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHNlbGVjdGVkVXNlcnMgPSB1c2VycztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmdldFByb3BlcnR5Q29udHJvbGxlcih1c2VyUHJvcGVydHkpLnNldFZhbHVlKHNlbGVjdGVkVXNlcnMpO1xuICAgIH1cblxuICAgIG9uQXNzaWduZWRVc2Vyc0NoYW5nZShhc3NpZ25lZFVzZXJzOiBJZGVudGl0eVVzZXJNb2RlbFtdKSB7XG4gICAgICAgIHRoaXMuZWRpdFRhc2tGaWx0ZXJGb3JtLmdldCgnY2FuZGlkYXRlR3JvdXBzJykuc2V0VmFsdWUodW5kZWZpbmVkKTtcbiAgICAgICAgdGhpcy5lZGl0VGFza0ZpbHRlckZvcm0uZ2V0KCdhc3NpZ25lZFVzZXJzJykuc2V0VmFsdWUoYXNzaWduZWRVc2Vycyk7XG4gICAgfVxuXG4gICAgb25Bc3NpZ25lZEdyb3Vwc0NoYW5nZShncm91cHM6IElkZW50aXR5R3JvdXBNb2RlbFtdKSB7XG4gICAgICAgIHRoaXMuZWRpdFRhc2tGaWx0ZXJGb3JtLmdldCgnYXNzaWduZWRVc2VycycpLnNldFZhbHVlKHVuZGVmaW5lZCk7XG4gICAgICAgIHRoaXMuZWRpdFRhc2tGaWx0ZXJGb3JtLmdldCgnY2FuZGlkYXRlR3JvdXBzJykuc2V0VmFsdWUoZ3JvdXBzKTtcbiAgICB9XG5cbiAgICBvbkFzc2lnbm1lbnRUeXBlQ2hhbmdlKGFzc2lnbm1lbnRUeXBlOiBBc3NpZ25tZW50VHlwZSkge1xuICAgICAgICBzd2l0Y2ggKGFzc2lnbm1lbnRUeXBlKSB7XG4gICAgICAgICAgICBjYXNlIEFzc2lnbm1lbnRUeXBlLlVOQVNTSUdORUQ6XG4gICAgICAgICAgICAgICAgdGhpcy5lZGl0VGFza0ZpbHRlckZvcm0uZ2V0KCdzdGF0dXMnKS5zZXRWYWx1ZShUYXNrU3RhdHVzRmlsdGVyLkNSRUFURUQpO1xuICAgICAgICAgICAgICAgIHRoaXMucmVzZXRBc3NpZ25tZW50VHlwZVZhbHVlcygpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBBc3NpZ25tZW50VHlwZS5OT05FOlxuICAgICAgICAgICAgICAgIHRoaXMuZWRpdFRhc2tGaWx0ZXJGb3JtLmdldCgnc3RhdHVzJykuc2V0VmFsdWUoVGFza1N0YXR1c0ZpbHRlci5BTEwpO1xuICAgICAgICAgICAgICAgIHRoaXMucmVzZXRBc3NpZ25tZW50VHlwZVZhbHVlcygpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBBc3NpZ25tZW50VHlwZS5BU1NJR05FRF9UTzpcbiAgICAgICAgICAgIGNhc2UgQXNzaWdubWVudFR5cGUuQ0FORElEQVRFX0dST1VQUzpcbiAgICAgICAgICAgICAgICB0aGlzLmVkaXRUYXNrRmlsdGVyRm9ybS5nZXQoJ3N0YXR1cycpLnNldFZhbHVlKFRhc2tTdGF0dXNGaWx0ZXIuQVNTSUdORUQpO1xuICAgICAgICAgICAgICAgIHRoaXMucmVzZXRBc3NpZ25tZW50VHlwZVZhbHVlcygpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICB0aGlzLmVkaXRUYXNrRmlsdGVyRm9ybS5nZXQoJ3N0YXR1cycpLnNldFZhbHVlKFRhc2tTdGF0dXNGaWx0ZXIuQVNTSUdORUQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25TdGF0dXNDaGFuZ2Uoc3RhdHVzOiBNYXRTZWxlY3RDaGFuZ2UpIHtcbiAgICAgICAgaWYgKHN0YXR1cy52YWx1ZSA9PT0gVGFza1N0YXR1c0ZpbHRlci5DUkVBVEVEKSB7XG4gICAgICAgICAgICB0aGlzLnJlc2V0QXNzaWdubWVudFR5cGVWYWx1ZXMoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRTdGF0dXMgPSBzdGF0dXMudmFsdWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXNldEFzc2lnbm1lbnRUeXBlVmFsdWVzKCkge1xuICAgICAgICB0aGlzLmVkaXRUYXNrRmlsdGVyRm9ybS5nZXQoJ2Fzc2lnbmVkVXNlcnMnKS5zZXRWYWx1ZSh1bmRlZmluZWQpO1xuICAgICAgICB0aGlzLmVkaXRUYXNrRmlsdGVyRm9ybS5nZXQoJ2NhbmRpZGF0ZUdyb3VwcycpLnNldFZhbHVlKHVuZGVmaW5lZCk7XG4gICAgfVxuXG4gICAgaGFzRXJyb3IocHJvcGVydHk6IFRhc2tGaWx0ZXJQcm9wZXJ0aWVzKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGNvbnRyb2xsZXIgPSB0aGlzLmdldFByb3BlcnR5Q29udHJvbGxlcihwcm9wZXJ0eSk7XG4gICAgICAgIHJldHVybiAhIWNvbnRyb2xsZXIuZXJyb3JzPy5pbnZhbGlkO1xuICAgIH1cblxuICAgIGhhc0xhc3RNb2RpZmllZFByb3BlcnR5KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5maWx0ZXJQcm9wZXJ0aWVzLmluZGV4T2YoTEFTVF9NT0RJRklFRF9QUk9QRVJUWSkgPj0gMDtcbiAgICB9XG5cbiAgICBnZXQgY3JlYXRlU29ydFByb3BlcnRpZXMoKTogRmlsdGVyT3B0aW9uc1tdIHtcbiAgICAgICAgdGhpcy5jaGVja01hbmRhdG9yeVNvcnRQcm9wZXJ0aWVzKCk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuc29ydFByb3BlcnRpZXMubWFwKChwcm9wZXJ0eTogc3RyaW5nKSA9PiAoeyBsYWJlbDogcHJvcGVydHksIHZhbHVlOiBwcm9wZXJ0eSB9KSk7XG4gICAgfVxuXG4gICAgY3JlYXRlQW5kRmlsdGVyQWN0aW9ucygpOiBUYXNrRmlsdGVyQWN0aW9uW10ge1xuICAgICAgICB0aGlzLmNoZWNrTWFuZGF0b3J5QWN0aW9ucygpO1xuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVGaWx0ZXJBY3Rpb25zKCkuZmlsdGVyKChhY3Rpb24pID0+IHRoaXMuaXNWYWxpZEFjdGlvbih0aGlzLmFjdGlvbnMsIGFjdGlvbikpO1xuICAgIH1cblxuICAgIGlzVmFsaWRQcm9wZXJ0eShmaWx0ZXJQcm9wZXJ0aWVzOiBzdHJpbmdbXSwga2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGZpbHRlclByb3BlcnRpZXMgPyBmaWx0ZXJQcm9wZXJ0aWVzLmluZGV4T2Yoa2V5KSA+PSAwIDogdHJ1ZTtcbiAgICB9XG5cbiAgICBjaGVja0ZvclByb3BlcnR5KHByb3BlcnR5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyUHJvcGVydGllcyA/IHRoaXMuZmlsdGVyUHJvcGVydGllcy5pbmRleE9mKHByb3BlcnR5KSA+PSAwIDogZmFsc2U7XG4gICAgfVxuXG4gICAgaGFzU29ydFByb3BlcnR5KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5maWx0ZXJQcm9wZXJ0aWVzLmluZGV4T2YoU09SVF9QUk9QRVJUWSkgPj0gMDtcbiAgICB9XG5cbiAgICByZW1vdmVPcmRlclByb3BlcnR5KGZpbHRlcmVkUHJvcGVydGllczogVGFza0ZpbHRlclByb3BlcnRpZXNbXSk6IFRhc2tGaWx0ZXJQcm9wZXJ0aWVzW10ge1xuICAgICAgICBpZiAoZmlsdGVyZWRQcm9wZXJ0aWVzPy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICByZXR1cm4gZmlsdGVyZWRQcm9wZXJ0aWVzLmZpbHRlcigocHJvcGVydHkpID0+IHByb3BlcnR5LmtleSAhPT0gT1JERVJfUFJPUEVSVFkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBjcmVhdGVBbmRGaWx0ZXJQcm9wZXJ0aWVzKCkge1xuICAgICAgICB0aGlzLmNoZWNrTWFuZGF0b3J5RmlsdGVyUHJvcGVydGllcygpO1xuXG4gICAgICAgIGlmICh0aGlzLmNoZWNrRm9yUHJvcGVydHkoQVBQTElDQVRJT05fTkFNRSkpIHtcbiAgICAgICAgICAgIHRoaXMuYXBwbGljYXRpb25OYW1lcyA9IFtdO1xuICAgICAgICAgICAgdGhpcy5nZXREZXBsb3llZEFwcGxpY2F0aW9ucygpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmNoZWNrRm9yUHJvcGVydHkoUFJPQ0VTU19ERUZJTklUSU9OX05BTUUpKSB7XG4gICAgICAgICAgICB0aGlzLnByb2Nlc3NEZWZpbml0aW9uTmFtZXMgPSBbXTtcbiAgICAgICAgICAgIHRoaXMuZ2V0UHJvY2Vzc0RlZmluaXRpb25zKCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBkZWZhdWx0UHJvcGVydGllcyA9IHRoaXMuY3JlYXRlVGFza0ZpbHRlclByb3BlcnRpZXMoKTtcbiAgICAgICAgbGV0IGZpbHRlcmVkUHJvcGVydGllcyA9IGRlZmF1bHRQcm9wZXJ0aWVzLmZpbHRlcigoZmlsdGVyUHJvcGVydHkpID0+IHRoaXMuaXNWYWxpZFByb3BlcnR5KHRoaXMuZmlsdGVyUHJvcGVydGllcywgZmlsdGVyUHJvcGVydHkua2V5KSk7XG5cbiAgICAgICAgaWYgKCF0aGlzLmhhc1NvcnRQcm9wZXJ0eSgpKSB7XG4gICAgICAgICAgICBmaWx0ZXJlZFByb3BlcnRpZXMgPSB0aGlzLnJlbW92ZU9yZGVyUHJvcGVydHkoZmlsdGVyZWRQcm9wZXJ0aWVzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmaWx0ZXJlZFByb3BlcnRpZXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2sgZm9yIGVkaXQgdGFzayBmaWx0ZXIgZm9ybSBjaGFuZ2VzXG4gICAgICovXG4gICAgb25GaWx0ZXJDaGFuZ2UoKSB7XG4gICAgICAgIHRoaXMuZWRpdFRhc2tGaWx0ZXJGb3JtLnZhbHVlQ2hhbmdlc1xuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgZGVib3VuY2VUaW1lKDUwMCksXG4gICAgICAgICAgICAgICAgZmlsdGVyKCgpID0+IHRoaXMuaXNGb3JtVmFsaWQoKSksXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZilcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGZvcm1WYWx1ZXMpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmFzc2lnbk5ld0ZpbHRlcihmb3JtVmFsdWVzKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIGdldEZvcm1Db250cm9sc0NvbmZpZyh0YXNrRmlsdGVyUHJvcGVydGllczogVGFza0ZpbHRlclByb3BlcnRpZXNbXSk6IGFueSB7XG4gICAgICAgIGNvbnN0IHByb3BlcnRpZXMgPSB0YXNrRmlsdGVyUHJvcGVydGllcy5tYXAoKHByb3BlcnR5KSA9PiB7XG4gICAgICAgICAgICBpZiAocHJvcGVydHkuYXR0cmlidXRlcykge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmdldEF0dHJpYnV0ZXNDb250cm9sQ29uZmlnKHByb3BlcnR5KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgW3Byb3BlcnR5LmtleV06IHByb3BlcnR5LnZhbHVlIH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gcHJvcGVydGllcy5yZWR1Y2UoKHJlc3VsdCwgY3VycmVudCkgPT4gT2JqZWN0LmFzc2lnbihyZXN1bHQsIGN1cnJlbnQpLCB7fSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRBdHRyaWJ1dGVzQ29udHJvbENvbmZpZyhwcm9wZXJ0eTogVGFza0ZpbHRlclByb3BlcnRpZXMpIHtcbiAgICAgICAgcmV0dXJuIE9iamVjdC52YWx1ZXMocHJvcGVydHkuYXR0cmlidXRlcykucmVkdWNlKChyZXN1bHQsIGtleSkgPT4ge1xuICAgICAgICAgICAgcmVzdWx0W2tleV0gPSBwcm9wZXJ0eS52YWx1ZVtrZXldO1xuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfSwge30pO1xuICAgIH1cblxuICAgIGJ1aWxkRm9ybSh0YXNrRmlsdGVyUHJvcGVydGllczogVGFza0ZpbHRlclByb3BlcnRpZXNbXSkge1xuICAgICAgICB0aGlzLmZvcm1IYXNCZWVuQ2hhbmdlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmVkaXRUYXNrRmlsdGVyRm9ybSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAodGhpcy5nZXRGb3JtQ29udHJvbHNDb25maWcodGFza0ZpbHRlclByb3BlcnRpZXMpKTtcbiAgICAgICAgdGhpcy5vbkZpbHRlckNoYW5nZSgpO1xuICAgIH1cblxuICAgIG9uRGF0ZVR5cGVDaGFuZ2UoZGF0ZVR5cGU6IERhdGVDbG91ZEZpbHRlclR5cGUsIHByb3BlcnR5OiBUYXNrRmlsdGVyUHJvcGVydGllcykge1xuICAgICAgICB0aGlzLmVkaXRUYXNrRmlsdGVyRm9ybS5nZXQocHJvcGVydHkuYXR0cmlidXRlcy5kYXRlVHlwZSkuc2V0VmFsdWUoZGF0ZVR5cGUpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCByZXRyaWV2ZVRhc2tGaWx0ZXJBbmRCdWlsZEZvcm0oKSB7XG4gICAgICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcblxuICAgICAgICB0aGlzLmdldFRhc2tGaWx0ZXJCeUlkKHRoaXMuYXBwTmFtZSwgdGhpcy5pZClcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIGZpbmFsaXplKCgpID0+ICh0aGlzLmlzTG9hZGluZyA9IGZhbHNlKSksXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZilcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy50YXNrRmlsdGVyID0gcmVzcG9uc2U7XG4gICAgICAgICAgICAgICAgdGhpcy50YXNrRmlsdGVyUHJvcGVydGllcyA9IHRoaXMuY3JlYXRlQW5kRmlsdGVyUHJvcGVydGllcygpO1xuICAgICAgICAgICAgICAgIHRoaXMudGFza0ZpbHRlckFjdGlvbnMgPSB0aGlzLmNyZWF0ZUFuZEZpbHRlckFjdGlvbnMoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmJ1aWxkRm9ybSh0aGlzLnRhc2tGaWx0ZXJQcm9wZXJ0aWVzKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIGRlbGV0ZShkZWxldGVBY3Rpb246IFRhc2tGaWx0ZXJBY3Rpb24pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZWxldGVGaWx0ZXIodGhpcy50YXNrRmlsdGVyKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgZmlsdGVyKChmaWx0ZXJzKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZUFjdGlvbi5maWx0ZXIgPSB0aGlzLnRhc2tGaWx0ZXI7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWN0aW9uLmVtaXQoZGVsZXRlQWN0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZpbHRlcnMubGVuZ3RoID09PSAwO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLnJlc3RvcmVEZWZhdWx0VGFza0ZpbHRlcnMoKSksXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZilcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge30pO1xuICAgIH1cblxuICAgIHNhdmUoc2F2ZUFjdGlvbjogVGFza0ZpbHRlckFjdGlvbik6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZUZpbHRlcih0aGlzLmNoYW5nZWRUYXNrRmlsdGVyKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICBzYXZlQWN0aW9uLmZpbHRlciA9IHRoaXMuY2hhbmdlZFRhc2tGaWx0ZXI7XG4gICAgICAgICAgICAgICAgdGhpcy5hY3Rpb24uZW1pdChzYXZlQWN0aW9uKTtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm1IYXNCZWVuQ2hhbmdlZCA9IHRoaXMuZGVlcENvbXBhcmUodGhpcy5jaGFuZ2VkVGFza0ZpbHRlciwgdGhpcy50YXNrRmlsdGVyKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHNhdmVBcyhzYXZlQXNBY3Rpb246IFRhc2tGaWx0ZXJBY3Rpb24pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihUYXNrRmlsdGVyRGlhbG9nQ2xvdWRDb21wb25lbnQsIHtcbiAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICBuYW1lOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgodGhpcy50YXNrRmlsdGVyIGFzIGFueSk/Lm5hbWUpXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaGVpZ2h0OiAnYXV0bycsXG4gICAgICAgICAgICBtaW5XaWR0aDogJzMwJSdcbiAgICAgICAgfSk7XG4gICAgICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XG4gICAgICAgICAgICBpZiAocmVzdWx0ICYmIHJlc3VsdC5hY3Rpb24gPT09IFRhc2tGaWx0ZXJEaWFsb2dDbG91ZENvbXBvbmVudC5BQ1RJT05fU0FWRSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpbHRlcklkID0gTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyKDIsIDkpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpbHRlcktleSA9IHRoaXMuZ2V0U2FuaXRpemVGaWx0ZXJOYW1lKHJlc3VsdC5uYW1lKTtcbiAgICAgICAgICAgICAgICBjb25zdCBuZXdGaWx0ZXIgPSB7XG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IHJlc3VsdC5uYW1lLFxuICAgICAgICAgICAgICAgICAgICBpY29uOiByZXN1bHQuaWNvbixcbiAgICAgICAgICAgICAgICAgICAgaWQ6IGZpbHRlcklkLFxuICAgICAgICAgICAgICAgICAgICBrZXk6ICdjdXN0b20tJyArIGZpbHRlcktleVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0RmlsdGVyOiBUID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5jaGFuZ2VkVGFza0ZpbHRlciwgbmV3RmlsdGVyKTtcbiAgICAgICAgICAgICAgICB0aGlzLmFkZEZpbHRlcihyZXN1bHRGaWx0ZXIpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHNhdmVBc0FjdGlvbi5maWx0ZXIgPSByZXN1bHRGaWx0ZXI7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWN0aW9uLmVtaXQoc2F2ZUFzQWN0aW9uKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgY2hlY2tNYW5kYXRvcnlGaWx0ZXJQcm9wZXJ0aWVzKCkge1xuICAgICAgICBpZiAodGhpcy5maWx0ZXJQcm9wZXJ0aWVzID09PSB1bmRlZmluZWQgfHwgdGhpcy5maWx0ZXJQcm9wZXJ0aWVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgdGhpcy5maWx0ZXJQcm9wZXJ0aWVzID0gdGhpcy5nZXREZWZhdWx0RmlsdGVyUHJvcGVydGllcygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY2hlY2tNYW5kYXRvcnlTb3J0UHJvcGVydGllcygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuc29ydFByb3BlcnRpZXMgPT09IHVuZGVmaW5lZCB8fCB0aGlzLnNvcnRQcm9wZXJ0aWVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgdGhpcy5zb3J0UHJvcGVydGllcyA9IHRoaXMuZ2V0RGVmYXVsdFNvcnRQcm9wZXJ0aWVzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhYnN0cmFjdCBnZXREZWZhdWx0RmlsdGVyUHJvcGVydGllcygpOiBzdHJpbmdbXTtcbiAgICBhYnN0cmFjdCBnZXREZWZhdWx0U29ydFByb3BlcnRpZXMoKTogc3RyaW5nW107XG4gICAgYWJzdHJhY3QgaXNEaXNhYmxlZEZvckRlZmF1bHRGaWx0ZXJzKGFjdGlvbjogVGFza0ZpbHRlckFjdGlvbik6IGJvb2xlYW47XG4gICAgYWJzdHJhY3QgY3JlYXRlVGFza0ZpbHRlclByb3BlcnRpZXMoKTogVGFza0ZpbHRlclByb3BlcnRpZXNbXTtcbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0VGFza0ZpbHRlckJ5SWQoYXBwTmFtZTogc3RyaW5nLCBpZDogc3RyaW5nKTtcbiAgICBhYnN0cmFjdCBhc3NpZ25OZXdGaWx0ZXIoZm9ybVZhbHVlcyk6IHZvaWQ7XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgcmVzdG9yZURlZmF1bHRUYXNrRmlsdGVycygpOiBPYnNlcnZhYmxlPFRbXT47XG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGFkZEZpbHRlcihmaWx0ZXJUb0FkZDogVCk6IE9ic2VydmFibGU8YW55PjtcbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZGVsZXRlRmlsdGVyKGZpbHRlclRvRGVsZXRlOiBUKTogT2JzZXJ2YWJsZTxUW10+O1xuICAgIHByb3RlY3RlZCBhYnN0cmFjdCB1cGRhdGVGaWx0ZXIoZmlsdGVyVG9VcGRhdGU6IFQpOiBPYnNlcnZhYmxlPGFueT47XG59XG4iXX0=
|
|
@@ -179,10 +179,10 @@ export class EditServiceTaskFilterCloudComponent extends BaseEditTaskFilterCloud
|
|
|
179
179
|
}
|
|
180
180
|
];
|
|
181
181
|
}
|
|
182
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
183
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: EditServiceTaskFilterCloudComponent, isStandalone: true, selector: "adf-cloud-edit-service-task-filter", usesInheritance: true, ngImport: i0, template: "<mat-accordion [hideToggle]=\"isLoading\" class=\"adf-edit-task-filter\">\n <mat-expansion-panel (afterExpand)=\"onExpand()\" (closed)=\"onClose()\">\n <mat-expansion-panel-header *ngIf=\"taskFilter\" id=\"adf-edit-task-filter-expansion-header\" class=\"adf-edit-task-filter-header\">\n <ng-container *ngIf=\"!isLoading; else loadingTemplate\">\n <mat-panel-title *ngIf=\"showTaskFilterName\" id=\"adf-edit-task-filter-title-id\" class=\"adf-edit-task-filter-header__title\"\n >{{taskFilter.name | translate}}</mat-panel-title>\n <mat-panel-description class=\"adf-edit-task-filter-header__description\" id=\"adf-edit-task-filter-sub-title-id\">\n <span *ngIf=\"showTitle\">{{ 'ADF_CLOUD_EDIT_TASK_FILTER.TITLE' | translate}}</span>\n <div *ngIf=\"showFilterActions\" class=\"adf-cloud-edit-task-filter-actions\">\n <ng-container *ngIf=\"toggleFilterActions\">\n <button *ngFor=\"let filterAction of taskFilterActions\"\n mat-icon-button\n [title]=\"filterAction.tooltip | translate\"\n [attr.data-automation-id]=\"'adf-filter-action-' + filterAction.actionType\"\n [disabled]=\"isDisabledAction(filterAction)\"\n (click)=\"executeFilterActions(filterAction)\">\n <adf-icon [value]=\"filterAction.icon\" />\n </button>\n </ng-container>\n </div>\n </mat-panel-description>\n </ng-container>\n <ng-template #loadingTemplate>\n <div class=\"adf-cloud-edit-task-filter-loading-margin\">\n <mat-progress-spinner mode=\"indeterminate\" [diameter]=\"30\" />\n </div>\n </ng-template>\n </mat-expansion-panel-header>\n <ng-container *ngIf=\"!isLoading;\">\n <form *ngIf=\"editTaskFilterForm\" [formGroup]=\"editTaskFilterForm\" class=\"adf-edit-task-filter-content\">\n <div class=\"adf-edit-task-filter-form\">\n <ng-container *ngFor=\"let taskFilterProperty of taskFilterProperties\">\n <mat-form-field [floatLabel]=\"'auto'\"\n *ngIf=\"taskFilterProperty.type === 'select'\"\n [attr.data-automation-id]=\"taskFilterProperty.key\">\n <mat-label class=\"adf-edit-task-filter-content__select-label\">{{taskFilterProperty.label | translate}}</mat-label>\n <mat-select\n [formControlName]=\"taskFilterProperty.key\"\n [attr.data-automation-id]=\"'adf-cloud-edit-task-property-' + taskFilterProperty.key\"\n (selectionChange)=\"onStatusChange($event)\">\n <mat-option *ngFor=\"let propertyOption of taskFilterProperty.options\"\n [value]=\"propertyOption.value\"\n [attr.data-automation-id]=\"'adf-cloud-edit-task-property-options-' + taskFilterProperty.key\">\n {{ propertyOption.label | translate }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n <mat-form-field [floatLabel]=\"'auto'\"\n *ngIf=\"taskFilterProperty.type === 'text'\"\n [attr.data-automation-id]=\"taskFilterProperty.key\">\n <mat-label class=\"adf-edit-task-filter-content__text-label\">{{taskFilterProperty.label | translate}}</mat-label>\n <input matInput\n [formControlName]=\"taskFilterProperty.key\"\n type=\"text\"\n [attr.data-automation-id]=\"'adf-cloud-edit-task-property-' + taskFilterProperty.key\" />\n </mat-form-field>\n <mat-form-field [floatLabel]=\"'auto'\"\n *ngIf=\"taskFilterProperty.type === 'date'\"\n [attr.data-automation-id]=\"taskFilterProperty.key\">\n <mat-label>{{taskFilterProperty.label | translate}}</mat-label>\n <input matInput\n (keyup)=\"onDateChanged($any($event).target.value, taskFilterProperty)\"\n (dateChange)=\"onDateChanged($event.value, taskFilterProperty)\"\n [matDatepicker]=\"dateController\"\n [placeholder]=\"taskFilterProperty.label | translate\"\n [attr.data-automation-id]=\"'adf-cloud-edit-task-property-' + taskFilterProperty.key\">\n <mat-datepicker-toggle matSuffix\n [for]=\"dateController\"\n [attr.data-automation-id]=\"'adf-cloud-edit-task-property-date-toggle-' + taskFilterProperty.key\" />\n <mat-datepicker #dateController\n [attr.data-automation-id]=\"'adf-cloud-edit-task-property-date-picker-' + taskFilterProperty.key\" />\n <div class=\"adf-edit-task-filter-date-error-container\">\n <div *ngIf=\"hasError(taskFilterProperty)\">\n <div class=\"adf-error-text\">{{'ADF_TASK_LIST.START_TASK.FORM.ERROR.DATE'|translate}}</div>\n <mat-icon class=\"adf-error-icon\">warning</mat-icon>\n </div>\n </div>\n </mat-form-field>\n <div class=\"adf-edit-task-filter-checkbox\"\n *ngIf=\"taskFilterProperty.type === 'checkbox'\">\n <mat-checkbox color=\"primary\"\n [formControlName]=\"taskFilterProperty.key\"\n [attr.data-automation-id]=\"taskFilterProperty.key\"\n >{{taskFilterProperty.label | translate}}</mat-checkbox>\n </div>\n\n <adf-cloud-date-range-filter\n *ngIf=\"taskFilterProperty.type === 'date-range'\"\n [processFilterProperty]=\"taskFilterProperty\"\n [options]=\"taskFilterProperty.dateFilterOptions\"\n (dateTypeChange)=\"onDateTypeChange($event, taskFilterProperty)\"\n (dateChanged)=\"onDateRangeFilterChanged($event, taskFilterProperty)\" />\n <adf-cloud-people\n class=\"{{ 'adf-edit-task-filter-' + taskFilterProperty.key }}\"\n *ngIf=\"taskFilterProperty.type === 'people'\"\n [preSelectUsers]=\"taskFilterProperty.value\"\n [title]=\"taskFilterProperty.label\"\n [validate]=\"true\"\n [appName]=\"appName\"\n [mode]=\"taskFilterProperty.selectionMode\"\n (changedUsers)=\"onChangedUser($event, taskFilterProperty)\" />\n\n <adf-cloud-task-assignment-filter\n *ngIf=\"taskFilterProperty.type === 'assignment'\"\n [taskFilterProperty]=\"taskFilterProperty\"\n [status]=\"selectedStatus\"\n [appName]=\"appName\"\n (assignedUsersChange)=\"onAssignedUsersChange($event)\"\n (assignedGroupsChange)=\"onAssignedGroupsChange($event)\"\n (assignmentTypeChange)=\"onAssignmentTypeChange($event)\" />\n\n </ng-container>\n </div>\n </form>\n </ng-container>\n </mat-expansion-panel>\n</mat-accordion>\n", styles: [".adf-edit-task-filter-checkbox{font-size:var(--theme-subheading-2-font-size);padding-top:10px;text-align:center;flex:1 23%}.adf-edit-task-filter-date-error-container{position:absolute;height:20px;margin-top:12px;width:100%}.adf-edit-task-filter-date-error-container>div{display:flex;flex-flow:row;justify-content:flex-start}.adf-edit-task-filter-date-error-container .adf-error-text{padding-right:8px;height:16px;font-size:10px;line-height:1.33;color:var(--theme-warn-color);width:auto}.adf-edit-task-filter-date-error-container .adf-error-icon{font-size:16px;color:var(--theme-warn-color)}.adf-edit-task-filter-dateRange mat-grid-list{width:450px}.adf-cloud-edit-task-filter-loading-margin{margin-left:calc((100% - 100px)/2);margin-right:calc((100% - 100px)/2)}.adf-edit-task-filter-form{flex-flow:row wrap;display:flex;place-content:center flex-start;align-items:center}.adf-edit-task-filter-form :not(:last-child){margin-right:10px}.adf-edit-task-filter-form mat-form-field,.adf-edit-task-filter-form adf-cloud-people,.adf-edit-task-filter-form adf-cloud-task-assignment-filter{flex:1 1 23%}@media (max-width: 599.9px){.adf-edit-task-filter-form{flex-flow:column}.adf-edit-task-filter-form :not(:last-child){margin-bottom:10px;margin-right:0}}.adf-edit-task-filter-header{height:var(--adf-edit-task-and-service-filter-header-height)}.adf-edit-task-filter-header__title{color:var(--adf-edit-task-and-service-filter-header-title-color)}.adf-edit-task-filter-header__description{color:var(--adf-edit-task-and-service-filter-header-description-color);place-content:center space-between}.adf-edit-task-filter-content__text-label{color:var(--adf-edit-task-and-service-filter-content-text-label-color)}.adf-edit-task-filter-content__select-label{color:var(--adf-edit-task-and-service-filter-content-select-label-color)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatExpansionModule }, { kind: "directive", type: i3.MatAccordion, selector: "mat-accordion", inputs: ["hideToggle", "displayMode", "togglePosition"], exportAs: ["matAccordion"] }, { kind: "component", type: i3.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "component", type: i3.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["expandedHeight", "collapsedHeight", "tabIndex"] }, { kind: "directive", type: i3.MatExpansionPanelTitle, selector: "mat-panel-title" }, { kind: "directive", type: i3.MatExpansionPanelDescription, selector: "mat-panel-description" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: IconComponent, selector: "adf-icon", inputs: ["color", "fontSet", "value"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i5.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i6.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i6.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i6.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i7.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatLabel, selector: "mat-label" }, { kind: "directive", type: i7.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i8.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i9.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i10.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i11.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i11.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i11.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i12.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i13.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "component", type: DateRangeFilterComponent, selector: "adf-cloud-date-range-filter", inputs: ["processFilterProperty", "options"], outputs: ["dateChanged", "dateTypeChange"] }, { kind: "component", type: PeopleCloudComponent, selector: "adf-cloud-people", inputs: ["appName", "mode", "roles", "validate", "readOnly", "required", "preSelectUsers", "excludedUsers", "groupsRestriction", "userChipsCtrl", "searchUserCtrl", "title", "placeholder", "hideInputOnSingleSelection", "formFieldAppearance", "formFieldSubscriptSizing", "showErrors", "showFullNameOnHover"], outputs: ["selectUser", "removeUser", "changedUsers", "warning"] }, { kind: "component", type: TaskAssignmentFilterCloudComponent, selector: "adf-cloud-task-assignment-filter", inputs: ["appName", "taskFilterProperty", "status"], outputs: ["assignedUsersChange", "assignedGroupsChange", "assignmentTypeChange"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
182
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: EditServiceTaskFilterCloudComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
183
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: EditServiceTaskFilterCloudComponent, isStandalone: true, selector: "adf-cloud-edit-service-task-filter", usesInheritance: true, ngImport: i0, template: "<mat-accordion [hideToggle]=\"isLoading\" class=\"adf-edit-task-filter\">\n <mat-expansion-panel (afterExpand)=\"onExpand()\" (closed)=\"onClose()\">\n <mat-expansion-panel-header *ngIf=\"taskFilter\" id=\"adf-edit-task-filter-expansion-header\" class=\"adf-edit-task-filter-header\">\n <ng-container *ngIf=\"!isLoading; else loadingTemplate\">\n <mat-panel-title *ngIf=\"showTaskFilterName\" id=\"adf-edit-task-filter-title-id\" class=\"adf-edit-task-filter-header__title\"\n >{{taskFilter.name | translate}}</mat-panel-title>\n <mat-panel-description class=\"adf-edit-task-filter-header__description\" id=\"adf-edit-task-filter-sub-title-id\">\n <span *ngIf=\"showTitle\">{{ 'ADF_CLOUD_EDIT_TASK_FILTER.TITLE' | translate}}</span>\n <div *ngIf=\"showFilterActions\" class=\"adf-cloud-edit-task-filter-actions\">\n <ng-container *ngIf=\"toggleFilterActions\">\n <button *ngFor=\"let filterAction of taskFilterActions\"\n mat-icon-button\n [title]=\"filterAction.tooltip | translate\"\n [attr.data-automation-id]=\"'adf-filter-action-' + filterAction.actionType\"\n [disabled]=\"isDisabledAction(filterAction)\"\n (click)=\"executeFilterActions(filterAction)\">\n <adf-icon [value]=\"filterAction.icon\" />\n </button>\n </ng-container>\n </div>\n </mat-panel-description>\n </ng-container>\n <ng-template #loadingTemplate>\n <div class=\"adf-cloud-edit-task-filter-loading-margin\">\n <mat-progress-spinner mode=\"indeterminate\" [diameter]=\"30\" />\n </div>\n </ng-template>\n </mat-expansion-panel-header>\n <ng-container *ngIf=\"!isLoading;\">\n <form *ngIf=\"editTaskFilterForm\" [formGroup]=\"editTaskFilterForm\" class=\"adf-edit-task-filter-content\">\n <div class=\"adf-edit-task-filter-form\">\n <ng-container *ngFor=\"let taskFilterProperty of taskFilterProperties\">\n <mat-form-field [floatLabel]=\"'auto'\"\n *ngIf=\"taskFilterProperty.type === 'select'\"\n [attr.data-automation-id]=\"taskFilterProperty.key\">\n <mat-label class=\"adf-edit-task-filter-content__select-label\">{{taskFilterProperty.label | translate}}</mat-label>\n <mat-select\n [formControlName]=\"taskFilterProperty.key\"\n [attr.data-automation-id]=\"'adf-cloud-edit-task-property-' + taskFilterProperty.key\"\n (selectionChange)=\"onStatusChange($event)\">\n <mat-option *ngFor=\"let propertyOption of taskFilterProperty.options\"\n [value]=\"propertyOption.value\"\n [attr.data-automation-id]=\"'adf-cloud-edit-task-property-options-' + taskFilterProperty.key\">\n {{ propertyOption.label | translate }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n <mat-form-field [floatLabel]=\"'auto'\"\n *ngIf=\"taskFilterProperty.type === 'text'\"\n [attr.data-automation-id]=\"taskFilterProperty.key\">\n <mat-label class=\"adf-edit-task-filter-content__text-label\">{{taskFilterProperty.label | translate}}</mat-label>\n <input matInput\n [formControlName]=\"taskFilterProperty.key\"\n type=\"text\"\n [attr.data-automation-id]=\"'adf-cloud-edit-task-property-' + taskFilterProperty.key\" />\n </mat-form-field>\n <mat-form-field [floatLabel]=\"'auto'\"\n *ngIf=\"taskFilterProperty.type === 'date'\"\n [attr.data-automation-id]=\"taskFilterProperty.key\">\n <mat-label>{{taskFilterProperty.label | translate}}</mat-label>\n <input matInput\n (keyup)=\"onDateChanged($any($event).target.value, taskFilterProperty)\"\n (dateChange)=\"onDateChanged($event.value, taskFilterProperty)\"\n [matDatepicker]=\"dateController\"\n [placeholder]=\"taskFilterProperty.label | translate\"\n [attr.data-automation-id]=\"'adf-cloud-edit-task-property-' + taskFilterProperty.key\">\n <mat-datepicker-toggle matSuffix\n [for]=\"dateController\"\n [attr.data-automation-id]=\"'adf-cloud-edit-task-property-date-toggle-' + taskFilterProperty.key\" />\n <mat-datepicker #dateController\n [attr.data-automation-id]=\"'adf-cloud-edit-task-property-date-picker-' + taskFilterProperty.key\" />\n <div class=\"adf-edit-task-filter-date-error-container\">\n <div *ngIf=\"hasError(taskFilterProperty)\">\n <div class=\"adf-error-text\">{{'ADF_TASK_LIST.START_TASK.FORM.ERROR.DATE'|translate}}</div>\n <mat-icon class=\"adf-error-icon\">warning</mat-icon>\n </div>\n </div>\n </mat-form-field>\n <div class=\"adf-edit-task-filter-checkbox\"\n *ngIf=\"taskFilterProperty.type === 'checkbox'\">\n <mat-checkbox color=\"primary\"\n [formControlName]=\"taskFilterProperty.key\"\n [attr.data-automation-id]=\"taskFilterProperty.key\"\n >{{taskFilterProperty.label | translate}}</mat-checkbox>\n </div>\n\n <adf-cloud-date-range-filter\n *ngIf=\"taskFilterProperty.type === 'date-range'\"\n [processFilterProperty]=\"taskFilterProperty\"\n [options]=\"taskFilterProperty.dateFilterOptions\"\n (dateTypeChange)=\"onDateTypeChange($event, taskFilterProperty)\"\n (dateChanged)=\"onDateRangeFilterChanged($event, taskFilterProperty)\" />\n <adf-cloud-people\n class=\"{{ 'adf-edit-task-filter-' + taskFilterProperty.key }}\"\n *ngIf=\"taskFilterProperty.type === 'people'\"\n [preSelectUsers]=\"taskFilterProperty.value\"\n [title]=\"taskFilterProperty.label\"\n [validate]=\"true\"\n [appName]=\"appName\"\n [mode]=\"taskFilterProperty.selectionMode\"\n (changedUsers)=\"onChangedUser($event, taskFilterProperty)\" />\n\n <adf-cloud-task-assignment-filter\n *ngIf=\"taskFilterProperty.type === 'assignment'\"\n [taskFilterProperty]=\"taskFilterProperty\"\n [status]=\"selectedStatus\"\n [appName]=\"appName\"\n (assignedUsersChange)=\"onAssignedUsersChange($event)\"\n (assignedGroupsChange)=\"onAssignedGroupsChange($event)\"\n (assignmentTypeChange)=\"onAssignmentTypeChange($event)\" />\n\n </ng-container>\n </div>\n </form>\n </ng-container>\n </mat-expansion-panel>\n</mat-accordion>\n", styles: [".adf-edit-task-filter-checkbox{font-size:var(--theme-subheading-2-font-size);padding-top:10px;text-align:center;flex:1 23%}.adf-edit-task-filter-date-error-container{position:absolute;height:20px;margin-top:12px;width:100%}.adf-edit-task-filter-date-error-container>div{display:flex;flex-flow:row;justify-content:flex-start}.adf-edit-task-filter-date-error-container .adf-error-text{padding-right:8px;height:16px;font-size:10px;line-height:1.33;color:var(--theme-warn-color);width:auto}.adf-edit-task-filter-date-error-container .adf-error-icon{font-size:16px;color:var(--theme-warn-color)}.adf-edit-task-filter-dateRange mat-grid-list{width:450px}.adf-cloud-edit-task-filter-loading-margin{margin-left:calc((100% - 100px)/2);margin-right:calc((100% - 100px)/2)}.adf-edit-task-filter-form{flex-flow:row wrap;display:flex;place-content:center flex-start;align-items:center}.adf-edit-task-filter-form :not(:last-child){margin-right:10px}.adf-edit-task-filter-form mat-form-field,.adf-edit-task-filter-form adf-cloud-people,.adf-edit-task-filter-form adf-cloud-task-assignment-filter{flex:1 1 23%}@media (max-width: 599.9px){.adf-edit-task-filter-form{flex-flow:column}.adf-edit-task-filter-form :not(:last-child){margin-bottom:10px;margin-right:0}}.adf-edit-task-filter-header{height:var(--adf-edit-task-and-service-filter-header-height)}.adf-edit-task-filter-header__title{color:var(--adf-edit-task-and-service-filter-header-title-color)}.adf-edit-task-filter-header__description{color:var(--adf-edit-task-and-service-filter-header-description-color);place-content:center space-between}.adf-edit-task-filter-content__text-label{color:var(--adf-edit-task-and-service-filter-content-text-label-color)}.adf-edit-task-filter-content__select-label{color:var(--adf-edit-task-and-service-filter-content-select-label-color)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatExpansionModule }, { kind: "directive", type: i3.MatAccordion, selector: "mat-accordion", inputs: ["hideToggle", "displayMode", "togglePosition"], exportAs: ["matAccordion"] }, { kind: "component", type: i3.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "component", type: i3.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["expandedHeight", "collapsedHeight", "tabIndex"] }, { kind: "directive", type: i3.MatExpansionPanelTitle, selector: "mat-panel-title" }, { kind: "directive", type: i3.MatExpansionPanelDescription, selector: "mat-panel-description" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: IconComponent, selector: "adf-icon", inputs: ["color", "fontSet", "value"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i5.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i6.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i6.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i6.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i7.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatLabel, selector: "mat-label" }, { kind: "directive", type: i7.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i8.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i9.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i10.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i11.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i11.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i11.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i12.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i13.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "component", type: DateRangeFilterComponent, selector: "adf-cloud-date-range-filter", inputs: ["processFilterProperty", "options"], outputs: ["dateChanged", "dateTypeChange"] }, { kind: "component", type: PeopleCloudComponent, selector: "adf-cloud-people", inputs: ["appName", "mode", "roles", "validate", "readOnly", "required", "preSelectUsers", "excludedUsers", "groupsRestriction", "userChipsCtrl", "searchUserCtrl", "title", "placeholder", "hideInputOnSingleSelection", "formFieldAppearance", "formFieldSubscriptSizing", "showErrors", "showFullNameOnHover"], outputs: ["selectUser", "removeUser", "changedUsers", "warning"] }, { kind: "component", type: TaskAssignmentFilterCloudComponent, selector: "adf-cloud-task-assignment-filter", inputs: ["appName", "taskFilterProperty", "status"], outputs: ["assignedUsersChange", "assignedGroupsChange", "assignmentTypeChange"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
184
184
|
}
|
|
185
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
185
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: EditServiceTaskFilterCloudComponent, decorators: [{
|
|
186
186
|
type: Component,
|
|
187
187
|
args: [{ selector: 'adf-cloud-edit-service-task-filter', standalone: true, imports: [
|
|
188
188
|
CommonModule,
|
|
@@ -203,4 +203,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
203
203
|
TaskAssignmentFilterCloudComponent
|
|
204
204
|
], encapsulation: ViewEncapsulation.None, template: "<mat-accordion [hideToggle]=\"isLoading\" class=\"adf-edit-task-filter\">\n <mat-expansion-panel (afterExpand)=\"onExpand()\" (closed)=\"onClose()\">\n <mat-expansion-panel-header *ngIf=\"taskFilter\" id=\"adf-edit-task-filter-expansion-header\" class=\"adf-edit-task-filter-header\">\n <ng-container *ngIf=\"!isLoading; else loadingTemplate\">\n <mat-panel-title *ngIf=\"showTaskFilterName\" id=\"adf-edit-task-filter-title-id\" class=\"adf-edit-task-filter-header__title\"\n >{{taskFilter.name | translate}}</mat-panel-title>\n <mat-panel-description class=\"adf-edit-task-filter-header__description\" id=\"adf-edit-task-filter-sub-title-id\">\n <span *ngIf=\"showTitle\">{{ 'ADF_CLOUD_EDIT_TASK_FILTER.TITLE' | translate}}</span>\n <div *ngIf=\"showFilterActions\" class=\"adf-cloud-edit-task-filter-actions\">\n <ng-container *ngIf=\"toggleFilterActions\">\n <button *ngFor=\"let filterAction of taskFilterActions\"\n mat-icon-button\n [title]=\"filterAction.tooltip | translate\"\n [attr.data-automation-id]=\"'adf-filter-action-' + filterAction.actionType\"\n [disabled]=\"isDisabledAction(filterAction)\"\n (click)=\"executeFilterActions(filterAction)\">\n <adf-icon [value]=\"filterAction.icon\" />\n </button>\n </ng-container>\n </div>\n </mat-panel-description>\n </ng-container>\n <ng-template #loadingTemplate>\n <div class=\"adf-cloud-edit-task-filter-loading-margin\">\n <mat-progress-spinner mode=\"indeterminate\" [diameter]=\"30\" />\n </div>\n </ng-template>\n </mat-expansion-panel-header>\n <ng-container *ngIf=\"!isLoading;\">\n <form *ngIf=\"editTaskFilterForm\" [formGroup]=\"editTaskFilterForm\" class=\"adf-edit-task-filter-content\">\n <div class=\"adf-edit-task-filter-form\">\n <ng-container *ngFor=\"let taskFilterProperty of taskFilterProperties\">\n <mat-form-field [floatLabel]=\"'auto'\"\n *ngIf=\"taskFilterProperty.type === 'select'\"\n [attr.data-automation-id]=\"taskFilterProperty.key\">\n <mat-label class=\"adf-edit-task-filter-content__select-label\">{{taskFilterProperty.label | translate}}</mat-label>\n <mat-select\n [formControlName]=\"taskFilterProperty.key\"\n [attr.data-automation-id]=\"'adf-cloud-edit-task-property-' + taskFilterProperty.key\"\n (selectionChange)=\"onStatusChange($event)\">\n <mat-option *ngFor=\"let propertyOption of taskFilterProperty.options\"\n [value]=\"propertyOption.value\"\n [attr.data-automation-id]=\"'adf-cloud-edit-task-property-options-' + taskFilterProperty.key\">\n {{ propertyOption.label | translate }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n <mat-form-field [floatLabel]=\"'auto'\"\n *ngIf=\"taskFilterProperty.type === 'text'\"\n [attr.data-automation-id]=\"taskFilterProperty.key\">\n <mat-label class=\"adf-edit-task-filter-content__text-label\">{{taskFilterProperty.label | translate}}</mat-label>\n <input matInput\n [formControlName]=\"taskFilterProperty.key\"\n type=\"text\"\n [attr.data-automation-id]=\"'adf-cloud-edit-task-property-' + taskFilterProperty.key\" />\n </mat-form-field>\n <mat-form-field [floatLabel]=\"'auto'\"\n *ngIf=\"taskFilterProperty.type === 'date'\"\n [attr.data-automation-id]=\"taskFilterProperty.key\">\n <mat-label>{{taskFilterProperty.label | translate}}</mat-label>\n <input matInput\n (keyup)=\"onDateChanged($any($event).target.value, taskFilterProperty)\"\n (dateChange)=\"onDateChanged($event.value, taskFilterProperty)\"\n [matDatepicker]=\"dateController\"\n [placeholder]=\"taskFilterProperty.label | translate\"\n [attr.data-automation-id]=\"'adf-cloud-edit-task-property-' + taskFilterProperty.key\">\n <mat-datepicker-toggle matSuffix\n [for]=\"dateController\"\n [attr.data-automation-id]=\"'adf-cloud-edit-task-property-date-toggle-' + taskFilterProperty.key\" />\n <mat-datepicker #dateController\n [attr.data-automation-id]=\"'adf-cloud-edit-task-property-date-picker-' + taskFilterProperty.key\" />\n <div class=\"adf-edit-task-filter-date-error-container\">\n <div *ngIf=\"hasError(taskFilterProperty)\">\n <div class=\"adf-error-text\">{{'ADF_TASK_LIST.START_TASK.FORM.ERROR.DATE'|translate}}</div>\n <mat-icon class=\"adf-error-icon\">warning</mat-icon>\n </div>\n </div>\n </mat-form-field>\n <div class=\"adf-edit-task-filter-checkbox\"\n *ngIf=\"taskFilterProperty.type === 'checkbox'\">\n <mat-checkbox color=\"primary\"\n [formControlName]=\"taskFilterProperty.key\"\n [attr.data-automation-id]=\"taskFilterProperty.key\"\n >{{taskFilterProperty.label | translate}}</mat-checkbox>\n </div>\n\n <adf-cloud-date-range-filter\n *ngIf=\"taskFilterProperty.type === 'date-range'\"\n [processFilterProperty]=\"taskFilterProperty\"\n [options]=\"taskFilterProperty.dateFilterOptions\"\n (dateTypeChange)=\"onDateTypeChange($event, taskFilterProperty)\"\n (dateChanged)=\"onDateRangeFilterChanged($event, taskFilterProperty)\" />\n <adf-cloud-people\n class=\"{{ 'adf-edit-task-filter-' + taskFilterProperty.key }}\"\n *ngIf=\"taskFilterProperty.type === 'people'\"\n [preSelectUsers]=\"taskFilterProperty.value\"\n [title]=\"taskFilterProperty.label\"\n [validate]=\"true\"\n [appName]=\"appName\"\n [mode]=\"taskFilterProperty.selectionMode\"\n (changedUsers)=\"onChangedUser($event, taskFilterProperty)\" />\n\n <adf-cloud-task-assignment-filter\n *ngIf=\"taskFilterProperty.type === 'assignment'\"\n [taskFilterProperty]=\"taskFilterProperty\"\n [status]=\"selectedStatus\"\n [appName]=\"appName\"\n (assignedUsersChange)=\"onAssignedUsersChange($event)\"\n (assignedGroupsChange)=\"onAssignedGroupsChange($event)\"\n (assignmentTypeChange)=\"onAssignmentTypeChange($event)\" />\n\n </ng-container>\n </div>\n </form>\n </ng-container>\n </mat-expansion-panel>\n</mat-accordion>\n", styles: [".adf-edit-task-filter-checkbox{font-size:var(--theme-subheading-2-font-size);padding-top:10px;text-align:center;flex:1 23%}.adf-edit-task-filter-date-error-container{position:absolute;height:20px;margin-top:12px;width:100%}.adf-edit-task-filter-date-error-container>div{display:flex;flex-flow:row;justify-content:flex-start}.adf-edit-task-filter-date-error-container .adf-error-text{padding-right:8px;height:16px;font-size:10px;line-height:1.33;color:var(--theme-warn-color);width:auto}.adf-edit-task-filter-date-error-container .adf-error-icon{font-size:16px;color:var(--theme-warn-color)}.adf-edit-task-filter-dateRange mat-grid-list{width:450px}.adf-cloud-edit-task-filter-loading-margin{margin-left:calc((100% - 100px)/2);margin-right:calc((100% - 100px)/2)}.adf-edit-task-filter-form{flex-flow:row wrap;display:flex;place-content:center flex-start;align-items:center}.adf-edit-task-filter-form :not(:last-child){margin-right:10px}.adf-edit-task-filter-form mat-form-field,.adf-edit-task-filter-form adf-cloud-people,.adf-edit-task-filter-form adf-cloud-task-assignment-filter{flex:1 1 23%}@media (max-width: 599.9px){.adf-edit-task-filter-form{flex-flow:column}.adf-edit-task-filter-form :not(:last-child){margin-bottom:10px;margin-right:0}}.adf-edit-task-filter-header{height:var(--adf-edit-task-and-service-filter-header-height)}.adf-edit-task-filter-header__title{color:var(--adf-edit-task-and-service-filter-header-title-color)}.adf-edit-task-filter-header__description{color:var(--adf-edit-task-and-service-filter-header-description-color);place-content:center space-between}.adf-edit-task-filter-content__text-label{color:var(--adf-edit-task-and-service-filter-content-text-label-color)}.adf-edit-task-filter-content__select-label{color:var(--adf-edit-task-and-service-filter-content-select-label-color)}\n"] }]
|
|
205
205
|
}], ctorParameters: () => [] });
|
|
206
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdC1zZXJ2aWNlLXRhc2stZmlsdGVyLWNsb3VkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9wcm9jZXNzLXNlcnZpY2VzLWNsb3VkL3NyYy9saWIvdGFzay90YXNrLWZpbHRlcnMvY29tcG9uZW50cy9lZGl0LXRhc2stZmlsdGVycy9lZGl0LXNlcnZpY2UtdGFzay1maWx0ZXIvZWRpdC1zZXJ2aWNlLXRhc2stZmlsdGVyLWNsb3VkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9wcm9jZXNzLXNlcnZpY2VzLWNsb3VkL3NyYy9saWIvdGFzay90YXNrLWZpbHRlcnMvY29tcG9uZW50cy9lZGl0LXRhc2stZmlsdGVycy9lZGl0LXNlcnZpY2UtdGFzay1maWx0ZXIvZWRpdC1zZXJ2aWNlLXRhc2stZmlsdGVyLWNsb3VkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3JFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQ3BHLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBa0IsTUFBTSwwQ0FBMEMsQ0FBQztBQUM1RyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFB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Q2YsYUFBYTt3QkFDYix3QkFBd0I7d0JBQ3hCLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3dCQUNsQixlQUFlO3dCQUNmLGNBQWM7d0JBQ2QsbUJBQW1CO3dCQUNuQixhQUFhO3dCQUNiLGlCQUFpQjt3QkFDakIsd0JBQXdCO3dCQUN4QixvQkFBb0I7d0JBQ3BCLGtDQUFrQztxQkFDckMsaUJBR2MsaUJBQWlCLENBQUMsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBTZXJ2aWNlVGFza0ZpbHRlckNsb3VkTW9kZWwsIFRhc2tGaWx0ZXJBY3Rpb24sIFRhc2tGaWx0ZXJQcm9wZXJ0aWVzIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2ZpbHRlci1jbG91ZC5tb2RlbCc7XG5pbXBvcnQgeyBTZXJ2aWNlVGFza0ZpbHRlckNsb3VkU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3NlcnZpY2UtdGFzay1maWx0ZXItY2xvdWQuc2VydmljZSc7XG5pbXBvcnQgeyBCYXNlRWRpdFRhc2tGaWx0ZXJDbG91ZENvbXBvbmVudCwgRHJvcGRvd25PcHRpb24gfSBmcm9tICcuLi9iYXNlLWVkaXQtdGFzay1maWx0ZXItY2xvdWQuY29tcG9uZW50JztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IE1hdEV4cGFuc2lvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2V4cGFuc2lvbic7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgSWNvbkNvbXBvbmVudCB9IGZyb20gJ0BhbGZyZXNjby9hZGYtY29yZSc7XG5pbXBvcnQgeyBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1zcGlubmVyJztcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IE1hdFNlbGVjdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IE1hdERhdGVwaWNrZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdENoZWNrYm94TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xuaW1wb3J0IHsgRGF0ZVJhbmdlRmlsdGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vY29tbW9uL2RhdGUtcmFuZ2UtZmlsdGVyL2RhdGUtcmFuZ2UtZmlsdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQZW9wbGVDbG91ZENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3Blb3BsZS9jb21wb25lbnRzL3Blb3BsZS1jbG91ZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGFza0Fzc2lnbm1lbnRGaWx0ZXJDbG91ZENvbXBvbmVudCB9IGZyb20gJy4uLy4uL3Rhc2stYXNzaWdubWVudC1maWx0ZXIvdGFzay1hc3NpZ25tZW50LWZpbHRlci5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FkZi1jbG91ZC1lZGl0LXNlcnZpY2UtdGFzay1maWx0ZXInLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICAgICAgTWF0RXhwYW5zaW9uTW9kdWxlLFxuICAgICAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgICAgIEljb25Db21wb25lbnQsXG4gICAgICAgIE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSxcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICAgICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgICAgICBNYXRTZWxlY3RNb2R1bGUsXG4gICAgICAgIE1hdElucHV0TW9kdWxlLFxuICAgICAgICBNYXREYXRlcGlja2VyTW9kdWxlLFxuICAgICAgICBNYXRJY29uTW9kdWxlLFxuICAgICAgICBNYXRDaGVja2JveE1vZHVsZSxcbiAgICAgICAgRGF0ZVJhbmdlRmlsdGVyQ29tcG9uZW50LFxuICAgICAgICBQZW9wbGVDbG91ZENvbXBvbmVudCxcbiAgICAgICAgVGFza0Fzc2lnbm1lbnRGaWx0ZXJDbG91ZENvbXBvbmVudFxuICAgIF0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL2VkaXQtc2VydmljZS10YXNrLWZpbHRlci1jbG91ZC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZWRpdC1zZXJ2aWNlLXRhc2stZmlsdGVyLWNsb3VkLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBFZGl0U2VydmljZVRhc2tGaWx0ZXJDbG91ZENvbXBvbmVudCBleHRlbmRzIEJhc2VFZGl0VGFza0ZpbHRlckNsb3VkQ29tcG9uZW50PFNlcnZpY2VUYXNrRmlsdGVyQ2xvdWRNb2RlbD4ge1xuICAgIHByaXZhdGUgc2VydmljZVRhc2tGaWx0ZXJDbG91ZFNlcnZpY2UgPSBpbmplY3QoU2VydmljZVRhc2tGaWx0ZXJDbG91ZFNlcnZpY2UpO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgYXNzaWduTmV3RmlsdGVyKG1vZGVsOiBTZXJ2aWNlVGFza0ZpbHRlckNsb3VkTW9kZWwpIHtcbiAgICAgICAgdGhpcy5jaGFuZ2VkVGFza0ZpbHRlciA9IHsgLi4udGhpcy50YXNrRmlsdGVyLCAuLi5tb2RlbCB9O1xuICAgICAgICB0aGlzLmZvcm1IYXNCZWVuQ2hhbmdlZCA9ICF0aGlzLmRlZXBDb21wYXJlKHRoaXMuY2hhbmdlZFRhc2tGaWx0ZXIsIHRoaXMudGFza0ZpbHRlcik7XG4gICAgICAgIHRoaXMuZmlsdGVyQ2hhbmdlLmVtaXQodGhpcy5jaGFuZ2VkVGFza0ZpbHRlcik7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldFRhc2tGaWx0ZXJCeUlkKGFwcE5hbWU6IHN0cmluZywgaWQ6IHN0cmluZykge1xuICAgICAgICByZXR1cm4gdGhpcy5zZXJ2aWNlVGFza0ZpbHRlckNsb3VkU2VydmljZS5nZXRUYXNrRmlsdGVyQnlJZChhcHBOYW1lLCBpZCk7XG4gICAgfVxuXG4gICAgZ2V0RGVmYXVsdEZpbHRlclByb3BlcnRpZXMoKTogc3RyaW5nW10ge1xuICAgICAgICByZXR1cm4gWydhcHBOYW1lJywgJ2FjdGl2aXR5TmFtZScsICdzdGF0dXMnLCAnc29ydCcsICdvcmRlciddO1xuICAgIH1cblxuICAgIGdldERlZmF1bHRTb3J0UHJvcGVydGllcygpOiBzdHJpbmdbXSB7XG4gICAgICAgIHJldHVybiBbJ2lkJywgJ2FjdGl2aXR5TmFtZScsICdzdGFydGVkRGF0ZScsICdjb21wbGV0ZWREYXRlJ107XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHVwZGF0ZUZpbHRlcihmaWx0ZXJUb1VwZGF0ZTogU2VydmljZVRhc2tGaWx0ZXJDbG91ZE1vZGVsKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnNlcnZpY2VUYXNrRmlsdGVyQ2xvdWRTZXJ2aWNlLnVwZGF0ZUZpbHRlcihmaWx0ZXJUb1VwZGF0ZSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGRlbGV0ZUZpbHRlcihmaWx0ZXJUb0RlbGV0ZTogU2VydmljZVRhc2tGaWx0ZXJDbG91ZE1vZGVsKTogT2JzZXJ2YWJsZTxTZXJ2aWNlVGFza0ZpbHRlckNsb3VkTW9kZWxbXT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zZXJ2aWNlVGFza0ZpbHRlckNsb3VkU2VydmljZS5kZWxldGVGaWx0ZXIoZmlsdGVyVG9EZWxldGUpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBhZGRGaWx0ZXIoZmlsdGVyVG9BZGQ6IFNlcnZpY2VUYXNrRmlsdGVyQ2xvdWRNb2RlbCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNlcnZpY2VUYXNrRmlsdGVyQ2xvdWRTZXJ2aWNlLmFkZEZpbHRlcihmaWx0ZXJUb0FkZCkucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSk7XG4gICAgfVxuXG4gICAgaXNEaXNhYmxlZEZvckRlZmF1bHRGaWx0ZXJzKGFjdGlvbjogVGFza0ZpbHRlckFjdGlvbik6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdGhpcy5zZXJ2aWNlVGFza0ZpbHRlckNsb3VkU2VydmljZS5pc0RlZmF1bHRGaWx0ZXIodGhpcy50YXNrRmlsdGVyLm5hbWUpICYmXG4gICAgICAgICAgICBFZGl0U2VydmljZVRhc2tGaWx0ZXJDbG91ZENvbXBvbmVudC5BQ1RJT05TX0RJU0FCTEVEX0JZX0RFRkFVTFQuaW5jbHVkZXMoYWN0aW9uLmFjdGlvblR5cGUpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcmVzdG9yZURlZmF1bHRUYXNrRmlsdGVycygpOiBPYnNlcnZhYmxlPFNlcnZpY2VUYXNrRmlsdGVyQ2xvdWRNb2RlbFtdPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNlcnZpY2VUYXNrRmlsdGVyQ2xvdWRTZXJ2aWNlLmdldFRhc2tMaXN0RmlsdGVycyh0aGlzLmFwcE5hbWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0U3RhdHVzT3B0aW9ucygpOiBEcm9wZG93bk9wdGlvbltdIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHsgdmFsdWU6ICcnLCBsYWJlbDogJ0FERl9DTE9VRF9TRVJWSUNFX1RBU0tfRklMVEVSUy5TVEFUVVMuQUxMJyB9LFxuICAgICAgICAgICAgeyB2YWx1ZTogJ1NUQVJURUQnLCBsYWJlbDogJ0FERl9DTE9VRF9TRVJWSUNFX1RBU0tfRklMVEVSUy5TVEFUVVMuU1RBUlRFRCcgfSxcbiAgICAgICAgICAgIHsgdmFsdWU6ICdDT01QTEVURUQnLCBsYWJlbDogJ0FERl9DTE9VRF9TRVJWSUNFX1RBU0tfRklMVEVSUy5TVEFUVVMuQ09NUExFVEVEJyB9LFxuICAgICAgICAgICAgeyB2YWx1ZTogJ0NBTkNFTExFRCcsIGxhYmVsOiAnQURGX0NMT1VEX1NFUlZJQ0VfVEFTS19GSUxURVJTLlNUQVRVUy5DQU5DRUxMRUQnIH0sXG4gICAgICAgICAgICB7IHZhbHVlOiAnRVJST1InLCBsYWJlbDogJ0FERl9DTE9VRF9TRVJWSUNFX1RBU0tfRklMVEVSUy5TVEFUVVMuRVJST1InIH1cbiAgICAgICAgXTtcbiAgICB9XG5cbiAgICBjcmVhdGVUYXNrRmlsdGVyUHJvcGVydGllcygpOiBUYXNrRmlsdGVyUHJvcGVydGllc1tdIHtcbiAgICAgICAgY29uc3Qgc3RhdHVzT3B0aW9ucyA9IHRoaXMuZ2V0U3RhdHVzT3B0aW9ucygpO1xuXG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbGFiZWw6ICdBREZfQ0xPVURfRURJVF9TRVJWSUNFX1RBU0tfRklMVEVSLkxBQkVMLkFQUF9OQU1FJyxcbiAgICAgICAgICAgICAgICB0eXBlOiAnc2VsZWN0JyxcbiAgICAgICAgICAgICAgICBrZXk6ICdhcHBOYW1lJyxcbiAgICAgICAgICAgICAgICB2YWx1ZTogdGhpcy50YXNrRmlsdGVyLmFwcE5hbWUgfHwgJycsXG4gICAgICAgICAgICAgICAgb3B0aW9uczogdGhpcy5hcHBsaWNhdGlvbk5hbWVzXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGxhYmVsOiAnQURGX0NMT1VEX0VESVRfU0VSVklDRV9UQVNLX0ZJTFRFUi5MQUJFTC5TRVJWSUNFX1RBU0tfSUQnLFxuICAgICAgICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgICAgICAgICAgICBrZXk6ICdzZXJ2aWNlVGFza0lkJyxcbiAgICAgICAgICAgICAgICB2YWx1ZTogdGhpcy50YXNrRmlsdGVyLnNlcnZpY2VUYXNrSWQgfHwgJydcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbGFiZWw6ICdBREZfQ0xPVURfRURJVF9TRVJWSUNFX1RBU0tfRklMVEVSLkxBQkVMLkVMRU1FTlRfSUQnLFxuICAgICAgICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgICAgICAgICAgICBrZXk6ICdlbGVtZW50SWQnLFxuICAgICAgICAgICAgICAgIHZhbHVlOiB0aGlzLnRhc2tGaWx0ZXIuZWxlbWVudElkIHx8ICcnXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGxhYmVsOiAnQURGX0NMT1VEX0VESVRfU0VSVklDRV9UQVNLX0ZJTFRFUi5MQUJFTC5BQ1RJVklUWV9OQU1FJyxcbiAgICAgICAgICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAgICAgICAgICAga2V5OiAnYWN0aXZpdHlOYW1lJyxcbiAgICAgICAgICAgICAgICB2YWx1ZTogdGhpcy50YXNrRmlsdGVyLmFjdGl2aXR5TmFtZSB8fCAnJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBsYWJlbDogJ0FERl9DTE9VRF9FRElUX1NFUlZJQ0VfVEFTS19GSUxURVIuTEFCRUwuQUNUSVZJVFlfVFlQRScsXG4gICAgICAgICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgICAgICAgICAgIGtleTogJ2FjdGl2aXR5VHlwZScsXG4gICAgICAgICAgICAgICAgdmFsdWU6IHRoaXMudGFza0ZpbHRlci5hY3Rpdml0eVR5cGUgfHwgJydcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbGFiZWw6ICdBREZfQ0xPVURfRURJVF9TRVJWSUNFX1RBU0tfRklMVEVSLkxBQkVMLlNPUlQnLFxuICAgICAgICAgICAgICAgIHR5cGU6ICdzZWxlY3QnLFxuICAgICAgICAgICAgICAgIGtleTogJ3NvcnQnLFxuICAgICAgICAgICAgICAgIHZhbHVlOiB0aGlzLnRhc2tGaWx0ZXIuc29ydCB8fCB0aGlzLmNyZWF0ZVNvcnRQcm9wZXJ0aWVzWzBdLnZhbHVlLFxuICAgICAgICAgICAgICAgIG9wdGlvbnM6IHRoaXMuY3JlYXRlU29ydFByb3BlcnRpZXNcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbGFiZWw6ICdBREZfQ0xPVURfRURJVF9TRVJWSUNFX1RBU0tfRklMVEVSLkxBQkVMLkRJUkVDVElPTicsXG4gICAgICAgICAgICAgICAgdHlwZTogJ3NlbGVjdCcsXG4gICAgICAgICAgICAgICAga2V5OiAnb3JkZXInLFxuICAgICAgICAgICAgICAgIHZhbHVlOiB0aGlzLnRhc2tGaWx0ZXIub3JkZXIgfHwgdGhpcy5zb3J0RGlyZWN0aW9uc1swXS52YWx1ZSxcbiAgICAgICAgICAgICAgICBvcHRpb25zOiBbLi4udGhpcy5zb3J0RGlyZWN0aW9uc11cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbGFiZWw6ICdBREZfQ0xPVURfRURJVF9TRVJWSUNFX1RBU0tfRklMVEVSLkxBQkVMLlNUQVRVUycsXG4gICAgICAgICAgICAgICAgdHlwZTogJ3NlbGVjdCcsXG4gICAgICAgICAgICAgICAga2V5OiAnc3RhdHVzJyxcbiAgICAgICAgICAgICAgICB2YWx1ZTogdGhpcy50YXNrRmlsdGVyLnN0YXR1cyB8fCBzdGF0dXNPcHRpb25zWzBdLnZhbHVlLFxuICAgICAgICAgICAgICAgIG9wdGlvbnM6IHN0YXR1c09wdGlvbnNcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbGFiZWw6ICdBREZfQ0xPVURfRURJVF9TRVJWSUNFX1RBU0tfRklMVEVSLkxBQkVMLlNUQVJURURfREFURScsXG4gICAgICAgICAgICAgICAgdHlwZTogJ2RhdGUnLFxuICAgICAgICAgICAgICAgIGtleTogJ3N0YXJ0ZWREYXRlJyxcbiAgICAgICAgICAgICAgICB2YWx1ZTogdGhpcy50YXNrRmlsdGVyLmNvbXBsZXRlZERhdGUgfHwgZmFsc2VcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbGFiZWw6ICdBREZfQ0xPVURfRURJVF9TRVJWSUNFX1RBU0tfRklMVEVSLkxBQkVMLkNPTVBMRVRFRF9EQVRFJyxcbiAgICAgICAgICAgICAgICB0eXBlOiAnZGF0ZScsXG4gICAgICAgICAgICAgICAga2V5OiAnY29tcGxldGVkRGF0ZScsXG4gICAgICAgICAgICAgICAgdmFsdWU6IHRoaXMudGFza0ZpbHRlci5jb21wbGV0ZWREYXRlIHx8IGZhbHNlXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGxhYmVsOiAnQURGX0NMT1VEX0VESVRfU0VSVklDRV9UQVNLX0ZJTFRFUi5MQUJFTC5QUk9DRVNTX0lOU1RBTkNFX0lEJyxcbiAgICAgICAgICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAgICAgICAgICAga2V5OiAncHJvY2Vzc0luc3RhbmNlSWQnLFxuICAgICAgICAgICAgICAgIHZhbHVlOiB0aGlzLnByb2Nlc3NJbnN0YW5jZUlkIHx8IHRoaXMudGFza0ZpbHRlci5wcm9jZXNzSW5zdGFuY2VJZCB8fCAnJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBsYWJlbDogJ0FERl9DTE9VRF9FRElUX1NFUlZJQ0VfVEFTS19GSUxURVIuTEFCRUwuUFJPQ0VTU19ERUZfSUQnLFxuICAgICAgICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgICAgICAgICAgICBrZXk6ICdwcm9jZXNzRGVmaW5pdGlvbklkJyxcbiAgICAgICAgICAgICAgICB2YWx1ZTogdGhpcy50YXNrRmlsdGVyLnByb2Nlc3NEZWZpbml0aW9uSWQgfHwgJydcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbGFiZWw6ICdBREZfQ0xPVURfRURJVF9TRVJWSUNFX1RBU0tfRklMVEVSLkxBQkVMLlNFUlZJQ0VfTkFNRScsXG4gICAgICAgICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgICAgICAgICAgIGtleTogJ3NlcnZpY2VOYW1lJyxcbiAgICAgICAgICAgICAgICB2YWx1ZTogdGhpcy50YXNrRmlsdGVyLnNlcnZpY2VOYW1lIHx8ICcnXG4gICAgICAgICAgICB9XG4gICAgICAgIF07XG4gICAgfVxufVxuIiwiPG1hdC1hY2NvcmRpb24gW2hpZGVUb2dnbGVdPVwiaXNMb2FkaW5nXCIgY2xhc3M9XCJhZGYtZWRpdC10YXNrLWZpbHRlclwiPlxuICAgIDxtYXQtZXhwYW5zaW9uLXBhbmVsIChhZnRlckV4cGFuZCk9XCJvbkV4cGFuZCgpXCIgKGNsb3NlZCk9XCJvbkNsb3NlKClcIj5cbiAgICAgICAgPG1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyICpuZ0lmPVwidGFza0ZpbHRlclwiIGlkPVwiYWRmLWVkaXQtdGFzay1maWx0ZXItZXhwYW5zaW9uLWhlYWRlclwiIGNsYXNzPVwiYWRmLWVkaXQtdGFzay1maWx0ZXItaGVhZGVyXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzTG9hZGluZzsgZWxzZSBsb2FkaW5nVGVtcGxhdGVcIj5cbiAgICAgICAgICAgICAgICA8bWF0LXBhbmVsLXRpdGxlICpuZ0lmPVwic2hvd1Rhc2tGaWx0ZXJOYW1lXCIgaWQ9XCJhZGYtZWRpdC10YXNrLWZpbHRlci10aXRsZS1pZFwiIGNsYXNzPVwiYWRmLWVkaXQtdGFzay1maWx0ZXItaGVhZGVyX190aXRsZVwiXG4gICAgICAgICAgICAgICAgICAgID57e3Rhc2tGaWx0ZXIubmFtZSB8IHRyYW5zbGF0ZX19PC9tYXQtcGFuZWwtdGl0bGU+XG4gICAgICAgICAgICAgICAgPG1hdC1wYW5lbC1kZXNjcmlwdGlvbiBjbGFzcz1cImFkZi1lZGl0LXRhc2stZmlsdGVyLWhlYWRlcl9fZGVzY3JpcHRpb25cIiBpZD1cImFkZi1lZGl0LXRhc2stZmlsdGVyLXN1Yi10aXRsZS1pZFwiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInNob3dUaXRsZVwiPnt7ICdBREZfQ0xPVURfRURJVF9UQVNLX0ZJTFRFUi5USVRMRScgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInNob3dGaWx0ZXJBY3Rpb25zXCIgY2xhc3M9XCJhZGYtY2xvdWQtZWRpdC10YXNrLWZpbHRlci1hY3Rpb25zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidG9nZ2xlRmlsdGVyQWN0aW9uc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gKm5nRm9yPVwibGV0IGZpbHRlckFjdGlvbiBvZiB0YXNrRmlsdGVyQWN0aW9uc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCJmaWx0ZXJBY3Rpb24udG9vbHRpcCB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLWF1dG9tYXRpb24taWRdPVwiJ2FkZi1maWx0ZXItYWN0aW9uLScgKyBmaWx0ZXJBY3Rpb24uYWN0aW9uVHlwZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNEaXNhYmxlZEFjdGlvbihmaWx0ZXJBY3Rpb24pXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJleGVjdXRlRmlsdGVyQWN0aW9ucyhmaWx0ZXJBY3Rpb24pXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhZGYtaWNvbiBbdmFsdWVdPVwiZmlsdGVyQWN0aW9uLmljb25cIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbWF0LXBhbmVsLWRlc2NyaXB0aW9uPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI2xvYWRpbmdUZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWRmLWNsb3VkLWVkaXQtdGFzay1maWx0ZXItbG9hZGluZy1tYXJnaW5cIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1wcm9ncmVzcy1zcGlubmVyIG1vZGU9XCJpbmRldGVybWluYXRlXCIgW2RpYW1ldGVyXT1cIjMwXCIgLz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvbWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNMb2FkaW5nO1wiPlxuICAgICAgICAgICAgPGZvcm0gKm5nSWY9XCJlZGl0VGFza0ZpbHRlckZvcm1cIiBbZm9ybUdyb3VwXT1cImVkaXRUYXNrRmlsdGVyRm9ybVwiIGNsYXNzPVwiYWRmLWVkaXQtdGFzay1maWx0ZXItY29udGVudFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhZGYtZWRpdC10YXNrLWZpbHRlci1mb3JtXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHRhc2tGaWx0ZXJQcm9wZXJ0eSBvZiB0YXNrRmlsdGVyUHJvcGVydGllc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIFtmbG9hdExhYmVsXT1cIidhdXRvJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJ0YXNrRmlsdGVyUHJvcGVydHkudHlwZSA9PT0gJ3NlbGVjdCdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtYXV0b21hdGlvbi1pZF09XCJ0YXNrRmlsdGVyUHJvcGVydHkua2V5XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbCBjbGFzcz1cImFkZi1lZGl0LXRhc2stZmlsdGVyLWNvbnRlbnRfX3NlbGVjdC1sYWJlbFwiPnt7dGFza0ZpbHRlclByb3BlcnR5LmxhYmVsIHwgdHJhbnNsYXRlfX08L21hdC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LXNlbGVjdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cInRhc2tGaWx0ZXJQcm9wZXJ0eS5rZXlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLWF1dG9tYXRpb24taWRdPVwiJ2FkZi1jbG91ZC1lZGl0LXRhc2stcHJvcGVydHktJyArIHRhc2tGaWx0ZXJQcm9wZXJ0eS5rZXlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cIm9uU3RhdHVzQ2hhbmdlKCRldmVudClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBwcm9wZXJ0eU9wdGlvbiBvZiB0YXNrRmlsdGVyUHJvcGVydHkub3B0aW9uc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cInByb3BlcnR5T3B0aW9uLnZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLWF1dG9tYXRpb24taWRdPVwiJ2FkZi1jbG91ZC1lZGl0LXRhc2stcHJvcGVydHktb3B0aW9ucy0nICsgdGFza0ZpbHRlclByb3BlcnR5LmtleVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHByb3BlcnR5T3B0aW9uLmxhYmVsIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBbZmxvYXRMYWJlbF09XCInYXV0bydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwidGFza0ZpbHRlclByb3BlcnR5LnR5cGUgPT09ICd0ZXh0J1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1hdXRvbWF0aW9uLWlkXT1cInRhc2tGaWx0ZXJQcm9wZXJ0eS5rZXlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsIGNsYXNzPVwiYWRmLWVkaXQtdGFzay1maWx0ZXItY29udGVudF9fdGV4dC1sYWJlbFwiPnt7dGFza0ZpbHRlclByb3BlcnR5LmxhYmVsIHwgdHJhbnNsYXRlfX08L21hdC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJ0YXNrRmlsdGVyUHJvcGVydHkua2V5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLWF1dG9tYXRpb24taWRdPVwiJ2FkZi1jbG91ZC1lZGl0LXRhc2stcHJvcGVydHktJyArIHRhc2tGaWx0ZXJQcm9wZXJ0eS5rZXlcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBbZmxvYXRMYWJlbF09XCInYXV0bydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwidGFza0ZpbHRlclByb3BlcnR5LnR5cGUgPT09ICdkYXRlJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1hdXRvbWF0aW9uLWlkXT1cInRhc2tGaWx0ZXJQcm9wZXJ0eS5rZXlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPnt7dGFza0ZpbHRlclByb3BlcnR5LmxhYmVsIHwgdHJhbnNsYXRlfX08L21hdC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGtleXVwKT1cIm9uRGF0ZUNoYW5nZWQoJGFueSgkZXZlbnQpLnRhcmdldC52YWx1ZSwgdGFza0ZpbHRlclByb3BlcnR5KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlQ2hhbmdlKT1cIm9uRGF0ZUNoYW5nZWQoJGV2ZW50LnZhbHVlLCB0YXNrRmlsdGVyUHJvcGVydHkpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21hdERhdGVwaWNrZXJdPVwiZGF0ZUNvbnRyb2xsZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwidGFza0ZpbHRlclByb3BlcnR5LmxhYmVsIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1hdXRvbWF0aW9uLWlkXT1cIidhZGYtY2xvdWQtZWRpdC10YXNrLXByb3BlcnR5LScgKyB0YXNrRmlsdGVyUHJvcGVydHkua2V5XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1kYXRlcGlja2VyLXRvZ2dsZSBtYXRTdWZmaXhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JdPVwiZGF0ZUNvbnRyb2xsZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1hdXRvbWF0aW9uLWlkXT1cIidhZGYtY2xvdWQtZWRpdC10YXNrLXByb3BlcnR5LWRhdGUtdG9nZ2xlLScgKyB0YXNrRmlsdGVyUHJvcGVydHkua2V5XCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWRhdGVwaWNrZXIgI2RhdGVDb250cm9sbGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtYXV0b21hdGlvbi1pZF09XCInYWRmLWNsb3VkLWVkaXQtdGFzay1wcm9wZXJ0eS1kYXRlLXBpY2tlci0nICsgdGFza0ZpbHRlclByb3BlcnR5LmtleVwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFkZi1lZGl0LXRhc2stZmlsdGVyLWRhdGUtZXJyb3ItY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJoYXNFcnJvcih0YXNrRmlsdGVyUHJvcGVydHkpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWRmLWVycm9yLXRleHRcIj57eydBREZfVEFTS19MSVNULlNUQVJUX1RBU0suRk9STS5FUlJPUi5EQVRFJ3x0cmFuc2xhdGV9fTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiYWRmLWVycm9yLWljb25cIj53YXJuaW5nPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFkZi1lZGl0LXRhc2stZmlsdGVyLWNoZWNrYm94XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJ0YXNrRmlsdGVyUHJvcGVydHkudHlwZSA9PT0gJ2NoZWNrYm94J1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtY2hlY2tib3ggY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwidGFza0ZpbHRlclByb3BlcnR5LmtleVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLWF1dG9tYXRpb24taWRdPVwidGFza0ZpbHRlclByb3BlcnR5LmtleVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPnt7dGFza0ZpbHRlclByb3BlcnR5LmxhYmVsIHwgdHJhbnNsYXRlfX08L21hdC1jaGVja2JveD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgICAgICA8YWRmLWNsb3VkLWRhdGUtcmFuZ2UtZmlsdGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJ0YXNrRmlsdGVyUHJvcGVydHkudHlwZSA9PT0gJ2RhdGUtcmFuZ2UnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcHJvY2Vzc0ZpbHRlclByb3BlcnR5XT1cInRhc2tGaWx0ZXJQcm9wZXJ0eVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW29wdGlvbnNdPVwidGFza0ZpbHRlclByb3BlcnR5LmRhdGVGaWx0ZXJPcHRpb25zXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZVR5cGVDaGFuZ2UpPVwib25EYXRlVHlwZUNoYW5nZSgkZXZlbnQsIHRhc2tGaWx0ZXJQcm9wZXJ0eSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlQ2hhbmdlZCk9XCJvbkRhdGVSYW5nZUZpbHRlckNoYW5nZWQoJGV2ZW50LCB0YXNrRmlsdGVyUHJvcGVydHkpXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxhZGYtY2xvdWQtcGVvcGxlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ7eyAnYWRmLWVkaXQtdGFzay1maWx0ZXItJyArIHRhc2tGaWx0ZXJQcm9wZXJ0eS5rZXkgfX1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwidGFza0ZpbHRlclByb3BlcnR5LnR5cGUgPT09ICdwZW9wbGUnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcHJlU2VsZWN0VXNlcnNdPVwidGFza0ZpbHRlclByb3BlcnR5LnZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwidGFza0ZpbHRlclByb3BlcnR5LmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsaWRhdGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FwcE5hbWVdPVwiYXBwTmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW21vZGVdPVwidGFza0ZpbHRlclByb3BlcnR5LnNlbGVjdGlvbk1vZGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2VkVXNlcnMpPVwib25DaGFuZ2VkVXNlcigkZXZlbnQsIHRhc2tGaWx0ZXJQcm9wZXJ0eSlcIiAvPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICA8YWRmLWNsb3VkLXRhc2stYXNzaWdubWVudC1maWx0ZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInRhc2tGaWx0ZXJQcm9wZXJ0eS50eXBlID09PSAnYXNzaWdubWVudCdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0YXNrRmlsdGVyUHJvcGVydHldPVwidGFza0ZpbHRlclByb3BlcnR5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3RhdHVzXT1cInNlbGVjdGVkU3RhdHVzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXBwTmFtZV09XCJhcHBOYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYXNzaWduZWRVc2Vyc0NoYW5nZSk9XCJvbkFzc2lnbmVkVXNlcnNDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFzc2lnbmVkR3JvdXBzQ2hhbmdlKT1cIm9uQXNzaWduZWRHcm91cHNDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFzc2lnbm1lbnRUeXBlQ2hhbmdlKT1cIm9uQXNzaWdubWVudFR5cGVDaGFuZ2UoJGV2ZW50KVwiIC8+XG5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Zvcm0+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbWF0LWV4cGFuc2lvbi1wYW5lbD5cbjwvbWF0LWFjY29yZGlvbj5cbiJdfQ==
|
|
206
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdC1zZXJ2aWNlLXRhc2stZmlsdGVyLWNsb3VkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9wcm9jZXNzLXNlcnZpY2VzLWNsb3VkL3NyYy9saWIvdGFzay90YXNrLWZpbHRlcnMvY29tcG9uZW50cy9lZGl0LXRhc2stZmlsdGVycy9lZGl0LXNlcnZpY2UtdGFzay1maWx0ZXIvZWRpdC1zZXJ2aWNlLXRhc2stZmlsdGVyLWNsb3VkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9wcm9jZXNzLXNlcnZpY2VzLWNsb3VkL3NyYy9saWIvdGFzay90YXNrLWZpbHRlcnMvY29tcG9uZW50cy9lZGl0LXRhc2stZmlsdGVycy9lZGl0LXNlcnZpY2UtdGFzay1maWx0ZXIvZWRpdC1zZXJ2aWNlLXRhc2stZmlsdGVyLWNsb3VkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3JFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQ3BHLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBa0IsTUFBTSwwQ0FBMEMsQ0FBQztBQUM1RyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFB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Q2YsYUFBYTt3QkFDYix3QkFBd0I7d0JBQ3hCLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3dCQUNsQixlQUFlO3dCQUNmLGNBQWM7d0JBQ2QsbUJBQW1CO3dCQUNuQixhQUFhO3dCQUNiLGlCQUFpQjt3QkFDakIsd0JBQXdCO3dCQUN4QixvQkFBb0I7d0JBQ3BCLGtDQUFrQztxQkFDckMsaUJBR2MsaUJBQWlCLENBQUMsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBTZXJ2aWNlVGFza0ZpbHRlckNsb3VkTW9kZWwsIFRhc2tGaWx0ZXJBY3Rpb24sIFRhc2tGaWx0ZXJQcm9wZXJ0aWVzIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2ZpbHRlci1jbG91ZC5tb2RlbCc7XG5pbXBvcnQgeyBTZXJ2aWNlVGFza0ZpbHRlckNsb3VkU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3NlcnZpY2UtdGFzay1maWx0ZXItY2xvdWQuc2VydmljZSc7XG5pbXBvcnQgeyBCYXNlRWRpdFRhc2tGaWx0ZXJDbG91ZENvbXBvbmVudCwgRHJvcGRvd25PcHRpb24gfSBmcm9tICcuLi9iYXNlLWVkaXQtdGFzay1maWx0ZXItY2xvdWQuY29tcG9uZW50JztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IE1hdEV4cGFuc2lvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2V4cGFuc2lvbic7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgSWNvbkNvbXBvbmVudCB9IGZyb20gJ0BhbGZyZXNjby9hZGYtY29yZSc7XG5pbXBvcnQgeyBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1zcGlubmVyJztcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IE1hdFNlbGVjdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IE1hdERhdGVwaWNrZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdENoZWNrYm94TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xuaW1wb3J0IHsgRGF0ZVJhbmdlRmlsdGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vY29tbW9uL2RhdGUtcmFuZ2UtZmlsdGVyL2RhdGUtcmFuZ2UtZmlsdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQZW9wbGVDbG91ZENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3Blb3BsZS9jb21wb25lbnRzL3Blb3BsZS1jbG91ZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGFza0Fzc2lnbm1lbnRGaWx0ZXJDbG91ZENvbXBvbmVudCB9IGZyb20gJy4uLy4uL3Rhc2stYXNzaWdubWVudC1maWx0ZXIvdGFzay1hc3NpZ25tZW50LWZpbHRlci5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FkZi1jbG91ZC1lZGl0LXNlcnZpY2UtdGFzay1maWx0ZXInLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICAgICAgTWF0RXhwYW5zaW9uTW9kdWxlLFxuICAgICAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgICAgIEljb25Db21wb25lbnQsXG4gICAgICAgIE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSxcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICAgICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgICAgICBNYXRTZWxlY3RNb2R1bGUsXG4gICAgICAgIE1hdElucHV0TW9kdWxlLFxuICAgICAgICBNYXREYXRlcGlja2VyTW9kdWxlLFxuICAgICAgICBNYXRJY29uTW9kdWxlLFxuICAgICAgICBNYXRDaGVja2JveE1vZHVsZSxcbiAgICAgICAgRGF0ZVJhbmdlRmlsdGVyQ29tcG9uZW50LFxuICAgICAgICBQZW9wbGVDbG91ZENvbXBvbmVudCxcbiAgICAgICAgVGFza0Fzc2lnbm1lbnRGaWx0ZXJDbG91ZENvbXBvbmVudFxuICAgIF0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL2VkaXQtc2VydmljZS10YXNrLWZpbHRlci1jbG91ZC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZWRpdC1zZXJ2aWNlLXRhc2stZmlsdGVyLWNsb3VkLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBFZGl0U2VydmljZVRhc2tGaWx0ZXJDbG91ZENvbXBvbmVudCBleHRlbmRzIEJhc2VFZGl0VGFza0ZpbHRlckNsb3VkQ29tcG9uZW50PFNlcnZpY2VUYXNrRmlsdGVyQ2xvdWRNb2RlbD4ge1xuICAgIHByaXZhdGUgc2VydmljZVRhc2tGaWx0ZXJDbG91ZFNlcnZpY2UgPSBpbmplY3QoU2VydmljZVRhc2tGaWx0ZXJDbG91ZFNlcnZpY2UpO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgYXNzaWduTmV3RmlsdGVyKG1vZGVsOiBTZXJ2aWNlVGFza0ZpbHRlckNsb3VkTW9kZWwpIHtcbiAgICAgICAgdGhpcy5jaGFuZ2VkVGFza0ZpbHRlciA9IHsgLi4udGhpcy50YXNrRmlsdGVyLCAuLi5tb2RlbCB9O1xuICAgICAgICB0aGlzLmZvcm1IYXNCZWVuQ2hhbmdlZCA9ICF0aGlzLmRlZXBDb21wYXJlKHRoaXMuY2hhbmdlZFRhc2tGaWx0ZXIsIHRoaXMudGFza0ZpbHRlcik7XG4gICAgICAgIHRoaXMuZmlsdGVyQ2hhbmdlLmVtaXQodGhpcy5jaGFuZ2VkVGFza0ZpbHRlcik7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldFRhc2tGaWx0ZXJCeUlkKGFwcE5hbWU6IHN0cmluZywgaWQ6IHN0cmluZykge1xuICAgICAgICByZXR1cm4gdGhpcy5zZXJ2aWNlVGFza0ZpbHRlckNsb3VkU2VydmljZS5nZXRUYXNrRmlsdGVyQnlJZChhcHBOYW1lLCBpZCk7XG4gICAgfVxuXG4gICAgZ2V0RGVmYXVsdEZpbHRlclByb3BlcnRpZXMoKTogc3RyaW5nW10ge1xuICAgICAgICByZXR1cm4gWydhcHBOYW1lJywgJ2FjdGl2aXR5TmFtZScsICdzdGF0dXMnLCAnc29ydCcsICdvcmRlciddO1xuICAgIH1cblxuICAgIGdldERlZmF1bHRTb3J0UHJvcGVydGllcygpOiBzdHJpbmdbXSB7XG4gICAgICAgIHJldHVybiBbJ2lkJywgJ2FjdGl2aXR5TmFtZScsICdzdGFydGVkRGF0ZScsICdjb21wbGV0ZWREYXRlJ107XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHVwZGF0ZUZpbHRlcihmaWx0ZXJUb1VwZGF0ZTogU2VydmljZVRhc2tGaWx0ZXJDbG91ZE1vZGVsKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnNlcnZpY2VUYXNrRmlsdGVyQ2xvdWRTZXJ2aWNlLnVwZGF0ZUZpbHRlcihmaWx0ZXJUb1VwZGF0ZSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGRlbGV0ZUZpbHRlcihmaWx0ZXJUb0RlbGV0ZTogU2VydmljZVRhc2tGaWx0ZXJDbG91ZE1vZGVsKTogT2JzZXJ2YWJsZTxTZXJ2aWNlVGFza0ZpbHRlckNsb3VkTW9kZWxbXT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zZXJ2aWNlVGFza0ZpbHRlckNsb3VkU2VydmljZS5kZWxldGVGaWx0ZXIoZmlsdGVyVG9EZWxldGUpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBhZGRGaWx0ZXIoZmlsdGVyVG9BZGQ6IFNlcnZpY2VUYXNrRmlsdGVyQ2xvdWRNb2RlbCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNlcnZpY2VUYXNrRmlsdGVyQ2xvdWRTZXJ2aWNlLmFkZEZpbHRlcihmaWx0ZXJUb0FkZCkucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSk7XG4gICAgfVxuXG4gICAgaXNEaXNhYmxlZEZvckRlZmF1bHRGaWx0ZXJzKGFjdGlvbjogVGFza0ZpbHRlckFjdGlvbik6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdGhpcy5zZXJ2aWNlVGFza0ZpbHRlckNsb3VkU2VydmljZS5pc0RlZmF1bHRGaWx0ZXIodGhpcy50YXNrRmlsdGVyLm5hbWUpICYmXG4gICAgICAgICAgICBFZGl0U2VydmljZVRhc2tGaWx0ZXJDbG91ZENvbXBvbmVudC5BQ1RJT05TX0RJU0FCTEVEX0JZX0RFRkFVTFQuaW5jbHVkZXMoYWN0aW9uLmFjdGlvblR5cGUpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcmVzdG9yZURlZmF1bHRUYXNrRmlsdGVycygpOiBPYnNlcnZhYmxlPFNlcnZpY2VUYXNrRmlsdGVyQ2xvdWRNb2RlbFtdPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNlcnZpY2VUYXNrRmlsdGVyQ2xvdWRTZXJ2aWNlLmdldFRhc2tMaXN0RmlsdGVycyh0aGlzLmFwcE5hbWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0U3RhdHVzT3B0aW9ucygpOiBEcm9wZG93bk9wdGlvbltdIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHsgdmFsdWU6ICcnLCBsYWJlbDogJ0FERl9DTE9VRF9TRVJWSUNFX1RBU0tfRklMVEVSUy5TVEFUVVMuQUxMJyB9LFxuICAgICAgICAgICAgeyB2YWx1ZTogJ1NUQVJURUQnLCBsYWJlbDogJ0FERl9DTE9VRF9TRVJWSUNFX1RBU0tfRklMVEVSUy5TVEFUVVMuU1RBUlRFRCcgfSxcbiAgICAgICAgICAgIHsgdmFsdWU6ICdDT01QTEVURUQnLCBsYWJlbDogJ0FERl9DTE9VRF9TRVJWSUNFX1RBU0tfRklMVEVSUy5TVEFUVVMuQ09NUExFVEVEJyB9LFxuICAgICAgICAgICAgeyB2YWx1ZTogJ0NBTkNFTExFRCcsIGxhYmVsOiAnQURGX0NMT1VEX1NFUlZJQ0VfVEFTS19GSUxURVJTLlNUQVRVUy5DQU5DRUxMRUQnIH0sXG4gICAgICAgICAgICB7IHZhbHVlOiAnRVJST1InLCBsYWJlbDogJ0FERl9DTE9VRF9TRVJWSUNFX1RBU0tfRklMVEVSUy5TVEFUVVMuRVJST1InIH1cbiAgICAgICAgXTtcbiAgICB9XG5cbiAgICBjcmVhdGVUYXNrRmlsdGVyUHJvcGVydGllcygpOiBUYXNrRmlsdGVyUHJvcGVydGllc1tdIHtcbiAgICAgICAgY29uc3Qgc3RhdHVzT3B0aW9ucyA9IHRoaXMuZ2V0U3RhdHVzT3B0aW9ucygpO1xuXG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbGFiZWw6ICdBREZfQ0xPVURfRURJVF9TRVJWSUNFX1RBU0tfRklMVEVSLkxBQkVMLkFQUF9OQU1FJyxcbiAgICAgICAgICAgICAgICB0eXBlOiAnc2VsZWN0JyxcbiAgICAgICAgICAgICAgICBrZXk6ICdhcHBOYW1lJyxcbiAgICAgICAgICAgICAgICB2YWx1ZTogdGhpcy50YXNrRmlsdGVyLmFwcE5hbWUgfHwgJycsXG4gICAgICAgICAgICAgICAgb3B0aW9uczogdGhpcy5hcHBsaWNhdGlvbk5hbWVzXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGxhYmVsOiAnQURGX0NMT1VEX0VESVRfU0VSVklDRV9UQVNLX0ZJTFRFUi5MQUJFTC5TRVJWSUNFX1RBU0tfSUQnLFxuICAgICAgICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgICAgICAgICAgICBrZXk6ICdzZXJ2aWNlVGFza0lkJyxcbiAgICAgICAgICAgICAgICB2YWx1ZTogdGhpcy50YXNrRmlsdGVyLnNlcnZpY2VUYXNrSWQgfHwgJydcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbGFiZWw6ICdBREZfQ0xPVURfRURJVF9TRVJWSUNFX1RBU0tfRklMVEVSLkxBQkVMLkVMRU1FTlRfSUQnLFxuICAgICAgICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgICAgICAgICAgICBrZXk6ICdlbGVtZW50SWQnLFxuICAgICAgICAgICAgICAgIHZhbHVlOiB0aGlzLnRhc2tGaWx0ZXIuZWxlbWVudElkIHx8ICcnXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGxhYmVsOiAnQURGX0NMT1VEX0VESVRfU0VSVklDRV9UQVNLX0ZJTFRFUi5MQUJFTC5BQ1RJVklUWV9OQU1FJyxcbiAgICAgICAgICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAgICAgICAgICAga2V5OiAnYWN0aXZpdHlOYW1lJyxcbiAgICAgICAgICAgICAgICB2YWx1ZTogdGhpcy50YXNrRmlsdGVyLmFjdGl2aXR5TmFtZSB8fCAnJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBsYWJlbDogJ0FERl9DTE9VRF9FRElUX1NFUlZJQ0VfVEFTS19GSUxURVIuTEFCRUwuQUNUSVZJVFlfVFlQRScsXG4gICAgICAgICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgICAgICAgICAgIGtleTogJ2FjdGl2aXR5VHlwZScsXG4gICAgICAgICAgICAgICAgdmFsdWU6IHRoaXMudGFza0ZpbHRlci5hY3Rpdml0eVR5cGUgfHwgJydcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbGFiZWw6ICdBREZfQ0xPVURfRURJVF9TRVJWSUNFX1RBU0tfRklMVEVSLkxBQkVMLlNPUlQnLFxuICAgICAgICAgICAgICAgIHR5cGU6ICdzZWxlY3QnLFxuICAgICAgICAgICAgICAgIGtleTogJ3NvcnQnLFxuICAgICAgICAgICAgICAgIHZhbHVlOiB0aGlzLnRhc2tGaWx0ZXIuc29ydCB8fCB0aGlzLmNyZWF0ZVNvcnRQcm9wZXJ0aWVzWzBdLnZhbHVlLFxuICAgICAgICAgICAgICAgIG9wdGlvbnM6IHRoaXMuY3JlYXRlU29ydFByb3BlcnRpZXNcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbGFiZWw6ICdBREZfQ0xPVURfRURJVF9TRVJWSUNFX1RBU0tfRklMVEVSLkxBQkVMLkRJUkVDVElPTicsXG4gICAgICAgICAgICAgICAgdHlwZTogJ3NlbGVjdCcsXG4gICAgICAgICAgICAgICAga2V5OiAnb3JkZXInLFxuICAgICAgICAgICAgICAgIHZhbHVlOiB0aGlzLnRhc2tGaWx0ZXIub3JkZXIgfHwgdGhpcy5zb3J0RGlyZWN0aW9uc1swXS52YWx1ZSxcbiAgICAgICAgICAgICAgICBvcHRpb25zOiBbLi4udGhpcy5zb3J0RGlyZWN0aW9uc11cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbGFiZWw6ICdBREZfQ0xPVURfRURJVF9TRVJWSUNFX1RBU0tfRklMVEVSLkxBQkVMLlNUQVRVUycsXG4gICAgICAgICAgICAgICAgdHlwZTogJ3NlbGVjdCcsXG4gICAgICAgICAgICAgICAga2V5OiAnc3RhdHVzJyxcbiAgICAgICAgICAgICAgICB2YWx1ZTogdGhpcy50YXNrRmlsdGVyLnN0YXR1cyB8fCBzdGF0dXNPcHRpb25zWzBdLnZhbHVlLFxuICAgICAgICAgICAgICAgIG9wdGlvbnM6IHN0YXR1c09wdGlvbnNcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbGFiZWw6ICdBREZfQ0xPVURfRURJVF9TRVJWSUNFX1RBU0tfRklMVEVSLkxBQkVMLlNUQVJURURfREFURScsXG4gICAgICAgICAgICAgICAgdHlwZTogJ2RhdGUnLFxuICAgICAgICAgICAgICAgIGtleTogJ3N0YXJ0ZWREYXRlJyxcbiAgICAgICAgICAgICAgICB2YWx1ZTogdGhpcy50YXNrRmlsdGVyLmNvbXBsZXRlZERhdGUgfHwgZmFsc2VcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbGFiZWw6ICdBREZfQ0xPVURfRURJVF9TRVJWSUNFX1RBU0tfRklMVEVSLkxBQkVMLkNPTVBMRVRFRF9EQVRFJyxcbiAgICAgICAgICAgICAgICB0eXBlOiAnZGF0ZScsXG4gICAgICAgICAgICAgICAga2V5OiAnY29tcGxldGVkRGF0ZScsXG4gICAgICAgICAgICAgICAgdmFsdWU6IHRoaXMudGFza0ZpbHRlci5jb21wbGV0ZWREYXRlIHx8IGZhbHNlXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGxhYmVsOiAnQURGX0NMT1VEX0VESVRfU0VSVklDRV9UQVNLX0ZJTFRFUi5MQUJFTC5QUk9DRVNTX0lOU1RBTkNFX0lEJyxcbiAgICAgICAgICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAgICAgICAgICAga2V5OiAncHJvY2Vzc0luc3RhbmNlSWQnLFxuICAgICAgICAgICAgICAgIHZhbHVlOiB0aGlzLnByb2Nlc3NJbnN0YW5jZUlkIHx8IHRoaXMudGFza0ZpbHRlci5wcm9jZXNzSW5zdGFuY2VJZCB8fCAnJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBsYWJlbDogJ0FERl9DTE9VRF9FRElUX1NFUlZJQ0VfVEFTS19GSUxURVIuTEFCRUwuUFJPQ0VTU19ERUZfSUQnLFxuICAgICAgICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgICAgICAgICAgICBrZXk6ICdwcm9jZXNzRGVmaW5pdGlvbklkJyxcbiAgICAgICAgICAgICAgICB2YWx1ZTogdGhpcy50YXNrRmlsdGVyLnByb2Nlc3NEZWZpbml0aW9uSWQgfHwgJydcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbGFiZWw6ICdBREZfQ0xPVURfRURJVF9TRVJWSUNFX1RBU0tfRklMVEVSLkxBQkVMLlNFUlZJQ0VfTkFNRScsXG4gICAgICAgICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgICAgICAgICAgIGtleTogJ3NlcnZpY2VOYW1lJyxcbiAgICAgICAgICAgICAgICB2YWx1ZTogdGhpcy50YXNrRmlsdGVyLnNlcnZpY2VOYW1lIHx8ICcnXG4gICAgICAgICAgICB9XG4gICAgICAgIF07XG4gICAgfVxufVxuIiwiPG1hdC1hY2NvcmRpb24gW2hpZGVUb2dnbGVdPVwiaXNMb2FkaW5nXCIgY2xhc3M9XCJhZGYtZWRpdC10YXNrLWZpbHRlclwiPlxuICAgIDxtYXQtZXhwYW5zaW9uLXBhbmVsIChhZnRlckV4cGFuZCk9XCJvbkV4cGFuZCgpXCIgKGNsb3NlZCk9XCJvbkNsb3NlKClcIj5cbiAgICAgICAgPG1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyICpuZ0lmPVwidGFza0ZpbHRlclwiIGlkPVwiYWRmLWVkaXQtdGFzay1maWx0ZXItZXhwYW5zaW9uLWhlYWRlclwiIGNsYXNzPVwiYWRmLWVkaXQtdGFzay1maWx0ZXItaGVhZGVyXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzTG9hZGluZzsgZWxzZSBsb2FkaW5nVGVtcGxhdGVcIj5cbiAgICAgICAgICAgICAgICA8bWF0LXBhbmVsLXRpdGxlICpuZ0lmPVwic2hvd1Rhc2tGaWx0ZXJOYW1lXCIgaWQ9XCJhZGYtZWRpdC10YXNrLWZpbHRlci10aXRsZS1pZFwiIGNsYXNzPVwiYWRmLWVkaXQtdGFzay1maWx0ZXItaGVhZGVyX190aXRsZVwiXG4gICAgICAgICAgICAgICAgICAgID57e3Rhc2tGaWx0ZXIubmFtZSB8IHRyYW5zbGF0ZX19PC9tYXQtcGFuZWwtdGl0bGU+XG4gICAgICAgICAgICAgICAgPG1hdC1wYW5lbC1kZXNjcmlwdGlvbiBjbGFzcz1cImFkZi1lZGl0LXRhc2stZmlsdGVyLWhlYWRlcl9fZGVzY3JpcHRpb25cIiBpZD1cImFkZi1lZGl0LXRhc2stZmlsdGVyLXN1Yi10aXRsZS1pZFwiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInNob3dUaXRsZVwiPnt7ICdBREZfQ0xPVURfRURJVF9UQVNLX0ZJTFRFUi5USVRMRScgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInNob3dGaWx0ZXJBY3Rpb25zXCIgY2xhc3M9XCJhZGYtY2xvdWQtZWRpdC10YXNrLWZpbHRlci1hY3Rpb25zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidG9nZ2xlRmlsdGVyQWN0aW9uc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gKm5nRm9yPVwibGV0IGZpbHRlckFjdGlvbiBvZiB0YXNrRmlsdGVyQWN0aW9uc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCJmaWx0ZXJBY3Rpb24udG9vbHRpcCB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLWF1dG9tYXRpb24taWRdPVwiJ2FkZi1maWx0ZXItYWN0aW9uLScgKyBmaWx0ZXJBY3Rpb24uYWN0aW9uVHlwZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNEaXNhYmxlZEFjdGlvbihmaWx0ZXJBY3Rpb24pXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJleGVjdXRlRmlsdGVyQWN0aW9ucyhmaWx0ZXJBY3Rpb24pXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhZGYtaWNvbiBbdmFsdWVdPVwiZmlsdGVyQWN0aW9uLmljb25cIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbWF0LXBhbmVsLWRlc2NyaXB0aW9uPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI2xvYWRpbmdUZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWRmLWNsb3VkLWVkaXQtdGFzay1maWx0ZXItbG9hZGluZy1tYXJnaW5cIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1wcm9ncmVzcy1zcGlubmVyIG1vZGU9XCJpbmRldGVybWluYXRlXCIgW2RpYW1ldGVyXT1cIjMwXCIgLz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvbWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNMb2FkaW5nO1wiPlxuICAgICAgICAgICAgPGZvcm0gKm5nSWY9XCJlZGl0VGFza0ZpbHRlckZvcm1cIiBbZm9ybUdyb3VwXT1cImVkaXRUYXNrRmlsdGVyRm9ybVwiIGNsYXNzPVwiYWRmLWVkaXQtdGFzay1maWx0ZXItY29udGVudFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhZGYtZWRpdC10YXNrLWZpbHRlci1mb3JtXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHRhc2tGaWx0ZXJQcm9wZXJ0eSBvZiB0YXNrRmlsdGVyUHJvcGVydGllc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIFtmbG9hdExhYmVsXT1cIidhdXRvJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJ0YXNrRmlsdGVyUHJvcGVydHkudHlwZSA9PT0gJ3NlbGVjdCdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtYXV0b21hdGlvbi1pZF09XCJ0YXNrRmlsdGVyUHJvcGVydHkua2V5XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbCBjbGFzcz1cImFkZi1lZGl0LXRhc2stZmlsdGVyLWNvbnRlbnRfX3NlbGVjdC1sYWJlbFwiPnt7dGFza0ZpbHRlclByb3BlcnR5LmxhYmVsIHwgdHJhbnNsYXRlfX08L21hdC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LXNlbGVjdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cInRhc2tGaWx0ZXJQcm9wZXJ0eS5rZXlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLWF1dG9tYXRpb24taWRdPVwiJ2FkZi1jbG91ZC1lZGl0LXRhc2stcHJvcGVydHktJyArIHRhc2tGaWx0ZXJQcm9wZXJ0eS5rZXlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cIm9uU3RhdHVzQ2hhbmdlKCRldmVudClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBwcm9wZXJ0eU9wdGlvbiBvZiB0YXNrRmlsdGVyUHJvcGVydHkub3B0aW9uc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cInByb3BlcnR5T3B0aW9uLnZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLWF1dG9tYXRpb24taWRdPVwiJ2FkZi1jbG91ZC1lZGl0LXRhc2stcHJvcGVydHktb3B0aW9ucy0nICsgdGFza0ZpbHRlclByb3BlcnR5LmtleVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHByb3BlcnR5T3B0aW9uLmxhYmVsIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBbZmxvYXRMYWJlbF09XCInYXV0bydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwidGFza0ZpbHRlclByb3BlcnR5LnR5cGUgPT09ICd0ZXh0J1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1hdXRvbWF0aW9uLWlkXT1cInRhc2tGaWx0ZXJQcm9wZXJ0eS5rZXlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsIGNsYXNzPVwiYWRmLWVkaXQtdGFzay1maWx0ZXItY29udGVudF9fdGV4dC1sYWJlbFwiPnt7dGFza0ZpbHRlclByb3BlcnR5LmxhYmVsIHwgdHJhbnNsYXRlfX08L21hdC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJ0YXNrRmlsdGVyUHJvcGVydHkua2V5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLWF1dG9tYXRpb24taWRdPVwiJ2FkZi1jbG91ZC1lZGl0LXRhc2stcHJvcGVydHktJyArIHRhc2tGaWx0ZXJQcm9wZXJ0eS5rZXlcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBbZmxvYXRMYWJlbF09XCInYXV0bydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwidGFza0ZpbHRlclByb3BlcnR5LnR5cGUgPT09ICdkYXRlJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1hdXRvbWF0aW9uLWlkXT1cInRhc2tGaWx0ZXJQcm9wZXJ0eS5rZXlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPnt7dGFza0ZpbHRlclByb3BlcnR5LmxhYmVsIHwgdHJhbnNsYXRlfX08L21hdC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGtleXVwKT1cIm9uRGF0ZUNoYW5nZWQoJGFueSgkZXZlbnQpLnRhcmdldC52YWx1ZSwgdGFza0ZpbHRlclByb3BlcnR5KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlQ2hhbmdlKT1cIm9uRGF0ZUNoYW5nZWQoJGV2ZW50LnZhbHVlLCB0YXNrRmlsdGVyUHJvcGVydHkpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21hdERhdGVwaWNrZXJdPVwiZGF0ZUNvbnRyb2xsZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwidGFza0ZpbHRlclByb3BlcnR5LmxhYmVsIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1hdXRvbWF0aW9uLWlkXT1cIidhZGYtY2xvdWQtZWRpdC10YXNrLXByb3BlcnR5LScgKyB0YXNrRmlsdGVyUHJvcGVydHkua2V5XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1kYXRlcGlja2VyLXRvZ2dsZSBtYXRTdWZmaXhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JdPVwiZGF0ZUNvbnRyb2xsZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1hdXRvbWF0aW9uLWlkXT1cIidhZGYtY2xvdWQtZWRpdC10YXNrLXByb3BlcnR5LWRhdGUtdG9nZ2xlLScgKyB0YXNrRmlsdGVyUHJvcGVydHkua2V5XCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWRhdGVwaWNrZXIgI2RhdGVDb250cm9sbGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtYXV0b21hdGlvbi1pZF09XCInYWRmLWNsb3VkLWVkaXQtdGFzay1wcm9wZXJ0eS1kYXRlLXBpY2tlci0nICsgdGFza0ZpbHRlclByb3BlcnR5LmtleVwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFkZi1lZGl0LXRhc2stZmlsdGVyLWRhdGUtZXJyb3ItY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJoYXNFcnJvcih0YXNrRmlsdGVyUHJvcGVydHkpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWRmLWVycm9yLXRleHRcIj57eydBREZfVEFTS19MSVNULlNUQVJUX1RBU0suRk9STS5FUlJPUi5EQVRFJ3x0cmFuc2xhdGV9fTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiYWRmLWVycm9yLWljb25cIj53YXJuaW5nPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFkZi1lZGl0LXRhc2stZmlsdGVyLWNoZWNrYm94XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJ0YXNrRmlsdGVyUHJvcGVydHkudHlwZSA9PT0gJ2NoZWNrYm94J1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtY2hlY2tib3ggY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwidGFza0ZpbHRlclByb3BlcnR5LmtleVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLWF1dG9tYXRpb24taWRdPVwidGFza0ZpbHRlclByb3BlcnR5LmtleVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPnt7dGFza0ZpbHRlclByb3BlcnR5LmxhYmVsIHwgdHJhbnNsYXRlfX08L21hdC1jaGVja2JveD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgICAgICA8YWRmLWNsb3VkLWRhdGUtcmFuZ2UtZmlsdGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJ0YXNrRmlsdGVyUHJvcGVydHkudHlwZSA9PT0gJ2RhdGUtcmFuZ2UnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcHJvY2Vzc0ZpbHRlclByb3BlcnR5XT1cInRhc2tGaWx0ZXJQcm9wZXJ0eVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW29wdGlvbnNdPVwidGFza0ZpbHRlclByb3BlcnR5LmRhdGVGaWx0ZXJPcHRpb25zXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZVR5cGVDaGFuZ2UpPVwib25EYXRlVHlwZUNoYW5nZSgkZXZlbnQsIHRhc2tGaWx0ZXJQcm9wZXJ0eSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlQ2hhbmdlZCk9XCJvbkRhdGVSYW5nZUZpbHRlckNoYW5nZWQoJGV2ZW50LCB0YXNrRmlsdGVyUHJvcGVydHkpXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxhZGYtY2xvdWQtcGVvcGxlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ7eyAnYWRmLWVkaXQtdGFzay1maWx0ZXItJyArIHRhc2tGaWx0ZXJQcm9wZXJ0eS5rZXkgfX1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwidGFza0ZpbHRlclByb3BlcnR5LnR5cGUgPT09ICdwZW9wbGUnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcHJlU2VsZWN0VXNlcnNdPVwidGFza0ZpbHRlclByb3BlcnR5LnZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwidGFza0ZpbHRlclByb3BlcnR5LmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsaWRhdGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FwcE5hbWVdPVwiYXBwTmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW21vZGVdPVwidGFza0ZpbHRlclByb3BlcnR5LnNlbGVjdGlvbk1vZGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2VkVXNlcnMpPVwib25DaGFuZ2VkVXNlcigkZXZlbnQsIHRhc2tGaWx0ZXJQcm9wZXJ0eSlcIiAvPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICA8YWRmLWNsb3VkLXRhc2stYXNzaWdubWVudC1maWx0ZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInRhc2tGaWx0ZXJQcm9wZXJ0eS50eXBlID09PSAnYXNzaWdubWVudCdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0YXNrRmlsdGVyUHJvcGVydHldPVwidGFza0ZpbHRlclByb3BlcnR5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3RhdHVzXT1cInNlbGVjdGVkU3RhdHVzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXBwTmFtZV09XCJhcHBOYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYXNzaWduZWRVc2Vyc0NoYW5nZSk9XCJvbkFzc2lnbmVkVXNlcnNDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFzc2lnbmVkR3JvdXBzQ2hhbmdlKT1cIm9uQXNzaWduZWRHcm91cHNDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFzc2lnbm1lbnRUeXBlQ2hhbmdlKT1cIm9uQXNzaWdubWVudFR5cGVDaGFuZ2UoJGV2ZW50KVwiIC8+XG5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Zvcm0+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbWF0LWV4cGFuc2lvbi1wYW5lbD5cbjwvbWF0LWFjY29yZGlvbj5cbiJdfQ==
|