ngx-material-entity 16.1.1 → 16.1.2
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/classes/base.builder.d.ts +1 -1
- package/components/confirm-dialog/confirm-dialog-data.builder.d.ts +1 -1
- package/components/confirm-dialog/confirm-dialog.component.d.ts +1 -1
- package/components/create-page/create-page.component.d.ts +5 -14
- package/components/create-page/page-create-data.builder.d.ts +1 -1
- package/components/edit-page/edit-page.component.d.ts +5 -14
- package/components/edit-page/page-edit-data.builder.d.ts +1 -1
- package/components/input/input.component.d.ts +32 -2
- package/components/table/create-dialog/create-data.builder.d.ts +4 -1
- package/components/table/create-dialog/create-entity-data.builder.d.ts +2 -2
- package/components/table/create-dialog/create-entity-dialog.component.d.ts +21 -9
- package/components/table/display-column-value/display-column-value.component.d.ts +1 -1
- package/components/table/edit-dialog/edit-data.builder.d.ts +4 -2
- package/components/table/edit-dialog/edit-entity-dialog.component.d.ts +12 -7
- package/components/table/edit-dialog/edit-entity.builder.d.ts +2 -2
- package/components/table/table-data.builder.d.ts +3 -3
- package/components/table/table-data.d.ts +17 -1
- package/components/table/table.component.d.ts +8 -4
- package/decorators/array/array-decorator-internal.data.d.ts +1 -1
- package/decorators/array/array.decorator.d.ts +1 -1
- package/decorators/base/decorator-types.enum.d.ts +3 -2
- package/decorators/boolean/boolean-decorator-internal.data.d.ts +1 -1
- package/decorators/custom/custom-decorator-internal.data.d.ts +1 -1
- package/decorators/custom/custom.decorator.d.ts +1 -1
- package/decorators/date/date-decorator-internal.data.d.ts +1 -1
- package/decorators/file/file-decorator-internal.data.d.ts +1 -1
- package/decorators/file/file-decorator.data.d.ts +1 -1
- package/decorators/has-many/has-many-decorator-internal.data.d.ts +1 -1
- package/decorators/has-many/has-many.decorator.d.ts +1 -1
- package/decorators/number/number-decorator-internal.data.d.ts +1 -2
- package/decorators/object/object-decorator-internal.data.d.ts +12 -1
- package/decorators/object/object-decorator.data.d.ts +14 -1
- package/decorators/object/object.decorator.d.ts +2 -2
- package/decorators/references-many/references-many-decorator-internal.data.d.ts +1 -1
- package/decorators/references-many/references-many.decorator.d.ts +1 -1
- package/decorators/references-one/references-one-decorator-internal.data.d.ts +1 -1
- package/decorators/references-one/references-one.decorator.d.ts +1 -1
- package/decorators/string/string-decorator-internal.data.d.ts +1 -2
- package/esm2022/classes/base.builder.mjs +2 -2
- package/esm2022/classes/entity.model.mjs +1 -1
- package/esm2022/components/confirm-dialog/confirm-dialog-data.builder.mjs +1 -1
- package/esm2022/components/confirm-dialog/confirm-dialog.component.mjs +2 -2
- package/esm2022/components/create-page/create-data.route.mjs +1 -1
- package/esm2022/components/create-page/create-page.component.mjs +12 -20
- package/esm2022/components/create-page/page-create-data.builder.mjs +1 -1
- package/esm2022/components/edit-page/edit-data.route.mjs +1 -1
- package/esm2022/components/edit-page/edit-page.component.mjs +12 -20
- package/esm2022/components/edit-page/page-edit-data.builder.mjs +1 -1
- package/esm2022/components/form/form.component.mjs +1 -1
- package/esm2022/components/input/array/array-date-input/array-date-input.component.mjs +1 -1
- package/esm2022/components/input/array/array-date-range-input/array-date-range-input.component.mjs +1 -1
- package/esm2022/components/input/array/array-date-time-input/array-date-time-input.component.mjs +1 -1
- package/esm2022/components/input/array/array-string-autocomplete-chips/array-string-autocomplete-chips.component.mjs +1 -1
- package/esm2022/components/input/array/array-string-chips-input/array-string-chips-input.component.mjs +1 -1
- package/esm2022/components/input/array/array-table.class.mjs +1 -1
- package/esm2022/components/input/base-input.component.mjs +1 -1
- package/esm2022/components/input/boolean/boolean-checkbox-input/boolean-checkbox-input.component.mjs +1 -1
- package/esm2022/components/input/boolean/boolean-dropdown-input/boolean-dropdown-input.component.mjs +1 -1
- package/esm2022/components/input/boolean/boolean-toggle-input/boolean-toggle-input.component.mjs +1 -1
- package/esm2022/components/input/custom/custom.component.mjs +1 -1
- package/esm2022/components/input/date/date-input/date-input.component.mjs +1 -1
- package/esm2022/components/input/date/date-range-input/date-range-input.component.mjs +2 -2
- package/esm2022/components/input/date/date-time-input/date-time-input.component.mjs +1 -1
- package/esm2022/components/input/file/file-default-input/file-default-input.component.mjs +1 -1
- package/esm2022/components/input/file/file-image-input/file-image-input.component.mjs +1 -1
- package/esm2022/components/input/file/file-input/file-input.component.mjs +1 -1
- package/esm2022/components/input/input.component.mjs +78 -27
- package/esm2022/components/input/number/number-dropdown-input/number-dropdown-input.component.mjs +1 -1
- package/esm2022/components/input/number/number-input/number-input.component.mjs +1 -1
- package/esm2022/components/input/number/number-slider-input/number-slider-input.component.mjs +1 -1
- package/esm2022/components/input/relations/references-many-input/references-many-input.component.mjs +1 -1
- package/esm2022/components/input/string/string-autocomplete-input/string-autocomplete-input.component.mjs +1 -1
- package/esm2022/components/input/string/string-dropdown-input/string-dropdown-input.component.mjs +1 -1
- package/esm2022/components/input/string/string-input/string-input.component.mjs +1 -1
- package/esm2022/components/input/string/string-password-input/string-password-input.component.mjs +1 -1
- package/esm2022/components/input/string/string-textbox-input/string-textbox-input.component.mjs +1 -1
- package/esm2022/components/table/create-dialog/create-data.builder.mjs +14 -3
- package/esm2022/components/table/create-dialog/create-entity-data.builder.mjs +2 -2
- package/esm2022/components/table/create-dialog/create-entity-dialog.component.mjs +60 -20
- package/esm2022/components/table/default.actions.mjs +1 -1
- package/esm2022/components/table/display-column-value/base-display-column-value.component.mjs +1 -1
- package/esm2022/components/table/display-column-value/display-column-value.component.mjs +1 -1
- package/esm2022/components/table/edit-dialog/edit-data.builder.mjs +17 -6
- package/esm2022/components/table/edit-dialog/edit-entity-dialog.component.mjs +35 -7
- package/esm2022/components/table/edit-dialog/edit-entity.builder.mjs +2 -2
- package/esm2022/components/table/table-data.builder.mjs +3 -3
- package/esm2022/components/table/table-data.mjs +1 -1
- package/esm2022/components/table/table.component.mjs +26 -15
- package/esm2022/components/tooltip/tooltip.component.mjs +1 -1
- package/esm2022/decorators/array/array-decorator-internal.data.mjs +1 -1
- package/esm2022/decorators/array/array-decorator.data.mjs +1 -1
- package/esm2022/decorators/array/array.decorator.mjs +2 -2
- package/esm2022/decorators/base/base-property.decorator.mjs +1 -1
- package/esm2022/decorators/base/decorator-types.enum.mjs +2 -1
- package/esm2022/decorators/base/property-decorator-internal.data.mjs +1 -1
- package/esm2022/decorators/boolean/boolean-decorator-internal.data.mjs +1 -1
- package/esm2022/decorators/boolean/boolean.decorator.mjs +2 -2
- package/esm2022/decorators/custom/custom-decorator-internal.data.mjs +1 -1
- package/esm2022/decorators/custom/custom-decorator.data.mjs +1 -1
- package/esm2022/decorators/custom/custom.decorator.mjs +2 -2
- package/esm2022/decorators/date/date-decorator-internal.data.mjs +1 -1
- package/esm2022/decorators/date/date-decorator.data.mjs +1 -1
- package/esm2022/decorators/date/date.decorator.mjs +2 -2
- package/esm2022/decorators/file/file-decorator-internal.data.mjs +1 -1
- package/esm2022/decorators/file/file-decorator.data.mjs +1 -1
- package/esm2022/decorators/file/file.decorator.mjs +2 -2
- package/esm2022/decorators/has-many/has-many-decorator-internal.data.mjs +1 -1
- package/esm2022/decorators/has-many/has-many.decorator.mjs +2 -2
- package/esm2022/decorators/number/number-decorator-internal.data.mjs +3 -10
- package/esm2022/decorators/number/number.decorator.mjs +2 -2
- package/esm2022/decorators/object/object-decorator-internal.data.mjs +23 -1
- package/esm2022/decorators/object/object-decorator.data.mjs +1 -1
- package/esm2022/decorators/object/object.decorator.mjs +8 -3
- package/esm2022/decorators/references-many/references-many-decorator-internal.data.mjs +1 -1
- package/esm2022/decorators/references-many/references-many.decorator.mjs +2 -2
- package/esm2022/decorators/references-one/references-one-decorator-internal.data.mjs +1 -1
- package/esm2022/decorators/references-one/references-one.decorator.mjs +2 -2
- package/esm2022/decorators/string/string-decorator-internal.data.mjs +3 -10
- package/esm2022/decorators/string/string.decorator.mjs +2 -2
- package/esm2022/default-global-configuration-values.mjs +5 -1
- package/esm2022/directives/dynamic-style-class.directive.mjs +1 -1
- package/esm2022/encapsulation/reflect.utilities.mjs +2 -1
- package/esm2022/functions/dropdown-values-to-function.function.mjs +14 -0
- package/esm2022/functions/get-validation-errors-tooltip-content.function.ts.mjs +1 -1
- package/esm2022/global-configuration-values.mjs +1 -1
- package/esm2022/services/entity.service.mjs +1 -1
- package/esm2022/services/unsaved-changes.guard.mjs +7 -13
- package/esm2022/utilities/date.utilities.mjs +1 -1
- package/esm2022/utilities/entity.utilities.mjs +4 -4
- package/esm2022/utilities/file.utilities.mjs +1 -1
- package/esm2022/utilities/validation.utilities.mjs +11 -6
- package/fesm2022/ngx-material-entity.mjs +4494 -4333
- package/fesm2022/ngx-material-entity.mjs.map +1 -1
- package/functions/dropdown-values-to-function.function.d.ts +11 -0
- package/global-configuration-values.d.ts +11 -1
- package/package.json +1 -1
- package/services/unsaved-changes.guard.d.ts +15 -8
|
@@ -48,4 +48,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImpor
|
|
|
48
48
|
type: Input,
|
|
49
49
|
args: [{ required: true }]
|
|
50
50
|
}] } });
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1zdHlsZS1jbGFzcy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbWF0ZXJpYWwtZW50aXR5L3NyYy9kaXJlY3RpdmVzL2R5bmFtaWMtc3R5bGUtY2xhc3MuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBYSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBS25GOztHQUVHO0FBRUgsTUFBTSxPQUFPLDBCQUEwQjtJQWdCTjtJQUFzQztJQWQzRCxtQkFBbUIsR0FBYSxFQUFFLENBQUM7SUFFM0M7O09BRUc7SUFFSCxtQkFBbUIsQ0FBbUM7SUFFdEQ7O09BRUc7SUFFSCxNQUFNLENBQWM7SUFFcEIsWUFBNkIsT0FBbUIsRUFBbUIsUUFBbUI7UUFBekQsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQUFtQixhQUFRLEdBQVIsUUFBUSxDQUFXO0lBQUcsQ0FBQztJQUUxRixXQUFXO1FBQ1AsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVPLG1CQUFtQjtRQUN2QixNQUFNLE9BQU8sR0FBb0IsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUV2RSxLQUFLLE1BQU0sVUFBVSxJQUFJLElBQUksQ0FBQyxtQkFBbUIsRUFBRTtZQUMvQyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxVQUFVLENBQUMsQ0FBQztTQUNyRTtRQUNELElBQUksQ0FBQyxtQkFBbUIsR0FBRyxFQUFFLENBQUM7UUFDOUIsSUFBSSxPQUFPLEVBQUUsTUFBTSxFQUFFO1lBQ2pCLEtBQUssTUFBTSxVQUFVLElBQUksT0FBTyxFQUFFO2dCQUM5QixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxVQUFVLENBQUMsQ0FBQztnQkFDL0QsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUM3QztTQUNKO0lBQ0wsQ0FBQzt1R0FuQ1EsMEJBQTBCOzJGQUExQiwwQkFBMEI7OzJGQUExQiwwQkFBMEI7a0JBRHRDLFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUsdUJBQXVCLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRTt5SEFTOUQsbUJBQW1CO3NCQURsQixLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFPekIsTUFBTTtzQkFETCxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5wdXQsIE9uQ2hhbmdlcywgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEJhc2VFbnRpdHlUeXBlIH0gZnJvbSAnLi4vY2xhc3Nlcy9lbnRpdHkubW9kZWwnO1xuaW1wb3J0IHsgRHluYW1pY1N0eWxlQ2xhc3NlcyB9IGZyb20gJy4uL2NvbXBvbmVudHMvdGFibGUvdGFibGUtZGF0YSc7XG5cbi8qKlxuICogRHluYW1pY2FsbHkgYXBwbGllcyBjc3MgY2xhc3NlcyBiYXNlZCBvbiBhIHByb3ZpZGVkIGZ1bmN0aW9uLlxuICovXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICdbZHluYW1pY1N0eWxlQ2xhc3Nlc10nLCBzdGFuZGFsb25lOiB0cnVlIH0pXG5leHBvcnQgY2xhc3MgRHluYW1pY1N0eWxlQ2xhc3NEaXJlY3RpdmU8RW50aXR5VHlwZSBleHRlbmRzIEJhc2VFbnRpdHlUeXBlPEVudGl0eVR5cGU+PiBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG5cbiAgICBwcml2YXRlIHN0eWxlQ2xhc3Nlc0FwcGxpZWQ6IHN0cmluZ1tdID0gW107XG5cbiAgICAvKipcbiAgICAgKiBUaGUgZnVuY3Rpb24gdGhhdCBnZXRzIHRoZSBjc3MgY2xhc3NlcyB0byBkeW5hbWljYWxseSBhcHBseS5cbiAgICAgKi9cbiAgICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KVxuICAgIGR5bmFtaWNTdHlsZUNsYXNzZXMhOiBEeW5hbWljU3R5bGVDbGFzc2VzPEVudGl0eVR5cGU+O1xuXG4gICAgLyoqXG4gICAgICogVGhlIGlucHV0IGZvciB0aGUgZHluYW1pYyBzdHlsZSBjbGFzc2VzIGZ1bmN0aW9uLlxuICAgICAqL1xuICAgIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pXG4gICAgZW50aXR5ITogRW50aXR5VHlwZTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudDogRWxlbWVudFJlZiwgcHJpdmF0ZSByZWFkb25seSByZW5kZXJlcjogUmVuZGVyZXIyKSB7fVxuXG4gICAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYXBwbHlEeW5hbWljQ2xhc3NlcygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXBwbHlEeW5hbWljQ2xhc3NlcygpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY2xhc3Nlczogc3RyaW5nW10gfCB2b2lkID0gdGhpcy5keW5hbWljU3R5bGVDbGFzc2VzKHRoaXMuZW50aXR5KTtcblxuICAgICAgICBmb3IgKGNvbnN0IHN0eWxlQ2xhc3Mgb2YgdGhpcy5zdHlsZUNsYXNzZXNBcHBsaWVkKSB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LCBzdHlsZUNsYXNzKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnN0eWxlQ2xhc3Nlc0FwcGxpZWQgPSBbXTtcbiAgICAgICAgaWYgKGNsYXNzZXM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBzdHlsZUNsYXNzIG9mIGNsYXNzZXMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LCBzdHlsZUNsYXNzKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0eWxlQ2xhc3Nlc0FwcGxpZWQucHVzaChzdHlsZUNsYXNzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn0iXX0=
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
// eslint-disable-next-line eslintImport/no-unassigned-import
|
|
1
2
|
import 'reflect-metadata';
|
|
2
3
|
/**
|
|
3
4
|
* Encapsulates all functionality of Reflect.
|
|
@@ -75,4 +76,4 @@ export class ReflectUtilities {
|
|
|
75
76
|
Reflect.defineMetadata(metadataKey, metadataValue, target, propertyKey);
|
|
76
77
|
}
|
|
77
78
|
}
|
|
78
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmbGVjdC51dGlsaXRpZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbWF0ZXJpYWwtZW50aXR5L3NyYy9lbmNhcHN1bGF0aW9uL3JlZmxlY3QudXRpbGl0aWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDZEQUE2RDtBQUM3RCxPQUFPLGtCQUFrQixDQUFDO0FBRTFCOztHQUVHO0FBQ0gsTUFBTSxPQUFnQixnQkFBZ0I7SUFDbEM7Ozs7OztPQU1HO0lBQ0gsTUFBTSxDQUFDLFdBQVcsQ0FBbUIsV0FBbUIsRUFBRSxNQUFTLEVBQUUsV0FBb0I7UUFDckYsT0FBTyxPQUFPLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxNQUFNLEVBQUUsV0FBcUIsQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILE1BQU0sQ0FBQyxPQUFPLENBQW1CLE1BQVM7UUFDdEMsTUFBTSxHQUFHLEdBQWdCLEVBQUUsQ0FBQztRQUM1QixLQUFLLE1BQU0sR0FBRyxJQUFJLE1BQU0sRUFBRTtZQUN0QixHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ2pCO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDZixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxNQUFNLENBQUMsR0FBRyxDQUFtQixNQUFTLEVBQUUsV0FBb0I7UUFDeEQsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsTUFBTSxDQUFDLEdBQUcsQ0FBbUIsTUFBUyxFQUFFLFdBQW9CLEVBQUUsS0FBYztRQUN4RSxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxNQUFNLENBQUMsR0FBRyxDQUFtQixNQUFTLEVBQUUsV0FBb0I7UUFDeEQsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsTUFBTSxDQUFDLFdBQVcsQ0FBbUIsV0FBbUIsRUFBRSxNQUFTLEVBQUUsV0FBb0I7UUFDckYsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxNQUFNLEVBQUUsV0FBVyxDQUFDLElBQUksSUFBSSxDQUFDO0lBQ3RFLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxNQUFNLENBQUMsY0FBYyxDQUNqQixXQUFvQixFQUNwQixhQUFzQixFQUN0QixNQUFTLEVBQ1QsV0FBb0I7UUFFcEIsT0FBTyxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxXQUFxQixDQUFDLENBQUM7SUFDdEYsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzbGludEltcG9ydC9uby11bmFzc2lnbmVkLWltcG9ydFxuaW1wb3J0ICdyZWZsZWN0LW1ldGFkYXRhJztcblxuLyoqXG4gKiBFbmNhcHN1bGF0ZXMgYWxsIGZ1bmN0aW9uYWxpdHkgb2YgUmVmbGVjdC5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFJlZmxlY3RVdGlsaXRpZXMge1xuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIG1ldGFkYXRhIHZhbHVlIGZvciB0aGUgcHJvdmlkZWQgbWV0YWRhdGEga2V5IG9uIHRoZSB0YXJnZXQgb2JqZWN0IG9yIGl0cyBwcm90b3R5cGUgY2hhaW4uXG4gICAgICogQHBhcmFtIG1ldGFkYXRhS2V5IC0gQSBrZXkgdXNlZCB0byBzdG9yZSBhbmQgcmV0cmlldmUgbWV0YWRhdGEuXG4gICAgICogQHBhcmFtIHRhcmdldCAtIFRoZSB0YXJnZXQgb2JqZWN0IG9uIHdoaWNoIHRoZSBtZXRhZGF0YSBpcyBkZWZpbmVkLlxuICAgICAqIEBwYXJhbSBwcm9wZXJ0eUtleSAtIFRoZSBwcm9wZXJ0eSBrZXkgZm9yIHRoZSB0YXJnZXQuXG4gICAgICogQHJldHVybnMgVGhlIG1ldGFkYXRhIHZhbHVlIGZvciB0aGUgbWV0YWRhdGEga2V5IGlmIGZvdW5kOyBvdGhlcndpc2UsIHVuZGVmaW5lZC5cbiAgICAgKi9cbiAgICBzdGF0aWMgZ2V0TWV0YWRhdGE8VCBleHRlbmRzIG9iamVjdD4obWV0YWRhdGFLZXk6IHN0cmluZywgdGFyZ2V0OiBULCBwcm9wZXJ0eUtleToga2V5b2YgVCk6IHVua25vd24ge1xuICAgICAgICByZXR1cm4gUmVmbGVjdC5nZXRNZXRhZGF0YShtZXRhZGF0YUtleSwgdGFyZ2V0LCBwcm9wZXJ0eUtleSBhcyBzdHJpbmcpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIHN0cmluZyBhbmQgc3ltYm9sIGtleXMgb2YgdGhlIG93biBwcm9wZXJ0aWVzIG9mIGFuIG9iamVjdC4gVGhlIG93biBwcm9wZXJ0aWVzIG9mIGFuIG9iamVjdFxuICAgICAqIGFyZSB0aG9zZSB0aGF0IGFyZSBkZWZpbmVkIGRpcmVjdGx5IG9uIHRoYXQgb2JqZWN0LCBhbmQgYXJlIG5vdCBpbmhlcml0ZWQgZnJvbSB0aGUgb2JqZWN0J3MgcHJvdG90eXBlLlxuICAgICAqIEBwYXJhbSB0YXJnZXQgLSBPYmplY3QgdGhhdCBjb250YWlucyB0aGUgb3duIHByb3BlcnRpZXMuXG4gICAgICogQHJldHVybnMgVGhlIGtleXMgb2YgdGhlIGdpdmVuIG9iamVjdC5cbiAgICAgKi9cbiAgICBzdGF0aWMgb3duS2V5czxUIGV4dGVuZHMgb2JqZWN0Pih0YXJnZXQ6IFQpOiAoa2V5b2YgVClbXSB7XG4gICAgICAgIGNvbnN0IHJlczogKGtleW9mIFQpW10gPSBbXTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gdGFyZ2V0KSB7XG4gICAgICAgICAgICByZXMucHVzaChrZXkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgcHJvcGVydHkgb2YgdGFyZ2V0LCBlcXVpdmFsZW50IHRvIGB0YXJnZXRbcHJvcGVydHlLZXldYC5cbiAgICAgKiBAcGFyYW0gdGFyZ2V0IC0gT2JqZWN0IHRoYXQgY29udGFpbnMgdGhlIHByb3BlcnR5IG9uIGl0c2VsZiBvciBpbiBpdHMgcHJvdG90eXBlIGNoYWluLlxuICAgICAqIEBwYXJhbSBwcm9wZXJ0eUtleSAtIFRoZSBwcm9wZXJ0eSBuYW1lLlxuICAgICAqIEByZXR1cm5zIFRoZSBwcm9wZXJ0eSBvZiB0aGUgdGFyZ2V0IG9mIHRoZSBnaXZlbiBrZXkuXG4gICAgICovXG4gICAgc3RhdGljIGdldDxUIGV4dGVuZHMgb2JqZWN0Pih0YXJnZXQ6IFQsIHByb3BlcnR5S2V5OiBrZXlvZiBUKTogdW5rbm93biB7XG4gICAgICAgIHJldHVybiBSZWZsZWN0LmdldCh0YXJnZXQsIHByb3BlcnR5S2V5KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBwcm9wZXJ0eSBvZiB0YXJnZXQsIGVxdWl2YWxlbnQgdG8gYHRhcmdldFtwcm9wZXJ0eUtleV0gPSB2YWx1ZWAuXG4gICAgICogQHBhcmFtIHRhcmdldCAtIE9iamVjdCB0aGF0IGNvbnRhaW5zIHRoZSBwcm9wZXJ0eSBvbiBpdHNlbGYgb3IgaW4gaXRzIHByb3RvdHlwZSBjaGFpbi5cbiAgICAgKiBAcGFyYW0gcHJvcGVydHlLZXkgLSBUaGUgcHJvcGVydHkgbmFtZS5cbiAgICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgdmFsdWUgdG8gc2V0IHRoZSBwcm9wZXJ0eSB0by5cbiAgICAgKiBAcmV0dXJucyBJZiBzZXR0aW5nIHRoZSB2YWx1ZSB3YXMgc3VjY2Vzc2Z1bC5cbiAgICAgKi9cbiAgICBzdGF0aWMgc2V0PFQgZXh0ZW5kcyBvYmplY3Q+KHRhcmdldDogVCwgcHJvcGVydHlLZXk6IGtleW9mIFQsIHZhbHVlOiB1bmtub3duKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBSZWZsZWN0LnNldCh0YXJnZXQsIHByb3BlcnR5S2V5LCB2YWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRXF1aXZhbGVudCB0byBgcHJvcGVydHlLZXkgaW4gdGFyZ2V0YC5cbiAgICAgKiBAcGFyYW0gdGFyZ2V0IC0gT2JqZWN0IHRoYXQgY29udGFpbnMgdGhlIHByb3BlcnR5IG9uIGl0c2VsZiBvciBpbiBpdHMgcHJvdG90eXBlIGNoYWluLlxuICAgICAqIEBwYXJhbSBwcm9wZXJ0eUtleSAtIE5hbWUgb2YgdGhlIHByb3BlcnR5LlxuICAgICAqIEByZXR1cm5zIFdoZXRoZXIgb3Igbm90IHRoZSBnaXZlbiB0YXJnZXQgaGFzIHRoZSBrZXkuXG4gICAgICovXG4gICAgc3RhdGljIGhhczxUIGV4dGVuZHMgb2JqZWN0Pih0YXJnZXQ6IFQsIHByb3BlcnR5S2V5OiBrZXlvZiBUKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBSZWZsZWN0Lmhhcyh0YXJnZXQsIHByb3BlcnR5S2V5KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgdGhlIHRhcmdldHMga2V5IGVudHJ5IGhhcyBhIG1ldGFkYXRhIHZhbHVlIGZvciB0aGUgZ2l2ZW4gbWV0YWRhdGEga2V5LlxuICAgICAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIG1ldGFkYXRhIGlzIG51bGwgb3Igbm90LlxuICAgICAqIEBwYXJhbSBtZXRhZGF0YUtleSAtIFRoZSBrZXkgb2YgdGhlIG1ldGFkYXRhIG9uIHRoZSBwcm9wZXJ0eS5cbiAgICAgKiBAcGFyYW0gdGFyZ2V0IC0gT2JqZWN0IHRoYXQgY29udGFpbnMgdGhlIHByb3BlcnR5IG9uIGl0c2VsZiBvciBpbiBpdHMgcHJvdG90eXBlIGNoYWluLlxuICAgICAqIEBwYXJhbSBwcm9wZXJ0eUtleSAtIFRoZSBrZXkgb2YgdGhlIHRhcmdldC5cbiAgICAgKi9cbiAgICBzdGF0aWMgaGFzTWV0YWRhdGE8VCBleHRlbmRzIG9iamVjdD4obWV0YWRhdGFLZXk6IHN0cmluZywgdGFyZ2V0OiBULCBwcm9wZXJ0eUtleToga2V5b2YgVCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRNZXRhZGF0YShtZXRhZGF0YUtleSwgdGFyZ2V0LCBwcm9wZXJ0eUtleSkgIT0gbnVsbDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZWZpbmUgYSB1bmlxdWUgbWV0YWRhdGEgZW50cnkgb24gdGhlIHRhcmdldC5cbiAgICAgKiBAcGFyYW0gbWV0YWRhdGFLZXkgLSBBIGtleSB1c2VkIHRvIHN0b3JlIGFuZCByZXRyaWV2ZSBtZXRhZGF0YS5cbiAgICAgKiBAcGFyYW0gbWV0YWRhdGFWYWx1ZSAtIEEgdmFsdWUgdGhhdCBjb250YWlucyBhdHRhY2hlZCBtZXRhZGF0YS5cbiAgICAgKiBAcGFyYW0gdGFyZ2V0IC0gVGhlIHRhcmdldCBvYmplY3Qgb24gd2hpY2ggdG8gZGVmaW5lIG1ldGFkYXRhLlxuICAgICAqIEBwYXJhbSBwcm9wZXJ0eUtleSAtIFRoZSBwcm9wZXJ0eSBrZXkgZm9yIHRoZSB0YXJnZXQuXG4gICAgICovXG4gICAgc3RhdGljIGRlZmluZU1ldGFkYXRhPFQgZXh0ZW5kcyBvYmplY3Q+KFxuICAgICAgICBtZXRhZGF0YUtleTogdW5rbm93bixcbiAgICAgICAgbWV0YWRhdGFWYWx1ZTogdW5rbm93bixcbiAgICAgICAgdGFyZ2V0OiBULFxuICAgICAgICBwcm9wZXJ0eUtleToga2V5b2YgVFxuICAgICk6IHZvaWQge1xuICAgICAgICBSZWZsZWN0LmRlZmluZU1ldGFkYXRhKG1ldGFkYXRhS2V5LCBtZXRhZGF0YVZhbHVlLCB0YXJnZXQsIHByb3BlcnR5S2V5IGFzIHN0cmluZyk7XG4gICAgfVxufSJdfQ==
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Transforms the given dropdown values to an async function.
|
|
3
|
+
* @param dropdownValues - The dropdown values to transform.
|
|
4
|
+
* @returns An abstract function.
|
|
5
|
+
*/
|
|
6
|
+
// eslint-disable-next-line typescript/no-explicit-any
|
|
7
|
+
export function dropdownValuesToFunction(dropdownValues) {
|
|
8
|
+
if (Array.isArray(dropdownValues)) {
|
|
9
|
+
return async () => dropdownValues;
|
|
10
|
+
}
|
|
11
|
+
// eslint-disable-next-line typescript/no-explicit-any
|
|
12
|
+
return async (e) => await dropdownValues(e);
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tdmFsdWVzLXRvLWZ1bmN0aW9uLmZ1bmN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW1hdGVyaWFsLWVudGl0eS9zcmMvZnVuY3Rpb25zL2Ryb3Bkb3duLXZhbHVlcy10by1mdW5jdGlvbi5mdW5jdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFXQTs7OztHQUlHO0FBQ0gsc0RBQXNEO0FBQ3RELE1BQU0sVUFBVSx3QkFBd0IsQ0FBSSxjQUFpQztJQUN6RSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLEVBQUU7UUFDL0IsT0FBTyxLQUFLLElBQUksRUFBRSxDQUFDLGNBQWMsQ0FBQztLQUNyQztJQUNELHNEQUFzRDtJQUN0RCxPQUFPLEtBQUssRUFBRSxDQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3JELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEcm9wZG93blZhbHVlIH0gZnJvbSAnLi4vZGVjb3JhdG9ycy9iYXNlL2Ryb3Bkb3duLXZhbHVlLmludGVyZmFjZSc7XG5cbi8qKlxuICogR2VuZXJpYyBUeXBlIGZvciBhbGwgcG9zc2libGUgdmFsdWVzIHRoYXQgY2FuIGJlIHByb3ZpZGVkIGFzIGRyb3Bkb3duIHZhbHVlcy5cbiAqL1xuZXhwb3J0IHR5cGUgRHJvcGRvd25WYWx1ZXM8VD4gPSBEcm9wZG93blZhbHVlPFQgfCB1bmRlZmluZWQ+W11cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgdHlwZXNjcmlwdC9uby1leHBsaWNpdC1hbnlcbiAgICB8ICgoZW50aXR5OiBhbnkpID0+IERyb3Bkb3duVmFsdWU8VCB8IHVuZGVmaW5lZD5bXSlcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgdHlwZXNjcmlwdC9uby1leHBsaWNpdC1hbnlcbiAgICB8ICgoZW50aXR5OiBhbnkpID0+IFByb21pc2U8RHJvcGRvd25WYWx1ZTxUIHwgdW5kZWZpbmVkPltdPilcblxuLyoqXG4gKiBUcmFuc2Zvcm1zIHRoZSBnaXZlbiBkcm9wZG93biB2YWx1ZXMgdG8gYW4gYXN5bmMgZnVuY3Rpb24uXG4gKiBAcGFyYW0gZHJvcGRvd25WYWx1ZXMgLSBUaGUgZHJvcGRvd24gdmFsdWVzIHRvIHRyYW5zZm9ybS5cbiAqIEByZXR1cm5zIEFuIGFic3RyYWN0IGZ1bmN0aW9uLlxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgdHlwZXNjcmlwdC9uby1leHBsaWNpdC1hbnlcbmV4cG9ydCBmdW5jdGlvbiBkcm9wZG93blZhbHVlc1RvRnVuY3Rpb248VD4oZHJvcGRvd25WYWx1ZXM6IERyb3Bkb3duVmFsdWVzPFQ+KTogKGVudGl0eTogYW55KSA9PiBQcm9taXNlPERyb3Bkb3duVmFsdWU8VCB8IHVuZGVmaW5lZD5bXT4ge1xuICAgIGlmIChBcnJheS5pc0FycmF5KGRyb3Bkb3duVmFsdWVzKSkge1xuICAgICAgICByZXR1cm4gYXN5bmMgKCkgPT4gZHJvcGRvd25WYWx1ZXM7XG4gICAgfVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSB0eXBlc2NyaXB0L25vLWV4cGxpY2l0LWFueVxuICAgIHJldHVybiBhc3luYyAoZTogYW55KSA9PiBhd2FpdCBkcm9wZG93blZhbHVlcyhlKTtcbn0iXX0=
|
|
@@ -20,4 +20,4 @@ export function getValidationErrorsTooltipContent(validationErrors) {
|
|
|
20
20
|
res = res.concat('\n</ul>');
|
|
21
21
|
return res;
|
|
22
22
|
}
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LXZhbGlkYXRpb24tZXJyb3JzLXRvb2x0aXAtY29udGVudC5mdW5jdGlvbi50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1tYXRlcmlhbC1lbnRpdHkvc3JjL2Z1bmN0aW9ucy9nZXQtdmFsaWRhdGlvbi1lcnJvcnMtdG9vbHRpcC1jb250ZW50LmZ1bmN0aW9uLnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSXZEOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sK0JBQStCLEdBQTJCLElBQUksY0FBYyxDQUNyRixtREFBbUQsRUFDbkQ7SUFDSSxVQUFVLEVBQUUsTUFBTTtJQUNsQixPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsb0JBQW9CO0NBQ3RDLENBQ0osQ0FBQztBQUVGOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsaUNBQWlDLENBQUMsZ0JBQW1DO0lBQ2pGLE1BQU0sS0FBSyxHQUFXLE1BQU0sQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO0lBQzlELElBQUksR0FBRyxHQUFXLEdBQUcsS0FBSyw4REFBOEQsQ0FBQztJQUN6RixLQUFLLE1BQU0sS0FBSyxJQUFJLGdCQUFnQixFQUFFO1FBQ2xDLEdBQUcsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLFdBQVcsS0FBSyxDQUFDLFFBQVEsT0FBTyxDQUFDLENBQUM7S0FDdEQ7SUFDRCxHQUFHLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM1QixPQUFPLEdBQUcsQ0FBQztBQUNmLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFZhbGlkYXRpb25FcnJvciB9IGZyb20gJy4uL3V0aWxpdGllcy92YWxpZGF0aW9uLnV0aWxpdGllcyc7XG5cbi8qKlxuICogUHJvdmlkZXIgZm9yIHRoZSB2YWxpZGF0aW9uIGVycm9ycyB0b29sdGlwIHRpdGxlLlxuICovXG5leHBvcnQgY29uc3QgTmd4VmFsaWRhdGlvbkVycm9yc1Rvb2x0aXBUaXRsZTogSW5qZWN0aW9uVG9rZW48c3RyaW5nPiA9IG5ldyBJbmplY3Rpb25Ub2tlbihcbiAgICAnUHJvdmlkZXIgZm9yIHRoZSB2YWxpZGF0aW9uIGVycm9ycyB0b29sdGlwIHRpdGxlLicsXG4gICAge1xuICAgICAgICBwcm92aWRlZEluOiAncm9vdCcsXG4gICAgICAgIGZhY3Rvcnk6ICgpID0+ICdWYWxpZGF0aW9uIEVycm9yczonXG4gICAgfVxuKTtcblxuLyoqXG4gKiBUaGUgZGVmYXVsdCBmdW5jdGlvbiB0aGF0IGdldHMgdGhlIHZhbGlkYXRpb24gZXJyb3JzIHRvb2x0aXAgY29udGVudC5cbiAqIEBwYXJhbSB2YWxpZGF0aW9uRXJyb3JzIC0gQWxsIHZhbGlkYXRpb24gZXJyb3JzIGZvciB3aGljaCB0aGUgdG9vbHRpcCBjb250ZW50IHNob3VsZCBiZSBnZW5lcmF0ZWQuXG4gKiBAcmV0dXJucyBBIGh0bWwgc3RyaW5nLCBjb250YWluaW5nIGEgbGlzdCBvZiB0aGUgbmFtZSBvZiBlYWNoIGludmFsaWQgcHJvcGVydHkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRWYWxpZGF0aW9uRXJyb3JzVG9vbHRpcENvbnRlbnQodmFsaWRhdGlvbkVycm9yczogVmFsaWRhdGlvbkVycm9yW10pOiBzdHJpbmcge1xuICAgIGNvbnN0IHRpdGxlOiBzdHJpbmcgPSBpbmplY3QoTmd4VmFsaWRhdGlvbkVycm9yc1Rvb2x0aXBUaXRsZSk7XG4gICAgbGV0IHJlczogc3RyaW5nID0gYCR7dGl0bGV9XFxuPGJyPlxcbjx1bCBzdHlsZT1cIm1hcmdpbi1ib3R0b206IDBweDsgcGFkZGluZy1sZWZ0OiAxNnB4O1wiPmA7XG4gICAgZm9yIChjb25zdCBlcnJvciBvZiB2YWxpZGF0aW9uRXJyb3JzKSB7XG4gICAgICAgIHJlcyA9IHJlcy5jb25jYXQoYFxcblxcdDxsaT4ke2Vycm9yLnByb3BlcnR5fTwvbGk+YCk7XG4gICAgfVxuICAgIHJlcyA9IHJlcy5jb25jYXQoJ1xcbjwvdWw+Jyk7XG4gICAgcmV0dXJuIHJlcztcbn0iXX0=
|
|
@@ -23,4 +23,4 @@ export const NGX_COMPLETE_GLOBAL_DEFAULT_VALUES = new InjectionToken('NGX_COMPLE
|
|
|
23
23
|
};
|
|
24
24
|
}
|
|
25
25
|
});
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsLWNvbmZpZ3VyYXRpb24tdmFsdWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcHJvamVjdHMvbmd4LW1hdGVyaWFsLWVudGl0eS9zcmMvZ2xvYmFsLWNvbmZpZ3VyYXRpb24tdmFsdWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDBCQUEwQjtBQUMxQixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQXlNOUU7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBb0QsSUFBSSxjQUFjLENBQ3hHLDJCQUEyQixFQUMzQjtJQUNJLFVBQVUsRUFBRSxNQUFNO0lBQ2xCLE9BQU8sRUFBRSxHQUFHLEVBQUU7UUFDVixPQUFPLEVBQUUsQ0FBQztJQUNkLENBQUM7Q0FDSixDQUNKLENBQUM7QUFFRjs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGtDQUFrQyxHQUEyQyxJQUFJLGNBQWMsQ0FDeEcsb0NBQW9DLEVBQ3BDO0lBQ0ksVUFBVSxFQUFFLE1BQU07SUFDbEIsT0FBTyxFQUFFLEdBQUcsRUFBRTtRQUNWLE1BQU0sVUFBVSxHQUFvQyxNQUFNLENBQUMseUJBQXlCLENBQUMsQ0FBQztRQUN0RixPQUFPO1lBQ0gsR0FBRyxxQkFBcUI7WUFDeEIsR0FBRyxVQUFVO1NBQ2hCLENBQUM7SUFDTixDQUFDO0NBQ0osQ0FDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyogaXN0YW5idWwgaWdub3JlIGZpbGUgKi9cbmltcG9ydCB7IEluamVjdGlvblRva2VuLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgZGVmYXVsdEdsb2JhbERlZmF1bHRzIH0gZnJvbSAnLi9kZWZhdWx0LWdsb2JhbC1jb25maWd1cmF0aW9uLXZhbHVlcyc7XG5cbi8qKlxuICogQWxsIGNvbmZpZ3VyYWJsZSBkZWZhdWx0IHZhbHVlcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOZ3hHbG9iYWxEZWZhdWx0VmFsdWVzIHtcbiAgICAvKipcbiAgICAgKiBUaGUgbGFiZWwgZm9yIGNyZWF0ZSBidXR0b25zLlxuICAgICAqIEBkZWZhdWx0ICdDcmVhdGUnXG4gICAgICovXG4gICAgY3JlYXRlTGFiZWw6IHN0cmluZyxcbiAgICAvKipcbiAgICAgKiBUaGUgbGFiZWwgZm9yIGVkaXQgYnV0dG9ucy5cbiAgICAgKiBAZGVmYXVsdCAnRWRpdCdcbiAgICAgKi9cbiAgICBlZGl0TGFiZWw6IHN0cmluZyxcbiAgICAvKipcbiAgICAgKiBUaGUgbGFiZWwgZm9yIHNhdmUgYnV0dG9ucy5cbiAgICAgKiBAZGVmYXVsdCAnU2F2ZSdcbiAgICAgKi9cbiAgICBzYXZlTGFiZWw6IHN0cmluZyxcbiAgICAvKipcbiAgICAgKiBUaGUgbGFiZWwgZm9yIGNhbmNlbCBidXR0b25zLlxuICAgICAqIEBkZWZhdWx0ICdDYW5jZWwnXG4gICAgICovXG4gICAgY2FuY2VsTGFiZWw6IHN0cmluZyxcbiAgICAvKipcbiAgICAgKiBUaGUgbGFiZWwgZm9yIGFkZCBidXR0b25zLlxuICAgICAqIEBkZWZhdWx0ICdBZGQnXG4gICAgICovXG4gICAgYWRkTGFiZWw6IHN0cmluZyxcbiAgICAvKipcbiAgICAgKiBUaGUgbGFiZWwgZm9yIGRlbGV0ZSBidXR0b25zLlxuICAgICAqIEBkZWZhdWx0ICdEZWxldGUnXG4gICAgICovXG4gICAgZGVsZXRlTGFiZWw6IHN0cmluZyxcbiAgICAvKipcbiAgICAgKiBUaGUgbGFiZWwgZm9yIGJhY2sgYnV0dG9ucy5cbiAgICAgKiBAZGVmYXVsdCAnQmFjaydcbiAgICAgKi9cbiAgICBiYWNrTGFiZWw6IHN0cmluZyxcbiAgICAvKipcbiAgICAgKiBUaGUgbGFiZWwgZm9yIGFjdGlvbnMuXG4gICAgICogQGRlZmF1bHQgJ0FjdGlvbnMnXG4gICAgICovXG4gICAgYWN0aW9uc0xhYmVsOiBzdHJpbmcsXG4gICAgLyoqXG4gICAgICogVGhlIGxhYmVsIGZvciBzZWFyY2hlcy5cbiAgICAgKiBAZGVmYXVsdCAnU2VhcmNoJ1xuICAgICAqL1xuICAgIHNlYXJjaExhYmVsOiBzdHJpbmcsXG4gICAgLyoqXG4gICAgICogVGhlIGRpc3BsYXkgdmFsdWUgZm9yIHRoZSBcInRydWVcIiB2YWx1ZSBpbiBkcm9wZG93bnMuXG4gICAgICogQGRlZmF1bHQgJ1llcydcbiAgICAgKi9cbiAgICBkcm9wZG93blRydWU6IHN0cmluZyxcbiAgICAvKipcbiAgICAgKiBUaGUgZGlzcGxheSB2YWx1ZSBmb3IgdGhlIFwiZmFsc2VcIiB2YWx1ZSBpbiBkcm9wZG93bnMuXG4gICAgICogQGRlZmF1bHQgJ05vJ1xuICAgICAqL1xuICAgIGRyb3Bkb3duRmFsc2U6IHN0cmluZyxcbiAgICAvKipcbiAgICAgKiBUaGUgbGFiZWwgZm9yIGNvbmZpcm0gYnV0dG9ucy5cbiAgICAgKiBAZGVmYXVsdCAnQ29uZmlybSdcbiAgICAgKi9cbiAgICBjb25maXJtTGFiZWw6IHN0cmluZyxcbiAgICAvKipcbiAgICAgKiBUaGUgdGl0bGUgZm9yIGEgY29uZmlybSBkaWFsb2cuXG4gICAgICogQGRlZmF1bHQgJ0NvbmZpcm1hdGlvbidcbiAgICAgKi9cbiAgICBkZWZhdWx0Q29uZmlybURpYWxvZ1RpdGxlOiBzdHJpbmcsXG4gICAgLyoqXG4gICAgICogVGhlIHRleHQgZm9yIGEgY29uZmlybSBkaWFsb2cuXG4gICAgICogQGRlZmF1bHQgWydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZG8gdGhpcz8nXVxuICAgICAqL1xuICAgIGRlZmF1bHRDb25maXJtRGlhbG9nVGV4dDogc3RyaW5nW10sXG4gICAgLyoqXG4gICAgICogVGhlIHRleHQgZm9yIGNvbmZpcm1pbmcgYSBzYXZlIGFjdGlvbi5cbiAgICAgKiBAZGVmYXVsdCBbJ0RvIHlvdSByZWFsbHkgd2FudCB0byBzYXZlIGFsbCBjaGFuZ2VzPyddXG4gICAgICovXG4gICAgY29uZmlybVNhdmVUZXh0OiBzdHJpbmdbXSxcbiAgICAvKipcbiAgICAgKiBUaGUgdGV4dCBmb3IgY29uZmlybWluZyBhIGRlbGV0ZSBhY3Rpb24uXG4gICAgICogQGRlZmF1bHQgWydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgZW50aXR5PyddXG4gICAgICovXG4gICAgY29uZmlybURlbGV0ZVRleHQ6IHN0cmluZ1tdLFxuICAgIC8qKlxuICAgICAqIFRoZSBsYWJlbCBmb3IgdGhlIGJ1dHRvbiB0byBsZWF2ZSB3aXRob3V0IGNoYW5nZXMuXG4gICAgICogQGRlZmF1bHQgJ0xlYXZlJ1xuICAgICAqL1xuICAgIGNvbmZpcm1VbnNhdmVkQ2hhbmdlc0xhYmVsOiBzdHJpbmcsXG4gICAgLyoqXG4gICAgICogVGhlIGxhYmVsIGZvciB0aGUgYnV0dG9uIHRvIGNsb3NlIGEgZGlhbG9nIHdpdGhvdXQgY2hhbmdlcy5cbiAgICAgKiBAZGVmYXVsdCAnQ2xvc2UnXG4gICAgICovXG4gICAgY29uZmlybVVuc2F2ZWRDaGFuZ2VzRGlhbG9nTGFiZWw6IHN0cmluZyxcbiAgICAvKipcbiAgICAgKiBUaGUgdGl0bGUgZm9yIGNvbmZpcm1pbmcgdG8gbGVhdmUgd2l0aG91dCBjaGFuZ2VzLlxuICAgICAqIEBkZWZhdWx0ICdVbnNhdmVkIENoYW5nZXMnXG4gICAgICovXG4gICAgY29uZmlybVVuc2F2ZWRDaGFuZ2VzVGl0bGU6IHN0cmluZyxcbiAgICAvKipcbiAgICAgKiBUaGUgdGV4dCBmb3IgY29uZmlybWluZyB0byBsZWF2ZSBhIHBhZ2Ugd2l0aG91dCBjaGFuZ2VzLlxuICAgICAqIEBkZWZhdWx0IFsnWW91IGhhdmUgdW5zYXZlZCBjaGFuZ2VzIHRoYXQgd2lsbCBiZSBkZWxldGVkIHdoZW4geW91IGxlYXZlIHRoaXMgcGFnZS4nLCAnQ29udGludWU/J11cbiAgICAgKi9cbiAgICBjb25maXJtVW5zYXZlZENoYW5nZXNUZXh0OiBzdHJpbmdbXSxcbiAgICAvKipcbiAgICAgKiBUaGUgdGV4dCBmb3IgY29uZmlybWluZyB0byBsZWF2ZSBhIGRpYWxvZyB3aXRob3V0IGNoYW5nZXMuXG4gICAgICogQGRlZmF1bHQgWydZb3UgaGF2ZSB1bnNhdmVkIGNoYW5nZXMgdGhhdCB3aWxsIGJlIGRlbGV0ZWQgd2hlbiB5b3UgY2xvc2UgdGhpcyBkaWFsb2cuJywgJ0NvbnRpbnVlPyddXG4gICAgICovXG4gICAgY29uZmlybVVuc2F2ZWRDaGFuZ2VzRGlhbG9nVGV4dDogc3RyaW5nW10sXG4gICAgLyoqXG4gICAgICogVGhlIHRpdGxlIGZvciB0aGUgYWRkIGFycmF5IGl0ZW0gZGlhbG9nLlxuICAgICAqIEBkZWZhdWx0ICdBZGQgdG8gYXJyYXknXG4gICAgICovXG4gICAgYWRkQXJyYXlJdGVtVGl0bGU6IHN0cmluZyxcbiAgICAvKipcbiAgICAgKiBUaGUgdGV4dCBmb3IgY29uZmlybWluZyBhIGNyZWF0ZSBhY3Rpb24uXG4gICAgICogQGRlZmF1bHQgWydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gY3JlYXRlIHRoaXMgZW50aXR5PyddXG4gICAgICovXG4gICAgY29uZmlybUNyZWF0ZVRleHQ6IHN0cmluZ1tdLFxuICAgIC8qKlxuICAgICAqIFRoZSB0ZXh0IGZvciBjb25maXJtaW5nIGEgbXVsdGkgc2VsZWN0IGFjdGlvbi5cbiAgICAgKiBAZGVmYXVsdCBzZWxlY3RlZEVudHJpZXMgPT4gW2BEbyB5b3UgcmVhbGx5IHdhbnQgdG8gcnVuIHRoaXMgYWN0aW9uIG9uICR7c2VsZWN0ZWRFbnRyaWVzLmxlbmd0aH0gZW50cmllcz9gXVxuICAgICAqL1xuICAgIGNvbmZpcm1NdWx0aVNlbGVjdEFjdGlvblRleHQ6IChzZWxlY3RlZEVudHJpZXM6IHVua25vd25bXSkgPT4gc3RyaW5nW10sXG4gICAgLyoqXG4gICAgICogVGhlIHRleHQgZm9yIGNvbmZpcm1pbmcgYSBiYXNlIGFjdGlvbi5cbiAgICAgKiBAZGVmYXVsdCBbJ0RvIHlvdSByZWFsbHkgd2FudCB0byBydW4gdGhpcyBhY3Rpb24/J11cbiAgICAgKi9cbiAgICBjb25maXJtQmFzZUFjdGlvblRleHQ6IHN0cmluZ1tdLFxuICAgIC8qKlxuICAgICAqIFRoZSB0ZXh0IGZvciBjb25maXJtaW5nIHRoZSBqc29uIGltcG9ydC5cbiAgICAgKiBAZGVmYXVsdCBbJ0RvIHlvdSByZWFsbHkgd2FudCB0byBpbXBvcnQgZW50aXRpZXMgZnJvbSB0aGUgcHJvdmlkZWQgZmlsZT8nXVxuICAgICAqL1xuICAgIGNvbmZpcm1JbXBvcnRKc29uVGV4dDogc3RyaW5nW10sXG4gICAgLyoqXG4gICAgICogSG93IHRhYmxlIGVudGl0aWVzIGFyZSBlZGl0ZWQgYnkgZGVmYXVsdC5cbiAgICAgKiBAZGVmYXVsdCAnZGlhbG9nJ1xuICAgICAqL1xuICAgIGRlZmF1bHRFZGl0TWV0aG9kOiAnZGlhbG9nJyB8ICdwYWdlJyxcbiAgICAvKipcbiAgICAgKiBIb3cgdGFibGUgZW50aXRpZXMgYXJlIGNyZWF0ZWQgYnkgZGVmYXVsdC5cbiAgICAgKiBAZGVmYXVsdCAnZGlhbG9nJ1xuICAgICAqL1xuICAgIGRlZmF1bHRDcmVhdGVNZXRob2Q6ICdkaWFsb2cnIHwgJ3BhZ2UnLFxuICAgIC8qKlxuICAgICAqIFRoZSBlcnJvciBtZXNzYWdlIHRvIGRpc3BsYXkgd2hlbiBhbiBhcnJheSBwcm9wZXJ0eSBpcyByZXF1aXJlZCBhbmQgZW1wdHkuXG4gICAgICogQGRlZmF1bHQgJ05lZWRzIHRvIGNvbnRhaW4gYXQgbGVhc3Qgb25lIHZhbHVlJ1xuICAgICAqL1xuICAgIGVtcHR5QXJyYXlFcnJvck1lc3NhZ2U6IHN0cmluZyxcbiAgICAvKipcbiAgICAgKiBUaGUgbGFiZWwgZm9yIHJlbW92ZSBhY3Rpb25zLlxuICAgICAqIEBkZWZhdWx0ICdSZW1vdmUnXG4gICAgICovXG4gICAgcmVtb3ZlTGFiZWw6IHN0cmluZyxcbiAgICAvKipcbiAgICAgKiBUaGUgbGFiZWwgZm9yIHRpbWUgdmFsdWVzLlxuICAgICAqIE1haW5seSB1c2VkIGluc2lkZSBkYXRlIHByb3BlcnRpZXMuXG4gICAgICogQGRlZmF1bHQgJ1RpbWUnXG4gICAgICovXG4gICAgdGltZUxhYmVsOiBzdHJpbmcsXG4gICAgLyoqXG4gICAgICogVGhlIGxhYmVsIGZvciB0aGUgZGF0ZSByYW5nZSBzdGFydC5cbiAgICAgKiBAZGVmYXVsdCAnU3RhcnQnXG4gICAgICovXG4gICAgc3RhcnRMYWJlbDogc3RyaW5nLFxuICAgIC8qKlxuICAgICAqIFRoZSBsYWJlbCBmb3IgdGhlIGRhdGUgcmFuZ2UgZW5kLlxuICAgICAqIEBkZWZhdWx0ICdFbmQnXG4gICAgICovXG4gICAgZW5kTGFiZWw6IHN0cmluZyxcbiAgICAvKipcbiAgICAgKiBUaGUgZXJyb3IgdGV4dCBmb3IgZHVwbGljYXRlIGVudHJpZXMgaW5zaWRlIGFuIGFycmF5LlxuICAgICAqIEBkZWZhdWx0IFsnQWRkaW5nIGR1cGxpY2F0ZSBlbnRyaWVzIHRvIHRoZSBhcnJheSBpcyBub3QgYWxsb3dlZC4nXVxuICAgICAqL1xuICAgIGR1cGxpY2F0ZUVycm9yVGV4dDogc3RyaW5nW10sXG4gICAgLyoqXG4gICAgICogVGhlIGVycm9yIHRpdGxlIGZvciBkdXBsaWNhdGUgZW50cmllcyBpbnNpZGUgYW4gYXJyYXkuXG4gICAgICogQGRlZmF1bHQgJ0Vycm9yIGFkZGluZyBkdXBsaWNhdGUgaXRlbSdcbiAgICAgKi9cbiAgICBkdXBsaWNhdGVFcnJvclRpdGxlOiBzdHJpbmcsXG4gICAgLyoqXG4gICAgICogVGhlIHRpdGxlIGZvciBlZGl0aW5nIGFuIGVudGl0aWVzLlxuICAgICAqIEBkZWZhdWx0ICgpID0+ICdFZGl0J1xuICAgICAqL1xuICAgIGVkaXRUaXRsZTogKGVudGl0eTogdW5rbm93bikgPT4gc3RyaW5nLFxuICAgIC8qKlxuICAgICAqIFRoZSBsYWJlbCBmb3IgYW4gc2VsZWN0IGFjdGlvbiwgZWcuIERyb3Bkb3ducy5cbiAgICAgKiBAZGVmYXVsdCAnU2VsZWN0J1xuICAgICAqL1xuICAgIHNlbGVjdExhYmVsOiBzdHJpbmcsXG4gICAgLyoqXG4gICAgICogVGhlIGxhYmVsIGZvciBhbiBcIkFkZCBhbGxcIiBidXR0b24uXG4gICAgICogQGRlZmF1bHQgJ0FkZCBhbGwnXG4gICAgICovXG4gICAgYWRkQWxsTGFiZWw6IHN0cmluZ1xuXG59XG5cblxuLyoqXG4gKiBUaGUgcHJvdmlkZXIgZm9yIGdsb2JhbCBjb25maWd1cmF0aW9uIHZhbHVlcy5cbiAqL1xuZXhwb3J0IGNvbnN0IE5HWF9HTE9CQUxfREVGQVVMVF9WQUxVRVM6IEluamVjdGlvblRva2VuPFBhcnRpYWw8Tmd4R2xvYmFsRGVmYXVsdFZhbHVlcz4+ID0gbmV3IEluamVjdGlvblRva2VuPFBhcnRpYWw8Tmd4R2xvYmFsRGVmYXVsdFZhbHVlcz4+KFxuICAgICdOR1hfR0xPQkFMX0RFRkFVTFRfVkFMVUVTJyxcbiAgICB7XG4gICAgICAgIHByb3ZpZGVkSW46ICdyb290JyxcbiAgICAgICAgZmFjdG9yeTogKCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHt9O1xuICAgICAgICB9XG4gICAgfVxuKTtcblxuLyoqXG4gKiBUaGUgaW50ZXJuYWwgdmFsdWVzIGNvbnNpc3Rpbmcgb2YgZGVmYXVsdCBvbmVzIGFuZCB2YWx1ZXMgcHJvdmlkZWQgYnkgdGhlIHVzZXIgaW4gTkdYX0dMT0JBTF9ERUZBVUxUX1ZBTFVFUy5cbiAqL1xuZXhwb3J0IGNvbnN0IE5HWF9DT01QTEVURV9HTE9CQUxfREVGQVVMVF9WQUxVRVM6IEluamVjdGlvblRva2VuPE5neEdsb2JhbERlZmF1bHRWYWx1ZXM+ID0gbmV3IEluamVjdGlvblRva2VuPE5neEdsb2JhbERlZmF1bHRWYWx1ZXM+KFxuICAgICdOR1hfQ09NUExFVEVfR0xPQkFMX0RFRkFVTFRfVkFMVUVTJyxcbiAgICB7XG4gICAgICAgIHByb3ZpZGVkSW46ICdyb290JyxcbiAgICAgICAgZmFjdG9yeTogKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgdXNlclZhbHVlczogUGFydGlhbDxOZ3hHbG9iYWxEZWZhdWx0VmFsdWVzPiA9IGluamVjdChOR1hfR0xPQkFMX0RFRkFVTFRfVkFMVUVTKTtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgLi4uZGVmYXVsdEdsb2JhbERlZmF1bHRzLFxuICAgICAgICAgICAgICAgIC4uLnVzZXJWYWx1ZXNcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9XG4pOyJdfQ==
|
|
@@ -267,4 +267,4 @@ export class EntityService {
|
|
|
267
267
|
this.entitiesSubject.next(this.entities);
|
|
268
268
|
}
|
|
269
269
|
}
|
|
270
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbWF0ZXJpYWwtZW50aXR5L3NyYy9zZXJ2aWNlcy9lbnRpdHkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFFekUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFHNUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLE9BQWdCLGFBQWE7SUE0REE7SUFBcUM7SUE3Q3BFOztPQUVHO0lBQ00sYUFBYSxHQUFXLFVBQVUsQ0FBQztJQUU1Qzs7T0FFRztJQUNNLGVBQWUsR0FBVyxpQkFBaUIsQ0FBQztJQUVyRDs7O09BR0c7SUFDTSxLQUFLLEdBQXFCLElBQXdCLENBQUM7SUFFNUQ7OztPQUdHO0lBQ00sZUFBZSxHQUFrQyxJQUFJLGVBQWUsQ0FBZSxFQUFFLENBQUMsQ0FBQztJQUdoRzs7Ozs7O09BTUc7SUFDZ0IscUJBQXFCLEdBQVcsTUFBTSxDQUFDO0lBRTFEOzs7T0FHRztJQUNILElBQUksUUFBUTtRQUNSLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUM7SUFDdEMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsUUFBUSxDQUFRO0lBRWhCLFlBQStCLElBQWdCLEVBQXFCLFFBQTZCO1FBQWxFLFNBQUksR0FBSixJQUFJLENBQVk7UUFBcUIsYUFBUSxHQUFSLFFBQVEsQ0FBcUI7SUFBRyxDQUFDO0lBRXJHOzs7Ozs7O09BT0c7SUFDSCxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQWtC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UUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzVGLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM3QyxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgRW52aXJvbm1lbnRJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBmaXJzdFZhbHVlRnJvbSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQmFzZUVudGl0eVR5cGUgfSBmcm9tICcuLi9jbGFzc2VzL2VudGl0eS5tb2RlbCc7XG5pbXBvcnQgeyBEZWNvcmF0b3JUeXBlcyB9IGZyb20gJy4uL2RlY29yYXRvcnMvYmFzZS9kZWNvcmF0b3ItdHlwZXMuZW51bSc7XG5pbXBvcnQgeyBGaWxlRGF0YSB9IGZyb20gJy4uL2RlY29yYXRvcnMvZmlsZS9maWxlLWRlY29yYXRvci5kYXRhJztcbmltcG9ydCB7IExvZGFzaFV0aWxpdGllcyB9IGZyb20gJy4uL2VuY2Fwc3VsYXRpb24vbG9kYXNoLnV0aWxpdGllcyc7XG5pbXBvcnQgeyBFbnRpdHlVdGlsaXRpZXMgfSBmcm9tICcuLi91dGlsaXRpZXMvZW50aXR5LnV0aWxpdGllcyc7XG5pbXBvcnQgeyBGaWxlVXRpbGl0aWVzIH0gZnJvbSAnLi4vdXRpbGl0aWVzL2ZpbGUudXRpbGl0aWVzJztcbmltcG9ydCB7IERlZmF1bHRGaWxlRGVjb3JhdG9yQ29uZmlnSW50ZXJuYWwgfSBmcm9tICcuLi9kZWNvcmF0b3JzL2ZpbGUvZmlsZS1kZWNvcmF0b3ItaW50ZXJuYWwuZGF0YSc7XG5cbi8qKlxuICogQSBnZW5lcmljIEVudGl0eVNlcnZpY2UgY2xhc3MuXG4gKiBPZmZlcnMgYmFzaWMgQ1JVRC1mdW5jdGlvbmFsaXR5LlxuICogWW91IHNob3VsZCBjcmVhdGUgYSBzZXJ2aWNlIGZvciBldmVyeSBFbnRpdHkgeW91IGhhdmUuXG4gKiBJZiB5b3UgZXh0ZW5kIGZyb20gdGhpcyB5b3UgbmVlZCB0byBtYWtlIHN1cmUgdGhhdCB0aGUgZXh0ZW5kZWQgU2VydmljZSBjYW4gYmUgaW5qZWN0ZWQuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBFbnRpdHlTZXJ2aWNlPEVudGl0eVR5cGUgZXh0ZW5kcyBCYXNlRW50aXR5VHlwZTxFbnRpdHlUeXBlPj4ge1xuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIHVybCB1c2VkIGZvciBhcGkgcmVxdWVzdHMuIElmIHUgd2FudCB0byBoYXZlIG1vcmUgY29udHJvbCBvdmVyIHRoaXMsXG4gICAgICogeW91IGNhbiBvdmVycmlkZSB0aGUgY3JlYXRlLCByZWFkLCB1cGRhdGUgYW5kIGRlbGV0ZSBtZXRob2RzLlxuICAgICAqXG4gICAgICogQ3JlYXRlIFNlbmRzIGEgUE9TVC1SZXF1ZXN0IHRvIGJhc2VVcmwuXG4gICAgICpcbiAgICAgKiBSZWFkIFNlbmRzIGEgR0VULVJlcXVlc3QgdG8gYmFzZVVybC5cbiAgICAgKlxuICAgICAqIFVwZGF0ZSBTZW5kcyBhIFBBVENILVJlcXVlc3QgdG8gYmFzZVVybC97aWR9LlxuICAgICAqXG4gICAgICogRGVsZXRlIFNlbmRzIGEgREVMLVJlcXVlc3QgdG8gYmFzZVVybC97aWR9LlxuICAgICAqL1xuICAgIGFic3RyYWN0IHJlYWRvbmx5IGJhc2VVcmw6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFRoZSBkZWZhdWx0IHJvdXRlIHNlZ21lbnQgdGhhdCBjb21lcyBiZWZvcmUgdGhlIGlkIHdoZW4gZWRpdGluZyBhbiBlbnRpdHkgaW4gYSBzZXBhcmF0ZSBwYWdlLCBpZiBubyBleHRyYSByb3V0ZSBoYXMgYmVlbiBwcm92aWRlZC5cbiAgICAgKi9cbiAgICByZWFkb25seSBlZGl0QmFzZVJvdXRlOiBzdHJpbmcgPSAnZW50aXRpZXMnO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGNvbXBsZXRlIHJvdXRlIHRoYXQgaXMgdXNlZCB0byBjcmVhdGUgYW4gZW50aXR5IGluIGEgc2VwYXJhdGUgcGFnZSwgaWYgbm8gZXh0cmEgcm91dGUgaGFzIGJlZW4gcHJvdmlkZWQuXG4gICAgICovXG4gICAgcmVhZG9ubHkgY3JlYXRlQmFzZVJvdXRlOiBzdHJpbmcgPSAnZW50aXRpZXMvY3JlYXRlJztcblxuICAgIC8qKlxuICAgICAqIFRoZSBrZXkgd2hpY2ggaG9sZHMgdGhlIGlkIHZhbHVlLlxuICAgICAqIEBkZWZhdWx0ICdpZCdcbiAgICAgKi9cbiAgICByZWFkb25seSBpZEtleToga2V5b2YgRW50aXR5VHlwZSA9ICdpZCcgYXMga2V5b2YgRW50aXR5VHlwZTtcblxuICAgIC8qKlxuICAgICAqIEEgc3ViamVjdCBvZiBhbGwgdGhlIGVudGl0eSB2YWx1ZXMuXG4gICAgICogQ2FuIGJlIHN1YnNjcmliZWQgdG8gd2hlbiB5b3Ugd2FudCB0byBkbyBhIHNwZWNpZmljIHRoaW5nIHdoZW5ldmVyIHRoZSBlbnRpdGllcyBjaGFuZ2UuXG4gICAgICovXG4gICAgcmVhZG9ubHkgZW50aXRpZXNTdWJqZWN0OiBCZWhhdmlvclN1YmplY3Q8RW50aXR5VHlwZVtdPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RW50aXR5VHlwZVtdPihbXSk7XG5cblxuICAgIC8qKlxuICAgICAqIFdoZW4gZnJlcXVlbnRseSB0cnlpbmcgdG8gZmluZCBhIHNpbmdsZSBlbnRpdHkgYnkgYW4gaWQgKGVnLiBXaGVuIG5lc3RpbmcgcmVsYXRpb25zKVxuICAgICAqIHlvdSBtaWdodCBzZW5kIGEgbG90IG9mIHVubmVjZXNzYXJ5IHJlcXVlc3RzLlxuICAgICAqIFRoZXJlZm9yZSB0aGUgZmluZEJ5SWQgbWV0aG9kIHRyaWVzIHRvIGxvb2sgaW4gdGhlIGFscmVhZHkgZXhpc3RpbmcgZW50aXRpZXMgZmlyc3QsXG4gICAgICogSUYgdGhlIGVudGl0aWVzIGhhdmUgYmVlbiByZXF1ZXN0ZWQgaW4gdGhlIGxhc3QgUkVBRF9FWFBJUkFUSU9OX0lOX01TIG1pbGxpc2Vjb25kcy5cbiAgICAgKiBAZGVmYXVsdCA5MDAwMDAgKDUgbWludXRlcylcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgUkVBRF9FWFBJUkFUSU9OX0lOX01TOiBudW1iZXIgPSA5MDAwMDA7XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBlbnRpdGllcyBpbiBhbiBhcnJheSBmcm9tIHRoZSBpbnRlcm5hbCBlbnRpdGllc1N1YmplY3QuXG4gICAgICogQHJldHVybnMgVGhlIGN1cnJlbnQgZW50aXRpZXMgaW4gZm9ybSBvZiBhbiBhcnJheS5cbiAgICAgKi9cbiAgICBnZXQgZW50aXRpZXMoKTogRW50aXR5VHlwZVtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZW50aXRpZXNTdWJqZWN0LnZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBsYXN0IHRpbWUgdGhhdCB0aGUgZW50aXRpZXMgaGF2ZSBiZWVuIHJlcXVlc3RlZCBmcm9tIHRoZSBhcGkuXG4gICAgICovXG4gICAgbGFzdFJlYWQ/OiBEYXRlO1xuXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIHJlYWRvbmx5IGh0dHA6IEh0dHBDbGllbnQsIHByb3RlY3RlZCByZWFkb25seSBpbmplY3RvcjogRW52aXJvbm1lbnRJbmplY3Rvcikge31cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBuZXcgRW50aXR5IGFuZCBwdXNoZXMgaXQgdG8gdGhlIGVudGl0aWVzIGFycmF5LlxuICAgICAqIEBwYXJhbSBlbnRpdHkgLSBUaGUgZGF0YSBvZiB0aGUgZW50aXR5IHRvIGNyZWF0ZS5cbiAgICAgKiBBbGwgdmFsdWVzIHRoYXQgc2hvdWxkIGJlIG9taXR0ZWQgd2lsbCBiZSByZW1vdmVkIGZyb20gaXQgaW5zaWRlIHRoaXMgbWV0aG9kLlxuICAgICAqIEBwYXJhbSBiYXNlVXJsIC0gVGhlIGJhc2UgdXJsIHRvIHNlbmQgdGhlIHBvc3QgcmVxdWVzdCB0by5cbiAgICAgKiBUaGlzIGNhbiBiZSB1c2VkIGlmIHlvdSB3YW50IHRvIGNyZWF0ZSBhbiBlbnRpdHkgYmVsb25naW5nIHRvIGFub3RoZXIsIGxpa2UgXCJjdXN0b21lcnMve2lkfS9pbnZvaWNlc1wiLlxuICAgICAqIEByZXR1cm5zIEEgUHJvbWlzZSBvZiB0aGUgY3JlYXRlZCBlbnRpdHkuXG4gICAgICovXG4gICAgYXN5bmMgY3JlYXRlKGVudGl0eTogRW50aXR5VHlwZSwgYmFzZVVybDogc3RyaW5nID0gdGhpcy5iYXNlVXJsKTogUHJvbWlzZTxFbnRpdHlUeXBlPiB7XG4gICAgICAgIGNvbnN0IGJvZHk6IFBhcnRpYWw8RW50aXR5VHlwZT4gPSBFbnRpdHlVdGlsaXRpZXMuZ2V0V2l0aG91dE9taXRDcmVhdGVWYWx1ZXMoZW50aXR5KTtcbiAgICAgICAgY29uc3QgZmlsZVByb3BlcnR5S2V5czogKGtleW9mIEVudGl0eVR5cGUpW10gPSBFbnRpdHlVdGlsaXRpZXMuZ2V0RmlsZVByb3BlcnRpZXMoZW50aXR5KTtcbiAgICAgICAgaWYgKCFmaWxlUHJvcGVydHlLZXlzLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuY3JlYXRlV2l0aEpzb24oYm9keSwgYmFzZVVybCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5jcmVhdGVXaXRoRm9ybURhdGEoYm9keSwgZmlsZVByb3BlcnR5S2V5cywgZW50aXR5LCBiYXNlVXJsKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFRPRE86IEZpbmQgYSB3YXkgdG8gdXNlIGJsb2JzIHdpdGggamVzdFxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgLyoqXG4gICAgICogSW1wb3J0cyBldmVyeXRoaW5nIGZyb20gdGhlIHByb3ZpZGVkIGpzb24gZmlsZS5cbiAgICAgKiBAcGFyYW0gZmlsZSAtIFRoZSBqc29uIGZpbGUgdG8gaW1wb3J0IGZyb20uXG4gICAgICogQHJldHVybnMgQWxsIGVudGl0aWVzIHRoYXQgaGF2ZSBiZWVuIGltcG9ydGVkLlxuICAgICAqL1xuICAgIGFzeW5jIGltcG9ydChmaWxlOiBGaWxlKTogUHJvbWlzZTxFbnRpdHlUeXBlW10+IHtcbiAgICAgICAgY29uc3QgZm9ybURhdGE6IEZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgICAgIGZvcm1EYXRhLmFwcGVuZCgnaW1wb3J0JywgZmlsZSk7XG4gICAgICAgIGNvbnN0IHJlc3VsdDogRW50aXR5VHlwZVtdID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5odHRwLnBvc3Q8RW50aXR5VHlwZVtdPihgJHt0aGlzLmJhc2VVcmx9L2ltcG9ydGAsIGZvcm1EYXRhKSk7XG4gICAgICAgIHRoaXMuZW50aXRpZXMucHVzaCguLi5yZXN1bHQpO1xuICAgICAgICB0aGlzLmVudGl0aWVzU3ViamVjdC5uZXh0KHRoaXMuZW50aXRpZXMpO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8vIFRPRE86IEZpbmQgYSB3YXkgdG8gdXNlIGJsb2JzIHdpdGggamVzdFxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyB0aGUgZW50aXR5IHdpdGggZm9ybSBkYXRhIHdoZW4gdGhlIGVudGl0eSBjb250YWlucyBmaWxlcyBpbiBjb250cmFzdCB0byBjcmVhdGluZyBpdCB3aXRoIGEgbm9ybWFsIGpzb24gYm9keS5cbiAgICAgKiBBbGwgZmlsZSB2YWx1ZXMgYXJlIHN0b3JlZCBpbnNpZGUgdGhlaXIgcmVzcGVjdGl2ZSBwcm9wZXJ0eSBrZXkgYW5kIHRoZWlyIG5hbWUuXG4gICAgICogRm9ybSBkYXRhIGlzIGFibGUgdG8gaGFuZGxlIHNldHRpbmcgbXVsdGlwbGUgZmlsZXMgdG8gdGhlIHNhbWUga2V5LlxuICAgICAqIEBwYXJhbSBib2R5IC0gVGhlIGJvZHkgT2YgdGhlIHJlcXVlc3QuXG4gICAgICogQHBhcmFtIGZpbGVQcm9wZXJ0eUtleXMgLSBBbGwgcHJvcGVydHkga2V5cyB0aGF0IGFyZSBmaWxlcyBhbmQgbmVlZCB0byBiZSBhZGRlZCB0byB0aGUgZm9ybSBkYXRhLlxuICAgICAqIEBwYXJhbSBlbnRpdHkgLSBUaGUgZW50aXR5IHRvIGNyZWF0ZS4gVGhpcyBpcyBuZWVkZWQgaW4gYWRkaXRpb24gdG8gdGhlIGJvZHkgYmVjYXVzZSB0aGUgYm9keSBkb2Vzbid0IGNvbnRhaW4gYW55IG1ldGFkYXRhLlxuICAgICAqIEBwYXJhbSBiYXNlVXJsIC0gVGhlIGJhc2UgdXJsIHRvIHNlbmQgdGhlIHBvc3QgcmVxdWVzdCB0by5cbiAgICAgKiBUaGlzIGNhbiBiZSB1c2VkIGlmIHlvdSB3YW50IHRvIGNyZWF0ZSBhbiBlbnRpdHkgYmVsb25naW5nIHRvIGFub3RoZXIsIGxpa2UgXCJjdXN0b21lcnMve2lkfS9pbnZvaWNlc1wiLlxuICAgICAqIEByZXR1cm5zIFRoZSBjcmVhdGVkIGVudGl0eSBmcm9tIHRoZSBzZXJ2ZXIuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGFzeW5jIGNyZWF0ZVdpdGhGb3JtRGF0YShcbiAgICAgICAgYm9keTogUGFydGlhbDxFbnRpdHlUeXBlPixcbiAgICAgICAgZmlsZVByb3BlcnR5S2V5czogKGtleW9mIEVudGl0eVR5cGUpW10sXG4gICAgICAgIGVudGl0eTogRW50aXR5VHlwZSxcbiAgICAgICAgYmFzZVVybDogc3RyaW5nID0gdGhpcy5iYXNlVXJsXG4gICAgKTogUHJvbWlzZTxFbnRpdHlUeXBlPiB7XG4gICAgICAgIGNvbnN0IGZvcm1EYXRhOiBGb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgICAgICBmb3JtRGF0YS5hcHBlbmQoJ2JvZHknLCBKU09OLnN0cmluZ2lmeShMb2Rhc2hVdGlsaXRpZXMub21pdChib2R5LCBmaWxlUHJvcGVydHlLZXlzKSkpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBmaWxlUHJvcGVydHlLZXlzKSB7XG4gICAgICAgICAgICBpZiAoKEVudGl0eVV0aWxpdGllcy5nZXRQcm9wZXJ0eU1ldGFkYXRhKGVudGl0eSwga2V5LCBEZWNvcmF0b3JUeXBlcy5GSUxFX0RFRkFVTFQpIGFzIERlZmF1bHRGaWxlRGVjb3JhdG9yQ29uZmlnSW50ZXJuYWwpLm11bHRpcGxlKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZmlsZURhdGFWYWx1ZXM6IEZpbGVEYXRhW10gPSBib2R5W2tleV0gYXMgRmlsZURhdGFbXTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHZhbHVlIG9mIGZpbGVEYXRhVmFsdWVzKSB7XG4gICAgICAgICAgICAgICAgICAgIGZvcm1EYXRhLmFwcGVuZChrZXkgYXMgc3RyaW5nLCAoYXdhaXQgRmlsZVV0aWxpdGllcy5nZXRGaWxlRGF0YSh2YWx1ZSwgdGhpcy5odHRwKSkuZmlsZSwgdmFsdWUubmFtZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZmlsZURhdGE6IEZpbGVEYXRhID0gYm9keVtrZXldIGFzIEZpbGVEYXRhO1xuICAgICAgICAgICAgICAgIGZvcm1EYXRhLmFwcGVuZChrZXkgYXMgc3RyaW5nLCAoYXdhaXQgRmlsZVV0aWxpdGllcy5nZXRGaWxlRGF0YShmaWxlRGF0YSwgdGhpcy5odHRwKSkuZmlsZSwgZmlsZURhdGEubmFtZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZTogRW50aXR5VHlwZSB8IHVuZGVmaW5lZCA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuaHR0cC5wb3N0PEVudGl0eVR5cGUgfCB1bmRlZmluZWQ+KGJhc2VVcmwsIGZvcm1EYXRhKSk7XG4gICAgICAgIGlmICghZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBcbiAgICAgICAgICAgICAgICBUaGUgY3JlYXRlZCBlbnRpdHkgd2FzIG5vdCByZXR1cm5lZCBpbiB0aGUgcmVzcG9uc2UuXG4gICAgICAgICAgICAgICAgSWYgeW91IHdhbnQgdG8gcHJvdmlkZSBhIGxvZ2ljIHRoYXQgYWxsb3dzIHRoYXRcbiAgICAgICAgICAgICAgICB5b3UgbmVlZCB0byBvdmVycmlkZSB0aGUgY3JlYXRlIG1ldGhvZHMgb2YgdGhpcyBjbGFzcy5cbiAgICAgICAgICAgIGApO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZW50aXRpZXMucHVzaChlKTtcbiAgICAgICAgdGhpcy5lbnRpdGllc1N1YmplY3QubmV4dCh0aGlzLmVudGl0aWVzKTtcbiAgICAgICAgcmV0dXJuIGU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyB0aGUgZW50aXR5IHdpdGggYSBub3JtYWwganNvbiBib2R5IGluIGNvbnRyYXN0IHRvIGNyZWF0aW5nIGl0IHdpdGggZm9ybSBkYXRhIHdoZW4gdGhlIGVudGl0eSBjb250YWlucyBmaWxlcy5cbiAgICAgKiBAcGFyYW0gYm9keSAtIFRoZSBib2R5IE9mIHRoZSByZXF1ZXN0LlxuICAgICAqIEBwYXJhbSBiYXNlVXJsIC0gVGhlIGJhc2UgdXJsIHRvIHNlbmQgdGhlIHBvc3QgcmVxdWVzdCB0by5cbiAgICAgKiBUaGlzIGNhbiBiZSB1c2VkIGlmIHlvdSB3YW50IHRvIGNyZWF0ZSBhbiBlbnRpdHkgYmVsb25naW5nIHRvIGFub3RoZXIsIGxpa2UgXCJjdXN0b21lcnMve2lkfS9pbnZvaWNlc1wiLlxuICAgICAqIEByZXR1cm5zIFRoZSBjcmVhdGVkIGVudGl0eSBmcm9tIHRoZSBzZXJ2ZXIuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGFzeW5jIGNyZWF0ZVdpdGhKc29uKGJvZHk6IFBhcnRpYWw8RW50aXR5VHlwZT4sIGJhc2VVcmw6IHN0cmluZyA9IHRoaXMuYmFzZVVybCk6IFByb21pc2U8RW50aXR5VHlwZT4ge1xuICAgICAgICBjb25zdCBlOiBFbnRpdHlUeXBlIHwgdW5kZWZpbmVkID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5odHRwLnBvc3Q8RW50aXR5VHlwZSB8IHVuZGVmaW5lZD4oYmFzZVVybCwgYm9keSkpO1xuICAgICAgICBpZiAoIWUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgXG4gICAgICAgICAgICAgICAgVGhlIGNyZWF0ZWQgZW50aXR5IHdhcyBub3QgcmV0dXJuZWQgaW4gdGhlIHJlc3BvbnNlLlxuICAgICAgICAgICAgICAgIElmIHlvdSB3YW50IHRvIHByb3ZpZGUgYSBsb2dpYyB0aGF0IGFsbG93cyB0aGF0XG4gICAgICAgICAgICAgICAgeW91IG5lZWQgdG8gb3ZlcnJpZGUgdGhlIGNyZWF0ZSBtZXRob2RzIG9mIHRoaXMgY2xhc3MuXG4gICAgICAgICAgICBgKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmVudGl0aWVzLnB1c2goZSk7XG4gICAgICAgIHRoaXMuZW50aXRpZXNTdWJqZWN0Lm5leHQodGhpcy5lbnRpdGllcyk7XG4gICAgICAgIHJldHVybiBlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgYWxsIGV4aXN0aW5nIGVudGl0aWVzIGFuZCBwdXNoZXMgdGhlbSB0byB0aGUgZW50aXRpZXMgYXJyYXkuXG4gICAgICogQHBhcmFtIGJhc2VVcmwgLSBUaGUgYmFzZSB1cmwgZm9yIHRoZSByZXF1ZXN0LiBEZWZhdWx0cyB0byB0aGUgYmFzZVVybCBvbiB0aGUgc2VydmljZS5cbiAgICAgKiBAcmV0dXJucyBBIFByb21pc2Ugb2YgYWxsIHJlY2VpdmVkIEVudGl0aWVzLlxuICAgICAqL1xuICAgIGFzeW5jIHJlYWQoYmFzZVVybCA9IHRoaXMuYmFzZVVybCk6IFByb21pc2U8RW50aXR5VHlwZVtdPiB7XG4gICAgICAgIGNvbnN0IGU6IEVudGl0eVR5cGVbXSA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuaHR0cC5nZXQ8RW50aXR5VHlwZVtdPihiYXNlVXJsKSk7XG4gICAgICAgIHRoaXMuZW50aXRpZXNTdWJqZWN0Lm5leHQoZSk7XG4gICAgICAgIHRoaXMubGFzdFJlYWQgPSBuZXcgRGF0ZSgpO1xuICAgICAgICByZXR1cm4gZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUcmllcyB0byBmaW5kIGFuIGVudGl0eSB3aXRoIHRoZSBnaXZlbiBpZC5cbiAgICAgKiBAcGFyYW0gaWQgLSBUaGUgaWQgb2YgdGhlIGVudGl0eSB0byBmaW5kLlxuICAgICAqIEByZXR1cm5zIFRoZSBmb3VuZCBlbnRpdHkuXG4gICAgICovXG4gICAgYXN5bmMgZmluZEJ5SWQoaWQ6IEVudGl0eVR5cGVba2V5b2YgRW50aXR5VHlwZV0pOiBQcm9taXNlPEVudGl0eVR5cGU+IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgdGhpcy5sYXN0UmVhZCA9PSBudWxsXG4gICAgICAgICAgICB8fCAobmV3IERhdGUoKS5nZXRUaW1lKCkgLSB0aGlzLmxhc3RSZWFkLmdldFRpbWUoKSkgPiB0aGlzLlJFQURfRVhQSVJBVElPTl9JTl9NU1xuICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybiBmaXJzdFZhbHVlRnJvbSh0aGlzLmh0dHAuZ2V0PEVudGl0eVR5cGU+KGAke3RoaXMuYmFzZVVybH0vJHtpZH1gKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuZW50aXRpZXMuZmluZChlID0+IGVbdGhpcy5pZEtleV0gPT09IGlkKSA/PyBmaXJzdFZhbHVlRnJvbSh0aGlzLmh0dHAuZ2V0PEVudGl0eVR5cGU+KGAke3RoaXMuYmFzZVVybH0vJHtpZH1gKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVXBkYXRlcyBhIHNwZWNpZmljIEVudGl0eS5cbiAgICAgKiBAcGFyYW0gZW50aXR5IC0gVGhlIHVwZGF0ZWQgRW50aXR5XG4gICAgICogQWxsIHZhbHVlcyB0aGF0IHNob3VsZCBiZSBvbWl0dGVkIHdpbGwgYmUgcmVtb3ZlZCBmcm9tIGl0IGluc2lkZSB0aGlzIG1ldGhvZC5cbiAgICAgKiBAcGFyYW0gZW50aXR5UHJpb3JDaGFuZ2VzIC0gVGhlIGN1cnJlbnQgRW50aXR5LlxuICAgICAqIEl0IElzIHVzZWQgdG8gZ2V0IGNoYW5nZWQgdmFsdWVzIGFuZCBvbmx5IHVwZGF0ZSB0aGVtIGluc3RlYWQgb2Ygc2VuZGluZyB0aGUgd2hvbGUgZW50aXR5IGRhdGEuXG4gICAgICovXG4gICAgYXN5bmMgdXBkYXRlKGVudGl0eTogRW50aXR5VHlwZSwgZW50aXR5UHJpb3JDaGFuZ2VzOiBFbnRpdHlUeXBlKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IGZpbGVQcm9wZXJ0eUtleXM6IChrZXlvZiBFbnRpdHlUeXBlKVtdID0gRW50aXR5VXRpbGl0aWVzLmdldEZpbGVQcm9wZXJ0aWVzKGVudGl0eVByaW9yQ2hhbmdlcyk7XG4gICAgICAgIGNvbnN0IGJvZHk6IFBhcnRpYWw8RW50aXR5VHlwZT4gPSBhd2FpdCB0aGlzLmVudGl0eVRvVXBkYXRlUmVxdWVzdEJvZHkoZW50aXR5LCBlbnRpdHlQcmlvckNoYW5nZXMpO1xuICAgICAgICBpZiAoIWZpbGVQcm9wZXJ0eUtleXMubGVuZ3RoKSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLnVwZGF0ZVdpdGhKc29uKGJvZHksIGVudGl0eVByaW9yQ2hhbmdlc1t0aGlzLmlkS2V5XSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLnVwZGF0ZVdpdGhGb3JtRGF0YShib2R5LCBmaWxlUHJvcGVydHlLZXlzLCBlbnRpdHksIGVudGl0eVByaW9yQ2hhbmdlc1t0aGlzLmlkS2V5XSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBCdWlsZHMgdGhlIHVwZGF0ZSByZXF1ZXN0IGJvZHkgZnJvbSB0aGUgZ2l2ZW4gZW50aXR5IGJlZm9yZSBhbmQgYWZ0ZXIgaXRzIGNoYW5nZXMuXG4gICAgICogQHBhcmFtIGVudGl0eSAtIFRoZSBlbnRpdHkgd2l0aCBjaGFuZ2VkIHZhbHVlcy5cbiAgICAgKiBAcGFyYW0gZW50aXR5UHJpb3JDaGFuZ2VzIC0gVGhlIGVudGl0eSBiZWZvcmUgYW55IGNoYW5nZXMuXG4gICAgICogQHJldHVybnMgQSBwYXJ0aWFsIG9mIG9ubHkgdGhlIGNoYW5nZWQgdmFsdWVzLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBhc3luYyBlbnRpdHlUb1VwZGF0ZVJlcXVlc3RCb2R5KGVudGl0eTogRW50aXR5VHlwZSwgZW50aXR5UHJpb3JDaGFuZ2VzOiBFbnRpdHlUeXBlKTogUHJvbWlzZTxQYXJ0aWFsPEVudGl0eVR5cGU+PiB7XG4gICAgICAgIHJldHVybiBhd2FpdCBFbnRpdHlVdGlsaXRpZXMuZ2V0V2l0aG91dE9taXRVcGRhdGVWYWx1ZXMoZW50aXR5LCBlbnRpdHlQcmlvckNoYW5nZXMsIHRoaXMuaHR0cCwgdGhpcy5pbmplY3Rvcik7XG4gICAgfVxuXG4gICAgLy8gVE9ETzogRmluZCBhIHdheSB0byB1c2UgYmxvYnMgd2l0aCBqZXN0XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAvKipcbiAgICAgKiBVcGRhdGVzIHRoZSBlbnRpdHkgd2l0aCBmb3JtIGRhdGEgd2hlbiB0aGUgZW50aXR5IGNvbnRhaW5zIGZpbGVzIGluIGNvbnRyYXN0IHRvIGNyZWF0aW5nIGl0IHdpdGggYSBub3JtYWwganNvbiBib2R5LlxuICAgICAqIEFsbCBmaWxlIHZhbHVlcyBhcmUgc3RvcmVkIGluc2lkZSB0aGVpciByZXNwZWN0aXZlIHByb3BlcnR5IGtleSBhbmQgdGhlaXIgbmFtZS5cbiAgICAgKiBGb3JtIGRhdGEgaXMgYWJsZSB0byBoYW5kbGUgc2V0dGluZyBtdWx0aXBsZSBmaWxlcyB0byB0aGUgc2FtZSBrZXkuXG4gICAgICogQHBhcmFtIGJvZHkgLSBUaGUgcmVxdWVzdCBib2R5LiBBbHJlYWR5IGNvbnRhaW5zIG9ubHkgcHJvcGVydGllcyB0aGF0IGhhdmUgY2hhbmdlZC5cbiAgICAgKiBAcGFyYW0gZmlsZVByb3BlcnR5S2V5cyAtIFRoZSBrZXlzIG9mIGFsbCBwcm9wZXJ0aWVzIHdoaWNoIGFyZSBmaWxlcyBhbmQgbmVlZCB0byBzZXBhcmF0ZWx5IGJlIGFwcGVuZGVkIHRvIHRoZSBmb3JtIGRhdGEuXG4gICAgICogQHBhcmFtIGVudGl0eSAtIFRoZSBvcmlnaW5hbCBlbnRpdHkuIElzIG5lZWRlZCB0byBnZXQgdGhlIG1ldGFkYXRhIG9mIGFsbCB0aGUgZmlsZXMuXG4gICAgICogQHBhcmFtIGlkIC0gVGhlIGlkIG9mIHRoZSBlbnRpdHkgdG8gdXBkYXRlLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBhc3luYyB1cGRhdGVXaXRoRm9ybURhdGEoXG4gICAgICAgIGJvZHk6IFBhcnRpYWw8RW50aXR5VHlwZT4sXG4gICAgICAgIGZpbGVQcm9wZXJ0eUtleXM6IChrZXlvZiBFbnRpdHlUeXBlKVtdLFxuICAgICAgICBlbnRpdHk6IEVudGl0eVR5cGUsXG4gICAgICAgIGlkOiBFbnRpdHlUeXBlW2tleW9mIEVudGl0eVR5cGVdXG4gICAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IGZvcm1EYXRhOiBGb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgICAgICBmb3JtRGF0YS5hcHBlbmQoJ2JvZHknLCBKU09OLnN0cmluZ2lmeShMb2Rhc2hVdGlsaXRpZXMub21pdChib2R5LCBmaWxlUHJvcGVydHlLZXlzKSkpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBmaWxlUHJvcGVydHlLZXlzKSB7XG5cbiAgICAgICAgICAgIGlmICgoRW50aXR5VXRpbGl0aWVzLmdldFByb3BlcnR5TWV0YWRhdGEoZW50aXR5LCBrZXksIERlY29yYXRvclR5cGVzLkZJTEVfREVGQVVMVCkgYXMgRGVmYXVsdEZpbGVEZWNvcmF0b3JDb25maWdJbnRlcm5hbCkubXVsdGlwbGUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWxlRGF0YVZhbHVlczogRmlsZURhdGFbXSA9IGJvZHlba2V5XSBhcyBGaWxlRGF0YVtdO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgdmFsdWUgb2YgZmlsZURhdGFWYWx1ZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgZm9ybURhdGEuYXBwZW5kKGtleSBhcyBzdHJpbmcsIChhd2FpdCBGaWxlVXRpbGl0aWVzLmdldEZpbGVEYXRhKHZhbHVlLCB0aGlzLmh0dHApKS5maWxlLCB2YWx1ZS5uYW1lKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWxlRGF0YTogRmlsZURhdGEgPSBib2R5W2tleV0gYXMgRmlsZURhdGE7XG4gICAgICAgICAgICAgICAgZm9ybURhdGEuYXBwZW5kKGtleSBhcyBzdHJpbmcsIChhd2FpdCBGaWxlVXRpbGl0aWVzLmdldEZpbGVEYXRhKGZpbGVEYXRhLCB0aGlzLmh0dHApKS5maWxlLCBmaWxlRGF0YS5uYW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCB1cGRhdGVkRW50aXR5OiBFbnRpdHlUeXBlIHwgdW5kZWZpbmVkID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20oXG4gICAgICAgICAgICB0aGlzLmh0dHAucGF0Y2g8RW50aXR5VHlwZSB8IHVuZGVmaW5lZD4oYCR7dGhpcy5iYXNlVXJsfS8ke2lkfWAsIGZvcm1EYXRhKVxuICAgICAgICApO1xuICAgICAgICBpZiAoIXVwZGF0ZWRFbnRpdHkpIHtcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICAgICAgICBjb25zb2xlLndhcm4oJ1RoZSB1cGRhdGVkIGVudGl0eSB3YXMgbm90IHJldHVybmVkIGluIHRoZSByZXNwb25zZS4gQXBwbHlpbmcgdGhlIGNoYW5nZXMgZnJvbSB0aGUgcmVxdWVzdCBib2R5LicpO1xuICAgICAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gYm9keSkge1xuICAgICAgICAgICAgICAgIHRoaXMuZW50aXRpZXNbdGhpcy5lbnRpdGllcy5maW5kSW5kZXgoZSA9PiBlW3RoaXMuaWRLZXldID09PSBpZCldW2tleV1cbiAgICAgICAgICAgICAgICAgICAgPSBib2R5W2tleV0gYXMgRW50aXR5VHlwZVtFeHRyYWN0PGtleW9mIEVudGl0eVR5cGUsIHN0cmluZz5dO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5lbnRpdGllc1N1YmplY3QubmV4dCh0aGlzLmVudGl0aWVzKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmVudGl0aWVzW3RoaXMuZW50aXRpZXMuZmluZEluZGV4KGUgPT4gZVt0aGlzLmlkS2V5XSA9PT0gaWQpXSA9IHVwZGF0ZWRFbnRpdHk7XG4gICAgICAgIHRoaXMuZW50aXRpZXNTdWJqZWN0Lm5leHQodGhpcy5lbnRpdGllcyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVXBkYXRlcyB0aGUgZW50aXR5IHdpdGggYSBub3JtYWwganNvbiBib2R5IGluIGNvbnRyYXN0IHRvIHVwZGF0aW5nIGl0IHdpdGggZm9ybSBkYXRhIHdoZW4gdGhlIGVudGl0eSBjb250YWlucyBmaWxlcy5cbiAgICAgKiBAcGFyYW0gYm9keSAtIFRoZSBib2R5IG9mIHRoZSBSZXF1ZXN0LiBIYXMgYWxyZWFkeSByZW1vdmVkIGFsbCB1bm5lY2Vzc2FyeSB2YWx1ZXMuXG4gICAgICogQHBhcmFtIGlkIC0gVGhlIGlkIG9mIHRoZSBlbnRpdHkgdG8gdXBkYXRlLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBhc3luYyB1cGRhdGVXaXRoSnNvbihib2R5OiBQYXJ0aWFsPEVudGl0eVR5cGU+LCBpZDogRW50aXR5VHlwZVtrZXlvZiBFbnRpdHlUeXBlXSk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCB1cGRhdGVkRW50aXR5OiBFbnRpdHlUeXBlIHwgdW5kZWZpbmVkID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20oXG4gICAgICAgICAgICB0aGlzLmh0dHAucGF0Y2g8RW50aXR5VHlwZSB8IHVuZGVmaW5lZD4oYCR7dGhpcy5iYXNlVXJsfS8ke2lkfWAsIGJvZHkpXG4gICAgICAgICk7XG4gICAgICAgIGlmICghdXBkYXRlZEVudGl0eSkge1xuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgICAgICAgIGNvbnNvbGUud2FybignVGhlIHVwZGF0ZWQgZW50aXR5IHdhcyBub3QgcmV0dXJuZWQgaW4gdGhlIHJlc3BvbnNlLiBBcHBseWluZyB0aGUgY2hhbmdlcyBmcm9tIHRoZSByZXF1ZXN0IGJvZHkuJyk7XG4gICAgICAgICAgICBjb25zdCBmb3VuZEVudGl0eTogRW50aXR5VHlwZSA9IHRoaXMuZW50aXRpZXNbdGhpcy5lbnRpdGllcy5maW5kSW5kZXgoZSA9PiBlW3RoaXMuaWRLZXldID09PSBpZCldO1xuICAgICAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gYm9keSkge1xuICAgICAgICAgICAgICAgIGZvdW5kRW50aXR5W2tleV1cbiAgICAgICAgICAgICAgICAgICAgPSBib2R5W2tleV0gYXMgRW50aXR5VHlwZVtFeHRyYWN0PGtleW9mIEVudGl0eVR5cGUsIHN0cmluZz5dO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5lbnRpdGllc1N1YmplY3QubmV4dCh0aGlzLmVudGl0aWVzKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmVudGl0aWVzW3RoaXMuZW50aXRpZXMuZmluZEluZGV4KGUgPT4gZVt0aGlzLmlkS2V5XSA9PT0gaWQpXSA9IHVwZGF0ZWRFbnRpdHk7XG4gICAgICAgIHRoaXMuZW50aXRpZXNTdWJqZWN0Lm5leHQodGhpcy5lbnRpdGllcyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGVsZXRlcyBhIHNwZWNpZmljIEVudGl0eS5cbiAgICAgKiBAcGFyYW0gZW50aXR5IC0gVGhlIGVudGl0eSB0byBkZWxldGUuXG4gICAgICovXG4gICAgYXN5bmMgZGVsZXRlKGVudGl0eTogRW50aXR5VHlwZSk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLmh0dHAuZGVsZXRlPHZvaWQ+KGAke3RoaXMuYmFzZVVybH0vJHtlbnRpdHlbdGhpcy5pZEtleV19YCkpO1xuICAgICAgICAvLyB0aGUgPT0gY29tcGFyaXNvbiBpbnN0ZWFkIG9mID09PSBpcyB0byBjYXRjaCBpZHMgdGhhdCBhcmUgbnVtYmVycy5cbiAgICAgICAgdGhpcy5lbnRpdGllcy5zcGxpY2UodGhpcy5lbnRpdGllcy5maW5kSW5kZXgoZSA9PiBlW3RoaXMuaWRLZXldID09PSBlbnRpdHlbdGhpcy5pZEtleV0pLCAxKTtcbiAgICAgICAgdGhpcy5lbnRpdGllc1N1YmplY3QubmV4dCh0aGlzLmVudGl0aWVzKTtcbiAgICB9XG59Il19
|
|
270
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbWF0ZXJpYWwtZW50aXR5L3NyYy9zZXJ2aWNlcy9lbnRpdHkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUd2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFHekUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFNUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLE9BQWdCLGFBQWE7SUE0REE7SUFBcUM7SUE3Q3BFOztPQUVHO0lBQ00sYUFBYSxHQUFXLFVBQVUsQ0FBQztJQUU1Qzs7T0FFRztJQUNNLGVBQWUsR0FBVyxpQkFBaUIsQ0FBQztJQUVyRDs7O09BR0c7SUFDTSxLQUFLLEdBQXFCLElBQXdCLENBQUM7SUFFNUQ7OztPQUdHO0lBQ00sZUFBZSxHQUFrQyxJQUFJLGVBQWUsQ0FBZSxFQUFFLENBQUMsQ0FBQztJQUdoRzs7Ozs7O09BTUc7SUFDZ0IscUJBQXFCLEdBQVcsTUFBTSxDQUFDO0lBRTFEOzs7T0FHRztJQUNILElBQUksUUFBUTtRQUNSLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUM7SUFDdEMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsUUFBUSxDQUFRO0lBRWhCLFlBQStCLElBQWdCLEVBQXFCLFFBQTZCO1FBQWxFLFNBQUksR0FBSixJQUFJLENBQVk7UUFBcUIsYUFBUSxHQUFSLFFBQVEsQ0FBcUI7SUFBRyxDQUFDO0lBRXJHOzs7Ozs7O09BT0c7SUFDSCxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQWtC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UUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzVGLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM3QyxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgRW52aXJvbm1lbnRJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBmaXJzdFZhbHVlRnJvbSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBCYXNlRW50aXR5VHlwZSB9IGZyb20gJy4uL2NsYXNzZXMvZW50aXR5Lm1vZGVsJztcbmltcG9ydCB7IERlY29yYXRvclR5cGVzIH0gZnJvbSAnLi4vZGVjb3JhdG9ycy9iYXNlL2RlY29yYXRvci10eXBlcy5lbnVtJztcbmltcG9ydCB7IERlZmF1bHRGaWxlRGVjb3JhdG9yQ29uZmlnSW50ZXJuYWwgfSBmcm9tICcuLi9kZWNvcmF0b3JzL2ZpbGUvZmlsZS1kZWNvcmF0b3ItaW50ZXJuYWwuZGF0YSc7XG5pbXBvcnQgeyBGaWxlRGF0YSB9IGZyb20gJy4uL2RlY29yYXRvcnMvZmlsZS9maWxlLWRlY29yYXRvci5kYXRhJztcbmltcG9ydCB7IExvZGFzaFV0aWxpdGllcyB9IGZyb20gJy4uL2VuY2Fwc3VsYXRpb24vbG9kYXNoLnV0aWxpdGllcyc7XG5pbXBvcnQgeyBFbnRpdHlVdGlsaXRpZXMgfSBmcm9tICcuLi91dGlsaXRpZXMvZW50aXR5LnV0aWxpdGllcyc7XG5pbXBvcnQgeyBGaWxlVXRpbGl0aWVzIH0gZnJvbSAnLi4vdXRpbGl0aWVzL2ZpbGUudXRpbGl0aWVzJztcblxuLyoqXG4gKiBBIGdlbmVyaWMgRW50aXR5U2VydmljZSBjbGFzcy5cbiAqIE9mZmVycyBiYXNpYyBDUlVELWZ1bmN0aW9uYWxpdHkuXG4gKiBZb3Ugc2hvdWxkIGNyZWF0ZSBhIHNlcnZpY2UgZm9yIGV2ZXJ5IEVudGl0eSB5b3UgaGF2ZS5cbiAqIElmIHlvdSBleHRlbmQgZnJvbSB0aGlzIHlvdSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBleHRlbmRlZCBTZXJ2aWNlIGNhbiBiZSBpbmplY3RlZC5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEVudGl0eVNlcnZpY2U8RW50aXR5VHlwZSBleHRlbmRzIEJhc2VFbnRpdHlUeXBlPEVudGl0eVR5cGU+PiB7XG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgdXJsIHVzZWQgZm9yIGFwaSByZXF1ZXN0cy4gSWYgdSB3YW50IHRvIGhhdmUgbW9yZSBjb250cm9sIG92ZXIgdGhpcyxcbiAgICAgKiB5b3UgY2FuIG92ZXJyaWRlIHRoZSBjcmVhdGUsIHJlYWQsIHVwZGF0ZSBhbmQgZGVsZXRlIG1ldGhvZHMuXG4gICAgICpcbiAgICAgKiBDcmVhdGUgU2VuZHMgYSBQT1NULVJlcXVlc3QgdG8gYmFzZVVybC5cbiAgICAgKlxuICAgICAqIFJlYWQgU2VuZHMgYSBHRVQtUmVxdWVzdCB0byBiYXNlVXJsLlxuICAgICAqXG4gICAgICogVXBkYXRlIFNlbmRzIGEgUEFUQ0gtUmVxdWVzdCB0byBiYXNlVXJsL3tpZH0uXG4gICAgICpcbiAgICAgKiBEZWxldGUgU2VuZHMgYSBERUwtUmVxdWVzdCB0byBiYXNlVXJsL3tpZH0uXG4gICAgICovXG4gICAgYWJzdHJhY3QgcmVhZG9ubHkgYmFzZVVybDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGRlZmF1bHQgcm91dGUgc2VnbWVudCB0aGF0IGNvbWVzIGJlZm9yZSB0aGUgaWQgd2hlbiBlZGl0aW5nIGFuIGVudGl0eSBpbiBhIHNlcGFyYXRlIHBhZ2UsIGlmIG5vIGV4dHJhIHJvdXRlIGhhcyBiZWVuIHByb3ZpZGVkLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGVkaXRCYXNlUm91dGU6IHN0cmluZyA9ICdlbnRpdGllcyc7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgY29tcGxldGUgcm91dGUgdGhhdCBpcyB1c2VkIHRvIGNyZWF0ZSBhbiBlbnRpdHkgaW4gYSBzZXBhcmF0ZSBwYWdlLCBpZiBubyBleHRyYSByb3V0ZSBoYXMgYmVlbiBwcm92aWRlZC5cbiAgICAgKi9cbiAgICByZWFkb25seSBjcmVhdGVCYXNlUm91dGU6IHN0cmluZyA9ICdlbnRpdGllcy9jcmVhdGUnO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGtleSB3aGljaCBob2xkcyB0aGUgaWQgdmFsdWUuXG4gICAgICogQGRlZmF1bHQgJ2lkJ1xuICAgICAqL1xuICAgIHJlYWRvbmx5IGlkS2V5OiBrZXlvZiBFbnRpdHlUeXBlID0gJ2lkJyBhcyBrZXlvZiBFbnRpdHlUeXBlO1xuXG4gICAgLyoqXG4gICAgICogQSBzdWJqZWN0IG9mIGFsbCB0aGUgZW50aXR5IHZhbHVlcy5cbiAgICAgKiBDYW4gYmUgc3Vic2NyaWJlZCB0byB3aGVuIHlvdSB3YW50IHRvIGRvIGEgc3BlY2lmaWMgdGhpbmcgd2hlbmV2ZXIgdGhlIGVudGl0aWVzIGNoYW5nZS5cbiAgICAgKi9cbiAgICByZWFkb25seSBlbnRpdGllc1N1YmplY3Q6IEJlaGF2aW9yU3ViamVjdDxFbnRpdHlUeXBlW10+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxFbnRpdHlUeXBlW10+KFtdKTtcblxuXG4gICAgLyoqXG4gICAgICogV2hlbiBmcmVxdWVudGx5IHRyeWluZyB0byBmaW5kIGEgc2luZ2xlIGVudGl0eSBieSBhbiBpZCAoZWcuIFdoZW4gbmVzdGluZyByZWxhdGlvbnMpXG4gICAgICogeW91IG1pZ2h0IHNlbmQgYSBsb3Qgb2YgdW5uZWNlc3NhcnkgcmVxdWVzdHMuXG4gICAgICogVGhlcmVmb3JlIHRoZSBmaW5kQnlJZCBtZXRob2QgdHJpZXMgdG8gbG9vayBpbiB0aGUgYWxyZWFkeSBleGlzdGluZyBlbnRpdGllcyBmaXJzdCxcbiAgICAgKiBJRiB0aGUgZW50aXRpZXMgaGF2ZSBiZWVuIHJlcXVlc3RlZCBpbiB0aGUgbGFzdCBSRUFEX0VYUElSQVRJT05fSU5fTVMgbWlsbGlzZWNvbmRzLlxuICAgICAqIEBkZWZhdWx0IDkwMDAwMCAoNSBtaW51dGVzKVxuICAgICAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBSRUFEX0VYUElSQVRJT05fSU5fTVM6IG51bWJlciA9IDkwMDAwMDtcblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIGVudGl0aWVzIGluIGFuIGFycmF5IGZyb20gdGhlIGludGVybmFsIGVudGl0aWVzU3ViamVjdC5cbiAgICAgKiBAcmV0dXJucyBUaGUgY3VycmVudCBlbnRpdGllcyBpbiBmb3JtIG9mIGFuIGFycmF5LlxuICAgICAqL1xuICAgIGdldCBlbnRpdGllcygpOiBFbnRpdHlUeXBlW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5lbnRpdGllc1N1YmplY3QudmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGxhc3QgdGltZSB0aGF0IHRoZSBlbnRpdGllcyBoYXZlIGJlZW4gcmVxdWVzdGVkIGZyb20gdGhlIGFwaS5cbiAgICAgKi9cbiAgICBsYXN0UmVhZD86IERhdGU7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgcmVhZG9ubHkgaHR0cDogSHR0cENsaWVudCwgcHJvdGVjdGVkIHJlYWRvbmx5IGluamVjdG9yOiBFbnZpcm9ubWVudEluamVjdG9yKSB7fVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIG5ldyBFbnRpdHkgYW5kIHB1c2hlcyBpdCB0byB0aGUgZW50aXRpZXMgYXJyYXkuXG4gICAgICogQHBhcmFtIGVudGl0eSAtIFRoZSBkYXRhIG9mIHRoZSBlbnRpdHkgdG8gY3JlYXRlLlxuICAgICAqIEFsbCB2YWx1ZXMgdGhhdCBzaG91bGQgYmUgb21pdHRlZCB3aWxsIGJlIHJlbW92ZWQgZnJvbSBpdCBpbnNpZGUgdGhpcyBtZXRob2QuXG4gICAgICogQHBhcmFtIGJhc2VVcmwgLSBUaGUgYmFzZSB1cmwgdG8gc2VuZCB0aGUgcG9zdCByZXF1ZXN0IHRvLlxuICAgICAqIFRoaXMgY2FuIGJlIHVzZWQgaWYgeW91IHdhbnQgdG8gY3JlYXRlIGFuIGVudGl0eSBiZWxvbmdpbmcgdG8gYW5vdGhlciwgbGlrZSBcImN1c3RvbWVycy97aWR9L2ludm9pY2VzXCIuXG4gICAgICogQHJldHVybnMgQSBQcm9taXNlIG9mIHRoZSBjcmVhdGVkIGVudGl0eS5cbiAgICAgKi9cbiAgICBhc3luYyBjcmVhdGUoZW50aXR5OiBFbnRpdHlUeXBlLCBiYXNlVXJsOiBzdHJpbmcgPSB0aGlzLmJhc2VVcmwpOiBQcm9taXNlPEVudGl0eVR5cGU+IHtcbiAgICAgICAgY29uc3QgYm9keTogUGFydGlhbDxFbnRpdHlUeXBlPiA9IEVudGl0eVV0aWxpdGllcy5nZXRXaXRob3V0T21pdENyZWF0ZVZhbHVlcyhlbnRpdHkpO1xuICAgICAgICBjb25zdCBmaWxlUHJvcGVydHlLZXlzOiAoa2V5b2YgRW50aXR5VHlwZSlbXSA9IEVudGl0eVV0aWxpdGllcy5nZXRGaWxlUHJvcGVydGllcyhlbnRpdHkpO1xuICAgICAgICBpZiAoIWZpbGVQcm9wZXJ0eUtleXMubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5jcmVhdGVXaXRoSnNvbihib2R5LCBiYXNlVXJsKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmNyZWF0ZVdpdGhGb3JtRGF0YShib2R5LCBmaWxlUHJvcGVydHlLZXlzLCBlbnRpdHksIGJhc2VVcmwpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gVE9ETzogRmluZCBhIHdheSB0byB1c2UgYmxvYnMgd2l0aCBqZXN0XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAvKipcbiAgICAgKiBJbXBvcnRzIGV2ZXJ5dGhpbmcgZnJvbSB0aGUgcHJvdmlkZWQganNvbiBmaWxlLlxuICAgICAqIEBwYXJhbSBmaWxlIC0gVGhlIGpzb24gZmlsZSB0byBpbXBvcnQgZnJvbS5cbiAgICAgKiBAcmV0dXJucyBBbGwgZW50aXRpZXMgdGhhdCBoYXZlIGJlZW4gaW1wb3J0ZWQuXG4gICAgICovXG4gICAgYXN5bmMgaW1wb3J0KGZpbGU6IEZpbGUpOiBQcm9taXNlPEVudGl0eVR5cGVbXT4ge1xuICAgICAgICBjb25zdCBmb3JtRGF0YTogRm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcbiAgICAgICAgZm9ybURhdGEuYXBwZW5kKCdpbXBvcnQnLCBmaWxlKTtcbiAgICAgICAgY29uc3QgcmVzdWx0OiBFbnRpdHlUeXBlW10gPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLmh0dHAucG9zdDxFbnRpdHlUeXBlW10+KGAke3RoaXMuYmFzZVVybH0vaW1wb3J0YCwgZm9ybURhdGEpKTtcbiAgICAgICAgdGhpcy5lbnRpdGllcy5wdXNoKC4uLnJlc3VsdCk7XG4gICAgICAgIHRoaXMuZW50aXRpZXNTdWJqZWN0Lm5leHQodGhpcy5lbnRpdGllcyk7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLy8gVE9ETzogRmluZCBhIHdheSB0byB1c2UgYmxvYnMgd2l0aCBqZXN0XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIHRoZSBlbnRpdHkgd2l0aCBmb3JtIGRhdGEgd2hlbiB0aGUgZW50aXR5IGNvbnRhaW5zIGZpbGVzIGluIGNvbnRyYXN0IHRvIGNyZWF0aW5nIGl0IHdpdGggYSBub3JtYWwganNvbiBib2R5LlxuICAgICAqIEFsbCBmaWxlIHZhbHVlcyBhcmUgc3RvcmVkIGluc2lkZSB0aGVpciByZXNwZWN0aXZlIHByb3BlcnR5IGtleSBhbmQgdGhlaXIgbmFtZS5cbiAgICAgKiBGb3JtIGRhdGEgaXMgYWJsZSB0byBoYW5kbGUgc2V0dGluZyBtdWx0aXBsZSBmaWxlcyB0byB0aGUgc2FtZSBrZXkuXG4gICAgICogQHBhcmFtIGJvZHkgLSBUaGUgYm9keSBPZiB0aGUgcmVxdWVzdC5cbiAgICAgKiBAcGFyYW0gZmlsZVByb3BlcnR5S2V5cyAtIEFsbCBwcm9wZXJ0eSBrZXlzIHRoYXQgYXJlIGZpbGVzIGFuZCBuZWVkIHRvIGJlIGFkZGVkIHRvIHRoZSBmb3JtIGRhdGEuXG4gICAgICogQHBhcmFtIGVudGl0eSAtIFRoZSBlbnRpdHkgdG8gY3JlYXRlLiBUaGlzIGlzIG5lZWRlZCBpbiBhZGRpdGlvbiB0byB0aGUgYm9keSBiZWNhdXNlIHRoZSBib2R5IGRvZXNuJ3QgY29udGFpbiBhbnkgbWV0YWRhdGEuXG4gICAgICogQHBhcmFtIGJhc2VVcmwgLSBUaGUgYmFzZSB1cmwgdG8gc2VuZCB0aGUgcG9zdCByZXF1ZXN0IHRvLlxuICAgICAqIFRoaXMgY2FuIGJlIHVzZWQgaWYgeW91IHdhbnQgdG8gY3JlYXRlIGFuIGVudGl0eSBiZWxvbmdpbmcgdG8gYW5vdGhlciwgbGlrZSBcImN1c3RvbWVycy97aWR9L2ludm9pY2VzXCIuXG4gICAgICogQHJldHVybnMgVGhlIGNyZWF0ZWQgZW50aXR5IGZyb20gdGhlIHNlcnZlci5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgYXN5bmMgY3JlYXRlV2l0aEZvcm1EYXRhKFxuICAgICAgICBib2R5OiBQYXJ0aWFsPEVudGl0eVR5cGU+LFxuICAgICAgICBmaWxlUHJvcGVydHlLZXlzOiAoa2V5b2YgRW50aXR5VHlwZSlbXSxcbiAgICAgICAgZW50aXR5OiBFbnRpdHlUeXBlLFxuICAgICAgICBiYXNlVXJsOiBzdHJpbmcgPSB0aGlzLmJhc2VVcmxcbiAgICApOiBQcm9taXNlPEVudGl0eVR5cGU+IHtcbiAgICAgICAgY29uc3QgZm9ybURhdGE6IEZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgICAgIGZvcm1EYXRhLmFwcGVuZCgnYm9keScsIEpTT04uc3RyaW5naWZ5KExvZGFzaFV0aWxpdGllcy5vbWl0KGJvZHksIGZpbGVQcm9wZXJ0eUtleXMpKSk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IG9mIGZpbGVQcm9wZXJ0eUtleXMpIHtcbiAgICAgICAgICAgIGlmICgoRW50aXR5VXRpbGl0aWVzLmdldFByb3BlcnR5TWV0YWRhdGEoZW50aXR5LCBrZXksIERlY29yYXRvclR5cGVzLkZJTEVfREVGQVVMVCkgYXMgRGVmYXVsdEZpbGVEZWNvcmF0b3JDb25maWdJbnRlcm5hbCkubXVsdGlwbGUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWxlRGF0YVZhbHVlczogRmlsZURhdGFbXSA9IGJvZHlba2V5XSBhcyBGaWxlRGF0YVtdO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgdmFsdWUgb2YgZmlsZURhdGFWYWx1ZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgZm9ybURhdGEuYXBwZW5kKGtleSBhcyBzdHJpbmcsIChhd2FpdCBGaWxlVXRpbGl0aWVzLmdldEZpbGVEYXRhKHZhbHVlLCB0aGlzLmh0dHApKS5maWxlLCB2YWx1ZS5uYW1lKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWxlRGF0YTogRmlsZURhdGEgPSBib2R5W2tleV0gYXMgRmlsZURhdGE7XG4gICAgICAgICAgICAgICAgZm9ybURhdGEuYXBwZW5kKGtleSBhcyBzdHJpbmcsIChhd2FpdCBGaWxlVXRpbGl0aWVzLmdldEZpbGVEYXRhKGZpbGVEYXRhLCB0aGlzLmh0dHApKS5maWxlLCBmaWxlRGF0YS5uYW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCBlOiBFbnRpdHlUeXBlIHwgdW5kZWZpbmVkID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5odHRwLnBvc3Q8RW50aXR5VHlwZSB8IHVuZGVmaW5lZD4oYmFzZVVybCwgZm9ybURhdGEpKTtcbiAgICAgICAgaWYgKCFlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFxuICAgICAgICAgICAgICAgIFRoZSBjcmVhdGVkIGVudGl0eSB3YXMgbm90IHJldHVybmVkIGluIHRoZSByZXNwb25zZS5cbiAgICAgICAgICAgICAgICBJZiB5b3Ugd2FudCB0byBwcm92aWRlIGEgbG9naWMgdGhhdCBhbGxvd3MgdGhhdFxuICAgICAgICAgICAgICAgIHlvdSBuZWVkIHRvIG92ZXJyaWRlIHRoZSBjcmVhdGUgbWV0aG9kcyBvZiB0aGlzIGNsYXNzLlxuICAgICAgICAgICAgYCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5lbnRpdGllcy5wdXNoKGUpO1xuICAgICAgICB0aGlzLmVudGl0aWVzU3ViamVjdC5uZXh0KHRoaXMuZW50aXRpZXMpO1xuICAgICAgICByZXR1cm4gZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIHRoZSBlbnRpdHkgd2l0aCBhIG5vcm1hbCBqc29uIGJvZHkgaW4gY29udHJhc3QgdG8gY3JlYXRpbmcgaXQgd2l0aCBmb3JtIGRhdGEgd2hlbiB0aGUgZW50aXR5IGNvbnRhaW5zIGZpbGVzLlxuICAgICAqIEBwYXJhbSBib2R5IC0gVGhlIGJvZHkgT2YgdGhlIHJlcXVlc3QuXG4gICAgICogQHBhcmFtIGJhc2VVcmwgLSBUaGUgYmFzZSB1cmwgdG8gc2VuZCB0aGUgcG9zdCByZXF1ZXN0IHRvLlxuICAgICAqIFRoaXMgY2FuIGJlIHVzZWQgaWYgeW91IHdhbnQgdG8gY3JlYXRlIGFuIGVudGl0eSBiZWxvbmdpbmcgdG8gYW5vdGhlciwgbGlrZSBcImN1c3RvbWVycy97aWR9L2ludm9pY2VzXCIuXG4gICAgICogQHJldHVybnMgVGhlIGNyZWF0ZWQgZW50aXR5IGZyb20gdGhlIHNlcnZlci5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgYXN5bmMgY3JlYXRlV2l0aEpzb24oYm9keTogUGFydGlhbDxFbnRpdHlUeXBlPiwgYmFzZVVybDogc3RyaW5nID0gdGhpcy5iYXNlVXJsKTogUHJvbWlzZTxFbnRpdHlUeXBlPiB7XG4gICAgICAgIGNvbnN0IGU6IEVudGl0eVR5cGUgfCB1bmRlZmluZWQgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLmh0dHAucG9zdDxFbnRpdHlUeXBlIHwgdW5kZWZpbmVkPihiYXNlVXJsLCBib2R5KSk7XG4gICAgICAgIGlmICghZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBcbiAgICAgICAgICAgICAgICBUaGUgY3JlYXRlZCBlbnRpdHkgd2FzIG5vdCByZXR1cm5lZCBpbiB0aGUgcmVzcG9uc2UuXG4gICAgICAgICAgICAgICAgSWYgeW91IHdhbnQgdG8gcHJvdmlkZSBhIGxvZ2ljIHRoYXQgYWxsb3dzIHRoYXRcbiAgICAgICAgICAgICAgICB5b3UgbmVlZCB0byBvdmVycmlkZSB0aGUgY3JlYXRlIG1ldGhvZHMgb2YgdGhpcyBjbGFzcy5cbiAgICAgICAgICAgIGApO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZW50aXRpZXMucHVzaChlKTtcbiAgICAgICAgdGhpcy5lbnRpdGllc1N1YmplY3QubmV4dCh0aGlzLmVudGl0aWVzKTtcbiAgICAgICAgcmV0dXJuIGU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyBhbGwgZXhpc3RpbmcgZW50aXRpZXMgYW5kIHB1c2hlcyB0aGVtIHRvIHRoZSBlbnRpdGllcyBhcnJheS5cbiAgICAgKiBAcGFyYW0gYmFzZVVybCAtIFRoZSBiYXNlIHVybCBmb3IgdGhlIHJlcXVlc3QuIERlZmF1bHRzIHRvIHRoZSBiYXNlVXJsIG9uIHRoZSBzZXJ2aWNlLlxuICAgICAqIEByZXR1cm5zIEEgUHJvbWlzZSBvZiBhbGwgcmVjZWl2ZWQgRW50aXRpZXMuXG4gICAgICovXG4gICAgYXN5bmMgcmVhZChiYXNlVXJsID0gdGhpcy5iYXNlVXJsKTogUHJvbWlzZTxFbnRpdHlUeXBlW10+IHtcbiAgICAgICAgY29uc3QgZTogRW50aXR5VHlwZVtdID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5odHRwLmdldDxFbnRpdHlUeXBlW10+KGJhc2VVcmwpKTtcbiAgICAgICAgdGhpcy5lbnRpdGllc1N1YmplY3QubmV4dChlKTtcbiAgICAgICAgdGhpcy5sYXN0UmVhZCA9IG5ldyBEYXRlKCk7XG4gICAgICAgIHJldHVybiBlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRyaWVzIHRvIGZpbmQgYW4gZW50aXR5IHdpdGggdGhlIGdpdmVuIGlkLlxuICAgICAqIEBwYXJhbSBpZCAtIFRoZSBpZCBvZiB0aGUgZW50aXR5IHRvIGZpbmQuXG4gICAgICogQHJldHVybnMgVGhlIGZvdW5kIGVudGl0eS5cbiAgICAgKi9cbiAgICBhc3luYyBmaW5kQnlJZChpZDogRW50aXR5VHlwZVtrZXlvZiBFbnRpdHlUeXBlXSk6IFByb21pc2U8RW50aXR5VHlwZT4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLmxhc3RSZWFkID09IG51bGxcbiAgICAgICAgICAgIHx8IChuZXcgRGF0ZSgpLmdldFRpbWUoKSAtIHRoaXMubGFzdFJlYWQuZ2V0VGltZSgpKSA+IHRoaXMuUkVBRF9FWFBJUkFUSU9OX0lOX01TXG4gICAgICAgICkge1xuICAgICAgICAgICAgcmV0dXJuIGZpcnN0VmFsdWVGcm9tKHRoaXMuaHR0cC5nZXQ8RW50aXR5VHlwZT4oYCR7dGhpcy5iYXNlVXJsfS8ke2lkfWApKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5lbnRpdGllcy5maW5kKGUgPT4gZVt0aGlzLmlkS2V5XSA9PT0gaWQpID8/IGZpcnN0VmFsdWVGcm9tKHRoaXMuaHR0cC5nZXQ8RW50aXR5VHlwZT4oYCR7dGhpcy5iYXNlVXJsfS8ke2lkfWApKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBVcGRhdGVzIGEgc3BlY2lmaWMgRW50aXR5LlxuICAgICAqIEBwYXJhbSBlbnRpdHkgLSBUaGUgdXBkYXRlZCBFbnRpdHlcbiAgICAgKiBBbGwgdmFsdWVzIHRoYXQgc2hvdWxkIGJlIG9taXR0ZWQgd2lsbCBiZSByZW1vdmVkIGZyb20gaXQgaW5zaWRlIHRoaXMgbWV0aG9kLlxuICAgICAqIEBwYXJhbSBlbnRpdHlQcmlvckNoYW5nZXMgLSBUaGUgY3VycmVudCBFbnRpdHkuXG4gICAgICogSXQgSXMgdXNlZCB0byBnZXQgY2hhbmdlZCB2YWx1ZXMgYW5kIG9ubHkgdXBkYXRlIHRoZW0gaW5zdGVhZCBvZiBzZW5kaW5nIHRoZSB3aG9sZSBlbnRpdHkgZGF0YS5cbiAgICAgKi9cbiAgICBhc3luYyB1cGRhdGUoZW50aXR5OiBFbnRpdHlUeXBlLCBlbnRpdHlQcmlvckNoYW5nZXM6IEVudGl0eVR5cGUpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgZmlsZVByb3BlcnR5S2V5czogKGtleW9mIEVudGl0eVR5cGUpW10gPSBFbnRpdHlVdGlsaXRpZXMuZ2V0RmlsZVByb3BlcnRpZXMoZW50aXR5UHJpb3JDaGFuZ2VzKTtcbiAgICAgICAgY29uc3QgYm9keTogUGFydGlhbDxFbnRpdHlUeXBlPiA9IGF3YWl0IHRoaXMuZW50aXR5VG9VcGRhdGVSZXF1ZXN0Qm9keShlbnRpdHksIGVudGl0eVByaW9yQ2hhbmdlcyk7XG4gICAgICAgIGlmICghZmlsZVByb3BlcnR5S2V5cy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMudXBkYXRlV2l0aEpzb24oYm9keSwgZW50aXR5UHJpb3JDaGFuZ2VzW3RoaXMuaWRLZXldKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMudXBkYXRlV2l0aEZvcm1EYXRhKGJvZHksIGZpbGVQcm9wZXJ0eUtleXMsIGVudGl0eSwgZW50aXR5UHJpb3JDaGFuZ2VzW3RoaXMuaWRLZXldKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEJ1aWxkcyB0aGUgdXBkYXRlIHJlcXVlc3QgYm9keSBmcm9tIHRoZSBnaXZlbiBlbnRpdHkgYmVmb3JlIGFuZCBhZnRlciBpdHMgY2hhbmdlcy5cbiAgICAgKiBAcGFyYW0gZW50aXR5IC0gVGhlIGVudGl0eSB3aXRoIGNoYW5nZWQgdmFsdWVzLlxuICAgICAqIEBwYXJhbSBlbnRpdHlQcmlvckNoYW5nZXMgLSBUaGUgZW50aXR5IGJlZm9yZSBhbnkgY2hhbmdlcy5cbiAgICAgKiBAcmV0dXJucyBBIHBhcnRpYWwgb2Ygb25seSB0aGUgY2hhbmdlZCB2YWx1ZXMuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGFzeW5jIGVudGl0eVRvVXBkYXRlUmVxdWVzdEJvZHkoZW50aXR5OiBFbnRpdHlUeXBlLCBlbnRpdHlQcmlvckNoYW5nZXM6IEVudGl0eVR5cGUpOiBQcm9taXNlPFBhcnRpYWw8RW50aXR5VHlwZT4+IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IEVudGl0eVV0aWxpdGllcy5nZXRXaXRob3V0T21pdFVwZGF0ZVZhbHVlcyhlbnRpdHksIGVudGl0eVByaW9yQ2hhbmdlcywgdGhpcy5odHRwLCB0aGlzLmluamVjdG9yKTtcbiAgICB9XG5cbiAgICAvLyBUT0RPOiBGaW5kIGEgd2F5IHRvIHVzZSBibG9icyB3aXRoIGplc3RcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIC8qKlxuICAgICAqIFVwZGF0ZXMgdGhlIGVudGl0eSB3aXRoIGZvcm0gZGF0YSB3aGVuIHRoZSBlbnRpdHkgY29udGFpbnMgZmlsZXMgaW4gY29udHJhc3QgdG8gY3JlYXRpbmcgaXQgd2l0aCBhIG5vcm1hbCBqc29uIGJvZHkuXG4gICAgICogQWxsIGZpbGUgdmFsdWVzIGFyZSBzdG9yZWQgaW5zaWRlIHRoZWlyIHJlc3BlY3RpdmUgcHJvcGVydHkga2V5IGFuZCB0aGVpciBuYW1lLlxuICAgICAqIEZvcm0gZGF0YSBpcyBhYmxlIHRvIGhhbmRsZSBzZXR0aW5nIG11bHRpcGxlIGZpbGVzIHRvIHRoZSBzYW1lIGtleS5cbiAgICAgKiBAcGFyYW0gYm9keSAtIFRoZSByZXF1ZXN0IGJvZHkuIEFscmVhZHkgY29udGFpbnMgb25seSBwcm9wZXJ0aWVzIHRoYXQgaGF2ZSBjaGFuZ2VkLlxuICAgICAqIEBwYXJhbSBmaWxlUHJvcGVydHlLZXlzIC0gVGhlIGtleXMgb2YgYWxsIHByb3BlcnRpZXMgd2hpY2ggYXJlIGZpbGVzIGFuZCBuZWVkIHRvIHNlcGFyYXRlbHkgYmUgYXBwZW5kZWQgdG8gdGhlIGZvcm0gZGF0YS5cbiAgICAgKiBAcGFyYW0gZW50aXR5IC0gVGhlIG9yaWdpbmFsIGVudGl0eS4gSXMgbmVlZGVkIHRvIGdldCB0aGUgbWV0YWRhdGEgb2YgYWxsIHRoZSBmaWxlcy5cbiAgICAgKiBAcGFyYW0gaWQgLSBUaGUgaWQgb2YgdGhlIGVudGl0eSB0byB1cGRhdGUuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGFzeW5jIHVwZGF0ZVdpdGhGb3JtRGF0YShcbiAgICAgICAgYm9keTogUGFydGlhbDxFbnRpdHlUeXBlPixcbiAgICAgICAgZmlsZVByb3BlcnR5S2V5czogKGtleW9mIEVudGl0eVR5cGUpW10sXG4gICAgICAgIGVudGl0eTogRW50aXR5VHlwZSxcbiAgICAgICAgaWQ6IEVudGl0eVR5cGVba2V5b2YgRW50aXR5VHlwZV1cbiAgICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgZm9ybURhdGE6IEZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgICAgIGZvcm1EYXRhLmFwcGVuZCgnYm9keScsIEpTT04uc3RyaW5naWZ5KExvZGFzaFV0aWxpdGllcy5vbWl0KGJvZHksIGZpbGVQcm9wZXJ0eUtleXMpKSk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IG9mIGZpbGVQcm9wZXJ0eUtleXMpIHtcblxuICAgICAgICAgICAgaWYgKChFbnRpdHlVdGlsaXRpZXMuZ2V0UHJvcGVydHlNZXRhZGF0YShlbnRpdHksIGtleSwgRGVjb3JhdG9yVHlwZXMuRklMRV9ERUZBVUxUKSBhcyBEZWZhdWx0RmlsZURlY29yYXRvckNvbmZpZ0ludGVybmFsKS5tdWx0aXBsZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpbGVEYXRhVmFsdWVzOiBGaWxlRGF0YVtdID0gYm9keVtrZXldIGFzIEZpbGVEYXRhW107XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCB2YWx1ZSBvZiBmaWxlRGF0YVZhbHVlcykge1xuICAgICAgICAgICAgICAgICAgICBmb3JtRGF0YS5hcHBlbmQoa2V5IGFzIHN0cmluZywgKGF3YWl0IEZpbGVVdGlsaXRpZXMuZ2V0RmlsZURhdGEodmFsdWUsIHRoaXMuaHR0cCkpLmZpbGUsIHZhbHVlLm5hbWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpbGVEYXRhOiBGaWxlRGF0YSA9IGJvZHlba2V5XSBhcyBGaWxlRGF0YTtcbiAgICAgICAgICAgICAgICBmb3JtRGF0YS5hcHBlbmQoa2V5IGFzIHN0cmluZywgKGF3YWl0IEZpbGVVdGlsaXRpZXMuZ2V0RmlsZURhdGEoZmlsZURhdGEsIHRoaXMuaHR0cCkpLmZpbGUsIGZpbGVEYXRhLm5hbWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHVwZGF0ZWRFbnRpdHk6IEVudGl0eVR5cGUgfCB1bmRlZmluZWQgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbShcbiAgICAgICAgICAgIHRoaXMuaHR0cC5wYXRjaDxFbnRpdHlUeXBlIHwgdW5kZWZpbmVkPihgJHt0aGlzLmJhc2VVcmx9LyR7aWR9YCwgZm9ybURhdGEpXG4gICAgICAgICk7XG4gICAgICAgIGlmICghdXBkYXRlZEVudGl0eSkge1xuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgICAgICAgIGNvbnNvbGUud2FybignVGhlIHVwZGF0ZWQgZW50aXR5IHdhcyBub3QgcmV0dXJuZWQgaW4gdGhlIHJlc3BvbnNlLiBBcHBseWluZyB0aGUgY2hhbmdlcyBmcm9tIHRoZSByZXF1ZXN0IGJvZHkuJyk7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBib2R5KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5lbnRpdGllc1t0aGlzLmVudGl0aWVzLmZpbmRJbmRleChlID0+IGVbdGhpcy5pZEtleV0gPT09IGlkKV1ba2V5XVxuICAgICAgICAgICAgICAgICAgICA9IGJvZHlba2V5XSBhcyBFbnRpdHlUeXBlW0V4dHJhY3Q8a2V5b2YgRW50aXR5VHlwZSwgc3RyaW5nPl07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmVudGl0aWVzU3ViamVjdC5uZXh0KHRoaXMuZW50aXRpZXMpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZW50aXRpZXNbdGhpcy5lbnRpdGllcy5maW5kSW5kZXgoZSA9PiBlW3RoaXMuaWRLZXldID09PSBpZCldID0gdXBkYXRlZEVudGl0eTtcbiAgICAgICAgdGhpcy5lbnRpdGllc1N1YmplY3QubmV4dCh0aGlzLmVudGl0aWVzKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBVcGRhdGVzIHRoZSBlbnRpdHkgd2l0aCBhIG5vcm1hbCBqc29uIGJvZHkgaW4gY29udHJhc3QgdG8gdXBkYXRpbmcgaXQgd2l0aCBmb3JtIGRhdGEgd2hlbiB0aGUgZW50aXR5IGNvbnRhaW5zIGZpbGVzLlxuICAgICAqIEBwYXJhbSBib2R5IC0gVGhlIGJvZHkgb2YgdGhlIFJlcXVlc3QuIEhhcyBhbHJlYWR5IHJlbW92ZWQgYWxsIHVubmVjZXNzYXJ5IHZhbHVlcy5cbiAgICAgKiBAcGFyYW0gaWQgLSBUaGUgaWQgb2YgdGhlIGVudGl0eSB0byB1cGRhdGUuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGFzeW5jIHVwZGF0ZVdpdGhKc29uKGJvZHk6IFBhcnRpYWw8RW50aXR5VHlwZT4sIGlkOiBFbnRpdHlUeXBlW2tleW9mIEVudGl0eVR5cGVdKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IHVwZGF0ZWRFbnRpdHk6IEVudGl0eVR5cGUgfCB1bmRlZmluZWQgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbShcbiAgICAgICAgICAgIHRoaXMuaHR0cC5wYXRjaDxFbnRpdHlUeXBlIHwgdW5kZWZpbmVkPihgJHt0aGlzLmJhc2VVcmx9LyR7aWR9YCwgYm9keSlcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKCF1cGRhdGVkRW50aXR5KSB7XG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgICAgICAgY29uc29sZS53YXJuKCdUaGUgdXBkYXRlZCBlbnRpdHkgd2FzIG5vdCByZXR1cm5lZCBpbiB0aGUgcmVzcG9uc2UuIEFwcGx5aW5nIHRoZSBjaGFuZ2VzIGZyb20gdGhlIHJlcXVlc3QgYm9keS4nKTtcbiAgICAgICAgICAgIGNvbnN0IGZvdW5kRW50aXR5OiBFbnRpdHlUeXBlID0gdGhpcy5lbnRpdGllc1t0aGlzLmVudGl0aWVzLmZpbmRJbmRleChlID0+IGVbdGhpcy5pZEtleV0gPT09IGlkKV07XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBib2R5KSB7XG4gICAgICAgICAgICAgICAgZm91bmRFbnRpdHlba2V5XVxuICAgICAgICAgICAgICAgICAgICA9IGJvZHlba2V5XSBhcyBFbnRpdHlUeXBlW0V4dHJhY3Q8a2V5b2YgRW50aXR5VHlwZSwgc3RyaW5nPl07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmVudGl0aWVzU3ViamVjdC5uZXh0KHRoaXMuZW50aXRpZXMpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZW50aXRpZXNbdGhpcy5lbnRpdGllcy5maW5kSW5kZXgoZSA9PiBlW3RoaXMuaWRLZXldID09PSBpZCldID0gdXBkYXRlZEVudGl0eTtcbiAgICAgICAgdGhpcy5lbnRpdGllc1N1YmplY3QubmV4dCh0aGlzLmVudGl0aWVzKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZWxldGVzIGEgc3BlY2lmaWMgRW50aXR5LlxuICAgICAqIEBwYXJhbSBlbnRpdHkgLSBUaGUgZW50aXR5IHRvIGRlbGV0ZS5cbiAgICAgKi9cbiAgICBhc3luYyBkZWxldGUoZW50aXR5OiBFbnRpdHlUeXBlKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuaHR0cC5kZWxldGU8dm9pZD4oYCR7dGhpcy5iYXNlVXJsfS8ke2VudGl0eVt0aGlzLmlkS2V5XX1gKSk7XG4gICAgICAgIC8vIHRoZSA9PSBjb21wYXJpc29uIGluc3RlYWQgb2YgPT09IGlzIHRvIGNhdGNoIGlkcyB0aGF0IGFyZSBudW1iZXJzLlxuICAgICAgICB0aGlzLmVudGl0aWVzLnNwbGljZSh0aGlzLmVudGl0aWVzLmZpbmRJbmRleChlID0+IGVbdGhpcy5pZEtleV0gPT09IGVudGl0eVt0aGlzLmlkS2V5XSksIDEpO1xuICAgICAgICB0aGlzLmVudGl0aWVzU3ViamVjdC5uZXh0KHRoaXMuZW50aXRpZXMpO1xuICAgIH1cbn0iXX0=
|
|
@@ -1,19 +1,13 @@
|
|
|
1
|
-
import { Observable } from 'rxjs';
|
|
2
1
|
/**
|
|
3
2
|
* A guard that checks if the user has unsaved changes and then prompts a confirmation from him.
|
|
4
3
|
* Is used by the ngx-material-entity edit and create pages.
|
|
5
4
|
* @param component - The component, can be either an edit or create page.
|
|
6
5
|
* @returns An observable containing whether or not the user can continue.
|
|
7
6
|
*/
|
|
8
|
-
export
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
obs.next(v);
|
|
16
|
-
});
|
|
17
|
-
});
|
|
18
|
-
}
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5zYXZlZC1jaGFuZ2VzLmd1YXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW1hdGVyaWFsLWVudGl0eS9zcmMvc2VydmljZXMvdW5zYXZlZC1jaGFuZ2VzLmd1YXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFVbEM7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsbUJBQW1CLENBQUMsU0FBd0I7SUFDeEQsT0FBTyxJQUFJLFVBQVUsQ0FBb0IsQ0FBQyxHQUFHLEVBQUUsRUFBRTtRQUM3QyxJQUFJLFNBQVMsQ0FBQyxhQUFhLEVBQUUsRUFBRTtZQUMzQixHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2YsT0FBTztTQUNWO1FBRUQsU0FBUyxDQUFDLDJCQUEyQixFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ2xELEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDLENBQUMsQ0FBQztBQUNQLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBVcmxUcmVlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE5neE1hdEVudGl0eUNyZWF0ZVBhZ2VDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL2NyZWF0ZS1wYWdlL2NyZWF0ZS1wYWdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOZ3hNYXRFbnRpdHlFZGl0UGFnZUNvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvZWRpdC1wYWdlL2VkaXQtcGFnZS5jb21wb25lbnQnO1xuXG4vKipcbiAqIENhbiBiZSBlaXRoZXIgYW4gZWRpdCBvciBhbiBjcmVhdGUgcGFnZS5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHR5cGVzY3JpcHQvbm8tZXhwbGljaXQtYW55XG50eXBlIFBhZ2VDb21wb25lbnQgPSBOZ3hNYXRFbnRpdHlFZGl0UGFnZUNvbXBvbmVudDxhbnk+IHwgTmd4TWF0RW50aXR5Q3JlYXRlUGFnZUNvbXBvbmVudDxhbnk+O1xuXG4vKipcbiAqIEEgZ3VhcmQgdGhhdCBjaGVja3MgaWYgdGhlIHVzZXIgaGFzIHVuc2F2ZWQgY2hhbmdlcyBhbmQgdGhlbiBwcm9tcHRzIGEgY29uZmlybWF0aW9uIGZyb20gaGltLlxuICogSXMgdXNlZCBieSB0aGUgbmd4LW1hdGVyaWFsLWVudGl0eSBlZGl0IGFuZCBjcmVhdGUgcGFnZXMuXG4gKiBAcGFyYW0gY29tcG9uZW50IC0gVGhlIGNvbXBvbmVudCwgY2FuIGJlIGVpdGhlciBhbiBlZGl0IG9yIGNyZWF0ZSBwYWdlLlxuICogQHJldHVybnMgQW4gb2JzZXJ2YWJsZSBjb250YWluaW5nIHdoZXRoZXIgb3Igbm90IHRoZSB1c2VyIGNhbiBjb250aW51ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFVuc2F2ZWRDaGFuZ2VzR3VhcmQoY29tcG9uZW50OiBQYWdlQ29tcG9uZW50KTogT2JzZXJ2YWJsZTxib29sZWFuIHwgVXJsVHJlZT4ge1xuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZTxib29sZWFuIHwgVXJsVHJlZT4oKG9icykgPT4ge1xuICAgICAgICBpZiAoY29tcG9uZW50LmNhbkRlYWN0aXZhdGUoKSkge1xuICAgICAgICAgICAgb2JzLm5leHQodHJ1ZSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb21wb25lbnQub3BlbkNvbmZpcm1OYXZpZ2F0aW9uRGlhbG9nKCkuc3Vic2NyaWJlKHYgPT4ge1xuICAgICAgICAgICAgb2JzLm5leHQodik7XG4gICAgICAgIH0pO1xuICAgIH0pO1xufSJdfQ==
|
|
7
|
+
export const UnsavedChangesGuard = async (component) => {
|
|
8
|
+
if (component.canDeactivate()) {
|
|
9
|
+
return true;
|
|
10
|
+
}
|
|
11
|
+
return await component.openConfirmNavigationDialog();
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5zYXZlZC1jaGFuZ2VzLmd1YXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW1hdGVyaWFsLWVudGl0eS9zcmMvc2VydmljZXMvdW5zYXZlZC1jaGFuZ2VzLmd1YXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWtCQTs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUF3QyxLQUFLLEVBQUUsU0FBNkIsRUFBRSxFQUFFO0lBQzVHLElBQUksU0FBUyxDQUFDLGFBQWEsRUFBRSxFQUFFO1FBQzNCLE9BQU8sSUFBSSxDQUFDO0tBQ2Y7SUFDRCxPQUFPLE1BQU0sU0FBUyxDQUFDLDJCQUEyQixFQUFFLENBQUM7QUFDekQsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2FuRGVhY3RpdmF0ZUZuIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuLyoqXG4gKiBJbnRlcmZhY2UgZGVmaW5pdGlvbiBmb3IgYSBwYWdlIHRoYXQgY2FuIHdvcmsgd2l0aCB0aGUgVW5zYXZlZENoYW5nZXNHdWFyZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBVbnNhdmVkQ2hhbmdlc1BhZ2Uge1xuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIHBhZ2UgY2FuIGJlIGxlZnQgd2l0aG91dCBjb25maXJtYXRpb24gb2YgdW5zYXZlZCBjaGFuZ2VzLlxuICAgICAqIEByZXR1cm5zIFdoZXRoZXIgb3Igbm90IHRoZSBwYWdlIGNhbiBiZSBsZWZ0IHdpdGhvdXQgY29uZmlybWF0aW9uLlxuICAgICAqL1xuICAgIGNhbkRlYWN0aXZhdGU6ICgpID0+IGJvb2xlYW4sXG4gICAgLyoqXG4gICAgICogT3BlbnMgdGhlIGNvbmZpcm0gZGlhbG9nIGZvciBuYXZpZ2F0aW5nIHdpdGggdW5zYXZlZCBjaGFuZ2VzLlxuICAgICAqIEByZXR1cm5zIFRoZSB0aGUgcHJvbWlzZSBib29sZWFuIHJlc3VsdCBvZiB0aGUgY29uZmlybSBkaWFsb2cuXG4gICAgICovXG4gICAgb3BlbkNvbmZpcm1OYXZpZ2F0aW9uRGlhbG9nOiAoKSA9PiBQcm9taXNlPGJvb2xlYW4+XG59XG5cbi8qKlxuICogQSBndWFyZCB0aGF0IGNoZWNrcyBpZiB0aGUgdXNlciBoYXMgdW5zYXZlZCBjaGFuZ2VzIGFuZCB0aGVuIHByb21wdHMgYSBjb25maXJtYXRpb24gZnJvbSBoaW0uXG4gKiBJcyB1c2VkIGJ5IHRoZSBuZ3gtbWF0ZXJpYWwtZW50aXR5IGVkaXQgYW5kIGNyZWF0ZSBwYWdlcy5cbiAqIEBwYXJhbSBjb21wb25lbnQgLSBUaGUgY29tcG9uZW50LCBjYW4gYmUgZWl0aGVyIGFuIGVkaXQgb3IgY3JlYXRlIHBhZ2UuXG4gKiBAcmV0dXJucyBBbiBvYnNlcnZhYmxlIGNvbnRhaW5pbmcgd2hldGhlciBvciBub3QgdGhlIHVzZXIgY2FuIGNvbnRpbnVlLlxuICovXG5leHBvcnQgY29uc3QgVW5zYXZlZENoYW5nZXNHdWFyZDogQ2FuRGVhY3RpdmF0ZUZuPFVuc2F2ZWRDaGFuZ2VzUGFnZT4gPSBhc3luYyAoY29tcG9uZW50OiBVbnNhdmVkQ2hhbmdlc1BhZ2UpID0+IHtcbiAgICBpZiAoY29tcG9uZW50LmNhbkRlYWN0aXZhdGUoKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGF3YWl0IGNvbXBvbmVudC5vcGVuQ29uZmlybU5hdmlnYXRpb25EaWFsb2coKTtcbn07Il19
|
|
@@ -149,4 +149,4 @@ export class DateUtilities {
|
|
|
149
149
|
return false;
|
|
150
150
|
}
|
|
151
151
|
}
|
|
152
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS51dGlsaXRpZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbWF0ZXJpYWwtZW50aXR5L3NyYy91dGlsaXRpZXMvZGF0ZS51dGlsaXRpZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUdqRSxNQUFNLFNBQVMsR0FBVyxJQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUM7QUFPOUM7O0dBRUc7QUFDSCxNQUFNLE9BQWdCLGFBQWE7SUFFL0I7O09BRUc7SUFDSCxNQUFNLENBQUMsaUJBQWlCLEdBQTBDLFdBQVcsQ0FBQztJQUU5RTs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFjO1FBQ3hCLE9BQU8sS0FBYSxDQUFDO0lBQ3pCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILE1BQU0sQ0FBQyxlQUFlLENBQUMsU0FBa0IsRUFBRSxFQUFFLGNBQTJCLEVBQUU7UUFDdEUsTUFBTSxHQUFHLEdBQTBCLENBQUMsRUFBRSxXQUFXLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxTQUE0QixFQUFFLENBQUMsQ0FBQztRQUMvRixLQUFLLElBQUksSUFBSSxHQUFXLENBQUMsRUFBRSxJQUFJLEdBQUcsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFO1lBQzFDLEtBQUssSUFBSSxNQUFNLEdBQVcsQ0FBQyxFQUFFLE1BQU0sR0FBRyxFQUFFLEVBQUUsTUFBTSxJQUFJLFdBQVcsRUFBRTtnQkFDN0QsR0FBRyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsb0JBQW9CLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO2FBQ3RFO1NBQ0o7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNmLENBQUM7SUFF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QUFPLElBQUksQ0FBQyxLQUFLLEtBQUssUUFBUTtlQUM5QixNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7ZUFDeEIsSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJO2VBQ3BCLE9BQU8sSUFBSSxDQUFDLE9BQU8sS0FBSyxRQUFRO2VBQ2hDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUMvQjtZQUNFLE9BQU8sSUFBSSxDQUFDO1NBQ2Y7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGltZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBEYXRlRmlsdGVyRm4gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJztcbmltcG9ydCB7IERyb3Bkb3duVmFsdWUgfSBmcm9tICcuLi9kZWNvcmF0b3JzL2Jhc2UvZHJvcGRvd24tdmFsdWUuaW50ZXJmYWNlJztcbmltcG9ydCB7IExvZGFzaFV0aWxpdGllcyB9IGZyb20gJy4uL2VuY2Fwc3VsYXRpb24vbG9kYXNoLnV0aWxpdGllcyc7XG5pbXBvcnQgeyBkZWZhdWx0VHJ1ZSB9IGZyb20gJy4uL2Z1bmN0aW9ucy9kZWZhdWx0LXRydWUuZnVuY3Rpb24nO1xuXG5cbmNvbnN0IERBWV9JTl9NUzogbnVtYmVyID0gMTAwMCAqIDYwICogNjAgKiAyNDtcblxuLyoqXG4gKiBWYWxpZCBzdGVwcyBmcm9tIG9uZSB0aW1lIHZhbHVlIHRvIHRoZSBuZXh0LiBOZWVkcyB0byBiZSBhYmxlIHRvIGRpdmlkZSA2MCBtaW51dGVzIHdpdGhvdXQgcmVtYWluZGVyLlxuICovXG50eXBlIE1pbnV0ZVN0ZXBzID0gMSB8IDIgfCAzIHwgNCB8IDUgfCA2IHwgMTAgfCAxMiB8IDE1IHwgMjAgfCAzMCB8IDYwO1xuXG4vKipcbiAqIENvbnRhaW5zIEhlbHBlciBGdW5jdGlvbnMgZm9yIGhhbmRsaW5nIGRhdGUgcHJvcGVydGllcy5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIERhdGVVdGlsaXRpZXMge1xuXG4gICAgLyoqXG4gICAgICogVGhlIGRlZmF1bHQgZmlsdGVyIGZ1bmN0aW9uIHRvIHVzZXIgd2hlbiBub25lIHdhcyBwcm92aWRlZCBieSB0aGUgdXNlci5cbiAgICAgKi9cbiAgICBzdGF0aWMgZGVmYXVsdERhdGVGaWx0ZXI6IERhdGVGaWx0ZXJGbjxEYXRlIHwgbnVsbCB8IHVuZGVmaW5lZD4gPSBkZWZhdWx0VHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIGdpdmVuIHZhbHVlIGFzIGEgZGF0ZSB2YWx1ZS5cbiAgICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgdmFsdWUgdG8gZ2V0IGFzIGEgZGF0ZS5cbiAgICAgKiBAcmV0dXJucyBUaGUgZ2l2ZW4gdmFsdWUgYXMgYSBkYXRlLlxuICAgICAqL1xuICAgIHN0YXRpYyBhc0RhdGUodmFsdWU6IHVua25vd24pOiBEYXRlIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlIGFzIERhdGU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgZGVmYXVsdCB0aW1lcyB1c2VkIGJ5IHRoZSBEYXRlVGltZSBwaWNrZXIgd2hlbiBub3RoaW5nIGlzIHNwZWNpZmllZCBieSB0aGUgdXNlci5cbiAgICAgKiBAcGFyYW0gZm9ybWF0IC0gVGhlIHRpbWUgZm9ybWF0LiBEZWZhdWx0cyB0byAyNC5cbiAgICAgKiBAcGFyYW0gbWludXRlU3RlcHMgLSBUaGUgc3RlcHMgZnJvbSBvbmUgdGltZSB2YWx1ZSB0byB0aGUgbmV4dC4gRGVmYXVsdHMgdG8gMzAuXG4gICAgICogQHJldHVybnMgVGltZXMgaW4gdGhlIDI0IGhvdXIgZm9ybWF0IGZyb20gMDowMCB1bnRpbCAyMzozMCBpbiAzMCBtaW51dGUgc3RlcHMuXG4gICAgICovXG4gICAgc3RhdGljIGdldERlZmF1bHRUaW1lcyhmb3JtYXQ6IDEyIHwgMjQgPSAyNCwgbWludXRlU3RlcHM6IE1pbnV0ZVN0ZXBzID0gMzApOiBEcm9wZG93blZhbHVlPFRpbWU+W10ge1xuICAgICAgICBjb25zdCByZXM6IERyb3Bkb3duVmFsdWU8VGltZT5bXSA9IFt7IGRpc3BsYXlOYW1lOiAnLScsIHZhbHVlOiB1bmRlZmluZWQgYXMgdW5rbm93biBhcyBUaW1lIH1dO1xuICAgICAgICBmb3IgKGxldCBob3VyOiBudW1iZXIgPSAwOyBob3VyIDwgMjQ7IGhvdXIrKykge1xuICAgICAgICAgICAgZm9yIChsZXQgbWludXRlOiBudW1iZXIgPSAwOyBtaW51dGUgPCA2MDsgbWludXRlICs9IG1pbnV0ZVN0ZXBzKSB7XG4gICAgICAgICAgICAgICAgcmVzLnB1c2goRGF0ZVV0aWxpdGllcy5nZXRUaW1lRHJvcGRvd25WYWx1ZShmb3JtYXQsIGhvdXIsIG1pbnV0ZSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgZ2V0VGltZURyb3Bkb3duVmFsdWUoZm9ybWF0OiAxMiB8IDI0LCBob3VyOiBudW1iZXIsIG1pbnV0ZTogbnVtYmVyKTogRHJvcGRvd25WYWx1ZTxUaW1lPiB7XG4gICAgICAgIGNvbnN0IGRpc3BsYXlIb3VyOiBudW1iZXIgPSBEYXRlVXRpbGl0aWVzLmdldEZvcm1hdHRlZEhvdXIoZm9ybWF0LCBMb2Rhc2hVdGlsaXRpZXMuY2xvbmVEZWVwKGhvdXIpKTtcbiAgICAgICAgY29uc3QgZGlzcGxheU1pbnV0ZTogc3RyaW5nID0gRGF0ZVV0aWxpdGllcy5nZXRGb3JtYXR0ZWRNaW51dGUoZm9ybWF0LCBob3VyLCBtaW51dGUpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZGlzcGxheU5hbWU6IGAke2Rpc3BsYXlIb3VyfToke2Rpc3BsYXlNaW51dGV9YCxcbiAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgICAgaG91cnM6IGhvdXIsXG4gICAgICAgICAgICAgICAgbWludXRlczogbWludXRlXG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgZ2V0Rm9ybWF0dGVkSG91cihmb3JtYXQ6IDEyIHwgMjQsIGhvdXI6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIGlmIChmb3JtYXQgPT09IDEyICYmIGhvdXIgPiAxMikge1xuICAgICAgICAgICAgaG91ciAtPSAxMjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaG91cjtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyBnZXRGb3JtYXR0ZWRNaW51dGUoZm9ybWF0OiAxMiB8IDI0LCBob3VyOiBudW1iZXIsIG1pbnV0ZTogbnVtYmVyKTogc3RyaW5nIHtcbiAgICAgICAgbGV0IHJlczogc3RyaW5nID0gYCR7bWludXRlfWA7XG4gICAgICAgIGlmIChmb3JtYXQgPT09IDEyKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA+IDEyKSB7XG4gICAgICAgICAgICAgICAgcmVzID0gYCR7bWludXRlfSBQTWA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXMgPSBgJHttaW51dGV9IEFNYDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAobWludXRlLnRvU3RyaW5nKCkubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICByZXMgPSAnMCcuY29uY2F0KHJlcyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBUaW1lIG9iamVjdCBmcm9tIHRoZSBnaXZlbiBkYXRlLlxuICAgICAqIEBwYXJhbSB2YWx1ZSAtIFRoZSBkYXRlIHRvIGdldCB0aGUgdGltZSBvYmplY3QgZnJvbS5cbiAgICAgKiBAcmV0dXJucyBUaGUgVGltZSBvYmplY3QgYnVpbGQgZnJvbSB0aGUgZGF0ZSB2YWx1ZS5cbiAgICAgKi9cbiAgICBzdGF0aWMgZ2V0VGltZUZyb21EYXRlKHZhbHVlPzogRGF0ZSk6IFRpbWUgfCB1bmRlZmluZWQge1xuICAgICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBob3VyczogbmV3IERhdGUodmFsdWUpLmdldEhvdXJzKCksXG4gICAgICAgICAgICAgICAgbWludXRlczogbmV3IERhdGUodmFsdWUpLmdldE1pbnV0ZXMoKVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIGRhdGVzIGJldHdlZW4gdGhlIHR3byBnaXZlbiBnYXRlcy4gRG9lcyBhZGRpdGlvbmFsIGZpbHRlcmluZyBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgRGF0ZVJhbmdlIG1ldGFkYXRhLlxuICAgICAqIEBwYXJhbSBzdGFydERhdGUgLSBUaGUgc3RhcnQgZGF0ZS5cbiAgICAgKiBAcGFyYW0gZW5kRGF0ZSAtIFRoZSBlbmQgZGF0ZS5cbiAgICAgKiBAcGFyYW0gZmlsdGVyIC0gVGhlIGN1c3RvbSBmaWx0ZXIgZnJvbSB0aGUgbWV0YWRhdGEuXG4gICAgICogQHJldHVybnMgQWxsIGRhdGVzIGJldHdlZW4gdGhlIHR3byBwcm92aWRlZCBkYXRlcy4gSW5jbHVkZXMgc3RhcnQgYW5kIGVuZCBkYXRlLlxuICAgICAqL1xuICAgIHN0YXRpYyBnZXREYXRlc0JldHdlZW4oXG4gICAgICAgIHN0YXJ0RGF0ZTogRGF0ZSxcbiAgICAgICAgZW5kRGF0ZTogRGF0ZSxcbiAgICAgICAgZmlsdGVyPzogRGF0ZUZpbHRlckZuPERhdGU+XG4gICAgKTogRGF0ZVtdIHtcbiAgICAgICAgY29uc3QgcmVzOiBEYXRlW10gPSBbXTtcbiAgICAgICAgd2hpbGUgKFxuICAgICAgICAgICAgc3RhcnREYXRlLmdldEZ1bGxZZWFyKCkgPCBlbmREYXRlLmdldEZ1bGxZZWFyKClcbiAgICAgICAgICAgIHx8IHN0YXJ0RGF0ZS5nZXRNb250aCgpIDwgZW5kRGF0ZS5nZXRNb250aCgpXG4gICAgICAgICAgICB8fCBzdGFydERhdGUuZ2V0RGF0ZSgpIDw9IGVuZERhdGUuZ2V0RGF0ZSgpXG4gICAgICAgICkge1xuICAgICAgICAgICAgcmVzLnB1c2gobmV3IERhdGUoc3RhcnREYXRlKSk7XG4gICAgICAgICAgICBzdGFydERhdGUuc2V0VGltZShzdGFydERhdGUuZ2V0VGltZSgpICsgREFZX0lOX01TKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZmlsdGVyKSB7XG4gICAgICAgICAgICByZXR1cm4gcmVzLmZpbHRlcihkID0+IGZpbHRlcihkKSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gcmVzO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0IGFsbCB2YWxpZCB0aW1lcyBmb3IgdGhlIGRyb3Bkb3duIG9mIGEgZGF0ZXRpbWUgcHJvcGVydHkuXG4gICAgICogQHBhcmFtIHRpbWVzIC0gQWxsIGdpdmVuIHRpbWVzIHRvIGZpbHRlci5cbiAgICAgKiBAcGFyYW0gZGF0ZSAtIFRoZSBkYXRlIG9mIHRoZSBkYXRldGltZS5cbiAgICAgKiBAcGFyYW0gbWluIC0gVGhlIGZ1bmN0aW9uIHRoYXQgZGVmaW5lcyB0aGUgbWluaW11bSB0aW1lLlxuICAgICAqIEBwYXJhbSBtYXggLSBUaGUgZnVuY3Rpb24gdGhhdCBkZWZpbmVzIHRoZSBtYXhpbXVtIHRpbWUuXG4gICAgICogQHBhcmFtIGZpbHRlciAtIEEgZmlsdGVyIGZ1bmN0aW9uIHRvIGRvIG1vcmUgc3BlY2lmaWMgdGltZSBmaWx0ZXJpbmcuIFRoaXMgY291bGQgYmUgZS5nLiBUaGUgcmVtb3ZhbCBvZiBsdW5jaCBicmVha3MuXG4gICAgICogQHJldHVybnMgQWxsIHZhbGlkIGRyb3Bkb3duIHZhbHVlcyBmb3IgdGhlIGRhdGV0aW1lIHByb3BlcnR5LlxuICAgICAqL1xuICAgIHN0YXRpYyBnZXRWYWxpZFRpbWVzRm9yRHJvcGRvd24oXG4gICAgICAgIHRpbWVzOiBEcm9wZG93blZhbHVlPFRpbWUgfCB1bmRlZmluZWQ+W10sXG4gICAgICAgIGRhdGU/OiBEYXRlLFxuICAgICAgICBtaW4/OiAoZGF0ZT86IERhdGUpID0+IFRpbWUsXG4gICAgICAgIG1heD86IChkYXRlPzogRGF0ZSkgPT4gVGltZSxcbiAgICAgICAgZmlsdGVyPzogKCh0aW1lOiBUaW1lKSA9PiBib29sZWFuKSB8ICgoKSA9PiBib29sZWFuKVxuICAgICk6IERyb3Bkb3duVmFsdWU8VGltZSB8IHVuZGVmaW5lZD5bXSB7XG4gICAgICAgIGlmIChtaW4pIHtcbiAgICAgICAgICAgIGNvbnN0IG1pblRpbWU6IFRpbWUgPSBtaW4oZGF0ZSk7XG4gICAgICAgICAgICB0aW1lcyA9IHRpbWVzLmZpbHRlcih0ID0+XG4gICAgICAgICAgICAgICAgIXQudmFsdWVcbiAgICAgICAgICAgICAgICB8fCB0LnZhbHVlLmhvdXJzID4gbWluVGltZS5ob3Vyc1xuICAgICAgICAgICAgICAgIHx8IChcbiAgICAgICAgICAgICAgICAgICAgdC52YWx1ZS5ob3VycyA9PT0gbWluVGltZS5ob3Vyc1xuICAgICAgICAgICAgICAgICAgICAmJiB0LnZhbHVlLm1pbnV0ZXMgPj0gbWluVGltZS5taW51dGVzXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobWF4KSB7XG4gICAgICAgICAgICBjb25zdCBtYXhUaW1lOiBUaW1lID0gbWF4KGRhdGUpO1xuICAgICAgICAgICAgdGltZXMgPSB0aW1lcy5maWx0ZXIodCA9PlxuICAgICAgICAgICAgICAgICF0LnZhbHVlXG4gICAgICAgICAgICAgICAgfHwgdC52YWx1ZS5ob3VycyA8IG1heFRpbWUuaG91cnNcbiAgICAgICAgICAgICAgICB8fCAoXG4gICAgICAgICAgICAgICAgICAgIHQudmFsdWUuaG91cnMgPT09IG1heFRpbWUuaG91cnNcbiAgICAgICAgICAgICAgICAgICAgJiYgdC52YWx1ZS5taW51dGVzIDw9IG1heFRpbWUubWludXRlc1xuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGZpbHRlcikge1xuICAgICAgICAgICAgdGltZXMgPSB0aW1lcy5maWx0ZXIodCA9PiAhdC52YWx1ZSB8fCBmaWx0ZXIodC52YWx1ZSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRpbWVzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiB0aGUgdGltZSBvYmplY3QgaGFzIHByb2Nlc3NhYmxlIGhvdXJzIGFuZCBtaW51dGVzIHByb3BlcnRpZXMuXG4gICAgICogRG9lc24ndCBjaGVjayBjdXN0b20gdmFsaWRhdG9ycyBsaWtlIG1pbi9tYXggZnJvbSB0aGUgbWV0YWRhdGEgY29uZmlndXJhdGlvbi5cbiAgICAgKiBAcGFyYW0gdGltZSAtIFRoZSB0aW1lIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIFdoZXRoZXIgb3Igbm90IHRoZSB0aW1lIG9iamVjdCBpcyB1bnByb2Nlc3NhYmxlLlxuICAgICAqL1xuICAgIHN0YXRpYyB0aW1lSXNVbnByb2Nlc3NhYmxlKHRpbWU/OiBUaW1lKTogYm9vbGVhbiB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIHRpbWU/LmhvdXJzID09IG51bGxcbiAgICAgICAgICAgIHx8IHR5cGVvZiB0aW1lLmhvdXJzICE9PSAnbnVtYmVyJ1xuICAgICAgICAgICAgfHwgTnVtYmVyLmlzTmFOKHRpbWUuaG91cnMpXG4gICAgICAgICAgICB8fCB0aW1lLm1pbnV0ZXMgPT0gbnVsbFxuICAgICAgICAgICAgfHwgdHlwZW9mIHRpbWUubWludXRlcyAhPT0gJ251bWJlcidcbiAgICAgICAgICAgIHx8IE51bWJlci5pc05hTih0aW1lLm1pbnV0ZXMpXG4gICAgICAgICkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbn0iXX0=
|
|
152
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS51dGlsaXRpZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbWF0ZXJpYWwtZW50aXR5L3NyYy91dGlsaXRpZXMvZGF0ZS51dGlsaXRpZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUdqRSxNQUFNLFNBQVMsR0FBVyxJQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUM7QUFPOUM7O0dBRUc7QUFDSCxNQUFNLE9BQWdCLGFBQWE7SUFFL0I7O09BRUc7SUFDSCxNQUFNLENBQUMsaUJBQWlCLEdBQTBDLFdBQVcsQ0FBQztJQUU5RTs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFjO1FBQ3hCLE9BQU8sS0FBYSxDQUFDO0lBQ3pCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILE1BQU0sQ0FBQyxlQUFlLENBQUMsU0FBa0IsRUFBRSxFQUFFLGNBQTJCLEVBQUU7UUFDdEUsTUFBTSxHQUFHLEdBQTBCLENBQUMsRUFBRSxXQUFXLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxTQUE0QixFQUFFLENBQUMsQ0FBQztRQUMvRixLQUFLLElBQUksSUFBSSxHQUFXLENBQUMsRUFBRSxJQUFJLEdBQUcsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFO1lBQzFDLEtBQUssSUFBSSxNQUFNLEdBQVcsQ0FBQyxFQUFFLE1BQU0sR0FBRyxFQUFFLEVBQUUsTUFBTSxJQUFJLFdBQVcsRUFBRTtnQkFDN0QsR0FBRyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsb0JBQW9CLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO2FBQ3RFO1NBQ0o7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNmLENBQUM7SUFF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QUFPLElBQUksQ0FBQyxLQUFLLEtBQUssUUFBUTtlQUM5QixNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7ZUFDeEIsSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJO2VBQ3BCLE9BQU8sSUFBSSxDQUFDLE9BQU8sS0FBSyxRQUFRO2VBQ2hDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUMvQjtZQUNFLE9BQU8sSUFBSSxDQUFDO1NBQ2Y7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGltZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBEYXRlRmlsdGVyRm4gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJztcblxuaW1wb3J0IHsgRHJvcGRvd25WYWx1ZSB9IGZyb20gJy4uL2RlY29yYXRvcnMvYmFzZS9kcm9wZG93bi12YWx1ZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgTG9kYXNoVXRpbGl0aWVzIH0gZnJvbSAnLi4vZW5jYXBzdWxhdGlvbi9sb2Rhc2gudXRpbGl0aWVzJztcbmltcG9ydCB7IGRlZmF1bHRUcnVlIH0gZnJvbSAnLi4vZnVuY3Rpb25zL2RlZmF1bHQtdHJ1ZS5mdW5jdGlvbic7XG5cblxuY29uc3QgREFZX0lOX01TOiBudW1iZXIgPSAxMDAwICogNjAgKiA2MCAqIDI0O1xuXG4vKipcbiAqIFZhbGlkIHN0ZXBzIGZyb20gb25lIHRpbWUgdmFsdWUgdG8gdGhlIG5leHQuIE5lZWRzIHRvIGJlIGFibGUgdG8gZGl2aWRlIDYwIG1pbnV0ZXMgd2l0aG91dCByZW1haW5kZXIuXG4gKi9cbnR5cGUgTWludXRlU3RlcHMgPSAxIHwgMiB8IDMgfCA0IHwgNSB8IDYgfCAxMCB8IDEyIHwgMTUgfCAyMCB8IDMwIHwgNjA7XG5cbi8qKlxuICogQ29udGFpbnMgSGVscGVyIEZ1bmN0aW9ucyBmb3IgaGFuZGxpbmcgZGF0ZSBwcm9wZXJ0aWVzLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRGF0ZVV0aWxpdGllcyB7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgZGVmYXVsdCBmaWx0ZXIgZnVuY3Rpb24gdG8gdXNlciB3aGVuIG5vbmUgd2FzIHByb3ZpZGVkIGJ5IHRoZSB1c2VyLlxuICAgICAqL1xuICAgIHN0YXRpYyBkZWZhdWx0RGF0ZUZpbHRlcjogRGF0ZUZpbHRlckZuPERhdGUgfCBudWxsIHwgdW5kZWZpbmVkPiA9IGRlZmF1bHRUcnVlO1xuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgZ2l2ZW4gdmFsdWUgYXMgYSBkYXRlIHZhbHVlLlxuICAgICAqIEBwYXJhbSB2YWx1ZSAtIFRoZSB2YWx1ZSB0byBnZXQgYXMgYSBkYXRlLlxuICAgICAqIEByZXR1cm5zIFRoZSBnaXZlbiB2YWx1ZSBhcyBhIGRhdGUuXG4gICAgICovXG4gICAgc3RhdGljIGFzRGF0ZSh2YWx1ZTogdW5rbm93bik6IERhdGUge1xuICAgICAgICByZXR1cm4gdmFsdWUgYXMgRGF0ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBkZWZhdWx0IHRpbWVzIHVzZWQgYnkgdGhlIERhdGVUaW1lIHBpY2tlciB3aGVuIG5vdGhpbmcgaXMgc3BlY2lmaWVkIGJ5IHRoZSB1c2VyLlxuICAgICAqIEBwYXJhbSBmb3JtYXQgLSBUaGUgdGltZSBmb3JtYXQuIERlZmF1bHRzIHRvIDI0LlxuICAgICAqIEBwYXJhbSBtaW51dGVTdGVwcyAtIFRoZSBzdGVwcyBmcm9tIG9uZSB0aW1lIHZhbHVlIHRvIHRoZSBuZXh0LiBEZWZhdWx0cyB0byAzMC5cbiAgICAgKiBAcmV0dXJucyBUaW1lcyBpbiB0aGUgMjQgaG91ciBmb3JtYXQgZnJvbSAwOjAwIHVudGlsIDIzOjMwIGluIDMwIG1pbnV0ZSBzdGVwcy5cbiAgICAgKi9cbiAgICBzdGF0aWMgZ2V0RGVmYXVsdFRpbWVzKGZvcm1hdDogMTIgfCAyNCA9IDI0LCBtaW51dGVTdGVwczogTWludXRlU3RlcHMgPSAzMCk6IERyb3Bkb3duVmFsdWU8VGltZT5bXSB7XG4gICAgICAgIGNvbnN0IHJlczogRHJvcGRvd25WYWx1ZTxUaW1lPltdID0gW3sgZGlzcGxheU5hbWU6ICctJywgdmFsdWU6IHVuZGVmaW5lZCBhcyB1bmtub3duIGFzIFRpbWUgfV07XG4gICAgICAgIGZvciAobGV0IGhvdXI6IG51bWJlciA9IDA7IGhvdXIgPCAyNDsgaG91cisrKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBtaW51dGU6IG51bWJlciA9IDA7IG1pbnV0ZSA8IDYwOyBtaW51dGUgKz0gbWludXRlU3RlcHMpIHtcbiAgICAgICAgICAgICAgICByZXMucHVzaChEYXRlVXRpbGl0aWVzLmdldFRpbWVEcm9wZG93blZhbHVlKGZvcm1hdCwgaG91ciwgbWludXRlKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyBnZXRUaW1lRHJvcGRvd25WYWx1ZShmb3JtYXQ6IDEyIHwgMjQsIGhvdXI6IG51bWJlciwgbWludXRlOiBudW1iZXIpOiBEcm9wZG93blZhbHVlPFRpbWU+IHtcbiAgICAgICAgY29uc3QgZGlzcGxheUhvdXI6IG51bWJlciA9IERhdGVVdGlsaXRpZXMuZ2V0Rm9ybWF0dGVkSG91cihmb3JtYXQsIExvZGFzaFV0aWxpdGllcy5jbG9uZURlZXAoaG91cikpO1xuICAgICAgICBjb25zdCBkaXNwbGF5TWludXRlOiBzdHJpbmcgPSBEYXRlVXRpbGl0aWVzLmdldEZvcm1hdHRlZE1pbnV0ZShmb3JtYXQsIGhvdXIsIG1pbnV0ZSk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBkaXNwbGF5TmFtZTogYCR7ZGlzcGxheUhvdXJ9OiR7ZGlzcGxheU1pbnV0ZX1gLFxuICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgICBob3VyczogaG91cixcbiAgICAgICAgICAgICAgICBtaW51dGVzOiBtaW51dGVcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyBnZXRGb3JtYXR0ZWRIb3VyKGZvcm1hdDogMTIgfCAyNCwgaG91cjogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgaWYgKGZvcm1hdCA9PT0gMTIgJiYgaG91ciA+IDEyKSB7XG4gICAgICAgICAgICBob3VyIC09IDEyO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBob3VyO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIGdldEZvcm1hdHRlZE1pbnV0ZShmb3JtYXQ6IDEyIHwgMjQsIGhvdXI6IG51bWJlciwgbWludXRlOiBudW1iZXIpOiBzdHJpbmcge1xuICAgICAgICBsZXQgcmVzOiBzdHJpbmcgPSBgJHttaW51dGV9YDtcbiAgICAgICAgaWYgKGZvcm1hdCA9PT0gMTIpIHtcbiAgICAgICAgICAgIGlmIChob3VyID4gMTIpIHtcbiAgICAgICAgICAgICAgICByZXMgPSBgJHttaW51dGV9IFBNYDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHJlcyA9IGAke21pbnV0ZX0gQU1gO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChtaW51dGUudG9TdHJpbmcoKS5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICAgIHJlcyA9ICcwJy5jb25jYXQocmVzKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIFRpbWUgb2JqZWN0IGZyb20gdGhlIGdpdmVuIGRhdGUuXG4gICAgICogQHBhcmFtIHZhbHVlIC0gVGhlIGRhdGUgdG8gZ2V0IHRoZSB0aW1lIG9iamVjdCBmcm9tLlxuICAgICAqIEByZXR1cm5zIFRoZSBUaW1lIG9iamVjdCBidWlsZCBmcm9tIHRoZSBkYXRlIHZhbHVlLlxuICAgICAqL1xuICAgIHN0YXRpYyBnZXRUaW1lRnJvbURhdGUodmFsdWU/OiBEYXRlKTogVGltZSB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGhvdXJzOiBuZXcgRGF0ZSh2YWx1ZSkuZ2V0SG91cnMoKSxcbiAgICAgICAgICAgICAgICBtaW51dGVzOiBuZXcgRGF0ZSh2YWx1ZSkuZ2V0TWludXRlcygpXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgZGF0ZXMgYmV0d2VlbiB0aGUgdHdvIGdpdmVuIGdhdGVzLiBEb2VzIGFkZGl0aW9uYWwgZmlsdGVyaW5nIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBEYXRlUmFuZ2UgbWV0YWRhdGEuXG4gICAgICogQHBhcmFtIHN0YXJ0RGF0ZSAtIFRoZSBzdGFydCBkYXRlLlxuICAgICAqIEBwYXJhbSBlbmREYXRlIC0gVGhlIGVuZCBkYXRlLlxuICAgICAqIEBwYXJhbSBmaWx0ZXIgLSBUaGUgY3VzdG9tIGZpbHRlciBmcm9tIHRoZSBtZXRhZGF0YS5cbiAgICAgKiBAcmV0dXJucyBBbGwgZGF0ZXMgYmV0d2VlbiB0aGUgdHdvIHByb3ZpZGVkIGRhdGVzLiBJbmNsdWRlcyBzdGFydCBhbmQgZW5kIGRhdGUuXG4gICAgICovXG4gICAgc3RhdGljIGdldERhdGVzQmV0d2VlbihcbiAgICAgICAgc3RhcnREYXRlOiBEYXRlLFxuICAgICAgICBlbmREYXRlOiBEYXRlLFxuICAgICAgICBmaWx0ZXI/OiBEYXRlRmlsdGVyRm48RGF0ZT5cbiAgICApOiBEYXRlW10ge1xuICAgICAgICBjb25zdCByZXM6IERhdGVbXSA9IFtdO1xuICAgICAgICB3aGlsZSAoXG4gICAgICAgICAgICBzdGFydERhdGUuZ2V0RnVsbFllYXIoKSA8IGVuZERhdGUuZ2V0RnVsbFllYXIoKVxuICAgICAgICAgICAgfHwgc3RhcnREYXRlLmdldE1vbnRoKCkgPCBlbmREYXRlLmdldE1vbnRoKClcbiAgICAgICAgICAgIHx8IHN0YXJ0RGF0ZS5nZXREYXRlKCkgPD0gZW5kRGF0ZS5nZXREYXRlKClcbiAgICAgICAgKSB7XG4gICAgICAgICAgICByZXMucHVzaChuZXcgRGF0ZShzdGFydERhdGUpKTtcbiAgICAgICAgICAgIHN0YXJ0RGF0ZS5zZXRUaW1lKHN0YXJ0RGF0ZS5nZXRUaW1lKCkgKyBEQVlfSU5fTVMpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChmaWx0ZXIpIHtcbiAgICAgICAgICAgIHJldHVybiByZXMuZmlsdGVyKGQgPT4gZmlsdGVyKGQpKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiByZXM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXQgYWxsIHZhbGlkIHRpbWVzIGZvciB0aGUgZHJvcGRvd24gb2YgYSBkYXRldGltZSBwcm9wZXJ0eS5cbiAgICAgKiBAcGFyYW0gdGltZXMgLSBBbGwgZ2l2ZW4gdGltZXMgdG8gZmlsdGVyLlxuICAgICAqIEBwYXJhbSBkYXRlIC0gVGhlIGRhdGUgb2YgdGhlIGRhdGV0aW1lLlxuICAgICAqIEBwYXJhbSBtaW4gLSBUaGUgZnVuY3Rpb24gdGhhdCBkZWZpbmVzIHRoZSBtaW5pbXVtIHRpbWUuXG4gICAgICogQHBhcmFtIG1heCAtIFRoZSBmdW5jdGlvbiB0aGF0IGRlZmluZXMgdGhlIG1heGltdW0gdGltZS5cbiAgICAgKiBAcGFyYW0gZmlsdGVyIC0gQSBmaWx0ZXIgZnVuY3Rpb24gdG8gZG8gbW9yZSBzcGVjaWZpYyB0aW1lIGZpbHRlcmluZy4gVGhpcyBjb3VsZCBiZSBlLmcuIFRoZSByZW1vdmFsIG9mIGx1bmNoIGJyZWFrcy5cbiAgICAgKiBAcmV0dXJucyBBbGwgdmFsaWQgZHJvcGRvd24gdmFsdWVzIGZvciB0aGUgZGF0ZXRpbWUgcHJvcGVydHkuXG4gICAgICovXG4gICAgc3RhdGljIGdldFZhbGlkVGltZXNGb3JEcm9wZG93bihcbiAgICAgICAgdGltZXM6IERyb3Bkb3duVmFsdWU8VGltZSB8IHVuZGVmaW5lZD5bXSxcbiAgICAgICAgZGF0ZT86IERhdGUsXG4gICAgICAgIG1pbj86IChkYXRlPzogRGF0ZSkgPT4gVGltZSxcbiAgICAgICAgbWF4PzogKGRhdGU/OiBEYXRlKSA9PiBUaW1lLFxuICAgICAgICBmaWx0ZXI/OiAoKHRpbWU6IFRpbWUpID0+IGJvb2xlYW4pIHwgKCgpID0+IGJvb2xlYW4pXG4gICAgKTogRHJvcGRvd25WYWx1ZTxUaW1lIHwgdW5kZWZpbmVkPltdIHtcbiAgICAgICAgaWYgKG1pbikge1xuICAgICAgICAgICAgY29uc3QgbWluVGltZTogVGltZSA9IG1pbihkYXRlKTtcbiAgICAgICAgICAgIHRpbWVzID0gdGltZXMuZmlsdGVyKHQgPT5cbiAgICAgICAgICAgICAgICAhdC52YWx1ZVxuICAgICAgICAgICAgICAgIHx8IHQudmFsdWUuaG91cnMgPiBtaW5UaW1lLmhvdXJzXG4gICAgICAgICAgICAgICAgfHwgKFxuICAgICAgICAgICAgICAgICAgICB0LnZhbHVlLmhvdXJzID09PSBtaW5UaW1lLmhvdXJzXG4gICAgICAgICAgICAgICAgICAgICYmIHQudmFsdWUubWludXRlcyA+PSBtaW5UaW1lLm1pbnV0ZXNcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGlmIChtYXgpIHtcbiAgICAgICAgICAgIGNvbnN0IG1heFRpbWU6IFRpbWUgPSBtYXgoZGF0ZSk7XG4gICAgICAgICAgICB0aW1lcyA9IHRpbWVzLmZpbHRlcih0ID0+XG4gICAgICAgICAgICAgICAgIXQudmFsdWVcbiAgICAgICAgICAgICAgICB8fCB0LnZhbHVlLmhvdXJzIDwgbWF4VGltZS5ob3Vyc1xuICAgICAgICAgICAgICAgIHx8IChcbiAgICAgICAgICAgICAgICAgICAgdC52YWx1ZS5ob3VycyA9PT0gbWF4VGltZS5ob3Vyc1xuICAgICAgICAgICAgICAgICAgICAmJiB0LnZhbHVlLm1pbnV0ZXMgPD0gbWF4VGltZS5taW51dGVzXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZmlsdGVyKSB7XG4gICAgICAgICAgICB0aW1lcyA9IHRpbWVzLmZpbHRlcih0ID0+ICF0LnZhbHVlIHx8IGZpbHRlcih0LnZhbHVlKSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGltZXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIHRoZSB0aW1lIG9iamVjdCBoYXMgcHJvY2Vzc2FibGUgaG91cnMgYW5kIG1pbnV0ZXMgcHJvcGVydGllcy5cbiAgICAgKiBEb2Vzbid0IGNoZWNrIGN1c3RvbSB2YWxpZGF0b3JzIGxpa2UgbWluL21heCBmcm9tIHRoZSBtZXRhZGF0YSBjb25maWd1cmF0aW9uLlxuICAgICAqIEBwYXJhbSB0aW1lIC0gVGhlIHRpbWUgdG8gY2hlY2suXG4gICAgICogQHJldHVybnMgV2hldGhlciBvciBub3QgdGhlIHRpbWUgb2JqZWN0IGlzIHVucHJvY2Vzc2FibGUuXG4gICAgICovXG4gICAgc3RhdGljIHRpbWVJc1VucHJvY2Vzc2FibGUodGltZT86IFRpbWUpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgdGltZT8uaG91cnMgPT0gbnVsbFxuICAgICAgICAgICAgfHwgdHlwZW9mIHRpbWUuaG91cnMgIT09ICdudW1iZXInXG4gICAgICAgICAgICB8fCBOdW1iZXIuaXNOYU4odGltZS5ob3VycylcbiAgICAgICAgICAgIHx8IHRpbWUubWludXRlcyA9PSBudWxsXG4gICAgICAgICAgICB8fCB0eXBlb2YgdGltZS5taW51dGVzICE9PSAnbnVtYmVyJ1xuICAgICAgICAgICAgfHwgTnVtYmVyLmlzTmFOKHRpbWUubWludXRlcylcbiAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxufSJdfQ==
|