@ardium-ui/ui 1.0.0 → 1.0.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/esm2022/lib/_internal/boolean-component.mjs +1 -1
- package/esm2022/lib/_internal/clear-button/clear-button.component.mjs +1 -1
- package/esm2022/lib/_internal/clear-button/clear-button.module.mjs +1 -1
- package/esm2022/lib/_internal/disablable-component.mjs +1 -1
- package/esm2022/lib/_internal/focusable-component.mjs +1 -1
- package/esm2022/lib/_internal/item-storages/dropdown-item-storage.mjs +1 -1
- package/esm2022/lib/_internal/item-storages/simple-item-storage.mjs +1 -1
- package/esm2022/lib/_internal/item-storages/simplest-item-storage.mjs +1 -1
- package/esm2022/lib/_internal/models/pagination.model.mjs +1 -1
- package/esm2022/lib/_internal/ngmodel-component.mjs +1 -1
- package/esm2022/lib/_internal/queue.mjs +1 -1
- package/esm2022/lib/_internal/selectable-list-component.mjs +1 -1
- package/esm2022/lib/badge/badge.directive.mjs +1 -1
- package/esm2022/lib/badge/badge.module.mjs +1 -1
- package/esm2022/lib/badge/badge.types.mjs +1 -1
- package/esm2022/lib/buttons/_button-base.mjs +1 -1
- package/esm2022/lib/buttons/button/button.component.mjs +1 -1
- package/esm2022/lib/buttons/button/button.module.mjs +1 -1
- package/esm2022/lib/buttons/fab/fab.component.mjs +1 -1
- package/esm2022/lib/buttons/fab/fab.module.mjs +1 -1
- package/esm2022/lib/buttons/general-button.types.mjs +1 -1
- package/esm2022/lib/buttons/icon-button/icon-button.component.mjs +1 -1
- package/esm2022/lib/buttons/icon-button/icon-button.module.mjs +1 -1
- package/esm2022/lib/calendar/calendar.component.mjs +2 -5
- package/esm2022/lib/calendar/calendar.directives.mjs +1 -1
- package/esm2022/lib/calendar/calendar.helpers.mjs +1 -1
- package/esm2022/lib/calendar/calendar.module.mjs +1 -1
- package/esm2022/lib/calendar/calendar.types.mjs +1 -1
- package/esm2022/lib/card/card.children.mjs +1 -1
- package/esm2022/lib/card/card.component.mjs +1 -1
- package/esm2022/lib/card/card.module.mjs +1 -1
- package/esm2022/lib/card/card.types.mjs +1 -1
- package/esm2022/lib/checkbox/checkbox.component.mjs +1 -1
- package/esm2022/lib/checkbox/checkbox.module.mjs +1 -1
- package/esm2022/lib/checkbox/checkbox.types.mjs +1 -1
- package/esm2022/lib/checkbox-list/checkbox-list.component.mjs +1 -1
- package/esm2022/lib/checkbox-list/checkbox-list.module.mjs +1 -1
- package/esm2022/lib/checkbox-list/checkbox-list.types.mjs +1 -1
- package/esm2022/lib/chip/chip.component.mjs +1 -1
- package/esm2022/lib/chip/chip.module.mjs +1 -1
- package/esm2022/lib/chip/deletable-chip/deletable-chip.component.mjs +1 -1
- package/esm2022/lib/chip/selectable-chip/selectable-chip.component.mjs +1 -1
- package/esm2022/lib/color/color-display/color-display.component.mjs +1 -1
- package/esm2022/lib/color/color-display/color-display.module.mjs +1 -1
- package/esm2022/lib/color/color-display/color-display.types.mjs +1 -1
- package/esm2022/lib/color/color-picker/color-picker.component.mjs +1 -1
- package/esm2022/lib/color/color-picker/color-picker.directives.mjs +1 -1
- package/esm2022/lib/color/color-picker/color-picker.module.mjs +1 -1
- package/esm2022/lib/color/color-picker/color-picker.types.mjs +1 -1
- package/esm2022/lib/dialog/dialog.component.mjs +1 -1
- package/esm2022/lib/dialog/dialog.directives.mjs +1 -1
- package/esm2022/lib/dialog/dialog.module.mjs +1 -1
- package/esm2022/lib/dialog/dialog.types.mjs +1 -1
- package/esm2022/lib/divider/divider.component.mjs +1 -1
- package/esm2022/lib/divider/divider.module.mjs +1 -1
- package/esm2022/lib/dropdown-panel/dropdown-panel.component.mjs +1 -1
- package/esm2022/lib/dropdown-panel/dropdown-panel.module.mjs +1 -1
- package/esm2022/lib/dropdown-panel/dropdown-panel.types.mjs +1 -1
- package/esm2022/lib/file-inputs/file-drop-area/file-drop-area.component.mjs +1 -1
- package/esm2022/lib/file-inputs/file-drop-area/file-drop-area.directives.mjs +1 -1
- package/esm2022/lib/file-inputs/file-drop-area/file-drop-area.module.mjs +1 -1
- package/esm2022/lib/file-inputs/file-input/file-input.component.mjs +1 -1
- package/esm2022/lib/file-inputs/file-input/file-input.directives.mjs +1 -1
- package/esm2022/lib/file-inputs/file-input/file-input.module.mjs +1 -1
- package/esm2022/lib/file-inputs/file-input-base.mjs +1 -1
- package/esm2022/lib/file-inputs/file-input-types.mjs +1 -1
- package/esm2022/lib/form-field-frame/form-field-frame.component.mjs +1 -1
- package/esm2022/lib/form-field-frame/form-field-frame.directives.mjs +1 -1
- package/esm2022/lib/form-field-frame/form-field-frame.module.mjs +1 -1
- package/esm2022/lib/icon/icon.component.mjs +1 -1
- package/esm2022/lib/icon/icon.module.mjs +1 -1
- package/esm2022/lib/icon/icon.pipe.mjs +1 -1
- package/esm2022/lib/inputs/color-input/color-input.component.mjs +1 -1
- package/esm2022/lib/inputs/color-input/color-input.directives.mjs +1 -1
- package/esm2022/lib/inputs/color-input/color-input.module.mjs +1 -1
- package/esm2022/lib/inputs/color-input/color-input.types.mjs +1 -1
- package/esm2022/lib/inputs/digit-input/digit-input.component.mjs +1 -1
- package/esm2022/lib/inputs/digit-input/digit-input.model.mjs +1 -1
- package/esm2022/lib/inputs/digit-input/digit-input.module.mjs +1 -1
- package/esm2022/lib/inputs/digit-input/digit-input.types.mjs +1 -1
- package/esm2022/lib/inputs/digit-input/digit-input.utils.mjs +1 -1
- package/esm2022/lib/inputs/hex-input/hex-input.component.mjs +2 -3
- package/esm2022/lib/inputs/hex-input/hex-input.directives.mjs +1 -1
- package/esm2022/lib/inputs/hex-input/hex-input.module.mjs +1 -1
- package/esm2022/lib/inputs/hex-input.model.mjs +1 -1
- package/esm2022/lib/inputs/input/input.component.mjs +1 -1
- package/esm2022/lib/inputs/input/input.directives.mjs +1 -1
- package/esm2022/lib/inputs/input/input.module.mjs +1 -1
- package/esm2022/lib/inputs/input-transformers.mjs +1 -1
- package/esm2022/lib/inputs/input-types.mjs +1 -1
- package/esm2022/lib/inputs/input-utils.mjs +1 -1
- package/esm2022/lib/inputs/number-input/number-input.component.mjs +2 -3
- package/esm2022/lib/inputs/number-input/number-input.directives.mjs +1 -1
- package/esm2022/lib/inputs/number-input/number-input.module.mjs +1 -1
- package/esm2022/lib/inputs/password-input/password-input.component.mjs +2 -3
- package/esm2022/lib/inputs/password-input/password-input.directives.mjs +1 -1
- package/esm2022/lib/inputs/password-input/password-input.module.mjs +1 -1
- package/esm2022/lib/inputs/password-input/password-input.types.mjs +1 -1
- package/esm2022/lib/inputs/simple-input/simple-input.component.mjs +2 -3
- package/esm2022/lib/inputs/simple-input/simple-input.directives.mjs +1 -1
- package/esm2022/lib/inputs/simple-input/simple-input.module.mjs +1 -1
- package/esm2022/lib/kbd/kbd.component.mjs +1 -1
- package/esm2022/lib/kbd/kbd.module.mjs +1 -1
- package/esm2022/lib/kbd/kbd.pipe.mjs +1 -1
- package/esm2022/lib/kbd-shortcut/kbd-shortcut.component.mjs +1 -1
- package/esm2022/lib/kbd-shortcut/kbd-shortcut.module.mjs +1 -1
- package/esm2022/lib/modal/modal.component.mjs +1 -1
- package/esm2022/lib/modal/modal.module.mjs +1 -1
- package/esm2022/lib/option/option.component.mjs +1 -1
- package/esm2022/lib/option/option.module.mjs +1 -1
- package/esm2022/lib/progress-bar/progress-bar.component.mjs +1 -1
- package/esm2022/lib/progress-bar/progress-bar.directive.mjs +1 -1
- package/esm2022/lib/progress-bar/progress-bar.module.mjs +1 -1
- package/esm2022/lib/progress-bar/progress-bar.types.mjs +1 -1
- package/esm2022/lib/progress-circle/progress-circle.component.mjs +1 -1
- package/esm2022/lib/progress-circle/progress-circle.directive.mjs +1 -1
- package/esm2022/lib/progress-circle/progress-circle.module.mjs +1 -1
- package/esm2022/lib/progress-circle/progress-circle.types.mjs +1 -1
- package/esm2022/lib/radio/radio/radio.component.mjs +1 -1
- package/esm2022/lib/radio/radio-group.component.mjs +1 -1
- package/esm2022/lib/radio/radio.module.mjs +1 -1
- package/esm2022/lib/search-functions.mjs +1 -1
- package/esm2022/lib/segment/segment.component.mjs +1 -1
- package/esm2022/lib/segment/segment.directives.mjs +1 -1
- package/esm2022/lib/segment/segment.module.mjs +1 -1
- package/esm2022/lib/segment/segment.types.mjs +1 -1
- package/esm2022/lib/select/select.component.mjs +2 -4
- package/esm2022/lib/select/select.directive.mjs +1 -1
- package/esm2022/lib/select/select.module.mjs +1 -1
- package/esm2022/lib/select/select.types.mjs +1 -1
- package/esm2022/lib/slide-toggle/slide-toggle.component.mjs +1 -1
- package/esm2022/lib/slide-toggle/slide-toggle.module.mjs +1 -1
- package/esm2022/lib/slider/abstract-slider.mjs +1 -1
- package/esm2022/lib/slider/range-slider/range-slider.component.mjs +1 -1
- package/esm2022/lib/slider/range-slider/range-slider.module.mjs +1 -1
- package/esm2022/lib/slider/slider.component.mjs +1 -1
- package/esm2022/lib/slider/slider.directive.mjs +1 -1
- package/esm2022/lib/slider/slider.module.mjs +1 -1
- package/esm2022/lib/slider/slider.types.mjs +1 -1
- package/esm2022/lib/snackbar/snackbar-ref.mjs +1 -1
- package/esm2022/lib/snackbar/snackbar.component.mjs +1 -1
- package/esm2022/lib/snackbar/snackbar.service.mjs +1 -1
- package/esm2022/lib/snackbar/snackbar.token.mjs +1 -1
- package/esm2022/lib/snackbar/snackbar.types.mjs +1 -1
- package/esm2022/lib/spinner/spinner.component.mjs +1 -1
- package/esm2022/lib/spinner/spinner.module.mjs +1 -1
- package/esm2022/lib/star/star-button/star-button.component.mjs +1 -1
- package/esm2022/lib/star/star-button/star-button.module.mjs +1 -1
- package/esm2022/lib/star/star-display/star-display.component.mjs +1 -1
- package/esm2022/lib/star/star-display/star-display.module.mjs +1 -1
- package/esm2022/lib/star/star-input/star-input.component.mjs +1 -1
- package/esm2022/lib/star/star-input/star-input.module.mjs +1 -1
- package/esm2022/lib/star/star.component.mjs +1 -1
- package/esm2022/lib/star/star.module.mjs +1 -1
- package/esm2022/lib/star/star.types.mjs +1 -1
- package/esm2022/lib/statebox/statebox.component.mjs +1 -1
- package/esm2022/lib/statebox/statebox.module.mjs +1 -1
- package/esm2022/lib/statebox/statebox.types.mjs +1 -1
- package/esm2022/lib/table/table-item-storage.mjs +1 -1
- package/esm2022/lib/table/table.component.mjs +2 -2
- package/esm2022/lib/table/table.directives.mjs +1 -1
- package/esm2022/lib/table/table.module.mjs +1 -1
- package/esm2022/lib/table/table.types.mjs +1 -1
- package/esm2022/lib/table/utils.mjs +1 -1
- package/esm2022/lib/table-from-csv/table-from-csv.component.mjs +1 -1
- package/esm2022/lib/table-from-csv/table-from-csv.module.mjs +1 -1
- package/esm2022/lib/table-pagination/table-pagination.component.mjs +1 -1
- package/esm2022/lib/table-pagination/table-pagination.module.mjs +1 -1
- package/esm2022/lib/table-pagination/table-pagination.types.mjs +1 -1
- package/esm2022/lib/types/alignment.types.mjs +1 -1
- package/esm2022/lib/types/colors.types.mjs +1 -1
- package/esm2022/lib/types/item-storage.types.mjs +1 -1
- package/esm2022/lib/types/theming.types.mjs +1 -1
- package/esm2022/lib/types/utility.types.mjs +1 -1
- package/fesm2022/ardium-ui-ui.mjs +7 -16
- package/fesm2022/ardium-ui-ui.mjs.map +1 -1
- package/lib/color/color-picker/color-picker.component.d.ts +12 -12
- package/lib/inputs/color-input/color-input.component.d.ts +24 -24
- package/package.json +6 -2
- package/prebuilt-themes/default/badge.css.map +1 -1
- package/prebuilt-themes/default/buttons/button.css.map +1 -1
- package/prebuilt-themes/default/buttons/fab.css.map +1 -1
- package/prebuilt-themes/default/buttons/icon-button.css.map +1 -1
- package/prebuilt-themes/default/calendar.css.map +1 -1
- package/prebuilt-themes/default/card.css.map +1 -1
- package/prebuilt-themes/default/checkbox-list.css.map +1 -1
- package/prebuilt-themes/default/checkbox.css.map +1 -1
- package/prebuilt-themes/default/chips.css.map +1 -1
- package/prebuilt-themes/default/color-display.css.map +1 -1
- package/prebuilt-themes/default/color-picker.css.map +1 -1
- package/prebuilt-themes/default/core.css.map +1 -1
- package/prebuilt-themes/default/dialog.css.map +1 -1
- package/prebuilt-themes/default/divider.css.map +1 -1
- package/prebuilt-themes/default/dropdown-panel.css.map +1 -1
- package/prebuilt-themes/default/file-drop-area.css.map +1 -1
- package/prebuilt-themes/default/form-field-frame.css.map +1 -1
- package/prebuilt-themes/default/inputs/color-input.css.map +1 -1
- package/prebuilt-themes/default/inputs/digit-input.css.map +1 -1
- package/prebuilt-themes/default/inputs/file-input.css.map +1 -1
- package/prebuilt-themes/default/inputs/hex-input.css.map +1 -1
- package/prebuilt-themes/default/inputs/input.css.map +1 -1
- package/prebuilt-themes/default/inputs/number-input.css.map +1 -1
- package/prebuilt-themes/default/inputs/password-input.css.map +1 -1
- package/prebuilt-themes/default/inputs/search-bar.css.map +1 -1
- package/prebuilt-themes/default/inputs/simple-input.css.map +1 -1
- package/prebuilt-themes/default/kbd-shortcut.css.map +1 -1
- package/prebuilt-themes/default/kbd.css.map +1 -1
- package/prebuilt-themes/default/modal.css.map +1 -1
- package/prebuilt-themes/default/progress-bar.css.map +1 -1
- package/prebuilt-themes/default/progress-circle.css.map +1 -1
- package/prebuilt-themes/default/radio.css.map +1 -1
- package/prebuilt-themes/default/segment.css.map +1 -1
- package/prebuilt-themes/default/select.css.map +1 -1
- package/prebuilt-themes/default/slide-toggle.css.map +1 -1
- package/prebuilt-themes/default/slider.css.map +1 -1
- package/prebuilt-themes/default/snackbar.css.map +1 -1
- package/prebuilt-themes/default/spinner.css.map +1 -1
- package/prebuilt-themes/default/stars.css.map +1 -1
- package/prebuilt-themes/default/statebox.css.map +1 -1
- package/prebuilt-themes/default/table-pagination.css.map +1 -1
- package/prebuilt-themes/default/table.css.map +1 -1
- package/themes/default/_clear-button.scss +59 -59
- package/themes/default/_coloring.scss +133 -133
- package/themes/default/_dropdown-arrow.scss +8 -8
- package/themes/default/_mixins.scss +50 -50
- package/themes/default/badge.scss +79 -79
- package/themes/default/buttons/_button-mixins.scss +112 -112
- package/themes/default/buttons/button.scss +47 -47
- package/themes/default/buttons/fab.scss +53 -53
- package/themes/default/buttons/icon-button.scss +40 -40
- package/themes/default/calendar.scss +154 -154
- package/themes/default/card.scss +90 -90
- package/themes/default/checkbox-list.scss +67 -67
- package/themes/default/checkbox.scss +87 -87
- package/themes/default/chips.scss +167 -167
- package/themes/default/color-display.scss +29 -29
- package/themes/default/color-picker.scss +97 -97
- package/themes/default/core.scss +75 -75
- package/themes/default/dialog.scss +8 -8
- package/themes/default/divider.scss +7 -7
- package/themes/default/dropdown-panel.scss +33 -33
- package/themes/default/file-drop-area.scss +139 -139
- package/themes/default/form-field-frame.scss +59 -59
- package/themes/default/inputs/_shared.scss +34 -34
- package/themes/default/inputs/color-input.scss +30 -30
- package/themes/default/inputs/digit-input.scss +37 -37
- package/themes/default/inputs/file-input.scss +62 -62
- package/themes/default/inputs/hex-input.scss +16 -16
- package/themes/default/inputs/input.scss +34 -34
- package/themes/default/inputs/number-input.scss +95 -95
- package/themes/default/inputs/password-input.scss +31 -31
- package/themes/default/inputs/search-bar.scss +9 -9
- package/themes/default/inputs/simple-input.scss +9 -9
- package/themes/default/kbd-shortcut.scss +8 -8
- package/themes/default/kbd.scss +15 -15
- package/themes/default/modal.scss +75 -75
- package/themes/default/progress-bar.scss +140 -140
- package/themes/default/progress-circle.scss +43 -43
- package/themes/default/radio.scss +87 -87
- package/themes/default/segment.scss +283 -283
- package/themes/default/select.scss +226 -226
- package/themes/default/slide-toggle.scss +121 -121
- package/themes/default/slider.scss +206 -206
- package/themes/default/snackbar.scss +40 -40
- package/themes/default/spinner.scss +12 -12
- package/themes/default/stars.scss +93 -93
- package/themes/default/statebox.scss +91 -91
- package/themes/default/table-pagination.scss +44 -44
- package/themes/default/table.scss +345 -345
|
@@ -105,4 +105,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImpor
|
|
|
105
105
|
}], selectedChange: [{
|
|
106
106
|
type: Output
|
|
107
107
|
}] } });
|
|
108
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
108
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vbGVhbi1jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL19pbnRlcm5hbC9ib29sZWFuLWNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVwRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7QUFFNUQ7O0dBRUc7QUFFSCxNQUFNLE9BQWdCLHFCQUFzQixTQUFRLHFCQUFxQjtJQUR6RTs7UUFvQkUsVUFBVTtRQUNWOztXQUVHO1FBQ2UsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ3pEOztXQUVHO1FBQ2lCLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUM3RDs7V0FFRztRQUNlLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUU1RCxnQ0FBZ0M7UUFDaEMsdUNBQXVDO1FBQzdCLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFhckM7O1dBRUc7UUFDTyxtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7S0E2QnhEO0lBL0VDLDBCQUEwQjtJQUMxQixVQUFVLENBQUMsQ0FBTTtRQUNmLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO0lBQ3BCLENBQUM7SUFDRCxrQkFBa0I7SUFDbEI7O09BRUc7SUFDTyxXQUFXO1FBQ25CLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUUxQyxJQUFJLElBQUksQ0FBQyxTQUFTO1lBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7O1lBQzNDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRW5DLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQW1CRDs7T0FFRztJQUNILElBR0ksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBQ0QsSUFBSSxRQUFRLENBQUMsQ0FBTTtRQUNqQixJQUFJLENBQUMsU0FBUyxHQUFHLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFNRDs7T0FFRztJQUNILGNBQWM7UUFDWixJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUVqQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTTtRQUNKLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDaEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFFdEIsSUFBSSxRQUFRLElBQUksSUFBSTtZQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUMzQyxDQUFDO0lBQ0Q7O09BRUc7SUFDSCxRQUFRO1FBQ04sTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUNoQyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUV2QixJQUFJLFFBQVEsSUFBSSxLQUFLO1lBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzVDLENBQUM7OEdBL0VtQixxQkFBcUI7a0dBQXJCLHFCQUFxQjs7MkZBQXJCLHFCQUFxQjtrQkFEMUMsU0FBUzs4QkF3QlUsV0FBVztzQkFBNUIsTUFBTTt1QkFBQyxRQUFRO2dCQUlJLGFBQWE7c0JBQWhDLE1BQU07dUJBQUMsVUFBVTtnQkFJQSxXQUFXO3NCQUE1QixNQUFNO3VCQUFDLFFBQVE7Z0JBV1osUUFBUTtzQkFIWCxLQUFLOztzQkFDTCxXQUFXO3VCQUFDLGVBQWU7O3NCQUMzQixXQUFXO3VCQUFDLG9CQUFvQjtnQkFVdkIsY0FBYztzQkFBdkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIElucHV0LCBPdXRwdXQsIERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYXJkaXVtLXVpL2RldmtpdCc7XG5pbXBvcnQgeyBfTmdNb2RlbENvbXBvbmVudEJhc2UgfSBmcm9tICcuL25nbW9kZWwtY29tcG9uZW50JztcblxuLyoqXG4gKiBDb21tb24gY29kZSBmb3IgY29tcG9uZW50cywgd2hpY2ggb25seSBvcGVyYXRlIG9uIHRoZSBcInNlbGVjdGVkXCIgc3RhdGUuXG4gKi9cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIF9Cb29sZWFuQ29tcG9uZW50QmFzZSBleHRlbmRzIF9OZ01vZGVsQ29tcG9uZW50QmFzZSBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgLy8hIGNvbnRyb2wgdmFsdWUgYWNjZXNzb3JcbiAgd3JpdGVWYWx1ZSh2OiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkID0gdjtcbiAgfVxuICAvL2VtaXR0ZXIgZnVuY3Rpb25cbiAgLyoqXG4gICAqIEVtaXRzIGFsbCBzZWxlY3Qtc3RhdGUtcmVsYXRlZCBldmVudHMuXG4gICAqL1xuICBwcm90ZWN0ZWQgX2VtaXRDaGFuZ2UoKSB7XG4gICAgdGhpcy5fb25DaGFuZ2VSZWdpc3RlcmVkPy4odGhpcy5zZWxlY3RlZCk7XG5cbiAgICBpZiAodGhpcy5fc2VsZWN0ZWQpIHRoaXMuc2VsZWN0RXZlbnQuZW1pdChudWxsKTtcbiAgICBlbHNlIHRoaXMudW5zZWxlY3RFdmVudC5lbWl0KG51bGwpO1xuXG4gICAgdGhpcy5zZWxlY3RlZENoYW5nZS5lbWl0KHRoaXMuc2VsZWN0ZWQpO1xuICAgIHRoaXMuY2hhbmdlRXZlbnQuZW1pdCh0aGlzLnNlbGVjdGVkKTtcbiAgfVxuXG4gIC8vISBldmVudHNcbiAgLyoqXG4gICAqIFRoZSBldmVudCBlbWl0dGVyIHJlc3BvbnNpYmxlIGZvciBmaXJpbmcgYHNlbGVjdGAgZXZlbnRzLiBGaXJlZCB3aGVuIHRoZSBgc2VsZWN0ZWRgIHN0YXRlIGlzIHNldCB0byB0cnVlLlxuICAgKi9cbiAgQE91dHB1dCgnc2VsZWN0Jykgc2VsZWN0RXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPG51bGw+KCk7XG4gIC8qKlxuICAgKiBUaGUgZXZlbnQgZW1pdHRlciByZXNwb25zaWJsZSBmb3IgZmlyaW5nIGB1bnNlbGVjdGAgZXZlbnRzLiBGaXJlZCB3aGVuIHRoZSBgc2VsZWN0ZWRgIHN0YXRlIGlzIHNldCB0byBmYWxzZS5cbiAgICovXG4gIEBPdXRwdXQoJ3Vuc2VsZWN0JykgdW5zZWxlY3RFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8bnVsbD4oKTtcbiAgLyoqXG4gICAqIFRoZSBldmVudCBlbWl0dGVyIHJlc3BvbnNpYmxlIGZvciBmaXJpbmcgYGNoYW5nZWAgZXZlbnRzLiBGaXJlZCB3aGVuIHRoZSBgc2VsZWN0ZWRgIHN0YXRlIGlzIGNoYW5nZWQuXG4gICAqL1xuICBAT3V0cHV0KCdjaGFuZ2UnKSBjaGFuZ2VFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAvLyEgWyhzZWxlY3RlZCldIHR3by13YXkgYmluZGluZ1xuICAvLyBjYW4gYmUgc2V0IHVzaW5nIGEgbm8tdmFsdWUgYXJndW1lbnRcbiAgcHJvdGVjdGVkIF9zZWxlY3RlZDogYm9vbGVhbiA9IGZhbHNlO1xuICAvKipcbiAgICogVGhlIHNlbGVjdGlvbiBzdGF0ZSBvZiB0aGUgY29tcG9uZW50LiBDb2VyY2libGUgaW50byBhIGJvb2xlYW4uXG4gICAqL1xuICBASW5wdXQoKVxuICBASG9zdEJpbmRpbmcoJ2F0dHIuc2VsZWN0ZWQnKVxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmFyZC1zZWxlY3RlZCcpXG4gIGdldCBzZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0ZWQ7XG4gIH1cbiAgc2V0IHNlbGVjdGVkKHY6IGFueSkge1xuICAgIHRoaXMuX3NlbGVjdGVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHYpO1xuICB9XG4gIC8qKlxuICAgKiBUaGUgZXZlbnQgZW1pdHRlciByZXNwb25zaWJsZSBmb3IgZmlyaW5nIGBzZWxlY3RlZENoYW5nZWAgZXZlbnRzLiBGaXJlZCB3aGVuIHRoZSBgc2VsZWN0ZWRgIHN0YXRlIGlzIGNoYW5nZWQuXG4gICAqL1xuICBAT3V0cHV0KCkgc2VsZWN0ZWRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgLyoqXG4gICAqIFRvZ2dsZXMgdGhlIHNlbGVjdGVkIHN0YXRlLiBFbWl0cyBhbGwgYXBwcm9wcmlhdGUgZXZlbnRzLlxuICAgKi9cbiAgdG9nZ2xlU2VsZWN0ZWQoKSB7XG4gICAgdGhpcy5fc2VsZWN0ZWQgPSAhdGhpcy5fc2VsZWN0ZWQ7XG5cbiAgICB0aGlzLl9lbWl0Q2hhbmdlKCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgc3RhdGUgdG8gXCJzZWxlY3RlZFwiLiBFbWl0cyBhbGwgYXBwcm9wcmlhdGUgZXZlbnRzIG9ubHkgaWYgdGhlIHN0YXRlIGNoYW5nZXMuXG4gICAqL1xuICBzZWxlY3QoKSB7XG4gICAgY29uc3Qgb2xkU3RhdGUgPSB0aGlzLl9zZWxlY3RlZDtcbiAgICB0aGlzLl9zZWxlY3RlZCA9IHRydWU7XG5cbiAgICBpZiAob2xkU3RhdGUgIT0gdHJ1ZSkgdGhpcy5fZW1pdENoYW5nZSgpO1xuICB9XG4gIC8qKlxuICAgKiBTZXRzIHRoZSBzdGF0ZSB0byBcInVuc2VsZWN0ZWRcIi4gRW1pdHMgYWxsIGFwcHJvcHJpYXRlIGV2ZW50cyBvbmx5IGlmIHRoZSBzdGF0ZSBjaGFuZ2VzLlxuICAgKi9cbiAgdW5zZWxlY3QoKSB7XG4gICAgY29uc3Qgb2xkU3RhdGUgPSB0aGlzLl9zZWxlY3RlZDtcbiAgICB0aGlzLl9zZWxlY3RlZCA9IGZhbHNlO1xuXG4gICAgaWYgKG9sZFN0YXRlICE9IGZhbHNlKSB0aGlzLl9lbWl0Q2hhbmdlKCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -9,4 +9,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImpor
|
|
|
9
9
|
type: Component,
|
|
10
10
|
args: [{ selector: 'ard-_clear-button', template: "<button #focusableElement\r\n class=\"ard-clear-btn-wrapper\"\r\n [tabindex]=\"tabIndex\"\r\n>\r\n <div class=\"ard-hitbox\"></div>\r\n <div class=\"ard-focus-overlay\"></div>\r\n <div class=\"ard-clear-btn\" aria-hidden=\"true\"></div>\r\n</button>" }]
|
|
11
11
|
}] });
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xlYXItYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvX2ludGVybmFsL2NsZWFyLWJ1dHRvbi9jbGVhci1idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9faW50ZXJuYWwvY2xlYXItYnV0dG9uL2NsZWFyLWJ1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDOztBQU9uRSxNQUFNLE9BQU8scUJBQXNCLFNBQVEsdUJBQXVCOzhHQUFyRCxxQkFBcUI7a0dBQXJCLHFCQUFxQixnRkNSbEMsMFFBT1M7OzJGRENJLHFCQUFxQjtrQkFMakMsU0FBUzsrQkFDRSxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IF9Gb2N1c2FibGVDb21wb25lbnRCYXNlIH0gZnJvbSAnLi8uLi9mb2N1c2FibGUtY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXJkLV9jbGVhci1idXR0b24nLFxuICB0ZW1wbGF0ZVVybDogJy4vY2xlYXItYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2xlYXItYnV0dG9uLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIF9DbGVhckJ1dHRvbkNvbXBvbmVudCBleHRlbmRzIF9Gb2N1c2FibGVDb21wb25lbnRCYXNlIHt9XG4iLCI8YnV0dG9uICNmb2N1c2FibGVFbGVtZW50XHJcbiAgICBjbGFzcz1cImFyZC1jbGVhci1idG4td3JhcHBlclwiXHJcbiAgICBbdGFiaW5kZXhdPVwidGFiSW5kZXhcIlxyXG4+XHJcbiAgICA8ZGl2IGNsYXNzPVwiYXJkLWhpdGJveFwiPjwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImFyZC1mb2N1cy1vdmVybGF5XCI+PC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiYXJkLWNsZWFyLWJ0blwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvZGl2PlxyXG48L2J1dHRvbj4iXX0=
|
|
@@ -15,4 +15,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImpor
|
|
|
15
15
|
exports: [_ClearButtonComponent],
|
|
16
16
|
}]
|
|
17
17
|
}] });
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xlYXItYnV0dG9uLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvX2ludGVybmFsL2NsZWFyLWJ1dHRvbi9jbGVhci1idXR0b24ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDOztBQU9qRSxNQUFNLE9BQU8sa0JBQWtCOzhHQUFsQixrQkFBa0I7K0dBQWxCLGtCQUFrQixpQkFKZCxxQkFBcUIsYUFDMUIsWUFBWSxhQUNaLHFCQUFxQjsrR0FFcEIsa0JBQWtCLFlBSG5CLFlBQVk7OzJGQUdYLGtCQUFrQjtrQkFMOUIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztvQkFDckMsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixPQUFPLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztpQkFDakMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IF9DbGVhckJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vY2xlYXItYnV0dG9uLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW19DbGVhckJ1dHRvbkNvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBleHBvcnRzOiBbX0NsZWFyQnV0dG9uQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgX0NsZWFyQnV0dG9uTW9kdWxlIHt9XG4iXX0=
|
|
@@ -41,4 +41,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImpor
|
|
|
41
41
|
type: HostBinding,
|
|
42
42
|
args: ['class.ard-disabled']
|
|
43
43
|
}] } });
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzYWJsYWJsZS1jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL19pbnRlcm5hbC9kaXNhYmxhYmxlLWNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7O0FBRzFELE1BQU0sT0FBZ0Isd0JBQXdCO0lBRDlDO1FBRUUsc0JBQXNCO1FBQ1osY0FBUyxHQUFZLEtBQUssQ0FBQztRQWMzQixjQUFTLEdBQVksS0FBSyxDQUFDO0tBYXRDO0lBMUJDLElBTUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBQ0QsSUFBSSxRQUFRLENBQUMsQ0FBTTtRQUNqQixJQUFJLENBQUMsU0FBUyxHQUFHLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFHRCxJQU1JLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN6QyxDQUFDO0lBQ0QsSUFBSSxRQUFRLENBQUMsQ0FBTTtRQUNqQixJQUFJLENBQUMsU0FBUyxHQUFHLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVDLENBQUM7OEdBNUJtQix3QkFBd0I7a0dBQXhCLHdCQUF3Qjs7MkZBQXhCLHdCQUF3QjtrQkFEN0MsU0FBUzs4QkFVSixRQUFRO3NCQU5YLEtBQUs7O3NCQUNMLFdBQVc7dUJBQUMsZUFBZTs7c0JBQzNCLFdBQVc7dUJBQUMsb0JBQW9CO2dCQWtCN0IsUUFBUTtzQkFOWCxLQUFLOztzQkFDTCxXQUFXO3VCQUFDLGVBQWU7O3NCQUMzQixXQUFXO3VCQUFDLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSG9zdEJpbmRpbmcsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYXJkaXVtLXVpL2RldmtpdCc7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIF9EaXNhYmxhYmxlQ29tcG9uZW50QmFzZSB7XG4gIC8vISBubyB2YWx1ZSBhcmd1bWVudHNcbiAgcHJvdGVjdGVkIF9yZWFkb25seTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKVxuICBASG9zdEJpbmRpbmcoJ2F0dHIucmVhZG9ubHknKVxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmFyZC1yZWFkb25seScpXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBjb21wb25lbnQgaXMgcmVhZC1vbmx5LiBEZWZpbmVzIHRoZSBgcmVhZG9ubHlgIGhvc3QgYXR0cmlidXRlIGFuZCBgYXJkLXJlYWRvbmx5YCBob3N0IGNsYXNzLiBDb2VhcmNpYmxlIGludG8gYSBib29sZWFuLlxuICAgKi9cbiAgZ2V0IHJlYWRvbmx5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9yZWFkb25seTtcbiAgfVxuICBzZXQgcmVhZG9ubHkodjogYW55KSB7XG4gICAgdGhpcy5fcmVhZG9ubHkgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodik7XG4gIH1cblxuICBwcm90ZWN0ZWQgX2Rpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpXG4gIEBIb3N0QmluZGluZygnYXR0ci5kaXNhYmxlZCcpXG4gIEBIb3N0QmluZGluZygnY2xhc3MuYXJkLWRpc2FibGVkJylcbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGNvbXBvbmVudCBpcyBkaXNhYmxlZC4gRGVmaW5lcyB0aGUgYGRpc2FibGVkYCBob3N0IGF0dHJpYnV0ZSBhbmQgYGFyZC1kaXNhYmxlZGAgaG9zdCBjbGFzcy4gQ29lYXJjaWJsZSBpbnRvIGEgYm9vbGVhbi5cbiAgICovXG4gIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5yZWFkb25seSB8fCB0aGlzLl9kaXNhYmxlZDtcbiAgfVxuICBzZXQgZGlzYWJsZWQodjogYW55KSB7XG4gICAgdGhpcy5fZGlzYWJsZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodik7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -88,4 +88,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImpor
|
|
|
88
88
|
type: Output,
|
|
89
89
|
args: ['blur']
|
|
90
90
|
}] } });
|
|
91
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXNhYmxlLWNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvX2ludGVybmFsL2ZvY3VzYWJsZS1jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBYSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDekQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBR2xFLE1BQU0sT0FBZ0IsdUJBQXdCLFNBQVEsd0JBQXdCO0lBRDlFOztRQStCRSxZQUFZO1FBQ0YsY0FBUyxHQUFXLENBQUMsQ0FBQztRQVloQyxVQUFVO1FBQ1Y7O1dBRUc7UUFDYyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQWMsQ0FBQztRQUM3RDs7V0FFRztRQUNhLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBYyxDQUFDO1FBRTNELHdCQUF3QjtRQUN4Qjs7V0FFRztRQUNJLGNBQVMsR0FBWSxLQUFLLENBQUM7S0FrQm5DO0lBdEVDOztPQUVHO0lBQ0ksS0FBSztRQUNWLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxLQUFLLEVBQUUsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3ZELENBQUM7SUFDRDs7T0FFRztJQUNJLFVBQVU7UUFDZixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDZixDQUFDO0lBQ0Q7O09BRUc7SUFDSSxTQUFTO1FBQ2QsSUFBSSxDQUFDLGlCQUFpQixFQUFFLElBQUksRUFBRSxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDdEQsQ0FBQztJQUNEOztPQUVHO0lBQ0ksSUFBSTtRQUNULElBQUksQ0FBQyxpQkFBaUIsRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUlEOztPQUVHO0lBQ0gsSUFDSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUM3QyxDQUFDO0lBQ0QsSUFBSSxRQUFRLENBQUMsQ0FBTTtRQUNqQixJQUFJLENBQUMsU0FBUyxHQUFHLG9CQUFvQixDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBa0JEOzs7T0FHRztJQUNILE9BQU8sQ0FBQyxLQUFpQjtRQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBQ0Q7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLEtBQWlCO1FBQ3RCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdCLENBQUM7OEdBMUVtQix1QkFBdUI7a0dBQXZCLHVCQUF1Qjs7MkZBQXZCLHVCQUF1QjtrQkFENUMsU0FBUzs4QkFJUyxpQkFBaUI7c0JBRGpDLFlBQVk7dUJBQUMsa0JBQWtCO2dCQWtDNUIsUUFBUTtzQkFEWCxLQUFLO2dCQVlXLFVBQVU7c0JBQTFCLE1BQU07dUJBQUMsT0FBTztnQkFJQyxTQUFTO3NCQUF4QixNQUFNO3VCQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgUXVlcnlMaXN0LCBWaWV3Q2hpbGRyZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNvZXJjZU51bWJlclByb3BlcnR5IH0gZnJvbSAnQGFyZGl1bS11aS9kZXZraXQnO1xuaW1wb3J0IHsgX0Rpc2FibGFibGVDb21wb25lbnRCYXNlIH0gZnJvbSAnLi9kaXNhYmxhYmxlLWNvbXBvbmVudCc7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIF9Gb2N1c2FibGVDb21wb25lbnRCYXNlIGV4dGVuZHMgX0Rpc2FibGFibGVDb21wb25lbnRCYXNlIHtcbiAgLy8hIG1ha2UgdGhlIGNvbXBvbmVudCBmb2N1c2FibGUgcHJvZ3JhbW1hdGljYWxseVxuICBAVmlld0NoaWxkcmVuKCdmb2N1c2FibGVFbGVtZW50JylcbiAgcHJpdmF0ZSByZWFkb25seSBfZm9jdXNhYmxlRWxlbWVudCE6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj47XG5cbiAgLyoqXG4gICAqIEZvY3VzZXMgdGhlIGNvcnJlY3QgZWxlbWVudCBpbiB0aGUgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIGZvY3VzKCk6IHZvaWQge1xuICAgIHRoaXMuX2ZvY3VzYWJsZUVsZW1lbnQ/LmZpcnN0Py5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gIH1cbiAgLyoqXG4gICAqIEZvY3VzZXMgdGhlIGZpcnN0IG9mIGFsbCBhdmFpbGFibGUgZWxlbWVudHMgaW4gdGhlIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBmb2N1c0ZpcnN0KCk6IHZvaWQge1xuICAgIHRoaXMuZm9jdXMoKTtcbiAgfVxuICAvKipcbiAgICogRm9jdXNlcyB0aGUgbGFzdCBvZiBhbGwgYXZhaWxhYmxlIGVsZW1lbnRzIGluIHRoZSBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgZm9jdXNMYXN0KCk6IHZvaWQge1xuICAgIHRoaXMuX2ZvY3VzYWJsZUVsZW1lbnQ/Lmxhc3Q/Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgfVxuICAvKipcbiAgICogQmx1cnMgYWxsIGZvY3VzYWJsZSBlbGVtZW50cyBpbiB0aGUgY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIGJsdXIoKTogdm9pZCB7XG4gICAgdGhpcy5fZm9jdXNhYmxlRWxlbWVudD8uZm9yRWFjaChlbCA9PiBlbC5uYXRpdmVFbGVtZW50LmJsdXIoKSk7XG4gIH1cblxuICAvLyEgdGFiaW5kZXhcbiAgcHJvdGVjdGVkIF90YWJJbmRleDogbnVtYmVyID0gMDtcbiAgLyoqXG4gICAqIFRoZSBjb21wb25lbnQncyBvdmVyYWxsIHRhYiBpbmRleC4gSWYgdGhlIGNvbXBvbmVudCBpcyBkaXNhYmxlZCwgaXQgaXMgYWx3YXlzIGAtMWAuIENvZXJjaWJsZSBpbnRvIGEgbnVtYmVyLCBkZWZhdWx0cyB0byBgMGAuXG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgdGFiSW5kZXgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5kaXNhYmxlZCA/IC0xIDogdGhpcy5fdGFiSW5kZXg7XG4gIH1cbiAgc2V0IHRhYkluZGV4KHY6IGFueSkge1xuICAgIHRoaXMuX3RhYkluZGV4ID0gY29lcmNlTnVtYmVyUHJvcGVydHkodiwgMCk7XG4gIH1cblxuICAvLyEgZXZlbnRzXG4gIC8qKlxuICAgKiBUaGUgZXZlbnQgZW1pdHRlciByZXNwb25zaWJsZSBmb3IgZmlyaW5nIGBmb2N1c2AgZXZlbnRzLlxuICAgKi9cbiAgQE91dHB1dCgnZm9jdXMnKSBmb2N1c0V2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxGb2N1c0V2ZW50PigpO1xuICAvKipcbiAgICogVGhlIGV2ZW50IGVtaXR0ZXIgcmVzcG9uc2libGUgZm9yIGZpcmluZyBgYmx1cmAgZXZlbnRzLlxuICAgKi9cbiAgQE91dHB1dCgnYmx1cicpIGJsdXJFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8Rm9jdXNFdmVudD4oKTtcblxuICAvLyEgZm9jdXMgZXZlbnQgaGFuZGxlcnNcbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGNvbXBvbmVudCBpcyBjdXJyZW50bHkgZm9jdXNlZC5cbiAgICovXG4gIHB1YmxpYyBpc0ZvY3VzZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogRnVuY3Rpb24gdG8gaGFuZGxlIHdoZW4gYW4gZWxlbWVudCBpcyBmb2N1c2VkLiBTZXRzIGBpc0ZvY3VzZWRgIGFuZCBmaXJlcyB0aGUgYGZvY3VzYCBldmVudC5cbiAgICogQHBhcmFtIGV2ZW50IFRoZSBmb2N1cyBldmVudCB0byBlbWl0LlxuICAgKi9cbiAgb25Gb2N1cyhldmVudDogRm9jdXNFdmVudCkge1xuICAgIHRoaXMuaXNGb2N1c2VkID0gdHJ1ZTtcbiAgICB0aGlzLmZvY3VzRXZlbnQuZW1pdChldmVudCk7XG4gIH1cbiAgLyoqXG4gICAqIEZ1bmN0aW9uIHRvIGhhbmRsZSB3aGVuIGFuIGVsZW1lbnQgaXMgYmx1cnJlZC4gU2V0cyBgaXNGb2N1c2VkYCBhbmQgZmlyZXMgdGhlIGBibHVyYCBldmVudC5cbiAgICogQHBhcmFtIGV2ZW50IFRoZSBmb2N1cyBldmVudCB0byBlbWl0LlxuICAgKi9cbiAgb25CbHVyKGV2ZW50OiBGb2N1c0V2ZW50KSB7XG4gICAgdGhpcy5pc0ZvY3VzZWQgPSBmYWxzZTtcbiAgICB0aGlzLmJsdXJFdmVudC5lbWl0KGV2ZW50KTtcbiAgfVxufVxuIl19
|
|
@@ -433,4 +433,4 @@ export class ItemStorage {
|
|
|
433
433
|
this._populateGroups();
|
|
434
434
|
}
|
|
435
435
|
}
|
|
436
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24taXRlbS1zdG9yYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9faW50ZXJuYWwvaXRlbS1zdG9yYWdlcy9kcm9wZG93bi1pdGVtLXN0b3JhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxXQUFXLE1BQU0scUJBQXFCLENBQUM7QUFDOUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQWlDbEcsTUFBTSxPQUFPLFdBQVc7SUFTcEIsWUFBb0IsY0FBK0I7UUFBL0IsbUJBQWMsR0FBZCxjQUFjLENBQWlCO1FBUjNDLFlBQU8sR0FBb0IsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDdkQsV0FBTSxHQUFnQixFQUFFLENBQUM7UUFDekIsbUJBQWMsR0FBZ0IsRUFBRSxDQUFDO1FBQ2pDLHNCQUFpQixHQUFnQixFQUFFLENBQUM7UUFDcEMsdUJBQWtCLEdBQXFCLEVBQUUsQ0FBQztRQUUxQyxtQkFBYyxHQUFnQixFQUFFLENBQUM7UUFxT2pDLDJCQUFzQixHQUFZLEtBQUssQ0FBQztJQW5PTSxDQUFDO0lBRXZELElBQUksTUFBTTtRQUNOLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO2FBQ3BDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUM7YUFDMUIsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBQ0QsSUFBSSxLQUFLO1FBQ0wsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3ZCLENB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QixFQUFFO1lBQzFDLFVBQVUsR0FBRyxVQUFVLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztTQUMvQztRQUVELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDO1FBQzlDLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7UUFFN0UsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBRXZCLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYztZQUFFLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDOztZQUMvQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUUvQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFDRCxhQUFhO1FBQ1QsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU07WUFBRSxPQUFPO1FBRTdELElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQzVELElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUNwRTthQUFNO1lBQ0gsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1NBQ3JDO1FBQ0QsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQzNCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFyZE9wdGlvbkdyb3VwLCBBcmRPcHRpb24sIEdyb3VwQnlGbiwgQXJkSXRlbUdyb3VwTWFwLCBTZWFyY2hGbiwgQ29tcGFyZVdpdGhGbiB9IGZyb20gJy4uLy4uL3R5cGVzL2l0ZW0tc3RvcmFnZS50eXBlcyc7XG5pbXBvcnQgcmVzb2x2ZVBhdGggZnJvbSAncmVzb2x2ZS1vYmplY3QtcGF0aCc7XG5pbXBvcnQgeyBhbnksIGV2YWx1YXRlLCBpc0FycmF5LCBpc0RlZmluZWQsIGlzT2JqZWN0LCBpc1ByaW1pdGl2ZSwgaXNQcm9taXNlIH0gZnJvbSAnc2ltcGxlLWJvb2wnO1xuaW1wb3J0IHsgQWRkQ3VzdG9tRm4gfSBmcm9tICcuLi8uLi9zZWxlY3Qvc2VsZWN0LnR5cGVzJztcblxuZXhwb3J0IGludGVyZmFjZSBJdGVtU3RvcmFnZUhvc3REZWZhdWx0cyB7XG4gICAgdmFsdWVGcm9tOiBzdHJpbmc7XG4gICAgbGFiZWxGcm9tOiBzdHJpbmc7XG4gICAgZGlzYWJsZWRGcm9tOiBzdHJpbmc7XG4gICAgZ3JvdXBMYWJlbEZyb206IHN0cmluZztcbiAgICBncm91cERpc2FibGVkRnJvbTogc3RyaW5nO1xuICAgIGNoaWxkcmVuRnJvbTogc3RyaW5nO1xuICAgIFtrZXk6IHN0cmluZ106IGFueTtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgSXRlbVN0b3JhZ2VIb3N0IHtcbiAgICB2YWx1ZUZyb20/OiBzdHJpbmc7XG4gICAgbGFiZWxGcm9tPzogc3RyaW5nO1xuICAgIGRpc2FibGVkRnJvbT86IHN0cmluZztcbiAgICBpbnZlcnREaXNhYmxlZD86IGJvb2xlYW47XG4gICAgZ3JvdXBMYWJlbEZyb20/OiBzdHJpbmcgfCBHcm91cEJ5Rm47XG4gICAgZ3JvdXBEaXNhYmxlZEZyb20/OiBzdHJpbmc7XG4gICAgY2hpbGRyZW5Gcm9tPzogc3RyaW5nO1xuICAgIHJlYWRvbmx5IERFRkFVTFRTOiBJdGVtU3RvcmFnZUhvc3REZWZhdWx0cztcbiAgICBncm91cEl0ZW1zPzogYm9vbGVhbjtcbiAgICBpdGVtc0FscmVhZHlHcm91cGVkPzogYm9vbGVhbjtcbiAgICBoaWRlU2VsZWN0ZWQ6IGJvb2xlYW47XG4gICAgc2VhcmNoQ2FzZVNlbnNpdGl2ZTogYm9vbGVhbjtcbiAgICBzZWFyY2hGbjogU2VhcmNoRm47XG4gICAgY29tcGFyZVdpdGg/OiBDb21wYXJlV2l0aEZuO1xuICAgIG11bHRpc2VsZWN0YWJsZTogYm9vbGVhbjtcbiAgICBzb3J0TXVsdGlwbGVWYWx1ZXM6IGJvb2xlYW47XG4gICAgbWF4U2VsZWN0ZWRJdGVtcz86IG51bWJlcjtcbiAgICBhZGRDdXN0b206IGJvb2xlYW4gfCBBZGRDdXN0b21Gbjxhbnk+IHwgQWRkQ3VzdG9tRm48UHJvbWlzZTxhbnk+Pjtcbn1cblxuZXhwb3J0IGNsYXNzIEl0ZW1TdG9yYWdlIHtcbiAgICBwcml2YXRlIF9ncm91cHM6IEFyZEl0ZW1Hcm91cE1hcCA9IHRoaXMuX2NyZWF0ZUVtcHR5R3JvdXBNYXAoKTtcbiAgICBwcml2YXRlIF9pdGVtczogQXJkT3B0aW9uW10gPSBbXTtcbiAgICBwcml2YXRlIF9maWx0ZXJlZEl0ZW1zOiBBcmRPcHRpb25bXSA9IFtdO1xuICAgIHByaXZhdGUgX2hpZ2hsaWdodGVkSXRlbXM6IEFyZE9wdGlvbltdID0gW107XG4gICAgcHJpdmF0ZSBfaGlnaGxpZ2h0ZWRHcm91cHM6IEFyZE9wdGlvbkdyb3VwW10gPSBbXTtcbiAgICBwcml2YXRlIF9yZWNlbnRseUhpZ2hsaWdodGVkSXRlbT86IEFyZE9wdGlvbjtcbiAgICBwcml2YXRlIF9zZWxlY3RlZEl0ZW1zOiBBcmRPcHRpb25bXSA9IFtdO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfYXJkUGFyZW50Q29tcDogSXRlbVN0b3JhZ2VIb3N0KSB7fVxuXG4gICAgZ2V0IGdyb3VwcygpOiBBcmRPcHRpb25Hcm91cFtdIHtcbiAgICAgICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5fZ3JvdXBzLmVudHJpZXMoKSlcbiAgICAgICAgICAgIC5tYXAoKFtfLCBncm91cF0pID0+IGdyb3VwKVxuICAgICAgICAgICAgLmZpbHRlcihncm91cCA9PiBncm91cC5jaGlsZHJlbi5sZW5ndGgpO1xuICAgIH1cbiAgICBnZXQgaXRlbXMoKTogQXJkT3B0aW9uW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXRlbXM7XG4gICAgfVxuICAgIGdldCBmaWx0ZXJlZEl0ZW1zKCk6IEFyZE9wdGlvbltdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZpbHRlcmVkSXRlbXM7XG4gICAgfVxuICAgIGdldCBzZWxlY3RlZEl0ZW1zKCk6IEFyZE9wdGlvbltdIHtcbiAgICAgICAgaWYgKHRoaXMuX2FyZFBhcmVudENvbXAuc29ydE11bHRpcGxlVmFsdWVzKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fc2VsZWN0ZWRJdGVtcy5zb3J0KChhLCBiKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGEuaW5kZXggLSBiLmluZGV4O1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkSXRlbXM7XG4gICAgfVxuICAgIGdldCBoaWdobGlnaHRlZEl0ZW1zKCk6IEFyZE9wdGlvbltdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hpZ2hsaWdodGVkSXRlbXM7XG4gICAgfVxuICAgIGdldCBsYXN0U2VsZWN0ZWRJdGVtKCk6IEFyZE9wdGlvbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9maWx0ZXJlZEl0ZW1zLmxhc3QoMSwgaXRlbSA9PiAhaXRlbS5kaXNhYmxlZCk7XG4gICAgfVxuICAgIGdldCB2YWx1ZSgpOiBhbnlbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pdGVtc1RvVmFsdWUodGhpcy5zZWxlY3RlZEl0ZW1zKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfaXRlbXNUb1ZhbHVlKGl0ZW1zOiBBcmRPcHRpb25bXSk6IGFueVtdIHtcbiAgICAgICAgcmV0dXJuIGl0ZW1zLm1hcChpdGVtID0+IGl0ZW0udmFsdWUpO1xuICAgIH1cblxuICAgIGdldCBpc05vSXRlbXNUb1NlbGVjdCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2l0ZW1zLmxlbmd0aCA9PSB0aGlzLl9zZWxlY3RlZEl0ZW1zLmxlbmd0aDtcbiAgICB9XG4gICAgZ2V0IGlzTm9JdGVtc0ZvdW5kKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZmlsdGVyZWRJdGVtcy5sZW5ndGggPT0gMDtcbiAgICB9XG4gICAgZ2V0IGlzQW55SXRlbVNlbGVjdGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fc2VsZWN0ZWRJdGVtcy5sZW5ndGggPiAwO1xuICAgIH1cbiAgICBnZXQgaXNBbnlJdGVtSGlnaGxpZ2h0ZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9oaWdobGlnaHRlZEl0ZW1zLmxlbmd0aCA+IDA7XG4gICAgfVxuICAgIGdldCBpc0l0ZW1MaW1pdFJlYWNoZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLl9hcmRQYXJlbnRDb21wLm11bHRpc2VsZWN0YWJsZSAmJlxuICAgICAgICAgICAgaXNEZWZpbmVkKHRoaXMuX2FyZFBhcmVudENvbXAubWF4U2VsZWN0ZWRJdGVtcykgJiZcbiAgICAgICAgICAgIHRoaXMuX2FyZFBhcmVudENvbXAubWF4U2VsZWN0ZWRJdGVtcyEgPD0gdGhpcy5zZWxlY3RlZEl0ZW1zLmxlbmd0aFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHNldEl0ZW1zKGl0ZW1zOiBhbnlbXSk6IGJvb2xlYW4ge1xuICAgICAgICBsZXQgYXJlSXRlbXNQcmltaXRpdmUgPSBmYWxzZTtcbiAgICAgICAgaWYgKHRoaXMuX2FyZFBhcmVudENvbXAuZ3JvdXBJdGVtcyAmJiB0aGlzLl9hcmRQYXJlbnRDb21wLml0ZW1zQWxyZWFkeUdyb3VwZWQpIHtcbiAgICAgICAgICAgIGxldCBuZXdJdGVtcyA9IFtdO1xuICAgICAgICAgICAgZm9yIChjb25zdCBncm91cCBvZiBpdGVtcykge1xuICAgICAgICAgICAgICAgIGxldCBjaGlsZHJlbjogYW55W107XG4gICAgICAgICAgICAgICAgW2NoaWxkcmVuLCBhcmVJdGVtc1ByaW1pdGl2ZV0gPSB0aGlzLl91bmdyb3VwQWxyZWFkeUdyb3VwZWRJdGVtcyhncm91cCk7XG4gICAgICAgICAgICAgICAgbmV3SXRlbXMucHVzaCguLi5jaGlsZHJlbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpdGVtcyA9IG5ld0l0ZW1zO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhbnkoaXRlbXMsIGlzUHJpbWl0aXZlKSkge1xuICAgICAgICAgICAgaXRlbXMgPSBpdGVtcy5tYXAodGhpcy5fcHJpbWl0aXZlSXRlbXNNYXBGbik7XG4gICAgICAgICAgICBhcmVJdGVtc1ByaW1pdGl2ZSA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9pdGVtcyA9IGl0ZW1zLm1hcCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9zZXRJdGVtc01hcEZuKGl0ZW0sIGluZGV4LCBhcmVJdGVtc1ByaW1pdGl2ZSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vYWRkIGFsbCBpdGVtcyB0byBmaWx0ZXIgYXJyYXlcbiAgICAgICAgdGhpcy5fZmlsdGVyZWRJdGVtcyA9IHRoaXMuX2l0ZW1zO1xuXG4gICAgICAgIC8vYWRkIGl0ZW1zIHRvIGdyb3Vwc1xuICAgICAgICB0aGlzLl9wb3B1bGF0ZUdyb3VwcygpO1xuXG4gICAgICAgIC8vd3JpdGUgdmFsdWUgaWYgaXQgd2FzXG4gICAgICAgIGlmICh0aGlzLl92YWx1ZVRvV3JpdGVBZnRlckl0ZW1zTG9hZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZVdyaXRlVmFsdWUodGhpcy5fdmFsdWVUb1dyaXRlQWZ0ZXJJdGVtc0xvYWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGFyZUl0ZW1zUHJpbWl0aXZlO1xuICAgIH1cbiAgICBwcml2YXRlIF9hZGRTaW5nbGVJdGVtKGl0ZW06IGFueSk6IEFyZE9wdGlvbiB7XG4gICAgICAgIGxldCBpc0l0ZW1QcmltaXRpdmUgPSBpc1ByaW1pdGl2ZShpdGVtKTtcbiAgICAgICAgLy9tYXAgYSBwcmltaXRpdmUgaXRlbSB0byBhIHVzYWJsZSBvYmplY3RcbiAgICAgICAgaWYgKGlzSXRlbVByaW1pdGl2ZSkge1xuICAgICAgICAgICAgaXRlbSA9IHRoaXMuX3ByaW1pdGl2ZUl0ZW1zTWFwRm4oaXRlbSk7XG4gICAgICAgIH1cbiAgICAgICAgLy9tYXAgdGhlIGl0ZW0gdG8gY3JlYXRlIGRhdGEgYmluZGluZ3NcbiAgICAgICAgY29uc3QgYXJkT3B0aW9uID0gdGhpcy5fc2V0SXRlbXNNYXBGbihpdGVtLCB0aGlzLl9pdGVtcy5sYXN0KCk/LmluZGV4ICsgMSwgaXNJdGVtUHJpbWl0aXZlKTtcblxuICAgICAgICAvL3B1c2ggdGhlIGl0ZW0gaW50byBhbGwgaXRlbXNcbiAgICAgICAgdGhpcy5faXRlbXMucHVzaChhcmRPcHRpb24pO1xuXG4gICAgICAgIC8vYWRkIGl0ZW0gdG8gZ3JvdXBzXG4gICAgICAgIHRoaXMuX3BvcHVsYXRlR3JvdXBzKCk7XG5cbiAgICAgICAgcmV0dXJuIGFyZE9wdGlvbjtcbiAgICB9XG4gICAgcHJpdmF0ZSBfcHJpbWl0aXZlSXRlbXNNYXBGbjxUPihpdGVtOiBUKTogeyB2YWx1ZTogVCB9IHtcbiAgICAgICAgcmV0dXJuIHsgdmFsdWU6IGl0ZW0gfTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfdW5ncm91cEFscmVhZHlHcm91cGVkSXRlbXM8VCBleHRlbmRzIG9iamVjdD4oZ3JvdXA6IFQpOiBbYW55W10sIGJvb2xlYW5dIHtcbiAgICAgICAgLy9kZXRlcm1pbmUgZ3JvdXBCeSAoZ3JvdXBMYWJlbCkgcGF0aFxuICAgICAgICBsZXQgZ3JvdXBCeSA9IHRoaXMuX2FyZFBhcmVudENvbXAuZ3JvdXBMYWJlbEZyb20gPz8gdGhpcy5fYXJkUGFyZW50Q29tcC5ERUZBVUxUUy5ncm91cExhYmVsRnJvbTtcblxuICAgICAgICAvL2dldCBncm91cCBsYWJlbCBmcm9tIG9iamVjdFxuICAgICAgICBsZXQgZ3JvdXBOYW1lOiBhbnk7XG4gICAgICAgIGlmICh0eXBlb2YgZ3JvdXBCeSA9PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgZ3JvdXBOYW1lID0gcmVzb2x2ZVBhdGgoZ3JvdXAsIGdyb3VwQnkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZ3JvdXBOYW1lID0gZ3JvdXBCeShncm91cCk7XG4gICAgICAgIH1cblxuICAgICAgICAvL2RldGVybWluZSBncm91cCBjaGlsZHJlbiBwYXRoXG4gICAgICAgIGxldCBjaGlsZHJlblBhdGggPSB0aGlzLl9hcmRQYXJlbnRDb21wLmNoaWxkcmVuRnJvbSA/PyB0aGlzLl9hcmRQYXJlbnRDb21wLkRFRkFVTFRTLmNoaWxkcmVuRnJvbTtcblxuICAgICAgICAvL2dldCBncm91cCBjaGlsZHJlblxuICAgICAgICBsZXQgZ3JvdXBJdGVtczogYW55ID0gcmVzb2x2ZVBhdGgoZ3JvdXAsIGNoaWxkcmVuUGF0aCk7XG5cbiAgICAgICAgLy9yZXR1cm4gZW1wdHkgYXJyYXkgaWYgZ3JvdXBJdGVtcyBpcyBub3QgYW4gYXJyYXkgb3IgaXMgZW1wdHlcbiAgICAgICAgaWYgKCFpc0FycmF5KGdyb3VwSXRlbXMpIHx8IGdyb3VwSXRlbXMubGVuZ3RoID09IDApIHJldHVybiBbW10sIGZhbHNlXTtcblxuICAgICAgICAvL2NoZWNrIGlmIHRoZSBhcnJheSBpcyBhbiBhcnJheSBvZiBwcmltaXRpdmVzLCBhbmQgbWFwIGl0IGlmIG5lZWRlZFxuICAgICAgICBsZXQgYXJlSXRlbXNQcmltaXRpdmUgPSBmYWxzZTtcbiAgICAgICAgaWYgKGFueShncm91cEl0ZW1zLCBpc1ByaW1pdGl2ZSkpIHtcbiAgICAgICAgICAgIGdyb3VwSXRlbXMgPSBncm91cEl0ZW1zLm1hcCh0aGlzLl9wcmltaXRpdmVJdGVtc01hcEZuKTtcbiAgICAgICAgfVxuICAgICAgICAvL2FkZCBncm91cCBuYW1lIHRvIGV2ZXJ5IGNoaWxkXG4gICAgICAgIGdyb3VwSXRlbXMgPSBncm91cEl0ZW1zLm1hcCgoaXRlbTogYW55KSA9PiB7XG4gICAgICAgICAgICBpdGVtLiRhcmRncm91cCA9IGdyb3VwTmFtZTtcbiAgICAgICAgICAgIHJldHVybiBpdGVtO1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gW2dyb3VwSXRlbXMsIGFyZUl0ZW1zUHJpbWl0aXZlXTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfc2V0SXRlbXNNYXBGbihyYXdJdGVtRGF0YTogYW55LCBpbmRleDogbnVtYmVyLCBhcmVJdGVtc1ByaW1pdGl2ZTogYm9vbGVhbik6IEFyZE9wdGlvbiB7XG4gICAgICAgIGlmIChhcmVJdGVtc1ByaW1pdGl2ZSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBpdGVtRGF0YTogcmF3SXRlbURhdGEsXG4gICAgICAgICAgICAgICAgaW5kZXgsXG4gICAgICAgICAgICAgICAgdmFsdWU6IHJhd0l0ZW1EYXRhLnZhbHVlLFxuICAgICAgICAgICAgICAgIGxhYmVsOiByYXdJdGVtRGF0YS52YWx1ZT8udG9TdHJpbmc/LigpID8/IFN0cmluZyhyYXdJdGVtRGF0YS52YWx1ZSksXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIC8vZ2V0IHZhbHVlXG4gICAgICAgIGNvbnN0IHZhbHVlUGF0aCA9IHRoaXMuX2FyZFBhcmVudENvbXAudmFsdWVGcm9tID8/IHRoaXMuX2FyZFBhcmVudENvbXAubGFiZWxGcm9tID8/IHRoaXMuX2FyZFBhcmVudENvbXAuREVGQVVMVFMudmFsdWVGcm9tO1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHJlc29sdmVQYXRoKHJhd0l0ZW1EYXRhLCB2YWx1ZVBhdGgpO1xuXG4gICAgICAgIC8vZ2V0IGxhYmVsXG4gICAgICAgIGNvbnN0IGxhYmVsUGF0aCA9IHRoaXMuX2FyZFBhcmVudENvbXAubGFiZWxGcm9tID8/IHRoaXMuX2FyZFBhcmVudENvbXAudmFsdWVGcm9tID8/IHRoaXMuX2FyZFBhcmVudENvbXAuREVGQVVMVFMubGFiZWxGcm9tO1xuICAgICAgICBjb25zdCBsYWJlbCA9IHJlc29sdmVQYXRoKHJhd0l0ZW1EYXRhLCBsYWJlbFBhdGgpID8/IHZhbHVlO1xuXG4gICAgICAgIC8vZ2V0IGRpc2FibGVkXG4gICAgICAgIGNvbnN0IGRpc2FibGVkUGF0aCA9IHRoaXMuX2FyZFBhcmVudENvbXAuZGlzYWJsZWRGcm9tID8/IHRoaXMuX2FyZFBhcmVudENvbXAuREVGQVVMVFMuZGlzYWJsZWRGcm9tO1xuICAgICAgICBsZXQgZGlzYWJsZWQgPSBldmFsdWF0ZShyZXNvbHZlUGF0aChyYXdJdGVtRGF0YSwgZGlzYWJsZWRQYXRoKSk7XG4gICAgICAgIGlmICh0aGlzLl9hcmRQYXJlbnRDb21wLmludmVydERpc2FibGVkKSB7XG4gICAgICAgICAgICBkaXNhYmxlZCA9ICFkaXNhYmxlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vZ2V0IGdyb3Vwc1xuICAgICAgICBsZXQgZ3JvdXA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKHRoaXMuX2FyZFBhcmVudENvbXAuZ3JvdXBJdGVtcykge1xuICAgICAgICAgICAgaWYgKHJhd0l0ZW1EYXRhLiRhcmRncm91cCkge1xuICAgICAgICAgICAgICAgIGdyb3VwID0gcmF3SXRlbURhdGEuJGFyZGdyb3VwO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBsZXQgZ3JvdXBCeSA9IHRoaXMuX2FyZFBhcmVudENvbXAuZ3JvdXBMYWJlbEZyb20gPz8gdGhpcy5fYXJkUGFyZW50Q29tcC5ERUZBVUxUUy5ncm91cExhYmVsRnJvbTtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGdyb3VwQnkgPT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICAgICAgZ3JvdXAgPSByZXNvbHZlUGF0aChyYXdJdGVtRGF0YSwgZ3JvdXBCeSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgZ3JvdXAgPSAoZ3JvdXBCeSBhcyBHcm91cEJ5Rm4pKHJhd0l0ZW1EYXRhKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBpdGVtRGF0YSA9IGFyZUl0ZW1zUHJpbWl0aXZlID8gcmF3SXRlbURhdGEudmFsdWUgOiByYXdJdGVtRGF0YTtcblxuICAgICAgICAvL3JldHVyblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaXRlbURhdGEsXG4gICAgICAgICAgICBpbmRleCxcbiAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgbGFiZWw6IGxhYmVsPy50b1N0cmluZz8uKCkgPz8gU3RyaW5nKGxhYmVsKSxcbiAgICAgICAgICAgIGRpc2FibGVkLFxuICAgICAgICAgICAgZ3JvdXAsXG4gICAgICAgIH07XG4gICAgfVxuICAgIHByaXZhdGUgX3BvcHVsYXRlR3JvdXBzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9ncm91cHMgPSB0aGlzLl9jcmVhdGVFbXB0eUdyb3VwTWFwKCk7XG5cbiAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIHRoaXMuX2ZpbHRlcmVkSXRlbXMpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLl9hcmRQYXJlbnRDb21wLmhpZGVTZWxlY3RlZCAmJiBpdGVtLnNlbGVjdGVkKSBjb250aW51ZTtcblxuICAgICAgICAgICAgdGhpcy5fYWRkVG9Hcm91cChpdGVtKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBwcml2YXRlIF9hZGRUb0dyb3VwKGl0ZW06IEFyZE9wdGlvbik6IHZvaWQge1xuICAgICAgICBjb25zdCBncm91cEtleSA9IGl0ZW0uZ3JvdXA7XG4gICAgICAgIGxldCB0YXJnZXRHcm91cCA9IHRoaXMuX2dyb3Vwcy5nZXQoZ3JvdXBLZXkpO1xuICAgICAgICAvL2NyZWF0ZSBuZXcgZ3JvdXAgaWYgbmVlZGVkXG4gICAgICAgIGlmICghdGFyZ2V0R3JvdXApIHtcbiAgICAgICAgICAgIHRoaXMuX2dyb3Vwcy5zZXQoZ3JvdXBLZXksIHtcbiAgICAgICAgICAgICAgICBsYWJlbDogU3RyaW5nKGdyb3VwS2V5ID8/ICcnKSxcbiAgICAgICAgICAgICAgICBjaGlsZHJlbjogW2l0ZW1dLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGFyZ2V0R3JvdXAuY2hpbGRyZW4ucHVzaChpdGVtKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfY3JlYXRlRW1wdHlHcm91cE1hcCgpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBNYXAoW1t1bmRlZmluZWQsIHsgbGFiZWw6ICcnLCBjaGlsZHJlbjogW10gfV1dKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfaXNXcml0ZVZhbHVlVmFsaWQobmdNb2RlbDogYW55W10pOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIG5nTW9kZWwuZXZlcnkoaXRlbSA9PiB7XG4gICAgICAgICAgICBpZiAoIWlzRGVmaW5lZCh0aGlzLl9hcmRQYXJlbnRDb21wLmNvbXBhcmVXaXRoKSAmJiBpc09iamVjdChpdGVtKSAmJiB0aGlzLl9hcmRQYXJlbnRDb21wLnZhbHVlRnJvbSkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihgU2V0dGluZyBvYmplY3QoJHtKU09OLnN0cmluZ2lmeShpdGVtKX0pIGFzIHlvdXIgbW9kZWwgd2l0aCBbdmFsdWVGcm9tXSBpcyBub3QgYWxsb3dlZCB1bmxlc3MgW2NvbXBhcmVXaXRoXSBpcyB1c2VkLmApO1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfdmFsdWVUb1dyaXRlQWZ0ZXJJdGVtc0xvYWQ6IGFueTtcbiAgICBwcml2YXRlIF93YXNWYWx1ZVdyaXRlRGVmZXJyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBoYW5kbGVXcml0ZVZhbHVlKG5nTW9kZWw6IGFueVtdKTogdm9pZCB7XG4gICAgICAgIC8vZGVmZXIgd3JpdGluZyB0aGUgdmFsdWUgaWYgbm8gb3B0aW9ucyBhcmUgeWV0IGxvYWRlZFxuICAgICAgICBpZiAoIXRoaXMuX3dhc1ZhbHVlV3JpdGVEZWZlcnJlZCAmJiB0aGlzLl9pdGVtcy5sZW5ndGggPT0gMCkge1xuICAgICAgICAgICAgdGhpcy5fdmFsdWVUb1dyaXRlQWZ0ZXJJdGVtc0xvYWQgPSBuZ01vZGVsO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jbGVhckFsbFNlbGVjdGVkKCk7XG5cbiAgICAgICAgaWYgKCF0aGlzLl9pc1dyaXRlVmFsdWVWYWxpZChuZ01vZGVsKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc2VsZWN0SXRlbUJ5VmFsdWUgPSAodmFsdWU6IGFueSkgPT4ge1xuICAgICAgICAgICAgbGV0IGl0ZW0gPSB0aGlzLmZpbmRJdGVtQnlWYWx1ZSh2YWx1ZSk7XG5cbiAgICAgICAgICAgIGlmIChpdGVtKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RJdGVtKGl0ZW0pO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnNvbGUud2FybihgQ291bGRuJ3QgZmluZCBhbiBpdGVtIHdpdGggdmFsdWUgJHt2YWx1ZT8udG9TdHJpbmc/LigpIHx8IFN0cmluZyh2YWx1ZSl9LmApO1xuICAgICAgICB9O1xuXG4gICAgICAgIGZvciAoY29uc3QgbW9kZWxWYWx1ZSBvZiBuZ01vZGVsKSB7XG4gICAgICAgICAgICBzZWxlY3RJdGVtQnlWYWx1ZShtb2RlbFZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBmaW5kSXRlbUJ5VmFsdWUodmFsdWVUb0ZpbmQ6IGFueSk6IEFyZE9wdGlvbiB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGxldCBmaW5kQnk6IChpdGVtOiBBcmRPcHRpb24pID0+IGJvb2xlYW47XG4gICAgICAgIGlmICh0aGlzLl9hcmRQYXJlbnRDb21wLmNvbXBhcmVXaXRoKSB7XG4gICAgICAgICAgICBmaW5kQnkgPSBpdGVtID0+IHRoaXMuX2FyZFBhcmVudENvbXAuY29tcGFyZVdpdGghKHZhbHVlVG9GaW5kLCBpdGVtLnZhbHVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGZpbmRCeSA9IGl0ZW0gPT4gaXRlbS52YWx1ZSA9PT0gdmFsdWVUb0ZpbmQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuX2l0ZW1zLmZpbmQoaXRlbSA9PiBmaW5kQnkoaXRlbSkpO1xuICAgIH1cbiAgICBhc3luYyBhZGRDdXN0b21PcHRpb24odmFsdWU6IHN0cmluZywgZm46IEFkZEN1c3RvbUZuPGFueT4gfCBBZGRDdXN0b21GbjxQcm9taXNlPGFueT4+KTogUHJvbWlzZTxBcmRPcHRpb24+IHtcbiAgICAgICAgY29uc3QgZm5SZXN1bHQgPSBmbih2YWx1ZSk7XG5cbiAgICAgICAgbGV0IG9wdGlvblZhbHVlID0gZm5SZXN1bHQ7XG4gICAgICAgIGlmIChpc1Byb21pc2Uob3B0aW9uVmFsdWUpKSBvcHRpb25WYWx1ZSA9IGF3YWl0IG9wdGlvblZhbHVlO1xuXG4gICAgICAgIGNvbnN0IG5ld09wdGlvbk9iaiA9IHRoaXMuX2FkZFNpbmdsZUl0ZW0ob3B0aW9uVmFsdWUpO1xuXG4gICAgICAgIHJldHVybiBuZXdPcHRpb25PYmo7XG4gICAgfVxuXG4gICAgY2xlYXJBbGxTZWxlY3RlZChyZXBvcHVsYXRlR3JvdXBzOiBib29sZWFuID0gZmFsc2UpOiBhbnlbXSB7XG4gICAgICAgIGZvciAoY29uc3QgaXRlbSBvZiB0aGlzLl9zZWxlY3RlZEl0ZW1zKSB7XG4gICAgICAgICAgICBpdGVtLnNlbGVjdGVkID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IHJlbW92ZWRJdGVtVmFsdWVzID0gdGhpcy5faXRlbXNUb1ZhbHVlKHRoaXMuX3NlbGVjdGVkSXRlbXMpO1xuICAgICAgICB0aGlzLl9zZWxlY3RlZEl0ZW1zID0gW107XG5cbiAgICAgICAgaWYgKHJlcG9wdWxhdGVHcm91cHMgJiYgdGhpcy5fYXJkUGFyZW50Q29tcC5oaWRlU2VsZWN0ZWQpIHRoaXMuX3BvcHVsYXRlR3JvdXBzKCk7XG5cbiAgICAgICAgcmV0dXJuIHJlbW92ZWRJdGVtVmFsdWVzO1xuICAgIH1cbiAgICBjbGVhckxhc3RTZWxlY3RlZCgpOiBBcmRPcHRpb24ge1xuICAgICAgICBsZXQgaXRlbSA9IHRoaXMuX3NlbGVjdGVkSXRlbXMubGFzdCgpO1xuICAgICAgICBpZiAoIWl0ZW0pIHJldHVybiBpdGVtO1xuICAgICAgICB0aGlzLnVuc2VsZWN0SXRlbShpdGVtKTtcbiAgICAgICAgcmV0dXJuIGl0ZW07XG4gICAgfVxuICAgIHNlbGVjdEl0ZW0oLi4uaXRlbXM6IEFyZE9wdGlvbltdKTogW2FueVtdLCBhbnlbXSwgYW55W11dIHtcbiAgICAgICAgaWYgKHRoaXMuaXNJdGVtTGltaXRSZWFjaGVkKSB7XG4gICAgICAgICAgICByZXR1cm4gW1tdLCBbXSwgdGhpcy5faXRlbXNUb1ZhbHVlKGl0ZW1zKV07XG4gICAgICAgIH1cbiAgICAgICAgbGV0IHVuc2VsZWN0ZWQgPSBbXTtcbiAgICAgICAgaWYgKCF0aGlzLl9hcmRQYXJlbnRDb21wLm11bHRpc2VsZWN0YWJsZSkge1xuICAgICAgICAgICAgdW5zZWxlY3RlZCA9IHRoaXMuY2xlYXJBbGxTZWxlY3RlZChmYWxzZSk7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgaXRlbXNTZWxlY3RlZENvdW50ID0gMDtcbiAgICAgICAgY29uc3QgaXRlbXNTZWxlY3RlZCA9IFtdO1xuICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgaXRlbXMpIHtcbiAgICAgICAgICAgIGl0ZW1zU2VsZWN0ZWRDb3VudCsrO1xuICAgICAgICAgICAgaWYgKGl0ZW0uc2VsZWN0ZWQpIGNvbnRpbnVlO1xuICAgICAgICAgICAgaWYgKHRoaXMuaXNJdGVtTGltaXRSZWFjaGVkKSB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpdGVtLnNlbGVjdGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkSXRlbXMucHVzaChpdGVtKTtcbiAgICAgICAgICAgIGl0ZW1zU2VsZWN0ZWQucHVzaChpdGVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLl9hcmRQYXJlbnRDb21wLmhpZGVTZWxlY3RlZCkge1xuICAgICAgICAgICAgdGhpcy5fcG9wdWxhdGVHcm91cHMoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGl0ZW1zRmFpbGVkVG9TZWxlY3QgPSBpdGVtcy5zbGljZShpdGVtc1NlbGVjdGVkQ291bnQgLSAxKTtcbiAgICAgICAgcmV0dXJuIFt0aGlzLl9pdGVtc1RvVmFsdWUoaXRlbXNTZWxlY3RlZCksIHVuc2VsZWN0ZWQsIHRoaXMuX2l0ZW1zVG9WYWx1ZShpdGVtc0ZhaWxlZFRvU2VsZWN0KV07XG4gICAgfVxuICAgIHVuc2VsZWN0SXRlbSguLi5pdGVtczogQXJkT3B0aW9uW10pOiBhbnlbXSB7XG4gICAgICAgIGZvciAoY29uc3QgaXRlbSBvZiBpdGVtcykge1xuICAgICAgICAgICAgaWYgKCFpdGVtLnNlbGVjdGVkKSBjb250aW51ZTtcbiAgICAgICAgICAgIGl0ZW0uc2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9zZWxlY3RlZEl0ZW1zID0gdGhpcy5fc2VsZWN0ZWRJdGVtcy5maWx0ZXIodiA9PiB2LnNlbGVjdGVkKTtcblxuICAgICAgICBpZiAodGhpcy5fYXJkUGFyZW50Q29tcC5oaWRlU2VsZWN0ZWQpIHRoaXMuX3BvcHVsYXRlR3JvdXBzKCk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuX2l0ZW1zVG9WYWx1ZShpdGVtcyk7XG4gICAgfVxuXG4gICAgY2xlYXJBbGxIaWdobGlnaHRzKCk6IHZvaWQge1xuICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdGhpcy5faGlnaGxpZ2h0ZWRJdGVtcykge1xuICAgICAgICAgICAgaXRlbS5oaWdobGlnaHRlZCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoY29uc3QgZ3JvdXAgb2YgdGhpcy5faGlnaGxpZ2h0ZWRHcm91cHMpIHtcbiAgICAgICAgICAgIGdyb3VwLmhpZ2hsaWdodGVkID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5faGlnaGxpZ2h0ZWRJdGVtcyA9IFtdO1xuICAgICAgICB0aGlzLl9oaWdobGlnaHRlZEdyb3VwcyA9IFtdO1xuICAgIH1cbiAgICBoaWdobGlnaHRHcm91cChncm91cDogQXJkT3B0aW9uR3JvdXApOiBBcmRPcHRpb24ge1xuICAgICAgICB0aGlzLmNsZWFyQWxsSGlnaGxpZ2h0cygpO1xuICAgICAgICBncm91cC5oaWdobGlnaHRlZCA9IHRydWU7XG4gICAgICAgIHRoaXMuaGlnaGxpZ2h0SXRlbSguLi5ncm91cC5jaGlsZHJlbik7XG4gICAgICAgIHJldHVybiBncm91cC5jaGlsZHJlbi5maXJzdCgpO1xuICAgIH1cbiAgICBoaWdobGlnaHRTaW5nbGVJdGVtKGl0ZW06IEFyZE9wdGlvbik6IEFyZE9wdGlvbiB8IG51bGwge1xuICAgICAgICBpZiAoIWl0ZW0gfHwgaXRlbS5kaXNhYmxlZCkgcmV0dXJuIG51bGw7XG4gICAgICAgIHRoaXMuY2xlYXJBbGxIaWdobGlnaHRzKCk7XG4gICAgICAgIHJldHVybiB0aGlzLmhpZ2hsaWdodEl0ZW0oaXRlbSk7XG4gICAgfVxuICAgIGhpZ2hsaWdodEl0ZW0oLi4uaXRlbXM6IEFyZE9wdGlvbltdKTogQXJkT3B0aW9uIHtcbiAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIGl0ZW1zKSB7XG4gICAgICAgICAgICBpdGVtLmhpZ2hsaWdodGVkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9oaWdobGlnaHRlZEl0ZW1zLnB1c2goLi4uaXRlbXMpO1xuICAgICAgICByZXR1cm4gaXRlbXMubGFzdCgpO1xuICAgIH1cbiAgICB1bmhpZ2hsaWdodEl0ZW0oLi4uaXRlbXM6IEFyZE9wdGlvbltdKTogdm9pZCB7XG4gICAgICAgIGZvciAoY29uc3QgaXRlbSBvZiBpdGVtcykge1xuICAgICAgICAgICAgaWYgKCFpdGVtIHx8ICFpdGVtLmhpZ2hsaWdodGVkKSByZXR1cm47XG5cbiAgICAgICAgICAgIGl0ZW0uaGlnaGxpZ2h0ZWQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9oaWdobGlnaHRlZEl0ZW1zID0gdGhpcy5faGlnaGxpZ2h0ZWRJdGVtcy5maWx0ZXIodiA9PiB2LmhpZ2hsaWdodGVkKTtcbiAgICB9XG4gICAgaGlnaGxpZ2h0Rmlyc3RJdGVtKCk6IEFyZE9wdGlvbiB8IG51bGwge1xuICAgICAgICB0aGlzLmNsZWFyQWxsSGlnaGxpZ2h0cygpO1xuICAgICAgICBsZXQgaXRlbXNUb0hpZ2hsaWdodCA9IHRoaXMuX2dldEhpZ2xpZ2h0YWJsZUl0ZW1zKCk7XG4gICAgICAgIHJldHVybiB0aGlzLmhpZ2hsaWdodFNpbmdsZUl0ZW0oaXRlbXNUb0hpZ2hsaWdodC5maXJzdCgpKTtcbiAgICB9XG4gICAgaGlnaGxpZ2h0TGFzdEl0ZW0oKTogQXJkT3B0aW9uIHwgbnVsbCB7XG4gICAgICAgIHRoaXMuY2xlYXJBbGxIaWdobGlnaHRzKCk7XG4gICAgICAgIGxldCBpdGVtc1RvSGlnaGxpZ2h0ID0gdGhpcy5fZ2V0SGlnbGlnaHRhYmxlSXRlbXMoKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaGlnaGxpZ2h0U2luZ2xlSXRlbShpdGVtc1RvSGlnaGxpZ2h0Lmxhc3QoKSk7XG4gICAgfVxuICAgIHByaXZhdGUgX2dldEhpZ2xpZ2h0YWJsZUl0ZW1zKCk6IEFyZE9wdGlvbltdIHtcbiAgICAgICAgbGV0IGl0ZW1zVG9IaWdobGlnaHQgPSB0aGlzLl9maWx0ZXJlZEl0ZW1zLmZpbHRlcihpdGVtID0+ICFpdGVtLmRpc2FibGVkKTtcbiAgICAgICAgaWYgKHRoaXMuX2FyZFBhcmVudENvbXAuaGlkZVNlbGVjdGVkKSB7XG4gICAgICAgICAgICBpdGVtc1RvSGlnaGxpZ2h0ID0gaXRlbXNUb0hpZ2hsaWdodC5maWx0ZXIoaXRlbSA9PiAhaXRlbS5zZWxlY3RlZCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGl0ZW1zVG9IaWdobGlnaHQ7XG4gICAgfVxuICAgIGhpZ2hsaWdodEFsbEl0ZW1zKCk6IHZvaWQge1xuICAgICAgICBsZXQgaXRlbXNUb0hpZ2hsaWdodCA9IHRoaXMuX2ZpbHRlcmVkSXRlbXMuZmlsdGVyKGl0ZW0gPT4gIWl0ZW0uZGlzYWJsZWQpO1xuXG4gICAgICAgIGlmICh0aGlzLl9hcmRQYXJlbnRDb21wLmhpZGVTZWxlY3RlZCkge1xuICAgICAgICAgICAgaXRlbXNUb0hpZ2hsaWdodCA9IGl0ZW1zVG9IaWdobGlnaHQuZmlsdGVyKGl0ZW0gPT4gIWl0ZW0uc2VsZWN0ZWQpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaGlnaGxpZ2h0SXRlbSguLi5pdGVtc1RvSGlnaGxpZ2h0KTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfY2xlYXJSZWNlbnRseUhpZ2hsaWdodGVkKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5fcmVjZW50bHlIaWdobGlnaHRlZEl0ZW0pIHtcbiAgICAgICAgICAgIHRoaXMuX3JlY2VudGx5SGlnaGxpZ2h0ZWRJdGVtLmhpZ2hsaWdodGVkX3JlY2VudGx5ID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG4gICAgc2V0UmVjZW50bHlIaWdobGlnaHRlZChpdGVtOiBBcmRPcHRpb24pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY2xlYXJSZWNlbnRseUhpZ2hsaWdodGVkKCk7XG4gICAgICAgIHRoaXMuX3JlY2VudGx5SGlnaGxpZ2h0ZWRJdGVtID0gaXRlbTtcbiAgICAgICAgdGhpcy5fcmVjZW50bHlIaWdobGlnaHRlZEl0ZW0uaGlnaGxpZ2h0ZWRfcmVjZW50bHkgPSB0cnVlO1xuICAgIH1cbiAgICBoaWdobGlnaHROZXh0SXRlbShvZmZzZXQ6IG51bWJlciwgaGFzU2hpZnQ/OiBib29sZWFuKTogQXJkT3B0aW9uIHwgbnVsbCB7XG4gICAgICAgIGlmICghdGhpcy5pc0FueUl0ZW1IaWdobGlnaHRlZCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaGlnaGxpZ2h0Rmlyc3RJdGVtKCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY3VycmVudEl0ZW0gPSB0aGlzLmhpZ2hsaWdodGVkSXRlbXMubGFzdCgpO1xuICAgICAgICBjb25zdCBoaWdobGlnaHRhYmxlSXRlbXMgPSB0aGlzLl9nZXRIaWdsaWdodGFibGVJdGVtcygpO1xuICAgICAgICBjb25zdCBjdXJyZW50SW5kZXhJbkZpbHRlcmVkID0gaGlnaGxpZ2h0YWJsZUl0ZW1zLmZpbmRJbmRleChpdGVtID0+IGl0ZW0uaW5kZXggPT0gY3VycmVudEl0ZW0uaW5kZXgpO1xuXG4gICAgICAgIGxldCBuZXh0SXRlbUluZGV4ID0gY3VycmVudEluZGV4SW5GaWx0ZXJlZCArIG9mZnNldDtcbiAgICAgICAgaWYgKG5leHRJdGVtSW5kZXggPj0gaGlnaGxpZ2h0YWJsZUl0ZW1zLmxlbmd0aCkge1xuICAgICAgICAgICAgbmV4dEl0ZW1JbmRleCAtPSBoaWdobGlnaHRhYmxlSXRlbXMubGVuZ3RoO1xuICAgICAgICB9XG4gICAgICAgIGlmIChuZXh0SXRlbUluZGV4IDwgMCkge1xuICAgICAgICAgICAgbmV4dEl0ZW1JbmRleCArPSBoaWdobGlnaHRhYmxlSXRlbXMubGVuZ3RoO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGl0ZW1Ub0hpZ2hsaWdodCA9IGhpZ2hsaWdodGFibGVJdGVtc1tuZXh0SXRlbUluZGV4XTtcblxuICAgICAgICBpZiAoaGFzU2hpZnQgJiYgdGhpcy5fYXJkUGFyZW50Q29tcC5tdWx0aXNlbGVjdGFibGUpIHtcbiAgICAgICAgICAgIGlmIChpdGVtVG9IaWdobGlnaHQuaGlnaGxpZ2h0ZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnVuaGlnaGxpZ2h0SXRlbShjdXJyZW50SXRlbSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5oaWdobGlnaHRJdGVtKGl0ZW1Ub0hpZ2hsaWdodCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuaGlnaGxpZ2h0U2luZ2xlSXRlbShpdGVtVG9IaWdobGlnaHQpO1xuICAgIH1cbiAgICBmaWx0ZXIoZmlsdGVyVGVybTogc3RyaW5nKTogYW55W10ge1xuICAgICAgICBpZiAoIWZpbHRlclRlcm0pIHtcbiAgICAgICAgICAgIHRoaXMucmVzZXRGaWx0ZXJlZCgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2l0ZW1zVG9WYWx1ZSh0aGlzLl9maWx0ZXJlZEl0ZW1zKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMuX2FyZFBhcmVudENvbXAuc2VhcmNoQ2FzZVNlbnNpdGl2ZSkge1xuICAgICAgICAgICAgZmlsdGVyVGVybSA9IGZpbHRlclRlcm0udG9Mb2NhbGVMb3dlckNhc2UoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHNlYXJjaEZuID0gdGhpcy5fYXJkUGFyZW50Q29tcC5zZWFyY2hGbjtcbiAgICAgICAgdGhpcy5fZmlsdGVyZWRJdGVtcyA9IHRoaXMuX2l0ZW1zLmZpbHRlcihpdGVtID0+IHNlYXJjaEZuKGZpbHRlclRlcm0sIGl0ZW0pKTtcblxuICAgICAgICB0aGlzLl9wb3B1bGF0ZUdyb3VwcygpO1xuXG4gICAgICAgIGlmICghdGhpcy5pc05vSXRlbXNGb3VuZCkgdGhpcy5oaWdobGlnaHRGaXJzdEl0ZW0oKTtcbiAgICAgICAgZWxzZSB0aGlzLmNsZWFyQWxsSGlnaGxpZ2h0cygpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLl9pdGVtc1RvVmFsdWUodGhpcy5fZmlsdGVyZWRJdGVtcyk7XG4gICAgfVxuICAgIHJlc2V0RmlsdGVyZWQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9maWx0ZXJlZEl0ZW1zLmxlbmd0aCA9PSB0aGlzLl9pdGVtcy5sZW5ndGgpIHJldHVybjtcblxuICAgICAgICBpZiAodGhpcy5fYXJkUGFyZW50Q29tcC5oaWRlU2VsZWN0ZWQgJiYgdGhpcy5pc0FueUl0ZW1TZWxlY3RlZCkge1xuICAgICAgICAgICAgdGhpcy5fZmlsdGVyZWRJdGVtcyA9IHRoaXMuX2l0ZW1zLmZpbHRlcihpdGVtID0+ICFpdGVtLnNlbGVjdGVkKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2ZpbHRlcmVkSXRlbXMgPSB0aGlzLl9pdGVtcztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9wb3B1bGF0ZUdyb3VwcygpO1xuICAgIH1cbn1cbiJdfQ==
|
|
436
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24taXRlbS1zdG9yYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9faW50ZXJuYWwvaXRlbS1zdG9yYWdlcy9kcm9wZG93bi1pdGVtLXN0b3JhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxXQUFXLE1BQU0scUJBQXFCLENBQUM7QUFDOUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQWlDbEcsTUFBTSxPQUFPLFdBQVc7SUFTdEIsWUFBb0IsY0FBK0I7UUFBL0IsbUJBQWMsR0FBZCxjQUFjLENBQWlCO1FBUjNDLFlBQU8sR0FBb0IsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDdkQsV0FBTSxHQUFnQixFQUFFLENBQUM7UUFDekIsbUJBQWMsR0FBZ0IsRUFBRSxDQUFDO1FBQ2pDLHNCQUFpQixHQUFnQixFQUFFLENBQUM7UUFDcEMsdUJBQWtCLEdBQXFCLEVBQUUsQ0FBQztRQUUxQyxtQkFBYyxHQUFnQixFQUFFLENBQUM7UUFxT2pDLDJCQUFzQixHQUFZLEtBQUssQ0FBQztJQW5PTSxDQUFDO0lBRXZELElBQUksTUFBTTtRQUNSLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO2FBQ3RDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUM7YUFDMUIsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBQ0QsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENB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QixFQUFFO1lBQzVDLFVBQVUsR0FBRyxVQUFVLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztTQUM3QztRQUVELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDO1FBQzlDLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7UUFFN0UsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBRXZCLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYztZQUFFLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDOztZQUMvQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUUvQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFDRCxhQUFhO1FBQ1gsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU07WUFBRSxPQUFPO1FBRTdELElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQzlELElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUNsRTthQUFNO1lBQ0wsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1NBQ25DO1FBQ0QsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3pCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFyZE9wdGlvbkdyb3VwLCBBcmRPcHRpb24sIEdyb3VwQnlGbiwgQXJkSXRlbUdyb3VwTWFwLCBTZWFyY2hGbiwgQ29tcGFyZVdpdGhGbiB9IGZyb20gJy4uLy4uL3R5cGVzL2l0ZW0tc3RvcmFnZS50eXBlcyc7XG5pbXBvcnQgcmVzb2x2ZVBhdGggZnJvbSAncmVzb2x2ZS1vYmplY3QtcGF0aCc7XG5pbXBvcnQgeyBhbnksIGV2YWx1YXRlLCBpc0FycmF5LCBpc0RlZmluZWQsIGlzT2JqZWN0LCBpc1ByaW1pdGl2ZSwgaXNQcm9taXNlIH0gZnJvbSAnc2ltcGxlLWJvb2wnO1xuaW1wb3J0IHsgQWRkQ3VzdG9tRm4gfSBmcm9tICcuLi8uLi9zZWxlY3Qvc2VsZWN0LnR5cGVzJztcblxuZXhwb3J0IGludGVyZmFjZSBJdGVtU3RvcmFnZUhvc3REZWZhdWx0cyB7XG4gIHZhbHVlRnJvbTogc3RyaW5nO1xuICBsYWJlbEZyb206IHN0cmluZztcbiAgZGlzYWJsZWRGcm9tOiBzdHJpbmc7XG4gIGdyb3VwTGFiZWxGcm9tOiBzdHJpbmc7XG4gIGdyb3VwRGlzYWJsZWRGcm9tOiBzdHJpbmc7XG4gIGNoaWxkcmVuRnJvbTogc3RyaW5nO1xuICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5leHBvcnQgaW50ZXJmYWNlIEl0ZW1TdG9yYWdlSG9zdCB7XG4gIHZhbHVlRnJvbT86IHN0cmluZztcbiAgbGFiZWxGcm9tPzogc3RyaW5nO1xuICBkaXNhYmxlZEZyb20/OiBzdHJpbmc7XG4gIGludmVydERpc2FibGVkPzogYm9vbGVhbjtcbiAgZ3JvdXBMYWJlbEZyb20/OiBzdHJpbmcgfCBHcm91cEJ5Rm47XG4gIGdyb3VwRGlzYWJsZWRGcm9tPzogc3RyaW5nO1xuICBjaGlsZHJlbkZyb20/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IERFRkFVTFRTOiBJdGVtU3RvcmFnZUhvc3REZWZhdWx0cztcbiAgZ3JvdXBJdGVtcz86IGJvb2xlYW47XG4gIGl0ZW1zQWxyZWFkeUdyb3VwZWQ/OiBib29sZWFuO1xuICBoaWRlU2VsZWN0ZWQ6IGJvb2xlYW47XG4gIHNlYXJjaENhc2VTZW5zaXRpdmU6IGJvb2xlYW47XG4gIHNlYXJjaEZuOiBTZWFyY2hGbjtcbiAgY29tcGFyZVdpdGg/OiBDb21wYXJlV2l0aEZuO1xuICBtdWx0aXNlbGVjdGFibGU6IGJvb2xlYW47XG4gIHNvcnRNdWx0aXBsZVZhbHVlczogYm9vbGVhbjtcbiAgbWF4U2VsZWN0ZWRJdGVtcz86IG51bWJlcjtcbiAgYWRkQ3VzdG9tOiBib29sZWFuIHwgQWRkQ3VzdG9tRm48YW55PiB8IEFkZEN1c3RvbUZuPFByb21pc2U8YW55Pj47XG59XG5cbmV4cG9ydCBjbGFzcyBJdGVtU3RvcmFnZSB7XG4gIHByaXZhdGUgX2dyb3VwczogQXJkSXRlbUdyb3VwTWFwID0gdGhpcy5fY3JlYXRlRW1wdHlHcm91cE1hcCgpO1xuICBwcml2YXRlIF9pdGVtczogQXJkT3B0aW9uW10gPSBbXTtcbiAgcHJpdmF0ZSBfZmlsdGVyZWRJdGVtczogQXJkT3B0aW9uW10gPSBbXTtcbiAgcHJpdmF0ZSBfaGlnaGxpZ2h0ZWRJdGVtczogQXJkT3B0aW9uW10gPSBbXTtcbiAgcHJpdmF0ZSBfaGlnaGxpZ2h0ZWRHcm91cHM6IEFyZE9wdGlvbkdyb3VwW10gPSBbXTtcbiAgcHJpdmF0ZSBfcmVjZW50bHlIaWdobGlnaHRlZEl0ZW0/OiBBcmRPcHRpb247XG4gIHByaXZhdGUgX3NlbGVjdGVkSXRlbXM6IEFyZE9wdGlvbltdID0gW107XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfYXJkUGFyZW50Q29tcDogSXRlbVN0b3JhZ2VIb3N0KSB7fVxuXG4gIGdldCBncm91cHMoKTogQXJkT3B0aW9uR3JvdXBbXSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5fZ3JvdXBzLmVudHJpZXMoKSlcbiAgICAgIC5tYXAoKFtfLCBncm91cF0pID0+IGdyb3VwKVxuICAgICAgLmZpbHRlcihncm91cCA9PiBncm91cC5jaGlsZHJlbi5sZW5ndGgpO1xuICB9XG4gIGdldCBpdGVtcygpOiBBcmRPcHRpb25bXSB7XG4gICAgcmV0dXJuIHRoaXMuX2l0ZW1zO1xuICB9XG4gIGdldCBmaWx0ZXJlZEl0ZW1zKCk6IEFyZE9wdGlvbltdIHtcbiAgICByZXR1cm4gdGhpcy5fZmlsdGVyZWRJdGVtcztcbiAgfVxuICBnZXQgc2VsZWN0ZWRJdGVtcygpOiBBcmRPcHRpb25bXSB7XG4gICAgaWYgKHRoaXMuX2FyZFBhcmVudENvbXAuc29ydE11bHRpcGxlVmFsdWVzKSB7XG4gICAgICByZXR1cm4gdGhpcy5fc2VsZWN0ZWRJdGVtcy5zb3J0KChhLCBiKSA9PiB7XG4gICAgICAgIHJldHVybiBhLmluZGV4IC0gYi5pbmRleDtcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0ZWRJdGVtcztcbiAgfVxuICBnZXQgaGlnaGxpZ2h0ZWRJdGVtcygpOiBBcmRPcHRpb25bXSB7XG4gICAgcmV0dXJuIHRoaXMuX2hpZ2hsaWdodGVkSXRlbXM7XG4gIH1cbiAgZ2V0IGxhc3RTZWxlY3RlZEl0ZW0oKTogQXJkT3B0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5fZmlsdGVyZWRJdGVtcy5sYXN0KDEsIGl0ZW0gPT4gIWl0ZW0uZGlzYWJsZWQpO1xuICB9XG4gIGdldCB2YWx1ZSgpOiBhbnlbXSB7XG4gICAgcmV0dXJuIHRoaXMuX2l0ZW1zVG9WYWx1ZSh0aGlzLnNlbGVjdGVkSXRlbXMpO1xuICB9XG4gIHByaXZhdGUgX2l0ZW1zVG9WYWx1ZShpdGVtczogQXJkT3B0aW9uW10pOiBhbnlbXSB7XG4gICAgcmV0dXJuIGl0ZW1zLm1hcChpdGVtID0+IGl0ZW0udmFsdWUpO1xuICB9XG5cbiAgZ2V0IGlzTm9JdGVtc1RvU2VsZWN0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9pdGVtcy5sZW5ndGggPT0gdGhpcy5fc2VsZWN0ZWRJdGVtcy5sZW5ndGg7XG4gIH1cbiAgZ2V0IGlzTm9JdGVtc0ZvdW5kKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9maWx0ZXJlZEl0ZW1zLmxlbmd0aCA9PSAwO1xuICB9XG4gIGdldCBpc0FueUl0ZW1TZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0ZWRJdGVtcy5sZW5ndGggPiAwO1xuICB9XG4gIGdldCBpc0FueUl0ZW1IaWdobGlnaHRlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5faGlnaGxpZ2h0ZWRJdGVtcy5sZW5ndGggPiAwO1xuICB9XG4gIGdldCBpc0l0ZW1MaW1pdFJlYWNoZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuX2FyZFBhcmVudENvbXAubXVsdGlzZWxlY3RhYmxlICYmXG4gICAgICBpc0RlZmluZWQodGhpcy5fYXJkUGFyZW50Q29tcC5tYXhTZWxlY3RlZEl0ZW1zKSAmJlxuICAgICAgdGhpcy5fYXJkUGFyZW50Q29tcC5tYXhTZWxlY3RlZEl0ZW1zISA8PSB0aGlzLnNlbGVjdGVkSXRlbXMubGVuZ3RoXG4gICAgKTtcbiAgfVxuXG4gIHNldEl0ZW1zKGl0ZW1zOiBhbnlbXSk6IGJvb2xlYW4ge1xuICAgIGxldCBhcmVJdGVtc1ByaW1pdGl2ZSA9IGZhbHNlO1xuICAgIGlmICh0aGlzLl9hcmRQYXJlbnRDb21wLmdyb3VwSXRlbXMgJiYgdGhpcy5fYXJkUGFyZW50Q29tcC5pdGVtc0FscmVhZHlHcm91cGVkKSB7XG4gICAgICBsZXQgbmV3SXRlbXMgPSBbXTtcbiAgICAgIGZvciAoY29uc3QgZ3JvdXAgb2YgaXRlbXMpIHtcbiAgICAgICAgbGV0IGNoaWxkcmVuOiBhbnlbXTtcbiAgICAgICAgW2NoaWxkcmVuLCBhcmVJdGVtc1ByaW1pdGl2ZV0gPSB0aGlzLl91bmdyb3VwQWxyZWFkeUdyb3VwZWRJdGVtcyhncm91cCk7XG4gICAgICAgIG5ld0l0ZW1zLnB1c2goLi4uY2hpbGRyZW4pO1xuICAgICAgfVxuICAgICAgaXRlbXMgPSBuZXdJdGVtcztcbiAgICB9XG4gICAgaWYgKGFueShpdGVtcywgaXNQcmltaXRpdmUpKSB7XG4gICAgICBpdGVtcyA9IGl0ZW1zLm1hcCh0aGlzLl9wcmltaXRpdmVJdGVtc01hcEZuKTtcbiAgICAgIGFyZUl0ZW1zUHJpbWl0aXZlID0gdHJ1ZTtcbiAgICB9XG5cbiAgICB0aGlzLl9pdGVtcyA9IGl0ZW1zLm1hcCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgIHJldHVybiB0aGlzLl9zZXRJdGVtc01hcEZuKGl0ZW0sIGluZGV4LCBhcmVJdGVtc1ByaW1pdGl2ZSk7XG4gICAgfSk7XG5cbiAgICAvL2FkZCBhbGwgaXRlbXMgdG8gZmlsdGVyIGFycmF5XG4gICAgdGhpcy5fZmlsdGVyZWRJdGVtcyA9IHRoaXMuX2l0ZW1zO1xuXG4gICAgLy9hZGQgaXRlbXMgdG8gZ3JvdXBzXG4gICAgdGhpcy5fcG9wdWxhdGVHcm91cHMoKTtcblxuICAgIC8vd3JpdGUgdmFsdWUgaWYgaXQgd2FzXG4gICAgaWYgKHRoaXMuX3ZhbHVlVG9Xcml0ZUFmdGVySXRlbXNMb2FkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuaGFuZGxlV3JpdGVWYWx1ZSh0aGlzLl92YWx1ZVRvV3JpdGVBZnRlckl0ZW1zTG9hZCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGFyZUl0ZW1zUHJpbWl0aXZlO1xuICB9XG4gIHByaXZhdGUgX2FkZFNpbmdsZUl0ZW0oaXRlbTogYW55KTogQXJkT3B0aW9uIHtcbiAgICBsZXQgaXNJdGVtUHJpbWl0aXZlID0gaXNQcmltaXRpdmUoaXRlbSk7XG4gICAgLy9tYXAgYSBwcmltaXRpdmUgaXRlbSB0byBhIHVzYWJsZSBvYmplY3RcbiAgICBpZiAoaXNJdGVtUHJpbWl0aXZlKSB7XG4gICAgICBpdGVtID0gdGhpcy5fcHJpbWl0aXZlSXRlbXNNYXBGbihpdGVtKTtcbiAgICB9XG4gICAgLy9tYXAgdGhlIGl0ZW0gdG8gY3JlYXRlIGRhdGEgYmluZGluZ3NcbiAgICBjb25zdCBhcmRPcHRpb24gPSB0aGlzLl9zZXRJdGVtc01hcEZuKGl0ZW0sIHRoaXMuX2l0ZW1zLmxhc3QoKT8uaW5kZXggKyAxLCBpc0l0ZW1QcmltaXRpdmUpO1xuXG4gICAgLy9wdXNoIHRoZSBpdGVtIGludG8gYWxsIGl0ZW1zXG4gICAgdGhpcy5faXRlbXMucHVzaChhcmRPcHRpb24pO1xuXG4gICAgLy9hZGQgaXRlbSB0byBncm91cHNcbiAgICB0aGlzLl9wb3B1bGF0ZUdyb3VwcygpO1xuXG4gICAgcmV0dXJuIGFyZE9wdGlvbjtcbiAgfVxuICBwcml2YXRlIF9wcmltaXRpdmVJdGVtc01hcEZuPFQ+KGl0ZW06IFQpOiB7IHZhbHVlOiBUIH0ge1xuICAgIHJldHVybiB7IHZhbHVlOiBpdGVtIH07XG4gIH1cbiAgcHJpdmF0ZSBfdW5ncm91cEFscmVhZHlHcm91cGVkSXRlbXM8VCBleHRlbmRzIG9iamVjdD4oZ3JvdXA6IFQpOiBbYW55W10sIGJvb2xlYW5dIHtcbiAgICAvL2RldGVybWluZSBncm91cEJ5IChncm91cExhYmVsKSBwYXRoXG4gICAgbGV0IGdyb3VwQnkgPSB0aGlzLl9hcmRQYXJlbnRDb21wLmdyb3VwTGFiZWxGcm9tID8/IHRoaXMuX2FyZFBhcmVudENvbXAuREVGQVVMVFMuZ3JvdXBMYWJlbEZyb207XG5cbiAgICAvL2dldCBncm91cCBsYWJlbCBmcm9tIG9iamVjdFxuICAgIGxldCBncm91cE5hbWU6IGFueTtcbiAgICBpZiAodHlwZW9mIGdyb3VwQnkgPT0gJ3N0cmluZycpIHtcbiAgICAgIGdyb3VwTmFtZSA9IHJlc29sdmVQYXRoKGdyb3VwLCBncm91cEJ5KTtcbiAgICB9IGVsc2Uge1xuICAgICAgZ3JvdXBOYW1lID0gZ3JvdXBCeShncm91cCk7XG4gICAgfVxuXG4gICAgLy9kZXRlcm1pbmUgZ3JvdXAgY2hpbGRyZW4gcGF0aFxuICAgIGxldCBjaGlsZHJlblBhdGggPSB0aGlzLl9hcmRQYXJlbnRDb21wLmNoaWxkcmVuRnJvbSA/PyB0aGlzLl9hcmRQYXJlbnRDb21wLkRFRkFVTFRTLmNoaWxkcmVuRnJvbTtcblxuICAgIC8vZ2V0IGdyb3VwIGNoaWxkcmVuXG4gICAgbGV0IGdyb3VwSXRlbXM6IGFueSA9IHJlc29sdmVQYXRoKGdyb3VwLCBjaGlsZHJlblBhdGgpO1xuXG4gICAgLy9yZXR1cm4gZW1wdHkgYXJyYXkgaWYgZ3JvdXBJdGVtcyBpcyBub3QgYW4gYXJyYXkgb3IgaXMgZW1wdHlcbiAgICBpZiAoIWlzQXJyYXkoZ3JvdXBJdGVtcykgfHwgZ3JvdXBJdGVtcy5sZW5ndGggPT0gMCkgcmV0dXJuIFtbXSwgZmFsc2VdO1xuXG4gICAgLy9jaGVjayBpZiB0aGUgYXJyYXkgaXMgYW4gYXJyYXkgb2YgcHJpbWl0aXZlcywgYW5kIG1hcCBpdCBpZiBuZWVkZWRcbiAgICBsZXQgYXJlSXRlbXNQcmltaXRpdmUgPSBmYWxzZTtcbiAgICBpZiAoYW55KGdyb3VwSXRlbXMsIGlzUHJpbWl0aXZlKSkge1xuICAgICAgZ3JvdXBJdGVtcyA9IGdyb3VwSXRlbXMubWFwKHRoaXMuX3ByaW1pdGl2ZUl0ZW1zTWFwRm4pO1xuICAgIH1cbiAgICAvL2FkZCBncm91cCBuYW1lIHRvIGV2ZXJ5IGNoaWxkXG4gICAgZ3JvdXBJdGVtcyA9IGdyb3VwSXRlbXMubWFwKChpdGVtOiBhbnkpID0+IHtcbiAgICAgIGl0ZW0uJGFyZGdyb3VwID0gZ3JvdXBOYW1lO1xuICAgICAgcmV0dXJuIGl0ZW07XG4gICAgfSk7XG5cbiAgICByZXR1cm4gW2dyb3VwSXRlbXMsIGFyZUl0ZW1zUHJpbWl0aXZlXTtcbiAgfVxuICBwcml2YXRlIF9zZXRJdGVtc01hcEZuKHJhd0l0ZW1EYXRhOiBhbnksIGluZGV4OiBudW1iZXIsIGFyZUl0ZW1zUHJpbWl0aXZlOiBib29sZWFuKTogQXJkT3B0aW9uIHtcbiAgICBpZiAoYXJlSXRlbXNQcmltaXRpdmUpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGl0ZW1EYXRhOiByYXdJdGVtRGF0YSxcbiAgICAgICAgaW5kZXgsXG4gICAgICAgIHZhbHVlOiByYXdJdGVtRGF0YS52YWx1ZSxcbiAgICAgICAgbGFiZWw6IHJhd0l0ZW1EYXRhLnZhbHVlPy50b1N0cmluZz8uKCkgPz8gU3RyaW5nKHJhd0l0ZW1EYXRhLnZhbHVlKSxcbiAgICAgIH07XG4gICAgfVxuICAgIC8vZ2V0IHZhbHVlXG4gICAgY29uc3QgdmFsdWVQYXRoID0gdGhpcy5fYXJkUGFyZW50Q29tcC52YWx1ZUZyb20gPz8gdGhpcy5fYXJkUGFyZW50Q29tcC5sYWJlbEZyb20gPz8gdGhpcy5fYXJkUGFyZW50Q29tcC5ERUZBVUxUUy52YWx1ZUZyb207XG4gICAgY29uc3QgdmFsdWUgPSByZXNvbHZlUGF0aChyYXdJdGVtRGF0YSwgdmFsdWVQYXRoKTtcblxuICAgIC8vZ2V0IGxhYmVsXG4gICAgY29uc3QgbGFiZWxQYXRoID0gdGhpcy5fYXJkUGFyZW50Q29tcC5sYWJlbEZyb20gPz8gdGhpcy5fYXJkUGFyZW50Q29tcC52YWx1ZUZyb20gPz8gdGhpcy5fYXJkUGFyZW50Q29tcC5ERUZBVUxUUy5sYWJlbEZyb207XG4gICAgY29uc3QgbGFiZWwgPSByZXNvbHZlUGF0aChyYXdJdGVtRGF0YSwgbGFiZWxQYXRoKSA/PyB2YWx1ZTtcblxuICAgIC8vZ2V0IGRpc2FibGVkXG4gICAgY29uc3QgZGlzYWJsZWRQYXRoID0gdGhpcy5fYXJkUGFyZW50Q29tcC5kaXNhYmxlZEZyb20gPz8gdGhpcy5fYXJkUGFyZW50Q29tcC5ERUZBVUxUUy5kaXNhYmxlZEZyb207XG4gICAgbGV0IGRpc2FibGVkID0gZXZhbHVhdGUocmVzb2x2ZVBhdGgocmF3SXRlbURhdGEsIGRpc2FibGVkUGF0aCkpO1xuICAgIGlmICh0aGlzLl9hcmRQYXJlbnRDb21wLmludmVydERpc2FibGVkKSB7XG4gICAgICBkaXNhYmxlZCA9ICFkaXNhYmxlZDtcbiAgICB9XG5cbiAgICAvL2dldCBncm91cHNcbiAgICBsZXQgZ3JvdXA6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBpZiAodGhpcy5fYXJkUGFyZW50Q29tcC5ncm91cEl0ZW1zKSB7XG4gICAgICBpZiAocmF3SXRlbURhdGEuJGFyZGdyb3VwKSB7XG4gICAgICAgIGdyb3VwID0gcmF3SXRlbURhdGEuJGFyZGdyb3VwO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbGV0IGdyb3VwQnkgPSB0aGlzLl9hcmRQYXJlbnRDb21wLmdyb3VwTGFiZWxGcm9tID8/IHRoaXMuX2FyZFBhcmVudENvbXAuREVGQVVMVFMuZ3JvdXBMYWJlbEZyb207XG4gICAgICAgIGlmICh0eXBlb2YgZ3JvdXBCeSA9PSAnc3RyaW5nJykge1xuICAgICAgICAgIGdyb3VwID0gcmVzb2x2ZVBhdGgocmF3SXRlbURhdGEsIGdyb3VwQnkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGdyb3VwID0gKGdyb3VwQnkgYXMgR3JvdXBCeUZuKShyYXdJdGVtRGF0YSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBpdGVtRGF0YSA9IGFyZUl0ZW1zUHJpbWl0aXZlID8gcmF3SXRlbURhdGEudmFsdWUgOiByYXdJdGVtRGF0YTtcblxuICAgIC8vcmV0dXJuXG4gICAgcmV0dXJuIHtcbiAgICAgIGl0ZW1EYXRhLFxuICAgICAgaW5kZXgsXG4gICAgICB2YWx1ZSxcbiAgICAgIGxhYmVsOiBsYWJlbD8udG9TdHJpbmc/LigpID8/IFN0cmluZyhsYWJlbCksXG4gICAgICBkaXNhYmxlZCxcbiAgICAgIGdyb3VwLFxuICAgIH07XG4gIH1cbiAgcHJpdmF0ZSBfcG9wdWxhdGVHcm91cHMoKTogdm9pZCB7XG4gICAgdGhpcy5fZ3JvdXBzID0gdGhpcy5fY3JlYXRlRW1wdHlHcm91cE1hcCgpO1xuXG4gICAgZm9yIChjb25zdCBpdGVtIG9mIHRoaXMuX2ZpbHRlcmVkSXRlbXMpIHtcbiAgICAgIGlmICh0aGlzLl9hcmRQYXJlbnRDb21wLmhpZGVTZWxlY3RlZCAmJiBpdGVtLnNlbGVjdGVkKSBjb250aW51ZTtcblxuICAgICAgdGhpcy5fYWRkVG9Hcm91cChpdGVtKTtcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBfYWRkVG9Hcm91cChpdGVtOiBBcmRPcHRpb24pOiB2b2lkIHtcbiAgICBjb25zdCBncm91cEtleSA9IGl0ZW0uZ3JvdXA7XG4gICAgbGV0IHRhcmdldEdyb3VwID0gdGhpcy5fZ3JvdXBzLmdldChncm91cEtleSk7XG4gICAgLy9jcmVhdGUgbmV3IGdyb3VwIGlmIG5lZWRlZFxuICAgIGlmICghdGFyZ2V0R3JvdXApIHtcbiAgICAgIHRoaXMuX2dyb3Vwcy5zZXQoZ3JvdXBLZXksIHtcbiAgICAgICAgbGFiZWw6IFN0cmluZyhncm91cEtleSA/PyAnJyksXG4gICAgICAgIGNoaWxkcmVuOiBbaXRlbV0sXG4gICAgICB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGFyZ2V0R3JvdXAuY2hpbGRyZW4ucHVzaChpdGVtKTtcbiAgfVxuICBwcml2YXRlIF9jcmVhdGVFbXB0eUdyb3VwTWFwKCkge1xuICAgIHJldHVybiBuZXcgTWFwKFtbdW5kZWZpbmVkLCB7IGxhYmVsOiAnJywgY2hpbGRyZW46IFtdIH1dXSk7XG4gIH1cbiAgcHJpdmF0ZSBfaXNXcml0ZVZhbHVlVmFsaWQobmdNb2RlbDogYW55W10pOiBib29sZWFuIHtcbiAgICByZXR1cm4gbmdNb2RlbC5ldmVyeShpdGVtID0+IHtcbiAgICAgIGlmICghaXNEZWZpbmVkKHRoaXMuX2FyZFBhcmVudENvbXAuY29tcGFyZVdpdGgpICYmIGlzT2JqZWN0KGl0ZW0pICYmIHRoaXMuX2FyZFBhcmVudENvbXAudmFsdWVGcm9tKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihgU2V0dGluZyBvYmplY3QoJHtKU09OLnN0cmluZ2lmeShpdGVtKX0pIGFzIHlvdXIgbW9kZWwgd2l0aCBbdmFsdWVGcm9tXSBpcyBub3QgYWxsb3dlZCB1bmxlc3MgW2NvbXBhcmVXaXRoXSBpcyB1c2VkLmApO1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9KTtcbiAgfVxuICBwcml2YXRlIF92YWx1ZVRvV3JpdGVBZnRlckl0ZW1zTG9hZDogYW55O1xuICBwcml2YXRlIF93YXNWYWx1ZVdyaXRlRGVmZXJyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaGFuZGxlV3JpdGVWYWx1ZShuZ01vZGVsOiBhbnlbXSk6IHZvaWQge1xuICAgIC8vZGVmZXIgd3JpdGluZyB0aGUgdmFsdWUgaWYgbm8gb3B0aW9ucyBhcmUgeWV0IGxvYWRlZFxuICAgIGlmICghdGhpcy5fd2FzVmFsdWVXcml0ZURlZmVycmVkICYmIHRoaXMuX2l0ZW1zLmxlbmd0aCA9PSAwKSB7XG4gICAgICB0aGlzLl92YWx1ZVRvV3JpdGVBZnRlckl0ZW1zTG9hZCA9IG5nTW9kZWw7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5jbGVhckFsbFNlbGVjdGVkKCk7XG5cbiAgICBpZiAoIXRoaXMuX2lzV3JpdGVWYWx1ZVZhbGlkKG5nTW9kZWwpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgc2VsZWN0SXRlbUJ5VmFsdWUgPSAodmFsdWU6IGFueSkgPT4ge1xuICAgICAgbGV0IGl0ZW0gPSB0aGlzLmZpbmRJdGVtQnlWYWx1ZSh2YWx1ZSk7XG5cbiAgICAgIGlmIChpdGVtKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0SXRlbShpdGVtKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY29uc29sZS53YXJuKGBDb3VsZG4ndCBmaW5kIGFuIGl0ZW0gd2l0aCB2YWx1ZSAke3ZhbHVlPy50b1N0cmluZz8uKCkgfHwgU3RyaW5nKHZhbHVlKX0uYCk7XG4gICAgfTtcblxuICAgIGZvciAoY29uc3QgbW9kZWxWYWx1ZSBvZiBuZ01vZGVsKSB7XG4gICAgICBzZWxlY3RJdGVtQnlWYWx1ZShtb2RlbFZhbHVlKTtcbiAgICB9XG4gIH1cbiAgZmluZEl0ZW1CeVZhbHVlKHZhbHVlVG9GaW5kOiBhbnkpOiBBcmRPcHRpb24gfCB1bmRlZmluZWQge1xuICAgIGxldCBmaW5kQnk6IChpdGVtOiBBcmRPcHRpb24pID0+IGJvb2xlYW47XG4gICAgaWYgKHRoaXMuX2FyZFBhcmVudENvbXAuY29tcGFyZVdpdGgpIHtcbiAgICAgIGZpbmRCeSA9IGl0ZW0gPT4gdGhpcy5fYXJkUGFyZW50Q29tcC5jb21wYXJlV2l0aCEodmFsdWVUb0ZpbmQsIGl0ZW0udmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBmaW5kQnkgPSBpdGVtID0+IGl0ZW0udmFsdWUgPT09IHZhbHVlVG9GaW5kO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5faXRlbXMuZmluZChpdGVtID0+IGZpbmRCeShpdGVtKSk7XG4gIH1cbiAgYXN5bmMgYWRkQ3VzdG9tT3B0aW9uKHZhbHVlOiBzdHJpbmcsIGZuOiBBZGRDdXN0b21Gbjxhbnk+IHwgQWRkQ3VzdG9tRm48UHJvbWlzZTxhbnk+Pik6IFByb21pc2U8QXJkT3B0aW9uPiB7XG4gICAgY29uc3QgZm5SZXN1bHQgPSBmbih2YWx1ZSk7XG5cbiAgICBsZXQgb3B0aW9uVmFsdWUgPSBmblJlc3VsdDtcbiAgICBpZiAoaXNQcm9taXNlKG9wdGlvblZhbHVlKSkgb3B0aW9uVmFsdWUgPSBhd2FpdCBvcHRpb25WYWx1ZTtcblxuICAgIGNvbnN0IG5ld09wdGlvbk9iaiA9IHRoaXMuX2FkZFNpbmdsZUl0ZW0ob3B0aW9uVmFsdWUpO1xuXG4gICAgcmV0dXJuIG5ld09wdGlvbk9iajtcbiAgfVxuXG4gIGNsZWFyQWxsU2VsZWN0ZWQocmVwb3B1bGF0ZUdyb3VwczogYm9vbGVhbiA9IGZhbHNlKTogYW55W10ge1xuICAgIGZvciAoY29uc3QgaXRlbSBvZiB0aGlzLl9zZWxlY3RlZEl0ZW1zKSB7XG4gICAgICBpdGVtLnNlbGVjdGVkID0gZmFsc2U7XG4gICAgfVxuICAgIGxldCByZW1vdmVkSXRlbVZhbHVlcyA9IHRoaXMuX2l0ZW1zVG9WYWx1ZSh0aGlzLl9zZWxlY3RlZEl0ZW1zKTtcbiAgICB0aGlzLl9zZWxlY3RlZEl0ZW1zID0gW107XG5cbiAgICBpZiAocmVwb3B1bGF0ZUdyb3VwcyAmJiB0aGlzLl9hcmRQYXJlbnRDb21wLmhpZGVTZWxlY3RlZCkgdGhpcy5fcG9wdWxhdGVHcm91cHMoKTtcblxuICAgIHJldHVybiByZW1vdmVkSXRlbVZhbHVlcztcbiAgfVxuICBjbGVhckxhc3RTZWxlY3RlZCgpOiBBcmRPcHRpb24ge1xuICAgIGxldCBpdGVtID0gdGhpcy5fc2VsZWN0ZWRJdGVtcy5sYXN0KCk7XG4gICAgaWYgKCFpdGVtKSByZXR1cm4gaXRlbTtcbiAgICB0aGlzLnVuc2VsZWN0SXRlbShpdGVtKTtcbiAgICByZXR1cm4gaXRlbTtcbiAgfVxuICBzZWxlY3RJdGVtKC4uLml0ZW1zOiBBcmRPcHRpb25bXSk6IFthbnlbXSwgYW55W10sIGFueVtdXSB7XG4gICAgaWYgKHRoaXMuaXNJdGVtTGltaXRSZWFjaGVkKSB7XG4gICAgICByZXR1cm4gW1tdLCBbXSwgdGhpcy5faXRlbXNUb1ZhbHVlKGl0ZW1zKV07XG4gICAgfVxuICAgIGxldCB1bnNlbGVjdGVkID0gW107XG4gICAgaWYgKCF0aGlzLl9hcmRQYXJlbnRDb21wLm11bHRpc2VsZWN0YWJsZSkge1xuICAgICAgdW5zZWxlY3RlZCA9IHRoaXMuY2xlYXJBbGxTZWxlY3RlZChmYWxzZSk7XG4gICAgfVxuXG4gICAgbGV0IGl0ZW1zU2VsZWN0ZWRDb3VudCA9IDA7XG4gICAgY29uc3QgaXRlbXNTZWxlY3RlZCA9IFtdO1xuICAgIGZvciAoY29uc3QgaXRlbSBvZiBpdGVtcykge1xuICAgICAgaXRlbXNTZWxlY3RlZENvdW50Kys7XG4gICAgICBpZiAoaXRlbS5zZWxlY3RlZCkgY29udGludWU7XG4gICAgICBpZiAodGhpcy5pc0l0ZW1MaW1pdFJlYWNoZWQpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBpdGVtLnNlbGVjdGVkID0gdHJ1ZTtcbiAgICAgIHRoaXMuX3NlbGVjdGVkSXRlbXMucHVzaChpdGVtKTtcbiAgICAgIGl0ZW1zU2VsZWN0ZWQucHVzaChpdGVtKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fYXJkUGFyZW50Q29tcC5oaWRlU2VsZWN0ZWQpIHtcbiAgICAgIHRoaXMuX3BvcHVsYXRlR3JvdXBzKCk7XG4gICAgfVxuXG4gICAgY29uc3QgaXRlbXNGYWlsZWRUb1NlbGVjdCA9IGl0ZW1zLnNsaWNlKGl0ZW1zU2VsZWN0ZWRDb3VudCAtIDEpO1xuICAgIHJldHVybiBbdGhpcy5faXRlbXNUb1ZhbHVlKGl0ZW1zU2VsZWN0ZWQpLCB1bnNlbGVjdGVkLCB0aGlzLl9pdGVtc1RvVmFsdWUoaXRlbXNGYWlsZWRUb1NlbGVjdCldO1xuICB9XG4gIHVuc2VsZWN0SXRlbSguLi5pdGVtczogQXJkT3B0aW9uW10pOiBhbnlbXSB7XG4gICAgZm9yIChjb25zdCBpdGVtIG9mIGl0ZW1zKSB7XG4gICAgICBpZiAoIWl0ZW0uc2VsZWN0ZWQpIGNvbnRpbnVlO1xuICAgICAgaXRlbS5zZWxlY3RlZCA9IGZhbHNlO1xuICAgIH1cbiAgICB0aGlzLl9zZWxlY3RlZEl0ZW1zID0gdGhpcy5fc2VsZWN0ZWRJdGVtcy5maWx0ZXIodiA9PiB2LnNlbGVjdGVkKTtcblxuICAgIGlmICh0aGlzLl9hcmRQYXJlbnRDb21wLmhpZGVTZWxlY3RlZCkgdGhpcy5fcG9wdWxhdGVHcm91cHMoKTtcblxuICAgIHJldHVybiB0aGlzLl9pdGVtc1RvVmFsdWUoaXRlbXMpO1xuICB9XG5cbiAgY2xlYXJBbGxIaWdobGlnaHRzKCk6IHZvaWQge1xuICAgIGZvciAoY29uc3QgaXRlbSBvZiB0aGlzLl9oaWdobGlnaHRlZEl0ZW1zKSB7XG4gICAgICBpdGVtLmhpZ2hsaWdodGVkID0gZmFsc2U7XG4gICAgfVxuICAgIGZvciAoY29uc3QgZ3JvdXAgb2YgdGhpcy5faGlnaGxpZ2h0ZWRHcm91cHMpIHtcbiAgICAgIGdyb3VwLmhpZ2hsaWdodGVkID0gZmFsc2U7XG4gICAgfVxuICAgIHRoaXMuX2hpZ2hsaWdodGVkSXRlbXMgPSBbXTtcbiAgICB0aGlzLl9oaWdobGlnaHRlZEdyb3VwcyA9IFtdO1xuICB9XG4gIGhpZ2hsaWdodEdyb3VwKGdyb3VwOiBBcmRPcHRpb25Hcm91cCk6IEFyZE9wdGlvbiB7XG4gICAgdGhpcy5jbGVhckFsbEhpZ2hsaWdodHMoKTtcbiAgICBncm91cC5oaWdobGlnaHRlZCA9IHRydWU7XG4gICAgdGhpcy5oaWdobGlnaHRJdGVtKC4uLmdyb3VwLmNoaWxkcmVuKTtcbiAgICByZXR1cm4gZ3JvdXAuY2hpbGRyZW4uZmlyc3QoKTtcbiAgfVxuICBoaWdobGlnaHRTaW5nbGVJdGVtKGl0ZW06IEFyZE9wdGlvbik6IEFyZE9wdGlvbiB8IG51bGwge1xuICAgIGlmICghaXRlbSB8fCBpdGVtLmRpc2FibGVkKSByZXR1cm4gbnVsbDtcbiAgICB0aGlzLmNsZWFyQWxsSGlnaGxpZ2h0cygpO1xuICAgIHJldHVybiB0aGlzLmhpZ2hsaWdodEl0ZW0oaXRlbSk7XG4gIH1cbiAgaGlnaGxpZ2h0SXRlbSguLi5pdGVtczogQXJkT3B0aW9uW10pOiBBcmRPcHRpb24ge1xuICAgIGZvciAoY29uc3QgaXRlbSBvZiBpdGVtcykge1xuICAgICAgaXRlbS5oaWdobGlnaHRlZCA9IHRydWU7XG4gICAgfVxuICAgIHRoaXMuX2hpZ2hsaWdodGVkSXRlbXMucHVzaCguLi5pdGVtcyk7XG4gICAgcmV0dXJuIGl0ZW1zLmxhc3QoKTtcbiAgfVxuICB1bmhpZ2hsaWdodEl0ZW0oLi4uaXRlbXM6IEFyZE9wdGlvbltdKTogdm9pZCB7XG4gICAgZm9yIChjb25zdCBpdGVtIG9mIGl0ZW1zKSB7XG4gICAgICBpZiAoIWl0ZW0gfHwgIWl0ZW0uaGlnaGxpZ2h0ZWQpIHJldHVybjtcblxuICAgICAgaXRlbS5oaWdobGlnaHRlZCA9IGZhbHNlO1xuICAgIH1cbiAgICB0aGlzLl9oaWdobGlnaHRlZEl0ZW1zID0gdGhpcy5faGlnaGxpZ2h0ZWRJdGVtcy5maWx0ZXIodiA9PiB2LmhpZ2hsaWdodGVkKTtcbiAgfVxuICBoaWdobGlnaHRGaXJzdEl0ZW0oKTogQXJkT3B0aW9uIHwgbnVsbCB7XG4gICAgdGhpcy5jbGVhckFsbEhpZ2hsaWdodHMoKTtcbiAgICBsZXQgaXRlbXNUb0hpZ2hsaWdodCA9IHRoaXMuX2dldEhpZ2xpZ2h0YWJsZUl0ZW1zKCk7XG4gICAgcmV0dXJuIHRoaXMuaGlnaGxpZ2h0U2luZ2xlSXRlbShpdGVtc1RvSGlnaGxpZ2h0LmZpcnN0KCkpO1xuICB9XG4gIGhpZ2hsaWdodExhc3RJdGVtKCk6IEFyZE9wdGlvbiB8IG51bGwge1xuICAgIHRoaXMuY2xlYXJBbGxIaWdobGlnaHRzKCk7XG4gICAgbGV0IGl0ZW1zVG9IaWdobGlnaHQgPSB0aGlzLl9nZXRIaWdsaWdodGFibGVJdGVtcygpO1xuICAgIHJldHVybiB0aGlzLmhpZ2hsaWdodFNpbmdsZUl0ZW0oaXRlbXNUb0hpZ2hsaWdodC5sYXN0KCkpO1xuICB9XG4gIHByaXZhdGUgX2dldEhpZ2xpZ2h0YWJsZUl0ZW1zKCk6IEFyZE9wdGlvbltdIHtcbiAgICBsZXQgaXRlbXNUb0hpZ2hsaWdodCA9IHRoaXMuX2ZpbHRlcmVkSXRlbXMuZmlsdGVyKGl0ZW0gPT4gIWl0ZW0uZGlzYWJsZWQpO1xuICAgIGlmICh0aGlzLl9hcmRQYXJlbnRDb21wLmhpZGVTZWxlY3RlZCkge1xuICAgICAgaXRlbXNUb0hpZ2hsaWdodCA9IGl0ZW1zVG9IaWdobGlnaHQuZmlsdGVyKGl0ZW0gPT4gIWl0ZW0uc2VsZWN0ZWQpO1xuICAgIH1cbiAgICByZXR1cm4gaXRlbXNUb0hpZ2hsaWdodDtcbiAgfVxuICBoaWdobGlnaHRBbGxJdGVtcygpOiB2b2lkIHtcbiAgICBsZXQgaXRlbXNUb0hpZ2hsaWdodCA9IHRoaXMuX2ZpbHRlcmVkSXRlbXMuZmlsdGVyKGl0ZW0gPT4gIWl0ZW0uZGlzYWJsZWQpO1xuXG4gICAgaWYgKHRoaXMuX2FyZFBhcmVudENvbXAuaGlkZVNlbGVjdGVkKSB7XG4gICAgICBpdGVtc1RvSGlnaGxpZ2h0ID0gaXRlbXNUb0hpZ2hsaWdodC5maWx0ZXIoaXRlbSA9PiAhaXRlbS5zZWxlY3RlZCk7XG4gICAgfVxuICAgIHRoaXMuaGlnaGxpZ2h0SXRlbSguLi5pdGVtc1RvSGlnaGxpZ2h0KTtcbiAgfVxuICBwcml2YXRlIF9jbGVhclJlY2VudGx5SGlnaGxpZ2h0ZWQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX3JlY2VudGx5SGlnaGxpZ2h0ZWRJdGVtKSB7XG4gICAgICB0aGlzLl9yZWNlbnRseUhpZ2hsaWdodGVkSXRlbS5oaWdobGlnaHRlZF9yZWNlbnRseSA9IGZhbHNlO1xuICAgIH1cbiAgfVxuICBzZXRSZWNlbnRseUhpZ2hsaWdodGVkKGl0ZW06IEFyZE9wdGlvbik6IHZvaWQge1xuICAgIHRoaXMuX2NsZWFyUmVjZW50bHlIaWdobGlnaHRlZCgpO1xuICAgIHRoaXMuX3JlY2VudGx5SGlnaGxpZ2h0ZWRJdGVtID0gaXRlbTtcbiAgICB0aGlzLl9yZWNlbnRseUhpZ2hsaWdodGVkSXRlbS5oaWdobGlnaHRlZF9yZWNlbnRseSA9IHRydWU7XG4gIH1cbiAgaGlnaGxpZ2h0TmV4dEl0ZW0ob2Zmc2V0OiBudW1iZXIsIGhhc1NoaWZ0PzogYm9vbGVhbik6IEFyZE9wdGlvbiB8IG51bGwge1xuICAgIGlmICghdGhpcy5pc0FueUl0ZW1IaWdobGlnaHRlZCkge1xuICAgICAgcmV0dXJuIHRoaXMuaGlnaGxpZ2h0Rmlyc3RJdGVtKCk7XG4gICAgfVxuICAgIGNvbnN0IGN1cnJlbnRJdGVtID0gdGhpcy5oaWdobGlnaHRlZEl0ZW1zLmxhc3QoKTtcbiAgICBjb25zdCBoaWdobGlnaHRhYmxlSXRlbXMgPSB0aGlzLl9nZXRIaWdsaWdodGFibGVJdGVtcygpO1xuICAgIGNvbnN0IGN1cnJlbnRJbmRleEluRmlsdGVyZWQgPSBoaWdobGlnaHRhYmxlSXRlbXMuZmluZEluZGV4KGl0ZW0gPT4gaXRlbS5pbmRleCA9PSBjdXJyZW50SXRlbS5pbmRleCk7XG5cbiAgICBsZXQgbmV4dEl0ZW1JbmRleCA9IGN1cnJlbnRJbmRleEluRmlsdGVyZWQgKyBvZmZzZXQ7XG4gICAgaWYgKG5leHRJdGVtSW5kZXggPj0gaGlnaGxpZ2h0YWJsZUl0ZW1zLmxlbmd0aCkge1xuICAgICAgbmV4dEl0ZW1JbmRleCAtPSBoaWdobGlnaHRhYmxlSXRlbXMubGVuZ3RoO1xuICAgIH1cbiAgICBpZiAobmV4dEl0ZW1JbmRleCA8IDApIHtcbiAgICAgIG5leHRJdGVtSW5kZXggKz0gaGlnaGxpZ2h0YWJsZUl0ZW1zLmxlbmd0aDtcbiAgICB9XG4gICAgY29uc3QgaXRlbVRvSGlnaGxpZ2h0ID0gaGlnaGxpZ2h0YWJsZUl0ZW1zW25leHRJdGVtSW5kZXhdO1xuXG4gICAgaWYgKGhhc1NoaWZ0ICYmIHRoaXMuX2FyZFBhcmVudENvbXAubXVsdGlzZWxlY3RhYmxlKSB7XG4gICAgICBpZiAoaXRlbVRvSGlnaGxpZ2h0LmhpZ2hsaWdodGVkKSB7XG4gICAgICAgIHRoaXMudW5oaWdobGlnaHRJdGVtKGN1cnJlbnRJdGVtKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLmhpZ2hsaWdodEl0ZW0oaXRlbVRvSGlnaGxpZ2h0KTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuaGlnaGxpZ2h0U2luZ2xlSXRlbShpdGVtVG9IaWdobGlnaHQpO1xuICB9XG4gIGZpbHRlcihmaWx0ZXJUZXJtOiBzdHJpbmcpOiBhbnlbXSB7XG4gICAgaWYgKCFmaWx0ZXJUZXJtKSB7XG4gICAgICB0aGlzLnJlc2V0RmlsdGVyZWQoKTtcbiAgICAgIHJldHVybiB0aGlzLl9pdGVtc1RvVmFsdWUodGhpcy5fZmlsdGVyZWRJdGVtcyk7XG4gICAgfVxuICAgIGlmICghdGhpcy5fYXJkUGFyZW50Q29tcC5zZWFyY2hDYXNlU2Vuc2l0aXZlKSB7XG4gICAgICBmaWx0ZXJUZXJtID0gZmlsdGVyVGVybS50b0xvY2FsZUxvd2VyQ2FzZSgpO1xuICAgIH1cblxuICAgIGNvbnN0IHNlYXJjaEZuID0gdGhpcy5fYXJkUGFyZW50Q29tcC5zZWFyY2hGbjtcbiAgICB0aGlzLl9maWx0ZXJlZEl0ZW1zID0gdGhpcy5faXRlbXMuZmlsdGVyKGl0ZW0gPT4gc2VhcmNoRm4oZmlsdGVyVGVybSwgaXRlbSkpO1xuXG4gICAgdGhpcy5fcG9wdWxhdGVHcm91cHMoKTtcblxuICAgIGlmICghdGhpcy5pc05vSXRlbXNGb3VuZCkgdGhpcy5oaWdobGlnaHRGaXJzdEl0ZW0oKTtcbiAgICBlbHNlIHRoaXMuY2xlYXJBbGxIaWdobGlnaHRzKCk7XG5cbiAgICByZXR1cm4gdGhpcy5faXRlbXNUb1ZhbHVlKHRoaXMuX2ZpbHRlcmVkSXRlbXMpO1xuICB9XG4gIHJlc2V0RmlsdGVyZWQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2ZpbHRlcmVkSXRlbXMubGVuZ3RoID09IHRoaXMuX2l0ZW1zLmxlbmd0aCkgcmV0dXJuO1xuXG4gICAgaWYgKHRoaXMuX2FyZFBhcmVudENvbXAuaGlkZVNlbGVjdGVkICYmIHRoaXMuaXNBbnlJdGVtU2VsZWN0ZWQpIHtcbiAgICAgIHRoaXMuX2ZpbHRlcmVkSXRlbXMgPSB0aGlzLl9pdGVtcy5maWx0ZXIoaXRlbSA9PiAhaXRlbS5zZWxlY3RlZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2ZpbHRlcmVkSXRlbXMgPSB0aGlzLl9pdGVtcztcbiAgICB9XG4gICAgdGhpcy5fcG9wdWxhdGVHcm91cHMoKTtcbiAgfVxufVxuIl19
|
|
@@ -346,4 +346,4 @@ export class SimpleItemStorage {
|
|
|
346
346
|
return this._items.filter(item => !item.disabled);
|
|
347
347
|
}
|
|
348
348
|
}
|
|
349
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxlLWl0ZW0tc3RvcmFnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvX2ludGVybmFsL2l0ZW0tc3RvcmFnZXMvc2ltcGxlLWl0ZW0tc3RvcmFnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLFdBQVcsTUFBTSxxQkFBcUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQW1COUUsTUFBTSxPQUFPLGlCQUFpQjtJQUsxQixZQUFvQixjQUFxQztRQUFyQyxtQkFBYyxHQUFkLGNBQWMsQ0FBdUI7UUFKakQsV0FBTSxHQUFzQixFQUFFLENBQUM7UUFDL0Isc0JBQWlCLEdBQXNCLEVBQUUsQ0FBQztRQUMxQyxtQkFBYyxHQUFzQixFQUFFLENBQUM7SUFFYSxDQUFDO0lBRTdEOztPQUVHO0lBQ0gsSUFBSSxLQUFLO1FBQ0wsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFDRDs7T0FFRztJQUNILElBQUksYUFBYTtRQUNiLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUMvQixDQUFDO0lBQ0Q7O09BRUc7SUFDSCxJQUFJLGdCQUFnQjtRQUNoQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztJQUNsQyxDQUFDO0lBQ0Q7O09BRUc7SUFDSCxJQUFJLEtBQUs7UUFDTCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFDRDs7OztPQUlHO0lBQ0ssYUFBYSxDQUFDLEtBQXdCO1FBQzFDLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJ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O2dCQUM3QixJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxDQUFDO2FBQ3JDO1lBQ0QsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1NBQzlDO1FBQ0QsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUNEOzs7T0FHRztJQUNLLHFCQUFxQjtRQUN6QixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdEQsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXJkT3B0aW9uU2ltcGxlLCBDb21wYXJlV2l0aEZuIH0gZnJvbSAnLi4vLi4vdHlwZXMvaXRlbS1zdG9yYWdlLnR5cGVzJztcbmltcG9ydCByZXNvbHZlUGF0aCBmcm9tICdyZXNvbHZlLW9iamVjdC1wYXRoJztcbmltcG9ydCB7IGFueSwgZXZhbHVhdGUsIGlzRGVmaW5lZCwgaXNPYmplY3QsIGlzUHJpbWl0aXZlIH0gZnJvbSAnc2ltcGxlLWJvb2wnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEl0ZW1TdG9yYWdlSG9zdERlZmF1bHRzIHtcbiAgICB2YWx1ZUZyb206IHN0cmluZztcbiAgICBsYWJlbEZyb206IHN0cmluZztcbiAgICBkaXNhYmxlZEZyb206IHN0cmluZztcbn1cbmV4cG9ydCBpbnRlcmZhY2UgU2ltcGxlSXRlbVN0b3JhZ2VIb3N0IHtcbiAgICB2YWx1ZUZyb20/OiBzdHJpbmc7XG4gICAgbGFiZWxGcm9tPzogc3RyaW5nO1xuICAgIGRpc2FibGVkRnJvbT86IHN0cmluZztcbiAgICBpbnZlcnREaXNhYmxlZD86IGJvb2xlYW47XG4gICAgcmVhZG9ubHkgREVGQVVMVFM6IEl0ZW1TdG9yYWdlSG9zdERlZmF1bHRzO1xuICAgIGNvbXBhcmVXaXRoPzogQ29tcGFyZVdpdGhGbjtcbiAgICBtdWx0aXNlbGVjdGFibGU6IGJvb2xlYW47XG4gICAgcmVxdWlyZVZhbHVlOiBib29sZWFuO1xuICAgIG1heFNlbGVjdGVkSXRlbXM/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBjbGFzcyBTaW1wbGVJdGVtU3RvcmFnZSB7XG4gICAgcHJpdmF0ZSBfaXRlbXM6IEFyZE9wdGlvblNpbXBsZVtdID0gW107XG4gICAgcHJpdmF0ZSBfaGlnaGxpZ2h0ZWRJdGVtczogQXJkT3B0aW9uU2ltcGxlW10gPSBbXTtcbiAgICBwcml2YXRlIF9zZWxlY3RlZEl0ZW1zOiBBcmRPcHRpb25TaW1wbGVbXSA9IFtdO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfYXJkUGFyZW50Q29tcDogU2ltcGxlSXRlbVN0b3JhZ2VIb3N0KSB7fVxuXG4gICAgLyoqXG4gICAgICogR2V0cyBhbGwgaXRlbXMuXG4gICAgICovXG4gICAgZ2V0IGl0ZW1zKCk6IEFyZE9wdGlvblNpbXBsZVtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2l0ZW1zO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBHZXRzIGFsbCBjdXJyZW50bHkgc2VsZWN0ZWQgaXRlbXMuXG4gICAgICovXG4gICAgZ2V0IHNlbGVjdGVkSXRlbXMoKTogQXJkT3B0aW9uU2ltcGxlW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5fc2VsZWN0ZWRJdGVtcztcbiAgICB9XG4gICAgLyoqXG4gICAgICogR2V0cyBhbGwgY3VycmVudGx5IGhpZ2hsaWdodGVkIGl0ZW1zLlxuICAgICAqL1xuICAgIGdldCBoaWdobGlnaHRlZEl0ZW1zKCk6IEFyZE9wdGlvblNpbXBsZVtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hpZ2hsaWdodGVkSXRlbXM7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIHZhbHVlcyBvZiB0aGUgY3VycmVudGx5IHNlbGVjdGVkIGl0ZW1zLlxuICAgICAqL1xuICAgIGdldCB2YWx1ZSgpOiBhbnlbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pdGVtc1RvVmFsdWUodGhpcy5zZWxlY3RlZEl0ZW1zKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogTWFwcyBhbiBhcnJheSBvZiBpdGVtcyBpbnRvIHRoZWlyIHZhbHVlcy5cbiAgICAgKiBAcGFyYW0gaXRlbXMgVGhlIGl0ZW1zIHRvIGNvbnZlcnQgdG8gdmFsdWUuXG4gICAgICogQHJldHVybnMgQW4gYXJyYXkgb2YgaXRlbSB2YWx1ZXMuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfaXRlbXNUb1ZhbHVlKGl0ZW1zOiBBcmRPcHRpb25TaW1wbGVbXSk6IGFueVtdIHtcbiAgICAgICAgcmV0dXJuIGl0ZW1zLm1hcChpdGVtID0+IGl0ZW0udmFsdWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdHJ1ZSBpZiBhdCBsZWFzdCBvbmUgaXRlbSBpcyBoaWdobGlnaHRlZCwgb3RoZXJ3aXNlIGZhbHNlLlxuICAgICAqL1xuICAgIGdldCBpc0FueUl0ZW1IaWdobGlnaHRlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hpZ2hsaWdodGVkSXRlbXMubGVuZ3RoID4gMDtcbiAgICB9XG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0cnVlIGlmIHRoZSBwYXJlbnQgY29tcG9uZW50IGRlZmluZXMgdGhlIGxpbWl0IG9mIGNvbmN1cnJlbnRseSBzZWxlY3RhYmxlIGl0ZW1zIGFuZCB0aGUgYW1vdW50IG9mIGN1cnJlbnRseSBzZWxlY3RlZCBpdGVtcyBtYXRjaGVzIHRoYXQgbGltaXQuIE90aGVyd2lzZSByZXR1cm5zIGZhbHNlLlxuICAgICAqXG4gICAgICogKipUTERSKio6IHRydWUgaWYgYG1heFNlbGVjdGVkSXRlbXNgIGlzIGRlZmluZWQgYW5kIHRoZSBudW1iZXIgb2Ygc2VsZWN0ZWQgaXRlbXMgbWF0Y2hlcyB0aGF0IHZhbHVlLlxuICAgICAqL1xuICAgIGdldCBpc0l0ZW1MaW1pdFJlYWNoZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICghdGhpcy5fYXJkUGFyZW50Q29tcC5tdWx0aXNlbGVjdGFibGUgfHwgIWlzRGVmaW5lZCh0aGlzLl9hcmRQYXJlbnRDb21wLm1heFNlbGVjdGVkSXRlbXMpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuX2FyZFBhcmVudENvbXAubWF4U2VsZWN0ZWRJdGVtcyA8PSB0aGlzLnNlbGVjdGVkSXRlbXMubGVuZ3RoO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIGNvbXBvbmVudCdzIGl0ZW1zLiBUYWtlcyBpbnRvIGFjY291bnQgdGhlIHZhbHVlcyBkZWZpbmVkIGJ5IHRoZSBwYXJlbnQgY29tcG9uZW50IGZvciBgdmFsdWVGcm9tYCwgYGxhYmVsRnJvbWAsIGFuZCBgZGlzYWJsZWRGcm9tYC5cbiAgICAgKiBAcGFyYW0gaXRlbXMgQW4gYXJyYXkgb2YgaXRlbXMgdG8gYmUgc2V0IGFzIHRoZSBjb21wb25lbnQncyBpdGVtcy5cbiAgICAgKiBAcmV0dXJucyB0cnVlIGlmIGF0IGxlYXN0IG9uZSBvZiB0aGUgaXRlbXMgaXMgb2YgcHJpbWl0aXZlIHR5cGUsIG90aGVyd2lzZSBmYWxzZS5cbiAgICAgKi9cbiAgICBzZXRJdGVtcyhpdGVtczogYW55W10pOiBib29sZWFuIHtcbiAgICAgICAgbGV0IGFyZUl0ZW1zUHJpbWl0aXZlID0gZmFsc2U7XG4gICAgICAgIGlmIChhbnkoaXRlbXMsIGlzUHJpbWl0aXZlKSkge1xuICAgICAgICAgICAgaXRlbXMgPSBpdGVtcy5tYXAodGhpcy5fcHJpbWl0aXZlSXRlbXNNYXBGbik7XG4gICAgICAgICAgICBhcmVJdGVtc1ByaW1pdGl2ZSA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9pdGVtcyA9IGl0ZW1zLm1hcCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9zZXRJdGVtc01hcEZuKGl0ZW0sIGluZGV4LCBhcmVJdGVtc1ByaW1pdGl2ZSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBhcmVJdGVtc1ByaW1pdGl2ZTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfcHJpbWl0aXZlSXRlbXNNYXBGbjxUPihpdGVtOiBUKTogeyB2YWx1ZTogVCB9IHtcbiAgICAgICAgcmV0dXJuIHsgdmFsdWU6IGl0ZW0gfTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfc2V0SXRlbXNNYXBGbihyYXdJdGVtRGF0YTogYW55LCBpbmRleDogbnVtYmVyLCBhcmVJdGVtc1ByaW1pdGl2ZTogYm9vbGVhbik6IEFyZE9wdGlvblNpbXBsZSB7XG4gICAgICAgIGlmIChhcmVJdGVtc1ByaW1pdGl2ZSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBpdGVtRGF0YTogcmF3SXRlbURhdGEsXG4gICAgICAgICAgICAgICAgaW5kZXgsXG4gICAgICAgICAgICAgICAgdmFsdWU6IHJhd0l0ZW1EYXRhLnZhbHVlLFxuICAgICAgICAgICAgICAgIGxhYmVsOiByYXdJdGVtRGF0YS52YWx1ZT8udG9TdHJpbmc/LigpID8/IFN0cmluZyhyYXdJdGVtRGF0YS52YWx1ZSksXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIC8vZ2V0IHZhbHVlXG4gICAgICAgIGNvbnN0IHZhbHVlUGF0aCA9IHRoaXMuX2FyZFBhcmVudENvbXAudmFsdWVGcm9tID8/IHRoaXMuX2FyZFBhcmVudENvbXAubGFiZWxGcm9tID8/IHRoaXMuX2FyZFBhcmVudENvbXAuREVGQVVMVFMudmFsdWVGcm9tO1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHJlc29sdmVQYXRoKHJhd0l0ZW1EYXRhLCB2YWx1ZVBhdGgpO1xuXG4gICAgICAgIC8vZ2V0IGxhYmVsXG4gICAgICAgIGNvbnN0IGxhYmVsUGF0aCA9IHRoaXMuX2FyZFBhcmVudENvbXAubGFiZWxGcm9tID8/IHRoaXMuX2FyZFBhcmVudENvbXAudmFsdWVGcm9tID8/IHRoaXMuX2FyZFBhcmVudENvbXAuREVGQVVMVFMubGFiZWxGcm9tO1xuICAgICAgICBjb25zdCBsYWJlbCA9IHJlc29sdmVQYXRoKHJhd0l0ZW1EYXRhLCBsYWJlbFBhdGgpID8/IHZhbHVlO1xuXG4gICAgICAgIC8vZ2V0IGRpc2FibGVkXG4gICAgICAgIGNvbnN0IGRpc2FibGVkUGF0aCA9IHRoaXMuX2FyZFBhcmVudENvbXAuZGlzYWJsZWRGcm9tID8/IHRoaXMuX2FyZFBhcmVudENvbXAuREVGQVVMVFMuZGlzYWJsZWRGcm9tO1xuICAgICAgICBsZXQgZGlzYWJsZWQgPSBldmFsdWF0ZShyZXNvbHZlUGF0aChyYXdJdGVtRGF0YSwgZGlzYWJsZWRQYXRoKSk7XG4gICAgICAgIGlmICh0aGlzLl9hcmRQYXJlbnRDb21wLmludmVydERpc2FibGVkKSB7XG4gICAgICAgICAgICBkaXNhYmxlZCA9ICFkaXNhYmxlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGl0ZW1EYXRhID0gYXJlSXRlbXNQcmltaXRpdmUgPyByYXdJdGVtRGF0YS52YWx1ZSA6IHJhd0l0ZW1EYXRhO1xuXG4gICAgICAgIC8vcmV0dXJuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBpdGVtRGF0YSxcbiAgICAgICAgICAgIGluZGV4LFxuICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICBsYWJlbDogbGFiZWw/LnRvU3RyaW5nPy4oKSA/PyBTdHJpbmcobGFiZWwpLFxuICAgICAgICAgICAgZGlzYWJsZWQsXG4gICAgICAgIH07XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFdyaXRlcyBhIG5ldyB2YWx1ZSB0byB0aGUgaXRlbSBzdG9yYWdlLiBTZWxlY3RzIHRoZSBjb3JyZWN0IGl0ZW1zIGJhc2VkIG9uIHRoZSBwcm92aWRlZCB2YWx1ZXMsIHdhcm5pbmcgdGhlIHVzZXIgaWYgdGhlIHZhbHVlIGlzIG5vdCBmb3VuZC5cbiAgICAgKiBAcGFyYW0gbmdNb2RlbCBUaGUgdmFsdWUgb2YgdGhlIG5nTW9kZWwgdG8gc2V0LlxuICAgICAqL1xuICAgIHdyaXRlVmFsdWUobmdNb2RlbDogYW55W10pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZm9yY2VVbnNlbGVjdEFsbCgpO1xuXG4gICAgICAgIGlmICghdGhpcy5fdmFsaWRhdGVXcml0ZVZhbHVlKG5nTW9kZWwpKSByZXR1cm47XG5cbiAgICAgICAgY29uc3Qgc2VsZWN0SXRlbUJ5VmFsdWUgPSAodmFsdWU6IGFueSkgPT4ge1xuICAgICAgICAgICAgbGV0IGl0ZW0gPSB0aGlzLmZpbmRJdGVtQnlWYWx1ZSh2YWx1ZSk7XG5cbiAgICAgICAgICAgIGlmIChpdGVtKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RJdGVtKGl0ZW0pO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnNvbGUud2FybihgQ291bGRuJ3QgZmluZCBhbiBpdGVtIHdpdGggdmFsdWUgJHt2YWx1ZT8udG9TdHJpbmc/LigpIHx8IFN0cmluZyh2YWx1ZSl9LmApO1xuICAgICAgICB9O1xuXG4gICAgICAgIGZvciAoY29uc3QgbW9kZWxWYWx1ZSBvZiBuZ01vZGVsKSB7XG4gICAgICAgICAgICBzZWxlY3RJdGVtQnlWYWx1ZShtb2RlbFZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBWYWxpZGF0ZXMgdGhhdCBhbGwgdmFsdWVzIG9mIHRoZSB2YWx1ZSB0byBiZSB3cml0dGVuIGFyZSBhYmxlIHRvIGJlIGFjY3VyYXRlbHkgY29tcGFyZWQgYWdhaW5zdCB0aGUgc3RvcmFnZSBpdGVtcy5cbiAgICAgKlxuICAgICAqIEFuIGl0ZW0gZnJvbSB0aGUgbmdNb2RlbCBhcnJheSBpcyBjb25zaWRlcmVkIHZhbGlkIGlmIGl0IGlzIGEgcHJpbWl0aXZlIHZhbHVlLCBvciBpZiBhbGwgb2YgdGhlIGJlbG93IHBvaW50cyBhcmUgbWV0OlxuICAgICAqIDEuIFRoZSBwYXJlbnQgY29tcG9uZW50IGRlZmluZXMgdGhlIGBjb21wYXJlV2l0aGAgcHJvcGVydHkuXG4gICAgICogMi4gVGhlIG5nTW9kZWwgdmFsdWUgaXRlbSBpcyBhbiBvYmplY3QgKG9yIGFycmF5KS5cbiAgICAgKiAzLiBUaGUgcGFyZW50IGNvbXBvbmVudCBoYXMgYSBkZWZpbmVkIGB2YWx1ZUZyb21gIHByb3BlcnR5LlxuICAgICAqIEBwYXJhbSBuZ01vZGVsIFRoZSB2YWx1ZSBvZiBuZ01vZGVsIHRvIHZhbGlkYXRlLlxuICAgICAqIEByZXR1cm5zIHRydWUgaWYgYWxsIGl0ZW1zIGFyZSB2YWxpZCwgb3RoZXJ3aXNlIGZhbHNlLlxuICAgICAqL1xuICAgIHByaXZhdGUgX3ZhbGlkYXRlV3JpdGVWYWx1ZShuZ01vZGVsOiBhbnlbXSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gbmdNb2RlbC5ldmVyeShpdGVtID0+IHtcbiAgICAgICAgICAgIGlmICghaXNEZWZpbmVkKHRoaXMuX2FyZFBhcmVudENvbXAuY29tcGFyZVdpdGgpICYmIGlzT2JqZWN0KGl0ZW0pICYmIHRoaXMuX2FyZFBhcmVudENvbXAudmFsdWVGcm9tKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKGBTZXR0aW5nIG9iamVjdCgke0pTT04uc3RyaW5naWZ5KGl0ZW0pfSkgYXMgeW91ciBtb2RlbCB3aXRoIFt2YWx1ZUZyb21dIGlzIG5vdCBhbGxvd2VkIHVubGVzcyBbY29tcGFyZVdpdGhdIGlzIHVzZWQuYCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBmaW5kSXRlbUJ5VmFsdWUodmFsdWVUb0ZpbmQ6IGFueSk6IEFyZE9wdGlvblNpbXBsZSB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGxldCBmaW5kQnk6IChpdGVtOiBBcmRPcHRpb25TaW1wbGUpID0+IGJvb2xlYW47XG4gICAgICAgIGlmIChpc0RlZmluZWQodGhpcy5fYXJkUGFyZW50Q29tcC5jb21wYXJlV2l0aCkpIHtcbiAgICAgICAgICAgIGZpbmRCeSA9IGl0ZW0gPT4gdGhpcy5fYXJkUGFyZW50Q29tcC5jb21wYXJlV2l0aCEodmFsdWVUb0ZpbmQsIGl0ZW0udmFsdWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZmluZEJ5ID0gaXRlbSA9PiBpdGVtLnZhbHVlID09PSB2YWx1ZVRvRmluZDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5faXRlbXMuZmluZChpdGVtID0+IGZpbmRCeShpdGVtKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVW5zZWxlY3RzIGFsbCBzZWxlY3RlZCBpdGVtcy5cbiAgICAgKlxuICAgICAqIElmIHRoZSBwYXJlbnQgY29tcG9uZW50IHJlcXVpcmVzIGF0IGxlYXN0IG9uZSB2YWx1ZSB0byBiZSBzZWxlY3RlZCBhdCBhbGwgdGltZXMsIHRoZSBmaXJzdCBzZWxlY3RlZCBpdGVtcyBpcyBsZWZ0IHNlbGVjdGVkLlxuICAgICAqIEByZXR1cm5zIEFuIGFycmF5IG9mIGl0ZW1zIGNsZWFyZWQsIG1hcHBlZCB0byBvbmx5IHRoZWlyIHZhbHVlcy5cbiAgICAgKi9cbiAgICB1bnNlbGVjdEFsbCgpOiBhbnlbXSB7XG4gICAgICAgIGZvciAoY29uc3QgaXRlbSBvZiB0aGlzLl9zZWxlY3RlZEl0ZW1zKSB7XG4gICAgICAgICAgICBpdGVtLnNlbGVjdGVkID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByZXQgPSB0aGlzLl9pdGVtc1RvVmFsdWUodGhpcy5fc2VsZWN0ZWRJdGVtcyk7XG5cbiAgICAgICAgaWYgKHRoaXMuX2FyZFBhcmVudENvbXAucmVxdWlyZVZhbHVlICYmIHRoaXMuX3NlbGVjdGVkSXRlbXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy5fc2VsZWN0ZWRJdGVtcy5maXJzdCgpLnNlbGVjdGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIHJldC5zcGxpY2UoMCwgMSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9zZWxlY3RlZEl0ZW1zID0gW107XG5cbiAgICAgICAgcmV0dXJuIHJldDtcbiAgICB9XG4gICAgLyoqXG4gICAgICogVW5zZWxlY3RzIGFsbCBzZWxlY3RlZCBpdGVtcywgbm8gbWF0dGVyIHdoYXQgdGhlIGNvbXBvbmVudCBzZXR0aW5ncyBhcmUuXG4gICAgICogQHJldHVybnMgQW4gYXJyYXkgb2YgaXRlbXMgY2xlYXJlZCwgbWFwcGVkIHRvIG9ubHkgdGhlaXIgdmFsdWVzLlxuICAgICAqL1xuICAgIHByaXZhdGUgX2ZvcmNlVW5zZWxlY3RBbGwoKTogYW55W10ge1xuICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdGhpcy5fc2VsZWN0ZWRJdGVtcykge1xuICAgICAgICAgICAgaXRlbS5zZWxlY3RlZCA9IGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcmV0ID0gdGhpcy5faXRlbXNUb1ZhbHVlKHRoaXMuX3NlbGVjdGVkSXRlbXMpO1xuXG4gICAgICAgIHRoaXMuX3NlbGVjdGVkSXRlbXMgPSBbXTtcblxuICAgICAgICByZXR1cm4gcmV0O1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBTZWxlY3RzIG9uZSBvciBtdWx0aXBsZSBpdGVtcy5cbiAgICAgKlxuICAgICAqIEFjY291bnRzIGZvciB0aGUgbGltaXQgb2YgY29uY3VycmVudGx5IHNlbGVjdGVkIGl0ZW1zIGRlZmluZWQgYnkgdGhlIHBhcmVudCBjb21wb25lbnQuXG4gICAgICogQHBhcmFtIGl0ZW1zIEEgcmVzdCBvcGVyYXRvciBhcnJheSBvZiBpdGVtIG9iamVjdHMgdG8gYmUgc2VsZWN0ZWQuXG4gICAgICogQHJldHVybnMgQSB0dXBsZSBjb250YWluaW5nIHRocmVlIGFycmF5cywgYWxsIG1hcHBlZCB0byBvbmx5IHRoZWlyIHZhbHVlczpcbiAgICAgKiAqIEFuIGFycmF5IG9mIGl0ZW1zIHNlbGVjdGVkLFxuICAgICAqICogQW4gYXJyYXkgb2YgaXRlbXMgdW5zZWxlY3RlZCxcbiAgICAgKiAqIEFuIGFycmF5IG9mIGl0ZW1zIGZhaWxlZCB0byBzZWxlY3QgZHVlIHRvIHRoZSBsaW1pdC5cbiAgICAgKi9cbiAgICBzZWxlY3RJdGVtKC4uLml0ZW1zOiBBcmRPcHRpb25TaW1wbGVbXSk6IFthbnlbXSwgYW55W10sIGFueVtdXSB7XG4gICAgICAgIGlmICh0aGlzLmlzSXRlbUxpbWl0UmVhY2hlZCkge1xuICAgICAgICAgICAgcmV0dXJuIFtbXSwgW10sIHRoaXMuX2l0ZW1zVG9WYWx1ZShpdGVtcyldO1xuICAgICAgICB9XG4gICAgICAgIGxldCB1bnNlbGVjdGVkID0gW107XG4gICAgICAgIGlmICghdGhpcy5fYXJkUGFyZW50Q29tcC5tdWx0aXNlbGVjdGFibGUpIHtcbiAgICAgICAgICAgIHVuc2VsZWN0ZWQgPSB0aGlzLl9mb3JjZVVuc2VsZWN0QWxsKCk7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgaXRlbXNTZWxlY3RlZENvdW50ID0gMDtcbiAgICAgICAgY29uc3QgaXRlbXNTZWxlY3RlZCA9IFtdO1xuICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgaXRlbXMpIHtcbiAgICAgICAgICAgIGl0ZW1zU2VsZWN0ZWRDb3VudCsrO1xuICAgICAgICAgICAgaWYgKGl0ZW0uc2VsZWN0ZWQpIGNvbnRpbnVlO1xuICAgICAgICAgICAgaWYgKHRoaXMuaXNJdGVtTGltaXRSZWFjaGVkKSB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpdGVtLnNlbGVjdGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkSXRlbXMucHVzaChpdGVtKTtcbiAgICAgICAgICAgIGl0ZW1zU2VsZWN0ZWQucHVzaChpdGVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGl0ZW1zRmFpbGVkVG9TZWxlY3QgPSBpdGVtcy5zbGljZShpdGVtc1NlbGVjdGVkQ291bnQgLSAxKTtcbiAgICAgICAgcmV0dXJuIFt0aGlzLl9pdGVtc1RvVmFsdWUoaXRlbXNTZWxlY3RlZCksIHVuc2VsZWN0ZWQsIHRoaXMuX2l0ZW1zVG9WYWx1ZShpdGVtc0ZhaWxlZFRvU2VsZWN0KV07XG4gICAgfVxuICAgIC8qKlxuICAgICAqXG4gICAgICogQHBhcmFtIGl0ZW1zIEEgcmVzdCBvcGVyYXRvciBhcnJheSBvZiBpdGVtIG9iamVjdHMgdG8gYmUgdW5zZWxlY3RlZC5cbiAgICAgKiBAcmV0dXJucyBBbiBhcnJheSBvZiBpdGVtcyB1bnNlbGVjdGVkLCBtYXBwZWQgdG8gb25seSB0aGVpciB2YWx1ZXMuXG4gICAgICovXG4gICAgdW5zZWxlY3RJdGVtKC4uLml0ZW1zOiBBcmRPcHRpb25TaW1wbGVbXSk6IGFueVtdIHtcbiAgICAgICAgbGV0IHNraXBwZWRJdGVtID0gZmFsc2U7XG4gICAgICAgIGZvciAoY29uc3QgaXRlbSBvZiBpdGVtcykge1xuICAgICAgICAgICAgaWYgKHRoaXMuX2FyZFBhcmVudENvbXAucmVxdWlyZVZhbHVlICYmICFza2lwcGVkSXRlbSkge1xuICAgICAgICAgICAgICAgIHNraXBwZWRJdGVtID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCFpdGVtLnNlbGVjdGVkKSBjb250aW51ZTtcbiAgICAgICAgICAgIGl0ZW0uc2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9zZWxlY3RlZEl0ZW1zID0gdGhpcy5fc2VsZWN0ZWRJdGVtcy5maWx0ZXIodiA9PiB2LnNlbGVjdGVkKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5faXRlbXNUb1ZhbHVlKGl0ZW1zKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBVbmhpZ2hsaWdodHMgYWxsIGN1cnJlbnRseSBoaWdobGlnaHRlZCBpdGVtcy5cbiAgICAgKi9cbiAgICB1bmhpZ2hsaWdodEFsbCgpOiB2b2lkIHtcbiAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIHRoaXMuX2hpZ2hsaWdodGVkSXRlbXMpIHtcbiAgICAgICAgICAgIGl0ZW0uaGlnaGxpZ2h0ZWQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9oaWdobGlnaHRlZEl0ZW1zID0gW107XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEhpZ2hsaWdodHMgdGhlIGdpdmVuIGl0ZW0sIHdoaWxlIHVuaGlnaGxpZ2h0aW5nIGFsbCBvdGhlciBpdGVtcy4gRG9lcyBub3RoaW5nIHdoZW4gdGhlIGl0ZW0gaXMgZGlzYWJsZWQuXG4gICAgICogQHBhcmFtIGl0ZW0gVGhlIGl0ZW0gdG8gYmUgaGlnaGxpZ2h0ZWQuXG4gICAgICogQHJldHVybnMgVGhlIGhpZ2hsaWdodGVkIGl0ZW0uXG4gICAgICovXG4gICAgaGlnaGxpZ2h0U2luZ2xlSXRlbShpdGVtOiBBcmRPcHRpb25TaW1wbGUpOiBBcmRPcHRpb25TaW1wbGUgfCBudWxsIHtcbiAgICAgICAgaWYgKCFpdGVtIHx8IGl0ZW0uZGlzYWJsZWQpIHJldHVybiBudWxsO1xuICAgICAgICB0aGlzLnVuaGlnaGxpZ2h0QWxsKCk7XG4gICAgICAgIHJldHVybiB0aGlzLmhpZ2hsaWdodEl0ZW0oaXRlbSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEhpZ2hsaWdodHMgYWxsIGdpdmVuIGl0ZW1zLlxuICAgICAqIEBwYXJhbSBpdGVtcyBBIHJlc3Qgb3BlcmF0b3IgYXJyYXkgb2YgaXRlbXMgdG8gYmUgaGlnaGxpZ2h0ZWQuXG4gICAgICogQHJldHVybnMgVGhlIGxhc3QgaGlnaGxpZ2h0ZWQgaXRlbS5cbiAgICAgKi9cbiAgICBoaWdobGlnaHRJdGVtKC4uLml0ZW1zOiBBcmRPcHRpb25TaW1wbGVbXSk6IEFyZE9wdGlvblNpbXBsZSB7XG4gICAgICAgIGZvciAoY29uc3QgaXRlbSBvZiBpdGVtcykge1xuICAgICAgICAgICAgaXRlbS5oaWdobGlnaHRlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5faGlnaGxpZ2h0ZWRJdGVtcy5wdXNoKC4uLml0ZW1zKTtcbiAgICAgICAgcmV0dXJuIGl0ZW1zLmxhc3QoKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogVW5oaWdobGlnaHRzIGFsbCBnaXZlbiBpdGVtcy5cbiAgICAgKiBAcGFyYW0gaXRlbXMgQSByZXN0IG9wZXJhdG9yIGFycmF5IG9mIGl0ZW1zIHRvIGJlIHVuaGlnaGxpZ2h0ZWQuXG4gICAgICovXG4gICAgdW5oaWdobGlnaHRJdGVtKC4uLml0ZW1zOiBBcmRPcHRpb25TaW1wbGVbXSk6IHZvaWQge1xuICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgaXRlbXMpIHtcbiAgICAgICAgICAgIGlmICghaXRlbSB8fCAhaXRlbS5oaWdobGlnaHRlZCkgcmV0dXJuO1xuXG4gICAgICAgICAgICBpdGVtLmhpZ2hsaWdodGVkID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5faGlnaGxpZ2h0ZWRJdGVtcyA9IHRoaXMuX2hpZ2hsaWdodGVkSXRlbXMuZmlsdGVyKHYgPT4gdi5oaWdobGlnaHRlZCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEhpZ2hsaWdodHMgdGhlIGZpcnN0IGl0ZW0gb3V0IG9mIGFsbCBpdGVtcy5cbiAgICAgKiBAcmV0dXJucyBUaGUgaGlnaGxpZ2h0ZWQgaXRlbS5cbiAgICAgKi9cbiAgICBoaWdobGlnaHRGaXJzdEl0ZW0oKTogQXJkT3B0aW9uU2ltcGxlIHwgbnVsbCB7XG4gICAgICAgIHRoaXMudW5oaWdobGlnaHRBbGwoKTtcblxuICAgICAgICBsZXQgaXRlbVRvSGlnaGxpZ2h0ID0gdGhpcy5fZ2V0SGlnbGlnaHRhYmxlSXRlbXMoKS5maXJzdCgpO1xuICAgICAgICByZXR1cm4gdGhpcy5oaWdobGlnaHRJdGVtKGl0ZW1Ub0hpZ2hsaWdodCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEhpZ2hsaWdodHMgdGhlIGxhc3QgaXRlbSBvdXQgb2YgYWxsIGl0ZW1zLlxuICAgICAqIEByZXR1cm5zIFRoZSBoaWdobGlnaHRlZCBpdGVtLlxuICAgICAqL1xuICAgIGhpZ2hsaWdodExhc3RJdGVtKCk6IEFyZE9wdGlvblNpbXBsZSB8IG51bGwge1xuICAgICAgICB0aGlzLnVuaGlnaGxpZ2h0QWxsKCk7XG5cbiAgICAgICAgbGV0IGl0ZW1Ub0hpZ2hsaWdodCA9IHRoaXMuX2dldEhpZ2xpZ2h0YWJsZUl0ZW1zKCkubGFzdCgpO1xuICAgICAgICByZXR1cm4gdGhpcy5oaWdobGlnaHRJdGVtKGl0ZW1Ub0hpZ2hsaWdodCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEhpZ2hsaWdodHMgYWxsIG5vbi1kaXNhYmxlZCBpdGVtcy5cbiAgICAgKi9cbiAgICBoaWdobGlnaHRBbGxJdGVtcygpOiB2b2lkIHtcbiAgICAgICAgbGV0IGl0ZW1zVG9IaWdobGlnaHQgPSB0aGlzLl9nZXRIaWdsaWdodGFibGVJdGVtcygpO1xuXG4gICAgICAgIHRoaXMuaGlnaGxpZ2h0SXRlbSguLi5pdGVtc1RvSGlnaGxpZ2h0KTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogSGlnaGxpZ2h0cyB0aGUgbmV4dCBub24tZGlzYWJsZWQgaXRlbSBkZWZpbmVkIGJ5IHRoZSBvZmZzZXQgYW1vdW50LlxuICAgICAqXG4gICAgICogSWYgYGhhc1NoaWZ0YCBpcyBzZXQgdG8gdHJ1ZSwgYWxsIG9yaWdpbmFsbHkgaGlnaGxpZ2h0ZWQgaXRlbXMgYXJlIGtlcHQuIE90aGVyd2lzZSwgYWxsIG9yaWdpbmFsIGl0ZW1zIGFyZSB1bnNlbGVjdGVkLlxuICAgICAqIEBwYXJhbSBvZmZzZXQgVGhlIGFtb3VudCBvZiBpdGVtcyB0byBvZmZzZXQgdGhlIGhpZ2hsaWdodCBieS5cbiAgICAgKiBAcGFyYW0gaGFzU2hpZnQgV2hldGhlciB0aGUgdXNlciBoYXMgdGhlIHNoaWZ0IGtleSBwcmVzc2VkLlxuICAgICAqIEByZXR1cm5zIFRoZSBpdGVtIGhpZ2hsaWdodGVkLlxuICAgICAqL1xuICAgIGhpZ2hsaWdodE5leHRJdGVtKG9mZnNldDogbnVtYmVyLCBoYXNTaGlmdD86IGJvb2xlYW4pOiBBcmRPcHRpb25TaW1wbGUgfCBudWxsIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzQW55SXRlbUhpZ2hsaWdodGVkKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5oaWdobGlnaHRGaXJzdEl0ZW0oKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjdXJyZW50SXRlbSA9IHRoaXMuaGlnaGxpZ2h0ZWRJdGVtcy5sYXN0KCk7XG4gICAgICAgIGNvbnN0IGl0ZW1zV2l0aG91dERpc2FibGVkID0gdGhpcy5faXRlbXMuZmlsdGVyKGl0ZW0gPT4gIWl0ZW0uZGlzYWJsZWQgJiYgKCF0aGlzLmlzSXRlbUxpbWl0UmVhY2hlZCB8fCBpdGVtLnNlbGVjdGVkKSk7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRJbmRleEluSXRlbXMgPSBpdGVtc1dpdGhvdXREaXNhYmxlZC5maW5kSW5kZXgoaXRlbSA9PiBpdGVtLmluZGV4ID09IGN1cnJlbnRJdGVtLmluZGV4KTtcblxuICAgICAgICBsZXQgbmV4dEl0ZW1JbmRleCA9IGN1cnJlbnRJbmRleEluSXRlbXMgKyBvZmZzZXQ7XG4gICAgICAgIGlmIChuZXh0SXRlbUluZGV4ID49IGl0ZW1zV2l0aG91dERpc2FibGVkLmxlbmd0aCkge1xuICAgICAgICAgICAgbmV4dEl0ZW1JbmRleCAtPSBpdGVtc1dpdGhvdXREaXNhYmxlZC5sZW5ndGg7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5leHRJdGVtSW5kZXggPCAwKSB7XG4gICAgICAgICAgICBuZXh0SXRlbUluZGV4ICs9IGl0ZW1zV2l0aG91dERpc2FibGVkLmxlbmd0aDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBpdGVtVG9IaWdobGlnaHQgPSBpdGVtc1dpdGhvdXREaXNhYmxlZFtuZXh0SXRlbUluZGV4XTtcblxuICAgICAgICBpZiAoaGFzU2hpZnQgJiYgdGhpcy5fYXJkUGFyZW50Q29tcC5tdWx0aXNlbGVjdGFibGUpIHtcbiAgICAgICAgICAgIGlmIChpdGVtVG9IaWdobGlnaHQuaGlnaGxpZ2h0ZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnVuaGlnaGxpZ2h0SXRlbShjdXJyZW50SXRlbSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5oaWdobGlnaHRJdGVtKGl0ZW1Ub0hpZ2hsaWdodCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuaGlnaGxpZ2h0U2luZ2xlSXRlbShpdGVtVG9IaWdobGlnaHQpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBGaW5kcyBhbGwgaGlnaGxpZ2h0YWJsZSBpdGVtcy4gQW4gaXRlbSBpcyBjb25zaWRlcmVkIGhpZ2hsaWdodGFibGUgaWYgaXQgaXMgKipub3QqKiBkaXNhYmxlZC5cbiAgICAgKiBAcmV0dXJucyBBbiBhcnJheSBvZiBhbGwgaGlnaGxpZ2h0YWJsZSBpdGVtcy5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9nZXRIaWdsaWdodGFibGVJdGVtcygpOiBBcmRPcHRpb25TaW1wbGVbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pdGVtcy5maWx0ZXIoaXRlbSA9PiAhaXRlbS5kaXNhYmxlZCk7XG4gICAgfVxufVxuIl19
|
|
349
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxlLWl0ZW0tc3RvcmFnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvX2ludGVybmFsL2l0ZW0tc3RvcmFnZXMvc2ltcGxlLWl0ZW0tc3RvcmFnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLFdBQVcsTUFBTSxxQkFBcUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQW1COUUsTUFBTSxPQUFPLGlCQUFpQjtJQUs1QixZQUFvQixjQUFxQztRQUFyQyxtQkFBYyxHQUFkLGNBQWMsQ0FBdUI7UUFKakQsV0FBTSxHQUFzQixFQUFFLENBQUM7UUFDL0Isc0JBQWlCLEdBQXNCLEVBQUUsQ0FBQztRQUMxQyxtQkFBYyxHQUFzQixFQUFFLENBQUM7SUFFYSxDQUFDO0lBRTdEOztPQUVHO0lBQ0gsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFDRDs7T0FFRztJQUNILElBQUksYUFBYTtRQUNmLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUM3QixDQUFDO0lBQ0Q7O09BRUc7SUFDSCxJQUFJLGdCQUFnQjtRQUNsQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztJQUNoQyxDQUFDO0lBQ0Q7O09BRUc7SUFDSCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFDRDs7OztPQUlHO0lBQ0ssYUFBYSxDQUFDLEtBQXdCO1FBQzVDLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJ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QkFDL0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsQ0FBQzthQUNuQztZQUNELE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsQ0FBQztTQUM1QztRQUNELE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFDRDs7O09BR0c7SUFDSyxxQkFBcUI7UUFDM0IsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3BELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFyZE9wdGlvblNpbXBsZSwgQ29tcGFyZVdpdGhGbiB9IGZyb20gJy4uLy4uL3R5cGVzL2l0ZW0tc3RvcmFnZS50eXBlcyc7XG5pbXBvcnQgcmVzb2x2ZVBhdGggZnJvbSAncmVzb2x2ZS1vYmplY3QtcGF0aCc7XG5pbXBvcnQgeyBhbnksIGV2YWx1YXRlLCBpc0RlZmluZWQsIGlzT2JqZWN0LCBpc1ByaW1pdGl2ZSB9IGZyb20gJ3NpbXBsZS1ib29sJztcblxuZXhwb3J0IGludGVyZmFjZSBJdGVtU3RvcmFnZUhvc3REZWZhdWx0cyB7XG4gIHZhbHVlRnJvbTogc3RyaW5nO1xuICBsYWJlbEZyb206IHN0cmluZztcbiAgZGlzYWJsZWRGcm9tOiBzdHJpbmc7XG59XG5leHBvcnQgaW50ZXJmYWNlIFNpbXBsZUl0ZW1TdG9yYWdlSG9zdCB7XG4gIHZhbHVlRnJvbT86IHN0cmluZztcbiAgbGFiZWxGcm9tPzogc3RyaW5nO1xuICBkaXNhYmxlZEZyb20/OiBzdHJpbmc7XG4gIGludmVydERpc2FibGVkPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgREVGQVVMVFM6IEl0ZW1TdG9yYWdlSG9zdERlZmF1bHRzO1xuICBjb21wYXJlV2l0aD86IENvbXBhcmVXaXRoRm47XG4gIG11bHRpc2VsZWN0YWJsZTogYm9vbGVhbjtcbiAgcmVxdWlyZVZhbHVlOiBib29sZWFuO1xuICBtYXhTZWxlY3RlZEl0ZW1zPzogbnVtYmVyO1xufVxuXG5leHBvcnQgY2xhc3MgU2ltcGxlSXRlbVN0b3JhZ2Uge1xuICBwcml2YXRlIF9pdGVtczogQXJkT3B0aW9uU2ltcGxlW10gPSBbXTtcbiAgcHJpdmF0ZSBfaGlnaGxpZ2h0ZWRJdGVtczogQXJkT3B0aW9uU2ltcGxlW10gPSBbXTtcbiAgcHJpdmF0ZSBfc2VsZWN0ZWRJdGVtczogQXJkT3B0aW9uU2ltcGxlW10gPSBbXTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9hcmRQYXJlbnRDb21wOiBTaW1wbGVJdGVtU3RvcmFnZUhvc3QpIHt9XG5cbiAgLyoqXG4gICAqIEdldHMgYWxsIGl0ZW1zLlxuICAgKi9cbiAgZ2V0IGl0ZW1zKCk6IEFyZE9wdGlvblNpbXBsZVtdIHtcbiAgICByZXR1cm4gdGhpcy5faXRlbXM7XG4gIH1cbiAgLyoqXG4gICAqIEdldHMgYWxsIGN1cnJlbnRseSBzZWxlY3RlZCBpdGVtcy5cbiAgICovXG4gIGdldCBzZWxlY3RlZEl0ZW1zKCk6IEFyZE9wdGlvblNpbXBsZVtdIHtcbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0ZWRJdGVtcztcbiAgfVxuICAvKipcbiAgICogR2V0cyBhbGwgY3VycmVudGx5IGhpZ2hsaWdodGVkIGl0ZW1zLlxuICAgKi9cbiAgZ2V0IGhpZ2hsaWdodGVkSXRlbXMoKTogQXJkT3B0aW9uU2ltcGxlW10ge1xuICAgIHJldHVybiB0aGlzLl9oaWdobGlnaHRlZEl0ZW1zO1xuICB9XG4gIC8qKlxuICAgKiBHZXRzIHRoZSB2YWx1ZXMgb2YgdGhlIGN1cnJlbnRseSBzZWxlY3RlZCBpdGVtcy5cbiAgICovXG4gIGdldCB2YWx1ZSgpOiBhbnlbXSB7XG4gICAgcmV0dXJuIHRoaXMuX2l0ZW1zVG9WYWx1ZSh0aGlzLnNlbGVjdGVkSXRlbXMpO1xuICB9XG4gIC8qKlxuICAgKiBNYXBzIGFuIGFycmF5IG9mIGl0ZW1zIGludG8gdGhlaXIgdmFsdWVzLlxuICAgKiBAcGFyYW0gaXRlbXMgVGhlIGl0ZW1zIHRvIGNvbnZlcnQgdG8gdmFsdWUuXG4gICAqIEByZXR1cm5zIEFuIGFycmF5IG9mIGl0ZW0gdmFsdWVzLlxuICAgKi9cbiAgcHJpdmF0ZSBfaXRlbXNUb1ZhbHVlKGl0ZW1zOiBBcmRPcHRpb25TaW1wbGVbXSk6IGFueVtdIHtcbiAgICByZXR1cm4gaXRlbXMubWFwKGl0ZW0gPT4gaXRlbS52YWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0cnVlIGlmIGF0IGxlYXN0IG9uZSBpdGVtIGlzIGhpZ2hsaWdodGVkLCBvdGhlcndpc2UgZmFsc2UuXG4gICAqL1xuICBnZXQgaXNBbnlJdGVtSGlnaGxpZ2h0ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2hpZ2hsaWdodGVkSXRlbXMubGVuZ3RoID4gMDtcbiAgfVxuICAvKipcbiAgICogUmV0dXJucyB0cnVlIGlmIHRoZSBwYXJlbnQgY29tcG9uZW50IGRlZmluZXMgdGhlIGxpbWl0IG9mIGNvbmN1cnJlbnRseSBzZWxlY3RhYmxlIGl0ZW1zIGFuZCB0aGUgYW1vdW50IG9mIGN1cnJlbnRseSBzZWxlY3RlZCBpdGVtcyBtYXRjaGVzIHRoYXQgbGltaXQuIE90aGVyd2lzZSByZXR1cm5zIGZhbHNlLlxuICAgKlxuICAgKiAqKlRMRFIqKjogdHJ1ZSBpZiBgbWF4U2VsZWN0ZWRJdGVtc2AgaXMgZGVmaW5lZCBhbmQgdGhlIG51bWJlciBvZiBzZWxlY3RlZCBpdGVtcyBtYXRjaGVzIHRoYXQgdmFsdWUuXG4gICAqL1xuICBnZXQgaXNJdGVtTGltaXRSZWFjaGVkKCk6IGJvb2xlYW4ge1xuICAgIGlmICghdGhpcy5fYXJkUGFyZW50Q29tcC5tdWx0aXNlbGVjdGFibGUgfHwgIWlzRGVmaW5lZCh0aGlzLl9hcmRQYXJlbnRDb21wLm1heFNlbGVjdGVkSXRlbXMpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9hcmRQYXJlbnRDb21wLm1heFNlbGVjdGVkSXRlbXMgPD0gdGhpcy5zZWxlY3RlZEl0ZW1zLmxlbmd0aDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBjb21wb25lbnQncyBpdGVtcy4gVGFrZXMgaW50byBhY2NvdW50IHRoZSB2YWx1ZXMgZGVmaW5lZCBieSB0aGUgcGFyZW50IGNvbXBvbmVudCBmb3IgYHZhbHVlRnJvbWAsIGBsYWJlbEZyb21gLCBhbmQgYGRpc2FibGVkRnJvbWAuXG4gICAqIEBwYXJhbSBpdGVtcyBBbiBhcnJheSBvZiBpdGVtcyB0byBiZSBzZXQgYXMgdGhlIGNvbXBvbmVudCdzIGl0ZW1zLlxuICAgKiBAcmV0dXJucyB0cnVlIGlmIGF0IGxlYXN0IG9uZSBvZiB0aGUgaXRlbXMgaXMgb2YgcHJpbWl0aXZlIHR5cGUsIG90aGVyd2lzZSBmYWxzZS5cbiAgICovXG4gIHNldEl0ZW1zKGl0ZW1zOiBhbnlbXSk6IGJvb2xlYW4ge1xuICAgIGxldCBhcmVJdGVtc1ByaW1pdGl2ZSA9IGZhbHNlO1xuICAgIGlmIChhbnkoaXRlbXMsIGlzUHJpbWl0aXZlKSkge1xuICAgICAgaXRlbXMgPSBpdGVtcy5tYXAodGhpcy5fcHJpbWl0aXZlSXRlbXNNYXBGbik7XG4gICAgICBhcmVJdGVtc1ByaW1pdGl2ZSA9IHRydWU7XG4gICAgfVxuXG4gICAgdGhpcy5faXRlbXMgPSBpdGVtcy5tYXAoKGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5fc2V0SXRlbXNNYXBGbihpdGVtLCBpbmRleCwgYXJlSXRlbXNQcmltaXRpdmUpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIGFyZUl0ZW1zUHJpbWl0aXZlO1xuICB9XG4gIHByaXZhdGUgX3ByaW1pdGl2ZUl0ZW1zTWFwRm48VD4oaXRlbTogVCk6IHsgdmFsdWU6IFQgfSB7XG4gICAgcmV0dXJuIHsgdmFsdWU6IGl0ZW0gfTtcbiAgfVxuICBwcml2YXRlIF9zZXRJdGVtc01hcEZuKHJhd0l0ZW1EYXRhOiBhbnksIGluZGV4OiBudW1iZXIsIGFyZUl0ZW1zUHJpbWl0aXZlOiBib29sZWFuKTogQXJkT3B0aW9uU2ltcGxlIHtcbiAgICBpZiAoYXJlSXRlbXNQcmltaXRpdmUpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGl0ZW1EYXRhOiByYXdJdGVtRGF0YSxcbiAgICAgICAgaW5kZXgsXG4gICAgICAgIHZhbHVlOiByYXdJdGVtRGF0YS52YWx1ZSxcbiAgICAgICAgbGFiZWw6IHJhd0l0ZW1EYXRhLnZhbHVlPy50b1N0cmluZz8uKCkgPz8gU3RyaW5nKHJhd0l0ZW1EYXRhLnZhbHVlKSxcbiAgICAgIH07XG4gICAgfVxuICAgIC8vZ2V0IHZhbHVlXG4gICAgY29uc3QgdmFsdWVQYXRoID0gdGhpcy5fYXJkUGFyZW50Q29tcC52YWx1ZUZyb20gPz8gdGhpcy5fYXJkUGFyZW50Q29tcC5sYWJlbEZyb20gPz8gdGhpcy5fYXJkUGFyZW50Q29tcC5ERUZBVUxUUy52YWx1ZUZyb207XG4gICAgY29uc3QgdmFsdWUgPSByZXNvbHZlUGF0aChyYXdJdGVtRGF0YSwgdmFsdWVQYXRoKTtcblxuICAgIC8vZ2V0IGxhYmVsXG4gICAgY29uc3QgbGFiZWxQYXRoID0gdGhpcy5fYXJkUGFyZW50Q29tcC5sYWJlbEZyb20gPz8gdGhpcy5fYXJkUGFyZW50Q29tcC52YWx1ZUZyb20gPz8gdGhpcy5fYXJkUGFyZW50Q29tcC5ERUZBVUxUUy5sYWJlbEZyb207XG4gICAgY29uc3QgbGFiZWwgPSByZXNvbHZlUGF0aChyYXdJdGVtRGF0YSwgbGFiZWxQYXRoKSA/PyB2YWx1ZTtcblxuICAgIC8vZ2V0IGRpc2FibGVkXG4gICAgY29uc3QgZGlzYWJsZWRQYXRoID0gdGhpcy5fYXJkUGFyZW50Q29tcC5kaXNhYmxlZEZyb20gPz8gdGhpcy5fYXJkUGFyZW50Q29tcC5ERUZBVUxUUy5kaXNhYmxlZEZyb207XG4gICAgbGV0IGRpc2FibGVkID0gZXZhbHVhdGUocmVzb2x2ZVBhdGgocmF3SXRlbURhdGEsIGRpc2FibGVkUGF0aCkpO1xuICAgIGlmICh0aGlzLl9hcmRQYXJlbnRDb21wLmludmVydERpc2FibGVkKSB7XG4gICAgICBkaXNhYmxlZCA9ICFkaXNhYmxlZDtcbiAgICB9XG5cbiAgICBjb25zdCBpdGVtRGF0YSA9IGFyZUl0ZW1zUHJpbWl0aXZlID8gcmF3SXRlbURhdGEudmFsdWUgOiByYXdJdGVtRGF0YTtcblxuICAgIC8vcmV0dXJuXG4gICAgcmV0dXJuIHtcbiAgICAgIGl0ZW1EYXRhLFxuICAgICAgaW5kZXgsXG4gICAgICB2YWx1ZSxcbiAgICAgIGxhYmVsOiBsYWJlbD8udG9TdHJpbmc/LigpID8/IFN0cmluZyhsYWJlbCksXG4gICAgICBkaXNhYmxlZCxcbiAgICB9O1xuICB9XG4gIC8qKlxuICAgKiBXcml0ZXMgYSBuZXcgdmFsdWUgdG8gdGhlIGl0ZW0gc3RvcmFnZS4gU2VsZWN0cyB0aGUgY29ycmVjdCBpdGVtcyBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgdmFsdWVzLCB3YXJuaW5nIHRoZSB1c2VyIGlmIHRoZSB2YWx1ZSBpcyBub3QgZm91bmQuXG4gICAqIEBwYXJhbSBuZ01vZGVsIFRoZSB2YWx1ZSBvZiB0aGUgbmdNb2RlbCB0byBzZXQuXG4gICAqL1xuICB3cml0ZVZhbHVlKG5nTW9kZWw6IGFueVtdKTogdm9pZCB7XG4gICAgdGhpcy5fZm9yY2VVbnNlbGVjdEFsbCgpO1xuXG4gICAgaWYgKCF0aGlzLl92YWxpZGF0ZVdyaXRlVmFsdWUobmdNb2RlbCkpIHJldHVybjtcblxuICAgIGNvbnN0IHNlbGVjdEl0ZW1CeVZhbHVlID0gKHZhbHVlOiBhbnkpID0+IHtcbiAgICAgIGxldCBpdGVtID0gdGhpcy5maW5kSXRlbUJ5VmFsdWUodmFsdWUpO1xuXG4gICAgICBpZiAoaXRlbSkge1xuICAgICAgICB0aGlzLnNlbGVjdEl0ZW0oaXRlbSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGNvbnNvbGUud2FybihgQ291bGRuJ3QgZmluZCBhbiBpdGVtIHdpdGggdmFsdWUgJHt2YWx1ZT8udG9TdHJpbmc/LigpIHx8IFN0cmluZyh2YWx1ZSl9LmApO1xuICAgIH07XG5cbiAgICBmb3IgKGNvbnN0IG1vZGVsVmFsdWUgb2YgbmdNb2RlbCkge1xuICAgICAgc2VsZWN0SXRlbUJ5VmFsdWUobW9kZWxWYWx1ZSk7XG4gICAgfVxuICB9XG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgdGhhdCBhbGwgdmFsdWVzIG9mIHRoZSB2YWx1ZSB0byBiZSB3cml0dGVuIGFyZSBhYmxlIHRvIGJlIGFjY3VyYXRlbHkgY29tcGFyZWQgYWdhaW5zdCB0aGUgc3RvcmFnZSBpdGVtcy5cbiAgICpcbiAgICogQW4gaXRlbSBmcm9tIHRoZSBuZ01vZGVsIGFycmF5IGlzIGNvbnNpZGVyZWQgdmFsaWQgaWYgaXQgaXMgYSBwcmltaXRpdmUgdmFsdWUsIG9yIGlmIGFsbCBvZiB0aGUgYmVsb3cgcG9pbnRzIGFyZSBtZXQ6XG4gICAqIDEuIFRoZSBwYXJlbnQgY29tcG9uZW50IGRlZmluZXMgdGhlIGBjb21wYXJlV2l0aGAgcHJvcGVydHkuXG4gICAqIDIuIFRoZSBuZ01vZGVsIHZhbHVlIGl0ZW0gaXMgYW4gb2JqZWN0IChvciBhcnJheSkuXG4gICAqIDMuIFRoZSBwYXJlbnQgY29tcG9uZW50IGhhcyBhIGRlZmluZWQgYHZhbHVlRnJvbWAgcHJvcGVydHkuXG4gICAqIEBwYXJhbSBuZ01vZGVsIFRoZSB2YWx1ZSBvZiBuZ01vZGVsIHRvIHZhbGlkYXRlLlxuICAgKiBAcmV0dXJucyB0cnVlIGlmIGFsbCBpdGVtcyBhcmUgdmFsaWQsIG90aGVyd2lzZSBmYWxzZS5cbiAgICovXG4gIHByaXZhdGUgX3ZhbGlkYXRlV3JpdGVWYWx1ZShuZ01vZGVsOiBhbnlbXSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBuZ01vZGVsLmV2ZXJ5KGl0ZW0gPT4ge1xuICAgICAgaWYgKCFpc0RlZmluZWQodGhpcy5fYXJkUGFyZW50Q29tcC5jb21wYXJlV2l0aCkgJiYgaXNPYmplY3QoaXRlbSkgJiYgdGhpcy5fYXJkUGFyZW50Q29tcC52YWx1ZUZyb20pIHtcbiAgICAgICAgY29uc29sZS53YXJuKGBTZXR0aW5nIG9iamVjdCgke0pTT04uc3RyaW5naWZ5KGl0ZW0pfSkgYXMgeW91ciBtb2RlbCB3aXRoIFt2YWx1ZUZyb21dIGlzIG5vdCBhbGxvd2VkIHVubGVzcyBbY29tcGFyZVdpdGhdIGlzIHVzZWQuYCk7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0pO1xuICB9XG4gIGZpbmRJdGVtQnlWYWx1ZSh2YWx1ZVRvRmluZDogYW55KTogQXJkT3B0aW9uU2ltcGxlIHwgdW5kZWZpbmVkIHtcbiAgICBsZXQgZmluZEJ5OiAoaXRlbTogQXJkT3B0aW9uU2ltcGxlKSA9PiBib29sZWFuO1xuICAgIGlmIChpc0RlZmluZWQodGhpcy5fYXJkUGFyZW50Q29tcC5jb21wYXJlV2l0aCkpIHtcbiAgICAgIGZpbmRCeSA9IGl0ZW0gPT4gdGhpcy5fYXJkUGFyZW50Q29tcC5jb21wYXJlV2l0aCEodmFsdWVUb0ZpbmQsIGl0ZW0udmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBmaW5kQnkgPSBpdGVtID0+IGl0ZW0udmFsdWUgPT09IHZhbHVlVG9GaW5kO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5faXRlbXMuZmluZChpdGVtID0+IGZpbmRCeShpdGVtKSk7XG4gIH1cblxuICAvKipcbiAgICogVW5zZWxlY3RzIGFsbCBzZWxlY3RlZCBpdGVtcy5cbiAgICpcbiAgICogSWYgdGhlIHBhcmVudCBjb21wb25lbnQgcmVxdWlyZXMgYXQgbGVhc3Qgb25lIHZhbHVlIHRvIGJlIHNlbGVjdGVkIGF0IGFsbCB0aW1lcywgdGhlIGZpcnN0IHNlbGVjdGVkIGl0ZW1zIGlzIGxlZnQgc2VsZWN0ZWQuXG4gICAqIEByZXR1cm5zIEFuIGFycmF5IG9mIGl0ZW1zIGNsZWFyZWQsIG1hcHBlZCB0byBvbmx5IHRoZWlyIHZhbHVlcy5cbiAgICovXG4gIHVuc2VsZWN0QWxsKCk6IGFueVtdIHtcbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdGhpcy5fc2VsZWN0ZWRJdGVtcykge1xuICAgICAgaXRlbS5zZWxlY3RlZCA9IGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IHJldCA9IHRoaXMuX2l0ZW1zVG9WYWx1ZSh0aGlzLl9zZWxlY3RlZEl0ZW1zKTtcblxuICAgIGlmICh0aGlzLl9hcmRQYXJlbnRDb21wLnJlcXVpcmVWYWx1ZSAmJiB0aGlzLl9zZWxlY3RlZEl0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuX3NlbGVjdGVkSXRlbXMuZmlyc3QoKS5zZWxlY3RlZCA9IHRydWU7XG4gICAgICByZXQuc3BsaWNlKDAsIDEpO1xuICAgIH1cblxuICAgIHRoaXMuX3NlbGVjdGVkSXRlbXMgPSBbXTtcblxuICAgIHJldHVybiByZXQ7XG4gIH1cbiAgLyoqXG4gICAqIFVuc2VsZWN0cyBhbGwgc2VsZWN0ZWQgaXRlbXMsIG5vIG1hdHRlciB3aGF0IHRoZSBjb21wb25lbnQgc2V0dGluZ3MgYXJlLlxuICAgKiBAcmV0dXJucyBBbiBhcnJheSBvZiBpdGVtcyBjbGVhcmVkLCBtYXBwZWQgdG8gb25seSB0aGVpciB2YWx1ZXMuXG4gICAqL1xuICBwcml2YXRlIF9mb3JjZVVuc2VsZWN0QWxsKCk6IGFueVtdIHtcbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdGhpcy5fc2VsZWN0ZWRJdGVtcykge1xuICAgICAgaXRlbS5zZWxlY3RlZCA9IGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IHJldCA9IHRoaXMuX2l0ZW1zVG9WYWx1ZSh0aGlzLl9zZWxlY3RlZEl0ZW1zKTtcblxuICAgIHRoaXMuX3NlbGVjdGVkSXRlbXMgPSBbXTtcblxuICAgIHJldHVybiByZXQ7XG4gIH1cbiAgLyoqXG4gICAqIFNlbGVjdHMgb25lIG9yIG11bHRpcGxlIGl0ZW1zLlxuICAgKlxuICAgKiBBY2NvdW50cyBmb3IgdGhlIGxpbWl0IG9mIGNvbmN1cnJlbnRseSBzZWxlY3RlZCBpdGVtcyBkZWZpbmVkIGJ5IHRoZSBwYXJlbnQgY29tcG9uZW50LlxuICAgKiBAcGFyYW0gaXRlbXMgQSByZXN0IG9wZXJhdG9yIGFycmF5IG9mIGl0ZW0gb2JqZWN0cyB0byBiZSBzZWxlY3RlZC5cbiAgICogQHJldHVybnMgQSB0dXBsZSBjb250YWluaW5nIHRocmVlIGFycmF5cywgYWxsIG1hcHBlZCB0byBvbmx5IHRoZWlyIHZhbHVlczpcbiAgICogKiBBbiBhcnJheSBvZiBpdGVtcyBzZWxlY3RlZCxcbiAgICogKiBBbiBhcnJheSBvZiBpdGVtcyB1bnNlbGVjdGVkLFxuICAgKiAqIEFuIGFycmF5IG9mIGl0ZW1zIGZhaWxlZCB0byBzZWxlY3QgZHVlIHRvIHRoZSBsaW1pdC5cbiAgICovXG4gIHNlbGVjdEl0ZW0oLi4uaXRlbXM6IEFyZE9wdGlvblNpbXBsZVtdKTogW2FueVtdLCBhbnlbXSwgYW55W11dIHtcbiAgICBpZiAodGhpcy5pc0l0ZW1MaW1pdFJlYWNoZWQpIHtcbiAgICAgIHJldHVybiBbW10sIFtdLCB0aGlzLl9pdGVtc1RvVmFsdWUoaXRlbXMpXTtcbiAgICB9XG4gICAgbGV0IHVuc2VsZWN0ZWQgPSBbXTtcbiAgICBpZiAoIXRoaXMuX2FyZFBhcmVudENvbXAubXVsdGlzZWxlY3RhYmxlKSB7XG4gICAgICB1bnNlbGVjdGVkID0gdGhpcy5fZm9yY2VVbnNlbGVjdEFsbCgpO1xuICAgIH1cblxuICAgIGxldCBpdGVtc1NlbGVjdGVkQ291bnQgPSAwO1xuICAgIGNvbnN0IGl0ZW1zU2VsZWN0ZWQgPSBbXTtcbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgaXRlbXMpIHtcbiAgICAgIGl0ZW1zU2VsZWN0ZWRDb3VudCsrO1xuICAgICAgaWYgKGl0ZW0uc2VsZWN0ZWQpIGNvbnRpbnVlO1xuICAgICAgaWYgKHRoaXMuaXNJdGVtTGltaXRSZWFjaGVkKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgaXRlbS5zZWxlY3RlZCA9IHRydWU7XG4gICAgICB0aGlzLl9zZWxlY3RlZEl0ZW1zLnB1c2goaXRlbSk7XG4gICAgICBpdGVtc1NlbGVjdGVkLnB1c2goaXRlbSk7XG4gICAgfVxuXG4gICAgY29uc3QgaXRlbXNGYWlsZWRUb1NlbGVjdCA9IGl0ZW1zLnNsaWNlKGl0ZW1zU2VsZWN0ZWRDb3VudCAtIDEpO1xuICAgIHJldHVybiBbdGhpcy5faXRlbXNUb1ZhbHVlKGl0ZW1zU2VsZWN0ZWQpLCB1bnNlbGVjdGVkLCB0aGlzLl9pdGVtc1RvVmFsdWUoaXRlbXNGYWlsZWRUb1NlbGVjdCldO1xuICB9XG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0gaXRlbXMgQSByZXN0IG9wZXJhdG9yIGFycmF5IG9mIGl0ZW0gb2JqZWN0cyB0byBiZSB1bnNlbGVjdGVkLlxuICAgKiBAcmV0dXJucyBBbiBhcnJheSBvZiBpdGVtcyB1bnNlbGVjdGVkLCBtYXBwZWQgdG8gb25seSB0aGVpciB2YWx1ZXMuXG4gICAqL1xuICB1bnNlbGVjdEl0ZW0oLi4uaXRlbXM6IEFyZE9wdGlvblNpbXBsZVtdKTogYW55W10ge1xuICAgIGxldCBza2lwcGVkSXRlbSA9IGZhbHNlO1xuICAgIGZvciAoY29uc3QgaXRlbSBvZiBpdGVtcykge1xuICAgICAgaWYgKHRoaXMuX2FyZFBhcmVudENvbXAucmVxdWlyZVZhbHVlICYmICFza2lwcGVkSXRlbSkge1xuICAgICAgICBza2lwcGVkSXRlbSA9IHRydWU7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAoIWl0ZW0uc2VsZWN0ZWQpIGNvbnRpbnVlO1xuICAgICAgaXRlbS5zZWxlY3RlZCA9IGZhbHNlO1xuICAgIH1cbiAgICB0aGlzLl9zZWxlY3RlZEl0ZW1zID0gdGhpcy5fc2VsZWN0ZWRJdGVtcy5maWx0ZXIodiA9PiB2LnNlbGVjdGVkKTtcblxuICAgIHJldHVybiB0aGlzLl9pdGVtc1RvVmFsdWUoaXRlbXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVuaGlnaGxpZ2h0cyBhbGwgY3VycmVudGx5IGhpZ2hsaWdodGVkIGl0ZW1zLlxuICAgKi9cbiAgdW5oaWdobGlnaHRBbGwoKTogdm9pZCB7XG4gICAgZm9yIChjb25zdCBpdGVtIG9mIHRoaXMuX2hpZ2hsaWdodGVkSXRlbXMpIHtcbiAgICAgIGl0ZW0uaGlnaGxpZ2h0ZWQgPSBmYWxzZTtcbiAgICB9XG4gICAgdGhpcy5faGlnaGxpZ2h0ZWRJdGVtcyA9IFtdO1xuICB9XG4gIC8qKlxuICAgKiBIaWdobGlnaHRzIHRoZSBnaXZlbiBpdGVtLCB3aGlsZSB1bmhpZ2hsaWdodGluZyBhbGwgb3RoZXIgaXRlbXMuIERvZXMgbm90aGluZyB3aGVuIHRoZSBpdGVtIGlzIGRpc2FibGVkLlxuICAgKiBAcGFyYW0gaXRlbSBUaGUgaXRlbSB0byBiZSBoaWdobGlnaHRlZC5cbiAgICogQHJldHVybnMgVGhlIGhpZ2hsaWdodGVkIGl0ZW0uXG4gICAqL1xuICBoaWdobGlnaHRTaW5nbGVJdGVtKGl0ZW06IEFyZE9wdGlvblNpbXBsZSk6IEFyZE9wdGlvblNpbXBsZSB8IG51bGwge1xuICAgIGlmICghaXRlbSB8fCBpdGVtLmRpc2FibGVkKSByZXR1cm4gbnVsbDtcbiAgICB0aGlzLnVuaGlnaGxpZ2h0QWxsKCk7XG4gICAgcmV0dXJuIHRoaXMuaGlnaGxpZ2h0SXRlbShpdGVtKTtcbiAgfVxuICAvKipcbiAgICogSGlnaGxpZ2h0cyBhbGwgZ2l2ZW4gaXRlbXMuXG4gICAqIEBwYXJhbSBpdGVtcyBBIHJlc3Qgb3BlcmF0b3IgYXJyYXkgb2YgaXRlbXMgdG8gYmUgaGlnaGxpZ2h0ZWQuXG4gICAqIEByZXR1cm5zIFRoZSBsYXN0IGhpZ2hsaWdodGVkIGl0ZW0uXG4gICAqL1xuICBoaWdobGlnaHRJdGVtKC4uLml0ZW1zOiBBcmRPcHRpb25TaW1wbGVbXSk6IEFyZE9wdGlvblNpbXBsZSB7XG4gICAgZm9yIChjb25zdCBpdGVtIG9mIGl0ZW1zKSB7XG4gICAgICBpdGVtLmhpZ2hsaWdodGVkID0gdHJ1ZTtcbiAgICB9XG4gICAgdGhpcy5faGlnaGxpZ2h0ZWRJdGVtcy5wdXNoKC4uLml0ZW1zKTtcbiAgICByZXR1cm4gaXRlbXMubGFzdCgpO1xuICB9XG4gIC8qKlxuICAgKiBVbmhpZ2hsaWdodHMgYWxsIGdpdmVuIGl0ZW1zLlxuICAgKiBAcGFyYW0gaXRlbXMgQSByZXN0IG9wZXJhdG9yIGFycmF5IG9mIGl0ZW1zIHRvIGJlIHVuaGlnaGxpZ2h0ZWQuXG4gICAqL1xuICB1bmhpZ2hsaWdodEl0ZW0oLi4uaXRlbXM6IEFyZE9wdGlvblNpbXBsZVtdKTogdm9pZCB7XG4gICAgZm9yIChjb25zdCBpdGVtIG9mIGl0ZW1zKSB7XG4gICAgICBpZiAoIWl0ZW0gfHwgIWl0ZW0uaGlnaGxpZ2h0ZWQpIHJldHVybjtcblxuICAgICAgaXRlbS5oaWdobGlnaHRlZCA9IGZhbHNlO1xuICAgIH1cbiAgICB0aGlzLl9oaWdobGlnaHRlZEl0ZW1zID0gdGhpcy5faGlnaGxpZ2h0ZWRJdGVtcy5maWx0ZXIodiA9PiB2LmhpZ2hsaWdodGVkKTtcbiAgfVxuICAvKipcbiAgICogSGlnaGxpZ2h0cyB0aGUgZmlyc3QgaXRlbSBvdXQgb2YgYWxsIGl0ZW1zLlxuICAgKiBAcmV0dXJucyBUaGUgaGlnaGxpZ2h0ZWQgaXRlbS5cbiAgICovXG4gIGhpZ2hsaWdodEZpcnN0SXRlbSgpOiBBcmRPcHRpb25TaW1wbGUgfCBudWxsIHtcbiAgICB0aGlzLnVuaGlnaGxpZ2h0QWxsKCk7XG5cbiAgICBsZXQgaXRlbVRvSGlnaGxpZ2h0ID0gdGhpcy5fZ2V0SGlnbGlnaHRhYmxlSXRlbXMoKS5maXJzdCgpO1xuICAgIHJldHVybiB0aGlzLmhpZ2hsaWdodEl0ZW0oaXRlbVRvSGlnaGxpZ2h0KTtcbiAgfVxuICAvKipcbiAgICogSGlnaGxpZ2h0cyB0aGUgbGFzdCBpdGVtIG91dCBvZiBhbGwgaXRlbXMuXG4gICAqIEByZXR1cm5zIFRoZSBoaWdobGlnaHRlZCBpdGVtLlxuICAgKi9cbiAgaGlnaGxpZ2h0TGFzdEl0ZW0oKTogQXJkT3B0aW9uU2ltcGxlIHwgbnVsbCB7XG4gICAgdGhpcy51bmhpZ2hsaWdodEFsbCgpO1xuXG4gICAgbGV0IGl0ZW1Ub0hpZ2hsaWdodCA9IHRoaXMuX2dldEhpZ2xpZ2h0YWJsZUl0ZW1zKCkubGFzdCgpO1xuICAgIHJldHVybiB0aGlzLmhpZ2hsaWdodEl0ZW0oaXRlbVRvSGlnaGxpZ2h0KTtcbiAgfVxuICAvKipcbiAgICogSGlnaGxpZ2h0cyBhbGwgbm9uLWRpc2FibGVkIGl0ZW1zLlxuICAgKi9cbiAgaGlnaGxpZ2h0QWxsSXRlbXMoKTogdm9pZCB7XG4gICAgbGV0IGl0ZW1zVG9IaWdobGlnaHQgPSB0aGlzLl9nZXRIaWdsaWdodGFibGVJdGVtcygpO1xuXG4gICAgdGhpcy5oaWdobGlnaHRJdGVtKC4uLml0ZW1zVG9IaWdobGlnaHQpO1xuICB9XG4gIC8qKlxuICAgKiBIaWdobGlnaHRzIHRoZSBuZXh0IG5vbi1kaXNhYmxlZCBpdGVtIGRlZmluZWQgYnkgdGhlIG9mZnNldCBhbW91bnQuXG4gICAqXG4gICAqIElmIGBoYXNTaGlmdGAgaXMgc2V0IHRvIHRydWUsIGFsbCBvcmlnaW5hbGx5IGhpZ2hsaWdodGVkIGl0ZW1zIGFyZSBrZXB0LiBPdGhlcndpc2UsIGFsbCBvcmlnaW5hbCBpdGVtcyBhcmUgdW5zZWxlY3RlZC5cbiAgICogQHBhcmFtIG9mZnNldCBUaGUgYW1vdW50IG9mIGl0ZW1zIHRvIG9mZnNldCB0aGUgaGlnaGxpZ2h0IGJ5LlxuICAgKiBAcGFyYW0gaGFzU2hpZnQgV2hldGhlciB0aGUgdXNlciBoYXMgdGhlIHNoaWZ0IGtleSBwcmVzc2VkLlxuICAgKiBAcmV0dXJucyBUaGUgaXRlbSBoaWdobGlnaHRlZC5cbiAgICovXG4gIGhpZ2hsaWdodE5leHRJdGVtKG9mZnNldDogbnVtYmVyLCBoYXNTaGlmdD86IGJvb2xlYW4pOiBBcmRPcHRpb25TaW1wbGUgfCBudWxsIHtcbiAgICBpZiAoIXRoaXMuaXNBbnlJdGVtSGlnaGxpZ2h0ZWQpIHtcbiAgICAgIHJldHVybiB0aGlzLmhpZ2hsaWdodEZpcnN0SXRlbSgpO1xuICAgIH1cbiAgICBjb25zdCBjdXJyZW50SXRlbSA9IHRoaXMuaGlnaGxpZ2h0ZWRJdGVtcy5sYXN0KCk7XG4gICAgY29uc3QgaXRlbXNXaXRob3V0RGlzYWJsZWQgPSB0aGlzLl9pdGVtcy5maWx0ZXIoaXRlbSA9PiAhaXRlbS5kaXNhYmxlZCAmJiAoIXRoaXMuaXNJdGVtTGltaXRSZWFjaGVkIHx8IGl0ZW0uc2VsZWN0ZWQpKTtcbiAgICBjb25zdCBjdXJyZW50SW5kZXhJbkl0ZW1zID0gaXRlbXNXaXRob3V0RGlzYWJsZWQuZmluZEluZGV4KGl0ZW0gPT4gaXRlbS5pbmRleCA9PSBjdXJyZW50SXRlbS5pbmRleCk7XG5cbiAgICBsZXQgbmV4dEl0ZW1JbmRleCA9IGN1cnJlbnRJbmRleEluSXRlbXMgKyBvZmZzZXQ7XG4gICAgaWYgKG5leHRJdGVtSW5kZXggPj0gaXRlbXNXaXRob3V0RGlzYWJsZWQubGVuZ3RoKSB7XG4gICAgICBuZXh0SXRlbUluZGV4IC09IGl0ZW1zV2l0aG91dERpc2FibGVkLmxlbmd0aDtcbiAgICB9XG4gICAgaWYgKG5leHRJdGVtSW5kZXggPCAwKSB7XG4gICAgICBuZXh0SXRlbUluZGV4ICs9IGl0ZW1zV2l0aG91dERpc2FibGVkLmxlbmd0aDtcbiAgICB9XG4gICAgY29uc3QgaXRlbVRvSGlnaGxpZ2h0ID0gaXRlbXNXaXRob3V0RGlzYWJsZWRbbmV4dEl0ZW1JbmRleF07XG5cbiAgICBpZiAoaGFzU2hpZnQgJiYgdGhpcy5fYXJkUGFyZW50Q29tcC5tdWx0aXNlbGVjdGFibGUpIHtcbiAgICAgIGlmIChpdGVtVG9IaWdobGlnaHQuaGlnaGxpZ2h0ZWQpIHtcbiAgICAgICAgdGhpcy51bmhpZ2hsaWdodEl0ZW0oY3VycmVudEl0ZW0pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXMuaGlnaGxpZ2h0SXRlbShpdGVtVG9IaWdobGlnaHQpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5oaWdobGlnaHRTaW5nbGVJdGVtKGl0ZW1Ub0hpZ2hsaWdodCk7XG4gIH1cbiAgLyoqXG4gICAqIEZpbmRzIGFsbCBoaWdobGlnaHRhYmxlIGl0ZW1zLiBBbiBpdGVtIGlzIGNvbnNpZGVyZWQgaGlnaGxpZ2h0YWJsZSBpZiBpdCBpcyAqKm5vdCoqIGRpc2FibGVkLlxuICAgKiBAcmV0dXJucyBBbiBhcnJheSBvZiBhbGwgaGlnaGxpZ2h0YWJsZSBpdGVtcy5cbiAgICovXG4gIHByaXZhdGUgX2dldEhpZ2xpZ2h0YWJsZUl0ZW1zKCk6IEFyZE9wdGlvblNpbXBsZVtdIHtcbiAgICByZXR1cm4gdGhpcy5faXRlbXMuZmlsdGVyKGl0ZW0gPT4gIWl0ZW0uZGlzYWJsZWQpO1xuICB9XG59XG4iXX0=
|
|
@@ -152,4 +152,4 @@ export class SimplestItemStorage {
|
|
|
152
152
|
return itemToHighlight;
|
|
153
153
|
}
|
|
154
154
|
}
|
|
155
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxlc3QtaXRlbS1zdG9yYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9faW50ZXJuYWwvaXRlbS1zdG9yYWdlcy9zaW1wbGVzdC1pdGVtLXN0b3JhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxXQUFXLE1BQU0scUJBQXFCLENBQUM7QUFDOUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFhL0MsTUFBTSxPQUFPLG1CQUFtQjtJQUk1QixJQUFJLGVBQWU7UUFDZixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztJQUNqQyxDQUFDO0lBRUQsWUFBb0IsY0FBdUM7UUFBdkMsbUJBQWMsR0FBZCxjQUFjLENBQXlCO1FBUG5ELFdBQU0sR0FBNkIsRUFBRSxDQUFDO1FBQ3RDLHFCQUFnQixHQUFrQyxJQUFJLENBQUM7SUFNRCxDQUFDO0lBRS9EOztPQUVHO0lBQ0gsSUFBSSxLQUFLO1FBQ0wsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFFRDs7T0FFRztJQUNILElBQUksb0JBQW9CO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixJQUFJLElBQUksQ0FBQztJQUN6QyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFFBQVEsQ0FBQyxLQUFZO1FBQ2pCLElBQUksaUJBQWlCLEdBQUcsS0FBSyxDQUFDO1FBQzlCLElBQUksR0FBRyxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsRUFBRTtZQUN6QixLQUFLLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQztZQUM3QyxpQkFBaUIsR0FBRyxJQUFJLENBQUM7U0FDNUI7UUFFRCxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFD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Q0FBQztTQUNoRDthQUFNLElBQUksYUFBYSxHQUFHLENBQUMsRUFBRTtZQUMxQixhQUFhLElBQUksb0JBQW9CLENBQUMsTUFBTSxDQUFDO1NBQ2hEO1FBQ0QsTUFBTSxlQUFlLEdBQUcsb0JBQW9CLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFNUQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUVwQyxPQUFPLGVBQWUsQ0FBQztJQUMzQixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcmVzb2x2ZVBhdGggZnJvbSAncmVzb2x2ZS1vYmplY3QtcGF0aCc7XG5pbXBvcnQgeyBhbnksIGlzUHJpbWl0aXZlIH0gZnJvbSAnc2ltcGxlLWJvb2wnO1xuaW1wb3J0IHsgQXJkU2ltcGxlc3RTdG9yYWdlSXRlbSB9IGZyb20gJy4uLy4uL3R5cGVzL2l0ZW0tc3RvcmFnZS50eXBlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2ltcGxlc3RJdGVtU3RvcmFnZUhvc3REZWZhdWx0cyB7XG4gICAgdmFsdWVGcm9tOiBzdHJpbmc7XG4gICAgbGFiZWxGcm9tOiBzdHJpbmc7XG59XG5leHBvcnQgaW50ZXJmYWNlIFNpbXBsZXN0SXRlbVN0b3JhZ2VIb3N0IHtcbiAgICB2YWx1ZUZyb20/OiBzdHJpbmc7XG4gICAgbGFiZWxGcm9tPzogc3RyaW5nO1xuICAgIHJlYWRvbmx5IERFRkFVTFRTOiBTaW1wbGVzdEl0ZW1TdG9yYWdlSG9zdERlZmF1bHRzO1xufVxuXG5leHBvcnQgY2xhc3MgU2ltcGxlc3RJdGVtU3RvcmFnZSB7XG4gICAgcHJpdmF0ZSBfaXRlbXM6IEFyZFNpbXBsZXN0U3RvcmFnZUl0ZW1bXSA9IFtdO1xuICAgIHByaXZhdGUgX2hpZ2hsaWdodGVkSXRlbTogQXJkU2ltcGxlc3RTdG9yYWdlSXRlbSB8IG51bGwgPSBudWxsO1xuXG4gICAgZ2V0IGhpZ2hsaWdodGVkSXRlbSgpOiBBcmRTaW1wbGVzdFN0b3JhZ2VJdGVtIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9oaWdobGlnaHRlZEl0ZW07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfYXJkUGFyZW50Q29tcDogU2ltcGxlc3RJdGVtU3RvcmFnZUhvc3QpIHt9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIGFsbCBpdGVtcy5cbiAgICAgKi9cbiAgICBnZXQgaXRlbXMoKTogQXJkU2ltcGxlc3RTdG9yYWdlSXRlbVtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2l0ZW1zO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdHJ1ZSBpZiBhdCBsZWFzdCBvbmUgaXRlbSBpcyBoaWdobGlnaHRlZCwgb3RoZXJ3aXNlIGZhbHNlLlxuICAgICAqL1xuICAgIGdldCBpc0FueUl0ZW1IaWdobGlnaHRlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hpZ2hsaWdodGVkSXRlbSAhPSBudWxsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIGNvbXBvbmVudCdzIGl0ZW1zLiBUYWtlcyBpbnRvIGFjY291bnQgdGhlIHZhbHVlcyBkZWZpbmVkIGJ5IHRoZSBwYXJlbnQgY29tcG9uZW50IGZvciBgc3VnZ1ZhbHVlRnJvbWAgYW5kIGBzdWdnTGFiZWxGcm9tYC5cbiAgICAgKiBAcGFyYW0gaXRlbXMgQW4gYXJyYXkgb2YgaXRlbXMgdG8gYmUgc2V0IGFzIHRoZSBjb21wb25lbnQncyBpdGVtcy5cbiAgICAgKiBAcmV0dXJucyB0cnVlIGlmIGF0IGxlYXN0IG9uZSBvZiB0aGUgaXRlbXMgaXMgb2YgcHJpbWl0aXZlIHR5cGUsIG90aGVyd2lzZSBmYWxzZS5cbiAgICAgKi9cbiAgICBzZXRJdGVtcyhpdGVtczogYW55W10pOiBib29sZWFuIHtcbiAgICAgICAgbGV0IGFyZUl0ZW1zUHJpbWl0aXZlID0gZmFsc2U7XG4gICAgICAgIGlmIChhbnkoaXRlbXMsIGlzUHJpbWl0aXZlKSkge1xuICAgICAgICAgICAgaXRlbXMgPSBpdGVtcy5tYXAodGhpcy5fcHJpbWl0aXZlSXRlbXNNYXBGbik7XG4gICAgICAgICAgICBhcmVJdGVtc1ByaW1pdGl2ZSA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9pdGVtcyA9IGl0ZW1zLm1hcCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9zZXRJdGVtc01hcEZuKGl0ZW0sIGluZGV4LCBhcmVJdGVtc1ByaW1pdGl2ZSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBhcmVJdGVtc1ByaW1pdGl2ZTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfcHJpbWl0aXZlSXRlbXNNYXBGbjxUPihpdGVtOiBUKTogeyB2YWx1ZTogVCB9IHtcbiAgICAgICAgcmV0dXJuIHsgdmFsdWU6IGl0ZW0gfTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfc2V0SXRlbXNNYXBGbihyYXdJdGVtRGF0YTogYW55LCBpbmRleDogbnVtYmVyLCBhcmVJdGVtc1ByaW1pdGl2ZTogYm9vbGVhbik6IEFyZFNpbXBsZXN0U3RvcmFnZUl0ZW0ge1xuICAgICAgICBpZiAoYXJlSXRlbXNQcmltaXRpdmUpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgaXRlbURhdGE6IHJhd0l0ZW1EYXRhLFxuICAgICAgICAgICAgICAgIGluZGV4LFxuICAgICAgICAgICAgICAgIHZhbHVlOiByYXdJdGVtRGF0YS52YWx1ZSxcbiAgICAgICAgICAgICAgICBsYWJlbDogcmF3SXRlbURhdGEudmFsdWU/LnRvU3RyaW5nPy4oKSA/PyBTdHJpbmcocmF3SXRlbURhdGEudmFsdWUpLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICAvL2dldCB2YWx1ZVxuICAgICAgICBjb25zdCB2YWx1ZVBhdGggPSB0aGlzLl9hcmRQYXJlbnRDb21wLnZhbHVlRnJvbSA/PyB0aGlzLl9hcmRQYXJlbnRDb21wLmxhYmVsRnJvbSA/PyB0aGlzLl9hcmRQYXJlbnRDb21wLkRFRkFVTFRTLnZhbHVlRnJvbTtcbiAgICAgICAgY29uc3QgdmFsdWUgPSByZXNvbHZlUGF0aChyYXdJdGVtRGF0YSwgdmFsdWVQYXRoKTtcblxuICAgICAgICAvL2dldCBsYWJlbFxuICAgICAgICBjb25zdCBsYWJlbFBhdGggPSB0aGlzLl9hcmRQYXJlbnRDb21wLmxhYmVsRnJvbSA/PyB0aGlzLl9hcmRQYXJlbnRDb21wLnZhbHVlRnJvbSA/PyB0aGlzLl9hcmRQYXJlbnRDb21wLkRFRkFVTFRTLmxhYmVsRnJvbTtcbiAgICAgICAgY29uc3QgbGFiZWwgPSByZXNvbHZlUGF0aChyYXdJdGVtRGF0YSwgbGFiZWxQYXRoKSA/PyB2YWx1ZTtcblxuICAgICAgICBjb25zdCBpdGVtRGF0YSA9IGFyZUl0ZW1zUHJpbWl0aXZlID8gcmF3SXRlbURhdGEudmFsdWUgOiByYXdJdGVtRGF0YTtcblxuICAgICAgICAvL3JldHVyblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaXRlbURhdGEsXG4gICAgICAgICAgICBpbmRleCxcbiAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgbGFiZWw6IGxhYmVsPy50b1N0cmluZz8uKCkgPz8gU3RyaW5nKGxhYmVsKSxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZWxlY3RzIHRoZSBnaXZlbiBpdGVtLlxuICAgICAqIEBwYXJhbSBpdGVtcyBUaGUgaXRlbSB0byBzZWxlY3QuXG4gICAgICogQHJldHVybnMgVGhlIHZhbHVlIG9mIHRoZSBzZWxlY3RlZCBpdGVtLlxuICAgICAqL1xuICAgIHNlbGVjdEl0ZW0oaXRlbTogQXJkU2ltcGxlc3RTdG9yYWdlSXRlbSk6IGFueSB7XG4gICAgICAgIHJldHVybiBpdGVtLnZhbHVlO1xuICAgIH1cbiAgICBzZWxlY3RDdXJyZW50KCk6IGFueSB7XG4gICAgICAgIGlmICghdGhpcy5faGlnaGxpZ2h0ZWRJdGVtKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3RJdGVtKHRoaXMuX2hpZ2hsaWdodGVkSXRlbSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVW5oaWdobGlnaHRzIGFsbCBjdXJyZW50bHkgaGlnaGxpZ2h0ZWQgaXRlbXMuXG4gICAgICovXG4gICAgdW5oaWdobGlnaHRDdXJyZW50KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5faGlnaGxpZ2h0ZWRJdGVtKSB7XG4gICAgICAgICAgICB0aGlzLl9oaWdobGlnaHRlZEl0ZW0uaGlnaGxpZ2h0ZWQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9oaWdobGlnaHRlZEl0ZW0gPSBudWxsO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBIaWdobGlnaHRzIGEgZ2l2ZW4gaXRlbS5cbiAgICAgKiBAcGFyYW0gaXRlbSBUaGUgaXRlbSB0byBiZSBoaWdobGlnaHRlZC5cbiAgICAgKi9cbiAgICBoaWdobGlnaHRJdGVtKGl0ZW06IEFyZFNpbXBsZXN0U3RvcmFnZUl0ZW0pOiB2b2lkIHtcbiAgICAgICAgdGhpcy51bmhpZ2hsaWdodEN1cnJlbnQoKTtcblxuICAgICAgICBpdGVtLmhpZ2hsaWdodGVkID0gdHJ1ZTtcblxuICAgICAgICB0aGlzLl9oaWdobGlnaHRlZEl0ZW0gPSBpdGVtO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBVbmhpZ2hsaWdodHMgYSBnaXZlbiBpdGVtLlxuICAgICAqIEBwYXJhbSBpdGVtIFRoZSBpdGVtIHRvIGJlIHVuaGlnaGxpZ2h0ZWQuXG4gICAgICovXG4gICAgdW5oaWdobGlnaHRJdGVtKGl0ZW06IEFyZFNpbXBsZXN0U3RvcmFnZUl0ZW0pOiB2b2lkIHtcbiAgICAgICAgaXRlbS5oaWdobGlnaHRlZCA9IGZhbHNlO1xuXG4gICAgICAgIGlmICh0aGlzLl9oaWdobGlnaHRlZEl0ZW0/LmluZGV4ID09IGl0ZW0uaW5kZXgpIHRoaXMuX2hpZ2hsaWdodGVkSXRlbSA9IG51bGw7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEhpZ2hsaWdodHMgdGhlIGZpcnN0IGl0ZW0gb3V0IG9mIGFsbCBpdGVtcy5cbiAgICAgKiBAcmV0dXJucyBUaGUgaGlnaGxpZ2h0ZWQgaXRlbS5cbiAgICAgKi9cbiAgICBoaWdobGlnaHRGaXJzdEl0ZW0oKTogQXJkU2ltcGxlc3RTdG9yYWdlSXRlbSB8IG51bGwge1xuICAgICAgICBpZiAoIXRoaXMuaXRlbXMubGVuZ3RoKSByZXR1cm4gbnVsbDtcblxuICAgICAgICB0aGlzLnVuaGlnaGxpZ2h0Q3VycmVudCgpO1xuXG4gICAgICAgIGxldCBpdGVtVG9IaWdobGlnaHQgPSB0aGlzLml0ZW1zLmZpcnN0KCk7XG4gICAgICAgIHRoaXMuaGlnaGxpZ2h0SXRlbShpdGVtVG9IaWdobGlnaHQpO1xuXG4gICAgICAgIHJldHVybiBpdGVtVG9IaWdobGlnaHQ7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEhpZ2hsaWdodHMgdGhlIGxhc3QgaXRlbSBvdXQgb2YgYWxsIGl0ZW1zLlxuICAgICAqIEByZXR1cm5zIFRoZSBoaWdobGlnaHRlZCBpdGVtLlxuICAgICAqL1xuICAgIGhpZ2hsaWdodExhc3RJdGVtKCk6IEFyZFNpbXBsZXN0U3RvcmFnZUl0ZW0gfCBudWxsIHtcbiAgICAgICAgaWYgKCF0aGlzLml0ZW1zLmxlbmd0aCkgcmV0dXJuIG51bGw7XG5cbiAgICAgICAgdGhpcy51bmhpZ2hsaWdodEN1cnJlbnQoKTtcblxuICAgICAgICBsZXQgaXRlbVRvSGlnaGxpZ2h0ID0gdGhpcy5pdGVtcy5sYXN0KCk7XG4gICAgICAgIHRoaXMuaGlnaGxpZ2h0SXRlbShpdGVtVG9IaWdobGlnaHQpO1xuXG4gICAgICAgIHJldHVybiBpdGVtVG9IaWdobGlnaHQ7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEhpZ2hsaWdodHMgdGhlIG5leHQgbm9uLWRpc2FibGVkIGl0ZW0gZGVmaW5lZCBieSB0aGUgb2Zmc2V0IGFtb3VudC5cbiAgICAgKiBAcGFyYW0gb2Zmc2V0IFRoZSBhbW91bnQgb2YgaXRlbXMgdG8gb2Zmc2V0IHRoZSBoaWdobGlnaHQgYnkuXG4gICAgICogQHJldHVybnMgVGhlIGl0ZW0gaGlnaGxpZ2h0ZWQuXG4gICAgICovXG4gICAgaGlnaGxpZ2h0TmV4dEl0ZW0ob2Zmc2V0OiBudW1iZXIpOiBBcmRTaW1wbGVzdFN0b3JhZ2VJdGVtIHwgbnVsbCB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRJdGVtID0gdGhpcy5faGlnaGxpZ2h0ZWRJdGVtO1xuICAgICAgICBpZiAoIWN1cnJlbnRJdGVtKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5oaWdobGlnaHRGaXJzdEl0ZW0oKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBpdGVtc1dpdGhvdXREaXNhYmxlZCA9IHRoaXMuX2l0ZW1zLmZpbHRlcihpdGVtID0+ICFpdGVtLmRpc2FibGVkKTtcbiAgICAgICAgY29uc3QgY3VycmVudEluZGV4SW5JdGVtcyA9IGl0ZW1zV2l0aG91dERpc2FibGVkLmZpbmRJbmRleChpdGVtID0+IGl0ZW0uaW5kZXggPT0gY3VycmVudEl0ZW0uaW5kZXgpO1xuXG4gICAgICAgIGxldCBuZXh0SXRlbUluZGV4ID0gY3VycmVudEluZGV4SW5JdGVtcyArIG9mZnNldDtcbiAgICAgICAgaWYgKG5leHRJdGVtSW5kZXggPj0gaXRlbXNXaXRob3V0RGlzYWJsZWQubGVuZ3RoKSB7XG4gICAgICAgICAgICBuZXh0SXRlbUluZGV4IC09IGl0ZW1zV2l0aG91dERpc2FibGVkLmxlbmd0aDtcbiAgICAgICAgfSBlbHNlIGlmIChuZXh0SXRlbUluZGV4IDwgMCkge1xuICAgICAgICAgICAgbmV4dEl0ZW1JbmRleCArPSBpdGVtc1dpdGhvdXREaXNhYmxlZC5sZW5ndGg7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaXRlbVRvSGlnaGxpZ2h0ID0gaXRlbXNXaXRob3V0RGlzYWJsZWRbbmV4dEl0ZW1JbmRleF07XG5cbiAgICAgICAgdGhpcy5oaWdobGlnaHRJdGVtKGl0ZW1Ub0hpZ2hsaWdodCk7XG5cbiAgICAgICAgcmV0dXJuIGl0ZW1Ub0hpZ2hsaWdodDtcbiAgICB9XG59XG4iXX0=
|
|
155
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxlc3QtaXRlbS1zdG9yYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9faW50ZXJuYWwvaXRlbS1zdG9yYWdlcy9zaW1wbGVzdC1pdGVtLXN0b3JhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxXQUFXLE1BQU0scUJBQXFCLENBQUM7QUFDOUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFhL0MsTUFBTSxPQUFPLG1CQUFtQjtJQUk5QixJQUFJLGVBQWU7UUFDakIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7SUFDL0IsQ0FBQztJQUVELFlBQW9CLGNBQXVDO1FBQXZDLG1CQUFjLEdBQWQsY0FBYyxDQUF5QjtRQVBuRCxXQUFNLEdBQTZCLEVBQUUsQ0FBQztRQUN0QyxxQkFBZ0IsR0FBa0MsSUFBSSxDQUFDO0lBTUQsQ0FBQztJQUUvRDs7T0FFRztJQUNILElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLG9CQUFvQjtRQUN0QixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLENBQUM7SUFDdkMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxRQUFRLENBQUMsS0FBWTtRQUNuQixJQUFJLGlCQUFpQixHQUFHLEtBQUssQ0FBQztRQUM5QixJQUFJLEdBQUcsQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLEVBQUU7WUFDM0IsS0FBSyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7WUFDN0MsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO1NBQzFCO1FBRUQsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFO1lB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QUFNLENBQUM7U0FDOUM7YUFBTSxJQUFJLGFBQWEsR0FBRyxDQUFDLEVBQUU7WUFDNUIsYUFBYSxJQUFJLG9CQUFvQixDQUFDLE1BQU0sQ0FBQztTQUM5QztRQUNELE1BQU0sZUFBZSxHQUFHLG9CQUFvQixDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRTVELElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLENBQUM7UUFFcEMsT0FBTyxlQUFlLENBQUM7SUFDekIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHJlc29sdmVQYXRoIGZyb20gJ3Jlc29sdmUtb2JqZWN0LXBhdGgnO1xuaW1wb3J0IHsgYW55LCBpc1ByaW1pdGl2ZSB9IGZyb20gJ3NpbXBsZS1ib29sJztcbmltcG9ydCB7IEFyZFNpbXBsZXN0U3RvcmFnZUl0ZW0gfSBmcm9tICcuLi8uLi90eXBlcy9pdGVtLXN0b3JhZ2UudHlwZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNpbXBsZXN0SXRlbVN0b3JhZ2VIb3N0RGVmYXVsdHMge1xuICB2YWx1ZUZyb206IHN0cmluZztcbiAgbGFiZWxGcm9tOiBzdHJpbmc7XG59XG5leHBvcnQgaW50ZXJmYWNlIFNpbXBsZXN0SXRlbVN0b3JhZ2VIb3N0IHtcbiAgdmFsdWVGcm9tPzogc3RyaW5nO1xuICBsYWJlbEZyb20/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IERFRkFVTFRTOiBTaW1wbGVzdEl0ZW1TdG9yYWdlSG9zdERlZmF1bHRzO1xufVxuXG5leHBvcnQgY2xhc3MgU2ltcGxlc3RJdGVtU3RvcmFnZSB7XG4gIHByaXZhdGUgX2l0ZW1zOiBBcmRTaW1wbGVzdFN0b3JhZ2VJdGVtW10gPSBbXTtcbiAgcHJpdmF0ZSBfaGlnaGxpZ2h0ZWRJdGVtOiBBcmRTaW1wbGVzdFN0b3JhZ2VJdGVtIHwgbnVsbCA9IG51bGw7XG5cbiAgZ2V0IGhpZ2hsaWdodGVkSXRlbSgpOiBBcmRTaW1wbGVzdFN0b3JhZ2VJdGVtIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX2hpZ2hsaWdodGVkSXRlbTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2FyZFBhcmVudENvbXA6IFNpbXBsZXN0SXRlbVN0b3JhZ2VIb3N0KSB7fVxuXG4gIC8qKlxuICAgKiBHZXRzIGFsbCBpdGVtcy5cbiAgICovXG4gIGdldCBpdGVtcygpOiBBcmRTaW1wbGVzdFN0b3JhZ2VJdGVtW10ge1xuICAgIHJldHVybiB0aGlzLl9pdGVtcztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRydWUgaWYgYXQgbGVhc3Qgb25lIGl0ZW0gaXMgaGlnaGxpZ2h0ZWQsIG90aGVyd2lzZSBmYWxzZS5cbiAgICovXG4gIGdldCBpc0FueUl0ZW1IaWdobGlnaHRlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5faGlnaGxpZ2h0ZWRJdGVtICE9IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgY29tcG9uZW50J3MgaXRlbXMuIFRha2VzIGludG8gYWNjb3VudCB0aGUgdmFsdWVzIGRlZmluZWQgYnkgdGhlIHBhcmVudCBjb21wb25lbnQgZm9yIGBzdWdnVmFsdWVGcm9tYCBhbmQgYHN1Z2dMYWJlbEZyb21gLlxuICAgKiBAcGFyYW0gaXRlbXMgQW4gYXJyYXkgb2YgaXRlbXMgdG8gYmUgc2V0IGFzIHRoZSBjb21wb25lbnQncyBpdGVtcy5cbiAgICogQHJldHVybnMgdHJ1ZSBpZiBhdCBsZWFzdCBvbmUgb2YgdGhlIGl0ZW1zIGlzIG9mIHByaW1pdGl2ZSB0eXBlLCBvdGhlcndpc2UgZmFsc2UuXG4gICAqL1xuICBzZXRJdGVtcyhpdGVtczogYW55W10pOiBib29sZWFuIHtcbiAgICBsZXQgYXJlSXRlbXNQcmltaXRpdmUgPSBmYWxzZTtcbiAgICBpZiAoYW55KGl0ZW1zLCBpc1ByaW1pdGl2ZSkpIHtcbiAgICAgIGl0ZW1zID0gaXRlbXMubWFwKHRoaXMuX3ByaW1pdGl2ZUl0ZW1zTWFwRm4pO1xuICAgICAgYXJlSXRlbXNQcmltaXRpdmUgPSB0cnVlO1xuICAgIH1cblxuICAgIHRoaXMuX2l0ZW1zID0gaXRlbXMubWFwKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuX3NldEl0ZW1zTWFwRm4oaXRlbSwgaW5kZXgsIGFyZUl0ZW1zUHJpbWl0aXZlKTtcbiAgICB9KTtcblxuICAgIHJldHVybiBhcmVJdGVtc1ByaW1pdGl2ZTtcbiAgfVxuICBwcml2YXRlIF9wcmltaXRpdmVJdGVtc01hcEZuPFQ+KGl0ZW06IFQpOiB7IHZhbHVlOiBUIH0ge1xuICAgIHJldHVybiB7IHZhbHVlOiBpdGVtIH07XG4gIH1cbiAgcHJpdmF0ZSBfc2V0SXRlbXNNYXBGbihyYXdJdGVtRGF0YTogYW55LCBpbmRleDogbnVtYmVyLCBhcmVJdGVtc1ByaW1pdGl2ZTogYm9vbGVhbik6IEFyZFNpbXBsZXN0U3RvcmFnZUl0ZW0ge1xuICAgIGlmIChhcmVJdGVtc1ByaW1pdGl2ZSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaXRlbURhdGE6IHJhd0l0ZW1EYXRhLFxuICAgICAgICBpbmRleCxcbiAgICAgICAgdmFsdWU6IHJhd0l0ZW1EYXRhLnZhbHVlLFxuICAgICAgICBsYWJlbDogcmF3SXRlbURhdGEudmFsdWU/LnRvU3RyaW5nPy4oKSA/PyBTdHJpbmcocmF3SXRlbURhdGEudmFsdWUpLFxuICAgICAgfTtcbiAgICB9XG4gICAgLy9nZXQgdmFsdWVcbiAgICBjb25zdCB2YWx1ZVBhdGggPSB0aGlzLl9hcmRQYXJlbnRDb21wLnZhbHVlRnJvbSA/PyB0aGlzLl9hcmRQYXJlbnRDb21wLmxhYmVsRnJvbSA/PyB0aGlzLl9hcmRQYXJlbnRDb21wLkRFRkFVTFRTLnZhbHVlRnJvbTtcbiAgICBjb25zdCB2YWx1ZSA9IHJlc29sdmVQYXRoKHJhd0l0ZW1EYXRhLCB2YWx1ZVBhdGgpO1xuXG4gICAgLy9nZXQgbGFiZWxcbiAgICBjb25zdCBsYWJlbFBhdGggPSB0aGlzLl9hcmRQYXJlbnRDb21wLmxhYmVsRnJvbSA/PyB0aGlzLl9hcmRQYXJlbnRDb21wLnZhbHVlRnJvbSA/PyB0aGlzLl9hcmRQYXJlbnRDb21wLkRFRkFVTFRTLmxhYmVsRnJvbTtcbiAgICBjb25zdCBsYWJlbCA9IHJlc29sdmVQYXRoKHJhd0l0ZW1EYXRhLCBsYWJlbFBhdGgpID8/IHZhbHVlO1xuXG4gICAgY29uc3QgaXRlbURhdGEgPSBhcmVJdGVtc1ByaW1pdGl2ZSA/IHJhd0l0ZW1EYXRhLnZhbHVlIDogcmF3SXRlbURhdGE7XG5cbiAgICAvL3JldHVyblxuICAgIHJldHVybiB7XG4gICAgICBpdGVtRGF0YSxcbiAgICAgIGluZGV4LFxuICAgICAgdmFsdWUsXG4gICAgICBsYWJlbDogbGFiZWw/LnRvU3RyaW5nPy4oKSA/PyBTdHJpbmcobGFiZWwpLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogU2VsZWN0cyB0aGUgZ2l2ZW4gaXRlbS5cbiAgICogQHBhcmFtIGl0ZW1zIFRoZSBpdGVtIHRvIHNlbGVjdC5cbiAgICogQHJldHVybnMgVGhlIHZhbHVlIG9mIHRoZSBzZWxlY3RlZCBpdGVtLlxuICAgKi9cbiAgc2VsZWN0SXRlbShpdGVtOiBBcmRTaW1wbGVzdFN0b3JhZ2VJdGVtKTogYW55IHtcbiAgICByZXR1cm4gaXRlbS52YWx1ZTtcbiAgfVxuICBzZWxlY3RDdXJyZW50KCk6IGFueSB7XG4gICAgaWYgKCF0aGlzLl9oaWdobGlnaHRlZEl0ZW0pIHJldHVybiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0SXRlbSh0aGlzLl9oaWdobGlnaHRlZEl0ZW0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFVuaGlnaGxpZ2h0cyBhbGwgY3VycmVudGx5IGhpZ2hsaWdodGVkIGl0ZW1zLlxuICAgKi9cbiAgdW5oaWdobGlnaHRDdXJyZW50KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9oaWdobGlnaHRlZEl0ZW0pIHtcbiAgICAgIHRoaXMuX2hpZ2hsaWdodGVkSXRlbS5oaWdobGlnaHRlZCA9IGZhbHNlO1xuICAgIH1cbiAgICB0aGlzLl9oaWdobGlnaHRlZEl0ZW0gPSBudWxsO1xuICB9XG4gIC8qKlxuICAgKiBIaWdobGlnaHRzIGEgZ2l2ZW4gaXRlbS5cbiAgICogQHBhcmFtIGl0ZW0gVGhlIGl0ZW0gdG8gYmUgaGlnaGxpZ2h0ZWQuXG4gICAqL1xuICBoaWdobGlnaHRJdGVtKGl0ZW06IEFyZFNpbXBsZXN0U3RvcmFnZUl0ZW0pOiB2b2lkIHtcbiAgICB0aGlzLnVuaGlnaGxpZ2h0Q3VycmVudCgpO1xuXG4gICAgaXRlbS5oaWdobGlnaHRlZCA9IHRydWU7XG5cbiAgICB0aGlzLl9oaWdobGlnaHRlZEl0ZW0gPSBpdGVtO1xuICB9XG4gIC8qKlxuICAgKiBVbmhpZ2hsaWdodHMgYSBnaXZlbiBpdGVtLlxuICAgKiBAcGFyYW0gaXRlbSBUaGUgaXRlbSB0byBiZSB1bmhpZ2hsaWdodGVkLlxuICAgKi9cbiAgdW5oaWdobGlnaHRJdGVtKGl0ZW06IEFyZFNpbXBsZXN0U3RvcmFnZUl0ZW0pOiB2b2lkIHtcbiAgICBpdGVtLmhpZ2hsaWdodGVkID0gZmFsc2U7XG5cbiAgICBpZiAodGhpcy5faGlnaGxpZ2h0ZWRJdGVtPy5pbmRleCA9PSBpdGVtLmluZGV4KSB0aGlzLl9oaWdobGlnaHRlZEl0ZW0gPSBudWxsO1xuICB9XG4gIC8qKlxuICAgKiBIaWdobGlnaHRzIHRoZSBmaXJzdCBpdGVtIG91dCBvZiBhbGwgaXRlbXMuXG4gICAqIEByZXR1cm5zIFRoZSBoaWdobGlnaHRlZCBpdGVtLlxuICAgKi9cbiAgaGlnaGxpZ2h0Rmlyc3RJdGVtKCk6IEFyZFNpbXBsZXN0U3RvcmFnZUl0ZW0gfCBudWxsIHtcbiAgICBpZiAoIXRoaXMuaXRlbXMubGVuZ3RoKSByZXR1cm4gbnVsbDtcblxuICAgIHRoaXMudW5oaWdobGlnaHRDdXJyZW50KCk7XG5cbiAgICBsZXQgaXRlbVRvSGlnaGxpZ2h0ID0gdGhpcy5pdGVtcy5maXJzdCgpO1xuICAgIHRoaXMuaGlnaGxpZ2h0SXRlbShpdGVtVG9IaWdobGlnaHQpO1xuXG4gICAgcmV0dXJuIGl0ZW1Ub0hpZ2hsaWdodDtcbiAgfVxuICAvKipcbiAgICogSGlnaGxpZ2h0cyB0aGUgbGFzdCBpdGVtIG91dCBvZiBhbGwgaXRlbXMuXG4gICAqIEByZXR1cm5zIFRoZSBoaWdobGlnaHRlZCBpdGVtLlxuICAgKi9cbiAgaGlnaGxpZ2h0TGFzdEl0ZW0oKTogQXJkU2ltcGxlc3RTdG9yYWdlSXRlbSB8IG51bGwge1xuICAgIGlmICghdGhpcy5pdGVtcy5sZW5ndGgpIHJldHVybiBudWxsO1xuXG4gICAgdGhpcy51bmhpZ2hsaWdodEN1cnJlbnQoKTtcblxuICAgIGxldCBpdGVtVG9IaWdobGlnaHQgPSB0aGlzLml0ZW1zLmxhc3QoKTtcbiAgICB0aGlzLmhpZ2hsaWdodEl0ZW0oaXRlbVRvSGlnaGxpZ2h0KTtcblxuICAgIHJldHVybiBpdGVtVG9IaWdobGlnaHQ7XG4gIH1cbiAgLyoqXG4gICAqIEhpZ2hsaWdodHMgdGhlIG5leHQgbm9uLWRpc2FibGVkIGl0ZW0gZGVmaW5lZCBieSB0aGUgb2Zmc2V0IGFtb3VudC5cbiAgICogQHBhcmFtIG9mZnNldCBUaGUgYW1vdW50IG9mIGl0ZW1zIHRvIG9mZnNldCB0aGUgaGlnaGxpZ2h0IGJ5LlxuICAgKiBAcmV0dXJucyBUaGUgaXRlbSBoaWdobGlnaHRlZC5cbiAgICovXG4gIGhpZ2hsaWdodE5leHRJdGVtKG9mZnNldDogbnVtYmVyKTogQXJkU2ltcGxlc3RTdG9yYWdlSXRlbSB8IG51bGwge1xuICAgIGNvbnN0IGN1cnJlbnRJdGVtID0gdGhpcy5faGlnaGxpZ2h0ZWRJdGVtO1xuICAgIGlmICghY3VycmVudEl0ZW0pIHtcbiAgICAgIHJldHVybiB0aGlzLmhpZ2hsaWdodEZpcnN0SXRlbSgpO1xuICAgIH1cbiAgICBjb25zdCBpdGVtc1dpdGhvdXREaXNhYmxlZCA9IHRoaXMuX2l0ZW1zLmZpbHRlcihpdGVtID0+ICFpdGVtLmRpc2FibGVkKTtcbiAgICBjb25zdCBjdXJyZW50SW5kZXhJbkl0ZW1zID0gaXRlbXNXaXRob3V0RGlzYWJsZWQuZmluZEluZGV4KGl0ZW0gPT4gaXRlbS5pbmRleCA9PSBjdXJyZW50SXRlbS5pbmRleCk7XG5cbiAgICBsZXQgbmV4dEl0ZW1JbmRleCA9IGN1cnJlbnRJbmRleEluSXRlbXMgKyBvZmZzZXQ7XG4gICAgaWYgKG5leHRJdGVtSW5kZXggPj0gaXRlbXNXaXRob3V0RGlzYWJsZWQubGVuZ3RoKSB7XG4gICAgICBuZXh0SXRlbUluZGV4IC09IGl0ZW1zV2l0aG91dERpc2FibGVkLmxlbmd0aDtcbiAgICB9IGVsc2UgaWYgKG5leHRJdGVtSW5kZXggPCAwKSB7XG4gICAgICBuZXh0SXRlbUluZGV4ICs9IGl0ZW1zV2l0aG91dERpc2FibGVkLmxlbmd0aDtcbiAgICB9XG4gICAgY29uc3QgaXRlbVRvSGlnaGxpZ2h0ID0gaXRlbXNXaXRob3V0RGlzYWJsZWRbbmV4dEl0ZW1JbmRleF07XG5cbiAgICB0aGlzLmhpZ2hsaWdodEl0ZW0oaXRlbVRvSGlnaGxpZ2h0KTtcblxuICAgIHJldHVybiBpdGVtVG9IaWdobGlnaHQ7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -121,4 +121,4 @@ export class PaginationModel {
|
|
|
121
121
|
};
|
|
122
122
|
}
|
|
123
123
|
}
|
|
124
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvX2ludGVybmFsL21vZGVscy9wYWdpbmF0aW9uLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFxQnhDLE1BQU0sT0FBTyxlQUFlO0lBQTVCO1FBRVkseUJBQW9CLEdBQWtELENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNuRixrQkFBYSxHQUFXLEVBQUUsQ0FBQztRQUMzQixVQUFLLEdBQVcsQ0FBQyxDQUFDO1FBNkJsQiw0QkFBdUIsR0FBNEIsSUFBSSxDQUFDO1FBcUJoRSxnQkFBZ0I7UUFDUixxQkFBZ0IsR0FBa0IsSUFBSSxDQUFDO0lBZ0VuRCxDQUFDO0lBakhHLGVBQWU7SUFDZixhQUFhLENBQUMsQ0FBUztRQUNuQixJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQztRQUNyQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO1FBQzdCLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxJQUFJLENBQUM7SUFDeEMsQ0FBQztJQUNELElBQUksbUJBQW1CO1FBQ25CLE9BQU8sU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLHNCQUFzQixDQUFDLENBQWdEO1FBQ25FLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUNELHNCQUFzQjtRQUNsQixPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztJQUNyQyxDQUFDO0lBQ0QsZUFBZSxDQUFDLENBQVM7UUFDckIsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUM7UUFDdkIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztRQUM3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LE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUN0QixDQUFDO0lBQ0QsUUFBUTtRQUNKLElBQUksSUFBSSxDQUFDLGdCQUFnQjtZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVksQ0FBQyxDQUFDO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUN0QixDQUFDO0lBRUQsV0FBVztJQUNYLHNCQUFzQjtRQUNsQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLGlFQUFpRSxDQUFDLENBQUM7UUFFckgsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGtCQUFtQixDQUFDO1FBQzNDLE9BQU87WUFDSCxVQUFVLEVBQUUsSUFBSSxDQUFDLFdBQVk7WUFDN0IsVUFBVSxFQUFFLElBQUksQ0FBQyxXQUFXO1lBQzVCLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSztZQUNoQixpQkFBaUIsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDO1lBQy9CLGdCQUFnQixFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUM7U0FDakMsQ0FBQztJQUNOLENBQUM7SUFDRCxpQkFBaUI7UUFDYixPQUFPO1lBQ0gsR0FBRyxJQUFJLENBQUMsc0JBQXNCLEVBQUU7WUFDaEMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLG9CQUFvQjtZQUM5QyxZQUFZLEVBQUUsSUFBSSxDQUFDLGFBQWE7WUFDaEMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLGlCQUFpQjtZQUN6QyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsaUJBQWlCO1lBQ3hDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxnQkFBZ0I7WUFDdkMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGdCQUFnQjtTQUMxQyxDQUFDO0lBQ04sQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNEZWZpbmVkIH0gZnJvbSAnc2ltcGxlLWJvb2wnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBhZ2luYXRpb25DdXJyZW50SXRlbXNDb250ZXh0IHtcbiAgICBjdXJyZW50SXRlbXNGaXJzdDogbnVtYmVyO1xuICAgIGN1cnJlbnRJdGVtc0xhc3Q6IG51bWJlcjtcbiAgICB0b3RhbEl0ZW1zOiBudW1iZXI7XG4gICAgdG90YWxQYWdlczogbnVtYmVyO1xuICAgIHBhZ2U6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQYWdpbmF0aW9uQ29udGV4dCBleHRlbmRzIFBhZ2luYXRpb25DdXJyZW50SXRlbXNDb250ZXh0IHtcbiAgICBpdGVtc1BlclBhZ2VPcHRpb25zOiBudW1iZXJbXSB8IHsgdmFsdWU6IG51bWJlcjsgbGFiZWw6IHN0cmluZyB9W107XG4gICAgaXRlbXNQZXJQYWdlOiBudW1iZXI7XG4gICAgb25JdGVtc1BlclBhZ2VDaGFuZ2U6IChuZXdWYWx1ZTogbnVtYmVyKSA9PiB2b2lkO1xuICAgIGZpcnN0UGFnZURpc2FibGVkOiBib29sZWFuO1xuICAgIHByZXZQYWdlRGlzYWJsZWQ6IGJvb2xlYW47XG4gICAgbmV4dFBhZ2VEaXNhYmxlZDogYm9vbGVhbjtcbiAgICBsYXN0UGFnZURpc2FibGVkOiBib29sZWFuO1xuICAgIG9uUGFnZUNoYW5nZTogKG5ld1BhZ2U6IG51bWJlcikgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGNsYXNzIFBhZ2luYXRpb25Nb2RlbCB7XG4gICAgcHJpdmF0ZSBfdG90YWxJdGVtcz86IG51bWJlcjtcbiAgICBwcml2YXRlIF9pdGVtc1BlclBhZ2VPcHRpb25zOiBudW1iZXJbXSB8IHsgdmFsdWU6IG51bWJlcjsgbGFiZWw6IHN0cmluZyB9W10gPSBbMTAsIDI1LCA1MF07XG4gICAgcHJpdmF0ZSBfaXRlbXNQZXJQYWdlOiBudW1iZXIgPSA1MDtcbiAgICBwcml2YXRlIF9wYWdlOiBudW1iZXIgPSAxO1xuXG4gICAgLy8hIHRvdGFsIGl0ZW1zXG4gICAgc2V0VG90YWxJdGVtcyh2OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdG90YWxJdGVtcyA9IHY7XG4gICAgICAgIHRoaXMuX2xhc3RQYWdlTnVtTWVtbyA9IG51bGw7XG4gICAgICAgIHRoaXMuX2l0ZW1zT25DdXJyZW50UGFnZU1lbW8gPSBudWxsO1xuICAgIH1cbiAgICBnZXQgaXNUb3RhbEl0ZW1zRGVmaW5lZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGlzRGVmaW5lZCh0aGlzLl90b3RhbEl0ZW1zKTtcbiAgICB9XG5cbiAgICAvLyEgaXRlbXMgcGVyIHBhZ2VcbiAgICBzZXRJdGVtc1BlclBhZ2VPcHRpb25zKHY6IG51bWJlcltdIHwgeyB2YWx1ZTogbnVtYmVyOyBsYWJlbDogc3RyaW5nIH1bXSk6IHZvaWQge1xuICAgICAgICB0aGlzLl9pdGVtc1BlclBhZ2VPcHRpb25zID0gdjtcbiAgICB9XG4gICAgZ2V0SXRlbXNQZXJQYWdlT3B0aW9ucygpOiBudW1iZXJbXSB8IHsgdmFsdWU6IG51bWJlcjsgbGFiZWw6IHN0cmluZyB9W10ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXRlbXNQZXJQYWdlT3B0aW9ucztcbiAgICB9XG4gICAgc2V0SXRlbXNQZXJQYWdlKHY6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLl9pdGVtc1BlclBhZ2UgPSB2O1xuICAgICAgICB0aGlzLl9sYXN0UGFnZU51bU1lbW8gPSBudWxsO1xuICAgICAgICB0aGlzLl9pdGVtc09uQ3VycmVudFBhZ2VNZW1vID0gbnVsbDtcbiAgICAgICAgdGhpcy5zZXRQYWdlKDEpO1xuICAgIH1cbiAgICBnZXRJdGVtc1BlclBhZ2UoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2l0ZW1zUGVyUGFnZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9pdGVtc09uQ3VycmVudFBhZ2VNZW1vOiBbbnVtYmVyLCBudW1iZXJdIHwgbnVsbCA9IG51bGw7XG4gICAgZ2V0IGl0ZW1zT25DdXJyZW50UGFnZSgpOiBbbnVtYmVyLCBudW1iZXJdIHwgbnVsbCB7XG4gICAgICAgIGlmICghaXNEZWZpbmVkKHRoaXMuX3RvdGFsSXRlbXMpKSByZXR1cm4gbnVsbDtcbiAgICAgICAgaWYgKCFpc0RlZmluZWQodGhpcy5faXRlbXNPbkN1cnJlbnRQYWdlTWVtbykpXG4gICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgKHRoaXMuX2l0ZW1zT25DdXJyZW50UGFnZU1lbW8gPSBbXG4gICAgICAgICAgICAgICAgICAgIE1hdGgubWluKHRoaXMuX3RvdGFsSXRlbXMsICh0aGlzLl9wYWdlIC0gMSkgKiB0aGlzLl9pdGVtc1BlclBhZ2UgKyAxKSxcbiAgICAgICAgICAgICAgICAgICAgTWF0aC5taW4odGhpcy5fdG90YWxJdGVtcywgdGhpcy5fcGFnZSAqIHRoaXMuX2l0ZW1zUGVyUGFnZSksXG4gICAgICAgICAgICAgICAgXSksXG4gICAgICAgICAgICBdO1xuICAgICAgICByZXR1cm4gdGhpcy5faXRlbXNPbkN1cnJlbnRQYWdlTWVtbztcbiAgICB9XG5cbiAgICAvLyEgYWN0aW9uIGRpc2FibGVkIHN0YXRlc1xuICAgIGdldCBmaXJzdFBhZ2VEaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICFpc0RlZmluZWQodGhpcy5fdG90YWxJdGVtcykgfHwgdGhpcy5fcGFnZSA9PSAxO1xuICAgIH1cbiAgICBnZXQgbGFzdFBhZ2VEaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICFpc0RlZmluZWQodGhpcy5fdG90YWxJdGVtcykgfHwgdGhpcy5fcGFnZSA9PSB0aGlzLmxhc3RQYWdlTnVtO1xuICAgIH1cblxuICAgIC8vISBjdXJyZW50IHBhZ2VcbiAgICBwcml2YXRlIF9sYXN0UGFnZU51bU1lbW86IG51bWJlciB8IG51bGwgPSBudWxsO1xuICAgIGdldCBsYXN0UGFnZU51bSgpOiBudW1iZXIgfCBudWxsIHtcbiAgICAgICAgaWYgKCFpc0RlZmluZWQodGhpcy5fdG90YWxJdGVtcykpIHJldHVybiBudWxsO1xuICAgICAgICBpZiAoIWlzRGVmaW5lZCh0aGlzLl9sYXN0UGFnZU51bU1lbW8pKSB7XG4gICAgICAgICAgICB0aGlzLl9sYXN0UGFnZU51bU1lbW8gPSBNYXRoLmNlaWwodGhpcy5fdG90YWxJdGVtcyAvIHRoaXMuX2l0ZW1zUGVyUGFnZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuX2xhc3RQYWdlTnVtTWVtbztcbiAgICB9XG4gICAgZ2V0IGlzTGFzdFBhZ2UoKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICghaXNEZWZpbmVkKHRoaXMuX3RvdGFsSXRlbXMpKSByZXR1cm4gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIHRoaXMubGFzdFBhZ2VOdW0gPT09IHRoaXMuX3BhZ2U7XG4gICAgfVxuICAgIHNldFBhZ2UodjogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3BhZ2UgPSB2O1xuICAgICAgICB0aGlzLl9pdGVtc09uQ3VycmVudFBhZ2VNZW1vID0gbnVsbDtcbiAgICB9XG4gICAgZ2V0UGFnZSgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fcGFnZTtcbiAgICB9XG4gICAgZmlyc3RQYWdlKCk6IG51bWJlciB8IG51bGwge1xuICAgICAgICBpZiAodGhpcy5maXJzdFBhZ2VEaXNhYmxlZCkgcmV0dXJuIG51bGw7XG4gICAgICAgIHRoaXMuc2V0UGFnZSgxKTtcbiAgICAgICAgcmV0dXJuIDE7XG4gICAgfVxuICAgIHByZXZQYWdlKCk6IG51bWJlciB8IG51bGwge1xuICAgICAgICBpZiAodGhpcy5maXJzdFBhZ2VEaXNhYmxlZCkgcmV0dXJuIG51bGw7XG4gICAgICAgIHRoaXMuc2V0UGFnZSh0aGlzLl9wYWdlIC0gMSk7XG4gICAgICAgIHJldHVybiB0aGlzLl9wYWdlO1xuICAgIH1cbiAgICBuZXh0UGFnZSgpOiBudW1iZXIgfCBudWxsIHtcbiAgICAgICAgaWYgKHRoaXMubGFzdFBhZ2VEaXNhYmxlZCkgcmV0dXJuIG51bGw7XG4gICAgICAgIHRoaXMuc2V0UGFnZSh0aGlzLl9wYWdlICsgMSk7XG4gICAgICAgIHJldHVybiB0aGlzLl9wYWdlO1xuICAgIH1cbiAgICBsYXN0UGFnZSgpOiBudW1iZXIgfCBudWxsIHtcbiAgICAgICAgaWYgKHRoaXMubGFzdFBhZ2VEaXNhYmxlZCkgcmV0dXJuIG51bGw7XG4gICAgICAgIHRoaXMuc2V0UGFnZSh0aGlzLmxhc3RQYWdlTnVtISk7XG4gICAgICAgIHJldHVybiB0aGlzLl9wYWdlO1xuICAgIH1cblxuICAgIC8vISBjb250ZXh0XG4gICAgZ2V0Q3VycmVudEl0ZW1zQ29udGV4dCgpOiBQYWdpbmF0aW9uQ3VycmVudEl0ZW1zQ29udGV4dCB7XG4gICAgICAgIGlmICghaXNEZWZpbmVkKHRoaXMuX3RvdGFsSXRlbXMpKSB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCB1c2UgcGFnaW5hdGlvbiBtb2RlbCB3aXRob3V0IGRlZmluaW5nIHRvdGFsIGl0ZW1zIGZpcnN0LicpO1xuXG4gICAgICAgIGNvbnN0IHBhZ2VJdGVtcyA9IHRoaXMuaXRlbXNPbkN1cnJlbnRQYWdlITtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHRvdGFsUGFnZXM6IHRoaXMubGFzdFBhZ2VOdW0hLFxuICAgICAgICAgICAgdG90YWxJdGVtczogdGhpcy5fdG90YWxJdGVtcyxcbiAgICAgICAgICAgIHBhZ2U6IHRoaXMuX3BhZ2UsXG4gICAgICAgICAgICBjdXJyZW50SXRlbXNGaXJzdDogcGFnZUl0ZW1zWzBdLFxuICAgICAgICAgICAgY3VycmVudEl0ZW1zTGFzdDogcGFnZUl0ZW1zWzFdLFxuICAgICAgICB9O1xuICAgIH1cbiAgICBnZXRQYXJ0aWFsQ29udGV4dCgpOiBPbWl0PFBhZ2luYXRpb25Db250ZXh0LCAnb25JdGVtc1BlclBhZ2VDaGFuZ2UnIHwgJ29uUGFnZUNoYW5nZSc+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIC4uLnRoaXMuZ2V0Q3VycmVudEl0ZW1zQ29udGV4dCgpLFxuICAgICAgICAgICAgaXRlbXNQZXJQYWdlT3B0aW9uczogdGhpcy5faXRlbXNQZXJQYWdlT3B0aW9ucyxcbiAgICAgICAgICAgIGl0ZW1zUGVyUGFnZTogdGhpcy5faXRlbXNQZXJQYWdlLFxuICAgICAgICAgICAgZmlyc3RQYWdlRGlzYWJsZWQ6IHRoaXMuZmlyc3RQYWdlRGlzYWJsZWQsXG4gICAgICAgICAgICBwcmV2UGFnZURpc2FibGVkOiB0aGlzLmZpcnN0UGFnZURpc2FibGVkLFxuICAgICAgICAgICAgbmV4dFBhZ2VEaXNhYmxlZDogdGhpcy5sYXN0UGFnZURpc2FibGVkLFxuICAgICAgICAgICAgbGFzdFBhZ2VEaXNhYmxlZDogdGhpcy5sYXN0UGFnZURpc2FibGVkLFxuICAgICAgICB9O1xuICAgIH1cbn1cbiJdfQ==
|
|
124
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvX2ludGVybmFsL21vZGVscy9wYWdpbmF0aW9uLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFxQnhDLE1BQU0sT0FBTyxlQUFlO0lBQTVCO1FBRVUseUJBQW9CLEdBQWtELENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNuRixrQkFBYSxHQUFXLEVBQUUsQ0FBQztRQUMzQixVQUFLLEdBQVcsQ0FBQyxDQUFDO1FBNkJsQiw0QkFBdUIsR0FBNEIsSUFBSSxDQUFDO1FBcUJoRSxnQkFBZ0I7UUFDUixxQkFBZ0IsR0FBa0IsSUFBSSxDQUFDO0lBZ0VqRCxDQUFDO0lBakhDLGVBQWU7SUFDZixhQUFhLENBQUMsQ0FBUztRQUNyQixJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQztRQUNyQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO1FBQzdCLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxJQUFJLENBQUM7SUFDdEMsQ0FBQztJQUNELElBQUksbUJBQW1CO1FBQ3JCLE9BQU8sU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLHNCQUFzQixDQUFDLENBQWdEO1FBQ3JFLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUNELHNCQUFzQjtRQUNwQixPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztJQUNuQyxDQUFDO0lBQ0QsZUFBZSxDQUFDLENBQVM7UUFDdkIsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUM7UUFDdkIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztRQUM3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LE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBQ0QsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLGdCQUFnQjtZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVksQ0FBQyxDQUFDO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBRUQsV0FBVztJQUNYLHNCQUFzQjtRQUNwQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLGlFQUFpRSxDQUFDLENBQUM7UUFFckgsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGtCQUFtQixDQUFDO1FBQzNDLE9BQU87WUFDTCxVQUFVLEVBQUUsSUFBSSxDQUFDLFdBQVk7WUFDN0IsVUFBVSxFQUFFLElBQUksQ0FBQyxXQUFXO1lBQzVCLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSztZQUNoQixpQkFBaUIsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDO1lBQy9CLGdCQUFnQixFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUM7U0FDL0IsQ0FBQztJQUNKLENBQUM7SUFDRCxpQkFBaUI7UUFDZixPQUFPO1lBQ0wsR0FBRyxJQUFJLENBQUMsc0JBQXNCLEVBQUU7WUFDaEMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLG9CQUFvQjtZQUM5QyxZQUFZLEVBQUUsSUFBSSxDQUFDLGFBQWE7WUFDaEMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLGlCQUFpQjtZQUN6QyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsaUJBQWlCO1lBQ3hDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxnQkFBZ0I7WUFDdkMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGdCQUFnQjtTQUN4QyxDQUFDO0lBQ0osQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNEZWZpbmVkIH0gZnJvbSAnc2ltcGxlLWJvb2wnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBhZ2luYXRpb25DdXJyZW50SXRlbXNDb250ZXh0IHtcbiAgY3VycmVudEl0ZW1zRmlyc3Q6IG51bWJlcjtcbiAgY3VycmVudEl0ZW1zTGFzdDogbnVtYmVyO1xuICB0b3RhbEl0ZW1zOiBudW1iZXI7XG4gIHRvdGFsUGFnZXM6IG51bWJlcjtcbiAgcGFnZTogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBhZ2luYXRpb25Db250ZXh0IGV4dGVuZHMgUGFnaW5hdGlvbkN1cnJlbnRJdGVtc0NvbnRleHQge1xuICBpdGVtc1BlclBhZ2VPcHRpb25zOiBudW1iZXJbXSB8IHsgdmFsdWU6IG51bWJlcjsgbGFiZWw6IHN0cmluZyB9W107XG4gIGl0ZW1zUGVyUGFnZTogbnVtYmVyO1xuICBvbkl0ZW1zUGVyUGFnZUNoYW5nZTogKG5ld1ZhbHVlOiBudW1iZXIpID0+IHZvaWQ7XG4gIGZpcnN0UGFnZURpc2FibGVkOiBib29sZWFuO1xuICBwcmV2UGFnZURpc2FibGVkOiBib29sZWFuO1xuICBuZXh0UGFnZURpc2FibGVkOiBib29sZWFuO1xuICBsYXN0UGFnZURpc2FibGVkOiBib29sZWFuO1xuICBvblBhZ2VDaGFuZ2U6IChuZXdQYWdlOiBudW1iZXIpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBjbGFzcyBQYWdpbmF0aW9uTW9kZWwge1xuICBwcml2YXRlIF90b3RhbEl0ZW1zPzogbnVtYmVyO1xuICBwcml2YXRlIF9pdGVtc1BlclBhZ2VPcHRpb25zOiBudW1iZXJbXSB8IHsgdmFsdWU6IG51bWJlcjsgbGFiZWw6IHN0cmluZyB9W10gPSBbMTAsIDI1LCA1MF07XG4gIHByaXZhdGUgX2l0ZW1zUGVyUGFnZTogbnVtYmVyID0gNTA7XG4gIHByaXZhdGUgX3BhZ2U6IG51bWJlciA9IDE7XG5cbiAgLy8hIHRvdGFsIGl0ZW1zXG4gIHNldFRvdGFsSXRlbXModjogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5fdG90YWxJdGVtcyA9IHY7XG4gICAgdGhpcy5fbGFzdFBhZ2VOdW1NZW1vID0gbnVsbDtcbiAgICB0aGlzLl9pdGVtc09uQ3VycmVudFBhZ2VNZW1vID0gbnVsbDtcbiAgfVxuICBnZXQgaXNUb3RhbEl0ZW1zRGVmaW5lZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNEZWZpbmVkKHRoaXMuX3RvdGFsSXRlbXMpO1xuICB9XG5cbiAgLy8hIGl0ZW1zIHBlciBwYWdlXG4gIHNldEl0ZW1zUGVyUGFnZU9wdGlvbnModjogbnVtYmVyW10gfCB7IHZhbHVlOiBudW1iZXI7IGxhYmVsOiBzdHJpbmcgfVtdKTogdm9pZCB7XG4gICAgdGhpcy5faXRlbXNQZXJQYWdlT3B0aW9ucyA9IHY7XG4gIH1cbiAgZ2V0SXRlbXNQZXJQYWdlT3B0aW9ucygpOiBudW1iZXJbXSB8IHsgdmFsdWU6IG51bWJlcjsgbGFiZWw6IHN0cmluZyB9W10ge1xuICAgIHJldHVybiB0aGlzLl9pdGVtc1BlclBhZ2VPcHRpb25zO1xuICB9XG4gIHNldEl0ZW1zUGVyUGFnZSh2OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLl9pdGVtc1BlclBhZ2UgPSB2O1xuICAgIHRoaXMuX2xhc3RQYWdlTnVtTWVtbyA9IG51bGw7XG4gICAgdGhpcy5faXRlbXNPbkN1cnJlbnRQYWdlTWVtbyA9IG51bGw7XG4gICAgdGhpcy5zZXRQYWdlKDEpO1xuICB9XG4gIGdldEl0ZW1zUGVyUGFnZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9pdGVtc1BlclBhZ2U7XG4gIH1cblxuICBwcml2YXRlIF9pdGVtc09uQ3VycmVudFBhZ2VNZW1vOiBbbnVtYmVyLCBudW1iZXJdIHwgbnVsbCA9IG51bGw7XG4gIGdldCBpdGVtc09uQ3VycmVudFBhZ2UoKTogW251bWJlciwgbnVtYmVyXSB8IG51bGwge1xuICAgIGlmICghaXNEZWZpbmVkKHRoaXMuX3RvdGFsSXRlbXMpKSByZXR1cm4gbnVsbDtcbiAgICBpZiAoIWlzRGVmaW5lZCh0aGlzLl9pdGVtc09uQ3VycmVudFBhZ2VNZW1vKSlcbiAgICAgIFtcbiAgICAgICAgKHRoaXMuX2l0ZW1zT25DdXJyZW50UGFnZU1lbW8gPSBbXG4gICAgICAgICAgTWF0aC5taW4odGhpcy5fdG90YWxJdGVtcywgKHRoaXMuX3BhZ2UgLSAxKSAqIHRoaXMuX2l0ZW1zUGVyUGFnZSArIDEpLFxuICAgICAgICAgIE1hdGgubWluKHRoaXMuX3RvdGFsSXRlbXMsIHRoaXMuX3BhZ2UgKiB0aGlzLl9pdGVtc1BlclBhZ2UpLFxuICAgICAgICBdKSxcbiAgICAgIF07XG4gICAgcmV0dXJuIHRoaXMuX2l0ZW1zT25DdXJyZW50UGFnZU1lbW87XG4gIH1cblxuICAvLyEgYWN0aW9uIGRpc2FibGVkIHN0YXRlc1xuICBnZXQgZmlyc3RQYWdlRGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICFpc0RlZmluZWQodGhpcy5fdG90YWxJdGVtcykgfHwgdGhpcy5fcGFnZSA9PSAxO1xuICB9XG4gIGdldCBsYXN0UGFnZURpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhaXNEZWZpbmVkKHRoaXMuX3RvdGFsSXRlbXMpIHx8IHRoaXMuX3BhZ2UgPT0gdGhpcy5sYXN0UGFnZU51bTtcbiAgfVxuXG4gIC8vISBjdXJyZW50IHBhZ2VcbiAgcHJpdmF0ZSBfbGFzdFBhZ2VOdW1NZW1vOiBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgZ2V0IGxhc3RQYWdlTnVtKCk6IG51bWJlciB8IG51bGwge1xuICAgIGlmICghaXNEZWZpbmVkKHRoaXMuX3RvdGFsSXRlbXMpKSByZXR1cm4gbnVsbDtcbiAgICBpZiAoIWlzRGVmaW5lZCh0aGlzLl9sYXN0UGFnZU51bU1lbW8pKSB7XG4gICAgICB0aGlzLl9sYXN0UGFnZU51bU1lbW8gPSBNYXRoLmNlaWwodGhpcy5fdG90YWxJdGVtcyAvIHRoaXMuX2l0ZW1zUGVyUGFnZSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9sYXN0UGFnZU51bU1lbW87XG4gIH1cbiAgZ2V0IGlzTGFzdFBhZ2UoKTogYm9vbGVhbiB7XG4gICAgaWYgKCFpc0RlZmluZWQodGhpcy5fdG90YWxJdGVtcykpIHJldHVybiB0cnVlO1xuICAgIHJldHVybiB0aGlzLmxhc3RQYWdlTnVtID09PSB0aGlzLl9wYWdlO1xuICB9XG4gIHNldFBhZ2UodjogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5fcGFnZSA9IHY7XG4gICAgdGhpcy5faXRlbXNPbkN1cnJlbnRQYWdlTWVtbyA9IG51bGw7XG4gIH1cbiAgZ2V0UGFnZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9wYWdlO1xuICB9XG4gIGZpcnN0UGFnZSgpOiBudW1iZXIgfCBudWxsIHtcbiAgICBpZiAodGhpcy5maXJzdFBhZ2VEaXNhYmxlZCkgcmV0dXJuIG51bGw7XG4gICAgdGhpcy5zZXRQYWdlKDEpO1xuICAgIHJldHVybiAxO1xuICB9XG4gIHByZXZQYWdlKCk6IG51bWJlciB8IG51bGwge1xuICAgIGlmICh0aGlzLmZpcnN0UGFnZURpc2FibGVkKSByZXR1cm4gbnVsbDtcbiAgICB0aGlzLnNldFBhZ2UodGhpcy5fcGFnZSAtIDEpO1xuICAgIHJldHVybiB0aGlzLl9wYWdlO1xuICB9XG4gIG5leHRQYWdlKCk6IG51bWJlciB8IG51bGwge1xuICAgIGlmICh0aGlzLmxhc3RQYWdlRGlzYWJsZWQpIHJldHVybiBudWxsO1xuICAgIHRoaXMuc2V0UGFnZSh0aGlzLl9wYWdlICsgMSk7XG4gICAgcmV0dXJuIHRoaXMuX3BhZ2U7XG4gIH1cbiAgbGFzdFBhZ2UoKTogbnVtYmVyIHwgbnVsbCB7XG4gICAgaWYgKHRoaXMubGFzdFBhZ2VEaXNhYmxlZCkgcmV0dXJuIG51bGw7XG4gICAgdGhpcy5zZXRQYWdlKHRoaXMubGFzdFBhZ2VOdW0hKTtcbiAgICByZXR1cm4gdGhpcy5fcGFnZTtcbiAgfVxuXG4gIC8vISBjb250ZXh0XG4gIGdldEN1cnJlbnRJdGVtc0NvbnRleHQoKTogUGFnaW5hdGlvbkN1cnJlbnRJdGVtc0NvbnRleHQge1xuICAgIGlmICghaXNEZWZpbmVkKHRoaXMuX3RvdGFsSXRlbXMpKSB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCB1c2UgcGFnaW5hdGlvbiBtb2RlbCB3aXRob3V0IGRlZmluaW5nIHRvdGFsIGl0ZW1zIGZpcnN0LicpO1xuXG4gICAgY29uc3QgcGFnZUl0ZW1zID0gdGhpcy5pdGVtc09uQ3VycmVudFBhZ2UhO1xuICAgIHJldHVybiB7XG4gICAgICB0b3RhbFBhZ2VzOiB0aGlzLmxhc3RQYWdlTnVtISxcbiAgICAgIHRvdGFsSXRlbXM6IHRoaXMuX3RvdGFsSXRlbXMsXG4gICAgICBwYWdlOiB0aGlzLl9wYWdlLFxuICAgICAgY3VycmVudEl0ZW1zRmlyc3Q6IHBhZ2VJdGVtc1swXSxcbiAgICAgIGN1cnJlbnRJdGVtc0xhc3Q6IHBhZ2VJdGVtc1sxXSxcbiAgICB9O1xuICB9XG4gIGdldFBhcnRpYWxDb250ZXh0KCk6IE9taXQ8UGFnaW5hdGlvbkNvbnRleHQsICdvbkl0ZW1zUGVyUGFnZUNoYW5nZScgfCAnb25QYWdlQ2hhbmdlJz4ge1xuICAgIHJldHVybiB7XG4gICAgICAuLi50aGlzLmdldEN1cnJlbnRJdGVtc0NvbnRleHQoKSxcbiAgICAgIGl0ZW1zUGVyUGFnZU9wdGlvbnM6IHRoaXMuX2l0ZW1zUGVyUGFnZU9wdGlvbnMsXG4gICAgICBpdGVtc1BlclBhZ2U6IHRoaXMuX2l0ZW1zUGVyUGFnZSxcbiAgICAgIGZpcnN0UGFnZURpc2FibGVkOiB0aGlzLmZpcnN0UGFnZURpc2FibGVkLFxuICAgICAgcHJldlBhZ2VEaXNhYmxlZDogdGhpcy5maXJzdFBhZ2VEaXNhYmxlZCxcbiAgICAgIG5leHRQYWdlRGlzYWJsZWQ6IHRoaXMubGFzdFBhZ2VEaXNhYmxlZCxcbiAgICAgIGxhc3RQYWdlRGlzYWJsZWQ6IHRoaXMubGFzdFBhZ2VEaXNhYmxlZCxcbiAgICB9O1xuICB9XG59XG4iXX0=
|