@hmcts/ccd-case-ui-toolkit 6.14.4-eui-4157-b → 6.14.4-hotfix-110
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/bundles/hmcts-ccd-case-ui-toolkit.umd.js +455 -395
- package/bundles/hmcts-ccd-case-ui-toolkit.umd.js.map +1 -1
- package/bundles/hmcts-ccd-case-ui-toolkit.umd.min.js +1 -1
- package/bundles/hmcts-ccd-case-ui-toolkit.umd.min.js.map +1 -1
- package/esm2015/lib/app.config.js +1 -1
- package/esm2015/lib/components/form/date-input/date-input.component.js +8 -8
- package/esm2015/lib/components/header/header-bar/header-bar.component.js +3 -2
- package/esm2015/lib/shared/commons/case-edit-data/case-edit-data.module.js +1 -1
- package/esm2015/lib/shared/commons/case-edit-data/case-edit-validation.model.js +1 -1
- package/esm2015/lib/shared/components/activity/activity.component.js +5 -5
- package/esm2015/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.js +2 -2
- package/esm2015/lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.js +2 -2
- package/esm2015/lib/shared/components/case-editor/case-editor.module.js +1 -1
- package/esm2015/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-reassigned/case-event-completion-task-reassigned.component.js +3 -3
- package/esm2015/lib/shared/components/case-editor/services/cases.service.js +22 -11
- package/esm2015/lib/shared/components/case-editor/services/page-validation.service.js +2 -2
- package/esm2015/lib/shared/components/case-editor/services/wizard-page-field-to-case-field.mapper.js +2 -2
- package/esm2015/lib/shared/components/case-editor/services/work-allocation.service.js +1 -1
- package/esm2015/lib/shared/components/case-viewer/case-challenged-access-request/case-challenged-access-request.component.js +5 -5
- package/esm2015/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.js +1 -1
- package/esm2015/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.js +33 -24
- package/esm2015/lib/shared/components/case-viewer/case-specific-access-request/case-specific-access-request.component.js +4 -4
- package/esm2015/lib/shared/components/case-viewer/case-viewer.component.js +5 -5
- package/esm2015/lib/shared/components/case-viewer/printer/pipes/print-url.pipe.js +3 -3
- package/esm2015/lib/shared/components/case-viewer/services/case.resolver.js +2 -2
- package/esm2015/lib/shared/components/event-start/event-guard/event-start.guard.js +2 -2
- package/esm2015/lib/shared/components/palette/address/address-option.model.js +7 -4
- package/esm2015/lib/shared/components/palette/address/write-address-field.component.js +4 -4
- package/esm2015/lib/shared/components/palette/case-flag/components/case-flag-table/case-flag-table.component.js +1 -1
- package/esm2015/lib/shared/components/palette/case-flag/components/select-flag-location/select-flag-location.component.js +2 -2
- package/esm2015/lib/shared/components/palette/case-flag/enums/index.js +1 -1
- package/esm2015/lib/shared/components/palette/collection/collection-create-checker.service.js +5 -5
- package/esm2015/lib/shared/components/palette/collection/write-collection-field.component.js +5 -5
- package/esm2015/lib/shared/components/palette/complex/read-complex-field-collection-table.component.js +3 -3
- package/esm2015/lib/shared/components/palette/linked-cases/components/link-cases/link-cases.component.js +1 -1
- package/esm2015/lib/shared/components/palette/linked-cases/components/linked-cases-table/linked-cases-from-table.component.js +2 -2
- package/esm2015/lib/shared/components/palette/linked-cases/components/linked-cases-table/linked-cases-to-table.component.js +1 -1
- package/esm2015/lib/shared/components/palette/linked-cases/domain/linked-cases.model.js +1 -1
- package/esm2015/lib/shared/components/palette/linked-cases/read-linked-cases-field.component.js +2 -2
- package/esm2015/lib/shared/components/palette/linked-cases/services/linked-cases.service.js +3 -2
- package/esm2015/lib/shared/components/palette/linked-cases/write-linked-cases-field.component.js +4 -3
- package/esm2015/lib/shared/components/palette/order-summary/fee.model.js +1 -1
- package/esm2015/lib/shared/components/palette/order-summary/order-summary.model.js +1 -1
- package/esm2015/lib/shared/components/palette/text-area/write-text-area-field.component.js +2 -2
- package/esm2015/lib/shared/components/palette/utils/date.pipe.js +4 -4
- package/esm2015/lib/shared/components/search-filters/search-filters.component.js +2 -2
- package/esm2015/lib/shared/components/workbasket-filters/workbasket-filters.component.js +3 -3
- package/esm2015/lib/shared/directives/conditional-show/domain/conditional-show.model.js +3 -3
- package/esm2015/lib/shared/directives/conditional-show/services/condition-parser.service.js +7 -3
- package/esm2015/lib/shared/domain/case-view/case-view.model.js +1 -1
- package/esm2015/lib/shared/domain/case-view/role-assignment-response.model.js +1 -1
- package/esm2015/lib/shared/domain/case-view/role-request.model.js +1 -1
- package/esm2015/lib/shared/domain/organisation/organisation-converter.js +8 -8
- package/esm2015/lib/shared/domain/user/user-info.model.js +1 -1
- package/esm2015/lib/shared/fixture/case-field-builder.js +13 -13
- package/esm2015/lib/shared/fixture/shared.test.fixture.js +27 -27
- package/esm2015/lib/shared/pipes/complex/{ccd-page-fields.pipe.js → cdd-page-fields.pipe.js} +3 -3
- package/esm2015/lib/shared/pipes/complex/index.js +2 -2
- package/esm2015/lib/shared/services/activity/activity.polling.service.js +2 -2
- package/esm2015/lib/shared/services/activity/activity.service.js +18 -9
- package/esm2015/lib/shared/services/addresses/address-parser.js +5 -5
- package/esm2015/lib/shared/services/case-fields/format-translator.service.js +2 -2
- package/esm2015/lib/shared/services/case-flag/case-flag-refdata.service.js +2 -2
- package/esm2015/lib/shared/services/common-data-service/common-data-service.js +2 -2
- package/esm2015/lib/shared/services/definitions/definitions.service.js +8 -3
- package/esm2015/lib/shared/services/fields/fields.purger.js +15 -15
- package/esm2015/lib/shared/services/fields/fields.utils.js +4 -4
- package/esm2015/lib/shared/services/form/form-value.service.js +2 -1
- package/esm2015/lib/shared/services/loading/loading.service.js +7 -2
- package/esm2015/lib/shared/services/search/search.service.js +10 -5
- package/esm2015/lib/shared/services/search-result/sorting/search-result-view-item-comparator-factory.js +5 -5
- package/esm2015/lib/shared/services/window/window.service.js +1 -1
- package/fesm2015/hmcts-ccd-case-ui-toolkit.js +435 -383
- package/fesm2015/hmcts-ccd-case-ui-toolkit.js.map +1 -1
- package/lib/app.config.d.ts.map +1 -1
- package/lib/components/header/header-bar/header-bar.component.d.ts.map +1 -1
- package/lib/shared/commons/case-edit-data/case-edit-data.module.d.ts.map +1 -1
- package/lib/shared/commons/case-edit-data/case-edit-validation.model.d.ts.map +1 -1
- package/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.d.ts.map +1 -1
- package/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-reassigned/case-event-completion-task-reassigned.component.d.ts +2 -2
- package/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-reassigned/case-event-completion-task-reassigned.component.d.ts.map +1 -1
- package/lib/shared/components/case-editor/services/cases.service.d.ts +3 -1
- package/lib/shared/components/case-editor/services/cases.service.d.ts.map +1 -1
- package/lib/shared/components/case-editor/services/wizard-page-field-to-case-field.mapper.d.ts.map +1 -1
- package/lib/shared/components/case-editor/services/work-allocation.service.d.ts.map +1 -1
- package/lib/shared/components/case-viewer/case-challenged-access-request/case-challenged-access-request.component.d.ts.map +1 -1
- package/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.d.ts +6 -2
- package/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.d.ts.map +1 -1
- package/lib/shared/components/case-viewer/case-viewer.component.d.ts.map +1 -1
- package/lib/shared/components/case-viewer/printer/pipes/print-url.pipe.d.ts.map +1 -1
- package/lib/shared/components/case-viewer/services/case.resolver.d.ts.map +1 -1
- package/lib/shared/components/event-start/event-guard/event-start.guard.d.ts +1 -1
- package/lib/shared/components/event-start/event-guard/event-start.guard.d.ts.map +1 -1
- package/lib/shared/components/palette/address/address-option.model.d.ts.map +1 -1
- package/lib/shared/components/palette/address/write-address-field.component.d.ts.map +1 -1
- package/lib/shared/components/palette/case-flag/components/select-flag-location/select-flag-location.component.d.ts.map +1 -1
- package/lib/shared/components/palette/case-flag/enums/index.d.ts.map +1 -1
- package/lib/shared/components/palette/collection/collection-create-checker.service.d.ts.map +1 -1
- package/lib/shared/components/palette/complex/read-complex-field-collection-table.component.d.ts +1 -1
- package/lib/shared/components/palette/complex/read-complex-field-collection-table.component.d.ts.map +1 -1
- package/lib/shared/components/palette/linked-cases/components/linked-cases-table/linked-cases-from-table.component.d.ts +4 -4
- package/lib/shared/components/palette/linked-cases/components/linked-cases-table/linked-cases-from-table.component.d.ts.map +1 -1
- package/lib/shared/components/palette/linked-cases/domain/linked-cases.model.d.ts.map +1 -1
- package/lib/shared/components/palette/linked-cases/read-linked-cases-field.component.d.ts.map +1 -1
- package/lib/shared/components/palette/linked-cases/services/linked-cases.service.d.ts.map +1 -1
- package/lib/shared/components/palette/linked-cases/write-linked-cases-field.component.d.ts.map +1 -1
- package/lib/shared/components/palette/order-summary/fee.model.d.ts.map +1 -1
- package/lib/shared/components/palette/order-summary/order-summary.model.d.ts.map +1 -1
- package/lib/shared/components/palette/text-area/write-text-area-field.component.d.ts.map +1 -1
- package/lib/shared/components/palette/utils/date.pipe.d.ts.map +1 -1
- package/lib/shared/components/workbasket-filters/workbasket-filters.component.d.ts.map +1 -1
- package/lib/shared/directives/conditional-show/domain/conditional-show.model.d.ts.map +1 -1
- package/lib/shared/directives/conditional-show/services/condition-parser.service.d.ts.map +1 -1
- package/lib/shared/domain/case-view/case-view.model.d.ts.map +1 -1
- package/lib/shared/domain/case-view/role-assignment-response.model.d.ts +2 -1
- package/lib/shared/domain/case-view/role-assignment-response.model.d.ts.map +1 -1
- package/lib/shared/domain/case-view/role-request.model.d.ts.map +1 -1
- package/lib/shared/domain/organisation/organisation-converter.d.ts.map +1 -1
- package/lib/shared/domain/user/user-info.model.d.ts.map +1 -1
- package/lib/shared/fixture/case-field-builder.d.ts +6 -6
- package/lib/shared/fixture/case-field-builder.d.ts.map +1 -1
- package/lib/shared/fixture/shared.test.fixture.d.ts +6 -6
- package/lib/shared/fixture/shared.test.fixture.d.ts.map +1 -1
- package/lib/shared/pipes/complex/{ccd-page-fields.pipe.d.ts → cdd-page-fields.pipe.d.ts} +1 -1
- package/lib/shared/pipes/complex/cdd-page-fields.pipe.d.ts.map +1 -0
- package/lib/shared/pipes/complex/index.d.ts +1 -1
- package/lib/shared/pipes/pipes.module.d.ts +1 -1
- package/lib/shared/services/activity/activity.polling.service.d.ts.map +1 -1
- package/lib/shared/services/activity/activity.service.d.ts.map +1 -1
- package/lib/shared/services/addresses/address-parser.d.ts.map +1 -1
- package/lib/shared/services/common-data-service/common-data-service.d.ts.map +1 -1
- package/lib/shared/services/definitions/definitions.service.d.ts.map +1 -1
- package/lib/shared/services/fields/fields.purger.d.ts.map +1 -1
- package/lib/shared/services/fields/fields.utils.d.ts +1 -0
- package/lib/shared/services/fields/fields.utils.d.ts.map +1 -1
- package/lib/shared/services/loading/loading.service.d.ts +4 -1
- package/lib/shared/services/loading/loading.service.d.ts.map +1 -1
- package/lib/shared/services/search/search.service.d.ts +2 -0
- package/lib/shared/services/search/search.service.d.ts.map +1 -1
- package/lib/shared/services/search-result/sorting/search-result-view-item-comparator-factory.d.ts.map +1 -1
- package/lib/shared/services/window/window.service.d.ts.map +1 -1
- package/package.json +2 -2
- package/lib/shared/pipes/complex/ccd-page-fields.pipe.d.ts.map +0 -1
|
@@ -11,4 +11,4 @@ export * from './select-flag-type-error-message.enum';
|
|
|
11
11
|
export * from './write-case-flag-field.enum';
|
|
12
12
|
export * from './update-flag-error-message.enum';
|
|
13
13
|
export * from './update-flag-step.enum';
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvcGFsZXR0ZS9jYXNlLWZsYWcvZW51bXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsa0RBQWtELENBQUM7QUFDakUsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyx5QkFBeUIsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYWRkLWNvbW1lbnRzLWVycm9yLW1lc3NhZ2UuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2FkZC1jb21tZW50cy1zdGVwLmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9jYXNlLWZsYWctc3RhdHVzLmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9jYXNlLWZsYWctc3VtbWFyeS1saXN0LWRpc3BsYXktbW9kZS5lbnVtJztcbmV4cG9ydCAqIGZyb20gJy4vY2FzZS1mbGFnLXdpemFyZC1zdGVwLXRpdGxlLmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9zZWFyY2gtbGFuZ3VhZ2UtaW50ZXJwcmV0ZXItZXJyb3ItbWVzc2FnZS5lbnVtJztcbmV4cG9ydCAqIGZyb20gJy4vc2VhcmNoLWxhbmd1YWdlLWludGVycHJldGVyLXN0ZXAuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL3NlbGVjdC1mbGFnLWVycm9yLW1lc3NhZ2UuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL3NlbGVjdC1mbGFnLWxvY2F0aW9uLWVycm9yLW1lc3NhZ2UuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL3NlbGVjdC1mbGFnLXR5cGUtZXJyb3ItbWVzc2FnZS5lbnVtJztcbmV4cG9ydCAqIGZyb20gJy4vd3JpdGUtY2FzZS1mbGFnLWZpZWxkLmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi91cGRhdGUtZmxhZy1lcnJvci1tZXNzYWdlLmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi91cGRhdGUtZmxhZy1zdGVwLmVudW0nXG4iXX0=
|
package/esm2015/lib/shared/components/palette/collection/collection-create-checker.service.js
CHANGED
|
@@ -24,11 +24,11 @@ export class CollectionCreateCheckerService {
|
|
|
24
24
|
}
|
|
25
25
|
return childrenCaseFields;
|
|
26
26
|
}
|
|
27
|
-
isComplex(
|
|
28
|
-
return
|
|
27
|
+
isComplex(case_field) {
|
|
28
|
+
return case_field.field_type.type === 'Complex';
|
|
29
29
|
}
|
|
30
|
-
isCollection(
|
|
31
|
-
return
|
|
30
|
+
isCollection(case_field) {
|
|
31
|
+
return case_field.field_type.type === 'Collection';
|
|
32
32
|
}
|
|
33
33
|
hasCreateAccess(caseField, role) {
|
|
34
34
|
return !!caseField.acls.find(acl => acl.role === role && acl.create === true);
|
|
@@ -39,4 +39,4 @@ CollectionCreateCheckerService.ɵprov = i0.ɵɵdefineInjectable({ token: Collect
|
|
|
39
39
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CollectionCreateCheckerService, [{
|
|
40
40
|
type: Injectable
|
|
41
41
|
}], null, null); })();
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbi1jcmVhdGUtY2hlY2tlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvY29sbGVjdGlvbi9jb2xsZWN0aW9uLWNyZWF0ZS1jaGVja2VyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLM0MsTUFBTSxPQUFPLDhCQUE4QjtJQUVsQyw0QkFBNEIsQ0FBQyxTQUFvQixFQUFFLE9BQWdCO1FBQ3hFLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUV0RCxJQUFJLFFBQVEsSUFBSSxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNuQyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUN2QixJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFBRTtvQkFDN0UsS0FBSyxDQUFDLGVBQWUsR0FBRyxTQUFTLENBQUMsZUFBZSxDQUFDO2lCQUNuRDtnQkFDRCxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtvQkFDckQsSUFBSSxDQUFDLDRCQUE0QixDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztpQkFDbkQ7WUFDSCxDQUFDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztJQUVPLG9CQUFvQixDQUFDLFNBQW9CO1FBQy9DLElBQUksa0JBQWtCLEdBQUcsRUFBRSxDQUFDO1FBQzVCLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUNoQyxrQkFBa0IsR0FBRyxTQUFTLENBQUMsVUFBVSxDQUFDLHFCQUFxQixDQUFDLGNBQWMsSUFBSSxFQUFFLENBQUM7U0FDdEY7YUFBTSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDcEMsa0JBQWtCLEdBQUcsU0FBUyxDQUFDLFVBQVUsQ0FBQyxjQUFjLElBQUksRUFBRSxDQUFDO1NBQ2hFO1FBQ0QsT0FBTyxrQkFBa0IsQ0FBQztJQUM1QixDQUFDO0lBRU8sU0FBUyxDQUFDLFVBQXFCO1FBQ3JDLE9BQU8sVUFBVSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDO0lBQ2xELENBQUM7SUFFTyxZQUFZLENBQUMsVUFBcUI7UUFDeEMsT0FBTyxVQUFVLENBQUMsVUFBVSxDQUFDLElBQUksS0FBSyxZQUFZLENBQUM7SUFDckQsQ0FBQztJQUVPLGVBQWUsQ0FBQyxTQUFvQixFQUFFLElBQVM7UUFDckQsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxLQUFLLElBQUksSUFBSSxHQUFHLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxDQUFDO0lBQ2pGLENBQUM7OzRHQXJDVSw4QkFBOEI7c0VBQTlCLDhCQUE4QixXQUE5Qiw4QkFBOEI7dUZBQTlCLDhCQUE4QjtjQUQxQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2FzZUZpZWxkIH0gZnJvbSAnLi4vLi4vLi4vZG9tYWluL2RlZmluaXRpb24nO1xuaW1wb3J0IHsgUHJvZmlsZSB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbi9wcm9maWxlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENvbGxlY3Rpb25DcmVhdGVDaGVja2VyU2VydmljZSB7XG5cbiAgcHVibGljIHNldERpc3BsYXlDb250ZXh0Rm9yQ2hpbGRyZW4oY2FzZUZpZWxkOiBDYXNlRmllbGQsIHByb2ZpbGU6IFByb2ZpbGUpIHtcbiAgICBjb25zdCBjaGlsZHJlbiA9IHRoaXMuZ2V0Q2FzZUZpZWxkQ2hpbGRyZW4oY2FzZUZpZWxkKTtcblxuICAgIGlmIChjaGlsZHJlbiAmJiBjaGlsZHJlbi5sZW5ndGggPiAwKSB7XG4gICAgICBjaGlsZHJlbi5mb3JFYWNoKGNoaWxkID0+IHtcbiAgICAgICAgaWYgKCEhcHJvZmlsZS51c2VyLmlkYW0ucm9sZXMuZmluZChyb2xlID0+IHRoaXMuaGFzQ3JlYXRlQWNjZXNzKGNoaWxkLCByb2xlKSkpIHtcbiAgICAgICAgICBjaGlsZC5kaXNwbGF5X2NvbnRleHQgPSBjYXNlRmllbGQuZGlzcGxheV9jb250ZXh0O1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmlzQ29sbGVjdGlvbihjaGlsZCkgfHwgdGhpcy5pc0NvbXBsZXgoY2hpbGQpKSB7XG4gICAgICAgICAgdGhpcy5zZXREaXNwbGF5Q29udGV4dEZvckNoaWxkcmVuKGNoaWxkLCBwcm9maWxlKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRDYXNlRmllbGRDaGlsZHJlbihjYXNlRmllbGQ6IENhc2VGaWVsZCk6IENhc2VGaWVsZFtdIHtcbiAgICBsZXQgY2hpbGRyZW5DYXNlRmllbGRzID0gW107XG4gICAgaWYgKHRoaXMuaXNDb2xsZWN0aW9uKGNhc2VGaWVsZCkpIHtcbiAgICAgIGNoaWxkcmVuQ2FzZUZpZWxkcyA9IGNhc2VGaWVsZC5maWVsZF90eXBlLmNvbGxlY3Rpb25fZmllbGRfdHlwZS5jb21wbGV4X2ZpZWxkcyB8fCBbXTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuaXNDb21wbGV4KGNhc2VGaWVsZCkpIHtcbiAgICAgIGNoaWxkcmVuQ2FzZUZpZWxkcyA9IGNhc2VGaWVsZC5maWVsZF90eXBlLmNvbXBsZXhfZmllbGRzIHx8IFtdO1xuICAgIH1cbiAgICByZXR1cm4gY2hpbGRyZW5DYXNlRmllbGRzO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0NvbXBsZXgoY2FzZV9maWVsZDogQ2FzZUZpZWxkKSB7XG4gICAgcmV0dXJuIGNhc2VfZmllbGQuZmllbGRfdHlwZS50eXBlID09PSAnQ29tcGxleCc7XG4gIH1cblxuICBwcml2YXRlIGlzQ29sbGVjdGlvbihjYXNlX2ZpZWxkOiBDYXNlRmllbGQpIHtcbiAgICByZXR1cm4gY2FzZV9maWVsZC5maWVsZF90eXBlLnR5cGUgPT09ICdDb2xsZWN0aW9uJztcbiAgfVxuXG4gIHByaXZhdGUgaGFzQ3JlYXRlQWNjZXNzKGNhc2VGaWVsZDogQ2FzZUZpZWxkLCByb2xlOiBhbnkpIHtcbiAgICByZXR1cm4gISFjYXNlRmllbGQuYWNscy5maW5kKCBhY2wgPT4gYWNsLnJvbGUgPT09IHJvbGUgJiYgYWNsLmNyZWF0ZSA9PT0gdHJ1ZSk7XG4gIH1cbn1cbiJdfQ==
|
package/esm2015/lib/shared/components/palette/collection/write-collection-field.component.js
CHANGED
|
@@ -306,16 +306,16 @@ export class WriteCollectionFieldComponent extends AbstractFieldWriteComponent {
|
|
|
306
306
|
&& this.collItems[i].caseField.id === counter.toString()) {
|
|
307
307
|
this.collItems[i].caseField.id = i.toString();
|
|
308
308
|
}
|
|
309
|
-
const idPrefix1 = this.collItems[i].prefix ? this.collItems[i].prefix.replace(
|
|
310
|
-
const idPrefix1Current = idPrefix1.replace(
|
|
309
|
+
const idPrefix1 = this.collItems[i].prefix ? this.collItems[i].prefix.replace('_' + counter.toString(), '_' + i.toString()) : '';
|
|
310
|
+
const idPrefix1Current = idPrefix1.replace('_' + i.toString(), '_' + counter.toString());
|
|
311
311
|
if (this.collItems[i].prefix && this.collItems[i].prefix === idPrefix1Current) {
|
|
312
312
|
this.collItems[i].prefix = idPrefix1;
|
|
313
313
|
}
|
|
314
314
|
const idPrefixAvailable = this.collItems[i].container && this.collItems[i].container['component']
|
|
315
315
|
&& this.collItems[i].container['component'].idPrefix ? true : false;
|
|
316
316
|
const idPrefix2 = idPrefixAvailable ?
|
|
317
|
-
this.collItems[i].container['component'].idPrefix.replace(
|
|
318
|
-
const idPrefix2current = idPrefix2.replace(
|
|
317
|
+
this.collItems[i].container['component'].idPrefix.replace('_' + counter.toString(), '_' + i.toString()) : '';
|
|
318
|
+
const idPrefix2current = idPrefix2.replace('_' + i.toString(), '_' + counter.toString());
|
|
319
319
|
if (idPrefixAvailable && this.collItems[i].container['component'].idPrefix === idPrefix2current) {
|
|
320
320
|
this.collItems[i].container['component'].idPrefix = idPrefix2;
|
|
321
321
|
}
|
|
@@ -448,4 +448,4 @@ WriteCollectionFieldComponent.ɵcmp = i0.ɵɵdefineComponent({ type: WriteCollec
|
|
|
448
448
|
type: ViewChildren,
|
|
449
449
|
args: ['collectionItem']
|
|
450
450
|
}] }); })();
|
|
451
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JpdGUtY29sbGVjdGlvbi1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvcGFsZXR0ZS9jb2xsZWN0aW9uL3dyaXRlLWNvbGxlY3Rpb24tZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvY29sbGVjdGlvbi93cml0ZS1jb2xsZWN0aW9uLWZpZWxkLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQXFCLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekcsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkUsT0FBTyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFMUQsT0FBTyxFQUFFLFFBQVEsRUFBUSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUV4RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFFeEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0Q0FB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TUFBTSxTQUFTLEdBQUcsQ0FBQyxZQUFZLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDNUMsT0FBTyxTQUFTLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7OzBHQXRWVSw2QkFBNkI7a0VBQTdCLDZCQUE2Qjs7Ozs7O1FDOUIxQyw4QkFBb0M7UUFFbEMsOEJBQXdDO1FBRXRDLDZCQUFxQztRQUNuQyxZQUNGOztRQUFBLGlCQUFLO1FBQ0wsaUNBQXVKO1FBQW5GLDBHQUFTLFlBQVEsSUFBSSxDQUFDLElBQUM7UUFBNEQsdUJBQU87UUFBQSxpQkFBUztRQUN2Syw0RUFHSztRQUVMLDhFQXdCTTtRQUVOLG9GQUE2TjtRQUUvTixpQkFBTTtRQUVSLGlCQUFNOztRQTNDa0IsNkJBQVc7UUFLN0IsZUFDRjtRQURFLG9FQUNGO1FBQzRGLGVBQTBEO1FBQTFELGdGQUEwRDtRQUNoSCxlQUE2QztRQUE3QyxzRUFBNkM7UUFLOUIsZUFBK0M7UUFBL0Msd0VBQStDO1FBMEJ3RCxlQUErQztRQUEvQyx3RUFBK0M7O3VGRFRsTSw2QkFBNkI7Y0FMekMsU0FBUztlQUFDO2dCQUNULFFBQVEsRUFBRSw0QkFBNEI7Z0JBQ3RDLFdBQVcsRUFBRSwrQkFBK0I7Z0JBQzVDLFNBQVMsRUFBRSxDQUFDLHlCQUF5QixDQUFDO2FBQ3ZDO3dIQUdRLFVBQVU7a0JBRGhCLEtBQUs7WUFJQyxTQUFTO2tCQURmLEtBQUs7WUFTVyxLQUFLO2tCQURyQixZQUFZO21CQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBRdWVyeUxpc3QsIFZpZXdDaGlsZHJlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUFycmF5LCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0RGlhbG9nLCBNYXREaWFsb2dDb25maWcgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgU2Nyb2xsVG9TZXJ2aWNlIH0gZnJvbSAnQG5pY2t5LWxlbmFlcnMvbmd4LXNjcm9sbC10byc7XG5pbXBvcnQgeyBwbGFpblRvQ2xhc3NGcm9tRXhpc3QgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbmFsaXplLCB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRmllbGRUeXBlIH0gZnJvbSAnLi4vLi4vLi4vZG9tYWluL2RlZmluaXRpb24vZmllbGQtdHlwZS5tb2RlbCc7XG5cbmltcG9ydCB7IENhc2VGaWVsZCB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbi9kZWZpbml0aW9uL2Nhc2UtZmllbGQubW9kZWwnO1xuaW1wb3J0IHsgUHJvZmlsZSB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbi9wcm9maWxlL3Byb2ZpbGUubW9kZWwnO1xuaW1wb3J0IHsgRmllbGRzVXRpbHMgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9maWVsZHMvZmllbGRzLnV0aWxzJztcbmltcG9ydCB7IEZvcm1WYWxpZGF0b3JzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2Zvcm0vZm9ybS12YWxpZGF0b3JzLnNlcnZpY2UnO1xuaW1wb3J0IHsgUHJvZmlsZU5vdGlmaWVyIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcHJvZmlsZS9wcm9maWxlLm5vdGlmaWVyJztcbmltcG9ydCB7IFJlbW92ZURpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL2RpYWxvZ3MvcmVtb3ZlLWRpYWxvZy9yZW1vdmUtZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBYnN0cmFjdEZpZWxkV3JpdGVDb21wb25lbnQgfSBmcm9tICcuLi9iYXNlLWZpZWxkL2Fic3RyYWN0LWZpZWxkLXdyaXRlLmNvbXBvbmVudCc7XG5cbnR5cGUgQ29sbGVjdGlvbkl0ZW0gPSB7XG4gIGNhc2VGaWVsZDogQ2FzZUZpZWxkO1xuICBpdGVtOiBhbnk7XG4gIHByZWZpeDogc3RyaW5nO1xuICBpbmRleDogbnVtYmVyO1xuICBjb250YWluZXI6IEZvcm1Hcm91cDtcbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NjZC13cml0ZS1jb2xsZWN0aW9uLWZpZWxkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3dyaXRlLWNvbGxlY3Rpb24tZmllbGQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NvbGxlY3Rpb24tZmllbGQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFdyaXRlQ29sbGVjdGlvbkZpZWxkQ29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3RGaWVsZFdyaXRlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKVxuICBwdWJsaWMgY2FzZUZpZWxkczogQ2FzZUZpZWxkW10gPSBbXTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZm9ybUdyb3VwOiBGb3JtR3JvdXA7XG5cbiAgcHVibGljIGZvcm1BcnJheTogRm9ybUFycmF5O1xuXG4gIHB1YmxpYyBwcm9maWxlOiBQcm9maWxlO1xuICBwdWJsaWMgcHJvZmlsZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gIEBWaWV3Q2hpbGRyZW4oJ2NvbGxlY3Rpb25JdGVtJylcbiAgcHJpdmF0ZSByZWFkb25seSBpdGVtczogUXVlcnlMaXN0PEVsZW1lbnRSZWY+O1xuICBwdWJsaWMgcmVhZG9ubHkgY29sbEl0ZW1zOiBDb2xsZWN0aW9uSXRlbVtdID0gW107XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBkaWFsb2c6IE1hdERpYWxvZyxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNjcm9sbFRvU2VydmljZTogU2Nyb2xsVG9TZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcHJvZmlsZU5vdGlmaWVyOiBQcm9maWxlTm90aWZpZXJcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaXNFeHBhbmRlZCkgeyAvLyBtZWFuaW5nIEkgYW0gbm90IHJlbmRlcmVkIG9uIHRoZSBzZWFyY2gvd29ya2Jhc2tldCBpbnB1dCBmaWx0ZXJcbiAgICAgIHRoaXMucHJvZmlsZVN1YnNjcmlwdGlvbiA9IHRoaXMucHJvZmlsZU5vdGlmaWVyLnByb2ZpbGUuc3Vic2NyaWJlKF8gPT4gdGhpcy5wcm9maWxlID0gXyk7XG4gICAgfVxuICAgIHRoaXMuY2FzZUZpZWxkLnZhbHVlID0gdGhpcy5jYXNlRmllbGQudmFsdWUgfHwgW107XG4gICAgdGhpcy5mb3JtQXJyYXkgPSB0aGlzLnJlZ2lzdGVyQ29udHJvbChuZXcgRm9ybUFycmF5KFtdKSwgdHJ1ZSkgYXMgRm9ybUFycmF5O1xuICAgIHRoaXMuZm9ybUFycmF5WydjYXNlRmllbGQnXSA9IHRoaXMuY2FzZUZpZWxkO1xuICAgIHRoaXMuY2FzZUZpZWxkLnZhbHVlLmZvckVhY2goKGl0ZW06IGFueSwgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgY29uc3QgcHJlZml4OiBzdHJpbmcgPSB0aGlzLmJ1aWxkSWRQcmVmaXgoaW5kZXgpO1xuICAgICAgY29uc3QgY2FzZUZpZWxkID0gdGhpcy5idWlsZENhc2VGaWVsZChpdGVtLCBpbmRleCk7XG4gICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmdldENvbnRhaW5lcihpbmRleCk7XG4gICAgICBpZiAodGhpcy5jb2xsSXRlbXMubGVuZ3RoIDw9IGluZGV4KSB7XG4gICAgICAgIHRoaXMuY29sbEl0ZW1zLmxlbmd0aCA9IGluZGV4ICsgMTtcbiAgICAgIH1cbiAgICAgIHRoaXMuY29sbEl0ZW1zW2luZGV4XSA9IHsgY2FzZUZpZWxkLCBpdGVtLCBwcmVmaXgsIGluZGV4LCBjb250YWluZXIgfTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5wcm9maWxlU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLnByb2ZpbGVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYnVpbGRDYXNlRmllbGQoaXRlbSwgaW5kZXg6IG51bWJlciwgaXNOZXcgPSBmYWxzZSk6IENhc2VGaWVsZCB7XG4gICAgLyoqXG4gICAgICogV2hhdCBmb2xsb3cgaXMgY29kZSB0aGF0IG1ha2VzIG1lIHdhbnQgdG8gZ28ganVtcCBpbiB0aGUgc2hvd2VyIVxuICAgICAqIEJhc2ljYWxseSwgd2UgbGFuZCBpbiBoZXJlIHJlcGVhdGVkbHkgYmVjYXVzZSBvZiB0aGUgYmluZGluZywgYW5kXG4gICAgICogdGhpcyBpcyB3aGF0IGFwcGVhcnMgdG8gYmUgaGFwcGVuaW5nOlxuICAgICAqICAgMS4gdGhpcy5mb3JtQXJyYXkgY29udGFpbnMgbm8gY29udHJvbHMgYXQgYWxsLlxuICAgICAqICAgICAgdGhpcy5mb3JtQXJyYXkudmFsdWUgPSBbXTtcbiAgICAgKiAgIDIuIHRoaXMuZm9ybUFycmF5IGNvbnRhaW5zIGEgRm9ybUdyb3VwLCB3aGljaCBjb250YWlucyBhIHNpbmdsZVxuICAgICAqICAgICAgRm9ybUNvbnRyb2wgd2l0aCB0aGUgaWQgJ2NvZGUnLlxuICAgICAqICAgICAgdGhpcy5mb3JtQXJyYXkudmFsdWUgPSBbeyBjb2RlOiBudWxsIH1dXG4gICAgICogICAzLiB0aGlzLmZvcm1BcnJheSBjb250YWlucyB3aGF0IGlzIGJlaW5nIHNldCB1cCBiZWxvdy5cbiAgICAgKiAgICAgIHRoaXMuZm9ybUFycmF5LnZhbHVlID0gW3sgY29kZTogbnVsbCwgaWQ6IG51bGwsIHZhbHVlOiB7IGNvZGU6IG51bGwgfSB9XVxuICAgICAqICAgNCwgNSwgNiwgZXRjIC0gdGhlIHNhbWUgYXMgMy5cbiAgICAgKi9cbiAgICBsZXQgZ3JvdXA6IEZvcm1Hcm91cDtcbiAgICBpZiAodGhpcy5mb3JtQXJyYXkgJiYgKGluZGV4IDwgdGhpcy5mb3JtQXJyYXkubGVuZ3RoKSkge1xuICAgICAgZ3JvdXAgPSB0aGlzLmZvcm1BcnJheS5hdChpbmRleCkgYXMgRm9ybUdyb3VwO1xuICAgIH0gZWxzZSB7XG4gICAgICBncm91cCA9IG5ldyBGb3JtR3JvdXAoe30pO1xuICAgIH1cblxuICAgIGxldCB2YWx1ZTtcbiAgICBpZiAodGhpcy5pc0NvbGxlY3Rpb25PZlNpbXBsZVR5cGUodGhpcy5jYXNlRmllbGQpKSB7XG4gICAgICB2YWx1ZSA9IGdyb3VwLmdldCgndmFsdWUnKSBhcyBGb3JtQ29udHJvbDtcbiAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgdmFsdWUgPSBuZXcgRm9ybUNvbnRyb2woaXRlbS52YWx1ZSk7XG4gICAgICAgIC8vIE5vdyBhZGQgdGhlIHZhbHVlIEZvcm1Db250cm9sIHRvIHRoZSBvdXRlciBncm91cC5cbiAgICAgICAgZ3JvdXAuYWRkQ29udHJvbCgndmFsdWUnLCB2YWx1ZSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhbHVlID0gZ3JvdXAuZ2V0KCd2YWx1ZScpIGFzIEZvcm1Hcm91cDtcbiAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgdmFsdWUgPSBuZXcgRm9ybUdyb3VwKHt9KTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMoZ3JvdXAuY29udHJvbHMpKSB7XG4gICAgICAgICAgdmFsdWUuYWRkQ29udHJvbChrZXksIGdyb3VwLmdldChrZXkpKTtcbiAgICAgICAgICAvLyBET04nVCByZW1vdmUgdGhlIGNvbnRyb2wgZm9yIHRoaXMga2V5IGZyb20gdGhlIG91dGVyIGdyb3VwIG9yIGl0XG4gICAgICAgICAgLy8gZ29lcyBhd3J5LiBTbyBET04nVCB1bmNvbW1lbnQgdGhlIGJlbG93IGxpbmUhXG4gICAgICAgICAgLy8gZ3JvdXAucmVtb3ZlQ29udHJvbChrZXkpO1xuICAgICAgICB9XG4gICAgICAgIC8vIE5vdyBhZGQgdGhlIHZhbHVlIEZvcm1Hcm91cCB0byB0aGUgb3V0ZXIgZ3JvdXAuXG4gICAgICAgIGdyb3VwLmFkZENvbnRyb2woJ3ZhbHVlJywgdmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgICBsZXQgaWQgPSBncm91cC5nZXQoJ2lkJykgYXMgRm9ybUNvbnRyb2w7XG4gICAgLy8gSWYgd2UncmUgbm90IGluIHNjZW5hcmlvIDMsIGFib3ZlLCB3ZSBuZWVkIHRvIGRvIHNvbWUgamlnZ2VyeSBwb2tlcnlcbiAgICAvLyBhbmQgc2V0IHVwIHRoZSBpZCBhbmQgdmFsdWUgY29udHJvbHMuXG4gICAgLy8gQWxzbyBzZXQgdXAgYW4gaWQgY29udHJvbCBpZiBpdCBkb2Vzbid0IHlldCBleGlzdC5cbiAgICBpZiAoIWlkKSB7XG4gICAgICBpZCA9IG5ldyBGb3JtQ29udHJvbChpdGVtLmlkKTtcbiAgICAgIGdyb3VwLmFkZENvbnRyb2woJ2lkJywgaWQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFnYWluLCB2ZXJ5IHNvcnJ5LiBJJ3ZlIG5vdCBmb3VuZCBhIGJldHRlciB3YXkgdG8gcHJvZHVjZSB0aGVcbiAgICAgKiBvdXRwdXQgbmVlZGVkIGZvciB3aGF0IG5lZWRzIHRvIGJlIHNlbnQgdG8gdGhlIHNlcnZlciB5ZXQuXG4gICAgICovXG5cbiAgICAvLyBOb3csIGFkZCB0aGUgb3V0ZXIgZ3JvdXAgdG8gdGhlIGFycmF5IChvciByZXBsYWNlIGl0KS5cbiAgICBpZiAoaW5kZXggPCB0aGlzLmZvcm1BcnJheS5sZW5ndGgpIHtcbiAgICAgIHRoaXMuZm9ybUFycmF5LnNldENvbnRyb2woaW5kZXgsIGdyb3VwKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5mb3JtQXJyYXkucHVzaChncm91cCk7XG4gICAgfVxuXG4gICAgLy8gTm93IHNldCB1cCB0aGUgQ2FzZUZpZWxkIGFuZCB2YWxpZGF0aW9uLlxuICAgIGxldCBjZmlkOiBzdHJpbmc7XG4gICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRm9ybUNvbnRyb2wpIHtcbiAgICAgIGNmaWQgPSAndmFsdWUnO1xuICAgIH0gZWxzZSB7XG4gICAgICBjZmlkID0gaW5kZXgudG9TdHJpbmcoKTtcbiAgICB9XG5cbiAgICAvLyBpc05ldzpcbiAgICBjb25zdCBjZjogQ2FzZUZpZWxkID0gdGhpcy5uZXdDYXNlRmllbGQoY2ZpZCwgaXRlbSwgaW5kZXgsIGlzTmV3KTtcbiAgICBGb3JtVmFsaWRhdG9yc1NlcnZpY2UuYWRkVmFsaWRhdG9ycyhjZiwgdmFsdWUpO1xuICAgIEZpZWxkc1V0aWxzLmFkZENhc2VGaWVsZEFuZENvbXBvbmVudFJlZmVyZW5jZXModmFsdWUsIGNmLCB0aGlzKTtcbiAgICByZXR1cm4gY2Y7XG4gIH1cblxuICBwdWJsaWMgYnVpbGRJZFByZWZpeChpbmRleDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICBjb25zdCBwcmVmaXggPSBgJHt0aGlzLmlkUHJlZml4fSR7dGhpcy5jYXNlRmllbGQuaWR9X2A7XG4gICAgaWYgKHRoaXMuY2FzZUZpZWxkLmZpZWxkX3R5cGUuY29sbGVjdGlvbl9maWVsZF90eXBlLnR5cGUgPT09ICdDb21wbGV4Jykge1xuICAgICAgcmV0dXJuIGAke3ByZWZpeH0ke2luZGV4fV9gO1xuICAgIH1cbiAgICByZXR1cm4gcHJlZml4O1xuICB9XG5cbiAgcHVibGljIGlzU2VhcmNoRmlsdGVyKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzSW5TZWFyY2hCbG9jayAmJiB0aGlzLmNvbGxJdGVtcy5sZW5ndGggPiAwO1xuICB9XG5cbiAgcHVibGljIGFkZEl0ZW0oZG9TY3JvbGw6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAvLyBNYW51YWxseSByZXNldHRpbmcgZXJyb3JzIGlzIHJlcXVpcmVkIHRvIHByZXZlbnQgYEV4cHJlc3Npb25DaGFuZ2VkQWZ0ZXJJdEhhc0JlZW5DaGVja2VkRXJyb3JgXG4gICAgdGhpcy5mb3JtQXJyYXkuc2V0RXJyb3JzKG51bGwpO1xuICAgIGxldCBpdGVtID0geyB2YWx1ZTogbnVsbCB9XG5cbiAgICBpZiAoIHRoaXMuaXNDb2xsZWN0aW9uRHluYW1pYygpICkge1xuICAgICAgaXRlbSAgPSB7Li4udGhpcy5jYXNlRmllbGQudmFsdWVbdGhpcy5jYXNlRmllbGQudmFsdWUubGVuZ3RoIC0gMV19O1xuICAgICAgY29uc3Qga2V5OiBudW1iZXIgPSBOdW1iZXIoaXRlbVsnaWQnXVtpdGVtWydpZCddLmxlbmd0aCAtIDFdKSArIDE7XG4gICAgICAoaXRlbSBhcyBhbnkpLmlkID0gaXRlbVsnaWQnXS5yZXBsYWNlKC8uJC8sIGtleS50b1N0cmluZygpICk7XG4gICAgfVxuICAgIHRoaXMuY2FzZUZpZWxkLnZhbHVlLnB1c2goaXRlbSk7XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLmNhc2VGaWVsZC52YWx1ZS5sZW5ndGggLSAxO1xuICAgIGNvbnN0IGNhc2VGaWVsZDogQ2FzZUZpZWxkID0gdGhpcy5idWlsZENhc2VGaWVsZChpdGVtLCBpbmRleCwgdHJ1ZSk7XG4gICAgY29uc3QgcHJlZml4ID0gdGhpcy5idWlsZElkUHJlZml4KGluZGV4KTtcbiAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmdldENvbnRhaW5lcihpbmRleCk7XG4gICAgdGhpcy5jb2xsSXRlbXMucHVzaCh7IGNhc2VGaWVsZCwgaXRlbSwgaW5kZXgsIHByZWZpeCwgY29udGFpbmVyIH0pO1xuXG4gICAgLy8gVGltZW91dCBpcyByZXF1aXJlZCBmb3IgdGhlIGNvbGxlY3Rpb24gaXRlbSB0byBiZSByZW5kZXJlZCBiZWZvcmUgaXQgY2FuIGJlIHNjcm9sbGVkIHRvIG9yIGZvY3VzZWQuXG4gICAgaWYgKGRvU2Nyb2xsKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5zY3JvbGxUb1NlcnZpY2Uuc2Nyb2xsVG8oe1xuICAgICAgICAgIHRhcmdldDogYCR7dGhpcy5idWlsZElkUHJlZml4KGluZGV4KX0ke2luZGV4fWAsXG4gICAgICAgICAgZHVyYXRpb246IDEwMDAsXG4gICAgICAgICAgb2Zmc2V0OiAtMTUwLFxuICAgICAgICB9KVxuICAgICAgICAgIC5waXBlKGZpbmFsaXplKCgpID0+IHRoaXMuZm9jdXNMYXN0SXRlbSgpKSlcbiAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHsgfSwgY29uc29sZS5lcnJvcik7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmZvY3VzTGFzdEl0ZW0oKSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpc0NvbGxlY3Rpb25EeW5hbWljKCk6IGJvb2xlYW4ge1xuICAgIGlmICghdGhpcy5jYXNlRmllbGQuZmllbGRfdHlwZSB8fCAhdGhpcy5jYXNlRmllbGQuZmllbGRfdHlwZS5jb2xsZWN0aW9uX2ZpZWxkX3R5cGUpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuY2FzZUZpZWxkLmZpZWxkX3R5cGUuY29sbGVjdGlvbl9maWVsZF90eXBlLmlkID09PSAnRHluYW1pY1JhZGlvTGlzdCc7XG4gIH1cblxuICBwcml2YXRlIG5ld0Nhc2VGaWVsZChpZDogc3RyaW5nLCBpdGVtLCBpbmRleCwgaXNOZXcgPSBmYWxzZSkge1xuICAgIGNvbnN0IGlzTm90QXV0aG9yaXNlZFRvVXBkYXRlID0gIWlzTmV3ICYmIHRoaXMuaXNOb3RBdXRob3Jpc2VkVG9VcGRhdGUoaW5kZXgpO1xuXG4gICAgY29uc3QgZmllbGRUeXBlID0gcGxhaW5Ub0NsYXNzRnJvbUV4aXN0KG5ldyBGaWVsZFR5cGUoKSwgdGhpcy5jYXNlRmllbGQuZmllbGRfdHlwZS5jb2xsZWN0aW9uX2ZpZWxkX3R5cGUpO1xuICAgIGlmIChmaWVsZFR5cGUuY29tcGxleF9maWVsZHMpIHtcbiAgICAgIGZpZWxkVHlwZS5jb21wbGV4X2ZpZWxkc1xuICAgICAgICAuZmlsdGVyKChjZjogQ2FzZUZpZWxkKSA9PiAhIWNmLnNob3dfY29uZGl0aW9uKVxuICAgICAgICAubWFwKChjZjogQ2FzZUZpZWxkKSA9PiBjZi5oaWRkZW4gPSB0cnVlKTtcbiAgICB9XG5cbiAgICAvLyBSZW1vdmUgdGhlIGJpdCBzZXR0aW5nIHRoZSBoaWRkZW4gZmxhZyBoZXJlIGFzIGl0J3MgYW4gaXRlbSBpbiB0aGUgYXJyYXkgYW5kXG4gICAgLy8gaXRzIGhpZGRlbiBzdGF0ZSBpc24ndCBpbmRlcGVuZGVudGx5IHJlLWV2YWx1YXRlZCB3aGVuIHRoZSBmb3JtIGlzIGNoYW5nZWQuXG4gICAgcmV0dXJuIHBsYWluVG9DbGFzc0Zyb21FeGlzdChuZXcgQ2FzZUZpZWxkKCksIHtcbiAgICAgIGlkLFxuICAgICAgZmllbGRfdHlwZTogZmllbGRUeXBlLFxuICAgICAgZGlzcGxheV9jb250ZXh0OiBpc05vdEF1dGhvcmlzZWRUb1VwZGF0ZSA/ICdSRUFET05MWScgOiB0aGlzLmNhc2VGaWVsZC5kaXNwbGF5X2NvbnRleHQsXG4gICAgICB2YWx1ZTogaXRlbS52YWx1ZSxcbiAgICAgIGxhYmVsOiBudWxsLFxuICAgICAgYWNsczogdGhpcy5jYXNlRmllbGQuYWNsc1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDb250YWluZXIoaW5kZXg6IG51bWJlcik6IEZvcm1Hcm91cCB7XG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLmZvcm1BcnJheS5hdChpbmRleCkuZ2V0KCd2YWx1ZScpO1xuICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEZvcm1Hcm91cCkge1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5mb3JtQXJyYXkuYXQoaW5kZXgpIGFzIEZvcm1Hcm91cDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGZvY3VzTGFzdEl0ZW0oKSB7XG4gICAgY29uc3QgaXRlbTogYW55ID0gdGhpcy5pdGVtcy5sYXN0Lm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLmZvcm0tY29udHJvbCcpO1xuICAgIGlmIChpdGVtKSB7XG4gICAgICBpdGVtLmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVJdGVtKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLmNvbGxJdGVtcy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgIHRoaXMucmVzZXRJZHMoaW5kZXgpO1xuICAgIHRoaXMuY2FzZUZpZWxkLnZhbHVlLnNwbGljZShpbmRleCwgMSk7XG4gICAgdGhpcy5mb3JtQXJyYXkucmVtb3ZlQXQoaW5kZXgpO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNldElkcyhpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgZm9yIChsZXQgaSA9IGluZGV4OyBpIDwgdGhpcy5jb2xsSXRlbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IGNvdW50ZXIgPSBpICsgMTtcbiAgICAgIGlmICh0aGlzLmNvbGxJdGVtc1tpXS5pbmRleCAmJiB0aGlzLmNvbGxJdGVtc1tpXS5pbmRleCA9PT0gY291bnRlcikge1xuICAgICAgICB0aGlzLmNvbGxJdGVtc1tpXS5pbmRleCA9IGk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLmNvbGxJdGVtc1tpXS5jYXNlRmllbGQgJiYgdGhpcy5jb2xsSXRlbXNbaV0uY2FzZUZpZWxkLmlkXG4gICAgICAgICYmIHRoaXMuY29sbEl0ZW1zW2ldLmNhc2VGaWVsZC5pZCA9PT0gY291bnRlci50b1N0cmluZygpKSB7XG4gICAgICAgIHRoaXMuY29sbEl0ZW1zW2ldLmNhc2VGaWVsZC5pZCA9IGkudG9TdHJpbmcoKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgaWRQcmVmaXgxID0gdGhpcy5jb2xsSXRlbXNbaV0ucHJlZml4ID8gdGhpcy5jb2xsSXRlbXNbaV0ucHJlZml4LnJlcGxhY2UoYF8ke2NvdW50ZXIudG9TdHJpbmcoKX1gLCBgXyR7aS50b1N0cmluZygpfWApIDogJyc7XG4gICAgICBjb25zdCBpZFByZWZpeDFDdXJyZW50ID0gaWRQcmVmaXgxLnJlcGxhY2UoYF8ke2kudG9TdHJpbmcoKX1gLCBgXyR7Y291bnRlci50b1N0cmluZygpfWApO1xuXG4gICAgICBpZiAodGhpcy5jb2xsSXRlbXNbaV0ucHJlZml4ICYmIHRoaXMuY29sbEl0ZW1zW2ldLnByZWZpeCA9PT0gaWRQcmVmaXgxQ3VycmVudCkge1xuICAgICAgICB0aGlzLmNvbGxJdGVtc1tpXS5wcmVmaXggPSBpZFByZWZpeDE7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGlkUHJlZml4QXZhaWxhYmxlID0gdGhpcy5jb2xsSXRlbXNbaV0uY29udGFpbmVyICYmIHRoaXMuY29sbEl0ZW1zW2ldLmNvbnRhaW5lclsnY29tcG9uZW50J11cbiAgICAgICAgJiYgdGhpcy5jb2xsSXRlbXNbaV0uY29udGFpbmVyWydjb21wb25lbnQnXS5pZFByZWZpeCA/IHRydWUgOiBmYWxzZTtcblxuICAgICAgY29uc3QgaWRQcmVmaXgyID0gaWRQcmVmaXhBdmFpbGFibGUgP1xuICAgICAgICB0aGlzLmNvbGxJdGVtc1tpXS5jb250YWluZXJbJ2NvbXBvbmVudCddLmlkUHJlZml4LnJlcGxhY2UoYF8ke2NvdW50ZXIudG9TdHJpbmcoKX1gLCBgXyR7aS50b1N0cmluZygpfWApIDogJyc7XG4gICAgICBjb25zdCBpZFByZWZpeDJjdXJyZW50ID0gaWRQcmVmaXgyLnJlcGxhY2UoYF8ke2kudG9TdHJpbmcoKX1gLCBgXyR7Y291bnRlci50b1N0cmluZygpfWApO1xuXG4gICAgICBpZiAoaWRQcmVmaXhBdmFpbGFibGUgJiYgdGhpcy5jb2xsSXRlbXNbaV0uY29udGFpbmVyWydjb21wb25lbnQnXS5pZFByZWZpeCA9PT0gaWRQcmVmaXgyY3VycmVudCkge1xuICAgICAgICB0aGlzLmNvbGxJdGVtc1tpXS5jb250YWluZXJbJ2NvbXBvbmVudCddLmlkUHJlZml4ID0gaWRQcmVmaXgyO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBpdGVtTGFiZWwoaW5kZXg6IG51bWJlcikge1xuICAgIGlmIChpbmRleCkge1xuICAgICAgcmV0dXJuIGAke3RoaXMuY2FzZUZpZWxkLmxhYmVsfSAke2luZGV4ICsgMX1gO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5jYXNlRmllbGQubGFiZWw7XG4gIH1cblxuICBwdWJsaWMgaXNOb3RBdXRob3Jpc2VkVG9DcmVhdGUoKSB7XG4gICAgaWYgKHRoaXMuaXNFeHBhbmRlZCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gIXRoaXMuZ2V0Q29sbGVjdGlvblBlcm1pc3Npb24odGhpcy5jYXNlRmllbGQsICdhbGxvd0luc2VydCcpO1xuICB9XG5cbiAgcHVibGljIGdldENvbGxlY3Rpb25QZXJtaXNzaW9uKGZpZWxkOiBDYXNlRmllbGQsIHR5cGU6IHN0cmluZykge1xuICAgIHJldHVybiBmaWVsZC5kaXNwbGF5X2NvbnRleHRfcGFyYW1ldGVyICYmXG4gICAgICBmaWVsZC5kaXNwbGF5X2NvbnRleHRfcGFyYW1ldGVyLnNwbGl0KCcjJylcbiAgICAgICAgLmZpbHRlcihpdGVtID0+IGl0ZW0uc3RhcnRzV2l0aCgnQ09MTEVDVElPTignKSlbMF1cbiAgICAgICAgLmluY2x1ZGVzKHR5cGUpO1xuICB9XG5cbiAgcHVibGljIGlzTm90QXV0aG9yaXNlZFRvVXBkYXRlKGluZGV4KSB7XG4gICAgaWYgKHRoaXMuaXNFeHBhbmRlZCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICAvLyBXYXMgcmVhc3Nlc2VkIGFzIHBhcnQgb2YgRVVJLTM1MDUuIFRoZXJlIGlzIHN0aWxsIGEgY2F2ZWF0IGFyb3VuZCBDUkQsIGJ1dCB0aGF0IHdhcyBkZWVtZWQgYW4gdW5saWtlbHkgc2NlbmFyaW9cbiAgICBjb25zdCBpZCA9IHRoaXMuZ2V0Q29udHJvbElkQXQoaW5kZXgpO1xuICAgIGlmIChpZCkge1xuICAgICAgaWYgKCEhdGhpcy5wcm9maWxlLnVzZXIgJiYgISF0aGlzLnByb2ZpbGUudXNlci5pZGFtKSB7XG4gICAgICAgIGNvbnN0IHVwZGF0ZVJvbGUgPSB0aGlzLnByb2ZpbGUudXNlci5pZGFtLnJvbGVzLmZpbmQocm9sZSA9PiB0aGlzLmhhc1VwZGF0ZUFjY2Vzcyhyb2xlKSk7XG4gICAgICAgIHJldHVybiAhdXBkYXRlUm9sZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHVibGljIGhhc1VwZGF0ZUFjY2Vzcyhyb2xlOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLmNhc2VGaWVsZC5hY2xzLmZpbmQoYWNsID0+IGFjbC5yb2xlID09PSByb2xlICYmIGFjbC51cGRhdGUgPT09IHRydWUpO1xuICB9XG5cbiAgcHVibGljIGlzTm90QXV0aG9yaXNlZFRvRGVsZXRlKGluZGV4OiBudW1iZXIpIHtcbiAgICBpZiAodGhpcy5pc0V4cGFuZGVkKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIC8vIFNob3VsZCBiZSBhYmxlIHRvIGRlbGV0ZSBpZiBjcmVhdGluZyBhIGNhc2UgZXZlbiBpZiBcIkRcIiBpcyBhYnNlbnQsIGhlbmNlOlxuICAgIGNvbnN0IGlkID0gdGhpcy5nZXRDb250cm9sSWRBdChpbmRleCk7XG4gICAgcmV0dXJuICEhaWQgJiYgIXRoaXMuZ2V0Q29sbGVjdGlvblBlcm1pc3Npb24odGhpcy5jYXNlRmllbGQsICdhbGxvd0RlbGV0ZScpO1xuICB9XG5cbiAgcHVibGljIG9wZW5Nb2RhbChpOiBudW1iZXIpIHtcbiAgICBjb25zdCBkaWFsb2dDb25maWcgPSBuZXcgTWF0RGlhbG9nQ29uZmlnKCk7XG4gICAgZGlhbG9nQ29uZmlnLmRpc2FibGVDbG9zZSA9IHRydWU7XG4gICAgZGlhbG9nQ29uZmlnLmF1dG9Gb2N1cyA9IHRydWU7XG4gICAgZGlhbG9nQ29uZmlnLmFyaWFMYWJlbCA9ICdMYWJlbCc7XG4gICAgZGlhbG9nQ29uZmlnLmhlaWdodCA9ICcyMjBweCc7XG4gICAgZGlhbG9nQ29uZmlnLndpZHRoID0gJzU1MHB4JztcbiAgICBkaWFsb2dDb25maWcucGFuZWxDbGFzcyA9ICdkaWFsb2cnO1xuXG4gICAgZGlhbG9nQ29uZmlnLmNsb3NlT25OYXZpZ2F0aW9uID0gZmFsc2U7XG4gICAgZGlhbG9nQ29uZmlnLnBvc2l0aW9uID0ge1xuICAgICAgdG9wOiBgJHt3aW5kb3cuaW5uZXJIZWlnaHQgLyAyIC0gMTEwfXB4YCwgbGVmdDogYCR7d2luZG93LmlubmVyV2lkdGggLyAyIC0gMjc1fXB4YFxuICAgIH07XG5cbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFJlbW92ZURpYWxvZ0NvbXBvbmVudCwgZGlhbG9nQ29uZmlnKTtcblxuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZShyZXN1bHQgPT4ge1xuICAgICAgaWYgKHJlc3VsdCA9PT0gJ1JlbW92ZScpIHtcbiAgICAgICAgdGhpcy5yZW1vdmVJdGVtKGkpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFwcGxpZWQgZnVsbCBzb2x1dGlvbiBhcyBwYXJ0IG9mIEVVSS0zNTA1XG4gICAqL1xuICBwcml2YXRlIGdldENvbnRyb2xJZEF0KGluZGV4OiBudW1iZXIpOiBzdHJpbmcge1xuXG4gICAgLy8gdGhpcy5mb3JtQXJyYXkgY29udGFpbnMgWyBGb3JtR3JvdXAoIGlkOiBGb3JtQ29udHJvbCwgdmFsdWU6IEZvcm1Hcm91cCApLCAuLi4gXS5cbiAgICAvLyBIZXJlLCB3ZSBuZWVkIHRvIGdldCB0aGUgdmFsdWUgb2YgdGhlIGlkIEZvcm1Db250cm9sLlxuICAgIGNvbnN0IGdyb3VwOiBGb3JtR3JvdXAgPSB0aGlzLmZvcm1BcnJheS5hdChpbmRleCkgYXMgRm9ybUdyb3VwO1xuICAgIGNvbnN0IGNvbnRyb2w6IEZvcm1Db250cm9sID0gZ3JvdXAuZ2V0KCdpZCcpIGFzIEZvcm1Db250cm9sO1xuICAgIHJldHVybiBjb250cm9sID8gY29udHJvbC52YWx1ZSA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgaXNDb2xsZWN0aW9uT2ZTaW1wbGVUeXBlKGNhc2VGaWVsZDogQ2FzZUZpZWxkKSB7XG4gICAgY29uc3Qgbm90U2ltcGxlID0gWydDb2xsZWN0aW9uJywgJ0NvbXBsZXgnXTtcbiAgICByZXR1cm4gbm90U2ltcGxlLmluZGV4T2YoY2FzZUZpZWxkLmZpZWxkX3R5cGUuY29sbGVjdGlvbl9maWVsZF90eXBlLnR5cGUpIDwgMDtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIiBbaWRdPVwiaWQoKVwiPlxuXG4gIDxkaXYgY2xhc3M9XCJwYW5lbCBjb2xsZWN0aW9uLWluZGljYXRvclwiPlxuXG4gICAgPGgyIGNsYXNzPVwiaGVhZGluZy1oMiBlcnJvci1zcGFjaW5nXCI+XG4gICAgICB7e2Nhc2VGaWVsZCB8IGNjZEZpZWxkTGFiZWx9fVxuICAgIDwvaDI+XG4gICAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvbiB3cml0ZS1jb2xsZWN0aW9uLWFkZC1pdGVtX190b3BcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImFkZEl0ZW0odHJ1ZSlcIiBbZGlzYWJsZWRdPVwiaXNOb3RBdXRob3Jpc2VkVG9DcmVhdGUoKSB8fCBpc1NlYXJjaEZpbHRlcigpXCI+QWRkIG5ldzwvYnV0dG9uPlxuICAgIDxoMiBjbGFzcz1cImhlYWRpbmctaDIgZXJyb3Itc3BhY2luZ1wiICpuZ0lmPVwiY2FzZUZpZWxkLmhpbnRfdGV4dCB8fCBmb3JtQXJyYXkuZXJyb3JzXCI+XG4gICAgICA8c3BhbiAqbmdJZj1cImNhc2VGaWVsZC5oaW50X3RleHRcIiBjbGFzcz1cImZvcm0taGludFwiPnt7Y2FzZUZpZWxkLmhpbnRfdGV4dH19PC9zcGFuPlxuICAgICAgPHNwYW4gKm5nSWY9XCJmb3JtQXJyYXkuZXJyb3JzXCIgY2xhc3M9XCJlcnJvci1tZXNzYWdlXCI+e3tmb3JtQXJyYXkuZXJyb3JzIHwgY2NkRmlyc3RFcnJvcjpjYXNlRmllbGQubGFiZWx9fTwvc3Bhbj5cbiAgICA8L2gyPlxuXG4gICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIiBbaGlkZGVuXT1cImNhc2VGaWVsZC5oaWRkZW5cIiAqbmdJZj1cImNhc2VGaWVsZC52YWx1ZSAmJiBjYXNlRmllbGQudmFsdWUubGVuZ3RoXCI+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgY29sbEl0ZW1zOyBsZXQgaSA9IGluZGV4XCIgI2NvbGxlY3Rpb25JdGVtPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sbGVjdGlvbi10aXRsZVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbG9hdC1sZWZ0XCI+XG4gICAgICAgICAgICA8bGFiZWwgW2Zvcl09XCJpdGVtLnByZWZpeCArIGlcIj48aDMgY2xhc3M9XCJoZWFkaW5nLWgzXCI+e3tpdGVtTGFiZWwoaSl9fTwvaDM+PC9sYWJlbD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxvYXQtcmlnaHRcIj5cbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidXR0b24gYnV0dG9uLXNlY29uZGFyeVwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwib3Blbk1vZGFsKGkpXCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImlzTm90QXV0aG9yaXNlZFRvRGVsZXRlKGkpXCJcbiAgICAgICAgICAgICAgICAgICAgYXR0ci5hcmlhLWxhYmVsPVwiUmVtb3ZlIHt7IGl0ZW1MYWJlbChpKSB9fVwiPlJlbW92ZTwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGNjZC1maWVsZC13cml0ZSBbY2FzZUZpZWxkXT1cIml0ZW0uY2FzZUZpZWxkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbY2FzZUZpZWxkc109XCJjYXNlRmllbGRzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgW3BhcmVudF09XCJpdGVtLmNvbnRhaW5lclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgW2lkUHJlZml4XT1cIml0ZW0ucHJlZml4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbaGlkZGVuXT1cIml0ZW0uY2FzZUZpZWxkLmhpZGRlblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgW2lzRXhwYW5kZWRdPVwiaXNFeHBhbmRlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgW2lzSW5TZWFyY2hCbG9ja109XCJpc0luU2VhcmNoQmxvY2tcIj5cbiAgICAgICAgPC9jY2QtZmllbGQtd3JpdGU+XG4gICAgICA8L2Rpdj5cblxuICAgIDwvZGl2PlxuXG4gICAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvbiB3cml0ZS1jb2xsZWN0aW9uLWFkZC1pdGVtX19ib3R0b21cIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImFkZEl0ZW0oZmFsc2UpXCIgW2Rpc2FibGVkXT1cImlzTm90QXV0aG9yaXNlZFRvQ3JlYXRlKCkgfHwgaXNTZWFyY2hGaWx0ZXIoKVwiICpuZ0lmPVwiY2FzZUZpZWxkLnZhbHVlICYmIGNhc2VGaWVsZC52YWx1ZS5sZW5ndGhcIj5BZGQgbmV3PC9idXR0b24+XG5cbiAgPC9kaXY+XG5cbjwvZGl2PiJdfQ==
|
|
451
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JpdGUtY29sbGVjdGlvbi1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvcGFsZXR0ZS9jb2xsZWN0aW9uL3dyaXRlLWNvbGxlY3Rpb24tZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvY29sbGVjdGlvbi93cml0ZS1jb2xsZWN0aW9uLWZpZWxkLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQXFCLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekcsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkUsT0FBTyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFMUQsT0FBTyxFQUFFLFFBQVEsRUFBUSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUV4RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFFeEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0Q0FB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TUFBTSxTQUFTLEdBQUcsQ0FBQyxZQUFZLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDNUMsT0FBTyxTQUFTLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7OzBHQXRWVSw2QkFBNkI7a0VBQTdCLDZCQUE2Qjs7Ozs7O1FDOUIxQyw4QkFBb0M7UUFFbEMsOEJBQXdDO1FBRXRDLDZCQUFxQztRQUNuQyxZQUNGOztRQUFBLGlCQUFLO1FBQ0wsaUNBQXVKO1FBQW5GLDBHQUFTLFlBQVEsSUFBSSxDQUFDLElBQUM7UUFBNEQsdUJBQU87UUFBQSxpQkFBUztRQUN2Syw0RUFHSztRQUVMLDhFQXdCTTtRQUVOLG9GQUE2TjtRQUUvTixpQkFBTTtRQUVSLGlCQUFNOztRQTNDa0IsNkJBQVc7UUFLN0IsZUFDRjtRQURFLG9FQUNGO1FBQzRGLGVBQTBEO1FBQTFELGdGQUEwRDtRQUNoSCxlQUE2QztRQUE3QyxzRUFBNkM7UUFLOUIsZUFBK0M7UUFBL0Msd0VBQStDO1FBMEJ3RCxlQUErQztRQUEvQyx3RUFBK0M7O3VGRFRsTSw2QkFBNkI7Y0FMekMsU0FBUztlQUFDO2dCQUNULFFBQVEsRUFBRSw0QkFBNEI7Z0JBQ3RDLFdBQVcsRUFBRSwrQkFBK0I7Z0JBQzVDLFNBQVMsRUFBRSxDQUFDLHlCQUF5QixDQUFDO2FBQ3ZDO3dIQUdRLFVBQVU7a0JBRGhCLEtBQUs7WUFJQyxTQUFTO2tCQURmLEtBQUs7WUFTVyxLQUFLO2tCQURyQixZQUFZO21CQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBRdWVyeUxpc3QsIFZpZXdDaGlsZHJlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUFycmF5LCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0RGlhbG9nLCBNYXREaWFsb2dDb25maWcgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgU2Nyb2xsVG9TZXJ2aWNlIH0gZnJvbSAnQG5pY2t5LWxlbmFlcnMvbmd4LXNjcm9sbC10byc7XG5pbXBvcnQgeyBwbGFpblRvQ2xhc3NGcm9tRXhpc3QgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbmFsaXplLCB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRmllbGRUeXBlIH0gZnJvbSAnLi4vLi4vLi4vZG9tYWluL2RlZmluaXRpb24vZmllbGQtdHlwZS5tb2RlbCc7XG5cbmltcG9ydCB7IENhc2VGaWVsZCB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbi9kZWZpbml0aW9uL2Nhc2UtZmllbGQubW9kZWwnO1xuaW1wb3J0IHsgUHJvZmlsZSB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbi9wcm9maWxlL3Byb2ZpbGUubW9kZWwnO1xuaW1wb3J0IHsgRmllbGRzVXRpbHMgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9maWVsZHMvZmllbGRzLnV0aWxzJztcbmltcG9ydCB7IEZvcm1WYWxpZGF0b3JzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2Zvcm0vZm9ybS12YWxpZGF0b3JzLnNlcnZpY2UnO1xuaW1wb3J0IHsgUHJvZmlsZU5vdGlmaWVyIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcHJvZmlsZS9wcm9maWxlLm5vdGlmaWVyJztcbmltcG9ydCB7IFJlbW92ZURpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL2RpYWxvZ3MvcmVtb3ZlLWRpYWxvZy9yZW1vdmUtZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBYnN0cmFjdEZpZWxkV3JpdGVDb21wb25lbnQgfSBmcm9tICcuLi9iYXNlLWZpZWxkL2Fic3RyYWN0LWZpZWxkLXdyaXRlLmNvbXBvbmVudCc7XG5cbnR5cGUgQ29sbGVjdGlvbkl0ZW0gPSB7XG4gIGNhc2VGaWVsZDogQ2FzZUZpZWxkO1xuICBpdGVtOiBhbnk7XG4gIHByZWZpeDogc3RyaW5nO1xuICBpbmRleDogbnVtYmVyO1xuICBjb250YWluZXI6IEZvcm1Hcm91cDtcbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NjZC13cml0ZS1jb2xsZWN0aW9uLWZpZWxkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3dyaXRlLWNvbGxlY3Rpb24tZmllbGQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NvbGxlY3Rpb24tZmllbGQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFdyaXRlQ29sbGVjdGlvbkZpZWxkQ29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3RGaWVsZFdyaXRlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKVxuICBwdWJsaWMgY2FzZUZpZWxkczogQ2FzZUZpZWxkW10gPSBbXTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZm9ybUdyb3VwOiBGb3JtR3JvdXA7XG5cbiAgcHVibGljIGZvcm1BcnJheTogRm9ybUFycmF5O1xuXG4gIHB1YmxpYyBwcm9maWxlOiBQcm9maWxlO1xuICBwdWJsaWMgcHJvZmlsZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gIEBWaWV3Q2hpbGRyZW4oJ2NvbGxlY3Rpb25JdGVtJylcbiAgcHJpdmF0ZSByZWFkb25seSBpdGVtczogUXVlcnlMaXN0PEVsZW1lbnRSZWY+O1xuICBwdWJsaWMgcmVhZG9ubHkgY29sbEl0ZW1zOiBDb2xsZWN0aW9uSXRlbVtdID0gW107XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBkaWFsb2c6IE1hdERpYWxvZyxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNjcm9sbFRvU2VydmljZTogU2Nyb2xsVG9TZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcHJvZmlsZU5vdGlmaWVyOiBQcm9maWxlTm90aWZpZXJcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaXNFeHBhbmRlZCkgeyAvLyBtZWFuaW5nIEkgYW0gbm90IHJlbmRlcmVkIG9uIHRoZSBzZWFyY2gvd29ya2Jhc2tldCBpbnB1dCBmaWx0ZXJcbiAgICAgIHRoaXMucHJvZmlsZVN1YnNjcmlwdGlvbiA9IHRoaXMucHJvZmlsZU5vdGlmaWVyLnByb2ZpbGUuc3Vic2NyaWJlKF8gPT4gdGhpcy5wcm9maWxlID0gXyk7XG4gICAgfVxuICAgIHRoaXMuY2FzZUZpZWxkLnZhbHVlID0gdGhpcy5jYXNlRmllbGQudmFsdWUgfHwgW107XG4gICAgdGhpcy5mb3JtQXJyYXkgPSB0aGlzLnJlZ2lzdGVyQ29udHJvbChuZXcgRm9ybUFycmF5KFtdKSwgdHJ1ZSkgYXMgRm9ybUFycmF5O1xuICAgIHRoaXMuZm9ybUFycmF5WydjYXNlRmllbGQnXSA9IHRoaXMuY2FzZUZpZWxkO1xuICAgIHRoaXMuY2FzZUZpZWxkLnZhbHVlLmZvckVhY2goKGl0ZW06IGFueSwgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgY29uc3QgcHJlZml4OiBzdHJpbmcgPSB0aGlzLmJ1aWxkSWRQcmVmaXgoaW5kZXgpO1xuICAgICAgY29uc3QgY2FzZUZpZWxkID0gdGhpcy5idWlsZENhc2VGaWVsZChpdGVtLCBpbmRleCk7XG4gICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmdldENvbnRhaW5lcihpbmRleCk7XG4gICAgICBpZiAodGhpcy5jb2xsSXRlbXMubGVuZ3RoIDw9IGluZGV4KSB7XG4gICAgICAgIHRoaXMuY29sbEl0ZW1zLmxlbmd0aCA9IGluZGV4ICsgMTtcbiAgICAgIH1cbiAgICAgIHRoaXMuY29sbEl0ZW1zW2luZGV4XSA9IHsgY2FzZUZpZWxkLCBpdGVtLCBwcmVmaXgsIGluZGV4LCBjb250YWluZXIgfTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5wcm9maWxlU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLnByb2ZpbGVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYnVpbGRDYXNlRmllbGQoaXRlbSwgaW5kZXg6IG51bWJlciwgaXNOZXcgPSBmYWxzZSk6IENhc2VGaWVsZCB7XG4gICAgLyoqXG4gICAgICogV2hhdCBmb2xsb3cgaXMgY29kZSB0aGF0IG1ha2VzIG1lIHdhbnQgdG8gZ28ganVtcCBpbiB0aGUgc2hvd2VyIVxuICAgICAqIEJhc2ljYWxseSwgd2UgbGFuZCBpbiBoZXJlIHJlcGVhdGVkbHkgYmVjYXVzZSBvZiB0aGUgYmluZGluZywgYW5kXG4gICAgICogdGhpcyBpcyB3aGF0IGFwcGVhcnMgdG8gYmUgaGFwcGVuaW5nOlxuICAgICAqICAgMS4gdGhpcy5mb3JtQXJyYXkgY29udGFpbnMgbm8gY29udHJvbHMgYXQgYWxsLlxuICAgICAqICAgICAgdGhpcy5mb3JtQXJyYXkudmFsdWUgPSBbXTtcbiAgICAgKiAgIDIuIHRoaXMuZm9ybUFycmF5IGNvbnRhaW5zIGEgRm9ybUdyb3VwLCB3aGljaCBjb250YWlucyBhIHNpbmdsZVxuICAgICAqICAgICAgRm9ybUNvbnRyb2wgd2l0aCB0aGUgaWQgJ2NvZGUnLlxuICAgICAqICAgICAgdGhpcy5mb3JtQXJyYXkudmFsdWUgPSBbeyBjb2RlOiBudWxsIH1dXG4gICAgICogICAzLiB0aGlzLmZvcm1BcnJheSBjb250YWlucyB3aGF0IGlzIGJlaW5nIHNldCB1cCBiZWxvdy5cbiAgICAgKiAgICAgIHRoaXMuZm9ybUFycmF5LnZhbHVlID0gW3sgY29kZTogbnVsbCwgaWQ6IG51bGwsIHZhbHVlOiB7IGNvZGU6IG51bGwgfSB9XVxuICAgICAqICAgNCwgNSwgNiwgZXRjIC0gdGhlIHNhbWUgYXMgMy5cbiAgICAgKi9cbiAgICBsZXQgZ3JvdXA6IEZvcm1Hcm91cDtcbiAgICBpZiAodGhpcy5mb3JtQXJyYXkgJiYgKGluZGV4IDwgdGhpcy5mb3JtQXJyYXkubGVuZ3RoKSkge1xuICAgICAgZ3JvdXAgPSB0aGlzLmZvcm1BcnJheS5hdChpbmRleCkgYXMgRm9ybUdyb3VwO1xuICAgIH0gZWxzZSB7XG4gICAgICBncm91cCA9IG5ldyBGb3JtR3JvdXAoe30pO1xuICAgIH1cblxuICAgIGxldCB2YWx1ZTtcbiAgICBpZiAodGhpcy5pc0NvbGxlY3Rpb25PZlNpbXBsZVR5cGUodGhpcy5jYXNlRmllbGQpKSB7XG4gICAgICB2YWx1ZSA9IGdyb3VwLmdldCgndmFsdWUnKSBhcyBGb3JtQ29udHJvbDtcbiAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgdmFsdWUgPSBuZXcgRm9ybUNvbnRyb2woaXRlbS52YWx1ZSk7XG4gICAgICAgIC8vIE5vdyBhZGQgdGhlIHZhbHVlIEZvcm1Db250cm9sIHRvIHRoZSBvdXRlciBncm91cC5cbiAgICAgICAgZ3JvdXAuYWRkQ29udHJvbCgndmFsdWUnLCB2YWx1ZSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhbHVlID0gZ3JvdXAuZ2V0KCd2YWx1ZScpIGFzIEZvcm1Hcm91cDtcbiAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgdmFsdWUgPSBuZXcgRm9ybUdyb3VwKHt9KTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMoZ3JvdXAuY29udHJvbHMpKSB7XG4gICAgICAgICAgdmFsdWUuYWRkQ29udHJvbChrZXksIGdyb3VwLmdldChrZXkpKTtcbiAgICAgICAgICAvLyBET04nVCByZW1vdmUgdGhlIGNvbnRyb2wgZm9yIHRoaXMga2V5IGZyb20gdGhlIG91dGVyIGdyb3VwIG9yIGl0XG4gICAgICAgICAgLy8gZ29lcyBhd3J5LiBTbyBET04nVCB1bmNvbW1lbnQgdGhlIGJlbG93IGxpbmUhXG4gICAgICAgICAgLy8gZ3JvdXAucmVtb3ZlQ29udHJvbChrZXkpO1xuICAgICAgICB9XG4gICAgICAgIC8vIE5vdyBhZGQgdGhlIHZhbHVlIEZvcm1Hcm91cCB0byB0aGUgb3V0ZXIgZ3JvdXAuXG4gICAgICAgIGdyb3VwLmFkZENvbnRyb2woJ3ZhbHVlJywgdmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgICBsZXQgaWQgPSBncm91cC5nZXQoJ2lkJykgYXMgRm9ybUNvbnRyb2w7XG4gICAgLy8gSWYgd2UncmUgbm90IGluIHNjZW5hcmlvIDMsIGFib3ZlLCB3ZSBuZWVkIHRvIGRvIHNvbWUgamlnZ2VyeSBwb2tlcnlcbiAgICAvLyBhbmQgc2V0IHVwIHRoZSBpZCBhbmQgdmFsdWUgY29udHJvbHMuXG4gICAgLy8gQWxzbyBzZXQgdXAgYW4gaWQgY29udHJvbCBpZiBpdCBkb2Vzbid0IHlldCBleGlzdC5cbiAgICBpZiAoIWlkKSB7XG4gICAgICBpZCA9IG5ldyBGb3JtQ29udHJvbChpdGVtLmlkKTtcbiAgICAgIGdyb3VwLmFkZENvbnRyb2woJ2lkJywgaWQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFnYWluLCB2ZXJ5IHNvcnJ5LiBJJ3ZlIG5vdCBmb3VuZCBhIGJldHRlciB3YXkgdG8gcHJvZHVjZSB0aGVcbiAgICAgKiBvdXRwdXQgbmVlZGVkIGZvciB3aGF0IG5lZWRzIHRvIGJlIHNlbnQgdG8gdGhlIHNlcnZlciB5ZXQuXG4gICAgICovXG5cbiAgICAvLyBOb3csIGFkZCB0aGUgb3V0ZXIgZ3JvdXAgdG8gdGhlIGFycmF5IChvciByZXBsYWNlIGl0KS5cbiAgICBpZiAoaW5kZXggPCB0aGlzLmZvcm1BcnJheS5sZW5ndGgpIHtcbiAgICAgIHRoaXMuZm9ybUFycmF5LnNldENvbnRyb2woaW5kZXgsIGdyb3VwKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5mb3JtQXJyYXkucHVzaChncm91cCk7XG4gICAgfVxuXG4gICAgLy8gTm93IHNldCB1cCB0aGUgQ2FzZUZpZWxkIGFuZCB2YWxpZGF0aW9uLlxuICAgIGxldCBjZmlkOiBzdHJpbmc7XG4gICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRm9ybUNvbnRyb2wpIHtcbiAgICAgIGNmaWQgPSAndmFsdWUnO1xuICAgIH0gZWxzZSB7XG4gICAgICBjZmlkID0gaW5kZXgudG9TdHJpbmcoKTtcbiAgICB9XG5cbiAgICAvLyBpc05ldzpcbiAgICBjb25zdCBjZjogQ2FzZUZpZWxkID0gdGhpcy5uZXdDYXNlRmllbGQoY2ZpZCwgaXRlbSwgaW5kZXgsIGlzTmV3KTtcbiAgICBGb3JtVmFsaWRhdG9yc1NlcnZpY2UuYWRkVmFsaWRhdG9ycyhjZiwgdmFsdWUpO1xuICAgIEZpZWxkc1V0aWxzLmFkZENhc2VGaWVsZEFuZENvbXBvbmVudFJlZmVyZW5jZXModmFsdWUsIGNmLCB0aGlzKTtcbiAgICByZXR1cm4gY2Y7XG4gIH1cblxuICBwdWJsaWMgYnVpbGRJZFByZWZpeChpbmRleDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICBjb25zdCBwcmVmaXggPSBgJHt0aGlzLmlkUHJlZml4fSR7dGhpcy5jYXNlRmllbGQuaWR9X2A7XG4gICAgaWYgKHRoaXMuY2FzZUZpZWxkLmZpZWxkX3R5cGUuY29sbGVjdGlvbl9maWVsZF90eXBlLnR5cGUgPT09ICdDb21wbGV4Jykge1xuICAgICAgcmV0dXJuIGAke3ByZWZpeH0ke2luZGV4fV9gO1xuICAgIH1cbiAgICByZXR1cm4gcHJlZml4O1xuICB9XG5cbiAgcHVibGljIGlzU2VhcmNoRmlsdGVyKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzSW5TZWFyY2hCbG9jayAmJiB0aGlzLmNvbGxJdGVtcy5sZW5ndGggPiAwO1xuICB9XG5cbiAgcHVibGljIGFkZEl0ZW0oZG9TY3JvbGw6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAvLyBNYW51YWxseSByZXNldHRpbmcgZXJyb3JzIGlzIHJlcXVpcmVkIHRvIHByZXZlbnQgYEV4cHJlc3Npb25DaGFuZ2VkQWZ0ZXJJdEhhc0JlZW5DaGVja2VkRXJyb3JgXG4gICAgdGhpcy5mb3JtQXJyYXkuc2V0RXJyb3JzKG51bGwpO1xuICAgIGxldCBpdGVtID0geyB2YWx1ZTogbnVsbCB9XG5cbiAgICBpZiAoIHRoaXMuaXNDb2xsZWN0aW9uRHluYW1pYygpICkge1xuICAgICAgaXRlbSAgPSB7Li4udGhpcy5jYXNlRmllbGQudmFsdWVbdGhpcy5jYXNlRmllbGQudmFsdWUubGVuZ3RoIC0gMV19O1xuICAgICAgY29uc3Qga2V5OiBudW1iZXIgPSBOdW1iZXIoaXRlbVsnaWQnXVtpdGVtWydpZCddLmxlbmd0aCAtIDFdKSArIDE7XG4gICAgICAoaXRlbSBhcyBhbnkpLmlkID0gaXRlbVsnaWQnXS5yZXBsYWNlKC8uJC8sIGtleS50b1N0cmluZygpICk7XG4gICAgfVxuICAgIHRoaXMuY2FzZUZpZWxkLnZhbHVlLnB1c2goaXRlbSk7XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLmNhc2VGaWVsZC52YWx1ZS5sZW5ndGggLSAxO1xuICAgIGNvbnN0IGNhc2VGaWVsZDogQ2FzZUZpZWxkID0gdGhpcy5idWlsZENhc2VGaWVsZChpdGVtLCBpbmRleCwgdHJ1ZSk7XG4gICAgY29uc3QgcHJlZml4ID0gdGhpcy5idWlsZElkUHJlZml4KGluZGV4KTtcbiAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmdldENvbnRhaW5lcihpbmRleCk7XG4gICAgdGhpcy5jb2xsSXRlbXMucHVzaCh7IGNhc2VGaWVsZCwgaXRlbSwgaW5kZXgsIHByZWZpeCwgY29udGFpbmVyIH0pO1xuXG4gICAgLy8gVGltZW91dCBpcyByZXF1aXJlZCBmb3IgdGhlIGNvbGxlY3Rpb24gaXRlbSB0byBiZSByZW5kZXJlZCBiZWZvcmUgaXQgY2FuIGJlIHNjcm9sbGVkIHRvIG9yIGZvY3VzZWQuXG4gICAgaWYgKGRvU2Nyb2xsKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5zY3JvbGxUb1NlcnZpY2Uuc2Nyb2xsVG8oe1xuICAgICAgICAgIHRhcmdldDogYCR7dGhpcy5idWlsZElkUHJlZml4KGluZGV4KX0ke2luZGV4fWAsXG4gICAgICAgICAgZHVyYXRpb246IDEwMDAsXG4gICAgICAgICAgb2Zmc2V0OiAtMTUwLFxuICAgICAgICB9KVxuICAgICAgICAgIC5waXBlKGZpbmFsaXplKCgpID0+IHRoaXMuZm9jdXNMYXN0SXRlbSgpKSlcbiAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHsgfSwgY29uc29sZS5lcnJvcik7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmZvY3VzTGFzdEl0ZW0oKSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpc0NvbGxlY3Rpb25EeW5hbWljKCk6IGJvb2xlYW4ge1xuICAgIGlmICghdGhpcy5jYXNlRmllbGQuZmllbGRfdHlwZSB8fCAhdGhpcy5jYXNlRmllbGQuZmllbGRfdHlwZS5jb2xsZWN0aW9uX2ZpZWxkX3R5cGUpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuY2FzZUZpZWxkLmZpZWxkX3R5cGUuY29sbGVjdGlvbl9maWVsZF90eXBlLmlkID09PSAnRHluYW1pY1JhZGlvTGlzdCc7XG4gIH1cblxuICBwcml2YXRlIG5ld0Nhc2VGaWVsZChpZDogc3RyaW5nLCBpdGVtLCBpbmRleCwgaXNOZXcgPSBmYWxzZSkge1xuICAgIGNvbnN0IGlzTm90QXV0aG9yaXNlZFRvVXBkYXRlID0gIWlzTmV3ICYmIHRoaXMuaXNOb3RBdXRob3Jpc2VkVG9VcGRhdGUoaW5kZXgpO1xuXG4gICAgY29uc3QgZmllbGRUeXBlID0gcGxhaW5Ub0NsYXNzRnJvbUV4aXN0KG5ldyBGaWVsZFR5cGUoKSwgdGhpcy5jYXNlRmllbGQuZmllbGRfdHlwZS5jb2xsZWN0aW9uX2ZpZWxkX3R5cGUpO1xuICAgIGlmIChmaWVsZFR5cGUuY29tcGxleF9maWVsZHMpIHtcbiAgICAgIGZpZWxkVHlwZS5jb21wbGV4X2ZpZWxkc1xuICAgICAgICAuZmlsdGVyKChjZjogQ2FzZUZpZWxkKSA9PiAhIWNmLnNob3dfY29uZGl0aW9uKVxuICAgICAgICAubWFwKChjZjogQ2FzZUZpZWxkKSA9PiBjZi5oaWRkZW4gPSB0cnVlKTtcbiAgICB9XG5cbiAgICAvLyBSZW1vdmUgdGhlIGJpdCBzZXR0aW5nIHRoZSBoaWRkZW4gZmxhZyBoZXJlIGFzIGl0J3MgYW4gaXRlbSBpbiB0aGUgYXJyYXkgYW5kXG4gICAgLy8gaXRzIGhpZGRlbiBzdGF0ZSBpc24ndCBpbmRlcGVuZGVudGx5IHJlLWV2YWx1YXRlZCB3aGVuIHRoZSBmb3JtIGlzIGNoYW5nZWQuXG4gICAgcmV0dXJuIHBsYWluVG9DbGFzc0Zyb21FeGlzdChuZXcgQ2FzZUZpZWxkKCksIHtcbiAgICAgIGlkLFxuICAgICAgZmllbGRfdHlwZTogZmllbGRUeXBlLFxuICAgICAgZGlzcGxheV9jb250ZXh0OiBpc05vdEF1dGhvcmlzZWRUb1VwZGF0ZSA/ICdSRUFET05MWScgOiB0aGlzLmNhc2VGaWVsZC5kaXNwbGF5X2NvbnRleHQsXG4gICAgICB2YWx1ZTogaXRlbS52YWx1ZSxcbiAgICAgIGxhYmVsOiBudWxsLFxuICAgICAgYWNsczogdGhpcy5jYXNlRmllbGQuYWNsc1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDb250YWluZXIoaW5kZXg6IG51bWJlcik6IEZvcm1Hcm91cCB7XG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLmZvcm1BcnJheS5hdChpbmRleCkuZ2V0KCd2YWx1ZScpO1xuICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEZvcm1Hcm91cCkge1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5mb3JtQXJyYXkuYXQoaW5kZXgpIGFzIEZvcm1Hcm91cDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGZvY3VzTGFzdEl0ZW0oKSB7XG4gICAgY29uc3QgaXRlbTogYW55ID0gdGhpcy5pdGVtcy5sYXN0Lm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLmZvcm0tY29udHJvbCcpO1xuICAgIGlmIChpdGVtKSB7XG4gICAgICBpdGVtLmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVJdGVtKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLmNvbGxJdGVtcy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgIHRoaXMucmVzZXRJZHMoaW5kZXgpO1xuICAgIHRoaXMuY2FzZUZpZWxkLnZhbHVlLnNwbGljZShpbmRleCwgMSk7XG4gICAgdGhpcy5mb3JtQXJyYXkucmVtb3ZlQXQoaW5kZXgpO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNldElkcyhpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgZm9yIChsZXQgaSA9IGluZGV4OyBpIDwgdGhpcy5jb2xsSXRlbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IGNvdW50ZXIgPSBpICsgMTtcbiAgICAgIGlmICh0aGlzLmNvbGxJdGVtc1tpXS5pbmRleCAmJiB0aGlzLmNvbGxJdGVtc1tpXS5pbmRleCA9PT0gY291bnRlcikge1xuICAgICAgICB0aGlzLmNvbGxJdGVtc1tpXS5pbmRleCA9IGk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLmNvbGxJdGVtc1tpXS5jYXNlRmllbGQgJiYgdGhpcy5jb2xsSXRlbXNbaV0uY2FzZUZpZWxkLmlkXG4gICAgICAgICYmIHRoaXMuY29sbEl0ZW1zW2ldLmNhc2VGaWVsZC5pZCA9PT0gY291bnRlci50b1N0cmluZygpKSB7XG4gICAgICAgIHRoaXMuY29sbEl0ZW1zW2ldLmNhc2VGaWVsZC5pZCA9IGkudG9TdHJpbmcoKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgaWRQcmVmaXgxID0gdGhpcy5jb2xsSXRlbXNbaV0ucHJlZml4ID8gdGhpcy5jb2xsSXRlbXNbaV0ucHJlZml4LnJlcGxhY2UoJ18nICsgY291bnRlci50b1N0cmluZygpLCAnXycgKyBpLnRvU3RyaW5nKCkpIDogJyc7XG4gICAgICBjb25zdCBpZFByZWZpeDFDdXJyZW50ID0gaWRQcmVmaXgxLnJlcGxhY2UoJ18nICsgaS50b1N0cmluZygpLCAnXycgKyBjb3VudGVyLnRvU3RyaW5nKCkpO1xuXG4gICAgICBpZiAodGhpcy5jb2xsSXRlbXNbaV0ucHJlZml4ICYmIHRoaXMuY29sbEl0ZW1zW2ldLnByZWZpeCA9PT0gaWRQcmVmaXgxQ3VycmVudCkge1xuICAgICAgICB0aGlzLmNvbGxJdGVtc1tpXS5wcmVmaXggPSBpZFByZWZpeDE7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGlkUHJlZml4QXZhaWxhYmxlID0gdGhpcy5jb2xsSXRlbXNbaV0uY29udGFpbmVyICYmIHRoaXMuY29sbEl0ZW1zW2ldLmNvbnRhaW5lclsnY29tcG9uZW50J11cbiAgICAgICAgJiYgdGhpcy5jb2xsSXRlbXNbaV0uY29udGFpbmVyWydjb21wb25lbnQnXS5pZFByZWZpeCA/IHRydWUgOiBmYWxzZTtcblxuICAgICAgY29uc3QgaWRQcmVmaXgyID0gaWRQcmVmaXhBdmFpbGFibGUgP1xuICAgICAgICB0aGlzLmNvbGxJdGVtc1tpXS5jb250YWluZXJbJ2NvbXBvbmVudCddLmlkUHJlZml4LnJlcGxhY2UoJ18nICsgY291bnRlci50b1N0cmluZygpLCAnXycgKyBpLnRvU3RyaW5nKCkpIDogJyc7XG4gICAgICBjb25zdCBpZFByZWZpeDJjdXJyZW50ID0gaWRQcmVmaXgyLnJlcGxhY2UoJ18nICsgaS50b1N0cmluZygpLCAnXycgKyBjb3VudGVyLnRvU3RyaW5nKCkpO1xuXG4gICAgICBpZiAoaWRQcmVmaXhBdmFpbGFibGUgJiYgdGhpcy5jb2xsSXRlbXNbaV0uY29udGFpbmVyWydjb21wb25lbnQnXS5pZFByZWZpeCA9PT0gaWRQcmVmaXgyY3VycmVudCkge1xuICAgICAgICB0aGlzLmNvbGxJdGVtc1tpXS5jb250YWluZXJbJ2NvbXBvbmVudCddLmlkUHJlZml4ID0gaWRQcmVmaXgyO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBpdGVtTGFiZWwoaW5kZXg6IG51bWJlcikge1xuICAgIGlmIChpbmRleCkge1xuICAgICAgcmV0dXJuIGAke3RoaXMuY2FzZUZpZWxkLmxhYmVsfSAke2luZGV4ICsgMX1gO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5jYXNlRmllbGQubGFiZWw7XG4gIH1cblxuICBwdWJsaWMgaXNOb3RBdXRob3Jpc2VkVG9DcmVhdGUoKSB7XG4gICAgaWYgKHRoaXMuaXNFeHBhbmRlZCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gIXRoaXMuZ2V0Q29sbGVjdGlvblBlcm1pc3Npb24odGhpcy5jYXNlRmllbGQsICdhbGxvd0luc2VydCcpO1xuICB9XG5cbiAgcHVibGljIGdldENvbGxlY3Rpb25QZXJtaXNzaW9uKGZpZWxkOiBDYXNlRmllbGQsIHR5cGU6IHN0cmluZykge1xuICAgIHJldHVybiBmaWVsZC5kaXNwbGF5X2NvbnRleHRfcGFyYW1ldGVyICYmXG4gICAgICBmaWVsZC5kaXNwbGF5X2NvbnRleHRfcGFyYW1ldGVyLnNwbGl0KCcjJylcbiAgICAgICAgLmZpbHRlcihpdGVtID0+IGl0ZW0uc3RhcnRzV2l0aCgnQ09MTEVDVElPTignKSlbMF1cbiAgICAgICAgLmluY2x1ZGVzKHR5cGUpO1xuICB9XG5cbiAgcHVibGljIGlzTm90QXV0aG9yaXNlZFRvVXBkYXRlKGluZGV4KSB7XG4gICAgaWYgKHRoaXMuaXNFeHBhbmRlZCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICAvLyBXYXMgcmVhc3Nlc2VkIGFzIHBhcnQgb2YgRVVJLTM1MDUuIFRoZXJlIGlzIHN0aWxsIGEgY2F2ZWF0IGFyb3VuZCBDUkQsIGJ1dCB0aGF0IHdhcyBkZWVtZWQgYW4gdW5saWtlbHkgc2NlbmFyaW9cbiAgICBjb25zdCBpZCA9IHRoaXMuZ2V0Q29udHJvbElkQXQoaW5kZXgpO1xuICAgIGlmIChpZCkge1xuICAgICAgaWYgKCEhdGhpcy5wcm9maWxlLnVzZXIgJiYgISF0aGlzLnByb2ZpbGUudXNlci5pZGFtKSB7XG4gICAgICAgIGNvbnN0IHVwZGF0ZVJvbGUgPSB0aGlzLnByb2ZpbGUudXNlci5pZGFtLnJvbGVzLmZpbmQocm9sZSA9PiB0aGlzLmhhc1VwZGF0ZUFjY2Vzcyhyb2xlKSk7XG4gICAgICAgIHJldHVybiAhdXBkYXRlUm9sZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHVibGljIGhhc1VwZGF0ZUFjY2Vzcyhyb2xlOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLmNhc2VGaWVsZC5hY2xzLmZpbmQoYWNsID0+IGFjbC5yb2xlID09PSByb2xlICYmIGFjbC51cGRhdGUgPT09IHRydWUpO1xuICB9XG5cbiAgcHVibGljIGlzTm90QXV0aG9yaXNlZFRvRGVsZXRlKGluZGV4OiBudW1iZXIpIHtcbiAgICBpZiAodGhpcy5pc0V4cGFuZGVkKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIC8vIFNob3VsZCBiZSBhYmxlIHRvIGRlbGV0ZSBpZiBjcmVhdGluZyBhIGNhc2UgZXZlbiBpZiBcIkRcIiBpcyBhYnNlbnQsIGhlbmNlOlxuICAgIGNvbnN0IGlkID0gdGhpcy5nZXRDb250cm9sSWRBdChpbmRleCk7XG4gICAgcmV0dXJuICEhaWQgJiYgIXRoaXMuZ2V0Q29sbGVjdGlvblBlcm1pc3Npb24odGhpcy5jYXNlRmllbGQsICdhbGxvd0RlbGV0ZScpO1xuICB9XG5cbiAgcHVibGljIG9wZW5Nb2RhbChpOiBudW1iZXIpIHtcbiAgICBjb25zdCBkaWFsb2dDb25maWcgPSBuZXcgTWF0RGlhbG9nQ29uZmlnKCk7XG4gICAgZGlhbG9nQ29uZmlnLmRpc2FibGVDbG9zZSA9IHRydWU7XG4gICAgZGlhbG9nQ29uZmlnLmF1dG9Gb2N1cyA9IHRydWU7XG4gICAgZGlhbG9nQ29uZmlnLmFyaWFMYWJlbCA9ICdMYWJlbCc7XG4gICAgZGlhbG9nQ29uZmlnLmhlaWdodCA9ICcyMjBweCc7XG4gICAgZGlhbG9nQ29uZmlnLndpZHRoID0gJzU1MHB4JztcbiAgICBkaWFsb2dDb25maWcucGFuZWxDbGFzcyA9ICdkaWFsb2cnO1xuXG4gICAgZGlhbG9nQ29uZmlnLmNsb3NlT25OYXZpZ2F0aW9uID0gZmFsc2U7XG4gICAgZGlhbG9nQ29uZmlnLnBvc2l0aW9uID0ge1xuICAgICAgdG9wOiBgJHt3aW5kb3cuaW5uZXJIZWlnaHQgLyAyIC0gMTEwfXB4YCwgbGVmdDogYCR7d2luZG93LmlubmVyV2lkdGggLyAyIC0gMjc1fXB4YFxuICAgIH07XG5cbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFJlbW92ZURpYWxvZ0NvbXBvbmVudCwgZGlhbG9nQ29uZmlnKTtcblxuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZShyZXN1bHQgPT4ge1xuICAgICAgaWYgKHJlc3VsdCA9PT0gJ1JlbW92ZScpIHtcbiAgICAgICAgdGhpcy5yZW1vdmVJdGVtKGkpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFwcGxpZWQgZnVsbCBzb2x1dGlvbiBhcyBwYXJ0IG9mIEVVSS0zNTA1XG4gICAqL1xuICBwcml2YXRlIGdldENvbnRyb2xJZEF0KGluZGV4OiBudW1iZXIpOiBzdHJpbmcge1xuXG4gICAgLy8gdGhpcy5mb3JtQXJyYXkgY29udGFpbnMgWyBGb3JtR3JvdXAoIGlkOiBGb3JtQ29udHJvbCwgdmFsdWU6IEZvcm1Hcm91cCApLCAuLi4gXS5cbiAgICAvLyBIZXJlLCB3ZSBuZWVkIHRvIGdldCB0aGUgdmFsdWUgb2YgdGhlIGlkIEZvcm1Db250cm9sLlxuICAgIGNvbnN0IGdyb3VwOiBGb3JtR3JvdXAgPSB0aGlzLmZvcm1BcnJheS5hdChpbmRleCkgYXMgRm9ybUdyb3VwO1xuICAgIGNvbnN0IGNvbnRyb2w6IEZvcm1Db250cm9sID0gZ3JvdXAuZ2V0KCdpZCcpIGFzIEZvcm1Db250cm9sO1xuICAgIHJldHVybiBjb250cm9sID8gY29udHJvbC52YWx1ZSA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgaXNDb2xsZWN0aW9uT2ZTaW1wbGVUeXBlKGNhc2VGaWVsZDogQ2FzZUZpZWxkKSB7XG4gICAgY29uc3Qgbm90U2ltcGxlID0gWydDb2xsZWN0aW9uJywgJ0NvbXBsZXgnXTtcbiAgICByZXR1cm4gbm90U2ltcGxlLmluZGV4T2YoY2FzZUZpZWxkLmZpZWxkX3R5cGUuY29sbGVjdGlvbl9maWVsZF90eXBlLnR5cGUpIDwgMDtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIiBbaWRdPVwiaWQoKVwiPlxuXG4gIDxkaXYgY2xhc3M9XCJwYW5lbCBjb2xsZWN0aW9uLWluZGljYXRvclwiPlxuXG4gICAgPGgyIGNsYXNzPVwiaGVhZGluZy1oMiBlcnJvci1zcGFjaW5nXCI+XG4gICAgICB7e2Nhc2VGaWVsZCB8IGNjZEZpZWxkTGFiZWx9fVxuICAgIDwvaDI+XG4gICAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvbiB3cml0ZS1jb2xsZWN0aW9uLWFkZC1pdGVtX190b3BcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImFkZEl0ZW0odHJ1ZSlcIiBbZGlzYWJsZWRdPVwiaXNOb3RBdXRob3Jpc2VkVG9DcmVhdGUoKSB8fCBpc1NlYXJjaEZpbHRlcigpXCI+QWRkIG5ldzwvYnV0dG9uPlxuICAgIDxoMiBjbGFzcz1cImhlYWRpbmctaDIgZXJyb3Itc3BhY2luZ1wiICpuZ0lmPVwiY2FzZUZpZWxkLmhpbnRfdGV4dCB8fCBmb3JtQXJyYXkuZXJyb3JzXCI+XG4gICAgICA8c3BhbiAqbmdJZj1cImNhc2VGaWVsZC5oaW50X3RleHRcIiBjbGFzcz1cImZvcm0taGludFwiPnt7Y2FzZUZpZWxkLmhpbnRfdGV4dH19PC9zcGFuPlxuICAgICAgPHNwYW4gKm5nSWY9XCJmb3JtQXJyYXkuZXJyb3JzXCIgY2xhc3M9XCJlcnJvci1tZXNzYWdlXCI+e3tmb3JtQXJyYXkuZXJyb3JzIHwgY2NkRmlyc3RFcnJvcjpjYXNlRmllbGQubGFiZWx9fTwvc3Bhbj5cbiAgICA8L2gyPlxuXG4gICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIiBbaGlkZGVuXT1cImNhc2VGaWVsZC5oaWRkZW5cIiAqbmdJZj1cImNhc2VGaWVsZC52YWx1ZSAmJiBjYXNlRmllbGQudmFsdWUubGVuZ3RoXCI+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgY29sbEl0ZW1zOyBsZXQgaSA9IGluZGV4XCIgI2NvbGxlY3Rpb25JdGVtPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sbGVjdGlvbi10aXRsZVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbG9hdC1sZWZ0XCI+XG4gICAgICAgICAgICA8bGFiZWwgW2Zvcl09XCJpdGVtLnByZWZpeCArIGlcIj48aDMgY2xhc3M9XCJoZWFkaW5nLWgzXCI+e3tpdGVtTGFiZWwoaSl9fTwvaDM+PC9sYWJlbD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxvYXQtcmlnaHRcIj5cbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidXR0b24gYnV0dG9uLXNlY29uZGFyeVwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwib3Blbk1vZGFsKGkpXCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImlzTm90QXV0aG9yaXNlZFRvRGVsZXRlKGkpXCJcbiAgICAgICAgICAgICAgICAgICAgYXR0ci5hcmlhLWxhYmVsPVwiUmVtb3ZlIHt7IGl0ZW1MYWJlbChpKSB9fVwiPlJlbW92ZTwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGNjZC1maWVsZC13cml0ZSBbY2FzZUZpZWxkXT1cIml0ZW0uY2FzZUZpZWxkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbY2FzZUZpZWxkc109XCJjYXNlRmllbGRzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgW3BhcmVudF09XCJpdGVtLmNvbnRhaW5lclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgW2lkUHJlZml4XT1cIml0ZW0ucHJlZml4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbaGlkZGVuXT1cIml0ZW0uY2FzZUZpZWxkLmhpZGRlblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgW2lzRXhwYW5kZWRdPVwiaXNFeHBhbmRlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgW2lzSW5TZWFyY2hCbG9ja109XCJpc0luU2VhcmNoQmxvY2tcIj5cbiAgICAgICAgPC9jY2QtZmllbGQtd3JpdGU+XG4gICAgICA8L2Rpdj5cblxuICAgIDwvZGl2PlxuXG4gICAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvbiB3cml0ZS1jb2xsZWN0aW9uLWFkZC1pdGVtX19ib3R0b21cIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImFkZEl0ZW0oZmFsc2UpXCIgW2Rpc2FibGVkXT1cImlzTm90QXV0aG9yaXNlZFRvQ3JlYXRlKCkgfHwgaXNTZWFyY2hGaWx0ZXIoKVwiICpuZ0lmPVwiY2FzZUZpZWxkLnZhbHVlICYmIGNhc2VGaWVsZC52YWx1ZS5sZW5ndGhcIj5BZGQgbmV3PC9idXR0b24+XG5cbiAgPC9kaXY+XG5cbjwvZGl2PiJdfQ==
|
|
@@ -279,13 +279,13 @@ export class ReadComplexFieldCollectionTableComponent extends AbstractFieldReadC
|
|
|
279
279
|
field.value = { CaseReference: value };
|
|
280
280
|
return field;
|
|
281
281
|
}
|
|
282
|
-
toCaseField(id, label,
|
|
282
|
+
toCaseField(id, label, field_type, value) {
|
|
283
283
|
return plainToClassFromExist(new CaseField(), {
|
|
284
284
|
id,
|
|
285
285
|
label,
|
|
286
286
|
display_context: 'READONLY',
|
|
287
287
|
value,
|
|
288
|
-
field_type
|
|
288
|
+
field_type
|
|
289
289
|
});
|
|
290
290
|
}
|
|
291
291
|
sortRowsByColumns(column) {
|
|
@@ -411,4 +411,4 @@ const ɵReadComplexFieldCollectionTableComponent_BaseFactory = /*@__PURE__*/ i0.
|
|
|
411
411
|
styleUrls: ['./read-complex-field-collection-table.scss']
|
|
412
412
|
}]
|
|
413
413
|
}], null, null); })();
|
|
414
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZC1jb21wbGV4LWZpZWxkLWNvbGxlY3Rpb24tdGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvY29tcGxleC9yZWFkLWNvbXBsZXgtZmllbGQtY29sbGVjdGlvbi10YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvcGFsZXR0ZS9jb21wbGV4L3JlYWQtY29tcGxleC1maWVsZC1jb2xsZWN0aW9uLXRhYmxlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUVsRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdkQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDekYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7OztJQ0luQyw2QkFBZ0Q7SUFDOUMsK0JBQXNCO0lBQUEsWUFBbUM7SUFBQSxpQkFBTztJQUNoRSw0QkFHdUQ7SUFGcEQseVBBQW9DO0lBRWdCLGlCQUFJO0lBQzdELGlCQUFLOzs7O0lBTG1CLGVBQW1DO0lBQW5DLCtEQUFtQztJQUl0RCxlQUFtRDtJQUFuRCxxR0FBbUQ7OztJQVdsRCwyQkFBNkM7SUFDM0MscUNBRXVDO0lBQ3pDLGlCQUFNOzs7OztJQUZGLGVBQTRHO0lBQTVHLDRKQUE0Ryw0QkFBQTs7O0lBSTlHLDJCQUFLO0lBQUEsc0JBQU07SUFBQSxpQkFBTTs7O0lBUnZCLDZCQUE4QztJ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d0M7NkVBQXhDLHdDQUF3QztRQ1pyRCw4QkFBdUQ7UUFDckQsNkJBQWdDO1FBQzlCLDBCQUFJO1FBQUEsK0JBQXNCO1FBQUEsWUFBbUI7UUFBQSxpQkFBTztRQUFBLGlCQUFLO1FBQ3pELHFCQUFTO1FBQ1gsaUJBQUs7UUFDTCxnQ0FBMEU7UUFDeEUsNkJBQU87UUFFUCwwQkFBSTtRQUNGLHVGQU1LO1FBQ0wsc0JBQVM7UUFDWCxpQkFBSztRQUVMLCtHQXNFZTtRQUNmLGlCQUFRO1FBQ1YsaUJBQVE7UUFDVixpQkFBTTs7UUE1RnFCLDZDQUEyQjtRQUV4QixlQUFtQjtRQUFuQix5Q0FBbUI7UUFPbkIsZUFBVTtRQUFWLHFDQUFVO1FBVUwsZUFBUztRQUFULGtDQUFTOztxR0RQL0Isd0NBQXdDO3VGQUF4Qyx3Q0FBd0M7Y0FMcEQsU0FBUztlQUFDO2dCQUNULFFBQVEsRUFBRSx5Q0FBeUM7Z0JBQ25ELFdBQVcsRUFBRSw0Q0FBNEM7Z0JBQ3pELFNBQVMsRUFBRSxDQUFDLDRDQUE0QyxDQUFDO2FBQzFEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgcGxhaW5Ub0NsYXNzRnJvbUV4aXN0IH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuaW1wb3J0IHsgQ2FzZUZpZWxkIH0gZnJvbSAnLi4vLi4vLi4vZG9tYWluL2RlZmluaXRpb24nO1xuaW1wb3J0IHsgQWJzdHJhY3RGaWVsZFJlYWRDb21wb25lbnQgfSBmcm9tICcuLi9iYXNlLWZpZWxkL2Fic3RyYWN0LWZpZWxkLXJlYWQuY29tcG9uZW50JztcbmltcG9ydCB7IFNvcnRPcmRlciB9IGZyb20gJy4vc29ydC1vcmRlcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NjZC1yZWFkLWNvbXBsZXgtZmllbGQtY29sbGVjdGlvbi10YWJsZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9yZWFkLWNvbXBsZXgtZmllbGQtY29sbGVjdGlvbi10YWJsZS5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcmVhZC1jb21wbGV4LWZpZWxkLWNvbGxlY3Rpb24tdGFibGUuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFJlYWRDb21wbGV4RmllbGRDb2xsZWN0aW9uVGFibGVDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdEZpZWxkUmVhZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHB1YmxpYyBjb2x1bW5zOiBzdHJpbmdbXTtcbiAgcHVibGljIGNvbHVtbnNWZXJ0aWNhbExhYmVsOiBhbnk7XG4gIHB1YmxpYyBjb2x1bW5zSG9yaXpvbnRhbExhYmVsOiBhbnk7XG4gIHB1YmxpYyBjb2x1bW5zQWxsTGFiZWxzOiBhbnk7XG4gIHB1YmxpYyByb3dzOiBhbnlbXSA9IFtdO1xuICBwdWJsaWMgaXNIaWRkZW46IGJvb2xlYW5bXSA9IFtdO1xuICBwcml2YXRlIHN0YXRpYyBpc1NvcnRBc2NlbmRpbmcoY29sdW1uOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIShjb2x1bW4uc29ydE9yZGVyID09PSBTb3J0T3JkZXIuVU5TT1JURUQgfHwgY29sdW1uLnNvcnRPcmRlciA9PT0gU29ydE9yZGVyLkRFU0NFTkRJTkcpO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgaWYgKHRoaXMuY2FzZUZpZWxkLmRpc3BsYXlfY29udGV4dF9wYXJhbWV0ZXJcbiAgICAgICYmIHRoaXMuY2FzZUZpZWxkLmRpc3BsYXlfY29udGV4dF9wYXJhbWV0ZXIudHJpbSgpLnN0YXJ0c1dpdGgoJyNUQUJMRSgnKSkge1xuXG4gICAgICBjb25zdCBkaXNwbGF5Q29udGV4dFBhcmFtZXRlciA9IHRoaXMuY2FzZUZpZWxkLmRpc3BsYXlfY29udGV4dF9wYXJhbWV0ZXIudHJpbSgpO1xuICAgICAgY29uc3QgcmVzdWx0OiBzdHJpbmcgPSBkaXNwbGF5Q29udGV4dFBhcmFtZXRlci5yZXBsYWNlKCcjVEFCTEUoJywgJycpO1xuICAgICAgdGhpcy5jb2x1bW5zID0gcmVzdWx0LnJlcGxhY2UoJyknLCAnJykuc3BsaXQoJywnKS5tYXAoKGM6IHN0cmluZykgPT4gYy50cmltKCkpO1xuXG4gICAgICBjb25zdCBsYWJlbHNWZXJ0aWNhbDogeyBbazogc3RyaW5nXTogYW55IH0gPSB7fTtcbiAgICAgIGNvbnN0IGxhYmVsc0hvcml6b250YWw6IHsgW2s6IHN0cmluZ106IGFueSB9ID0ge307XG4gICAgICBjb25zdCBhbGxMYWJlbHM6IHsgW2s6IHN0cmluZ106IGFueSB9ID0ge307XG4gICAgICB0aGlzLnBvcHVsYXRlQ2FzZUZpZWxkVmFsdWVzSW50b1Jvd3MoKTtcbiAgICAgIHRoaXMucG9wdWxhdGVMYWJlbHMobGFiZWxzVmVydGljYWwsIGFsbExhYmVscyk7XG4gICAgICB0aGlzLnBvcHVsYXRlSG9yaXpvbnRhbExhYmVscyhsYWJlbHNIb3Jpem9udGFsLCBhbGxMYWJlbHMsIGxhYmVsc1ZlcnRpY2FsKTtcblxuICAgICAgdGhpcy5jb2x1bW5zVmVydGljYWxMYWJlbCA9IGxhYmVsc1ZlcnRpY2FsO1xuICAgICAgdGhpcy5jb2x1bW5zSG9yaXpvbnRhbExhYmVsID0gbGFiZWxzSG9yaXpvbnRhbDtcbiAgICAgIHRoaXMuY29sdW1uc0FsbExhYmVscyA9IGFsbExhYmVscztcblxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXRJbWFnZShyb3cpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmlzSGlkZGVuW3Jvd10pIHtcbiAgICAgIHJldHVybiAnaW1nL2FjY29yZGlvbi1wbHVzLnBuZyc7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLmlzVmVydGljbGVEYXRhTm90RW1wdHkocm93KSkge1xuICAgICAgICByZXR1cm4gJ2ltZy9hY2NvcmRpb24tbWludXMucG5nJztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuaXNIaWRkZW5bcm93XSA9IHRydWU7XG4gICAgICAgIHJldHVybiAnaW1nL2FjY29yZGlvbi1wbHVzLnBuZyc7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE5lZWRzIHRvIGJlIGNhbGxlZCBiZWZvcmUgJ2NjZEZpZWxkc0ZpbHRlcicgcGlwZSBpcyB1c2VkLCBhcyBpdCBuZWVkcyBhIGNhc2VGaWVsZCB2YWx1ZS5cbiAgICovXG4gIHB1YmxpYyBhZGRDYXNlRmllbGRWYWx1ZShmaWVsZCwgdmFsdWUpOiBib29sZWFuIHtcbiAgICBmaWVsZC52YWx1ZSA9IHZhbHVlO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcHVibGljIGlzTm90QmxhbmsodmFsdWU6IHN0cmluZykge1xuICAgIHJldHVybiB2YWx1ZSAhPT0gbnVsbCAmJiB2YWx1ZSAhPT0gJyc7XG4gIH1cblxuICBwdWJsaWMgYWRkQ2FzZVJlZmVyZW5jZVZhbHVlKGZpZWxkLCB2YWx1ZTogYW55KTogYW55IHtcbiAgICBmaWVsZC52YWx1ZSA9IHsgQ2FzZVJlZmVyZW5jZTogdmFsdWV9O1xuICAgIHJldHVybiBmaWVsZDtcbiAgfVxuXG4gIHB1YmxpYyB0b0Nhc2VGaWVsZChpZDogc3RyaW5nLCBsYWJlbDogc3RyaW5nLCBmaWVsZFR5cGU6IGFueSwgdmFsdWU6IGFueSk6IENhc2VGaWVsZCB7XG4gICAgcmV0dXJuIHBsYWluVG9DbGFzc0Zyb21FeGlzdChuZXcgQ2FzZUZpZWxkKCksIHtcbiAgICAgIGlkLFxuICAgICAgbGFiZWwsXG4gICAgICBkaXNwbGF5X2NvbnRleHQ6ICdSRUFET05MWScsXG4gICAgICB2YWx1ZSxcbiAgICAgIGZpZWxkX3R5cGU6IGZpZWxkVHlwZVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGtlZXBPcmlnaW5hbE9yZGVyID0gKGEsIGIpID0+IGEua2V5O1xuXG4gIHB1YmxpYyBzb3J0Um93c0J5Q29sdW1ucyhjb2x1bW4pOiB2b2lkIHtcbiAgICBjb25zdCBzaG91bGRTb3J0SW5Bc2NlbmRpbmdPcmRlciA9IHRoaXMuY29sdW1uc0hvcml6b250YWxMYWJlbFtjb2x1bW5dLnNvcnRPcmRlciA9PT0gU29ydE9yZGVyLlVOU09SVEVEXG4gICAgICB8fCB0aGlzLmNvbHVtbnNIb3Jpem9udGFsTGFiZWxbY29sdW1uXS5zb3J0T3JkZXIgPT09IFNvcnRPcmRlci5ERVNDRU5ESU5HO1xuXG4gICAgc3dpdGNoICh0aGlzLmNvbHVtbnNIb3Jpem9udGFsTGFiZWxbY29sdW1uXS50eXBlLnR5cGUpIHtcbiAgICAgIGNhc2UgJ051bWJlcic6XG4gICAgICBjYXNlICdNb25leUdCUCc6IHtcbiAgICAgICAgaWYgKHNob3VsZFNvcnRJbkFzY2VuZGluZ09yZGVyKSB7XG4gICAgICAgICAgdGhpcy5yb3dzLnNvcnQoKGEsIGIpID0+IGFbY29sdW1uXSAtIGJbY29sdW1uXSk7XG4gICAgICAgICAgdGhpcy5jb2x1bW5zSG9yaXpvbnRhbExhYmVsW2NvbHVtbl0uc29ydE9yZGVyID0gU29ydE9yZGVyLkFTQ0VORElORztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnJvd3Muc29ydCgoYSwgYikgPT4gYltjb2x1bW5dIC0gYVtjb2x1bW5dKTtcbiAgICAgICAgICB0aGlzLmNvbHVtbnNIb3Jpem9udGFsTGFiZWxbY29sdW1uXS5zb3J0T3JkZXIgPSBTb3J0T3JkZXIuREVTQ0VORElORztcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ1RleHQnOlxuICAgICAgY2FzZSAnVGV4dEFyZWEnOlxuICAgICAgY2FzZSAnRW1haWwnOlxuICAgICAgY2FzZSAnRGF0ZSc6XG4gICAgICBjYXNlICdEYXRlVGltZSc6XG4gICAgICBjYXNlICdMYWJlbCc6XG4gICAgICBjYXNlICdQb3N0Y29kZSc6XG4gICAgICBjYXNlICdZZXNPck5vJzpcbiAgICAgIGNhc2UgJ1Bob25lVUsnOlxuICAgICAgY2FzZSAnRml4ZWRMaXN0Jzoge1xuICAgICAgICBpZiAoc2hvdWxkU29ydEluQXNjZW5kaW5nT3JkZXIpIHtcbiAgICAgICAgICB0aGlzLnJvd3Muc29ydCgoYSwgYikgPT4gYVtjb2x1bW5dIDwgYltjb2x1bW5dID8gLTEgOiBhW2NvbHVtbl0gPiBiW2NvbHVtbl0gPyAxIDogMCk7XG4gICAgICAgICAgdGhpcy5jb2x1bW5zSG9yaXpvbnRhbExhYmVsW2NvbHVtbl0uc29ydE9yZGVyID0gU29ydE9yZGVyLkFTQ0VORElORztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnJvd3Muc29ydCgoYSwgYikgPT4gYVtjb2x1bW5dIDwgYltjb2x1bW5dID8gMSA6IGFbY29sdW1uXSA+IGJbY29sdW1uXSA/IC0xIDogMCk7XG4gICAgICAgICAgdGhpcy5jb2x1bW5zSG9yaXpvbnRhbExhYmVsW2NvbHVtbl0uc29ydE9yZGVyID0gU29ydE9yZGVyLkRFU0NFTkRJTkc7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNvcnRXaWRnZXQoY29sdW1uOiBhbnkpOiBzdHJpbmcge1xuICAgIHJldHVybiBSZWFkQ29tcGxleEZpZWxkQ29sbGVjdGlvblRhYmxlQ29tcG9uZW50LmlzU29ydEFzY2VuZGluZyhjb2x1bW4pID8gJyYjOTY2MDsnIDogJyYjOTY1MDsnO1xuICB9XG5cbiAgcHJpdmF0ZSBwb3B1bGF0ZUhvcml6b250YWxMYWJlbHMobGFiZWxzSG9yaXpvbnRhbDogeyBbcDogc3RyaW5nXTogYW55IH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbExhYmVsczogeyBbcDogc3RyaW5nXTogYW55IH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsc1ZlcnRpY2FsOiB7IFtwOiBzdHJpbmddOiBhbnkgfSk6IHZvaWQge1xuICAgIGZvciAoY29uc3QgaWQgb2YgdGhpcy5jb2x1bW5zKSB7XG4gICAgICBjb25zdCB0cmltbWVkSWQgPSBpZC50cmltKCk7XG4gICAgICBsYWJlbHNIb3Jpem9udGFsW3RyaW1tZWRJZF0gPSBhbGxMYWJlbHNbdHJpbW1lZElkXTtcbiAgICAgIGxhYmVsc0hvcml6b250YWxbdHJpbW1lZElkXS5zb3J0T3JkZXIgPSBTb3J0T3JkZXIuVU5TT1JURUQ7XG4gICAgICBkZWxldGUgbGFiZWxzVmVydGljYWxbdHJpbW1lZElkXTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHBvcHVsYXRlTGFiZWxzKGxhYmVsc1ZlcnRpY2FsOiB7IFtwOiBzdHJpbmddOiBhbnkgfSwgYWxsTGFiZWxzOiB7IFtwOiBzdHJpbmddOiBhbnkgfSk6IHZvaWQge1xuICAgIGZvciAoY29uc3Qgb2JqIG9mIHRoaXMuY2FzZUZpZWxkLmZpZWxkX3R5cGUuY29tcGxleF9maWVsZHMpIHtcbiAgICAgIGlmIChvYmouZmllbGRfdHlwZS50eXBlID09PSAnRml4ZWRMaXN0JyB8fFxuICAgICAgICBvYmouZmllbGRfdHlwZS50eXBlID09PSAnTXVsdGlTZWxlY3RMaXN0JyB8fFxuICAgICAgICBvYmouZmllbGRfdHlwZS50eXBlID09PSAnRml4ZWRSYWRpb0xpc3QnKSB7XG4gICAgICAgIGxhYmVsc1ZlcnRpY2FsW29iai5pZF0gPSB7bGFiZWw6IG9iai5sYWJlbCwgdHlwZTogb2JqLmZpZWxkX3R5cGUsIGNhc2VGaWVsZDogb2JqfTtcbiAgICAgICAgYWxsTGFiZWxzW29iai5pZF0gPSB7bGFiZWw6IG9iai5sYWJlbCwgdHlwZTogb2JqLmZpZWxkX3R5cGV9O1xuICAgICAgfSBlbHNlIGlmIChvYmouaXNDb21wbGV4KCkpIHtcbiAgICAgICAgbGFiZWxzVmVydGljYWxbb2JqLmlkXSA9IHtsYWJlbDogb2JqLmxhYmVsLCB0eXBlOiBvYmouZmllbGRfdHlwZS50eXBlLCBjYXNlRmllbGQ6IG9ian07XG4gICAgICAgIGFsbExhYmVsc1tvYmouaWRdID0ge2xhYmVsOiBvYmoubGFiZWwsIHR5cGU6IG9iai5maWVsZF90eXBlLnR5cGUsIGNhc2VGaWVsZDogb2JqfTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxhYmVsc1ZlcnRpY2FsW29iai5pZF0gPSB7bGFiZWw6IG9iai5sYWJlbCwgdHlwZToge3R5cGU6IG9iai5maWVsZF90eXBlLnR5cGV9LCBjYXNlRmllbGQ6IG9ian07XG4gICAgICAgIGFsbExhYmVsc1tvYmouaWRdID0ge2xhYmVsOiBvYmoubGFiZWwsIHR5cGU6IHt0eXBlOiBvYmouZmllbGRfdHlwZS50eXBlfSwgY2FzZUZpZWxkOiBvYmp9O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcG9wdWxhdGVDYXNlRmllbGRWYWx1ZXNJbnRvUm93cygpOiB2b2lkIHtcbiAgICBmb3IgKGNvbnN0IG9iaiBvZiB0aGlzLmNhc2VGaWVsZC52YWx1ZSkge1xuICAgICAgdGhpcy5yb3dzLnB1c2gob2JqLnZhbHVlKTtcbiAgICAgIHRoaXMuaXNIaWRkZW4ucHVzaCh0cnVlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGlzVmVydGljbGVEYXRhTm90RW1wdHkocm93KTogYm9vbGVhbiB7XG4gICAgbGV0IHJlc3VsdCA9IGZhbHNlO1xuICAgIGZvciAoY29uc3Qga2V5IGluIHRoaXMuY29sdW1uc1ZlcnRpY2FsTGFiZWwpIHtcbiAgICAgIGlmICh0aGlzLnJvd3Nbcm93XVtrZXldKSB7XG4gICAgICAgIHJlc3VsdCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJjb21wbGV4LXBhbmVsXCIgW2hpZGRlbl09XCJjYXNlRmllbGQuaGlkZGVuXCI+XG4gIDxkbCBjbGFzcz1cImNvbXBsZXgtcGFuZWwtdGl0bGVcIj5cbiAgICA8ZHQ+PHNwYW4gY2xhc3M9XCJ0ZXh0LTE2XCI+e3tjYXNlRmllbGQubGFiZWx9fTwvc3Bhbj48L2R0PlxuICAgIDxkZD48L2RkPlxuICA8L2RsPlxuICA8dGFibGUgY2xhc3M9XCJjb21wbGV4LXBhbmVsLXRhYmxlXCIgYXJpYS1kZXNjcmliZWRieT1cImNvbXBsZXggcGFuZWwgdGFibGVcIj5cbiAgICA8dGJvZHk+XG4gICAgPCEtLSA8Q09NUExFWCB0YWJsZSBmaWVsZCBoZWFkZXI+LS0+XG4gICAgPHRyPlxuICAgICAgPHRoICpuZ0Zvcj1cImxldCBoZWFkaW5nIG9mIGNvbHVtbnNcIiBzY29wZT1cImNvbFwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtMTZcIj57e2NvbHVtbnNBbGxMYWJlbHNbaGVhZGluZ10ubGFiZWx9fTwvc3Bhbj5cbiAgICAgICAgPGEgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiXG4gICAgICAgICAgIChjbGljayk9XCJzb3J0Um93c0J5Q29sdW1ucyhoZWFkaW5nKVwiXG4gICAgICAgICAgIGNsYXNzPVwic29ydC13aWRnZXRcIlxuICAgICAgICAgICBbaW5uZXJIVE1MXT1cInNvcnRXaWRnZXQoY29sdW1uc0FsbExhYmVsc1toZWFkaW5nXSlcIj48L2E+XG4gICAgICA8L3RoPlxuICAgICAgPHRoPjwvdGg+XG4gICAgPC90cj5cbiAgICA8IS0tIDwvQ09NUExFWCB0YWJsZSBmaWVsZCBoZWFkZXI+LS0+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiByb3dzOyBsZXQgaSA9IGluZGV4O1wiPlxuICAgICAgPCEtLSA8Q09NUExFWCB0YWJsZSBjb2xsYXBzZWQgdmlldz4tLT5cbiAgICAgIDx0ciBjbGFzcz1cIm5ldy10YWJsZS1yb3cgYWNjb3JkaW9uLWhlYWRpbmdcIiAoY2xpY2spPVwiaXNIaWRkZW5baV0gPSAhaXNIaWRkZW5baV1cIlxuICAgICAgICAgIFtjbGFzcy5sYXN0LWFjY29yZGlvbl09XCJpc0hpZGRlbltpXVwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBoZWFkaW5nIG9mIGNvbHVtbnNcIj5cbiAgICAgICAgICA8dGQgY2xhc3M9XCJ0ZXh0LTE2XCI+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaXRlbVtoZWFkaW5nXTsgZWxzZSBzaG93RW1wdHlUZFwiPlxuICAgICAgICAgICAgICA8Y2NkLWZpZWxkLXJlYWRcbiAgICAgICAgICAgICAgICBbY2FzZUZpZWxkXT1cInRvQ2FzZUZpZWxkKGhlYWRpbmcsIGl0ZW1baGVhZGluZ10ubGFiZWwsIGNvbHVtbnNIb3Jpem9udGFsTGFiZWxbaGVhZGluZ10udHlwZSwgaXRlbVtoZWFkaW5nXSlcIlxuICAgICAgICAgICAgICAgIFtjb250ZXh0XT1cImNvbnRleHRcIj48L2NjZC1maWVsZC1yZWFkPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI3Nob3dFbXB0eVRkPlxuICAgICAgICAgICAgICA8ZGl2PiZuYnNwOzwvZGl2PlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICA8L3RkPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPHRkPlxuICAgICAgICAgIDxkaXYgc3R5bGU9XCJmbG9hdDogcmlnaHQ7XCI+XG4gICAgICAgICAgICA8YSBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCI+IDxpbWcgc3JjPVwie3sgZ2V0SW1hZ2UoaSkgfX1cIiBhbHQ9XCJpbWFnZVwiIGNsYXNzPVwiYWNjb3JkaW9uLWltYWdlXCIvPjwvYT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC90ZD5cbiAgICAgIDwvdHI+XG4gICAgICA8IS0tIDwvQ09NUExFWCB0YWJsZSBjb2xsYXBzZWQgdmlldz4tLT5cbiAgICAgIDwhLS0gPENPTVBMRVggdGFibGUgZXhwYW5kZWQgdmlldz4tLT5cbiAgICAgIDx0ciBbaGlkZGVuXT1cImlzSGlkZGVuW2ldXCI+XG4gICAgICAgIDx0ZCBbY29sU3Bhbl09XCJjb2x1bW5zLmxlbmd0aCArIDFcIj5cbiAgICAgICAgICA8dGFibGUgY2xhc3M9XCJjb21wbGV4LXBhbmVsLXRhYmxlXCIgYXJpYS1kZXNjcmliZWRieT1cImNvbXBsZXggcGFuZWwgdGFibGUgZXhwYW5kZWRcIj5cbiAgICAgICAgICAgIDx0Ym9keT5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHZMYWJlbCBvZiBjb2x1bW5zVmVydGljYWxMYWJlbCB8IGtleXZhbHVlOiBrZWVwT3JpZ2luYWxPcmRlciB8IGNjZENvbGxlY3Rpb25UYWJsZUNhc2VGaWVsZHNGaWx0ZXI6IGNhc2VGaWVsZDogcm93c1tpXSB8IGNjZFJlYWRGaWVsZHNGaWx0ZXI6dHJ1ZSA6dW5kZWZpbmVkIDp0cnVlXCI+XG4gICAgICAgICAgICAgIDwhLS0gPENPTVBMRVggdGFibGUgZXhwYW5kYWJsZSBib2R5IHNpbXBsZSBmaWVsZD4tLT5cbiAgICAgICAgICAgICAgPHRyIGNsYXNzPVwiY29tcGxleC1wYW5lbC1zaW1wbGUtZmllbGQgYWNjb3JkaW9uLWJvZHlcIiAqbmdJZj1cIml0ZW1bdkxhYmVsLmlkXVwiIFtoaWRkZW5dPVwidkxhYmVsLmhpZGRlblwiPlxuICAgICAgICAgICAgICAgIDx0aCBzY29wZT1cImNvbFwiPjxzcGFuIGNsYXNzPVwidGV4dC0xNlwiPnt7dkxhYmVsLmxhYmVsfX08L3NwYW4+PC90aD5cbiAgICAgICAgICAgICAgICA8dGQgKm5nSWY9XCJ2TGFiZWxbJ3R5cGUnXSAhPT0gJ0NvbXBsZXgnXCIgY2xhc3M9XCJ0ZXh0LTE2XCI+XG4gICAgICAgICAgICAgICAgICA8Y2NkLWZpZWxkLXJlYWQgW2Nhc2VGaWVsZF09XCJ0b0Nhc2VGaWVsZCgnJywgdkxhYmVsLmxhYmVsLCB2TGFiZWwuZmllbGRfdHlwZSwgaXRlbVt2TGFiZWwuaWRdKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbnRleHRdPVwiY29udGV4dFwiPjwvY2NkLWZpZWxkLXJlYWQ+XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgPCEtLSA8L0NPTVBMRVggdGFibGUgZXhwYW5kYWJsZSBib2R5IHNpbXBsZSBmaWVsZD4tLT5cblxuICAgICAgICAgICAgICA8IS0tIDxDT01QTEVYIHRhYmxlIGV4cGFuZGFibGUgYm9keSBjb21wbGV4IGZpZWxkPi0tPlxuICAgICAgICAgICAgICA8dHIgKm5nSWY9XCJ2TGFiZWxbJ3R5cGUnXSA9PT0gJ0NvbXBsZXgnICYmIGFkZENhc2VGaWVsZFZhbHVlKHZMYWJlbCwgaXRlbVt2TGFiZWwuaWRdKVwiIFtoaWRkZW5dPVwidkxhYmVsLmhpZGRlblwiPlxuICAgICAgICAgICAgICAgIDx0ZCBjb2xzcGFuPVwiMlwiPlxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY2FzZUZpZWxkIG9mIHZMYWJlbCB8IGNjZFJlYWRGaWVsZHNGaWx0ZXI6dHJ1ZSA6dW5kZWZpbmVkIDp0cnVlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPVwiY29tcGxleC1wYW5lbC1jb21wb3VuZC1maWVsZFwiICpuZ0lmPVwiKGNhc2VGaWVsZCB8IGNjZElzQ29tcG91bmQpOyBlbHNlIFNpbXBsZVJvd1wiIFtoaWRkZW5dPVwiY2FzZUZpZWxkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj1cIjJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LTE2XCI+PGNjZC1maWVsZC1yZWFkIFtjYXNlRmllbGRdPVwiY2FzZUZpZWxkXCIgW2NvbnRleHRdPVwiY29udGV4dFwiPjwvY2NkLWZpZWxkLXJlYWQ+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjU2ltcGxlUm93PlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPVwiY29tcGxleC1wYW5lbC1uZXN0ZWQtZmllbGRcIiBbaGlkZGVuXT1cImNhc2VGaWVsZC5oaWRkZW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCI+PHNwYW4gY2xhc3M9XCJ0ZXh0LTE2XCI+e3tjYXNlRmllbGQubGFiZWx9fTwvc3Bhbj48L3RoPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgKm5nSWY9XCIhaXRlbVt2TGFiZWwuaWRdPy5oYXNPd25Qcm9wZXJ0eSgnQ2FzZVJlZmVyZW5jZScpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LTE2XCI+PGNjZC1maWVsZC1yZWFkIFtjYXNlRmllbGRdPVwiY2FzZUZpZWxkXCIgW2NvbnRleHRdPVwiY29udGV4dFwiPjwvY2NkLWZpZWxkLXJlYWQ+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgKm5nSWY9XCJpdGVtW3ZMYWJlbC5pZF0/Lmhhc093blByb3BlcnR5KCdDYXNlUmVmZXJlbmNlJylcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2NkLXJlYWQtY2FzZS1saW5rLWZpZWxkIFtjYXNlRmllbGRdPVwiYWRkQ2FzZVJlZmVyZW5jZVZhbHVlKGNhc2VGaWVsZCwgaXRlbVt2TGFiZWwuaWRdLkNhc2VSZWZlcmVuY2UpXCIgW2NvbnRleHRdPVwiY29udGV4dFwiPjwvY2NkLXJlYWQtY2FzZS1saW5rLWZpZWxkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgPCEtLSA8Q09NUExFWCB0YWJsZSBleHBhbmRhYmxlIGJvZHkgY29tcGxleCBmaWVsZD4tLT5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC90Ym9keT5cbiAgICAgICAgICA8L3RhYmxlPlxuICAgICAgICA8L3RkPlxuICAgICAgPC90cj5cbiAgICAgIDwhLS0gPC9DT01QTEVYIHRhYmxlIGV4cGFuZGVkIHZpZXc+LS0+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPC90Ym9keT5cbiAgPC90YWJsZT5cbjwvZGl2PlxuIl19
|
|
414
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZC1jb21wbGV4LWZpZWxkLWNvbGxlY3Rpb24tdGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvY29tcGxleC9yZWFkLWNvbXBsZXgtZmllbGQtY29sbGVjdGlvbi10YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvcGFsZXR0ZS9jb21wbGV4L3JlYWQtY29tcGxleC1maWVsZC1jb2xsZWN0aW9uLXRhYmxlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUVsRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdkQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDekYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7OztJQ0luQyw2QkFBZ0Q7SUFDOUMsK0JBQXNCO0lBQUEsWUFBbUM7SUFBQSxpQkFBTztJQUNoRSw0QkFHdUQ7SUFGcEQseVBBQW9DO0lBRWdCLGlCQUFJO0lBQzdELGlCQUFLOzs7O0lBTG1CLGVBQW1DO0lBQW5DLCtEQUFtQztJQUl0RCxlQUFtRDtJQUFuRCxxR0FBbUQ7OztJQVdsRCwyQkFBNkM7SUFDM0MscUNBRXVDO0lBQ3pDLGlCQUFNOzs7OztJQUZGLGVBQTRHO0lBQTVHLDRKQUE0Ryw0QkFBQTs7O0lBSTlHLDJCQUFLO0lBQUEsc0JBQU07SUFBQSxpQkFBTTs7O0lBUnZCLDZCQUE4QztJ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Q0FBd0M7UUNackQsOEJBQXVEO1FBQ3JELDZCQUFnQztRQUM5QiwwQkFBSTtRQUFBLCtCQUFzQjtRQUFBLFlBQW1CO1FBQUEsaUJBQU87UUFBQSxpQkFBSztRQUN6RCxxQkFBUztRQUNYLGlCQUFLO1FBQ0wsZ0NBQTBFO1FBQ3hFLDZCQUFPO1FBRVAsMEJBQUk7UUFDRix1RkFNSztRQUNMLHNCQUFTO1FBQ1gsaUJBQUs7UUFFTCwrR0FzRWU7UUFDZixpQkFBUTtRQUNWLGlCQUFRO1FBQ1YsaUJBQU07O1FBNUZxQiw2Q0FBMkI7UUFFeEIsZUFBbUI7UUFBbkIseUNBQW1CO1FBT25CLGVBQVU7UUFBVixxQ0FBVTtRQVVMLGVBQVM7UUFBVCxrQ0FBUzs7cUdEUC9CLHdDQUF3Qzt1RkFBeEMsd0NBQXdDO2NBTHBELFNBQVM7ZUFBQztnQkFDVCxRQUFRLEVBQUUseUNBQXlDO2dCQUNuRCxXQUFXLEVBQUUsNENBQTRDO2dCQUN6RCxTQUFTLEVBQUUsQ0FBQyw0Q0FBNEMsQ0FBQzthQUMxRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IHBsYWluVG9DbGFzc0Zyb21FeGlzdCB9IGZyb20gJ2NsYXNzLXRyYW5zZm9ybWVyJztcbmltcG9ydCB7IENhc2VGaWVsZCB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbi9kZWZpbml0aW9uJztcbmltcG9ydCB7IEFic3RyYWN0RmllbGRSZWFkQ29tcG9uZW50IH0gZnJvbSAnLi4vYmFzZS1maWVsZC9hYnN0cmFjdC1maWVsZC1yZWFkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTb3J0T3JkZXIgfSBmcm9tICcuL3NvcnQtb3JkZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjY2QtcmVhZC1jb21wbGV4LWZpZWxkLWNvbGxlY3Rpb24tdGFibGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vcmVhZC1jb21wbGV4LWZpZWxkLWNvbGxlY3Rpb24tdGFibGUuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3JlYWQtY29tcGxleC1maWVsZC1jb2xsZWN0aW9uLXRhYmxlLnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBSZWFkQ29tcGxleEZpZWxkQ29sbGVjdGlvblRhYmxlQ29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3RGaWVsZFJlYWRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIHB1YmxpYyBjb2x1bW5zOiBzdHJpbmdbXTtcbiAgcHVibGljIGNvbHVtbnNWZXJ0aWNhbExhYmVsOiBhbnk7XG4gIHB1YmxpYyBjb2x1bW5zSG9yaXpvbnRhbExhYmVsOiBhbnk7XG4gIHB1YmxpYyBjb2x1bW5zQWxsTGFiZWxzOiBhbnk7XG4gIHB1YmxpYyByb3dzOiBhbnlbXSA9IFtdO1xuICBwdWJsaWMgaXNIaWRkZW46IGJvb2xlYW5bXSA9IFtdO1xuICBwcml2YXRlIHN0YXRpYyBpc1NvcnRBc2NlbmRpbmcoY29sdW1uOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIShjb2x1bW4uc29ydE9yZGVyID09PSBTb3J0T3JkZXIuVU5TT1JURUQgfHwgY29sdW1uLnNvcnRPcmRlciA9PT0gU29ydE9yZGVyLkRFU0NFTkRJTkcpO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgaWYgKHRoaXMuY2FzZUZpZWxkLmRpc3BsYXlfY29udGV4dF9wYXJhbWV0ZXJcbiAgICAgICYmIHRoaXMuY2FzZUZpZWxkLmRpc3BsYXlfY29udGV4dF9wYXJhbWV0ZXIudHJpbSgpLnN0YXJ0c1dpdGgoJyNUQUJMRSgnKSkge1xuXG4gICAgICBjb25zdCBkaXNwbGF5Q29udGV4dFBhcmFtZXRlciA9IHRoaXMuY2FzZUZpZWxkLmRpc3BsYXlfY29udGV4dF9wYXJhbWV0ZXIudHJpbSgpO1xuICAgICAgY29uc3QgcmVzdWx0OiBzdHJpbmcgPSBkaXNwbGF5Q29udGV4dFBhcmFtZXRlci5yZXBsYWNlKCcjVEFCTEUoJywgJycpO1xuICAgICAgdGhpcy5jb2x1bW5zID0gcmVzdWx0LnJlcGxhY2UoJyknLCAnJykuc3BsaXQoJywnKS5tYXAoKGM6IHN0cmluZykgPT4gYy50cmltKCkpO1xuXG4gICAgICBjb25zdCBsYWJlbHNWZXJ0aWNhbDogeyBbazogc3RyaW5nXTogYW55IH0gPSB7fTtcbiAgICAgIGNvbnN0IGxhYmVsc0hvcml6b250YWw6IHsgW2s6IHN0cmluZ106IGFueSB9ID0ge307XG4gICAgICBjb25zdCBhbGxMYWJlbHM6IHsgW2s6IHN0cmluZ106IGFueSB9ID0ge307XG4gICAgICB0aGlzLnBvcHVsYXRlQ2FzZUZpZWxkVmFsdWVzSW50b1Jvd3MoKTtcbiAgICAgIHRoaXMucG9wdWxhdGVMYWJlbHMobGFiZWxzVmVydGljYWwsIGFsbExhYmVscyk7XG4gICAgICB0aGlzLnBvcHVsYXRlSG9yaXpvbnRhbExhYmVscyhsYWJlbHNIb3Jpem9udGFsLCBhbGxMYWJlbHMsIGxhYmVsc1ZlcnRpY2FsKTtcblxuICAgICAgdGhpcy5jb2x1bW5zVmVydGljYWxMYWJlbCA9IGxhYmVsc1ZlcnRpY2FsO1xuICAgICAgdGhpcy5jb2x1bW5zSG9yaXpvbnRhbExhYmVsID0gbGFiZWxzSG9yaXpvbnRhbDtcbiAgICAgIHRoaXMuY29sdW1uc0FsbExhYmVscyA9IGFsbExhYmVscztcblxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXRJbWFnZShyb3cpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmlzSGlkZGVuW3Jvd10pIHtcbiAgICAgIHJldHVybiAnaW1nL2FjY29yZGlvbi1wbHVzLnBuZyc7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLmlzVmVydGljbGVEYXRhTm90RW1wdHkocm93KSkge1xuICAgICAgICByZXR1cm4gJ2ltZy9hY2NvcmRpb24tbWludXMucG5nJztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuaXNIaWRkZW5bcm93XSA9IHRydWU7XG4gICAgICAgIHJldHVybiAnaW1nL2FjY29yZGlvbi1wbHVzLnBuZyc7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE5lZWRzIHRvIGJlIGNhbGxlZCBiZWZvcmUgJ2NjZEZpZWxkc0ZpbHRlcicgcGlwZSBpcyB1c2VkLCBhcyBpdCBuZWVkcyBhIGNhc2VGaWVsZCB2YWx1ZS5cbiAgICovXG4gIHB1YmxpYyBhZGRDYXNlRmllbGRWYWx1ZShmaWVsZCwgdmFsdWUpOiBib29sZWFuIHtcbiAgICBmaWVsZC52YWx1ZSA9IHZhbHVlO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcHVibGljIGlzTm90QmxhbmsodmFsdWU6IHN0cmluZykge1xuICAgIHJldHVybiB2YWx1ZSAhPT0gbnVsbCAmJiB2YWx1ZSAhPT0gJyc7XG4gIH1cblxuICBwdWJsaWMgYWRkQ2FzZVJlZmVyZW5jZVZhbHVlKGZpZWxkLCB2YWx1ZTogYW55KTogYW55IHtcbiAgICBmaWVsZC52YWx1ZSA9IHsgQ2FzZVJlZmVyZW5jZTogdmFsdWV9O1xuICAgIHJldHVybiBmaWVsZDtcbiAgfVxuXG4gIHB1YmxpYyB0b0Nhc2VGaWVsZChpZDogc3RyaW5nLCBsYWJlbDogc3RyaW5nLCBmaWVsZF90eXBlOiBhbnksIHZhbHVlOiBhbnkpOiBDYXNlRmllbGQge1xuICAgIHJldHVybiBwbGFpblRvQ2xhc3NGcm9tRXhpc3QobmV3IENhc2VGaWVsZCgpLCB7XG4gICAgICBpZCxcbiAgICAgIGxhYmVsLFxuICAgICAgZGlzcGxheV9jb250ZXh0OiAnUkVBRE9OTFknLFxuICAgICAgdmFsdWUsXG4gICAgICBmaWVsZF90eXBlXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMga2VlcE9yaWdpbmFsT3JkZXIgPSAoYSwgYikgPT4gYS5rZXk7XG5cbiAgcHVibGljIHNvcnRSb3dzQnlDb2x1bW5zKGNvbHVtbik6IHZvaWQge1xuICAgIGNvbnN0IHNob3VsZFNvcnRJbkFzY2VuZGluZ09yZGVyID0gdGhpcy5jb2x1bW5zSG9yaXpvbnRhbExhYmVsW2NvbHVtbl0uc29ydE9yZGVyID09PSBTb3J0T3JkZXIuVU5TT1JURURcbiAgICAgIHx8IHRoaXMuY29sdW1uc0hvcml6b250YWxMYWJlbFtjb2x1bW5dLnNvcnRPcmRlciA9PT0gU29ydE9yZGVyLkRFU0NFTkRJTkc7XG5cbiAgICBzd2l0Y2ggKHRoaXMuY29sdW1uc0hvcml6b250YWxMYWJlbFtjb2x1bW5dLnR5cGUudHlwZSkge1xuICAgICAgY2FzZSAnTnVtYmVyJzpcbiAgICAgIGNhc2UgJ01vbmV5R0JQJzoge1xuICAgICAgICBpZiAoc2hvdWxkU29ydEluQXNjZW5kaW5nT3JkZXIpIHtcbiAgICAgICAgICB0aGlzLnJvd3Muc29ydCgoYSwgYikgPT4gYVtjb2x1bW5dIC0gYltjb2x1bW5dKTtcbiAgICAgICAgICB0aGlzLmNvbHVtbnNIb3Jpem9udGFsTGFiZWxbY29sdW1uXS5zb3J0T3JkZXIgPSBTb3J0T3JkZXIuQVNDRU5ESU5HO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMucm93cy5zb3J0KChhLCBiKSA9PiBiW2NvbHVtbl0gLSBhW2NvbHVtbl0pO1xuICAgICAgICAgIHRoaXMuY29sdW1uc0hvcml6b250YWxMYWJlbFtjb2x1bW5dLnNvcnRPcmRlciA9IFNvcnRPcmRlci5ERVNDRU5ESU5HO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnVGV4dCc6XG4gICAgICBjYXNlICdUZXh0QXJlYSc6XG4gICAgICBjYXNlICdFbWFpbCc6XG4gICAgICBjYXNlICdEYXRlJzpcbiAgICAgIGNhc2UgJ0RhdGVUaW1lJzpcbiAgICAgIGNhc2UgJ0xhYmVsJzpcbiAgICAgIGNhc2UgJ1Bvc3Rjb2RlJzpcbiAgICAgIGNhc2UgJ1llc09yTm8nOlxuICAgICAgY2FzZSAnUGhvbmVVSyc6XG4gICAgICBjYXNlICdGaXhlZExpc3QnOiB7XG4gICAgICAgIGlmIChzaG91bGRTb3J0SW5Bc2NlbmRpbmdPcmRlcikge1xuICAgICAgICAgIHRoaXMucm93cy5zb3J0KChhLCBiKSA9PiBhW2NvbHVtbl0gPCBiW2NvbHVtbl0gPyAtMSA6IGFbY29sdW1uXSA+IGJbY29sdW1uXSA/IDEgOiAwKTtcbiAgICAgICAgICB0aGlzLmNvbHVtbnNIb3Jpem9udGFsTGFiZWxbY29sdW1uXS5zb3J0T3JkZXIgPSBTb3J0T3JkZXIuQVNDRU5ESU5HO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMucm93cy5zb3J0KChhLCBiKSA9PiBhW2NvbHVtbl0gPCBiW2NvbHVtbl0gPyAxIDogYVtjb2x1bW5dID4gYltjb2x1bW5dID8gLTEgOiAwKTtcbiAgICAgICAgICB0aGlzLmNvbHVtbnNIb3Jpem9udGFsTGFiZWxbY29sdW1uXS5zb3J0T3JkZXIgPSBTb3J0T3JkZXIuREVTQ0VORElORztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc29ydFdpZGdldChjb2x1bW46IGFueSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFJlYWRDb21wbGV4RmllbGRDb2xsZWN0aW9uVGFibGVDb21wb25lbnQuaXNTb3J0QXNjZW5kaW5nKGNvbHVtbikgPyAnJiM5NjYwOycgOiAnJiM5NjUwOyc7XG4gIH1cblxuICBwcml2YXRlIHBvcHVsYXRlSG9yaXpvbnRhbExhYmVscyhsYWJlbHNIb3Jpem9udGFsOiB7IFtwOiBzdHJpbmddOiBhbnkgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsTGFiZWxzOiB7IFtwOiBzdHJpbmddOiBhbnkgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWxzVmVydGljYWw6IHsgW3A6IHN0cmluZ106IGFueSB9KTogdm9pZCB7XG4gICAgZm9yIChjb25zdCBpZCBvZiB0aGlzLmNvbHVtbnMpIHtcbiAgICAgIGNvbnN0IHRyaW1tZWRJZCA9IGlkLnRyaW0oKTtcbiAgICAgIGxhYmVsc0hvcml6b250YWxbdHJpbW1lZElkXSA9IGFsbExhYmVsc1t0cmltbWVkSWRdO1xuICAgICAgbGFiZWxzSG9yaXpvbnRhbFt0cmltbWVkSWRdLnNvcnRPcmRlciA9IFNvcnRPcmRlci5VTlNPUlRFRDtcbiAgICAgIGRlbGV0ZSBsYWJlbHNWZXJ0aWNhbFt0cmltbWVkSWRdO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcG9wdWxhdGVMYWJlbHMobGFiZWxzVmVydGljYWw6IHsgW3A6IHN0cmluZ106IGFueSB9LCBhbGxMYWJlbHM6IHsgW3A6IHN0cmluZ106IGFueSB9KTogdm9pZCB7XG4gICAgZm9yIChjb25zdCBvYmogb2YgdGhpcy5jYXNlRmllbGQuZmllbGRfdHlwZS5jb21wbGV4X2ZpZWxkcykge1xuICAgICAgaWYgKG9iai5maWVsZF90eXBlLnR5cGUgPT09ICdGaXhlZExpc3QnIHx8XG4gICAgICAgIG9iai5maWVsZF90eXBlLnR5cGUgPT09ICdNdWx0aVNlbGVjdExpc3QnIHx8XG4gICAgICAgIG9iai5maWVsZF90eXBlLnR5cGUgPT09ICdGaXhlZFJhZGlvTGlzdCcpIHtcbiAgICAgICAgbGFiZWxzVmVydGljYWxbb2JqLmlkXSA9IHtsYWJlbDogb2JqLmxhYmVsLCB0eXBlOiBvYmouZmllbGRfdHlwZSwgY2FzZUZpZWxkOiBvYmp9O1xuICAgICAgICBhbGxMYWJlbHNbb2JqLmlkXSA9IHtsYWJlbDogb2JqLmxhYmVsLCB0eXBlOiBvYmouZmllbGRfdHlwZX07XG4gICAgICB9IGVsc2UgaWYgKG9iai5pc0NvbXBsZXgoKSkge1xuICAgICAgICBsYWJlbHNWZXJ0aWNhbFtvYmouaWRdID0ge2xhYmVsOiBvYmoubGFiZWwsIHR5cGU6IG9iai5maWVsZF90eXBlLnR5cGUsIGNhc2VGaWVsZDogb2JqfTtcbiAgICAgICAgYWxsTGFiZWxzW29iai5pZF0gPSB7bGFiZWw6IG9iai5sYWJlbCwgdHlwZTogb2JqLmZpZWxkX3R5cGUudHlwZSwgY2FzZUZpZWxkOiBvYmp9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbGFiZWxzVmVydGljYWxbb2JqLmlkXSA9IHtsYWJlbDogb2JqLmxhYmVsLCB0eXBlOiB7dHlwZTogb2JqLmZpZWxkX3R5cGUudHlwZX0sIGNhc2VGaWVsZDogb2JqfTtcbiAgICAgICAgYWxsTGFiZWxzW29iai5pZF0gPSB7bGFiZWw6IG9iai5sYWJlbCwgdHlwZToge3R5cGU6IG9iai5maWVsZF90eXBlLnR5cGV9LCBjYXNlRmllbGQ6IG9ian07XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBwb3B1bGF0ZUNhc2VGaWVsZFZhbHVlc0ludG9Sb3dzKCk6IHZvaWQge1xuICAgIGZvciAoY29uc3Qgb2JqIG9mIHRoaXMuY2FzZUZpZWxkLnZhbHVlKSB7XG4gICAgICB0aGlzLnJvd3MucHVzaChvYmoudmFsdWUpO1xuICAgICAgdGhpcy5pc0hpZGRlbi5wdXNoKHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaXNWZXJ0aWNsZURhdGFOb3RFbXB0eShyb3cpOiBib29sZWFuIHtcbiAgICBsZXQgcmVzdWx0ID0gZmFsc2U7XG4gICAgZm9yIChjb25zdCBrZXkgaW4gdGhpcy5jb2x1bW5zVmVydGljYWxMYWJlbCkge1xuICAgICAgaWYgKHRoaXMucm93c1tyb3ddW2tleV0pIHtcbiAgICAgICAgcmVzdWx0ID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImNvbXBsZXgtcGFuZWxcIiBbaGlkZGVuXT1cImNhc2VGaWVsZC5oaWRkZW5cIj5cbiAgPGRsIGNsYXNzPVwiY29tcGxleC1wYW5lbC10aXRsZVwiPlxuICAgIDxkdD48c3BhbiBjbGFzcz1cInRleHQtMTZcIj57e2Nhc2VGaWVsZC5sYWJlbH19PC9zcGFuPjwvZHQ+XG4gICAgPGRkPjwvZGQ+XG4gIDwvZGw+XG4gIDx0YWJsZSBjbGFzcz1cImNvbXBsZXgtcGFuZWwtdGFibGVcIiBhcmlhLWRlc2NyaWJlZGJ5PVwiY29tcGxleCBwYW5lbCB0YWJsZVwiPlxuICAgIDx0Ym9keT5cbiAgICA8IS0tIDxDT01QTEVYIHRhYmxlIGZpZWxkIGhlYWRlcj4tLT5cbiAgICA8dHI+XG4gICAgICA8dGggKm5nRm9yPVwibGV0IGhlYWRpbmcgb2YgY29sdW1uc1wiIHNjb3BlPVwiY29sXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC0xNlwiPnt7Y29sdW1uc0FsbExhYmVsc1toZWFkaW5nXS5sYWJlbH19PC9zcGFuPlxuICAgICAgICA8YSBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCJcbiAgICAgICAgICAgKGNsaWNrKT1cInNvcnRSb3dzQnlDb2x1bW5zKGhlYWRpbmcpXCJcbiAgICAgICAgICAgY2xhc3M9XCJzb3J0LXdpZGdldFwiXG4gICAgICAgICAgIFtpbm5lckhUTUxdPVwic29ydFdpZGdldChjb2x1bW5zQWxsTGFiZWxzW2hlYWRpbmddKVwiPjwvYT5cbiAgICAgIDwvdGg+XG4gICAgICA8dGg+PC90aD5cbiAgICA8L3RyPlxuICAgIDwhLS0gPC9DT01QTEVYIHRhYmxlIGZpZWxkIGhlYWRlcj4tLT5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIHJvd3M7IGxldCBpID0gaW5kZXg7XCI+XG4gICAgICA8IS0tIDxDT01QTEVYIHRhYmxlIGNvbGxhcHNlZCB2aWV3Pi0tPlxuICAgICAgPHRyIGNsYXNzPVwibmV3LXRhYmxlLXJvdyBhY2NvcmRpb24taGVhZGluZ1wiIChjbGljayk9XCJpc0hpZGRlbltpXSA9ICFpc0hpZGRlbltpXVwiXG4gICAgICAgICAgW2NsYXNzLmxhc3QtYWNjb3JkaW9uXT1cImlzSGlkZGVuW2ldXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGhlYWRpbmcgb2YgY29sdW1uc1wiPlxuICAgICAgICAgIDx0ZCBjbGFzcz1cInRleHQtMTZcIj5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpdGVtW2hlYWRpbmddOyBlbHNlIHNob3dFbXB0eVRkXCI+XG4gICAgICAgICAgICAgIDxjY2QtZmllbGQtcmVhZFxuICAgICAgICAgICAgICAgIFtjYXNlRmllbGRdPVwidG9DYXNlRmllbGQoaGVhZGluZywgaXRlbVtoZWFkaW5nXS5sYWJlbCwgY29sdW1uc0hvcml6b250YWxMYWJlbFtoZWFkaW5nXS50eXBlLCBpdGVtW2hlYWRpbmddKVwiXG4gICAgICAgICAgICAgICAgW2NvbnRleHRdPVwiY29udGV4dFwiPjwvY2NkLWZpZWxkLXJlYWQ+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjc2hvd0VtcHR5VGQ+XG4gICAgICAgICAgICAgIDxkaXY+Jm5ic3A7PC9kaXY+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDwvdGQ+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8dGQ+XG4gICAgICAgICAgPGRpdiBzdHlsZT1cImZsb2F0OiByaWdodDtcIj5cbiAgICAgICAgICAgIDxhIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIj4gPGltZyBzcmM9XCJ7eyBnZXRJbWFnZShpKSB9fVwiIGFsdD1cImltYWdlXCIgY2xhc3M9XCJhY2NvcmRpb24taW1hZ2VcIi8+PC9hPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3RkPlxuICAgICAgPC90cj5cbiAgICAgIDwhLS0gPC9DT01QTEVYIHRhYmxlIGNvbGxhcHNlZCB2aWV3Pi0tPlxuICAgICAgPCEtLSA8Q09NUExFWCB0YWJsZSBleHBhbmRlZCB2aWV3Pi0tPlxuICAgICAgPHRyIFtoaWRkZW5dPVwiaXNIaWRkZW5baV1cIj5cbiAgICAgICAgPHRkIFtjb2xTcGFuXT1cImNvbHVtbnMubGVuZ3RoICsgMVwiPlxuICAgICAgICAgIDx0YWJsZSBjbGFzcz1cImNvbXBsZXgtcGFuZWwtdGFibGVcIiBhcmlhLWRlc2NyaWJlZGJ5PVwiY29tcGxleCBwYW5lbCB0YWJsZSBleHBhbmRlZFwiPlxuICAgICAgICAgICAgPHRib2R5PlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgdkxhYmVsIG9mIGNvbHVtbnNWZXJ0aWNhbExhYmVsIHwga2V5dmFsdWU6IGtlZXBPcmlnaW5hbE9yZGVyIHwgY2NkQ29sbGVjdGlvblRhYmxlQ2FzZUZpZWxkc0ZpbHRlcjogY2FzZUZpZWxkOiByb3dzW2ldIHwgY2NkUmVhZEZpZWxkc0ZpbHRlcjp0cnVlIDp1bmRlZmluZWQgOnRydWVcIj5cbiAgICAgICAgICAgICAgPCEtLSA8Q09NUExFWCB0YWJsZSBleHBhbmRhYmxlIGJvZHkgc2ltcGxlIGZpZWxkPi0tPlxuICAgICAgICAgICAgICA8dHIgY2xhc3M9XCJjb21wbGV4LXBhbmVsLXNpbXBsZS1maWVsZCBhY2NvcmRpb24tYm9keVwiICpuZ0lmPVwiaXRlbVt2TGFiZWwuaWRdXCIgW2hpZGRlbl09XCJ2TGFiZWwuaGlkZGVuXCI+XG4gICAgICAgICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCI+PHNwYW4gY2xhc3M9XCJ0ZXh0LTE2XCI+e3t2TGFiZWwubGFiZWx9fTwvc3Bhbj48L3RoPlxuICAgICAgICAgICAgICAgIDx0ZCAqbmdJZj1cInZMYWJlbFsndHlwZSddICE9PSAnQ29tcGxleCdcIiBjbGFzcz1cInRleHQtMTZcIj5cbiAgICAgICAgICAgICAgICAgIDxjY2QtZmllbGQtcmVhZCBbY2FzZUZpZWxkXT1cInRvQ2FzZUZpZWxkKCcnLCB2TGFiZWwubGFiZWwsIHZMYWJlbC5maWVsZF90eXBlLCBpdGVtW3ZMYWJlbC5pZF0pXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29udGV4dF09XCJjb250ZXh0XCI+PC9jY2QtZmllbGQtcmVhZD5cbiAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICA8IS0tIDwvQ09NUExFWCB0YWJsZSBleHBhbmRhYmxlIGJvZHkgc2ltcGxlIGZpZWxkPi0tPlxuXG4gICAgICAgICAgICAgIDwhLS0gPENPTVBMRVggdGFibGUgZXhwYW5kYWJsZSBib2R5IGNvbXBsZXggZmllbGQ+LS0+XG4gICAgICAgICAgICAgIDx0ciAqbmdJZj1cInZMYWJlbFsndHlwZSddID09PSAnQ29tcGxleCcgJiYgYWRkQ2FzZUZpZWxkVmFsdWUodkxhYmVsLCBpdGVtW3ZMYWJlbC5pZF0pXCIgW2hpZGRlbl09XCJ2TGFiZWwuaGlkZGVuXCI+XG4gICAgICAgICAgICAgICAgPHRkIGNvbHNwYW49XCIyXCI+XG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjYXNlRmllbGQgb2YgdkxhYmVsIHwgY2NkUmVhZEZpZWxkc0ZpbHRlcjp0cnVlIDp1bmRlZmluZWQgOnRydWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3M9XCJjb21wbGV4LXBhbmVsLWNvbXBvdW5kLWZpZWxkXCIgKm5nSWY9XCIoY2FzZUZpZWxkIHwgY2NkSXNDb21wb3VuZCk7IGVsc2UgU2ltcGxlUm93XCIgW2hpZGRlbl09XCJjYXNlRmllbGRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjb2xzcGFuPVwiMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtMTZcIj48Y2NkLWZpZWxkLXJlYWQgW2Nhc2VGaWVsZF09XCJjYXNlRmllbGRcIiBbY29udGV4dF09XCJjb250ZXh0XCI+PC9jY2QtZmllbGQtcmVhZD48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNTaW1wbGVSb3c+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3M9XCJjb21wbGV4LXBhbmVsLW5lc3RlZC1maWVsZFwiIFtoaWRkZW5dPVwiY2FzZUZpZWxkLmhpZGRlblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggc2NvcGU9XCJjb2xcIj48c3BhbiBjbGFzcz1cInRleHQtMTZcIj57e2Nhc2VGaWVsZC5sYWJlbH19PC9zcGFuPjwvdGg+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCAqbmdJZj1cIiFpdGVtW3ZMYWJlbC5pZF0/Lmhhc093blByb3BlcnR5KCdDYXNlUmVmZXJlbmNlJylcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtMTZcIj48Y2NkLWZpZWxkLXJlYWQgW2Nhc2VGaWVsZF09XCJjYXNlRmllbGRcIiBbY29udGV4dF09XCJjb250ZXh0XCI+PC9jY2QtZmllbGQtcmVhZD48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCAqbmdJZj1cIml0ZW1bdkxhYmVsLmlkXT8uaGFzT3duUHJvcGVydHkoJ0Nhc2VSZWZlcmVuY2UnKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjY2QtcmVhZC1jYXNlLWxpbmstZmllbGQgW2Nhc2VGaWVsZF09XCJhZGRDYXNlUmVmZXJlbmNlVmFsdWUoY2FzZUZpZWxkLCBpdGVtW3ZMYWJlbC5pZF0uQ2FzZVJlZmVyZW5jZSlcIiBbY29udGV4dF09XCJjb250ZXh0XCI+PC9jY2QtcmVhZC1jYXNlLWxpbmstZmllbGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICA8IS0tIDxDT01QTEVYIHRhYmxlIGV4cGFuZGFibGUgYm9keSBjb21wbGV4IGZpZWxkPi0tPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L3Rib2R5PlxuICAgICAgICAgIDwvdGFibGU+XG4gICAgICAgIDwvdGQ+XG4gICAgICA8L3RyPlxuICAgICAgPCEtLSA8L0NPTVBMRVggdGFibGUgZXhwYW5kZWQgdmlldz4tLT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L3Rib2R5PlxuICA8L3RhYmxlPlxuPC9kaXY+XG4iXX0=
|