@alfresco/adf-process-services-cloud 7.0.0 → 7.1.0-13904636696
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 +4 -4
- 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 +5 -7
- 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 +296 -298
- 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/package.json +4 -4
|
@@ -377,10 +377,10 @@ export class TaskFilterCloudService extends BaseCloudService {
|
|
|
377
377
|
});
|
|
378
378
|
return this.updateTaskFilters(appName, key, filters);
|
|
379
379
|
}
|
|
380
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
381
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
380
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TaskFilterCloudService, deps: [{ token: i1.IdentityUserService }, { token: TASK_FILTERS_SERVICE_TOKEN }, { token: i2.NotificationCloudService }, { token: i3.AdfHttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
381
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TaskFilterCloudService, providedIn: 'root' }); }
|
|
382
382
|
}
|
|
383
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
383
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TaskFilterCloudService, decorators: [{
|
|
384
384
|
type: Injectable,
|
|
385
385
|
args: [{
|
|
386
386
|
providedIn: 'root'
|
|
@@ -389,4 +389,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImpor
|
|
|
389
389
|
type: Inject,
|
|
390
390
|
args: [TASK_FILTERS_SERVICE_TOKEN]
|
|
391
391
|
}] }, { type: i2.NotificationCloudService }, { type: i3.AdfHttpClient }] });
|
|
392
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1maWx0ZXItY2xvdWQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9wcm9jZXNzLXNlcnZpY2VzLWNsb3VkL3NyYy9saWIvdGFzay90YXNrLWZpbHRlcnMvc2VydmljZXMvdGFzay1maWx0ZXItY2xvdWQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQWMsRUFBRSxFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFFeEUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFFbkYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFFeEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDckYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7OztBQUV2RCxNQUFNLDZCQUE2QixHQUFHOzs7Ozs7Ozs7Ozs7OztDQWNyQyxDQUFDO0FBS0YsTUFBTSxPQUFPLHNCQUF1QixTQUFRLGdCQUFnQjtJQU14RCxZQUNZLG1CQUF3QyxFQUV6QyxpQkFBa0QsRUFDakQsd0JBQWtELEVBQzFELGFBQTRCO1FBRTVCLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztRQU5iLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFFekMsc0JBQWlC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QUNELElBQUksTUFBTSxDQUFDLFdBQVcsRUFBRSxRQUFRLElBQUksQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztnQkFDM0QsTUFBTSxDQUFDLGdCQUFnQixHQUFHLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUM1RCxDQUFDO1lBQ0QsSUFBSSxNQUFNLENBQUMsUUFBUSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUN4QyxNQUFNLENBQUMsVUFBVSxHQUFHLENBQUMsR0FBRyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUMvQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3pELENBQUM7OEdBclhRLHNCQUFzQixxREFRbkIsMEJBQTBCO2tIQVI3QixzQkFBc0IsY0FGbkIsTUFBTTs7MkZBRVQsc0JBQXNCO2tCQUhsQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQjs7MEJBU1EsTUFBTTsyQkFBQywwQkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IEluamVjdGFibGUsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YsIEJlaGF2aW9yU3ViamVjdCwgdGhyb3dFcnJvciwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVGFza0ZpbHRlckNsb3VkTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvZmlsdGVyLWNsb3VkLm1vZGVsJztcbmltcG9ydCB7IHN3aXRjaE1hcCwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQmFzZUNsb3VkU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2Jhc2UtY2xvdWQuc2VydmljZSc7XG5pbXBvcnQgeyBQcmVmZXJlbmNlQ2xvdWRTZXJ2aWNlSW50ZXJmYWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcHJlZmVyZW5jZS1jbG91ZC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgVEFTS19GSUxURVJTX1NFUlZJQ0VfVE9LRU4gfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9jbG91ZC10b2tlbi5zZXJ2aWNlJztcbmltcG9ydCB7IFRhc2tDbG91ZE5vZGVQYWdpbmcgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvdGFzay1jbG91ZC5tb2RlbCc7XG5pbXBvcnQgeyBOb3RpZmljYXRpb25DbG91ZFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9ub3RpZmljYXRpb24tY2xvdWQuc2VydmljZSc7XG5pbXBvcnQgeyBUYXNrQ2xvdWRFbmdpbmVFdmVudCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9lbmdpbmUtZXZlbnQtY2xvdWQubW9kZWwnO1xuaW1wb3J0IHsgSWRlbnRpdHlVc2VyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3Blb3BsZS9zZXJ2aWNlcy9pZGVudGl0eS11c2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgQWRmSHR0cENsaWVudCB9IGZyb20gJ0BhbGZyZXNjby9hZGYtY29yZS9hcGknO1xuXG5jb25zdCBUQVNLX0VWRU5UX1NVQlNDUklQVElPTl9RVUVSWSA9IGBcbiAgICBzdWJzY3JpcHRpb24ge1xuICAgICAgICBlbmdpbmVFdmVudHMoZXZlbnRUeXBlOiBbXG4gICAgICAgICAgICBUQVNLX0NPTVBMRVRFRFxuICAgICAgICAgICAgVEFTS19BU1NJR05FRFxuICAgICAgICAgICAgVEFTS19BQ1RJVkFURURcbiAgICAgICAgICAgIFRBU0tfU1VTUEVOREVEXG4gICAgICAgICAgICBUQVNLX0NBTkNFTExFRCxcbiAgICAgICAgICAgIFRBU0tfQ1JFQVRFRFxuICAgICAgICBdKSB7XG4gICAgICAgICAgICBldmVudFR5cGVcbiAgICAgICAgICAgIGVudGl0eVxuICAgICAgICB9XG4gICAgfVxuYDtcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBUYXNrRmlsdGVyQ2xvdWRTZXJ2aWNlIGV4dGVuZHMgQmFzZUNsb3VkU2VydmljZSB7XG4gICAgcHJpdmF0ZSBmaWx0ZXJzU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VGFza0ZpbHRlckNsb3VkTW9kZWxbXT4oW10pO1xuICAgIGZpbHRlcnMkID0gdGhpcy5maWx0ZXJzU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgICBwcml2YXRlIGZpbHRlcktleVRvQmVSZWZyZXNoZWRTb3VyY2UgPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XG4gICAgZmlsdGVyS2V5VG9CZVJlZnJlc2hlZCQgPSB0aGlzLmZpbHRlcktleVRvQmVSZWZyZXNoZWRTb3VyY2UuYXNPYnNlcnZhYmxlKCk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBpZGVudGl0eVVzZXJTZXJ2aWNlOiBJZGVudGl0eVVzZXJTZXJ2aWNlLFxuICAgICAgICBASW5qZWN0KFRBU0tfRklMVEVSU19TRVJWSUNFX1RPS0VOKVxuICAgICAgICBwdWJsaWMgcHJlZmVyZW5jZVNlcnZpY2U6IFByZWZlcmVuY2VDbG91ZFNlcnZpY2VJbnRlcmZhY2UsXG4gICAgICAgIHByaXZhdGUgbm90aWZpY2F0aW9uQ2xvdWRTZXJ2aWNlOiBOb3RpZmljYXRpb25DbG91ZFNlcnZpY2UsXG4gICAgICAgIGFkZkh0dHBDbGllbnQ6IEFkZkh0dHBDbGllbnRcbiAgICApIHtcbiAgICAgICAgc3VwZXIoYWRmSHR0cENsaWVudCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbmQgcmV0dXJucyB0aGUgZGVmYXVsdCB0YXNrIGZpbHRlcnMgZm9yIGFuIGFwcC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBhcHBOYW1lIE5hbWUgb2YgdGhlIHRhcmdldCBhcHBcbiAgICAgKi9cbiAgICBwcml2YXRlIGNyZWF0ZURlZmF1bHRGaWx0ZXJzKGFwcE5hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBjb25zdCBrZXk6IHN0cmluZyA9IHRoaXMucHJlcGFyZUtleShhcHBOYW1lKTtcbiAgICAgICAgdGhpcy5wcmVmZXJlbmNlU2VydmljZVxuICAgICAgICAgICAgLmdldFByZWZlcmVuY2VzKGFwcE5hbWUsIGtleSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJlZmVyZW5jZXMgPSByZXNwb25zZT8ubGlzdD8uZW50cmllcyB8fCBbXTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLmhhc1ByZWZlcmVuY2VzKHByZWZlcmVuY2VzKSB8fCAhdGhpcy5oYXNUYXNrRmlsdGVycyhwcmVmZXJlbmNlcywga2V5KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlVGFza0ZpbHRlcnMoYXBwTmFtZSwga2V5LCB0aGlzLmRlZmF1bHRUYXNrRmlsdGVycyhhcHBOYW1lKSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2YodGhpcy5maW5kRmlsdGVyc0J5S2V5SW5QcmVmZXJlbmNlcyhwcmVmZXJlbmNlcywga2V5KSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKGZpbHRlcnMpID0+IHRoaXMuaGFuZGxlQ3JlYXRlRmlsdGVyQmFja3dhcmRzQ29tcGF0aWJpbGl0eShhcHBOYW1lLCBrZXksIGZpbHRlcnMpKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZmlsdGVycykgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuYWRkRmlsdGVyc1RvU3RyZWFtKGZpbHRlcnMpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIHVzZXIgcHJlZmVyZW5jZSBhcmUgZW1wdHkgb3Igbm90XG4gICAgICpcbiAgICAgKiBAcGFyYW0gcHJlZmVyZW5jZXMgVXNlciBwcmVmZXJlbmNlcyBvZiB0aGUgdGFyZ2V0IGFwcFxuICAgICAqIEByZXR1cm5zIEJvb2xlYW4gdmFsdWUgaWYgdGhlIHByZWZlcmVuY2VzIGFyZSBub3QgZW1wdHlcbiAgICAgKi9cbiAgICBwcml2YXRlIGhhc1ByZWZlcmVuY2VzKHByZWZlcmVuY2VzOiBhbnkpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHByZWZlcmVuY2VzICYmIHByZWZlcmVuY2VzLmxlbmd0aCA+IDA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGZvciB0YXNrIGZpbHRlcnMgaW4gZ2l2ZW4gdXNlciBwcmVmZXJlbmNlc1xuICAgICAqXG4gICAgICogQHBhcmFtIHByZWZlcmVuY2VzIFVzZXIgcHJlZmVyZW5jZXMgb2YgdGhlIHRhcmdldCBhcHBcbiAgICAgKiBAcGFyYW0ga2V5IEtleSBvZiB0aGUgdGFzayBmaWx0ZXJzXG4gICAgICogQHJldHVybnMgQm9vbGVhbiB2YWx1ZSBpZiB0aGUgcHJlZmVyZW5jZSBoYXMgdGFzayBmaWx0ZXJzXG4gICAgICovXG4gICAgcHJpdmF0ZSBoYXNUYXNrRmlsdGVycyhwcmVmZXJlbmNlczogYW55LCBrZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBmaWx0ZXJzID0gcHJlZmVyZW5jZXMuZmluZCgoZmlsdGVyOiBhbnkpID0+IGZpbHRlci5lbnRyeS5rZXkgPT09IGtleSk7XG4gICAgICAgIHJldHVybiBmaWx0ZXJzPy5lbnRyeSA/IEpTT04ucGFyc2UoZmlsdGVycy5lbnRyeS52YWx1ZSkubGVuZ3RoID4gMCA6IGZhbHNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENhbGxzIGNyZWF0ZSBwcmVmZXJlbmNlIGFwaSB0byBjcmVhdGUgdGFzayBmaWx0ZXJzXG4gICAgICpcbiAgICAgKiBAcGFyYW0gYXBwTmFtZSBOYW1lIG9mIHRoZSB0YXJnZXQgYXBwXG4gICAgICogQHBhcmFtIGtleSBLZXkgb2YgdGhlIHRhc2sgaW5zdGFuY2UgZmlsdGVyc1xuICAgICAqIEBwYXJhbSBmaWx0ZXJzIERldGFpbHMgb2YgbmV3IHRhc2sgZmlsdGVyXG4gICAgICogQHJldHVybnMgT2JzZXJ2YWJsZSBvZiBjcmVhdGVkIHRhc2sgZmlsdGVyc1xuICAgICAqL1xuICAgIHByaXZhdGUgY3JlYXRlVGFza0ZpbHRlcnMoYXBwTmFtZTogc3RyaW5nLCBrZXk6IHN0cmluZywgZmlsdGVyczogVGFza0ZpbHRlckNsb3VkTW9kZWxbXSk6IE9ic2VydmFibGU8VGFza0ZpbHRlckNsb3VkTW9kZWxbXT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5wcmVmZXJlbmNlU2VydmljZS5jcmVhdGVQcmVmZXJlbmNlKGFwcE5hbWUsIGtleSwgZmlsdGVycyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2FsbHMgZ2V0IHByZWZlcmVuY2UgYXBpIHRvIGdldCB0YXNrIGZpbHRlciBieSBwcmVmZXJlbmNlIGtleVxuICAgICAqXG4gICAgICogQHBhcmFtIGFwcE5hbWUgTmFtZSBvZiB0aGUgdGFyZ2V0IGFwcFxuICAgICAqIEBwYXJhbSBrZXkgS2V5IG9mIHRoZSB0YXNrIGZpbHRlcnNcbiAgICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlIG9mIHRhc2sgZmlsdGVyc1xuICAgICAqL1xuICAgIHByaXZhdGUgZ2V0VGFza0ZpbHRlcnNCeUtleShhcHBOYW1lOiBzdHJpbmcsIGtleTogc3RyaW5nKTogT2JzZXJ2YWJsZTxUYXNrRmlsdGVyQ2xvdWRNb2RlbFtdPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnByZWZlcmVuY2VTZXJ2aWNlLmdldFByZWZlcmVuY2VCeUtleShhcHBOYW1lLCBrZXkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgYWxsIHRhc2sgZmlsdGVycyBmb3IgYSB0YXNrIGFwcC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBhcHBOYW1lIE5hbWUgb2YgdGhlIHRhcmdldCBhcHBcbiAgICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlIG9mIHRhc2sgZmlsdGVyIGRldGFpbHNcbiAgICAgKi9cbiAgICBnZXRUYXNrTGlzdEZpbHRlcnMoYXBwTmFtZT86IHN0cmluZyk6IE9ic2VydmFibGU8VGFza0ZpbHRlckNsb3VkTW9kZWxbXT4ge1xuICAgICAgICB0aGlzLmNyZWF0ZURlZmF1bHRGaWx0ZXJzKGFwcE5hbWUpO1xuICAgICAgICByZXR1cm4gdGhpcy5maWx0ZXJzJDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIGEgdGFzayBmaWx0ZXIuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gYXBwTmFtZSBOYW1lIG9mIHRoZSB0YXJnZXQgYXBwXG4gICAgICogQHBhcmFtIGlkIElEIG9mIHRoZSB0YXNrXG4gICAgICogQHJldHVybnMgRGV0YWlscyBvZiB0aGUgdGFzayBmaWx0ZXJcbiAgICAgKi9cbiAgICBnZXRUYXNrRmlsdGVyQnlJZChhcHBOYW1lOiBzdHJpbmcsIGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFRhc2tGaWx0ZXJDbG91ZE1vZGVsPiB7XG4gICAgICAgIGNvbnN0IGtleTogc3RyaW5nID0gdGhpcy5wcmVwYXJlS2V5KGFwcE5hbWUpO1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRUYXNrRmlsdGVyc0J5S2V5KGFwcE5hbWUsIGtleSkucGlwZShcbiAgICAgICAgICAgIHN3aXRjaE1hcCgoZmlsdGVycykgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChmaWx0ZXJzICYmIGZpbHRlcnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZVRhc2tGaWx0ZXJzKGFwcE5hbWUsIGtleSwgdGhpcy5kZWZhdWx0VGFza0ZpbHRlcnMoYXBwTmFtZSkpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvZihmaWx0ZXJzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIG1hcCgoZmlsdGVycykgPT4gZmlsdGVycy5maWx0ZXIoKGZpbHRlcikgPT4gZmlsdGVyLmlkID09PSBpZClbMF0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkcyBhIG5ldyB0YXNrIGZpbHRlci5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBuZXdGaWx0ZXIgVGhlIG5ldyBmaWx0ZXIgdG8gYWRkXG4gICAgICogQHJldHVybnMgT2JzZXJ2YWJsZSBvZiB0YXNrIGluc3RhbmNlIGZpbHRlcnMgd2l0aCBuZXdseSBhZGRlZCBmaWx0ZXJcbiAgICAgKi9cbiAgICBhZGRGaWx0ZXIobmV3RmlsdGVyOiBUYXNrRmlsdGVyQ2xvdWRNb2RlbCk6IE9ic2VydmFibGU8VGFza0ZpbHRlckNsb3VkTW9kZWxbXT4ge1xuICAgICAgICBjb25zdCBrZXk6IHN0cmluZyA9IHRoaXMucHJlcGFyZUtleShuZXdGaWx0ZXIuYXBwTmFtZSk7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFRhc2tGaWx0ZXJzQnlLZXkobmV3RmlsdGVyLmFwcE5hbWUsIGtleSkucGlwZShcbiAgICAgICAgICAgIHN3aXRjaE1hcCgoZmlsdGVycykgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChmaWx0ZXJzPy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlVGFza0ZpbHRlcnMobmV3RmlsdGVyLmFwcE5hbWUsIGtleSwgW25ld0ZpbHRlcl0pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGZpbHRlcnMucHVzaChuZXdGaWx0ZXIpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wcmVmZXJlbmNlU2VydmljZS51cGRhdGVQcmVmZXJlbmNlKG5ld0ZpbHRlci5hcHBOYW1lLCBrZXksIGZpbHRlcnMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgbWFwKChmaWx0ZXJzKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5hZGRGaWx0ZXJzVG9TdHJlYW0oZmlsdGVycyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZpbHRlcnM7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgYWRkRmlsdGVyc1RvU3RyZWFtKGZpbHRlcnM6IFRhc2tGaWx0ZXJDbG91ZE1vZGVsW10pIHtcbiAgICAgICAgdGhpcy5maWx0ZXJzU3ViamVjdC5uZXh0KGZpbHRlcnMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVwZGF0ZXMgYSB0YXNrIGZpbHRlci5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB1cGRhdGVkRmlsdGVyIFRoZSBmaWx0ZXIgdG8gdXBkYXRlXG4gICAgICogQHJldHVybnMgT2JzZXJ2YWJsZSBvZiB0YXNrIGluc3RhbmNlIGZpbHRlcnMgd2l0aCB1cGRhdGVkIGZpbHRlclxuICAgICAqL1xuICAgIHVwZGF0ZUZpbHRlcih1cGRhdGVkRmlsdGVyOiBUYXNrRmlsdGVyQ2xvdWRNb2RlbCk6IE9ic2VydmFibGU8VGFza0ZpbHRlckNsb3VkTW9kZWxbXT4ge1xuICAgICAgICBjb25zdCBrZXk6IHN0cmluZyA9IHRoaXMucHJlcGFyZUtleSh1cGRhdGVkRmlsdGVyLmFwcE5hbWUpO1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRUYXNrRmlsdGVyc0J5S2V5KHVwZGF0ZWRGaWx0ZXIuYXBwTmFtZSwga2V5KS5waXBlKFxuICAgICAgICAgICAgc3dpdGNoTWFwKChmaWx0ZXJzKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGZpbHRlcnM/Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVUYXNrRmlsdGVycyh1cGRhdGVkRmlsdGVyLmFwcE5hbWUsIGtleSwgW3VwZGF0ZWRGaWx0ZXJdKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBpdGVtSW5kZXggPSBmaWx0ZXJzLmZpbmRJbmRleCgoZmlsdGVyKSA9PiBmaWx0ZXIuaWQgPT09IHVwZGF0ZWRGaWx0ZXIuaWQpO1xuICAgICAgICAgICAgICAgICAgICBmaWx0ZXJzW2l0ZW1JbmRleF0gPSB1cGRhdGVkRmlsdGVyO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy51cGRhdGVUYXNrRmlsdGVycyh1cGRhdGVkRmlsdGVyLmFwcE5hbWUsIGtleSwgZmlsdGVycyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBtYXAoKHVwZGF0ZWRGaWx0ZXJzKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5hZGRGaWx0ZXJzVG9TdHJlYW0odXBkYXRlZEZpbHRlcnMpO1xuICAgICAgICAgICAgICAgIHJldHVybiB1cGRhdGVkRmlsdGVycztcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGVsZXRlcyBhIHRhc2sgZmlsdGVyXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZGVsZXRlZEZpbHRlciBUaGUgZmlsdGVyIHRvIGRlbGV0ZVxuICAgICAqIEByZXR1cm5zIE9ic2VydmFibGUgb2YgdGFzayBpbnN0YW5jZSBmaWx0ZXJzIHdpdGhvdXQgZGVsZXRlZCBmaWx0ZXJcbiAgICAgKi9cbiAgICBkZWxldGVGaWx0ZXIoZGVsZXRlZEZpbHRlcjogVGFza0ZpbHRlckNsb3VkTW9kZWwpOiBPYnNlcnZhYmxlPFRhc2tGaWx0ZXJDbG91ZE1vZGVsW10+IHtcbiAgICAgICAgY29uc3Qga2V5ID0gdGhpcy5wcmVwYXJlS2V5KGRlbGV0ZWRGaWx0ZXIuYXBwTmFtZSk7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFRhc2tGaWx0ZXJzQnlLZXkoZGVsZXRlZEZpbHRlci5hcHBOYW1lLCBrZXkpLnBpcGUoXG4gICAgICAgICAgICBzd2l0Y2hNYXAoKGZpbHRlcnMpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZmlsdGVycz8ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICBmaWx0ZXJzID0gZmlsdGVycy5maWx0ZXIoKGZpbHRlcikgPT4gZmlsdGVyLmlkICE9PSBkZWxldGVkRmlsdGVyLmlkKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudXBkYXRlVGFza0ZpbHRlcnMoZGVsZXRlZEZpbHRlci5hcHBOYW1lLCBrZXksIGZpbHRlcnMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gb2YoW10pO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBtYXAoKGZpbHRlcnMpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmFkZEZpbHRlcnNUb1N0cmVhbShmaWx0ZXJzKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmlsdGVycztcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGdpdmVuIGZpbHRlciBpcyBhIGRlZmF1bHQgZmlsdGVyXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZmlsdGVyTmFtZSBOYW1lIG9mIHRoZSB0YXJnZXQgdGFzayBmaWx0ZXJcbiAgICAgKiBAcmV0dXJucyBCb29sZWFuIHZhbHVlIGZvciB3aGV0aGVyIHRoZSBmaWx0ZXIgaXMgYSBkZWZhdWx0IGZpbHRlclxuICAgICAqL1xuICAgIGlzRGVmYXVsdEZpbHRlcihmaWx0ZXJOYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgZGVmYXVsdEZpbHRlcnMgPSB0aGlzLmRlZmF1bHRUYXNrRmlsdGVycygpO1xuICAgICAgICByZXR1cm4gZGVmYXVsdEZpbHRlcnMuZmluZEluZGV4KChmaWx0ZXIpID0+IGZpbHRlck5hbWUgPT09IGZpbHRlci5uYW1lKSAhPT0gLTE7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRmluZHMgYSB0YXNrIHVzaW5nIGFuIG9iamVjdCB3aXRoIG9wdGlvbmFsIHF1ZXJ5IHByb3BlcnRpZXMuXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyBUYXNrIGluZm9ybWF0aW9uXG4gICAgICogQHBhcmFtIHRhc2tGaWx0ZXIgdGFzayBmaWx0ZXIgbW9kZWxcbiAgICAgKi9cbiAgICBnZXRUYXNrRmlsdGVyQ291bnRlcih0YXNrRmlsdGVyOiBUYXNrRmlsdGVyQ2xvdWRNb2RlbCk6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgICAgIGlmICh0YXNrRmlsdGVyLmFwcE5hbWUgfHwgdGFza0ZpbHRlci5hcHBOYW1lID09PSAnJykge1xuICAgICAgICAgICAgY29uc3QgcXVlcnlVcmwgPSBgJHt0aGlzLmdldEJhc2VQYXRoKHRhc2tGaWx0ZXIuYXBwTmFtZSl9L3F1ZXJ5L3YxL3Rhc2tzYDtcbiAgICAgICAgICAgIGNvbnN0IHF1ZXJ5UGFyYW1zID0ge1xuICAgICAgICAgICAgICAgIHByb2Nlc3NJbnN0YW5jZUlkOiB0YXNrRmlsdGVyLnByb2Nlc3NJbnN0YW5jZUlkLFxuICAgICAgICAgICAgICAgIHByb2Nlc3NEZWZpbml0aW9uSWQ6IHRhc2tGaWx0ZXIucHJvY2Vzc0RlZmluaXRpb25JZCxcbiAgICAgICAgICAgICAgICBwcm9jZXNzRGVmaW5pdGlvbk5hbWU6IHRhc2tGaWx0ZXIucHJvY2Vzc0RlZmluaXRpb25OYW1lLFxuICAgICAgICAgICAgICAgIGFzc2lnbmVlOiB0YXNrRmlsdGVyLmFzc2lnbmVlLFxuICAgICAgICAgICAgICAgIHN0YXR1czogdGFza0ZpbHRlci5zdGF0dXMsXG4gICAgICAgICAgICAgICAgdGFza05hbWU6IHRhc2tGaWx0ZXIudGFza05hbWUsXG4gICAgICAgICAgICAgICAgYXBwTmFtZTogdGFza0ZpbHRlci5hcHBOYW1lLFxuICAgICAgICAgICAgICAgIGFzc2lnbm1lbnRUeXBlOiB0YXNrRmlsdGVyLmFzc2lnbm1lbnRUeXBlLFxuICAgICAgICAgICAgICAgIG93bmVyOiB0YXNrRmlsdGVyLm93bmVyLFxuICAgICAgICAgICAgICAgIHRhc2tJZDogdGFza0ZpbHRlci50YXNrSWQsXG4gICAgICAgICAgICAgICAgcGFyZW50VGFza0lkOiB0YXNrRmlsdGVyLnBhcmVudFRhc2tJZCxcbiAgICAgICAgICAgICAgICBwcmlvcml0eTogdGFza0ZpbHRlci5wcmlvcml0eSxcbiAgICAgICAgICAgICAgICBsYXN0TW9kaWZpZWRGcm9tOiB0YXNrRmlsdGVyLmxhc3RNb2RpZmllZEZyb20sXG4gICAgICAgICAgICAgICAgbGFzdE1vZGlmaWVkVG86IHRhc2tGaWx0ZXIubGFzdE1vZGlmaWVkVG8sXG4gICAgICAgICAgICAgICAgc3RhbmRhbG9uZTogdGFza0ZpbHRlci5zdGFuZGFsb25lLFxuICAgICAgICAgICAgICAgIGNyZWF0ZWREYXRlOiB0YXNrRmlsdGVyLmNyZWF0ZWREYXRlLFxuICAgICAgICAgICAgICAgIGNvbXBsZXRlZERhdGU6IHRhc2tGaWx0ZXIuY29tcGxldGVkRGF0ZSxcbiAgICAgICAgICAgICAgICBjb21wbGV0ZWRCeTogdGFza0ZpbHRlci5jb21wbGV0ZWRCeSxcbiAgICAgICAgICAgICAgICBkdWVEYXRlOiB0YXNrRmlsdGVyLmR1ZURhdGUsXG4gICAgICAgICAgICAgICAgbWF4SXRlbXM6IDFcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXQ8VGFza0Nsb3VkTm9kZVBhZ2luZz4ocXVlcnlVcmwsIHF1ZXJ5UGFyYW1zKS5waXBlKG1hcCgodGFza3MpID0+IHRhc2tzLmxpc3QucGFnaW5hdGlvbi50b3RhbEl0ZW1zKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcignQXBwbmFtZSBub3QgY29uZmlndXJlZCcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2FsbHMgdXBkYXRlIHByZWZlcmVuY2UgYXBpIHRvIHVwZGF0ZSB0YXNrIGZpbHRlclxuICAgICAqXG4gICAgICogQHBhcmFtIGFwcE5hbWUgTmFtZSBvZiB0aGUgdGFyZ2V0IGFwcFxuICAgICAqIEBwYXJhbSBrZXkgS2V5IG9mIHRoZSB0YXNrIGZpbHRlcnNcbiAgICAgKiBAcGFyYW0gZmlsdGVycyBEZXRhaWxzIG9mIHVwZGF0ZSBmaWx0ZXJcbiAgICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlIG9mIHVwZGF0ZWQgdGFzayBmaWx0ZXJzXG4gICAgICovXG4gICAgcHJpdmF0ZSB1cGRhdGVUYXNrRmlsdGVycyhhcHBOYW1lOiBzdHJpbmcsIGtleTogc3RyaW5nLCBmaWx0ZXJzOiBUYXNrRmlsdGVyQ2xvdWRNb2RlbFtdKTogT2JzZXJ2YWJsZTxUYXNrRmlsdGVyQ2xvdWRNb2RlbFtdPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnByZWZlcmVuY2VTZXJ2aWNlLnVwZGF0ZVByZWZlcmVuY2UoYXBwTmFtZSwga2V5LCBmaWx0ZXJzKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgdW5pcSBrZXkgd2l0aCBhcHBOYW1lIGFuZCB1c2VybmFtZVxuICAgICAqXG4gICAgICogQHBhcmFtIGFwcE5hbWUgTmFtZSBvZiB0aGUgdGFyZ2V0IGFwcFxuICAgICAqIEByZXR1cm5zIFN0cmluZyBvZiB0YXNrIGZpbHRlcnMgcHJlZmVyZW5jZSBrZXlcbiAgICAgKi9cbiAgICBwcml2YXRlIHByZXBhcmVLZXkoYXBwTmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGB0YXNrLWZpbHRlcnMtJHthcHBOYW1lfS0ke3RoaXMuaWRlbnRpdHlVc2VyU2VydmljZS5nZXRDdXJyZW50VXNlckluZm8oKS51c2VybmFtZX1gO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEZpbmRzIGFuZCByZXR1cm5zIHRoZSB0YXNrIGZpbHRlcnMgZnJvbSBwcmVmZXJlbmNlc1xuICAgICAqXG4gICAgICogQHJldHVybnMgQXJyYXkgb2YgVGFza0ZpbHRlckNsb3VkTW9kZWxcbiAgICAgKiBAcGFyYW0gcHJlZmVyZW5jZXMgcHJlZmVyZW5jZXNcbiAgICAgKiBAcGFyYW0ga2V5IGtleVxuICAgICAqL1xuICAgIHByaXZhdGUgZmluZEZpbHRlcnNCeUtleUluUHJlZmVyZW5jZXMocHJlZmVyZW5jZXM6IGFueSwga2V5OiBzdHJpbmcpOiBUYXNrRmlsdGVyQ2xvdWRNb2RlbFtdIHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gcHJlZmVyZW5jZXMuZmluZCgoZmlsdGVyOiBhbnkpID0+IGZpbHRlci5lbnRyeS5rZXkgPT09IGtleSk7XG4gICAgICAgIHJldHVybiByZXN1bHQ/LmVudHJ5ID8gSlNPTi5wYXJzZShyZXN1bHQuZW50cnkudmFsdWUpIDogW107XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbmQgcmV0dXJucyB0aGUgZGVmYXVsdCBmaWx0ZXJzIGZvciBhIHRhc2sgYXBwLlxuICAgICAqXG4gICAgICogQHBhcmFtIGFwcE5hbWUgTmFtZSBvZiB0aGUgdGFyZ2V0IGFwcFxuICAgICAqIEByZXR1cm5zIEFycmF5IG9mIFRhc2tGaWx0ZXJDbG91ZE1vZGVsXG4gICAgICovXG4gICAgcHJpdmF0ZSBkZWZhdWx0VGFza0ZpbHRlcnMoYXBwTmFtZT86IHN0cmluZyk6IFRhc2tGaWx0ZXJDbG91ZE1vZGVsW10ge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgbmV3IFRhc2tGaWx0ZXJDbG91ZE1vZGVsKHtcbiAgICAgICAgICAgICAgICBuYW1lOiAnQURGX0NMT1VEX1RBU0tfRklMVEVSUy5NWV9UQVNLUycsXG4gICAgICAgICAgICAgICAga2V5OiAnbXktdGFza3MnLFxuICAgICAgICAgICAgICAgIGljb246ICdpbmJveCcsXG4gICAgICAgICAgICAgICAgYXBwTmFtZSxcbiAgICAgICAgICAgICAgICBzdGF0dXM6ICdBU1NJR05FRCcsXG4gICAgICAgICAgICAgICAgYXNzaWduZWU6IHRoaXMuaWRlbnRpdHlVc2VyU2VydmljZS5nZXRDdXJyZW50VXNlckluZm8oKS51c2VybmFtZSxcbiAgICAgICAgICAgICAgICBzb3J0OiAnY3JlYXRlZERhdGUnLFxuICAgICAgICAgICAgICAgIG9yZGVyOiAnREVTQycsXG4gICAgICAgICAgICAgICAgc2hvd0NvdW50ZXI6IHRydWVcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgbmV3IFRhc2tGaWx0ZXJDbG91ZE1vZGVsKHtcbiAgICAgICAgICAgICAgICBuYW1lOiAnQURGX0NMT1VEX1RBU0tfRklMVEVSUy5RVUVVRURfVEFTS1MnLFxuICAgICAgICAgICAgICAgIGtleTogJ3F1ZXVlZC10YXNrcycsXG4gICAgICAgICAgICAgICAgaWNvbjogJ3F1ZXVlJyxcbiAgICAgICAgICAgICAgICBhcHBOYW1lLFxuICAgICAgICAgICAgICAgIHN0YXR1czogJ0NSRUFURUQnLFxuICAgICAgICAgICAgICAgIGFzc2lnbmVlOiAnJyxcbiAgICAgICAgICAgICAgICBzb3J0OiAnY3JlYXRlZERhdGUnLFxuICAgICAgICAgICAgICAgIG9yZGVyOiAnREVTQycsXG4gICAgICAgICAgICAgICAgc2hvd0NvdW50ZXI6IHRydWVcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgbmV3IFRhc2tGaWx0ZXJDbG91ZE1vZGVsKHtcbiAgICAgICAgICAgICAgICBuYW1lOiAnQURGX0NMT1VEX1RBU0tfRklMVEVSUy5DT01QTEVURURfVEFTS1MnLFxuICAgICAgICAgICAgICAgIGtleTogJ2NvbXBsZXRlZC10YXNrcycsXG4gICAgICAgICAgICAgICAgaWNvbjogJ2RvbmUnLFxuICAgICAgICAgICAgICAgIGFwcE5hbWUsXG4gICAgICAgICAgICAgICAgc3RhdHVzOiAnQ09NUExFVEVEJyxcbiAgICAgICAgICAgICAgICBhc3NpZ25lZTogJycsXG4gICAgICAgICAgICAgICAgc29ydDogJ2NyZWF0ZWREYXRlJyxcbiAgICAgICAgICAgICAgICBvcmRlcjogJ0RFU0MnXG4gICAgICAgICAgICB9KVxuICAgICAgICBdO1xuICAgIH1cblxuICAgIGdldFRhc2tOb3RpZmljYXRpb25TdWJzY3JpcHRpb24oYXBwTmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxUYXNrQ2xvdWRFbmdpbmVFdmVudFtdPiB7XG4gICAgICAgIHJldHVybiB0aGlzLm5vdGlmaWNhdGlvbkNsb3VkU2VydmljZVxuICAgICAgICAgICAgLm1ha2VHUUxRdWVyeShhcHBOYW1lLCBUQVNLX0VWRU5UX1NVQlNDUklQVElPTl9RVUVSWSlcbiAgICAgICAgICAgIC5waXBlKG1hcCgoZXZlbnRzOiBhbnkpID0+IGV2ZW50cy5kYXRhLmVuZ2luZUV2ZW50cykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlZnJlc2ggZmlsdGVyIGtleVxuICAgICAqXG4gICAgICogQHBhcmFtIGZpbHRlcktleSAgS2V5IG9mIHRoZSBmaWx0ZXJcbiAgICAgKi9cbiAgICByZWZyZXNoRmlsdGVyKGZpbHRlcktleTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZmlsdGVyS2V5VG9CZVJlZnJlc2hlZFNvdXJjZS5uZXh0KGZpbHRlcktleSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgcnVuIGFmdGVyIHJldHJpZXZpbmcgdGhlIGZpbHRlciBhcnJheSBmcm9tIHByZWZlcmVuY2VzLlxuICAgICAqIEl0IGhhbmRsZXMgdGhlIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IHdpdGggdGhlIG5ldyBBUEkgYnkgbG9va2luZyBmb3IgdGhlIG5ldyBwcm9wZXJ0aWVzIGFuZCB0aGVpciBjb3VudGVycGFydHMgaW4gZWFjaCBwYXNzZWQgZmlsdGVyLlxuICAgICAqIElmIHRoZSBuZXcgcHJvcGVydHkgaXMgbm90IGZvdW5kLCBpdCBpcyBjcmVhdGVkIGFuZCBhc3NpZ25lZCB0aGUgdmFsdWUgY29uc3RydWN0ZWQgZnJvbSB0aGUgb2xkIHByb3BlcnR5LlxuICAgICAqIFRoZSBmaWx0ZXJzIGFyZSB0aGVuIHVwZGF0ZWQgaW4gdGhlIHByZWZlcmVuY2VzIGFuZCByZXR1cm5lZC5cbiAgICAgKiBPbGQgcHJvcGVydGllcyBhcmUgbGVmdCB1bnRvdWNoZWQgZm9yIHB1cnBvc2VzIGxpa2UgZmVhdHVyZSB0b2dnbGluZy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBhcHBOYW1lIE5hbWUgb2YgdGhlIHRhcmdldCBhcHAuXG4gICAgICogQHBhcmFtIGtleSBLZXkgb2YgdGhlIHRhc2sgZmlsdGVycy5cbiAgICAgKiBAcGFyYW0gZmlsdGVycyBBcnJheSBvZiB0YXNrIGZpbHRlcnMgdG8gYmUgY2hlY2tlZCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eS5cbiAgICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlIG9mIHRhc2sgZmlsdGVycyB3aXRoIHVwZGF0ZWQgcHJvcGVydGllcy5cbiAgICAgKi9cbiAgICBwcml2YXRlIGhhbmRsZUNyZWF0ZUZpbHRlckJhY2t3YXJkc0NvbXBhdGliaWxpdHkoXG4gICAgICAgIGFwcE5hbWU6IHN0cmluZyxcbiAgICAgICAga2V5OiBzdHJpbmcsXG4gICAgICAgIGZpbHRlcnM6IFRhc2tGaWx0ZXJDbG91ZE1vZGVsW11cbiAgICApOiBPYnNlcnZhYmxlPFRhc2tGaWx0ZXJDbG91ZE1vZGVsW10+IHtcbiAgICAgICAgZmlsdGVycy5mb3JFYWNoKChmaWx0ZXIpID0+IHtcbiAgICAgICAgICAgIGlmIChmaWx0ZXIudGFza05hbWUgJiYgIWZpbHRlci50YXNrTmFtZXMpIHtcbiAgICAgICAgICAgICAgICBmaWx0ZXIudGFza05hbWVzID0gW2ZpbHRlci50YXNrTmFtZV07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZmlsdGVyLnN0YXR1cyAmJiAhZmlsdGVyLnN0YXR1c2VzKSB7XG4gICAgICAgICAgICAgICAgZmlsdGVyLnN0YXR1c2VzID0gW2ZpbHRlci5zdGF0dXNdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGZpbHRlci5hc3NpZ25lZSAmJiAhZmlsdGVyLmFzc2lnbmVlcykge1xuICAgICAgICAgICAgICAgIGZpbHRlci5hc3NpZ25lZXMgPSBbZmlsdGVyLmFzc2lnbmVlXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChmaWx0ZXIucHJvY2Vzc0RlZmluaXRpb25OYW1lICYmICFmaWx0ZXIucHJvY2Vzc0RlZmluaXRpb25OYW1lcykge1xuICAgICAgICAgICAgICAgIGZpbHRlci5wcm9jZXNzRGVmaW5pdGlvbk5hbWVzID0gW2ZpbHRlci5wcm9jZXNzRGVmaW5pdGlvbk5hbWVdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGZpbHRlci5jb21wbGV0ZWRCeT8udXNlcm5hbWUgJiYgIWZpbHRlci5jb21wbGV0ZWRCeVVzZXJzKSB7XG4gICAgICAgICAgICAgICAgZmlsdGVyLmNvbXBsZXRlZEJ5VXNlcnMgPSBbZmlsdGVyLmNvbXBsZXRlZEJ5LnVzZXJuYW1lXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChmaWx0ZXIucHJpb3JpdHkgJiYgIWZpbHRlci5wcmlvcml0aWVzKSB7XG4gICAgICAgICAgICAgICAgZmlsdGVyLnByaW9yaXRpZXMgPSBbYCR7ZmlsdGVyLnByaW9yaXR5fWBdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gdGhpcy51cGRhdGVUYXNrRmlsdGVycyhhcHBOYW1lLCBrZXksIGZpbHRlcnMpO1xuICAgIH1cbn1cbiJdfQ==
|
|
392
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1maWx0ZXItY2xvdWQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9wcm9jZXNzLXNlcnZpY2VzLWNsb3VkL3NyYy9saWIvdGFzay90YXNrLWZpbHRlcnMvc2VydmljZXMvdGFzay1maWx0ZXItY2xvdWQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQWMsRUFBRSxFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFFeEUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFFbkYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFFeEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDckYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7OztBQUV2RCxNQUFNLDZCQUE2QixHQUFHOzs7Ozs7Ozs7Ozs7OztDQWNyQyxDQUFDO0FBS0YsTUFBTSxPQUFPLHNCQUF1QixTQUFRLGdCQUFnQjtJQU14RCxZQUNZLG1CQUF3QyxFQUV6QyxpQkFBa0QsRUFDakQsd0JBQWtELEVBQzFELGFBQTRCO1FBRTVCLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztRQU5iLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFFekMsc0JBQWlC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QUNELElBQUksTUFBTSxDQUFDLFdBQVcsRUFBRSxRQUFRLElBQUksQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztnQkFDM0QsTUFBTSxDQUFDLGdCQUFnQixHQUFHLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUM1RCxDQUFDO1lBQ0QsSUFBSSxNQUFNLENBQUMsUUFBUSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUN4QyxNQUFNLENBQUMsVUFBVSxHQUFHLENBQUMsR0FBRyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUMvQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3pELENBQUM7K0dBclhRLHNCQUFzQixxREFRbkIsMEJBQTBCO21IQVI3QixzQkFBc0IsY0FGbkIsTUFBTTs7NEZBRVQsc0JBQXNCO2tCQUhsQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQjs7MEJBU1EsTUFBTTsyQkFBQywwQkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IEluamVjdGFibGUsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YsIEJlaGF2aW9yU3ViamVjdCwgdGhyb3dFcnJvciwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVGFza0ZpbHRlckNsb3VkTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvZmlsdGVyLWNsb3VkLm1vZGVsJztcbmltcG9ydCB7IHN3aXRjaE1hcCwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQmFzZUNsb3VkU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2Jhc2UtY2xvdWQuc2VydmljZSc7XG5pbXBvcnQgeyBQcmVmZXJlbmNlQ2xvdWRTZXJ2aWNlSW50ZXJmYWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcHJlZmVyZW5jZS1jbG91ZC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgVEFTS19GSUxURVJTX1NFUlZJQ0VfVE9LRU4gfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9jbG91ZC10b2tlbi5zZXJ2aWNlJztcbmltcG9ydCB7IFRhc2tDbG91ZE5vZGVQYWdpbmcgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvdGFzay1jbG91ZC5tb2RlbCc7XG5pbXBvcnQgeyBOb3RpZmljYXRpb25DbG91ZFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9ub3RpZmljYXRpb24tY2xvdWQuc2VydmljZSc7XG5pbXBvcnQgeyBUYXNrQ2xvdWRFbmdpbmVFdmVudCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9lbmdpbmUtZXZlbnQtY2xvdWQubW9kZWwnO1xuaW1wb3J0IHsgSWRlbnRpdHlVc2VyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3Blb3BsZS9zZXJ2aWNlcy9pZGVudGl0eS11c2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgQWRmSHR0cENsaWVudCB9IGZyb20gJ0BhbGZyZXNjby9hZGYtY29yZS9hcGknO1xuXG5jb25zdCBUQVNLX0VWRU5UX1NVQlNDUklQVElPTl9RVUVSWSA9IGBcbiAgICBzdWJzY3JpcHRpb24ge1xuICAgICAgICBlbmdpbmVFdmVudHMoZXZlbnRUeXBlOiBbXG4gICAgICAgICAgICBUQVNLX0NPTVBMRVRFRFxuICAgICAgICAgICAgVEFTS19BU1NJR05FRFxuICAgICAgICAgICAgVEFTS19BQ1RJVkFURURcbiAgICAgICAgICAgIFRBU0tfU1VTUEVOREVEXG4gICAgICAgICAgICBUQVNLX0NBTkNFTExFRCxcbiAgICAgICAgICAgIFRBU0tfQ1JFQVRFRFxuICAgICAgICBdKSB7XG4gICAgICAgICAgICBldmVudFR5cGVcbiAgICAgICAgICAgIGVudGl0eVxuICAgICAgICB9XG4gICAgfVxuYDtcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBUYXNrRmlsdGVyQ2xvdWRTZXJ2aWNlIGV4dGVuZHMgQmFzZUNsb3VkU2VydmljZSB7XG4gICAgcHJpdmF0ZSBmaWx0ZXJzU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VGFza0ZpbHRlckNsb3VkTW9kZWxbXT4oW10pO1xuICAgIGZpbHRlcnMkID0gdGhpcy5maWx0ZXJzU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgICBwcml2YXRlIGZpbHRlcktleVRvQmVSZWZyZXNoZWRTb3VyY2UgPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XG4gICAgZmlsdGVyS2V5VG9CZVJlZnJlc2hlZCQgPSB0aGlzLmZpbHRlcktleVRvQmVSZWZyZXNoZWRTb3VyY2UuYXNPYnNlcnZhYmxlKCk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBpZGVudGl0eVVzZXJTZXJ2aWNlOiBJZGVudGl0eVVzZXJTZXJ2aWNlLFxuICAgICAgICBASW5qZWN0KFRBU0tfRklMVEVSU19TRVJWSUNFX1RPS0VOKVxuICAgICAgICBwdWJsaWMgcHJlZmVyZW5jZVNlcnZpY2U6IFByZWZlcmVuY2VDbG91ZFNlcnZpY2VJbnRlcmZhY2UsXG4gICAgICAgIHByaXZhdGUgbm90aWZpY2F0aW9uQ2xvdWRTZXJ2aWNlOiBOb3RpZmljYXRpb25DbG91ZFNlcnZpY2UsXG4gICAgICAgIGFkZkh0dHBDbGllbnQ6IEFkZkh0dHBDbGllbnRcbiAgICApIHtcbiAgICAgICAgc3VwZXIoYWRmSHR0cENsaWVudCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbmQgcmV0dXJucyB0aGUgZGVmYXVsdCB0YXNrIGZpbHRlcnMgZm9yIGFuIGFwcC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBhcHBOYW1lIE5hbWUgb2YgdGhlIHRhcmdldCBhcHBcbiAgICAgKi9cbiAgICBwcml2YXRlIGNyZWF0ZURlZmF1bHRGaWx0ZXJzKGFwcE5hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBjb25zdCBrZXk6IHN0cmluZyA9IHRoaXMucHJlcGFyZUtleShhcHBOYW1lKTtcbiAgICAgICAgdGhpcy5wcmVmZXJlbmNlU2VydmljZVxuICAgICAgICAgICAgLmdldFByZWZlcmVuY2VzKGFwcE5hbWUsIGtleSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJlZmVyZW5jZXMgPSByZXNwb25zZT8ubGlzdD8uZW50cmllcyB8fCBbXTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLmhhc1ByZWZlcmVuY2VzKHByZWZlcmVuY2VzKSB8fCAhdGhpcy5oYXNUYXNrRmlsdGVycyhwcmVmZXJlbmNlcywga2V5KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlVGFza0ZpbHRlcnMoYXBwTmFtZSwga2V5LCB0aGlzLmRlZmF1bHRUYXNrRmlsdGVycyhhcHBOYW1lKSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2YodGhpcy5maW5kRmlsdGVyc0J5S2V5SW5QcmVmZXJlbmNlcyhwcmVmZXJlbmNlcywga2V5KSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKGZpbHRlcnMpID0+IHRoaXMuaGFuZGxlQ3JlYXRlRmlsdGVyQmFja3dhcmRzQ29tcGF0aWJpbGl0eShhcHBOYW1lLCBrZXksIGZpbHRlcnMpKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZmlsdGVycykgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuYWRkRmlsdGVyc1RvU3RyZWFtKGZpbHRlcnMpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIHVzZXIgcHJlZmVyZW5jZSBhcmUgZW1wdHkgb3Igbm90XG4gICAgICpcbiAgICAgKiBAcGFyYW0gcHJlZmVyZW5jZXMgVXNlciBwcmVmZXJlbmNlcyBvZiB0aGUgdGFyZ2V0IGFwcFxuICAgICAqIEByZXR1cm5zIEJvb2xlYW4gdmFsdWUgaWYgdGhlIHByZWZlcmVuY2VzIGFyZSBub3QgZW1wdHlcbiAgICAgKi9cbiAgICBwcml2YXRlIGhhc1ByZWZlcmVuY2VzKHByZWZlcmVuY2VzOiBhbnkpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHByZWZlcmVuY2VzICYmIHByZWZlcmVuY2VzLmxlbmd0aCA+IDA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGZvciB0YXNrIGZpbHRlcnMgaW4gZ2l2ZW4gdXNlciBwcmVmZXJlbmNlc1xuICAgICAqXG4gICAgICogQHBhcmFtIHByZWZlcmVuY2VzIFVzZXIgcHJlZmVyZW5jZXMgb2YgdGhlIHRhcmdldCBhcHBcbiAgICAgKiBAcGFyYW0ga2V5IEtleSBvZiB0aGUgdGFzayBmaWx0ZXJzXG4gICAgICogQHJldHVybnMgQm9vbGVhbiB2YWx1ZSBpZiB0aGUgcHJlZmVyZW5jZSBoYXMgdGFzayBmaWx0ZXJzXG4gICAgICovXG4gICAgcHJpdmF0ZSBoYXNUYXNrRmlsdGVycyhwcmVmZXJlbmNlczogYW55LCBrZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBmaWx0ZXJzID0gcHJlZmVyZW5jZXMuZmluZCgoZmlsdGVyOiBhbnkpID0+IGZpbHRlci5lbnRyeS5rZXkgPT09IGtleSk7XG4gICAgICAgIHJldHVybiBmaWx0ZXJzPy5lbnRyeSA/IEpTT04ucGFyc2UoZmlsdGVycy5lbnRyeS52YWx1ZSkubGVuZ3RoID4gMCA6IGZhbHNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENhbGxzIGNyZWF0ZSBwcmVmZXJlbmNlIGFwaSB0byBjcmVhdGUgdGFzayBmaWx0ZXJzXG4gICAgICpcbiAgICAgKiBAcGFyYW0gYXBwTmFtZSBOYW1lIG9mIHRoZSB0YXJnZXQgYXBwXG4gICAgICogQHBhcmFtIGtleSBLZXkgb2YgdGhlIHRhc2sgaW5zdGFuY2UgZmlsdGVyc1xuICAgICAqIEBwYXJhbSBmaWx0ZXJzIERldGFpbHMgb2YgbmV3IHRhc2sgZmlsdGVyXG4gICAgICogQHJldHVybnMgT2JzZXJ2YWJsZSBvZiBjcmVhdGVkIHRhc2sgZmlsdGVyc1xuICAgICAqL1xuICAgIHByaXZhdGUgY3JlYXRlVGFza0ZpbHRlcnMoYXBwTmFtZTogc3RyaW5nLCBrZXk6IHN0cmluZywgZmlsdGVyczogVGFza0ZpbHRlckNsb3VkTW9kZWxbXSk6IE9ic2VydmFibGU8VGFza0ZpbHRlckNsb3VkTW9kZWxbXT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5wcmVmZXJlbmNlU2VydmljZS5jcmVhdGVQcmVmZXJlbmNlKGFwcE5hbWUsIGtleSwgZmlsdGVycyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2FsbHMgZ2V0IHByZWZlcmVuY2UgYXBpIHRvIGdldCB0YXNrIGZpbHRlciBieSBwcmVmZXJlbmNlIGtleVxuICAgICAqXG4gICAgICogQHBhcmFtIGFwcE5hbWUgTmFtZSBvZiB0aGUgdGFyZ2V0IGFwcFxuICAgICAqIEBwYXJhbSBrZXkgS2V5IG9mIHRoZSB0YXNrIGZpbHRlcnNcbiAgICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlIG9mIHRhc2sgZmlsdGVyc1xuICAgICAqL1xuICAgIHByaXZhdGUgZ2V0VGFza0ZpbHRlcnNCeUtleShhcHBOYW1lOiBzdHJpbmcsIGtleTogc3RyaW5nKTogT2JzZXJ2YWJsZTxUYXNrRmlsdGVyQ2xvdWRNb2RlbFtdPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnByZWZlcmVuY2VTZXJ2aWNlLmdldFByZWZlcmVuY2VCeUtleShhcHBOYW1lLCBrZXkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgYWxsIHRhc2sgZmlsdGVycyBmb3IgYSB0YXNrIGFwcC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBhcHBOYW1lIE5hbWUgb2YgdGhlIHRhcmdldCBhcHBcbiAgICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlIG9mIHRhc2sgZmlsdGVyIGRldGFpbHNcbiAgICAgKi9cbiAgICBnZXRUYXNrTGlzdEZpbHRlcnMoYXBwTmFtZT86IHN0cmluZyk6IE9ic2VydmFibGU8VGFza0ZpbHRlckNsb3VkTW9kZWxbXT4ge1xuICAgICAgICB0aGlzLmNyZWF0ZURlZmF1bHRGaWx0ZXJzKGFwcE5hbWUpO1xuICAgICAgICByZXR1cm4gdGhpcy5maWx0ZXJzJDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIGEgdGFzayBmaWx0ZXIuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gYXBwTmFtZSBOYW1lIG9mIHRoZSB0YXJnZXQgYXBwXG4gICAgICogQHBhcmFtIGlkIElEIG9mIHRoZSB0YXNrXG4gICAgICogQHJldHVybnMgRGV0YWlscyBvZiB0aGUgdGFzayBmaWx0ZXJcbiAgICAgKi9cbiAgICBnZXRUYXNrRmlsdGVyQnlJZChhcHBOYW1lOiBzdHJpbmcsIGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFRhc2tGaWx0ZXJDbG91ZE1vZGVsPiB7XG4gICAgICAgIGNvbnN0IGtleTogc3RyaW5nID0gdGhpcy5wcmVwYXJlS2V5KGFwcE5hbWUpO1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRUYXNrRmlsdGVyc0J5S2V5KGFwcE5hbWUsIGtleSkucGlwZShcbiAgICAgICAgICAgIHN3aXRjaE1hcCgoZmlsdGVycykgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChmaWx0ZXJzICYmIGZpbHRlcnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZVRhc2tGaWx0ZXJzKGFwcE5hbWUsIGtleSwgdGhpcy5kZWZhdWx0VGFza0ZpbHRlcnMoYXBwTmFtZSkpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvZihmaWx0ZXJzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIG1hcCgoZmlsdGVycykgPT4gZmlsdGVycy5maWx0ZXIoKGZpbHRlcikgPT4gZmlsdGVyLmlkID09PSBpZClbMF0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkcyBhIG5ldyB0YXNrIGZpbHRlci5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBuZXdGaWx0ZXIgVGhlIG5ldyBmaWx0ZXIgdG8gYWRkXG4gICAgICogQHJldHVybnMgT2JzZXJ2YWJsZSBvZiB0YXNrIGluc3RhbmNlIGZpbHRlcnMgd2l0aCBuZXdseSBhZGRlZCBmaWx0ZXJcbiAgICAgKi9cbiAgICBhZGRGaWx0ZXIobmV3RmlsdGVyOiBUYXNrRmlsdGVyQ2xvdWRNb2RlbCk6IE9ic2VydmFibGU8VGFza0ZpbHRlckNsb3VkTW9kZWxbXT4ge1xuICAgICAgICBjb25zdCBrZXk6IHN0cmluZyA9IHRoaXMucHJlcGFyZUtleShuZXdGaWx0ZXIuYXBwTmFtZSk7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFRhc2tGaWx0ZXJzQnlLZXkobmV3RmlsdGVyLmFwcE5hbWUsIGtleSkucGlwZShcbiAgICAgICAgICAgIHN3aXRjaE1hcCgoZmlsdGVycykgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChmaWx0ZXJzPy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlVGFza0ZpbHRlcnMobmV3RmlsdGVyLmFwcE5hbWUsIGtleSwgW25ld0ZpbHRlcl0pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGZpbHRlcnMucHVzaChuZXdGaWx0ZXIpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wcmVmZXJlbmNlU2VydmljZS51cGRhdGVQcmVmZXJlbmNlKG5ld0ZpbHRlci5hcHBOYW1lLCBrZXksIGZpbHRlcnMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgbWFwKChmaWx0ZXJzKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5hZGRGaWx0ZXJzVG9TdHJlYW0oZmlsdGVycyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZpbHRlcnM7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgYWRkRmlsdGVyc1RvU3RyZWFtKGZpbHRlcnM6IFRhc2tGaWx0ZXJDbG91ZE1vZGVsW10pIHtcbiAgICAgICAgdGhpcy5maWx0ZXJzU3ViamVjdC5uZXh0KGZpbHRlcnMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVwZGF0ZXMgYSB0YXNrIGZpbHRlci5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB1cGRhdGVkRmlsdGVyIFRoZSBmaWx0ZXIgdG8gdXBkYXRlXG4gICAgICogQHJldHVybnMgT2JzZXJ2YWJsZSBvZiB0YXNrIGluc3RhbmNlIGZpbHRlcnMgd2l0aCB1cGRhdGVkIGZpbHRlclxuICAgICAqL1xuICAgIHVwZGF0ZUZpbHRlcih1cGRhdGVkRmlsdGVyOiBUYXNrRmlsdGVyQ2xvdWRNb2RlbCk6IE9ic2VydmFibGU8VGFza0ZpbHRlckNsb3VkTW9kZWxbXT4ge1xuICAgICAgICBjb25zdCBrZXk6IHN0cmluZyA9IHRoaXMucHJlcGFyZUtleSh1cGRhdGVkRmlsdGVyLmFwcE5hbWUpO1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRUYXNrRmlsdGVyc0J5S2V5KHVwZGF0ZWRGaWx0ZXIuYXBwTmFtZSwga2V5KS5waXBlKFxuICAgICAgICAgICAgc3dpdGNoTWFwKChmaWx0ZXJzKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGZpbHRlcnM/Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVUYXNrRmlsdGVycyh1cGRhdGVkRmlsdGVyLmFwcE5hbWUsIGtleSwgW3VwZGF0ZWRGaWx0ZXJdKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBpdGVtSW5kZXggPSBmaWx0ZXJzLmZpbmRJbmRleCgoZmlsdGVyKSA9PiBmaWx0ZXIuaWQgPT09IHVwZGF0ZWRGaWx0ZXIuaWQpO1xuICAgICAgICAgICAgICAgICAgICBmaWx0ZXJzW2l0ZW1JbmRleF0gPSB1cGRhdGVkRmlsdGVyO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy51cGRhdGVUYXNrRmlsdGVycyh1cGRhdGVkRmlsdGVyLmFwcE5hbWUsIGtleSwgZmlsdGVycyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBtYXAoKHVwZGF0ZWRGaWx0ZXJzKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5hZGRGaWx0ZXJzVG9TdHJlYW0odXBkYXRlZEZpbHRlcnMpO1xuICAgICAgICAgICAgICAgIHJldHVybiB1cGRhdGVkRmlsdGVycztcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGVsZXRlcyBhIHRhc2sgZmlsdGVyXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZGVsZXRlZEZpbHRlciBUaGUgZmlsdGVyIHRvIGRlbGV0ZVxuICAgICAqIEByZXR1cm5zIE9ic2VydmFibGUgb2YgdGFzayBpbnN0YW5jZSBmaWx0ZXJzIHdpdGhvdXQgZGVsZXRlZCBmaWx0ZXJcbiAgICAgKi9cbiAgICBkZWxldGVGaWx0ZXIoZGVsZXRlZEZpbHRlcjogVGFza0ZpbHRlckNsb3VkTW9kZWwpOiBPYnNlcnZhYmxlPFRhc2tGaWx0ZXJDbG91ZE1vZGVsW10+IHtcbiAgICAgICAgY29uc3Qga2V5ID0gdGhpcy5wcmVwYXJlS2V5KGRlbGV0ZWRGaWx0ZXIuYXBwTmFtZSk7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFRhc2tGaWx0ZXJzQnlLZXkoZGVsZXRlZEZpbHRlci5hcHBOYW1lLCBrZXkpLnBpcGUoXG4gICAgICAgICAgICBzd2l0Y2hNYXAoKGZpbHRlcnMpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZmlsdGVycz8ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICBmaWx0ZXJzID0gZmlsdGVycy5maWx0ZXIoKGZpbHRlcikgPT4gZmlsdGVyLmlkICE9PSBkZWxldGVkRmlsdGVyLmlkKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudXBkYXRlVGFza0ZpbHRlcnMoZGVsZXRlZEZpbHRlci5hcHBOYW1lLCBrZXksIGZpbHRlcnMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gb2YoW10pO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBtYXAoKGZpbHRlcnMpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmFkZEZpbHRlcnNUb1N0cmVhbShmaWx0ZXJzKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmlsdGVycztcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGdpdmVuIGZpbHRlciBpcyBhIGRlZmF1bHQgZmlsdGVyXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZmlsdGVyTmFtZSBOYW1lIG9mIHRoZSB0YXJnZXQgdGFzayBmaWx0ZXJcbiAgICAgKiBAcmV0dXJucyBCb29sZWFuIHZhbHVlIGZvciB3aGV0aGVyIHRoZSBmaWx0ZXIgaXMgYSBkZWZhdWx0IGZpbHRlclxuICAgICAqL1xuICAgIGlzRGVmYXVsdEZpbHRlcihmaWx0ZXJOYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgZGVmYXVsdEZpbHRlcnMgPSB0aGlzLmRlZmF1bHRUYXNrRmlsdGVycygpO1xuICAgICAgICByZXR1cm4gZGVmYXVsdEZpbHRlcnMuZmluZEluZGV4KChmaWx0ZXIpID0+IGZpbHRlck5hbWUgPT09IGZpbHRlci5uYW1lKSAhPT0gLTE7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRmluZHMgYSB0YXNrIHVzaW5nIGFuIG9iamVjdCB3aXRoIG9wdGlvbmFsIHF1ZXJ5IHByb3BlcnRpZXMuXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyBUYXNrIGluZm9ybWF0aW9uXG4gICAgICogQHBhcmFtIHRhc2tGaWx0ZXIgdGFzayBmaWx0ZXIgbW9kZWxcbiAgICAgKi9cbiAgICBnZXRUYXNrRmlsdGVyQ291bnRlcih0YXNrRmlsdGVyOiBUYXNrRmlsdGVyQ2xvdWRNb2RlbCk6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgICAgIGlmICh0YXNrRmlsdGVyLmFwcE5hbWUgfHwgdGFza0ZpbHRlci5hcHBOYW1lID09PSAnJykge1xuICAgICAgICAgICAgY29uc3QgcXVlcnlVcmwgPSBgJHt0aGlzLmdldEJhc2VQYXRoKHRhc2tGaWx0ZXIuYXBwTmFtZSl9L3F1ZXJ5L3YxL3Rhc2tzYDtcbiAgICAgICAgICAgIGNvbnN0IHF1ZXJ5UGFyYW1zID0ge1xuICAgICAgICAgICAgICAgIHByb2Nlc3NJbnN0YW5jZUlkOiB0YXNrRmlsdGVyLnByb2Nlc3NJbnN0YW5jZUlkLFxuICAgICAgICAgICAgICAgIHByb2Nlc3NEZWZpbml0aW9uSWQ6IHRhc2tGaWx0ZXIucHJvY2Vzc0RlZmluaXRpb25JZCxcbiAgICAgICAgICAgICAgICBwcm9jZXNzRGVmaW5pdGlvbk5hbWU6IHRhc2tGaWx0ZXIucHJvY2Vzc0RlZmluaXRpb25OYW1lLFxuICAgICAgICAgICAgICAgIGFzc2lnbmVlOiB0YXNrRmlsdGVyLmFzc2lnbmVlLFxuICAgICAgICAgICAgICAgIHN0YXR1czogdGFza0ZpbHRlci5zdGF0dXMsXG4gICAgICAgICAgICAgICAgdGFza05hbWU6IHRhc2tGaWx0ZXIudGFza05hbWUsXG4gICAgICAgICAgICAgICAgYXBwTmFtZTogdGFza0ZpbHRlci5hcHBOYW1lLFxuICAgICAgICAgICAgICAgIGFzc2lnbm1lbnRUeXBlOiB0YXNrRmlsdGVyLmFzc2lnbm1lbnRUeXBlLFxuICAgICAgICAgICAgICAgIG93bmVyOiB0YXNrRmlsdGVyLm93bmVyLFxuICAgICAgICAgICAgICAgIHRhc2tJZDogdGFza0ZpbHRlci50YXNrSWQsXG4gICAgICAgICAgICAgICAgcGFyZW50VGFza0lkOiB0YXNrRmlsdGVyLnBhcmVudFRhc2tJZCxcbiAgICAgICAgICAgICAgICBwcmlvcml0eTogdGFza0ZpbHRlci5wcmlvcml0eSxcbiAgICAgICAgICAgICAgICBsYXN0TW9kaWZpZWRGcm9tOiB0YXNrRmlsdGVyLmxhc3RNb2RpZmllZEZyb20sXG4gICAgICAgICAgICAgICAgbGFzdE1vZGlmaWVkVG86IHRhc2tGaWx0ZXIubGFzdE1vZGlmaWVkVG8sXG4gICAgICAgICAgICAgICAgc3RhbmRhbG9uZTogdGFza0ZpbHRlci5zdGFuZGFsb25lLFxuICAgICAgICAgICAgICAgIGNyZWF0ZWREYXRlOiB0YXNrRmlsdGVyLmNyZWF0ZWREYXRlLFxuICAgICAgICAgICAgICAgIGNvbXBsZXRlZERhdGU6IHRhc2tGaWx0ZXIuY29tcGxldGVkRGF0ZSxcbiAgICAgICAgICAgICAgICBjb21wbGV0ZWRCeTogdGFza0ZpbHRlci5jb21wbGV0ZWRCeSxcbiAgICAgICAgICAgICAgICBkdWVEYXRlOiB0YXNrRmlsdGVyLmR1ZURhdGUsXG4gICAgICAgICAgICAgICAgbWF4SXRlbXM6IDFcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXQ8VGFza0Nsb3VkTm9kZVBhZ2luZz4ocXVlcnlVcmwsIHF1ZXJ5UGFyYW1zKS5waXBlKG1hcCgodGFza3MpID0+IHRhc2tzLmxpc3QucGFnaW5hdGlvbi50b3RhbEl0ZW1zKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcignQXBwbmFtZSBub3QgY29uZmlndXJlZCcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2FsbHMgdXBkYXRlIHByZWZlcmVuY2UgYXBpIHRvIHVwZGF0ZSB0YXNrIGZpbHRlclxuICAgICAqXG4gICAgICogQHBhcmFtIGFwcE5hbWUgTmFtZSBvZiB0aGUgdGFyZ2V0IGFwcFxuICAgICAqIEBwYXJhbSBrZXkgS2V5IG9mIHRoZSB0YXNrIGZpbHRlcnNcbiAgICAgKiBAcGFyYW0gZmlsdGVycyBEZXRhaWxzIG9mIHVwZGF0ZSBmaWx0ZXJcbiAgICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlIG9mIHVwZGF0ZWQgdGFzayBmaWx0ZXJzXG4gICAgICovXG4gICAgcHJpdmF0ZSB1cGRhdGVUYXNrRmlsdGVycyhhcHBOYW1lOiBzdHJpbmcsIGtleTogc3RyaW5nLCBmaWx0ZXJzOiBUYXNrRmlsdGVyQ2xvdWRNb2RlbFtdKTogT2JzZXJ2YWJsZTxUYXNrRmlsdGVyQ2xvdWRNb2RlbFtdPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnByZWZlcmVuY2VTZXJ2aWNlLnVwZGF0ZVByZWZlcmVuY2UoYXBwTmFtZSwga2V5LCBmaWx0ZXJzKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgdW5pcSBrZXkgd2l0aCBhcHBOYW1lIGFuZCB1c2VybmFtZVxuICAgICAqXG4gICAgICogQHBhcmFtIGFwcE5hbWUgTmFtZSBvZiB0aGUgdGFyZ2V0IGFwcFxuICAgICAqIEByZXR1cm5zIFN0cmluZyBvZiB0YXNrIGZpbHRlcnMgcHJlZmVyZW5jZSBrZXlcbiAgICAgKi9cbiAgICBwcml2YXRlIHByZXBhcmVLZXkoYXBwTmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGB0YXNrLWZpbHRlcnMtJHthcHBOYW1lfS0ke3RoaXMuaWRlbnRpdHlVc2VyU2VydmljZS5nZXRDdXJyZW50VXNlckluZm8oKS51c2VybmFtZX1gO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEZpbmRzIGFuZCByZXR1cm5zIHRoZSB0YXNrIGZpbHRlcnMgZnJvbSBwcmVmZXJlbmNlc1xuICAgICAqXG4gICAgICogQHJldHVybnMgQXJyYXkgb2YgVGFza0ZpbHRlckNsb3VkTW9kZWxcbiAgICAgKiBAcGFyYW0gcHJlZmVyZW5jZXMgcHJlZmVyZW5jZXNcbiAgICAgKiBAcGFyYW0ga2V5IGtleVxuICAgICAqL1xuICAgIHByaXZhdGUgZmluZEZpbHRlcnNCeUtleUluUHJlZmVyZW5jZXMocHJlZmVyZW5jZXM6IGFueSwga2V5OiBzdHJpbmcpOiBUYXNrRmlsdGVyQ2xvdWRNb2RlbFtdIHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gcHJlZmVyZW5jZXMuZmluZCgoZmlsdGVyOiBhbnkpID0+IGZpbHRlci5lbnRyeS5rZXkgPT09IGtleSk7XG4gICAgICAgIHJldHVybiByZXN1bHQ/LmVudHJ5ID8gSlNPTi5wYXJzZShyZXN1bHQuZW50cnkudmFsdWUpIDogW107XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbmQgcmV0dXJucyB0aGUgZGVmYXVsdCBmaWx0ZXJzIGZvciBhIHRhc2sgYXBwLlxuICAgICAqXG4gICAgICogQHBhcmFtIGFwcE5hbWUgTmFtZSBvZiB0aGUgdGFyZ2V0IGFwcFxuICAgICAqIEByZXR1cm5zIEFycmF5IG9mIFRhc2tGaWx0ZXJDbG91ZE1vZGVsXG4gICAgICovXG4gICAgcHJpdmF0ZSBkZWZhdWx0VGFza0ZpbHRlcnMoYXBwTmFtZT86IHN0cmluZyk6IFRhc2tGaWx0ZXJDbG91ZE1vZGVsW10ge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgbmV3IFRhc2tGaWx0ZXJDbG91ZE1vZGVsKHtcbiAgICAgICAgICAgICAgICBuYW1lOiAnQURGX0NMT1VEX1RBU0tfRklMVEVSUy5NWV9UQVNLUycsXG4gICAgICAgICAgICAgICAga2V5OiAnbXktdGFza3MnLFxuICAgICAgICAgICAgICAgIGljb246ICdpbmJveCcsXG4gICAgICAgICAgICAgICAgYXBwTmFtZSxcbiAgICAgICAgICAgICAgICBzdGF0dXM6ICdBU1NJR05FRCcsXG4gICAgICAgICAgICAgICAgYXNzaWduZWU6IHRoaXMuaWRlbnRpdHlVc2VyU2VydmljZS5nZXRDdXJyZW50VXNlckluZm8oKS51c2VybmFtZSxcbiAgICAgICAgICAgICAgICBzb3J0OiAnY3JlYXRlZERhdGUnLFxuICAgICAgICAgICAgICAgIG9yZGVyOiAnREVTQycsXG4gICAgICAgICAgICAgICAgc2hvd0NvdW50ZXI6IHRydWVcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgbmV3IFRhc2tGaWx0ZXJDbG91ZE1vZGVsKHtcbiAgICAgICAgICAgICAgICBuYW1lOiAnQURGX0NMT1VEX1RBU0tfRklMVEVSUy5RVUVVRURfVEFTS1MnLFxuICAgICAgICAgICAgICAgIGtleTogJ3F1ZXVlZC10YXNrcycsXG4gICAgICAgICAgICAgICAgaWNvbjogJ3F1ZXVlJyxcbiAgICAgICAgICAgICAgICBhcHBOYW1lLFxuICAgICAgICAgICAgICAgIHN0YXR1czogJ0NSRUFURUQnLFxuICAgICAgICAgICAgICAgIGFzc2lnbmVlOiAnJyxcbiAgICAgICAgICAgICAgICBzb3J0OiAnY3JlYXRlZERhdGUnLFxuICAgICAgICAgICAgICAgIG9yZGVyOiAnREVTQycsXG4gICAgICAgICAgICAgICAgc2hvd0NvdW50ZXI6IHRydWVcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgbmV3IFRhc2tGaWx0ZXJDbG91ZE1vZGVsKHtcbiAgICAgICAgICAgICAgICBuYW1lOiAnQURGX0NMT1VEX1RBU0tfRklMVEVSUy5DT01QTEVURURfVEFTS1MnLFxuICAgICAgICAgICAgICAgIGtleTogJ2NvbXBsZXRlZC10YXNrcycsXG4gICAgICAgICAgICAgICAgaWNvbjogJ2RvbmUnLFxuICAgICAgICAgICAgICAgIGFwcE5hbWUsXG4gICAgICAgICAgICAgICAgc3RhdHVzOiAnQ09NUExFVEVEJyxcbiAgICAgICAgICAgICAgICBhc3NpZ25lZTogJycsXG4gICAgICAgICAgICAgICAgc29ydDogJ2NyZWF0ZWREYXRlJyxcbiAgICAgICAgICAgICAgICBvcmRlcjogJ0RFU0MnXG4gICAgICAgICAgICB9KVxuICAgICAgICBdO1xuICAgIH1cblxuICAgIGdldFRhc2tOb3RpZmljYXRpb25TdWJzY3JpcHRpb24oYXBwTmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxUYXNrQ2xvdWRFbmdpbmVFdmVudFtdPiB7XG4gICAgICAgIHJldHVybiB0aGlzLm5vdGlmaWNhdGlvbkNsb3VkU2VydmljZVxuICAgICAgICAgICAgLm1ha2VHUUxRdWVyeShhcHBOYW1lLCBUQVNLX0VWRU5UX1NVQlNDUklQVElPTl9RVUVSWSlcbiAgICAgICAgICAgIC5waXBlKG1hcCgoZXZlbnRzOiBhbnkpID0+IGV2ZW50cy5kYXRhLmVuZ2luZUV2ZW50cykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlZnJlc2ggZmlsdGVyIGtleVxuICAgICAqXG4gICAgICogQHBhcmFtIGZpbHRlcktleSAgS2V5IG9mIHRoZSBmaWx0ZXJcbiAgICAgKi9cbiAgICByZWZyZXNoRmlsdGVyKGZpbHRlcktleTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZmlsdGVyS2V5VG9CZVJlZnJlc2hlZFNvdXJjZS5uZXh0KGZpbHRlcktleSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgcnVuIGFmdGVyIHJldHJpZXZpbmcgdGhlIGZpbHRlciBhcnJheSBmcm9tIHByZWZlcmVuY2VzLlxuICAgICAqIEl0IGhhbmRsZXMgdGhlIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IHdpdGggdGhlIG5ldyBBUEkgYnkgbG9va2luZyBmb3IgdGhlIG5ldyBwcm9wZXJ0aWVzIGFuZCB0aGVpciBjb3VudGVycGFydHMgaW4gZWFjaCBwYXNzZWQgZmlsdGVyLlxuICAgICAqIElmIHRoZSBuZXcgcHJvcGVydHkgaXMgbm90IGZvdW5kLCBpdCBpcyBjcmVhdGVkIGFuZCBhc3NpZ25lZCB0aGUgdmFsdWUgY29uc3RydWN0ZWQgZnJvbSB0aGUgb2xkIHByb3BlcnR5LlxuICAgICAqIFRoZSBmaWx0ZXJzIGFyZSB0aGVuIHVwZGF0ZWQgaW4gdGhlIHByZWZlcmVuY2VzIGFuZCByZXR1cm5lZC5cbiAgICAgKiBPbGQgcHJvcGVydGllcyBhcmUgbGVmdCB1bnRvdWNoZWQgZm9yIHB1cnBvc2VzIGxpa2UgZmVhdHVyZSB0b2dnbGluZy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBhcHBOYW1lIE5hbWUgb2YgdGhlIHRhcmdldCBhcHAuXG4gICAgICogQHBhcmFtIGtleSBLZXkgb2YgdGhlIHRhc2sgZmlsdGVycy5cbiAgICAgKiBAcGFyYW0gZmlsdGVycyBBcnJheSBvZiB0YXNrIGZpbHRlcnMgdG8gYmUgY2hlY2tlZCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eS5cbiAgICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlIG9mIHRhc2sgZmlsdGVycyB3aXRoIHVwZGF0ZWQgcHJvcGVydGllcy5cbiAgICAgKi9cbiAgICBwcml2YXRlIGhhbmRsZUNyZWF0ZUZpbHRlckJhY2t3YXJkc0NvbXBhdGliaWxpdHkoXG4gICAgICAgIGFwcE5hbWU6IHN0cmluZyxcbiAgICAgICAga2V5OiBzdHJpbmcsXG4gICAgICAgIGZpbHRlcnM6IFRhc2tGaWx0ZXJDbG91ZE1vZGVsW11cbiAgICApOiBPYnNlcnZhYmxlPFRhc2tGaWx0ZXJDbG91ZE1vZGVsW10+IHtcbiAgICAgICAgZmlsdGVycy5mb3JFYWNoKChmaWx0ZXIpID0+IHtcbiAgICAgICAgICAgIGlmIChmaWx0ZXIudGFza05hbWUgJiYgIWZpbHRlci50YXNrTmFtZXMpIHtcbiAgICAgICAgICAgICAgICBmaWx0ZXIudGFza05hbWVzID0gW2ZpbHRlci50YXNrTmFtZV07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZmlsdGVyLnN0YXR1cyAmJiAhZmlsdGVyLnN0YXR1c2VzKSB7XG4gICAgICAgICAgICAgICAgZmlsdGVyLnN0YXR1c2VzID0gW2ZpbHRlci5zdGF0dXNdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGZpbHRlci5hc3NpZ25lZSAmJiAhZmlsdGVyLmFzc2lnbmVlcykge1xuICAgICAgICAgICAgICAgIGZpbHRlci5hc3NpZ25lZXMgPSBbZmlsdGVyLmFzc2lnbmVlXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChmaWx0ZXIucHJvY2Vzc0RlZmluaXRpb25OYW1lICYmICFmaWx0ZXIucHJvY2Vzc0RlZmluaXRpb25OYW1lcykge1xuICAgICAgICAgICAgICAgIGZpbHRlci5wcm9jZXNzRGVmaW5pdGlvbk5hbWVzID0gW2ZpbHRlci5wcm9jZXNzRGVmaW5pdGlvbk5hbWVdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGZpbHRlci5jb21wbGV0ZWRCeT8udXNlcm5hbWUgJiYgIWZpbHRlci5jb21wbGV0ZWRCeVVzZXJzKSB7XG4gICAgICAgICAgICAgICAgZmlsdGVyLmNvbXBsZXRlZEJ5VXNlcnMgPSBbZmlsdGVyLmNvbXBsZXRlZEJ5LnVzZXJuYW1lXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChmaWx0ZXIucHJpb3JpdHkgJiYgIWZpbHRlci5wcmlvcml0aWVzKSB7XG4gICAgICAgICAgICAgICAgZmlsdGVyLnByaW9yaXRpZXMgPSBbYCR7ZmlsdGVyLnByaW9yaXR5fWBdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gdGhpcy51cGRhdGVUYXNrRmlsdGVycyhhcHBOYW1lLCBrZXksIGZpbHRlcnMpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -32,8 +32,8 @@ export const TASK_FILTERS_CLOUD_DIRECTIVES = [
|
|
|
32
32
|
];
|
|
33
33
|
/** @deprecated use ...TASK_FILTERS_CLOUD_DIRECTIVES instead */
|
|
34
34
|
export class TaskFiltersCloudModule {
|
|
35
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
36
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
35
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TaskFiltersCloudModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
36
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: TaskFiltersCloudModule, imports: [TaskFilterDialogCloudComponent,
|
|
37
37
|
TaskFiltersCloudComponent,
|
|
38
38
|
ServiceTaskFiltersCloudComponent,
|
|
39
39
|
EditTaskFilterCloudComponent,
|
|
@@ -44,13 +44,13 @@ export class TaskFiltersCloudModule {
|
|
|
44
44
|
EditTaskFilterCloudComponent,
|
|
45
45
|
TaskAssignmentFilterCloudComponent,
|
|
46
46
|
EditServiceTaskFilterCloudComponent] }); }
|
|
47
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
47
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TaskFiltersCloudModule, imports: [TASK_FILTERS_CLOUD_DIRECTIVES] }); }
|
|
48
48
|
}
|
|
49
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
49
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TaskFiltersCloudModule, decorators: [{
|
|
50
50
|
type: NgModule,
|
|
51
51
|
args: [{
|
|
52
52
|
imports: [...TASK_FILTERS_CLOUD_DIRECTIVES],
|
|
53
53
|
exports: [...TASK_FILTERS_CLOUD_DIRECTIVES]
|
|
54
54
|
}]
|
|
55
55
|
}] });
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1maWx0ZXJzLWNsb3VkLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9wcm9jZXNzLXNlcnZpY2VzLWNsb3VkL3NyYy9saWIvdGFzay90YXNrLWZpbHRlcnMvdGFzay1maWx0ZXJzLWNsb3VkLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQ25HLE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxNQUFNLGtHQUFrRyxDQUFDO0FBQ3ZKLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGtGQUFrRixDQUFDO0FBQ2hJLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLG9FQUFvRSxDQUFDO0FBQ3BILE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLHdFQUF3RSxDQUFDO0FBQzFILE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLHNFQUFzRSxDQUFDOztBQUUxSCxNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBRztJQUN6Qyw4QkFBOEI7SUFDOUIseUJBQXlCO0lBQ3pCLGdDQUFnQztJQUNoQyw0QkFBNEI7SUFDNUIsa0NBQWtDO0lBQ2xDLG1DQUFtQztDQUM3QixDQUFDO0FBRVgsK0RBQStEO0FBSy9ELE1BQU0sT0FBTyxzQkFBc0I7K0dBQXRCLHNCQUFzQjtnSEFBdEIsc0JBQXNCLFlBYi9CLDhCQUE4QjtZQUM5Qix5QkFBeUI7WUFDekIsZ0NBQWdDO1lBQ2hDLDRCQUE0QjtZQUM1QixrQ0FBa0M7WUFDbEMsbUNBQW1DLGFBTG5DLDhCQUE4QjtZQUM5Qix5QkFBeUI7WUFDekIsZ0NBQWdDO1lBQ2hDLDRCQUE0QjtZQUM1QixrQ0FBa0M7WUFDbEMsbUNBQW1DO2dIQVExQixzQkFBc0IsWUFIbEIsNkJBQTZCOzs0RkFHakMsc0JBQXNCO2tCQUpsQyxRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRSxDQUFDLEdBQUcsNkJBQTZCLENBQUM7b0JBQzNDLE9BQU8sRUFBRSxDQUFDLEdBQUcsNkJBQTZCLENBQUM7aUJBQzlDIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGFza0ZpbHRlcnNDbG91ZENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90YXNrLWZpbHRlcnMvdGFzay1maWx0ZXJzLWNsb3VkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFZGl0U2VydmljZVRhc2tGaWx0ZXJDbG91ZENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9lZGl0LXRhc2stZmlsdGVycy9lZGl0LXNlcnZpY2UtdGFzay1maWx0ZXIvZWRpdC1zZXJ2aWNlLXRhc2stZmlsdGVyLWNsb3VkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFZGl0VGFza0ZpbHRlckNsb3VkQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2VkaXQtdGFzay1maWx0ZXJzL2VkaXQtdGFzay1maWx0ZXIvZWRpdC10YXNrLWZpbHRlci1jbG91ZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGFza0ZpbHRlckRpYWxvZ0Nsb3VkQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3Rhc2stZmlsdGVyLWRpYWxvZy90YXNrLWZpbHRlci1kaWFsb2ctY2xvdWQuY29tcG9uZW50JztcbmltcG9ydCB7IFNlcnZpY2VUYXNrRmlsdGVyc0Nsb3VkQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3NlcnZpY2UtdGFzay1maWx0ZXJzL3NlcnZpY2UtdGFzay1maWx0ZXJzLWNsb3VkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUYXNrQXNzaWdubWVudEZpbHRlckNsb3VkQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3Rhc2stYXNzaWdubWVudC1maWx0ZXIvdGFzay1hc3NpZ25tZW50LWZpbHRlci5jb21wb25lbnQnO1xuXG5leHBvcnQgY29uc3QgVEFTS19GSUxURVJTX0NMT1VEX0RJUkVDVElWRVMgPSBbXG4gICAgVGFza0ZpbHRlckRpYWxvZ0Nsb3VkQ29tcG9uZW50LFxuICAgIFRhc2tGaWx0ZXJzQ2xvdWRDb21wb25lbnQsXG4gICAgU2VydmljZVRhc2tGaWx0ZXJzQ2xvdWRDb21wb25lbnQsXG4gICAgRWRpdFRhc2tGaWx0ZXJDbG91ZENvbXBvbmVudCxcbiAgICBUYXNrQXNzaWdubWVudEZpbHRlckNsb3VkQ29tcG9uZW50LFxuICAgIEVkaXRTZXJ2aWNlVGFza0ZpbHRlckNsb3VkQ29tcG9uZW50XG5dIGFzIGNvbnN0O1xuXG4vKiogQGRlcHJlY2F0ZWQgdXNlIC4uLlRBU0tfRklMVEVSU19DTE9VRF9ESVJFQ1RJVkVTIGluc3RlYWQgKi9cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogWy4uLlRBU0tfRklMVEVSU19DTE9VRF9ESVJFQ1RJVkVTXSxcbiAgICBleHBvcnRzOiBbLi4uVEFTS19GSUxURVJTX0NMT1VEX0RJUkVDVElWRVNdXG59KVxuZXhwb3J0IGNsYXNzIFRhc2tGaWx0ZXJzQ2xvdWRNb2R1bGUge31cbiJdfQ==
|
|
@@ -140,10 +140,10 @@ export class TaskFormCloudComponent {
|
|
|
140
140
|
onDisplayModeOff(displayModeConfiguration) {
|
|
141
141
|
this.displayModeOff.emit(displayModeConfiguration);
|
|
142
142
|
}
|
|
143
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
144
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
143
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TaskFormCloudComponent, deps: [{ token: i1.TaskCloudService }, { token: i2.FormRenderingService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
144
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TaskFormCloudComponent, isStandalone: true, selector: "adf-cloud-task-form", inputs: { appName: "appName", candidateUsers: "candidateUsers", candidateGroups: "candidateGroups", taskId: "taskId", showTitle: "showTitle", showRefreshButton: "showRefreshButton", showValidationIcon: "showValidationIcon", showCancelButton: "showCancelButton", showCompleteButton: "showCompleteButton", readOnly: "readOnly", displayModeConfigurations: "displayModeConfigurations", taskDetails: "taskDetails" }, outputs: { formSaved: "formSaved", formCompleted: "formCompleted", taskCompleted: "taskCompleted", taskClaimed: "taskClaimed", taskUnclaimed: "taskUnclaimed", cancelClick: "cancelClick", error: "error", formContentClicked: "formContentClicked", executeOutcome: "executeOutcome", displayModeOn: "displayModeOn", displayModeOff: "displayModeOff" }, viewQueries: [{ propertyName: "adfCloudForm", first: true, predicate: ["adfCloudForm"], descendants: true }], ngImport: i0, template: "<div class=\"adf-task-form-cloud-container\">\n <adf-cloud-form\n #adfCloudForm\n [appName]=\"appName\"\n [appVersion]=\"taskDetails.appVersion\"\n [taskId]=\"taskId\"\n [showTitle]=\"showTitle\"\n [processInstanceId]=\"taskDetails.processInstanceId\"\n [readOnly]=\"isReadOnly()\"\n [showRefreshButton]=\"showRefreshButton\"\n [showValidationIcon]=\"showValidationIcon\"\n [showCompleteButton]=\"canCompleteTask()\"\n [showSaveButton]=\"canCompleteTask()\"\n [displayModeConfigurations]=\"displayModeConfigurations\"\n (formSaved)=\"onFormSaved($event)\"\n (formCompleted)=\"onFormCompleted($event)\"\n (formError)=\"onError($event)\"\n (error)=\"onError($event)\"\n (formContentClicked)=\"onFormContentClicked($event)\"\n (executeOutcome)=\"onFormExecuteOutcome($event)\"\n (displayModeOn)=\"onDisplayModeOn($event)\"\n (displayModeOff)=\"onDisplayModeOff($event)\"\n >\n <adf-cloud-form-custom-outcomes>\n <adf-cloud-user-task-cloud-buttons\n [appName]=\"appName\"\n [canClaimTask]=\"canClaimTask()\"\n [canUnclaimTask]=\"canUnclaimTask()\"\n [showCancelButton]=\"showCancelButton\"\n [taskId]=\"taskId\"\n (cancelClick)=\"onCancelClick()\"\n (claimTask)=\"onClaimTask()\"\n (unclaimTask)=\"onUnclaimTask()\"\n (error)=\"onError($event)\"\n />\n </adf-cloud-form-custom-outcomes>\n </adf-cloud-form>\n</div>\n", styles: [".adf-task-form-cloud-container{height:100%}.adf-task-form-cloud-container .adf-task-form-container{overflow:hidden}.adf-task-form-cloud-container .adf-task-form-container .adf-task-form-actions:has(button){padding-bottom:25px;padding-right:25px}.adf-task-form-cloud-container .adf-task-form-container .adf-task-form-actions:has(button) .adf-task-form-actions-button{height:36px;border-radius:5px}.adf-task-form-cloud-container .adf-task-form-container .adf-task-form-actions:has(button) .mat-mdc-button{height:36px;border-radius:5px;width:auto;padding:0 16px;margin:0 8px;white-space:nowrap}.adf-task-form-cloud-container .adf-task-form-container .adf-task-form-actions:has(button) .mdc-button__label{min-width:58px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: UserTaskCloudButtonsComponent, selector: "adf-cloud-user-task-cloud-buttons", inputs: ["appName", "canClaimTask", "canUnclaimTask", "taskId", "showCancelButton"], outputs: ["error", "cancelClick", "claimTask", "unclaimTask"] }, { kind: "component", type: FormCustomOutcomesComponent, selector: "adf-cloud-form-custom-outcomes" }, { kind: "component", type: FormCloudComponent, selector: "adf-cloud-form", inputs: ["appName", "appVersion", "formId", "processInstanceId", "taskId", "data", "displayModeConfigurations"], outputs: ["formSaved", "formCompleted", "formLoaded", "formDataRefreshed", "formContentClicked", "displayModeOn", "displayModeOff"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
145
145
|
}
|
|
146
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
146
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TaskFormCloudComponent, decorators: [{
|
|
147
147
|
type: Component,
|
|
148
148
|
args: [{ selector: 'adf-cloud-task-form', standalone: true, imports: [CommonModule, UserTaskCloudButtonsComponent, FormCustomOutcomesComponent, FormCloudComponent], encapsulation: ViewEncapsulation.None, template: "<div class=\"adf-task-form-cloud-container\">\n <adf-cloud-form\n #adfCloudForm\n [appName]=\"appName\"\n [appVersion]=\"taskDetails.appVersion\"\n [taskId]=\"taskId\"\n [showTitle]=\"showTitle\"\n [processInstanceId]=\"taskDetails.processInstanceId\"\n [readOnly]=\"isReadOnly()\"\n [showRefreshButton]=\"showRefreshButton\"\n [showValidationIcon]=\"showValidationIcon\"\n [showCompleteButton]=\"canCompleteTask()\"\n [showSaveButton]=\"canCompleteTask()\"\n [displayModeConfigurations]=\"displayModeConfigurations\"\n (formSaved)=\"onFormSaved($event)\"\n (formCompleted)=\"onFormCompleted($event)\"\n (formError)=\"onError($event)\"\n (error)=\"onError($event)\"\n (formContentClicked)=\"onFormContentClicked($event)\"\n (executeOutcome)=\"onFormExecuteOutcome($event)\"\n (displayModeOn)=\"onDisplayModeOn($event)\"\n (displayModeOff)=\"onDisplayModeOff($event)\"\n >\n <adf-cloud-form-custom-outcomes>\n <adf-cloud-user-task-cloud-buttons\n [appName]=\"appName\"\n [canClaimTask]=\"canClaimTask()\"\n [canUnclaimTask]=\"canUnclaimTask()\"\n [showCancelButton]=\"showCancelButton\"\n [taskId]=\"taskId\"\n (cancelClick)=\"onCancelClick()\"\n (claimTask)=\"onClaimTask()\"\n (unclaimTask)=\"onUnclaimTask()\"\n (error)=\"onError($event)\"\n />\n </adf-cloud-form-custom-outcomes>\n </adf-cloud-form>\n</div>\n", styles: [".adf-task-form-cloud-container{height:100%}.adf-task-form-cloud-container .adf-task-form-container{overflow:hidden}.adf-task-form-cloud-container .adf-task-form-container .adf-task-form-actions:has(button){padding-bottom:25px;padding-right:25px}.adf-task-form-cloud-container .adf-task-form-container .adf-task-form-actions:has(button) .adf-task-form-actions-button{height:36px;border-radius:5px}.adf-task-form-cloud-container .adf-task-form-container .adf-task-form-actions:has(button) .mat-mdc-button{height:36px;border-radius:5px;width:auto;padding:0 16px;margin:0 8px;white-space:nowrap}.adf-task-form-cloud-container .adf-task-form-container .adf-task-form-actions:has(button) .mdc-button__label{min-width:58px}\n"] }]
|
|
149
149
|
}], ctorParameters: () => [{ type: i1.TaskCloudService }, { type: i2.FormRenderingService }], propDecorators: { appName: [{
|
|
@@ -196,4 +196,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImpor
|
|
|
196
196
|
type: ViewChild,
|
|
197
197
|
args: ['adfCloudForm', { static: false }]
|
|
198
198
|
}] } });
|
|
199
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1mb3JtLWNsb3VkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9wcm9jZXNzLXNlcnZpY2VzLWNsb3VkL3NyYy9saWIvdGFzay90YXNrLWZvcm0vY29tcG9uZW50cy90YXNrLWZvcm0tY2xvdWQvdGFzay1mb3JtLWNsb3VkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9wcm9jZXNzLXNlcnZpY2VzLWNsb3VkL3NyYy9saWIvdGFzay90YXNrLWZvcm0vY29tcG9uZW50cy90YXNrLWZvcm0tY2xvdWQvdGFzay1mb3JtLWNsb3VkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILE9BQU8sRUFBaUQsb0JBQW9CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN6RyxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUN0RixPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxvRkFBb0YsQ0FBQztBQUNwSSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUN0RyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxvRUFBb0UsQ0FBQztBQUVsSCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUV4RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sOERBQThELENBQUM7QUFDN0csT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sa0VBQWtFLENBQUM7Ozs7QUFV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TixpQkFBaUI7c0JBRGhCLEtBQUs7Z0JBS04sa0JBQWtCO3NCQURqQixLQUFLO2dCQUtOLGdCQUFnQjtzQkFEZixLQUFLO2dCQUtOLGtCQUFrQjtzQkFEakIsS0FBSztnQkFLTixRQUFRO3NCQURQLEtBQUs7Z0JBT04seUJBQXlCO3NCQUR4QixLQUFLO2dCQUtOLFdBQVc7c0JBRFYsS0FBSztnQkFLTixTQUFTO3NCQURSLE1BQU07Z0JBS1AsYUFBYTtzQkFEWixNQUFNO2dCQUtQLGFBQWE7c0JBRFosTUFBTTtnQkFLUCxXQUFXO3NCQURWLE1BQU07Z0JBS1AsYUFBYTtzQkFEWixNQUFNO2dCQUtQLFdBQVc7c0JBRFYsTUFBTTtnQkFLUCxLQUFLO3NCQURKLE1BQU07Z0JBS1Asa0JBQWtCO3NCQURqQixNQUFNO2dCQVFQLGNBQWM7c0JBRGIsTUFBTTtnQkFLUCxhQUFhO3NCQURaLE1BQU07Z0JBS1AsY0FBYztzQkFEYixNQUFNO2dCQUlQLFlBQVk7c0JBRFgsU0FBUzt1QkFBQyxjQUFjLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBDb250ZW50TGlua01vZGVsLCBGb3JtTW9kZWwsIEZvcm1PdXRjb21lRXZlbnQsIEZvcm1SZW5kZXJpbmdTZXJ2aWNlIH0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb3JlJztcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBWaWV3Q2hpbGQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ2xvdWRDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi9mb3JtL2NvbXBvbmVudHMvZm9ybS1jbG91ZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXR0YWNoRmlsZUNsb3VkV2lkZ2V0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vZm9ybS9jb21wb25lbnRzL3dpZGdldHMvYXR0YWNoLWZpbGUvYXR0YWNoLWZpbGUtY2xvdWQtd2lkZ2V0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYXRlQ2xvdWRXaWRnZXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi9mb3JtL2NvbXBvbmVudHMvd2lkZ2V0cy9kYXRlL2RhdGUtY2xvdWQud2lkZ2V0JztcbmltcG9ydCB7IERyb3Bkb3duQ2xvdWRXaWRnZXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi9mb3JtL2NvbXBvbmVudHMvd2lkZ2V0cy9kcm9wZG93bi9kcm9wZG93bi1jbG91ZC53aWRnZXQnO1xuaW1wb3J0IHsgRm9ybUNsb3VkRGlzcGxheU1vZGVDb25maWd1cmF0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvZm9ybS1maWVsZHMuaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBUYXNrQ2xvdWRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdGFzay1jbG91ZC5zZXJ2aWNlJztcbmltcG9ydCB7IFRhc2tEZXRhaWxzQ2xvdWRNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy90YXNrLWRldGFpbHMtY2xvdWQubW9kZWwnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFVzZXJUYXNrQ2xvdWRCdXR0b25zQ29tcG9uZW50IH0gZnJvbSAnLi4vdXNlci10YXNrLWNsb3VkLWJ1dHRvbnMvdXNlci10YXNrLWNsb3VkLWJ1dHRvbnMuY29tcG9uZW50JztcbmltcG9ydCB7IEZvcm1DdXN0b21PdXRjb21lc0NvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uLy4uL2Zvcm0vY29tcG9uZW50cy9mb3JtLWNsb3VkLWN1c3RvbS1vdXRjb21lcy5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FkZi1jbG91ZC10YXNrLWZvcm0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgVXNlclRhc2tDbG91ZEJ1dHRvbnNDb21wb25lbnQsIEZvcm1DdXN0b21PdXRjb21lc0NvbXBvbmVudCwgRm9ybUNsb3VkQ29tcG9uZW50XSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdGFzay1mb3JtLWNsb3VkLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi90YXNrLWZvcm0tY2xvdWQuY29tcG9uZW50LnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIFRhc2tGb3JtQ2xvdWRDb21wb25lbnQge1xuICAgIC8qKiBBcHAgaWQgdG8gZmV0Y2ggY29ycmVzcG9uZGluZyBmb3JtIGFuZCB2YWx1ZXMuICovXG4gICAgQElucHV0KClcbiAgICBhcHBOYW1lOiBzdHJpbmcgPSAnJztcblxuICAgIC8qKkNhbmRpZGF0ZXMgdXNlcnMqL1xuICAgIEBJbnB1dCgpXG4gICAgY2FuZGlkYXRlVXNlcnM6IHN0cmluZ1tdID0gW107XG5cbiAgICAvKipDYW5kaWRhdGVzIGdyb3VwcyAqL1xuICAgIEBJbnB1dCgpXG4gICAgY2FuZGlkYXRlR3JvdXBzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgLyoqIFRhc2sgaWQgdG8gZmV0Y2ggY29ycmVzcG9uZGluZyBmb3JtIGFuZCB2YWx1ZXMuICovXG4gICAgQElucHV0KClcbiAgICB0YXNrSWQ6IHN0cmluZztcblxuICAgIC8qKiBUb2dnbGUgcmVuZGVyaW5nIG9mIHRoZSBmb3JtIHRpdGxlLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2hvd1RpdGxlOiBib29sZWFuID0gdHJ1ZTtcblxuICAgIC8qKiBUb2dnbGUgcmVuZGVyaW5nIG9mIHRoZSBgUmVmcmVzaGAgYnV0dG9uLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2hvd1JlZnJlc2hCdXR0b24gPSBmYWxzZTtcblxuICAgIC8qKiBUb2dnbGUgcmVuZGVyaW5nIG9mIHRoZSBgVmFsaWRhdGlvbmAgaWNvbi4gKi9cbiAgICBASW5wdXQoKVxuICAgIHNob3dWYWxpZGF0aW9uSWNvbiA9IHRydWU7XG5cbiAgICAvKiogVG9nZ2xlIHJlbmRlcmluZyBvZiB0aGUgYENhbmNlbGAgYnV0dG9uLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2hvd0NhbmNlbEJ1dHRvbiA9IHRydWU7XG5cbiAgICAvKiogVG9nZ2xlIHJlbmRlcmluZyBvZiB0aGUgYENvbXBsZXRlYCBidXR0b24uICovXG4gICAgQElucHV0KClcbiAgICBzaG93Q29tcGxldGVCdXR0b24gPSB0cnVlO1xuXG4gICAgLyoqIFRvZ2dsZSByZWFkb25seSBzdGF0ZSBvZiB0aGUgdGFzay4gKi9cbiAgICBASW5wdXQoKVxuICAgIHJlYWRPbmx5ID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYXZhaWxhYmxlIGRpc3BsYXkgY29uZmlndXJhdGlvbnMgZm9yIHRoZSBmb3JtXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBkaXNwbGF5TW9kZUNvbmZpZ3VyYXRpb25zOiBGb3JtQ2xvdWREaXNwbGF5TW9kZUNvbmZpZ3VyYXRpb25bXTtcblxuICAgIC8qKiBUYXNrIGRldGFpbHMuICovXG4gICAgQElucHV0KClcbiAgICB0YXNrRGV0YWlsczogVGFza0RldGFpbHNDbG91ZE1vZGVsO1xuXG4gICAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgZm9ybSBpcyBzYXZlZC4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBmb3JtU2F2ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEZvcm1Nb2RlbD4oKTtcblxuICAgIC8qKiBFbWl0dGVkIHdoZW4gdGhlIGZvcm0gaXMgc3VibWl0dGVkIHdpdGggdGhlIGBDb21wbGV0ZWAgb3V0Y29tZS4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBmb3JtQ29tcGxldGVkID0gbmV3IEV2ZW50RW1pdHRlcjxGb3JtTW9kZWw+KCk7XG5cbiAgICAvKiogRW1pdHRlZCB3aGVuIHRoZSB0YXNrIGlzIGNvbXBsZXRlZC4gKi9cbiAgICBAT3V0cHV0KClcbiAgICB0YXNrQ29tcGxldGVkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgICAvKiogRW1pdHRlZCB3aGVuIHRoZSB0YXNrIGlzIGNsYWltZWQuICovXG4gICAgQE91dHB1dCgpXG4gICAgdGFza0NsYWltZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICAgIC8qKiBFbWl0dGVkIHdoZW4gdGhlIHRhc2sgaXMgdW5jbGFpbWVkLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHRhc2tVbmNsYWltZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICAgIC8qKiBFbWl0dGVkIHdoZW4gdGhlIGNhbmNlbCBidXR0b24gaXMgY2xpY2tlZC4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBjYW5jZWxDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gICAgLyoqIEVtaXR0ZWQgd2hlbiBhbnkgZXJyb3Igb2NjdXJzLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIGVycm9yID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgICAvKiogRW1pdHRlZCB3aGVuIGZvcm0gY29udGVudCBpcyBjbGlja2VkLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIGZvcm1Db250ZW50Q2xpY2tlZDogRXZlbnRFbWl0dGVyPENvbnRlbnRMaW5rTW9kZWw+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgLyoqXG4gICAgICogRW1pdHRlZCB3aGVuIGFueSBvdXRjb21lIGlzIGV4ZWN1dGVkLiBEZWZhdWx0IGJlaGF2aW91ciBjYW4gYmUgcHJldmVudGVkXG4gICAgICogdmlhIGBldmVudC5wcmV2ZW50RGVmYXVsdCgpYC5cbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBleGVjdXRlT3V0Y29tZSA9IG5ldyBFdmVudEVtaXR0ZXI8Rm9ybU91dGNvbWVFdmVudD4oKTtcblxuICAgIC8qKiBFbWl0dGVkIHdoZW4gYSBkaXNwbGF5IG1vZGUgY29uZmlndXJhdGlvbiBpcyB0dXJuZWQgb24uICovXG4gICAgQE91dHB1dCgpXG4gICAgZGlzcGxheU1vZGVPbiA9IG5ldyBFdmVudEVtaXR0ZXI8Rm9ybUNsb3VkRGlzcGxheU1vZGVDb25maWd1cmF0aW9uPigpO1xuXG4gICAgLyoqIEVtaXR0ZWQgd2hlbiBhIGRpc3BsYXkgbW9kZSBjb25maWd1cmF0aW9uIGlzIHR1cm5lZCBvZmYuICovXG4gICAgQE91dHB1dCgpXG4gICAgZGlzcGxheU1vZGVPZmYgPSBuZXcgRXZlbnRFbWl0dGVyPEZvcm1DbG91ZERpc3BsYXlNb2RlQ29uZmlndXJhdGlvbj4oKTtcblxuICAgIEBWaWV3Q2hpbGQoJ2FkZkNsb3VkRm9ybScsIHsgc3RhdGljOiBmYWxzZSB9KVxuICAgIGFkZkNsb3VkRm9ybTogRm9ybUNsb3VkQ29tcG9uZW50O1xuXG4gICAgbG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSB0YXNrQ2xvdWRTZXJ2aWNlOiBUYXNrQ2xvdWRTZXJ2aWNlLCBwcml2YXRlIGZvcm1SZW5kZXJpbmdTZXJ2aWNlOiBGb3JtUmVuZGVyaW5nU2VydmljZSkge1xuICAgICAgICB0aGlzLmZvcm1SZW5kZXJpbmdTZXJ2aWNlLnNldENvbXBvbmVudFR5cGVSZXNvbHZlcigndXBsb2FkJywgKCkgPT4gQXR0YWNoRmlsZUNsb3VkV2lkZ2V0Q29tcG9uZW50LCB0cnVlKTtcbiAgICAgICAgdGhpcy5mb3JtUmVuZGVyaW5nU2VydmljZS5zZXRDb21wb25lbnRUeXBlUmVzb2x2ZXIoJ2Ryb3Bkb3duJywgKCkgPT4gRHJvcGRvd25DbG91ZFdpZGdldENvbXBvbmVudCwgdHJ1ZSk7XG4gICAgICAgIHRoaXMuZm9ybVJlbmRlcmluZ1NlcnZpY2Uuc2V0Q29tcG9uZW50VHlwZVJlc29sdmVyKCdkYXRlJywgKCkgPT4gRGF0ZUNsb3VkV2lkZ2V0Q29tcG9uZW50LCB0cnVlKTtcbiAgICB9XG5cbiAgICBoYXNGb3JtKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy50YXNrRGV0YWlscyAmJiAhIXRoaXMudGFza0RldGFpbHMuZm9ybUtleTtcbiAgICB9XG5cbiAgICBjYW5Db21wbGV0ZVRhc2soKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNob3dDb21wbGV0ZUJ1dHRvbiAmJiAhdGhpcy5yZWFkT25seSAmJiB0aGlzLnRhc2tDbG91ZFNlcnZpY2UuY2FuQ29tcGxldGVUYXNrKHRoaXMudGFza0RldGFpbHMpO1xuICAgIH1cblxuICAgIGNhbkNsYWltVGFzaygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLnJlYWRPbmx5ICYmIHRoaXMudGFza0Nsb3VkU2VydmljZS5jYW5DbGFpbVRhc2sodGhpcy50YXNrRGV0YWlscykgJiYgdGhpcy5oYXNDYW5kaWRhdGVVc2Vyc09yR3JvdXBzKCk7XG4gICAgfVxuXG4gICAgY2FuVW5jbGFpbVRhc2soKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhdGhpcy5yZWFkT25seSAmJiB0aGlzLnRhc2tDbG91ZFNlcnZpY2UuY2FuVW5jbGFpbVRhc2sodGhpcy50YXNrRGV0YWlscykgJiYgdGhpcy5oYXNDYW5kaWRhdGVVc2Vyc09yR3JvdXBzKCk7XG4gICAgfVxuXG4gICAgaGFzQ2FuZGlkYXRlVXNlcnMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNhbmRpZGF0ZVVzZXJzLmxlbmd0aCAhPT0gMDtcbiAgICB9XG5cbiAgICBoYXNDYW5kaWRhdGVHcm91cHMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNhbmRpZGF0ZUdyb3Vwcy5sZW5ndGggIT09IDA7XG4gICAgfVxuXG4gICAgaGFzQ2FuZGlkYXRlVXNlcnNPckdyb3VwcygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaGFzQ2FuZGlkYXRlVXNlcnMoKSB8fCB0aGlzLmhhc0NhbmRpZGF0ZUdyb3VwcygpO1xuICAgIH1cblxuICAgIGlzUmVhZE9ubHkoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlYWRPbmx5IHx8ICF0aGlzLnRhc2tDbG91ZFNlcnZpY2UuY2FuQ29tcGxldGVUYXNrKHRoaXMudGFza0RldGFpbHMpO1xuICAgIH1cblxuICAgIG9uQ29tcGxldGVUYXNrKCkge1xuICAgICAgICB0aGlzLnRhc2tDb21wbGV0ZWQuZW1pdCh0aGlzLnRhc2tJZCk7XG4gICAgfVxuXG4gICAgb25DbGFpbVRhc2soKSB7XG4gICAgICAgIHRoaXMudGFza0NsYWltZWQuZW1pdCh0aGlzLnRhc2tJZCk7XG4gICAgfVxuXG4gICAgb25VbmNsYWltVGFzaygpIHtcbiAgICAgICAgdGhpcy50YXNrVW5jbGFpbWVkLmVtaXQodGhpcy50YXNrSWQpO1xuICAgIH1cblxuICAgIG9uQ2FuY2VsQ2xpY2soKSB7XG4gICAgICAgIHRoaXMuY2FuY2VsQ2xpY2suZW1pdCh0aGlzLnRhc2tJZCk7XG4gICAgfVxuXG4gICAgb25Gb3JtU2F2ZWQoZm9ybTogRm9ybU1vZGVsKSB7XG4gICAgICAgIHRoaXMuZm9ybVNhdmVkLmVtaXQoZm9ybSk7XG4gICAgfVxuXG4gICAgb25Gb3JtQ29tcGxldGVkKGZvcm06IEZvcm1Nb2RlbCkge1xuICAgICAgICB0aGlzLmZvcm1Db21wbGV0ZWQuZW1pdChmb3JtKTtcbiAgICAgICAgdGhpcy50YXNrQ29tcGxldGVkLmVtaXQodGhpcy50YXNrSWQpO1xuICAgIH1cblxuICAgIG9uRXJyb3IoZGF0YTogYW55KSB7XG4gICAgICAgIHRoaXMuZXJyb3IuZW1pdChkYXRhKTtcbiAgICB9XG5cbiAgICBvbkZvcm1Db250ZW50Q2xpY2tlZChjb250ZW50OiBDb250ZW50TGlua01vZGVsKSB7XG4gICAgICAgIHRoaXMuZm9ybUNvbnRlbnRDbGlja2VkLmVtaXQoY29udGVudCk7XG4gICAgfVxuXG4gICAgb25Gb3JtRXhlY3V0ZU91dGNvbWUob3V0Y29tZTogRm9ybU91dGNvbWVFdmVudCkge1xuICAgICAgICB0aGlzLmV4ZWN1dGVPdXRjb21lLmVtaXQob3V0Y29tZSk7XG4gICAgfVxuXG4gICAgc3dpdGNoVG9EaXNwbGF5TW9kZShuZXdEaXNwbGF5TW9kZT86IHN0cmluZykge1xuICAgICAgICB0aGlzLmFkZkNsb3VkRm9ybS5zd2l0Y2hUb0Rpc3BsYXlNb2RlKG5ld0Rpc3BsYXlNb2RlKTtcbiAgICB9XG5cbiAgICBvbkRpc3BsYXlNb2RlT24oZGlzcGxheU1vZGVDb25maWd1cmF0aW9uOiBGb3JtQ2xvdWREaXNwbGF5TW9kZUNvbmZpZ3VyYXRpb24pIHtcbiAgICAgICAgdGhpcy5kaXNwbGF5TW9kZU9uLmVtaXQoZGlzcGxheU1vZGVDb25maWd1cmF0aW9uKTtcbiAgICB9XG5cbiAgICBvbkRpc3BsYXlNb2RlT2ZmKGRpc3BsYXlNb2RlQ29uZmlndXJhdGlvbjogRm9ybUNsb3VkRGlzcGxheU1vZGVDb25maWd1cmF0aW9uKSB7XG4gICAgICAgIHRoaXMuZGlzcGxheU1vZGVPZmYuZW1pdChkaXNwbGF5TW9kZUNvbmZpZ3VyYXRpb24pO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJhZGYtdGFzay1mb3JtLWNsb3VkLWNvbnRhaW5lclwiPlxuICAgIDxhZGYtY2xvdWQtZm9ybVxuICAgICAgICAjYWRmQ2xvdWRGb3JtXG4gICAgICAgIFthcHBOYW1lXT1cImFwcE5hbWVcIlxuICAgICAgICBbYXBwVmVyc2lvbl09XCJ0YXNrRGV0YWlscy5hcHBWZXJzaW9uXCJcbiAgICAgICAgW3Rhc2tJZF09XCJ0YXNrSWRcIlxuICAgICAgICBbc2hvd1RpdGxlXT1cInNob3dUaXRsZVwiXG4gICAgICAgIFtwcm9jZXNzSW5zdGFuY2VJZF09XCJ0YXNrRGV0YWlscy5wcm9jZXNzSW5zdGFuY2VJZFwiXG4gICAgICAgIFtyZWFkT25seV09XCJpc1JlYWRPbmx5KClcIlxuICAgICAgICBbc2hvd1JlZnJlc2hCdXR0b25dPVwic2hvd1JlZnJlc2hCdXR0b25cIlxuICAgICAgICBbc2hvd1ZhbGlkYXRpb25JY29uXT1cInNob3dWYWxpZGF0aW9uSWNvblwiXG4gICAgICAgIFtzaG93Q29tcGxldGVCdXR0b25dPVwiY2FuQ29tcGxldGVUYXNrKClcIlxuICAgICAgICBbc2hvd1NhdmVCdXR0b25dPVwiY2FuQ29tcGxldGVUYXNrKClcIlxuICAgICAgICBbZGlzcGxheU1vZGVDb25maWd1cmF0aW9uc109XCJkaXNwbGF5TW9kZUNvbmZpZ3VyYXRpb25zXCJcbiAgICAgICAgKGZvcm1TYXZlZCk9XCJvbkZvcm1TYXZlZCgkZXZlbnQpXCJcbiAgICAgICAgKGZvcm1Db21wbGV0ZWQpPVwib25Gb3JtQ29tcGxldGVkKCRldmVudClcIlxuICAgICAgICAoZm9ybUVycm9yKT1cIm9uRXJyb3IoJGV2ZW50KVwiXG4gICAgICAgIChlcnJvcik9XCJvbkVycm9yKCRldmVudClcIlxuICAgICAgICAoZm9ybUNvbnRlbnRDbGlja2VkKT1cIm9uRm9ybUNvbnRlbnRDbGlja2VkKCRldmVudClcIlxuICAgICAgICAoZXhlY3V0ZU91dGNvbWUpPVwib25Gb3JtRXhlY3V0ZU91dGNvbWUoJGV2ZW50KVwiXG4gICAgICAgIChkaXNwbGF5TW9kZU9uKT1cIm9uRGlzcGxheU1vZGVPbigkZXZlbnQpXCJcbiAgICAgICAgKGRpc3BsYXlNb2RlT2ZmKT1cIm9uRGlzcGxheU1vZGVPZmYoJGV2ZW50KVwiXG4gICAgPlxuICAgICAgICA8YWRmLWNsb3VkLWZvcm0tY3VzdG9tLW91dGNvbWVzPlxuICAgICAgICAgICAgPGFkZi1jbG91ZC11c2VyLXRhc2stY2xvdWQtYnV0dG9uc1xuICAgICAgICAgICAgICAgIFthcHBOYW1lXT1cImFwcE5hbWVcIlxuICAgICAgICAgICAgICAgIFtjYW5DbGFpbVRhc2tdPVwiY2FuQ2xhaW1UYXNrKClcIlxuICAgICAgICAgICAgICAgIFtjYW5VbmNsYWltVGFza109XCJjYW5VbmNsYWltVGFzaygpXCJcbiAgICAgICAgICAgICAgICBbc2hvd0NhbmNlbEJ1dHRvbl09XCJzaG93Q2FuY2VsQnV0dG9uXCJcbiAgICAgICAgICAgICAgICBbdGFza0lkXT1cInRhc2tJZFwiXG4gICAgICAgICAgICAgICAgKGNhbmNlbENsaWNrKT1cIm9uQ2FuY2VsQ2xpY2soKVwiXG4gICAgICAgICAgICAgICAgKGNsYWltVGFzayk9XCJvbkNsYWltVGFzaygpXCJcbiAgICAgICAgICAgICAgICAodW5jbGFpbVRhc2spPVwib25VbmNsYWltVGFzaygpXCJcbiAgICAgICAgICAgICAgICAoZXJyb3IpPVwib25FcnJvcigkZXZlbnQpXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgIDwvYWRmLWNsb3VkLWZvcm0tY3VzdG9tLW91dGNvbWVzPlxuICAgIDwvYWRmLWNsb3VkLWZvcm0+XG48L2Rpdj5cbiJdfQ==
|
|
199
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1mb3JtLWNsb3VkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9wcm9jZXNzLXNlcnZpY2VzLWNsb3VkL3NyYy9saWIvdGFzay90YXNrLWZvcm0vY29tcG9uZW50cy90YXNrLWZvcm0tY2xvdWQvdGFzay1mb3JtLWNsb3VkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9wcm9jZXNzLXNlcnZpY2VzLWNsb3VkL3NyYy9saWIvdGFzay90YXNrLWZvcm0vY29tcG9uZW50cy90YXNrLWZvcm0tY2xvdWQvdGFzay1mb3JtLWNsb3VkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILE9BQU8sRUFBaUQsb0JBQW9CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN6RyxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUN0RixPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxvRkFBb0YsQ0FBQztBQUNwSSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUN0RyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxvRUFBb0UsQ0FBQztBQUVsSCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUV4RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sOERBQThELENBQUM7QUFDN0csT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sa0VBQWtFLENBQUM7Ozs7QUFV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TixpQkFBaUI7c0JBRGhCLEtBQUs7Z0JBS04sa0JBQWtCO3NCQURqQixLQUFLO2dCQUtOLGdCQUFnQjtzQkFEZixLQUFLO2dCQUtOLGtCQUFrQjtzQkFEakIsS0FBSztnQkFLTixRQUFRO3NCQURQLEtBQUs7Z0JBT04seUJBQXlCO3NCQUR4QixLQUFLO2dCQUtOLFdBQVc7c0JBRFYsS0FBSztnQkFLTixTQUFTO3NCQURSLE1BQU07Z0JBS1AsYUFBYTtzQkFEWixNQUFNO2dCQUtQLGFBQWE7c0JBRFosTUFBTTtnQkFLUCxXQUFXO3NCQURWLE1BQU07Z0JBS1AsYUFBYTtzQkFEWixNQUFNO2dCQUtQLFdBQVc7c0JBRFYsTUFBTTtnQkFLUCxLQUFLO3NCQURKLE1BQU07Z0JBS1Asa0JBQWtCO3NCQURqQixNQUFNO2dCQVFQLGNBQWM7c0JBRGIsTUFBTTtnQkFLUCxhQUFhO3NCQURaLE1BQU07Z0JBS1AsY0FBYztzQkFEYixNQUFNO2dCQUlQLFlBQVk7c0JBRFgsU0FBUzt1QkFBQyxjQUFjLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBDb250ZW50TGlua01vZGVsLCBGb3JtTW9kZWwsIEZvcm1PdXRjb21lRXZlbnQsIEZvcm1SZW5kZXJpbmdTZXJ2aWNlIH0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb3JlJztcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBWaWV3Q2hpbGQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ2xvdWRDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi9mb3JtL2NvbXBvbmVudHMvZm9ybS1jbG91ZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXR0YWNoRmlsZUNsb3VkV2lkZ2V0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vZm9ybS9jb21wb25lbnRzL3dpZGdldHMvYXR0YWNoLWZpbGUvYXR0YWNoLWZpbGUtY2xvdWQtd2lkZ2V0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYXRlQ2xvdWRXaWRnZXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi9mb3JtL2NvbXBvbmVudHMvd2lkZ2V0cy9kYXRlL2RhdGUtY2xvdWQud2lkZ2V0JztcbmltcG9ydCB7IERyb3Bkb3duQ2xvdWRXaWRnZXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi9mb3JtL2NvbXBvbmVudHMvd2lkZ2V0cy9kcm9wZG93bi9kcm9wZG93bi1jbG91ZC53aWRnZXQnO1xuaW1wb3J0IHsgRm9ybUNsb3VkRGlzcGxheU1vZGVDb25maWd1cmF0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvZm9ybS1maWVsZHMuaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBUYXNrQ2xvdWRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdGFzay1jbG91ZC5zZXJ2aWNlJztcbmltcG9ydCB7IFRhc2tEZXRhaWxzQ2xvdWRNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy90YXNrLWRldGFpbHMtY2xvdWQubW9kZWwnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFVzZXJUYXNrQ2xvdWRCdXR0b25zQ29tcG9uZW50IH0gZnJvbSAnLi4vdXNlci10YXNrLWNsb3VkLWJ1dHRvbnMvdXNlci10YXNrLWNsb3VkLWJ1dHRvbnMuY29tcG9uZW50JztcbmltcG9ydCB7IEZvcm1DdXN0b21PdXRjb21lc0NvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uLy4uL2Zvcm0vY29tcG9uZW50cy9mb3JtLWNsb3VkLWN1c3RvbS1vdXRjb21lcy5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FkZi1jbG91ZC10YXNrLWZvcm0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgVXNlclRhc2tDbG91ZEJ1dHRvbnNDb21wb25lbnQsIEZvcm1DdXN0b21PdXRjb21lc0NvbXBvbmVudCwgRm9ybUNsb3VkQ29tcG9uZW50XSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdGFzay1mb3JtLWNsb3VkLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi90YXNrLWZvcm0tY2xvdWQuY29tcG9uZW50LnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIFRhc2tGb3JtQ2xvdWRDb21wb25lbnQge1xuICAgIC8qKiBBcHAgaWQgdG8gZmV0Y2ggY29ycmVzcG9uZGluZyBmb3JtIGFuZCB2YWx1ZXMuICovXG4gICAgQElucHV0KClcbiAgICBhcHBOYW1lOiBzdHJpbmcgPSAnJztcblxuICAgIC8qKkNhbmRpZGF0ZXMgdXNlcnMqL1xuICAgIEBJbnB1dCgpXG4gICAgY2FuZGlkYXRlVXNlcnM6IHN0cmluZ1tdID0gW107XG5cbiAgICAvKipDYW5kaWRhdGVzIGdyb3VwcyAqL1xuICAgIEBJbnB1dCgpXG4gICAgY2FuZGlkYXRlR3JvdXBzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgLyoqIFRhc2sgaWQgdG8gZmV0Y2ggY29ycmVzcG9uZGluZyBmb3JtIGFuZCB2YWx1ZXMuICovXG4gICAgQElucHV0KClcbiAgICB0YXNrSWQ6IHN0cmluZztcblxuICAgIC8qKiBUb2dnbGUgcmVuZGVyaW5nIG9mIHRoZSBmb3JtIHRpdGxlLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2hvd1RpdGxlOiBib29sZWFuID0gdHJ1ZTtcblxuICAgIC8qKiBUb2dnbGUgcmVuZGVyaW5nIG9mIHRoZSBgUmVmcmVzaGAgYnV0dG9uLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2hvd1JlZnJlc2hCdXR0b24gPSBmYWxzZTtcblxuICAgIC8qKiBUb2dnbGUgcmVuZGVyaW5nIG9mIHRoZSBgVmFsaWRhdGlvbmAgaWNvbi4gKi9cbiAgICBASW5wdXQoKVxuICAgIHNob3dWYWxpZGF0aW9uSWNvbiA9IHRydWU7XG5cbiAgICAvKiogVG9nZ2xlIHJlbmRlcmluZyBvZiB0aGUgYENhbmNlbGAgYnV0dG9uLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2hvd0NhbmNlbEJ1dHRvbiA9IHRydWU7XG5cbiAgICAvKiogVG9nZ2xlIHJlbmRlcmluZyBvZiB0aGUgYENvbXBsZXRlYCBidXR0b24uICovXG4gICAgQElucHV0KClcbiAgICBzaG93Q29tcGxldGVCdXR0b24gPSB0cnVlO1xuXG4gICAgLyoqIFRvZ2dsZSByZWFkb25seSBzdGF0ZSBvZiB0aGUgdGFzay4gKi9cbiAgICBASW5wdXQoKVxuICAgIHJlYWRPbmx5ID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYXZhaWxhYmxlIGRpc3BsYXkgY29uZmlndXJhdGlvbnMgZm9yIHRoZSBmb3JtXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBkaXNwbGF5TW9kZUNvbmZpZ3VyYXRpb25zOiBGb3JtQ2xvdWREaXNwbGF5TW9kZUNvbmZpZ3VyYXRpb25bXTtcblxuICAgIC8qKiBUYXNrIGRldGFpbHMuICovXG4gICAgQElucHV0KClcbiAgICB0YXNrRGV0YWlsczogVGFza0RldGFpbHNDbG91ZE1vZGVsO1xuXG4gICAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgZm9ybSBpcyBzYXZlZC4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBmb3JtU2F2ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEZvcm1Nb2RlbD4oKTtcblxuICAgIC8qKiBFbWl0dGVkIHdoZW4gdGhlIGZvcm0gaXMgc3VibWl0dGVkIHdpdGggdGhlIGBDb21wbGV0ZWAgb3V0Y29tZS4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBmb3JtQ29tcGxldGVkID0gbmV3IEV2ZW50RW1pdHRlcjxGb3JtTW9kZWw+KCk7XG5cbiAgICAvKiogRW1pdHRlZCB3aGVuIHRoZSB0YXNrIGlzIGNvbXBsZXRlZC4gKi9cbiAgICBAT3V0cHV0KClcbiAgICB0YXNrQ29tcGxldGVkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgICAvKiogRW1pdHRlZCB3aGVuIHRoZSB0YXNrIGlzIGNsYWltZWQuICovXG4gICAgQE91dHB1dCgpXG4gICAgdGFza0NsYWltZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICAgIC8qKiBFbWl0dGVkIHdoZW4gdGhlIHRhc2sgaXMgdW5jbGFpbWVkLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHRhc2tVbmNsYWltZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICAgIC8qKiBFbWl0dGVkIHdoZW4gdGhlIGNhbmNlbCBidXR0b24gaXMgY2xpY2tlZC4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBjYW5jZWxDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gICAgLyoqIEVtaXR0ZWQgd2hlbiBhbnkgZXJyb3Igb2NjdXJzLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIGVycm9yID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgICAvKiogRW1pdHRlZCB3aGVuIGZvcm0gY29udGVudCBpcyBjbGlja2VkLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIGZvcm1Db250ZW50Q2xpY2tlZDogRXZlbnRFbWl0dGVyPENvbnRlbnRMaW5rTW9kZWw+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgLyoqXG4gICAgICogRW1pdHRlZCB3aGVuIGFueSBvdXRjb21lIGlzIGV4ZWN1dGVkLiBEZWZhdWx0IGJlaGF2aW91ciBjYW4gYmUgcHJldmVudGVkXG4gICAgICogdmlhIGBldmVudC5wcmV2ZW50RGVmYXVsdCgpYC5cbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBleGVjdXRlT3V0Y29tZSA9IG5ldyBFdmVudEVtaXR0ZXI8Rm9ybU91dGNvbWVFdmVudD4oKTtcblxuICAgIC8qKiBFbWl0dGVkIHdoZW4gYSBkaXNwbGF5IG1vZGUgY29uZmlndXJhdGlvbiBpcyB0dXJuZWQgb24uICovXG4gICAgQE91dHB1dCgpXG4gICAgZGlzcGxheU1vZGVPbiA9IG5ldyBFdmVudEVtaXR0ZXI8Rm9ybUNsb3VkRGlzcGxheU1vZGVDb25maWd1cmF0aW9uPigpO1xuXG4gICAgLyoqIEVtaXR0ZWQgd2hlbiBhIGRpc3BsYXkgbW9kZSBjb25maWd1cmF0aW9uIGlzIHR1cm5lZCBvZmYuICovXG4gICAgQE91dHB1dCgpXG4gICAgZGlzcGxheU1vZGVPZmYgPSBuZXcgRXZlbnRFbWl0dGVyPEZvcm1DbG91ZERpc3BsYXlNb2RlQ29uZmlndXJhdGlvbj4oKTtcblxuICAgIEBWaWV3Q2hpbGQoJ2FkZkNsb3VkRm9ybScsIHsgc3RhdGljOiBmYWxzZSB9KVxuICAgIGFkZkNsb3VkRm9ybTogRm9ybUNsb3VkQ29tcG9uZW50O1xuXG4gICAgbG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSB0YXNrQ2xvdWRTZXJ2aWNlOiBUYXNrQ2xvdWRTZXJ2aWNlLCBwcml2YXRlIGZvcm1SZW5kZXJpbmdTZXJ2aWNlOiBGb3JtUmVuZGVyaW5nU2VydmljZSkge1xuICAgICAgICB0aGlzLmZvcm1SZW5kZXJpbmdTZXJ2aWNlLnNldENvbXBvbmVudFR5cGVSZXNvbHZlcigndXBsb2FkJywgKCkgPT4gQXR0YWNoRmlsZUNsb3VkV2lkZ2V0Q29tcG9uZW50LCB0cnVlKTtcbiAgICAgICAgdGhpcy5mb3JtUmVuZGVyaW5nU2VydmljZS5zZXRDb21wb25lbnRUeXBlUmVzb2x2ZXIoJ2Ryb3Bkb3duJywgKCkgPT4gRHJvcGRvd25DbG91ZFdpZGdldENvbXBvbmVudCwgdHJ1ZSk7XG4gICAgICAgIHRoaXMuZm9ybVJlbmRlcmluZ1NlcnZpY2Uuc2V0Q29tcG9uZW50VHlwZVJlc29sdmVyKCdkYXRlJywgKCkgPT4gRGF0ZUNsb3VkV2lkZ2V0Q29tcG9uZW50LCB0cnVlKTtcbiAgICB9XG5cbiAgICBoYXNGb3JtKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy50YXNrRGV0YWlscyAmJiAhIXRoaXMudGFza0RldGFpbHMuZm9ybUtleTtcbiAgICB9XG5cbiAgICBjYW5Db21wbGV0ZVRhc2soKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNob3dDb21wbGV0ZUJ1dHRvbiAmJiAhdGhpcy5yZWFkT25seSAmJiB0aGlzLnRhc2tDbG91ZFNlcnZpY2UuY2FuQ29tcGxldGVUYXNrKHRoaXMudGFza0RldGFpbHMpO1xuICAgIH1cblxuICAgIGNhbkNsYWltVGFzaygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLnJlYWRPbmx5ICYmIHRoaXMudGFza0Nsb3VkU2VydmljZS5jYW5DbGFpbVRhc2sodGhpcy50YXNrRGV0YWlscykgJiYgdGhpcy5oYXNDYW5kaWRhdGVVc2Vyc09yR3JvdXBzKCk7XG4gICAgfVxuXG4gICAgY2FuVW5jbGFpbVRhc2soKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhdGhpcy5yZWFkT25seSAmJiB0aGlzLnRhc2tDbG91ZFNlcnZpY2UuY2FuVW5jbGFpbVRhc2sodGhpcy50YXNrRGV0YWlscykgJiYgdGhpcy5oYXNDYW5kaWRhdGVVc2Vyc09yR3JvdXBzKCk7XG4gICAgfVxuXG4gICAgaGFzQ2FuZGlkYXRlVXNlcnMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNhbmRpZGF0ZVVzZXJzLmxlbmd0aCAhPT0gMDtcbiAgICB9XG5cbiAgICBoYXNDYW5kaWRhdGVHcm91cHMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNhbmRpZGF0ZUdyb3Vwcy5sZW5ndGggIT09IDA7XG4gICAgfVxuXG4gICAgaGFzQ2FuZGlkYXRlVXNlcnNPckdyb3VwcygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaGFzQ2FuZGlkYXRlVXNlcnMoKSB8fCB0aGlzLmhhc0NhbmRpZGF0ZUdyb3VwcygpO1xuICAgIH1cblxuICAgIGlzUmVhZE9ubHkoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlYWRPbmx5IHx8ICF0aGlzLnRhc2tDbG91ZFNlcnZpY2UuY2FuQ29tcGxldGVUYXNrKHRoaXMudGFza0RldGFpbHMpO1xuICAgIH1cblxuICAgIG9uQ29tcGxldGVUYXNrKCkge1xuICAgICAgICB0aGlzLnRhc2tDb21wbGV0ZWQuZW1pdCh0aGlzLnRhc2tJZCk7XG4gICAgfVxuXG4gICAgb25DbGFpbVRhc2soKSB7XG4gICAgICAgIHRoaXMudGFza0NsYWltZWQuZW1pdCh0aGlzLnRhc2tJZCk7XG4gICAgfVxuXG4gICAgb25VbmNsYWltVGFzaygpIHtcbiAgICAgICAgdGhpcy50YXNrVW5jbGFpbWVkLmVtaXQodGhpcy50YXNrSWQpO1xuICAgIH1cblxuICAgIG9uQ2FuY2VsQ2xpY2soKSB7XG4gICAgICAgIHRoaXMuY2FuY2VsQ2xpY2suZW1pdCh0aGlzLnRhc2tJZCk7XG4gICAgfVxuXG4gICAgb25Gb3JtU2F2ZWQoZm9ybTogRm9ybU1vZGVsKSB7XG4gICAgICAgIHRoaXMuZm9ybVNhdmVkLmVtaXQoZm9ybSk7XG4gICAgfVxuXG4gICAgb25Gb3JtQ29tcGxldGVkKGZvcm06IEZvcm1Nb2RlbCkge1xuICAgICAgICB0aGlzLmZvcm1Db21wbGV0ZWQuZW1pdChmb3JtKTtcbiAgICAgICAgdGhpcy50YXNrQ29tcGxldGVkLmVtaXQodGhpcy50YXNrSWQpO1xuICAgIH1cblxuICAgIG9uRXJyb3IoZGF0YTogYW55KSB7XG4gICAgICAgIHRoaXMuZXJyb3IuZW1pdChkYXRhKTtcbiAgICB9XG5cbiAgICBvbkZvcm1Db250ZW50Q2xpY2tlZChjb250ZW50OiBDb250ZW50TGlua01vZGVsKSB7XG4gICAgICAgIHRoaXMuZm9ybUNvbnRlbnRDbGlja2VkLmVtaXQoY29udGVudCk7XG4gICAgfVxuXG4gICAgb25Gb3JtRXhlY3V0ZU91dGNvbWUob3V0Y29tZTogRm9ybU91dGNvbWVFdmVudCkge1xuICAgICAgICB0aGlzLmV4ZWN1dGVPdXRjb21lLmVtaXQob3V0Y29tZSk7XG4gICAgfVxuXG4gICAgc3dpdGNoVG9EaXNwbGF5TW9kZShuZXdEaXNwbGF5TW9kZT86IHN0cmluZykge1xuICAgICAgICB0aGlzLmFkZkNsb3VkRm9ybS5zd2l0Y2hUb0Rpc3BsYXlNb2RlKG5ld0Rpc3BsYXlNb2RlKTtcbiAgICB9XG5cbiAgICBvbkRpc3BsYXlNb2RlT24oZGlzcGxheU1vZGVDb25maWd1cmF0aW9uOiBGb3JtQ2xvdWREaXNwbGF5TW9kZUNvbmZpZ3VyYXRpb24pIHtcbiAgICAgICAgdGhpcy5kaXNwbGF5TW9kZU9uLmVtaXQoZGlzcGxheU1vZGVDb25maWd1cmF0aW9uKTtcbiAgICB9XG5cbiAgICBvbkRpc3BsYXlNb2RlT2ZmKGRpc3BsYXlNb2RlQ29uZmlndXJhdGlvbjogRm9ybUNsb3VkRGlzcGxheU1vZGVDb25maWd1cmF0aW9uKSB7XG4gICAgICAgIHRoaXMuZGlzcGxheU1vZGVPZmYuZW1pdChkaXNwbGF5TW9kZUNvbmZpZ3VyYXRpb24pO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJhZGYtdGFzay1mb3JtLWNsb3VkLWNvbnRhaW5lclwiPlxuICAgIDxhZGYtY2xvdWQtZm9ybVxuICAgICAgICAjYWRmQ2xvdWRGb3JtXG4gICAgICAgIFthcHBOYW1lXT1cImFwcE5hbWVcIlxuICAgICAgICBbYXBwVmVyc2lvbl09XCJ0YXNrRGV0YWlscy5hcHBWZXJzaW9uXCJcbiAgICAgICAgW3Rhc2tJZF09XCJ0YXNrSWRcIlxuICAgICAgICBbc2hvd1RpdGxlXT1cInNob3dUaXRsZVwiXG4gICAgICAgIFtwcm9jZXNzSW5zdGFuY2VJZF09XCJ0YXNrRGV0YWlscy5wcm9jZXNzSW5zdGFuY2VJZFwiXG4gICAgICAgIFtyZWFkT25seV09XCJpc1JlYWRPbmx5KClcIlxuICAgICAgICBbc2hvd1JlZnJlc2hCdXR0b25dPVwic2hvd1JlZnJlc2hCdXR0b25cIlxuICAgICAgICBbc2hvd1ZhbGlkYXRpb25JY29uXT1cInNob3dWYWxpZGF0aW9uSWNvblwiXG4gICAgICAgIFtzaG93Q29tcGxldGVCdXR0b25dPVwiY2FuQ29tcGxldGVUYXNrKClcIlxuICAgICAgICBbc2hvd1NhdmVCdXR0b25dPVwiY2FuQ29tcGxldGVUYXNrKClcIlxuICAgICAgICBbZGlzcGxheU1vZGVDb25maWd1cmF0aW9uc109XCJkaXNwbGF5TW9kZUNvbmZpZ3VyYXRpb25zXCJcbiAgICAgICAgKGZvcm1TYXZlZCk9XCJvbkZvcm1TYXZlZCgkZXZlbnQpXCJcbiAgICAgICAgKGZvcm1Db21wbGV0ZWQpPVwib25Gb3JtQ29tcGxldGVkKCRldmVudClcIlxuICAgICAgICAoZm9ybUVycm9yKT1cIm9uRXJyb3IoJGV2ZW50KVwiXG4gICAgICAgIChlcnJvcik9XCJvbkVycm9yKCRldmVudClcIlxuICAgICAgICAoZm9ybUNvbnRlbnRDbGlja2VkKT1cIm9uRm9ybUNvbnRlbnRDbGlja2VkKCRldmVudClcIlxuICAgICAgICAoZXhlY3V0ZU91dGNvbWUpPVwib25Gb3JtRXhlY3V0ZU91dGNvbWUoJGV2ZW50KVwiXG4gICAgICAgIChkaXNwbGF5TW9kZU9uKT1cIm9uRGlzcGxheU1vZGVPbigkZXZlbnQpXCJcbiAgICAgICAgKGRpc3BsYXlNb2RlT2ZmKT1cIm9uRGlzcGxheU1vZGVPZmYoJGV2ZW50KVwiXG4gICAgPlxuICAgICAgICA8YWRmLWNsb3VkLWZvcm0tY3VzdG9tLW91dGNvbWVzPlxuICAgICAgICAgICAgPGFkZi1jbG91ZC11c2VyLXRhc2stY2xvdWQtYnV0dG9uc1xuICAgICAgICAgICAgICAgIFthcHBOYW1lXT1cImFwcE5hbWVcIlxuICAgICAgICAgICAgICAgIFtjYW5DbGFpbVRhc2tdPVwiY2FuQ2xhaW1UYXNrKClcIlxuICAgICAgICAgICAgICAgIFtjYW5VbmNsYWltVGFza109XCJjYW5VbmNsYWltVGFzaygpXCJcbiAgICAgICAgICAgICAgICBbc2hvd0NhbmNlbEJ1dHRvbl09XCJzaG93Q2FuY2VsQnV0dG9uXCJcbiAgICAgICAgICAgICAgICBbdGFza0lkXT1cInRhc2tJZFwiXG4gICAgICAgICAgICAgICAgKGNhbmNlbENsaWNrKT1cIm9uQ2FuY2VsQ2xpY2soKVwiXG4gICAgICAgICAgICAgICAgKGNsYWltVGFzayk9XCJvbkNsYWltVGFzaygpXCJcbiAgICAgICAgICAgICAgICAodW5jbGFpbVRhc2spPVwib25VbmNsYWltVGFzaygpXCJcbiAgICAgICAgICAgICAgICAoZXJyb3IpPVwib25FcnJvcigkZXZlbnQpXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgIDwvYWRmLWNsb3VkLWZvcm0tY3VzdG9tLW91dGNvbWVzPlxuICAgIDwvYWRmLWNsb3VkLWZvcm0+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -64,10 +64,10 @@ export class CompleteTaskDirective {
|
|
|
64
64
|
this.error.emit(error);
|
|
65
65
|
}
|
|
66
66
|
}
|
|
67
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
68
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
67
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CompleteTaskDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.TaskCloudService }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
68
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: CompleteTaskDirective, isStandalone: true, selector: "[adf-cloud-complete-task]", inputs: { taskId: "taskId", appName: "appName" }, outputs: { success: "success", error: "error" }, host: { listeners: { "click": "onClick()" } }, ngImport: i0 }); }
|
|
69
69
|
}
|
|
70
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
70
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CompleteTaskDirective, decorators: [{
|
|
71
71
|
type: Directive,
|
|
72
72
|
args: [{
|
|
73
73
|
// eslint-disable-next-line @angular-eslint/directive-selector
|
|
@@ -86,4 +86,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImpor
|
|
|
86
86
|
type: HostListener,
|
|
87
87
|
args: ['click']
|
|
88
88
|
}] } });
|
|
89
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
89
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGxldGUtdGFzay5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvcHJvY2Vzcy1zZXJ2aWNlcy1jbG91ZC9zcmMvbGliL3Rhc2svdGFzay1mb3JtL2NvbXBvbmVudHMvdXNlci10YXNrLWNsb3VkL2NvbXBsZXRlLXRhc2svY29tcGxldGUtdGFzay5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQVUsVUFBVSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwSCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQzs7O0FBTzNFLE1BQU0sT0FBTyxxQkFBcUI7SUFtQjlCLFlBQTZCLEVBQWMsRUFBbUIsUUFBbUIsRUFBbUIsZUFBaUM7UUFBeEcsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUFtQixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQW1CLG9CQUFlLEdBQWYsZUFBZSxDQUFrQjtRQWRySSw4Q0FBOEM7UUFFOUMsWUFBTyxHQUFXLEVBQUUsQ0FBQztRQUVyQiwwQ0FBMEM7UUFFMUMsWUFBTyxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO1FBRXJELGlEQUFpRDtRQUVqRCxVQUFLLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7UUFFbkQsa0JBQWEsR0FBYSxFQUFFLENBQUM7SUFFMkcsQ0FBQztJQUV6SSxRQUFRO1FBQ0osSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxjQUFjO1FBQ1YsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3RDLENBQUM7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdkMsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM1QixNQUFNLElBQUksS0FBSyxDQUFDLGFBQWEsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzlFLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNQLE9BQU8sSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELFVBQVU7UUFDTixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssRUFBRSxDQUFDO0lBQ2pELENBQUM7SUFHRCxLQUFLLENBQUMsT0FBTztRQUNULElBQUksQ0FBQztZQUNELElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUN0RSxNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQzlGLElBQUksTUFBTSxFQUFFLENBQUM7Z0JBQ1QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDOUIsQ0FBQztRQUNMLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsVUFBVSxDQUFDLENBQUM7WUFDakUsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0IsQ0FBQztJQUNMLENBQUM7K0dBekRRLHFCQUFxQjttR0FBckIscUJBQXFCOzs0RkFBckIscUJBQXFCO2tCQUxqQyxTQUFTO21CQUFDO29CQUNQLDhEQUE4RDtvQkFDOUQsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsVUFBVSxFQUFFLElBQUk7aUJBQ25CO3NJQUlHLE1BQU07c0JBREwsS0FBSztnQkFLTixPQUFPO3NCQUROLEtBQUs7Z0JBS04sT0FBTztzQkFETixNQUFNO2dCQUtQLEtBQUs7c0JBREosTUFBTTtnQkFnQ0QsT0FBTztzQkFEWixZQUFZO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIEhvc3RMaXN0ZW5lciwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIE9uSW5pdCwgRWxlbWVudFJlZiwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUYXNrQ2xvdWRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvdGFzay1jbG91ZC5zZXJ2aWNlJztcblxuQERpcmVjdGl2ZSh7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogJ1thZGYtY2xvdWQtY29tcGxldGUtdGFza10nLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgQ29tcGxldGVUYXNrRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgICAvKiogKFJlcXVpcmVkKSBUaGUgaWQgb2YgdGhlIHRhc2suICovXG4gICAgQElucHV0KClcbiAgICB0YXNrSWQ6IHN0cmluZztcblxuICAgIC8qKiAoUmVxdWlyZWQpIFRoZSBuYW1lIG9mIHRoZSBhcHBsaWNhdGlvbi4gKi9cbiAgICBASW5wdXQoKVxuICAgIGFwcE5hbWU6IHN0cmluZyA9ICcnO1xuXG4gICAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgdGFzayBpcyBjb21wbGV0ZWQuICovXG4gICAgQE91dHB1dCgpXG4gICAgc3VjY2VzczogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAgIC8qKiBFbWl0dGVkIHdoZW4gdGhlIHRhc2sgY2Fubm90IGJlIGNvbXBsZXRlZC4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBlcnJvcjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAgIGludmFsaWRQYXJhbXM6IHN0cmluZ1tdID0gW107XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGVsOiBFbGVtZW50UmVmLCBwcml2YXRlIHJlYWRvbmx5IHJlbmRlcmVyOiBSZW5kZXJlcjIsIHByaXZhdGUgcmVhZG9ubHkgdGFza0xpc3RTZXJ2aWNlOiBUYXNrQ2xvdWRTZXJ2aWNlKSB7fVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMudmFsaWRhdGVJbnB1dHMoKTtcbiAgICB9XG5cbiAgICB2YWxpZGF0ZUlucHV0cygpIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzVGFza1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIHRoaXMuaW52YWxpZFBhcmFtcy5wdXNoKCd0YXNrSWQnKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMuaXNBcHBWYWxpZCgpKSB7XG4gICAgICAgICAgICB0aGlzLmludmFsaWRQYXJhbXMucHVzaCgnYXBwTmFtZScpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmludmFsaWRQYXJhbXMubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEF0dHJpYnV0ZSAke3RoaXMuaW52YWxpZFBhcmFtcy5qb2luKCcsICcpfSBpcyByZXF1aXJlZGApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaXNUYXNrVmFsaWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnRhc2tJZCAmJiB0aGlzLnRhc2tJZC5sZW5ndGggPiAwO1xuICAgIH1cblxuICAgIGlzQXBwVmFsaWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuYXBwTmFtZSB8fCB0aGlzLmFwcE5hbWUgPT09ICcnO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJylcbiAgICBhc3luYyBvbkNsaWNrKCkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy5lbC5uYXRpdmVFbGVtZW50LCAnZGlzYWJsZWQnLCAndHJ1ZScpO1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy50YXNrTGlzdFNlcnZpY2UuY29tcGxldGVUYXNrKHRoaXMuYXBwTmFtZSwgdGhpcy50YXNrSWQpLnRvUHJvbWlzZSgpO1xuICAgICAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc3VjY2Vzcy5lbWl0KHJlc3VsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUF0dHJpYnV0ZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsICdkaXNhYmxlZCcpO1xuICAgICAgICAgICAgdGhpcy5lcnJvci5lbWl0KGVycm9yKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
|