UNPKG

com.phloxui

Version:

PhloxUI Ng2+ Framework

353 lines (352 loc) 51.2 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes} checked by tsc */ import { Injectable } from '@angular/core'; import { PhloxApp } from '../component/PhloxApp.component'; import { NotificationContainer } from '../component/NotificationContainer.component'; import { EllipsisButton } from '../component/EllipsisButton.component'; import { CheckMenuItem } from '../component/CheckMenuItem.component'; import { ToastNotification } from '../component/ToastNotification.component'; import { TabPane, Tab } from '../component/dataview/TabPane.component'; import { SimpleRippleButton } from '../component/SimpleRippleButton.component'; import { SimpleListPane } from '../component/SimpleListPane.component'; import { SignalsIndicator } from '../component/SignalsIndicator.component'; import { DefaultMenuItem } from '../component/DefaultMenuItem.component'; import { DefaultMenu } from '../component/DefaultMenu.component'; import { ContextMenuButton } from '../component/ContextMenuButton.component'; import { ContextMenu } from '../component/ContextMenu.component'; import { ConnectionStatusPane } from '../component/ConnectionStatusPane.component'; import { ConnectionStatus } from '../component/ConnectionStatus.component'; import { ComponentWrapper } from '../component/ComponentWrapper.component'; import { ComponentPopover } from '../component/ComponentPopover.component'; import { ComponentMenuItem } from '../component/ComponentMenuItem.component'; import { ComponentDataLangSelector } from '../component/dataview/ComponentDataLangSelector.component'; import { ComponentAccordion } from '../component/dataview/ComponentAccordion.component'; import { ComponentDialog } from '../component/dialog.internal/ComponentDialog.component'; import { ConfirmDialog } from '../component/dialog.internal/ConfirmDialog.component'; import { MessageDialog } from '../component/dialog.internal/MessageDialog.component'; import { StringDataView } from '../component/dataview/StringDataView.component'; import { FunctionDataView } from '../component/dataview/FunctionDataView.component'; import { ComponentFloatingHeaderPanel } from '../component/dataview/ComponentFloatingHeaderPanel.component'; import { ScrollWizardPane } from '../component/dataview/ScrollWizardPane.component'; import { ScrollPaginationWizardPane } from '../component/dataview/ScrollPaginationWizardPane.component'; import { PaginationWizardPane } from '../component/dataview/PaginationWizardPane.component'; import { ToggleSwitch } from '../component/dataview/input/ToggleSwitch.component'; import { MultipleStateCheckBox } from '../component/dataview/input/MultipleStateCheckBox.component'; import { FileSelector } from '../component/dataview/input/FileSelector.component'; import { CheckBox } from '../component/dataview/input/CheckBox.component'; import { SimpleMultiDropdownList } from '../component/dataview/input/SimpleMultiDropdownList.component'; import { SearchMultiDropdownList } from '../component/dataview/input/SearchMultiDropdownList.component'; import { ColorDropdownList } from '../component/dataview/input/ColorDropdownList.component'; import { ColorSwatch } from '../component/dataview/input/ColorSwatch.component'; import { ComponentDropdownList } from '../component/dataview/input/ComponentDropdownList.component'; import { ComponentRadioButtons } from '../component/dataview/input/ComponentRadioButtons.component'; import { DatePicker } from '../component/dataview/input/DatePicker.component'; import { LinkSimpleDropdownList } from '../component/dataview/input/LinkSimpleDropdownList.component'; import { SimpleDropdownList } from '../component/dataview/input/SimpleDropdownList.component'; import { SimpleRadioButtons } from '../component/dataview/input/SimpleRadioButtons.component'; import { TextArea } from '../component/dataview/input/TextArea.component'; import { TextBox } from '../component/dataview/input/TextBox.component'; import { ThemeColorSwatch } from '../component/dataview/input/ThemeColorSwatch.component'; import { TimePicker } from '../component/dataview/input/TimePicker.component'; import { DefaultTableRow } from '../component/table/DefaultTableRow.component'; import { DefaultTableBody } from '../component/table/DefaultTableBody.component'; import { DefaultTableHeader } from '../component/table/DefaultTableHeader.component'; import { ExpandableTableRow } from '../component/table/ExpandableTableRow.component'; import { DefaultExpandTableBody } from '../component/table/DefaultExpandTableBody.component'; import { ExpandableTableHeader } from '../component/table/ExpandableTableHeader.component'; import { CalendarEntryPopover } from '../component/editor/editor.internal/calendar.internal/CalendarEntryPopover.component'; import { CalendarView } from '../component/editor/editor.internal/CalendarView.component'; import { DefaultCalendarEntryListPopover } from '../component/editor/DefaultCalendarEntryListPopover.component'; import { DefaultCalendarEntryPopover } from '../component/editor/DefaultCalendarEntryPopover.component'; import { DefaultComponentCalendarEntry } from '../component/editor/DefaultComponentCalendarEntry.component'; import { DefaultEntryEditorPopover } from '../component/editor/DefaultEntryEditorPopover.component'; import { FormView } from '../component/editor/editor.internal/FormView.component'; import { SearchButton } from '../component/editor/editor.internal/SearchButton.component'; import { ViewButton } from '../component/editor/editor.internal/ViewButton.component'; import { MaterialIconLoader, MaterialDataIconLoader, MaterialComponentDataLangSelector, MaterialDatePicker, MaterialTextBox, MaterialBarLoader, MaterialSimpleDropdownList, MaterialTelNoTextBox, MaterialTextArea, MaterialTimePicker, MaterialCheckBox, MaterialButton, MaterialRadioButtons, MaterialToggleSwitch, MaterialAutocomplete, MaterialSlider, MaterialSimpleMultiDropdownList, MaterialComponentMultiDropdownList, MaterialSearchMultiDropdownList, MaterialComponentDropdownList } from '../theme/material/materials'; var TypeResolveService = /** @class */ (function () { function TypeResolveService() { } /** * @param {?} typeName * @return {?} */ TypeResolveService.prototype.resolveType = /** * @param {?} typeName * @return {?} */ function (typeName) { if (typeName == null) { return null; } // Phlox Core if (typeName === StringDataView.TYPE_NAME) { return StringDataView; } else if (typeName == FunctionDataView.TYPE_NAME) { return FunctionDataView; } else if (typeName === DefaultTableRow.TYPE_NAME) { return DefaultTableRow; } else if (typeName === DefaultTableBody.TYPE_NAME) { return DefaultTableBody; } else if (typeName === DefaultTableHeader.TYPE_NAME) { return DefaultTableHeader; } else if (typeName === ExpandableTableRow.TYPE_NAME) { return ExpandableTableRow; } else if (typeName === ToggleSwitch.TYPE_NAME) { return ToggleSwitch; } else if (typeName === MultipleStateCheckBox.TYPE_NAME) { return MultipleStateCheckBox; } else if (typeName === FileSelector.TYPE_NAME) { return FileSelector; } else if (typeName === EllipsisButton.TYPE_NAME) { return EllipsisButton; } else if (typeName === CheckBox.TYPE_NAME) { return CheckBox; } else if (typeName === DefaultExpandTableBody.TYPE_NAME) { return DefaultExpandTableBody; } else if (typeName === SimpleMultiDropdownList.TYPE_NAME) { return SimpleMultiDropdownList; } else if (typeName === SearchMultiDropdownList.TYPE_NAME) { return SearchMultiDropdownList; } else if (typeName === CheckMenuItem.TYPE_NAME) { return CheckMenuItem; } else if (typeName === ToastNotification.TYPE_NAME) { return ToastNotification; } else if (typeName === TabPane.TYPE_NAME) { return TabPane; } else if (typeName === Tab.TYPE_NAME) { return Tab; } else if (typeName === SimpleRippleButton.TYPE_NAME) { return SimpleRippleButton; } else if (typeName === SimpleListPane.TYPE_NAME) { return SimpleListPane; } else if (typeName === SignalsIndicator.TYPE_NAME) { return SignalsIndicator; } else if (typeName === ScrollWizardPane.TYPE_NAME) { return ScrollWizardPane; } else if (typeName === ScrollPaginationWizardPane.TYPE_NAME) { return ScrollPaginationWizardPane; } else if (typeName === PaginationWizardPane.TYPE_NAME) { return PaginationWizardPane; } else if (typeName === DefaultMenuItem.TYPE_NAME) { return DefaultMenuItem; } else if (typeName === DefaultMenu.TYPE_NAME) { return DefaultMenu; } else if (typeName === ContextMenuButton.TYPE_NAME) { return ContextMenuButton; } else if (typeName === ContextMenu.TYPE_NAME) { return ContextMenu; } else if (typeName === ConnectionStatusPane.TYPE_NAME) { return ConnectionStatusPane; } else if (typeName === ConnectionStatus.TYPE_NAME) { return ConnectionStatus; } else if (typeName === ComponentWrapper.TYPE_NAME) { return ComponentWrapper; } else if (typeName === ComponentPopover.TYPE_NAME) { return ComponentPopover; } else if (typeName === ComponentMenuItem.TYPE_NAME) { return ComponentMenuItem; } else if (typeName === ComponentDataLangSelector.TYPE_NAME) { return ComponentDataLangSelector; } else if (typeName === ComponentAccordion.TYPE_NAME) { return ComponentAccordion; } else if (typeName === ExpandableTableHeader.TYPE_NAME) { return ExpandableTableHeader; } else if (typeName === ColorDropdownList.TYPE_NAME) { return ColorDropdownList; } else if (typeName === ColorSwatch.TYPE_NAME) { return ColorSwatch; } else if (typeName === ComponentDropdownList.TYPE_NAME) { return ComponentDropdownList; } else if (typeName === ComponentRadioButtons.TYPE_NAME) { return ComponentRadioButtons; } else if (typeName === DatePicker.TYPE_NAME) { return DatePicker; } else if (typeName === LinkSimpleDropdownList.TYPE_NAME) { return LinkSimpleDropdownList; } else if (typeName === SimpleDropdownList.TYPE_NAME) { return SimpleDropdownList; } else if (typeName === SimpleRadioButtons.TYPE_NAME) { return SimpleRadioButtons; } else if (typeName === TextArea.TYPE_NAME) { return TextArea; } else if (typeName === TextBox.TYPE_NAME) { return TextBox; } else if (typeName === ThemeColorSwatch.TYPE_NAME) { return ThemeColorSwatch; } else if (typeName === TimePicker.TYPE_NAME) { return TimePicker; } else if (typeName === ComponentFloatingHeaderPanel.TYPE_NAME) { return ComponentFloatingHeaderPanel; } else if (typeName === CalendarEntryPopover.TYPE_NAME) { return CalendarEntryPopover; } else if (typeName === CalendarView.TYPE_NAME) { return CalendarView; } else if (typeName === DefaultCalendarEntryListPopover.TYPE_NAME) { return DefaultCalendarEntryListPopover; } else if (typeName === DefaultCalendarEntryPopover.TYPE_NAME) { return DefaultCalendarEntryPopover; } else if (typeName === DefaultComponentCalendarEntry.TYPE_NAME) { return DefaultComponentCalendarEntry; } else if (typeName === DefaultEntryEditorPopover.TYPE_NAME) { return DefaultEntryEditorPopover; } else if (typeName === FormView.TYPE_NAME) { return FormView; } else if (typeName === SearchButton.TYPE_NAME) { return SearchButton; } else if (typeName === ViewButton.TYPE_NAME) { return ViewButton; } else if (typeName === NotificationContainer.TYPE_NAME) { return NotificationContainer; } else if (typeName === PhloxApp.TYPE_NAME) { return PhloxApp; } else if (typeName === ComponentDialog.TYPE_NAME) { return ComponentDialog; } else if (typeName === ConfirmDialog.TYPE_NAME) { return ConfirmDialog; } else if (typeName === MessageDialog.TYPE_NAME) { return MessageDialog; } // Material Theme if (typeName === MaterialIconLoader.TYPE_NAME) { return MaterialIconLoader; } else if (typeName === MaterialDataIconLoader.TYPE_NAME) { return MaterialDataIconLoader; } else if (typeName === MaterialComponentDataLangSelector.TYPE_NAME) { return MaterialComponentDataLangSelector; } else if (typeName === MaterialDatePicker.TYPE_NAME) { return MaterialDatePicker; } else if (typeName === MaterialTextBox.TYPE_NAME) { return MaterialTextBox; } else if (typeName === MaterialBarLoader.TYPE_NAME) { return MaterialBarLoader; } else if (typeName === MaterialSimpleDropdownList.TYPE_NAME) { return MaterialSimpleDropdownList; } else if (typeName === MaterialTelNoTextBox.TYPE_NAME) { return MaterialTelNoTextBox; } else if (typeName === MaterialTextArea.TYPE_NAME) { return MaterialTextArea; } else if (typeName === MaterialTimePicker.TYPE_NAME) { return MaterialTimePicker; } else if (typeName === MaterialCheckBox.TYPE_NAME) { return MaterialCheckBox; } else if (typeName === MaterialButton.TYPE_NAME) { return MaterialButton; } else if (typeName === MaterialRadioButtons.TYPE_NAME) { return MaterialRadioButtons; } else if (typeName === MaterialToggleSwitch.TYPE_NAME) { return MaterialToggleSwitch; } else if (typeName === MaterialAutocomplete.TYPE_NAME) { return MaterialAutocomplete; } else if (typeName === MaterialSlider.TYPE_NAME) { return MaterialSlider; } else if (typeName === MaterialSimpleMultiDropdownList.TYPE_NAME) { return MaterialSimpleMultiDropdownList; } else if (typeName === MaterialComponentMultiDropdownList.TYPE_NAME) { return MaterialComponentMultiDropdownList; } else if (typeName === MaterialSearchMultiDropdownList.TYPE_NAME) { return MaterialSearchMultiDropdownList; } else if (typeName === MaterialComponentDropdownList.TYPE_NAME) { return MaterialComponentDropdownList; } return null; }; TypeResolveService.decorators = [ { type: Injectable }, ]; return TypeResolveService; }()); export { TypeResolveService }; function TypeResolveService_tsickle_Closure_declarations() { /** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */ TypeResolveService.decorators; /** * @nocollapse * @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>} */ TypeResolveService.ctorParameters; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHlwZVJlc29sdmVTZXJ2aWNlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9jb20ucGhsb3h1aS8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlL1R5cGVSZXNvbHZlU2VydmljZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFRLE1BQU0sZUFBZSxDQUFDO0FBRWpELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMzRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNyRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDL0UsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBRTNFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDakUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDN0UsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDJEQUEyRCxDQUFDO0FBQ3RHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBRXhGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUN6RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDckYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBRXJGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNoRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUNwRixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUM1RyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUNwRixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUN4RyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUU1RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDbEYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNkRBQTZELENBQUM7QUFDcEcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUMxRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwrREFBK0QsQ0FBQztBQUN4RyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwrREFBK0QsQ0FBQztBQUN4RyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUM1RixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDaEYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNkRBQTZELENBQUM7QUFDcEcsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNkRBQTZELENBQUM7QUFDcEcsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQzlFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBQ3RHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQzlGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQzlGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUMxRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDeEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFDMUYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBRTlFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUNqRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUNyRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUNyRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUM3RixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUUzRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzRkFBc0YsQ0FBQztBQUM1SCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDMUYsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sK0RBQStELENBQUM7QUFDaEgsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFDeEcsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sNkRBQTZELENBQUM7QUFDNUcsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0seURBQXlELENBQUM7QUFDcEcsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUMxRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMERBQTBELENBQUM7QUFFdEYsT0FBTyxFQUNMLGtCQUFrQixFQUFFLHNCQUFzQixFQUFFLGlDQUFpQyxFQUM3RSxrQkFBa0IsRUFBRSxlQUFlLEVBQUUsaUJBQWlCLEVBQUUsMEJBQTBCLEVBQ2xGLG9CQUFvQixFQUFFLGdCQUFnQixFQUFFLGtCQUFrQixFQUFFLGdCQUFnQixFQUFHLGNBQWMsRUFDN0Ysb0JBQW9CLEVBQUUsb0JBQW9CLEVBQUUsb0JBQW9CLEVBQUUsY0FBYyxFQUFFLCtCQUErQixFQUFFLGtDQUFrQyxFQUNySiwrQkFBK0IsRUFBRSw2QkFBNkIsRUFDL0QsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7Ozs7SUFLNUIsd0NBQVc7Ozs7Y0FBQyxRQUFnQjtRQUNqQyxFQUFFLENBQUMsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQztZQUNyQixNQUFNLENBQUMsSUFBSSxDQUFDO1NBQ2I7O1FBR0QsRUFBRSxDQUFDLENBQUMsUUFBUSxLQUFLLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1lBQzFDLE1BQU0sQ0FBQyxjQUFjLENBQUM7U0FDdkI7UUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxJQUFJLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDbEQsTUFBTSxDQUFDLGdCQUFnQixDQUFDO1NBQ3pCO1FBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsS0FBSyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztZQUNsRCxNQUFNLENBQUMsZUFBZSxDQUFDO1NBQ3hCO1FBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsS0FBSyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1lBQ25ELE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQztTQUN6QjtRQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLEtBQUssa0JBQWtCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztZQUNyRCxNQUFNLENBQUMsa0JBQWtCLENBQUM7U0FDM0I7UUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxLQUFLLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDckQsTUFBTSxDQUFDLGtCQUFrQixDQUFDO1NBQzNCO1FBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsS0FBSyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztZQUMvQyxNQUFNLENBQUMsWUFBWSxDQUFDO1NBQ3JCO1FBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsS0FBSyxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1lBQ3hELE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQztTQUM5QjtRQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLEtBQUssWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDL0MsTUFBTSxDQUFDLFlBQVksQ0FBQztTQUNyQjtRQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLEtBQUssY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDakQsTUFBTSxDQUFDLGNBQWMsQ0FBQztTQUN2QjtRQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLEtBQUssUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDM0MsTUFBTSxDQUFDLFFBQVEsQ0FBQztTQUNqQjtRQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLEtBQUssc0JBQXNCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztZQUN6RCxNQUFNLENBQUMsc0JBQXNCLENBQUM7U0FDL0I7UUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxLQUFLLHVCQUF1QixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDMUQsTUFBTSxDQUFDLHVCQUF1QixDQUFDO1NBQ2hDO1FBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsS0FBSyx1QkFBdUIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1lBQzFELE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQztTQUNoQztRQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLEtBQUssYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDaEQsTUFBTSxDQUFDLGFBQWEsQ0FBQztTQUN0QjtRQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLEtBQUssaUJBQWlCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztZQUNwRCxNQUFNLENBQUMsaUJBQWlCLENBQUM7U0FDMUI7UUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxLQUFLLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1lBQzFDLE1BQU0sQ0FBQyxPQUFPLENBQUM7U0FDaEI7UUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxLQUFLLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1lBQ3RDLE1BQU0sQ0FBQyxHQUFHLENBQUM7U0FDWjtRQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLEtBQUssa0JBQWtCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztZQUNyRCxNQUFNLENBQUMsa0JBQWtCLENBQUM7U0FDM0I7UUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxLQUFLLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1lBQ2pELE1BQU0sQ0FBQyxjQUFjLENBQUM7U0FDdkI7UUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxLQUFLLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDbkQsTUFBTSxDQUFDLGdCQUFnQixDQUFDO1NBQ3pCO1FBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsS0FBSyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1lBQ25ELE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQztTQUN6QjtRQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLEtBQUssMEJBQTBCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztZQUM3RCxNQUFNLENBQUMsMEJBQTBCLENBQUM7U0FDbkM7UUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxLQUFLLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDdkQsTUFBTSxDQUFDLG9CQUFvQixDQUFDO1NBQzdCO1FBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsS0FBSyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztZQUNsRCxNQUFNLENBQUMsZUFBZSxDQUFDO1NBQ3hCO1FBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsS0FBSyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztZQUM5QyxNQUFNLENBQUMsV0FBVyxDQUFDO1NBQ3BCO1FBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsS0FBSyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1lBQ3BELE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQztTQUMxQjtRQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLEtBQUssV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDOUMsTUFBTSxDQUFDLFdBQVcsQ0FBQztTQUNwQjtRQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLEtBQUssb0JBQW9CLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztZQUN2RCxNQUFNLENBQUMsb0JBQW9CLENBQUM7U0FDN0I7UUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxLQUFLLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDbkQsTUFBTSxDQUFDLGdCQUFnQixDQUFDO1NBQ3pCO1FBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsS0FBSyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1lBQ25ELE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQztTQUN6QjtRQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLEtBQUssZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztZQUNuRCxNQUFNLENBQUMsZ0JBQWdCLENBQUM7U0FDekI7UUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxLQUFLLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDcEQsTUFBTSxDQUFDLGlCQUFpQixDQUFDO1NBQzFCO1FBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsS0FBSyx5QkFBeUIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1lBQzVELE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQztTQUNsQztRQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLEtBQUssa0JBQWtCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztZQUNyRCxNQUFNLENBQUMsa0JBQWtCLENBQUM7U0FDM0I7UUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxLQUFLLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDeEQsTUFBTSxDQUFDLHFCQUFxQixDQUFDO1NBQzlCO1FBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsS0FBSyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1lBQ3BELE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQztTQUMxQjtRQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLEtBQUssV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDOUMsTUFBTSxDQUFDLFdBQVcsQ0FBQztTQUNwQjtRQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLEtBQUsscUJBQXFCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztZQUN4RCxNQUFNLENBQUMscUJBQXFCLENBQUM7U0FDOUI7UUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxLQUFLLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDeEQsTUFBTSxDQUFDLHFCQUFxQixDQUFDO1NBQzlCO1FBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsS0FBSyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztZQUM3QyxNQUFNLENBQUMsVUFBVSxDQUFDO1NBQ25CO1FBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsS0FBSyxzQkFBc0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1lBQ3pELE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQztTQUMvQjtRQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLEtBQUssa0JBQWtCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztZQUNyRCxNQUFNLENBQUMsa0JBQWtCLENBQUM7U0FDM0I7UUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxLQUFLLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDckQsTUFBTSxDQUFDLGtCQUFrQixDQUFDO1NBQzNCO1FBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsS0FBSyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztZQUMzQyxNQUFNLENBQUMsUUFBUSxDQUFDO1NBQ2pCO1FBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsS0FBSyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztZQUMxQyxNQUFNLENBQUMsT0FBTyxDQUFDO1NBQ2hCO1FBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsS0FBSyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1lBQ25ELE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQztTQUN6QjtRQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLEtBQUssVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDN0MsTUFBTSxDQUFDLFVBQVUsQ0FBQztTQUNuQjtRQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLEtBQUssNEJBQTRCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztZQUMvRCxNQUFNLENBQUMsNEJBQTRCLENBQUM7U0FDckM7UUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxLQUFLLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDdkQsTUFBTSxDQUFDLG9CQUFvQixDQUFDO1NBQzdCO1FBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsS0FBSyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztZQUMvQyxNQUFNLENBQUMsWUFBWSxDQUFDO1NBQ3JCO1FBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsS0FBSywrQkFBK0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1lBQ2xFLE1BQU0sQ0FBQywrQkFBK0IsQ0FBQztTQUN4QztRQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLEtBQUssMkJBQTJCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztZQUM5RCxNQUFNLENBQUMsMkJBQTJCLENBQUM7U0FDcEM7UUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxLQUFLLDZCQUE2QixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDaEUsTUFBTSxDQUFDLDZCQUE2QixDQUFDO1NBQ3RDO1FBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsS0FBSyx5QkFBeUIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1lBQzVELE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQztTQUNsQztRQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLEtBQUssUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDM0MsTUFBTSxDQUFDLFFBQVEsQ0FBQztTQUNqQjtRQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLEtBQUssWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDL0MsTUFBTSxDQUFDLFlBQVksQ0FBQztTQUNyQjtRQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLEtBQUssVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDN0MsTUFBTSxDQUFDLFVBQVUsQ0FBQztTQUNuQjtRQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLEtBQUsscUJBQXFCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztZQUN4RCxNQUFNLENBQUMscUJBQXFCLENBQUM7U0FDOUI7UUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxLQUFLLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1lBQzNDLE1BQU0sQ0FBQyxRQUFRLENBQUM7U0FDakI7UUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxLQUFLLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1lBQ2xELE1BQU0sQ0FBQyxlQUFlLENBQUM7U0FDeEI7UUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxLQUFLLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1lBQ2hELE1BQU0sQ0FBQyxhQUFhLENBQUM7U0FDdEI7UUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxLQUFLLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1lBQ2hELE1BQU0sQ0FBQyxhQUFhLENBQUM7U0FDdEI7O1FBR0QsRUFBRSxDQUFDLENBQUMsUUFBUSxLQUFLLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDOUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDO1NBQzNCO1FBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsS0FBSyxzQkFBc0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1lBQ3pELE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQztTQUMvQjtRQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLEtBQUssaUNBQWlDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztZQUNwRSxNQUFNLENBQUMsaUNBQWlDLENBQUM7U0FDMUM7UUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxLQUFLLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDckQsTUFBTSxDQUFDLGtCQUFrQixDQUFDO1NBQzNCO1FBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsS0FBSyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztZQUNsRCxNQUFNLENBQUMsZUFBZSxDQUFDO1NBQ3hCO1FBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsS0FBSyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1lBQ3BELE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQztTQUMxQjtRQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLEtBQUssMEJBQTBCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztZQUM3RCxNQUFNLENBQUMsMEJBQTBCLENBQUM7U0FDbkM7UUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxLQUFLLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDdkQsTUFBTSxDQUFDLG9CQUFvQixDQUFDO1NBQzdCO1FBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsS0FBSyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1lBQ25ELE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQztTQUN6QjtRQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLEtBQUssa0JBQWtCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztZQUNyRCxNQUFNLENBQUMsa0JBQWtCLENBQUM7U0FDM0I7UUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxLQUFLLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDbkQsTUFBTSxDQUFDLGdCQUFnQixDQUFDO1NBQ3pCO1FBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsS0FBSyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztZQUNqRCxNQUFNLENBQUMsY0FBYyxDQUFDO1NBQ3ZCO1FBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsS0FBSyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1lBQ3ZELE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQztTQUM3QjtRQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLEtBQUssb0JBQW9CLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztZQUN2RCxNQUFNLENBQUMsb0JBQW9CLENBQUM7U0FDN0I7UUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxLQUFLLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDdkQsTUFBTSxDQUFDLG9CQUFvQixDQUFDO1NBQzdCO1FBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsS0FBSyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztZQUNqRCxNQUFNLENBQUMsY0FBYyxDQUFDO1NBQ3ZCO1FBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsS0FBSywrQkFBK0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1lBQ2xFLE1BQU0sQ0FBQywrQkFBK0IsQ0FBQztTQUN4QztRQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLEtBQUssa0NBQWtDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztZQUNyRSxNQUFNLENBQUMsa0NBQWtDLENBQUM7U0FDM0M7UUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxLQUFLLCtCQUErQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDbEUsTUFBTSxDQUFDLCtCQUErQixDQUFDO1NBQ3hDO1FBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsS0FBSyw2QkFBNkIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1lBQ2hFLE1BQU0sQ0FBQyw2QkFBNkIsQ0FBQztTQUN0QztRQUVELE1BQU0sQ0FBQyxJQUFJLENBQUM7OztnQkFwTGYsVUFBVTs7NkJBL0VYOztTQWdGYSxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFBobG94QXBwIH0gZnJvbSAnLi4vY29tcG9uZW50L1BobG94QXBwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOb3RpZmljYXRpb25Db250YWluZXIgfSBmcm9tICcuLi9jb21wb25lbnQvTm90aWZpY2F0aW9uQ29udGFpbmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFbGxpcHNpc0J1dHRvbiB9IGZyb20gJy4uL2NvbXBvbmVudC9FbGxpcHNpc0J1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2hlY2tNZW51SXRlbSB9IGZyb20gJy4uL2NvbXBvbmVudC9DaGVja01lbnVJdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUb2FzdE5vdGlmaWNhdGlvbiB9IGZyb20gJy4uL2NvbXBvbmVudC9Ub2FzdE5vdGlmaWNhdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGFiUGFuZSwgVGFiIH0gZnJvbSAnLi4vY29tcG9uZW50L2RhdGF2aWV3L1RhYlBhbmUuY29tcG9uZW50JztcbmltcG9ydCB7IFNpbXBsZVJpcHBsZUJ1dHRvbiB9IGZyb20gJy4uL2NvbXBvbmVudC9TaW1wbGVSaXBwbGVCdXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IFNpbXBsZUxpc3RQYW5lIH0gZnJvbSAnLi4vY29tcG9uZW50L1NpbXBsZUxpc3RQYW5lLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTaWduYWxzSW5kaWNhdG9yIH0gZnJvbSAnLi4vY29tcG9uZW50L1NpZ25hbHNJbmRpY2F0b3IuY29tcG9uZW50JztcblxuaW1wb3J0IHsgRGVmYXVsdE1lbnVJdGVtIH0gZnJvbSAnLi4vY29tcG9uZW50L0RlZmF1bHRNZW51SXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGVmYXVsdE1lbnUgfSBmcm9tICcuLi9jb21wb25lbnQvRGVmYXVsdE1lbnUuY29tcG9uZW50JztcbmltcG9ydCB7IENvbnRleHRNZW51QnV0dG9uIH0gZnJvbSAnLi4vY29tcG9uZW50L0NvbnRleHRNZW51QnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb250ZXh0TWVudSB9IGZyb20gJy4uL2NvbXBvbmVudC9Db250ZXh0TWVudS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29ubmVjdGlvblN0YXR1c1BhbmUgfSBmcm9tICcuLi9jb21wb25lbnQvQ29ubmVjdGlvblN0YXR1c1BhbmUuY29tcG9uZW50JztcbmltcG9ydCB7IENvbm5lY3Rpb25TdGF0dXMgfSBmcm9tICcuLi9jb21wb25lbnQvQ29ubmVjdGlvblN0YXR1cy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29tcG9uZW50V3JhcHBlciB9IGZyb20gJy4uL2NvbXBvbmVudC9Db21wb25lbnRXcmFwcGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb21wb25lbnRQb3BvdmVyIH0gZnJvbSAnLi4vY29tcG9uZW50L0NvbXBvbmVudFBvcG92ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IENvbXBvbmVudE1lbnVJdGVtIH0gZnJvbSAnLi4vY29tcG9uZW50L0NvbXBvbmVudE1lbnVJdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb21wb25lbnREYXRhTGFuZ1NlbGVjdG9yIH0gZnJvbSAnLi4vY29tcG9uZW50L2RhdGF2aWV3L0NvbXBvbmVudERhdGFMYW5nU2VsZWN0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IENvbXBvbmVudEFjY29yZGlvbiB9IGZyb20gJy4uL2NvbXBvbmVudC9kYXRhdmlldy9Db21wb25lbnRBY2NvcmRpb24uY29tcG9uZW50JztcblxuaW1wb3J0IHsgQ29tcG9uZW50RGlhbG9nIH0gZnJvbSAnLi4vY29tcG9uZW50L2RpYWxvZy5pbnRlcm5hbC9Db21wb25lbnREaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IENvbmZpcm1EaWFsb2cgfSBmcm9tICcuLi9jb21wb25lbnQvZGlhbG9nLmludGVybmFsL0NvbmZpcm1EaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IE1lc3NhZ2VEaWFsb2cgfSBmcm9tICcuLi9jb21wb25lbnQvZGlhbG9nLmludGVybmFsL01lc3NhZ2VEaWFsb2cuY29tcG9uZW50JztcblxuaW1wb3J0IHsgU3RyaW5nRGF0YVZpZXcgfSBmcm9tICcuLi9jb21wb25lbnQvZGF0YXZpZXcvU3RyaW5nRGF0YVZpZXcuY29tcG9uZW50JztcbmltcG9ydCB7IEZ1bmN0aW9uRGF0YVZpZXcgfSBmcm9tICcuLi9jb21wb25lbnQvZGF0YXZpZXcvRnVuY3Rpb25EYXRhVmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29tcG9uZW50RmxvYXRpbmdIZWFkZXJQYW5lbCB9IGZyb20gJy4uL2NvbXBvbmVudC9kYXRhdmlldy9Db21wb25lbnRGbG9hdGluZ0hlYWRlclBhbmVsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTY3JvbGxXaXphcmRQYW5lIH0gZnJvbSAnLi4vY29tcG9uZW50L2RhdGF2aWV3L1Njcm9sbFdpemFyZFBhbmUuY29tcG9uZW50JztcbmltcG9ydCB7IFNjcm9sbFBhZ2luYXRpb25XaXphcmRQYW5lIH0gZnJvbSAnLi4vY29tcG9uZW50L2RhdGF2aWV3L1Njcm9sbFBhZ2luYXRpb25XaXphcmRQYW5lLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQYWdpbmF0aW9uV2l6YXJkUGFuZSB9IGZyb20gJy4uL2NvbXBvbmVudC9kYXRhdmlldy9QYWdpbmF0aW9uV2l6YXJkUGFuZS5jb21wb25lbnQnO1xuXG5pbXBvcnQgeyBUb2dnbGVTd2l0Y2ggfSBmcm9tICcuLi9jb21wb25lbnQvZGF0YXZpZXcvaW5wdXQvVG9nZ2xlU3dpdGNoLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNdWx0aXBsZVN0YXRlQ2hlY2tCb3ggfSBmcm9tICcuLi9jb21wb25lbnQvZGF0YXZpZXcvaW5wdXQvTXVsdGlwbGVTdGF0ZUNoZWNrQm94LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGaWxlU2VsZWN0b3IgfSBmcm9tICcuLi9jb21wb25lbnQvZGF0YXZpZXcvaW5wdXQvRmlsZVNlbGVjdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDaGVja0JveCB9IGZyb20gJy4uL2NvbXBvbmVudC9kYXRhdmlldy9pbnB1dC9DaGVja0JveC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2ltcGxlTXVsdGlEcm9wZG93bkxpc3QgfSBmcm9tICcuLi9jb21wb25lbnQvZGF0YXZpZXcvaW5wdXQvU2ltcGxlTXVsdGlEcm9wZG93bkxpc3QuY29tcG9uZW50JztcbmltcG9ydCB7IFNlYXJjaE11bHRpRHJvcGRvd25MaXN0IH0gZnJvbSAnLi4vY29tcG9uZW50L2RhdGF2aWV3L2lucHV0L1NlYXJjaE11bHRpRHJvcGRvd25MaXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb2xvckRyb3Bkb3duTGlzdCB9IGZyb20gJy4uL2NvbXBvbmVudC9kYXRhdmlldy9pbnB1dC9Db2xvckRyb3Bkb3duTGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29sb3JTd2F0Y2ggfSBmcm9tICcuLi9jb21wb25lbnQvZGF0YXZpZXcvaW5wdXQvQ29sb3JTd2F0Y2guY29tcG9uZW50JztcbmltcG9ydCB7IENvbXBvbmVudERyb3Bkb3duTGlzdCB9IGZyb20gJy4uL2NvbXBvbmVudC9kYXRhdmlldy9pbnB1dC9Db21wb25lbnREcm9wZG93bkxpc3QuY29tcG9uZW50JztcbmltcG9ydCB7IENvbXBvbmVudFJhZGlvQnV0dG9ucyB9IGZyb20gJy4uL2NvbXBvbmVudC9kYXRhdmlldy9pbnB1dC9Db21wb25lbnRSYWRpb0J1dHRvbnMuY29tcG9uZW50JztcbmltcG9ydCB7IERhdGVQaWNrZXIgfSBmcm9tICcuLi9jb21wb25lbnQvZGF0YXZpZXcvaW5wdXQvRGF0ZVBpY2tlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGlua1NpbXBsZURyb3Bkb3duTGlzdCB9IGZyb20gJy4uL2NvbXBvbmVudC9kYXRhdmlldy9pbnB1dC9MaW5rU2ltcGxlRHJvcGRvd25MaXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTaW1wbGVEcm9wZG93bkxpc3QgfSBmcm9tICcuLi9jb21wb25lbnQvZGF0YXZpZXcvaW5wdXQvU2ltcGxlRHJvcGRvd25MaXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTaW1wbGVSYWRpb0J1dHRvbnMgfSBmcm9tICcuLi9jb21wb25lbnQvZGF0YXZpZXcvaW5wdXQvU2ltcGxlUmFkaW9CdXR0b25zLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUZXh0QXJlYSB9IGZyb20gJy4uL2NvbXBvbmVudC9kYXRhdmlldy9pbnB1dC9UZXh0QXJlYS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGV4dEJveCB9IGZyb20gJy4uL2NvbXBvbmVudC9kYXRhdmlldy9pbnB1dC9UZXh0Qm94LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaGVtZUNvbG9yU3dhdGNoIH0gZnJvbSAnLi4vY29tcG9uZW50L2RhdGF2aWV3L2lucHV0L1RoZW1lQ29sb3JTd2F0Y2guY29tcG9uZW50JztcbmltcG9ydCB7IFRpbWVQaWNrZXIgfSBmcm9tICcuLi9jb21wb25lbnQvZGF0YXZpZXcvaW5wdXQvVGltZVBpY2tlci5jb21wb25lbnQnO1xuXG5pbXBvcnQgeyBEZWZhdWx0VGFibGVSb3cgfSBmcm9tICcuLi9jb21wb25lbnQvdGFibGUvRGVmYXVsdFRhYmxlUm93LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEZWZhdWx0VGFibGVCb2R5IH0gZnJvbSAnLi4vY29tcG9uZW50L3RhYmxlL0RlZmF1bHRUYWJsZUJvZHkuY29tcG9uZW50JztcbmltcG9ydCB7IERlZmF1bHRUYWJsZUhlYWRlciB9IGZyb20gJy4uL2NvbXBvbmVudC90YWJsZS9EZWZhdWx0VGFibGVIZWFkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEV4cGFuZGFibGVUYWJsZVJvdyB9IGZyb20gJy4uL2NvbXBvbmVudC90YWJsZS9FeHBhbmRhYmxlVGFibGVSb3cuY29tcG9uZW50JztcbmltcG9ydCB7IERlZmF1bHRFeHBhbmRUYWJsZUJvZHkgfSBmcm9tICcuLi9jb21wb25lbnQvdGFibGUvRGVmYXVsdEV4cGFuZFRhYmxlQm9keS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRXhwYW5kYWJsZVRhYmxlSGVhZGVyIH0gZnJvbSAnLi4vY29tcG9uZW50L3RhYmxlL0V4cGFuZGFibGVUYWJsZUhlYWRlci5jb21wb25lbnQnO1xuXG5pbXBvcnQgeyBDYWxlbmRhckVudHJ5UG9wb3ZlciB9IGZyb20gJy4uL2NvbXBvbmVudC9lZGl0b3IvZWRpdG9yLmludGVybmFsL2NhbGVuZGFyLmludGVybmFsL0NhbGVuZGFyRW50cnlQb3BvdmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYWxlbmRhclZpZXcgfSBmcm9tICcuLi9jb21wb25lbnQvZWRpdG9yL2VkaXRvci5pbnRlcm5hbC9DYWxlbmRhclZpZXcuY29tcG9uZW50JztcbmltcG9ydCB7IERlZmF1bHRDYWxlbmRhckVudHJ5TGlzdFBvcG92ZXIgfSBmcm9tICcuLi9jb21wb25lbnQvZWRpdG9yL0RlZmF1bHRDYWxlbmRhckVudHJ5TGlzdFBvcG92ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IERlZmF1bHRDYWxlbmRhckVudHJ5UG9wb3ZlciB9IGZyb20gJy4uL2NvbXBvbmVudC9lZGl0b3IvRGVmYXVsdENhbGVuZGFyRW50cnlQb3BvdmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEZWZhdWx0Q29tcG9uZW50Q2FsZW5kYXJFbnRyeSB9IGZyb20gJy4uL2NvbXBvbmVudC9lZGl0b3IvRGVmYXVsdENvbXBvbmVudENhbGVuZGFyRW50cnkuY29tcG9uZW50JztcbmltcG9ydCB7IERlZmF1bHRFbnRyeUVkaXRvclBvcG92ZXIgfSBmcm9tICcuLi9jb21wb25lbnQvZWRpdG9yL0RlZmF1bHRFbnRyeUVkaXRvclBvcG92ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEZvcm1WaWV3IH0gZnJvbSAnLi4vY29tcG9uZW50L2VkaXRvci9lZGl0b3IuaW50ZXJuYWwvRm9ybVZpZXcuY29tcG9uZW50JztcbmltcG9ydCB7IFNlYXJjaEJ1dHRvbiB9IGZyb20gJy4uL2NvbXBvbmVudC9lZGl0b3IvZWRpdG9yLmludGVybmFsL1NlYXJjaEJ1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgVmlld0J1dHRvbiB9IGZyb20gJy4uL2NvbXBvbmVudC9lZGl0b3IvZWRpdG9yLmludGVybmFsL1ZpZXdCdXR0b24uY29tcG9uZW50JztcblxuaW1wb3J0IHtcbiAgTWF0ZXJpYWxJY29uTG9hZGVyLCBNYXRlcmlhbERhdGFJY29uTG9hZGVyLCBNYXRlcmlhbENvbXBvbmVudERhdGFMYW5nU2VsZWN0b3IsXG4gIE1hdGVyaWFsRGF0ZVBpY2tlciwgTWF0ZXJpYWxUZXh0Qm94LCBNYXRlcmlhbEJhckxvYWRlciwgTWF0ZXJpYWxTaW1wbGVEcm9wZG93bkxpc3QsXG4gIE1hdGVyaWFsVGVsTm9UZXh0Qm94LCBNYXRlcmlhbFRleHRBcmVhLCBNYXRlcmlhbFRpbWVQaWNrZXIsIE1hdGVyaWFsQ2hlY2tCb3ggLCBNYXRlcmlhbEJ1dHRvbixcbiAgTWF0ZXJpYWxSYWRpb0J1dHRvbnMsIE1hdGVyaWFsVG9nZ2xlU3dpdGNoLCBNYXRlcmlhbEF1dG9jb21wbGV0ZSwgTWF0ZXJpYWxTbGlkZXIsIE1hdGVyaWFsU2ltcGxlTXVsdGlEcm9wZG93bkxpc3QsIE1hdGVyaWFsQ29tcG9uZW50TXVsdGlEcm9wZG93bkxpc3QsXG4gIE1hdGVyaWFsU2VhcmNoTXVsdGlEcm9wZG93bkxpc3QsIE1hdGVyaWFsQ29tcG9uZW50RHJvcGRvd25MaXN0XG59IGZyb20gJy4uL3RoZW1lL21hdGVyaWFsL21hdGVyaWFscyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBUeXBlUmVzb2x2ZVNlcnZpY2UgeyBcblxuICBwdWJsaWMgcmVzb2x2ZVR5cGUodHlwZU5hbWU6IHN0cmluZyk6IFR5cGU8YW55PiB7XG4gICAgaWYgKHR5cGVOYW1lID09IG51bGwpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIC8vIFBobG94IENvcmVcbiAgICBpZiAodHlwZU5hbWUgPT09IFN0cmluZ0RhdGFWaWV3LlRZUEVfTkFNRSkge1xuICAgICAgcmV0dXJuIFN0cmluZ0RhdGFWaWV3O1xuICAgIH0gZWxzZSBpZiAodHlwZU5hbWUgPT0gRnVuY3Rpb25EYXRhVmlldy5UWVBFX05BTUUpIHtcbiAgICAgIHJldHVybiBGdW5jdGlvbkRhdGFWaWV3O1xuICAgIH0gZWxzZSBpZiAodHlwZU5hbWUgPT09IERlZmF1bHRUYWJsZVJvdy5UWVBFX05BTUUpIHtcbiAgICAgIHJldHVybiBEZWZhdWx0VGFibGVSb3c7XG4gICAgfSBlbHNlIGlmICh0eXBlTmFtZSA9PT0gRGVmYXVsdFRhYmxlQm9keS5UWVBFX05BTUUpIHtcbiAgICAgIHJldHVybiBEZWZhdWx0VGFibGVCb2R5O1xuICAgIH0gZWxzZSBpZiAodHlwZU5hbWUgPT09IERlZmF1bHRUYWJsZUhlYWRlci5UWVBFX05BTUUpIHtcbiAgICAgIHJldHVybiBEZWZhdWx0VGFibGVIZWFkZXI7XG4gICAgfSBlbHNlIGlmICh0eXBlTmFtZSA9PT0gRXhwYW5kYWJsZVRhYmxlUm93LlRZUEVfTkFNRSkge1xuICAgICAgcmV0dXJuIEV4cGFuZGFibGVUYWJsZVJvdztcbiAgICB9IGVsc2UgaWYgKHR5cGVOYW1lID09PSBUb2dnbGVTd2l0Y2guVFlQRV9OQU1FKSB7XG4gICAgICByZXR1cm4gVG9nZ2xlU3dpdGNoO1xuICAgIH0gZWxzZSBpZiAodHlwZU5hbWUgPT09IE11bHRpcGxlU3RhdGVDaGVja0JveC5UWVBFX05BTUUpIHtcbiAgICAgIHJldHVybiBNdWx0aXBsZVN0YXRlQ2hlY2tCb3g7XG4gICAgfSBlbHNlIGlmICh0eXBlTmFtZSA9PT0gRmlsZVNlbGVjdG9yLlRZUEVfTkFNRSkge1xuICAgICAgcmV0dXJuIEZpbGVTZWxlY3RvcjtcbiAgICB9IGVsc2UgaWYgKHR5cGVOYW1lID09PSBFbGxpcHNpc0J1dHRvbi5UWVBFX05BTUUpIHtcbiAgICAgIHJldHVybiBFbGxpcHNpc0J1dHRvbjtcbiAgICB9IGVsc2UgaWYgKHR5cGVOYW1lID09PSBDaGVja0JveC5UWVBFX05BTUUpIHtcbiAgICAgIHJldHVybiBDaGVja0JveDtcbiAgICB9IGVsc2UgaWYgKHR5cGVOYW1lID09PSBEZWZhdWx0RXhwYW5kVGFibGVCb2R5LlRZUEVfTkFNRSkge1xuICAgICAgcmV0dXJuIERlZmF1bHRFeHBhbmRUYWJsZUJvZHk7XG4gICAgfSBlbHNlIGlmICh0eXBlTmFtZSA9PT0gU2ltcGxlTXVsdGlEcm9wZG93bkxpc3QuVFlQRV9OQU1FKSB7XG4gICAgICByZXR1cm4gU2ltcGxlTXVsdGlEcm9wZG93bkxpc3Q7XG4gICAgfSBlbHNlIGlmICh0eXBlTmFtZSA9PT0gU2VhcmNoTXVsdGlEcm9wZG93bkxpc3QuVFlQRV9OQU1FKSB7XG4gICAgICByZXR1cm4gU2VhcmNoTXVsdGlEcm9wZG93bkxpc3Q7XG4gICAgfSBlbHNlIGlmICh0eXBlTmFtZSA9PT0gQ2hlY2tNZW51SXRlbS5UWVBFX05BTUUpIHtcbiAgICAgIHJldHVybiBDaGVja01lbnVJdGVtO1xuICAgIH0gZWxzZSBpZiAodHlwZU5hbWUgPT09IFRvYXN0Tm90aWZpY2F0aW9uLlRZUEVfTkFNRSkge1xuICAgICAgcmV0dXJuIFRvYXN0Tm90aWZpY2F0aW9uO1xuICAgIH0gZWxzZSBpZiAodHlwZU5hbWUgPT09IFRhYlBhbmUuVFlQRV9OQU1FKSB7XG4gICAgICByZXR1cm4gVGFiUGFuZTtcbiAgICB9IGVsc2UgaWYgKHR5cGVOYW1lID09PSBUYWIuVFlQRV9OQU1FKSB7XG4gICAgICByZXR1cm4gVGFiO1xuICAgIH0gZWxzZSBpZiAodHlwZU5hbWUgPT09IFNpbXBsZVJpcHBsZUJ1dHRvbi5UWVBFX05BTUUpIHtcbiAgICAgIHJldHVybiBTaW1wbGVSaXBwbGVCdXR0b247XG4gICAgfSBlbHNlIGlmICh0eXBlTmFtZSA9PT0gU2ltcGxlTGlzdFBhbmUuVFlQRV9OQU1FKSB7XG4gICAgICByZXR1cm4gU2ltcGxlTGlzdFBhbmU7XG4gICAgfSBlbHNlIGlmICh0eXBlTmFtZSA9PT0gU2lnbmFsc0luZGljYXRvci5UWVBFX05BTUUpIHtcbiAgICAgIHJldHVybiBTaWduYWxzSW5kaWNhdG9yO1xuICAgIH0gZWxzZSBpZiAodHlwZU5hbWUgPT09IFNjcm9sbFdpemFyZFBhbmUuVFlQRV9OQU1FKSB7XG4gICAgICByZXR1cm4gU2Nyb2xsV2l6YXJkUGFuZTtcbiAgICB9IGVsc2UgaWYgKHR5cGVOYW1lID09PSBTY3JvbGxQYWdpbmF0aW9uV2l6YXJkUGFuZS5UWVBFX05BTUUpIHtcbiAgICAgIHJldHVybiBTY3JvbGxQYWdpbmF0aW9uV2l6YXJkUGFuZTtcbiAgICB9IGVsc2UgaWYgKHR5cGVOYW1lID09PSBQYWdpbmF0aW9uV2l6YXJkUGFuZS5UWVBFX05BTUUpIHtcbiAgICAgIHJldHVybiBQYWdpbmF0aW9uV2l6YXJkUGFuZTtcbiAgICB9IGVsc2UgaWYgKHR5cGVOYW1lID09PSBEZWZhdWx0TWVudUl0ZW0uVFlQRV9OQU1FKSB7XG4gICAgICByZXR1cm4gRGVmYXVsdE1lbnVJdGVtO1xuICAgIH0gZWxzZSBpZiAodHlwZU5hbWUgPT09IERlZmF1bHRNZW51LlRZUEVfTkFNRSkge1xuICAgICAgcmV0dXJuIERlZmF1bHRNZW51O1xuICAgIH0gZWxzZSBpZiAodHlwZU5hbWUgPT09IENvbnRleHRNZW51QnV0dG9uLlRZUEVfTkFNRSkge1xuICAgICAgcmV0dXJuIENvbnRleHRNZW51QnV0dG9uO1xuICAgIH0gZWxzZSBpZiAodHlwZU5hbWUgPT09IENvbnRleHRNZW51LlRZUEVfTkFNRSkge1xuICAgICAgcmV0dXJuIENvbnRleHRNZW51O1xuICAgIH0gZWxzZSBpZiAodHlwZU5hbWUgPT09IENvbm5lY3Rpb25TdGF0dXNQYW5lLlRZUEVfTkFNRSkge1xuICAgICAgcmV0dXJuIENvbm5lY3Rpb25TdGF0dXNQYW5lO1xuICAgIH0gZWxzZSBpZiAodHlwZU5hbWUgPT09IENvbm5lY3Rpb25TdGF0dXMuVFlQRV9OQU1FKSB7XG4gICAgICByZXR1cm4gQ29ubmVjdGlvblN0YXR1cztcbiAgICB9IGVsc2UgaWYgKHR5cGVOYW1lID09PSBDb21wb25lbnRXcmFwcGVyLlRZUEVfTkFNRSkge1xuICAgICAgcmV0dXJuIENvbXBvbmVudFdyYXBwZXI7XG4gICAgfSBlbHNlIGlmICh0eXBlTmFtZSA9PT0gQ29tcG9uZW50UG9wb3Zlci5UWVBFX05BTUUpIHtcbiAgICAgIHJldHVybiBDb21wb25lbnRQb3BvdmVyO1xuICAgIH0gZWxzZSBpZiAodHlwZU5hbWUgPT09IENvbXBvbmVudE1lbnVJdGVtLlRZUEVfTkFNRSkge1xuICAgICAgcmV0dXJuIENvbXBvbmVudE1lbnVJdGVtO1xuICAgIH0gZWxzZSBpZiAodHlwZU5hbWUgPT09IENvbXBvbmVudERhdGFMYW5nU2VsZWN0b3IuVFlQRV9OQU1FKSB7XG4gICAgICByZXR1cm4gQ29tcG9uZW50RGF0YUxhbmdTZWxlY3RvcjtcbiAgICB9IGVsc2UgaWYgKHR5cGVOYW1lID09PSBDb21wb25lbnRBY2NvcmRpb24uVFlQRV9OQU1FKSB7XG4gICAgICByZXR1cm4gQ29tcG9uZW50QWNjb3JkaW9uO1xuICAgIH0gZWxzZSBpZiAodHlwZU5hbWUgPT09IEV4cGFuZGFibGVUYWJsZUhlYWRlci5UWVBFX05BTUUpIHtcbiAgICAgIHJldHVybiBFeHBhbmRhYmxlVGFibGVIZWFkZXI7XG4gICAgfSBlbHNlIGlmICh0eXBlTmFtZSA9PT0gQ29sb3JEcm9wZG93bkxpc3QuVFlQRV9OQU1FKSB7XG4gICAgICByZXR1cm4gQ29sb3JEcm9wZG93bkxpc3Q7XG4gICAgfSBlbHNlIGlmICh0eXBlTmFtZSA9PT0gQ29sb3JTd2F0Y2guVFlQRV9OQU1FKSB7XG4gICAgICByZXR1cm4gQ29sb3JTd2F0Y2g7XG4gICAgfSBlbHNlIGlmICh0eXBlTmFtZSA9PT0gQ29tcG9uZW50RHJvcGRvd25MaXN0LlRZUEVfTkFNRSkge1xuICAgICAgcmV0dXJuIENvbXBvbmVudERyb3Bkb3duTGlzdDtcbiAgICB9IGVsc2UgaWYgKHR5cGVOYW1lID09PSBDb21wb25lbnRSYWRpb0J1dHRvbnMuVFlQRV9OQU1FKSB7XG4gICAgICByZXR1cm4gQ29tcG9uZW50UmFkaW9CdXR0b25zO1xuICAgIH0gZWxzZSBpZiAodHlwZU5hbWUgPT09IERhdGVQaWNrZXIuVFlQRV9OQU1FKSB7XG4gICAgICByZXR1cm4gRGF0ZVBpY2tlcjtcbiAgICB9IGVsc2UgaWYgKHR5cGVOYW1lID09PSBMaW5rU2ltcGxlRHJvcGRvd25MaXN0LlRZUEVfTkFNRSkge1xuICAgICAgcmV0dXJuIExpbmtTaW1wbGVEcm9wZG93bkxpc3Q7XG4gICAgfSBlbHNlIGlmICh0eXBlTmFtZSA9PT0gU2ltcGxlRHJvcGRvd25MaXN0LlRZUEVfTkFNRSkge1xuICAgICAgcmV0dXJuIFNpbXBsZURyb3Bkb3duTGlzdDtcbiAgICB9IGVsc2UgaWYgKHR5cGVOYW1lID09PSBTaW1wbGVSYWRpb0J1dHRvbnMuVFlQRV9OQU1FKSB7XG4gICAgICByZXR1cm4gU2ltcGxlUmFkaW9CdXR0b25zO1xuICAgIH0gZWxzZSBpZiAodHlwZU5hbWUgPT09IFRleHRBcmVhLlRZUEVfTkFNRSkge1xuICAgICAgcmV0dXJuIFRleHRBcmVhO1xuICAgIH0gZWxzZSBpZiAodHlwZU5hbWUgPT09IFRleHRCb3guVFlQRV9OQU1FKSB7XG4gICAgICByZXR1cm4gVGV4dEJveDtcbiAgICB9IGVsc2UgaWYgKHR5cGVOYW1lID09PSBUaGVtZUNvbG9yU3dhdGNoLlRZUEVfTkFNRSkge1xuICAgICAgcmV0dXJuIFRoZW1lQ29sb3JTd2F0Y2g7XG4gICAgfSBlbHNlIGlmICh0eXBlTmFtZSA9PT0gVGltZVBpY2tlci5UWVBFX05BTUUpIHtcbiAgICAgIHJldHVybiBUaW1lUGlja2VyO1xuICAgIH0gZWxzZSBpZiAodHlwZU5hbWUgPT09IENvbXBvbmVudEZsb2F0aW5nSGVhZGVyUGFuZWwuVFlQRV9OQU1FKSB7XG4gICAgICByZXR1cm4gQ29tcG9uZW50RmxvYXRpbmdIZWFkZXJQYW5lbDtcbiAgICB9IGVsc2UgaWYgKHR5cGVOYW1lID09PSBDYWxlbmRhckVudHJ5UG9wb3Zlci5UWVBFX05BTUUpIHtcbiAgICAgIHJldHVybiBDYWxlbmRhckVudHJ5UG9wb3ZlcjtcbiAgICB9IGVsc2UgaWYgKHR5cGVOYW1lID09PSBDYWxlbmRhclZpZXcuVFlQRV9OQU1FKSB7XG4gICAgICByZXR1cm4gQ2FsZW5kYXJWaWV3O1xuICAgIH0gZWxzZSBpZiAodHlwZU5hbWUgPT09IERlZmF1bHRDYWxlbmRhckVudHJ5TGlzdFBvcG92ZXIuVFlQRV9OQU1FKSB7XG4gICAgICByZXR1cm4gRGVmYXVsdENhbGVuZGFyRW50cnlMaXN0UG9wb3ZlcjtcbiAgICB9IGVsc2UgaWYgKHR5cGVOYW1lID09PSBEZWZhdWx0Q2FsZW5kYXJFbnRyeVBvcG92ZXIuVFlQRV9OQU1FKSB7XG4gICAgICByZXR1cm4gRGVmYXVsdENhbGVuZGFyRW50cnlQb3BvdmVyO1xuICAgIH0gZWxzZSBpZiAodHlwZU5hbWUgPT09IERlZmF1bHRDb21wb25lbnRDYWxlbmRhckVudHJ5LlRZUEVfTkFNRSkge1xuICAgICAgcmV0dXJuIERlZmF1bHRDb21wb25lbnRDYWxlbmRhckVudHJ5O1xuICAgIH0gZWxzZSBpZiAodHlwZU5hbWUgPT09IERlZmF1bHRFbnRyeUVkaXRvclBvcG92ZXIuVFlQRV9OQU1FKSB7XG4gICAgICByZXR1cm4gRGVmYXVsdEVudHJ5RWRpdG9yUG9wb3ZlcjtcbiAgICB9IGVsc2UgaWYgKHR5cGVOYW1lID09PSBGb3JtVmlldy5UWVBFX05BTUUpIHtcbiAgICAgIHJldHVybiBGb3JtVmlldztcbiAgICB9IGVsc2UgaWYgKHR5cGVOYW1lID09PSBTZWFyY2hCdXR0b24uVFlQRV9OQU1FKSB7XG4gICAgICByZXR1cm4gU2VhcmNoQnV0dG9uO1xuICAgIH0gZWxzZSBpZiAodHlwZU5hbWUgPT09IFZpZXdCdXR0b24uVFlQRV9OQU1FKSB7XG4gICAgICByZXR1cm4gVmlld0J1dHRvbjtcbiAgICB9IGVsc2UgaWYgKHR5cGVOYW1lID09PSBOb3RpZmljYXRpb25Db250YWluZXIuVFlQRV9OQU1FKSB7XG4gICAgICByZXR1cm4gTm90aWZpY2F0aW9uQ29udGFpbmVyO1xuICAgIH0gZWxzZSBpZiAodHlwZU5hbWUgPT09IFBobG94QXBwLlRZUEVfTkFNRSkge1xuICAgICAgcmV0dXJuIFBobG94QXBwO1xuICAgIH0gZWxzZSBpZiAodHlwZU5hbWUgPT09IENvbXBvbmVudERpYWxvZy5UWVBFX05BTUUpIHtcbiAgICAgIHJldHVybiBDb21wb25lbnREaWFsb2c7XG4gICAgfSBlbHNlIGlmICh0eXBlTmFtZSA9PT0gQ29uZmlybURpYWxvZy5UWVBFX05BTUUpIHtcbiAgICAgIHJldHVybiBDb25maXJtRGlhbG9nO1xuICAgIH0gZWxzZSBpZiAodHlwZU5hbWUgPT09IE1lc3NhZ2VEaWFsb2cuVFlQRV9OQU1FKSB7XG4gICAgICByZXR1cm4gTWVzc2FnZURpYWxvZzsgICAgIFxuICAgIH1cblxuICAgIC8vIE1hdGVyaWFsIFRoZW1lXG4gICAgaWYgKHR5cGVOYW1lID09PSBNYXRlcmlhbEljb25Mb2FkZXIuVFlQRV9OQU1FKSB7XG4gICAgICByZXR1cm4gTWF0ZXJpYWxJY29uTG9hZGVyO1xuICAgIH0gZWxzZSBpZiAodHlwZU5hbWUgPT09IE1hdGVyaWFsRGF0YUljb25Mb2FkZXIuVFlQRV9OQU1FKSB7XG4gICAgICByZXR1cm4gTWF0ZXJpYWxEYXRhSWNvbkxvYWRlcjtcbiAgICB9IGVsc2UgaWYgKHR5cGVOYW1lID09PSBNYXRlcmlhbENvbXBvbmVudERhdGFMYW5nU2VsZWN0b3IuVFlQRV9OQU1FKSB7XG4gICAgICByZXR1cm4gTWF0ZXJpYWxDb21wb25lbnREYXRhTGFuZ1NlbGVjdG9yO1xuICAgIH0gZWxzZSBpZiAodHlwZU5hbWUgPT09IE1hdGVyaWFsRGF0ZVBpY2tlci5UWVBFX05BTUUpIHtcbiAgICAgIHJldHVybiBNYXRlcmlhbERhdGVQaWNrZXI7XG4gICAgfSBlbHNlIGlmICh0eXBlTmFtZSA9PT0gTWF0ZXJpYWxUZXh0Qm94LlRZUEVfTkFNRSkge1xuICAgICAgcmV0dXJuIE1hdGVyaWFsVGV4dEJveDtcbiAgICB9IGVsc2UgaWYgKHR5cGVOYW1lID09PSBNYXRlcmlhbEJhckxvYWRlci5UWVBFX05BTUUpIHtcbiAgICAgIHJldHVybiBNYXRlcmlhbEJhckxvYWRlcjtcbiAgICB9IGVsc2UgaWYgKHR5cGVOYW1lID09PSBNYXRlcmlhbFNpbXBsZURyb3Bkb3duTGlzdC5UWVBFX05BTUUpIHtcbiAgICAgIHJldHVybiBNYXRlcmlhbFNpbXBsZURyb3Bkb3duTGlzdDtcbiAgICB9IGVsc2UgaWYgKHR5cGVOYW1lID09PSBNYXRlcmlhbFRlbE5vVGV4dEJveC5UWVBFX05BTUUpIHtcbiAgICAgIHJldHVybiBNYXRlcmlhbFRlbE5vVGV4dEJveDtcbiAgICB9IGVsc2UgaWYgKHR5cGVOYW1lID09PSBNYXRlcmlhbFRleHRBcmVhLlRZUEVfTkFNRSkge1xuICAgICAgcmV0dXJuIE1hdGVyaWFsVGV4dEFyZWE7XG4gICAgfSBlbHNlIGlmICh0eXBlTmFtZSA9PT0gTWF0ZXJpYWxUaW1lUGlja2VyLlRZUEVfTkFNRSkge1xuICAgICAgcmV0dXJuIE1hdGVyaWFsVGltZVBpY2tlcjtcbiAgICB9IGVsc2UgaWYgKHR5cGVOYW1lID09PSBNYXRlcmlhbENoZWNrQm94LlRZUEVfTkFNRSkge1xuICAgICAgcmV0dXJuIE1hdGVyaWFsQ2hlY2tCb3g7XG4gICAgfSBlbHNlIGlmICh0eXBlTmFtZSA9PT0gTWF0ZXJpYWxCdXR0b24uVFlQRV9OQU1FKSB7XG4gICAgICByZXR1cm4gTWF0ZXJpYWxCdXR0b247XG4gICAgfSBlbHNlIGlmICh0eXBlTmFtZSA9PT0gTWF0ZXJpYW