@1money/component-ui 0.0.99-alpha.0 → 0.0.99
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/es/business/Dialog/BaseDialog/BaseDialog.js +1 -1
- package/es/business/Dialog/BaseDialog/constants.js +1 -1
- package/es/business/Dialog/BaseDialog/index.js +1 -1
- package/es/business/Dialog/BaseDialog/interface.js +1 -1
- package/es/business/Dialog/Descriptions/Descriptions.js +1 -1
- package/es/business/Dialog/Descriptions/constants.js +1 -1
- package/es/business/Dialog/Descriptions/index.js +1 -1
- package/es/business/Dialog/Descriptions/interface.js +1 -1
- package/es/business/Dialog/Descriptions/style/css.js +1 -1
- package/es/business/Dialog/Descriptions/style/index.js +1 -1
- package/es/business/Dialog/DetailsDialog/DetailsDialog.js +1 -1
- package/es/business/Dialog/DetailsDialog/index.js +1 -1
- package/es/business/Dialog/DetailsDialog/interface.js +1 -1
- package/es/business/Dialog/DetailsDialog/style/css.js +1 -1
- package/es/business/Dialog/DetailsDialog/style/index.js +1 -1
- package/es/business/Dialog/FormDialog/FormDialog.js +1 -1
- package/es/business/Dialog/FormDialog/index.js +1 -1
- package/es/business/Dialog/FormDialog/interface.js +1 -1
- package/es/business/Dialog/FormDialog/style/css.js +1 -1
- package/es/business/Dialog/FormDialog/style/index.js +1 -1
- package/es/business/Dialog/VerificationDialog/VerificationDialog.js +1 -1
- package/es/business/Dialog/VerificationDialog/constants.js +1 -1
- package/es/business/Dialog/VerificationDialog/index.js +1 -1
- package/es/business/Dialog/VerificationDialog/interface.js +1 -1
- package/es/business/Dialog/VerificationDialog/style/css.js +1 -1
- package/es/business/Dialog/VerificationDialog/style/index.js +1 -1
- package/es/business/Dialog/index.js +1 -1
- package/es/business/Dialog/variants/DeleteDialog.js +1 -1
- package/es/business/Dialog/variants/FailureDialog.js +1 -1
- package/es/business/Dialog/variants/LoadingDialog.js +1 -1
- package/es/business/Dialog/variants/PendingDialog.js +1 -1
- package/es/business/Dialog/variants/SuccessDialog.js +1 -1
- package/es/business/Dialog/variants/index.js +1 -1
- package/es/business/Dialog/variants/style/css.js +1 -1
- package/es/business/Dialog/variants/style/index.js +1 -1
- package/es/business/FieldList/index.js +1 -1
- package/es/business/FieldList/style/css.js +1 -1
- package/es/business/FieldList/style/index.js +1 -1
- package/es/business/Filter/Account/Account.js +1 -1
- package/es/business/Filter/Account/index.js +1 -1
- package/es/business/Filter/Account/interface.js +1 -1
- package/es/business/Filter/Account/style/css.js +1 -1
- package/es/business/Filter/Account/style/index.js +1 -1
- package/es/business/Filter/Asset/Asset.js +1 -1
- package/es/business/Filter/Asset/index.js +1 -1
- package/es/business/Filter/Asset/interface.js +1 -1
- package/es/business/Filter/Asset/style/css.js +1 -1
- package/es/business/Filter/Asset/style/index.js +1 -1
- package/es/business/Filter/DateRange/DateRange.js +1 -1
- package/es/business/Filter/DateRange/index.js +1 -1
- package/es/business/Filter/DateRange/interface.js +1 -1
- package/es/business/Filter/DateRange/style/css.js +1 -1
- package/es/business/Filter/DateRange/style/index.js +1 -1
- package/es/business/Filter/Option/Option.js +1 -1
- package/es/business/Filter/Option/index.js +1 -1
- package/es/business/Filter/Option/interface.js +1 -1
- package/es/business/Filter/Option/style/css.js +1 -1
- package/es/business/Filter/Option/style/index.js +1 -1
- package/es/business/Filter/index.js +1 -1
- package/es/business/Form/PageForm/PageForm.js +1 -1
- package/es/business/Form/PageForm/index.js +1 -1
- package/es/business/Form/PageForm/interface.js +1 -1
- package/es/business/Form/ResultForm/ResultForm.js +1 -1
- package/es/business/Form/ResultForm/index.js +1 -1
- package/es/business/Form/ResultForm/interface.js +1 -1
- package/es/business/Form/index.js +1 -1
- package/es/business/Form/variants/ExpiredForm.js +1 -1
- package/es/business/Form/variants/FailureForm.js +1 -1
- package/es/business/Form/variants/PendingForm.js +1 -1
- package/es/business/Form/variants/SuccessForm.js +1 -1
- package/es/business/Form/variants/index.js +1 -1
- package/es/business/Select/Asset/AssetSelect.js +1 -1
- package/es/business/Select/Asset/index.js +1 -1
- package/es/business/Select/Asset/interface.js +1 -1
- package/es/business/Select/Asset/style/css.js +1 -1
- package/es/business/Select/Asset/style/index.js +1 -1
- package/es/business/Select/Country/CountrySelect.js +1 -1
- package/es/business/Select/Country/index.js +1 -1
- package/es/business/Select/Country/interface.js +1 -1
- package/es/business/Select/Currency/CurrencySelect.js +1 -1
- package/es/business/Select/Currency/index.js +1 -1
- package/es/business/Select/Currency/interface.js +1 -1
- package/es/business/Select/Currency/style/css.js +1 -1
- package/es/business/Select/Currency/style/index.js +1 -1
- package/es/business/Select/Network/NetworkSelect.js +1 -1
- package/es/business/Select/Network/index.js +1 -1
- package/es/business/Select/Network/interface.js +1 -1
- package/es/business/Select/Network/style/css.js +1 -1
- package/es/business/Select/Network/style/index.js +1 -1
- package/es/business/Select/PaymentMethod/PaymentMethodSelect.js +1 -1
- package/es/business/Select/PaymentMethod/index.js +1 -1
- package/es/business/Select/PaymentMethod/interface.js +1 -1
- package/es/business/Select/PaymentMethod/style/css.js +1 -1
- package/es/business/Select/PaymentMethod/style/index.js +1 -1
- package/es/business/Select/index.js +1 -1
- package/es/business/index.js +1 -1
- package/es/business/shared/formCore/BaseProForm.js +1 -1
- package/es/business/shared/formCore/useFormDomId.js +1 -1
- package/es/business/shared/formCore/useRelayedFormRef.js +1 -1
- package/es/business/shared/formCore/useSubmitAction.js +1 -1
- package/es/components/Accordion/Accordion.js +1 -1
- package/es/components/Accordion/constants.js +1 -1
- package/es/components/Accordion/index.js +1 -1
- package/es/components/Accordion/interface.js +1 -1
- package/es/components/Accordion/style/css.js +1 -1
- package/es/components/Accordion/style/index.js +1 -1
- package/es/components/ActionBar/ActionBar.js +1 -1
- package/es/components/ActionBar/constants.js +1 -1
- package/es/components/ActionBar/index.js +1 -1
- package/es/components/ActionBar/interface.js +1 -1
- package/es/components/ActionBar/style/css.js +1 -1
- package/es/components/ActionBar/style/index.js +1 -1
- package/es/components/Alert/Alert.js +1 -1
- package/es/components/Alert/index.js +1 -1
- package/es/components/Alert/interface.js +1 -1
- package/es/components/Alert/style/css.js +1 -1
- package/es/components/Alert/style/index.js +1 -1
- package/es/components/Button/Button.js +1 -1
- package/es/components/Button/constants.js +1 -1
- package/es/components/Button/index.js +1 -1
- package/es/components/Button/interface.js +1 -1
- package/es/components/Button/style/css.js +1 -1
- package/es/components/Button/style/index.js +1 -1
- package/es/components/Calendar/Calendar.js +1 -1
- package/es/components/Calendar/constants.js +1 -1
- package/es/components/Calendar/index.js +1 -1
- package/es/components/Calendar/interface.js +1 -1
- package/es/components/Calendar/style/css.js +1 -1
- package/es/components/Calendar/style/index.js +1 -1
- package/es/components/Carousel/Carousel.js +1 -1
- package/es/components/Carousel/index.js +1 -1
- package/es/components/Carousel/interface.js +1 -1
- package/es/components/Carousel/style/css.js +1 -1
- package/es/components/Carousel/style/index.js +1 -1
- package/es/components/Cell/Cell.js +1 -1
- package/es/components/Cell/index.js +1 -1
- package/es/components/Cell/interface.js +1 -1
- package/es/components/Cell/style/css.js +1 -1
- package/es/components/Cell/style/index.js +1 -1
- package/es/components/Checkbox/BaseCheckbox.js +1 -1
- package/es/components/Checkbox/Checkbox.js +1 -1
- package/es/components/Checkbox/CheckboxGroup.js +1 -1
- package/es/components/Checkbox/CheckboxGroupContext.js +1 -1
- package/es/components/Checkbox/constants.js +1 -1
- package/es/components/Checkbox/index.js +1 -1
- package/es/components/Checkbox/interface.js +1 -1
- package/es/components/Checkbox/style/css.js +1 -1
- package/es/components/Checkbox/style/index.js +1 -1
- package/es/components/CoachMark/CoachMark.js +1 -1
- package/es/components/CoachMark/index.js +1 -1
- package/es/components/CoachMark/interface.js +1 -1
- package/es/components/CoachMark/style/css.js +1 -1
- package/es/components/CoachMark/style/index.js +1 -1
- package/es/components/Copy/Clipboard.js +1 -1
- package/es/components/Copy/Copy.js +1 -1
- package/es/components/Copy/index.js +1 -1
- package/es/components/Copy/interface.js +1 -1
- package/es/components/Copy/style/css.js +1 -1
- package/es/components/Copy/style/index.js +1 -1
- package/es/components/Dialog/Dialog.js +1 -1
- package/es/components/Dialog/DialogContent.js +1 -1
- package/es/components/Dialog/DialogControls.js +1 -1
- package/es/components/Dialog/className.js +1 -1
- package/es/components/Dialog/constants.js +1 -1
- package/es/components/Dialog/hooks.js +1 -1
- package/es/components/Dialog/index.js +1 -1
- package/es/components/Dialog/interface.js +1 -1
- package/es/components/Dialog/style/css.js +1 -1
- package/es/components/Dialog/style/index.js +1 -1
- package/es/components/Dialog/types.js +1 -1
- package/es/components/Divider/Divider.js +1 -1
- package/es/components/Divider/constants.js +1 -1
- package/es/components/Divider/index.js +1 -1
- package/es/components/Divider/interface.js +1 -1
- package/es/components/Divider/style/css.js +1 -1
- package/es/components/Divider/style/index.js +1 -1
- package/es/components/Drawer/Drawer.js +1 -1
- package/es/components/Drawer/constants.js +1 -1
- package/es/components/Drawer/hooks/index.js +1 -1
- package/es/components/Drawer/hooks/useBodyScrollLock.js +1 -1
- package/es/components/Drawer/hooks/useDialogFocus.js +1 -1
- package/es/components/Drawer/hooks/useDrawerTransition.js +1 -1
- package/es/components/Drawer/hooks/useEscapeClose.js +1 -1
- package/es/components/Drawer/index.js +1 -1
- package/es/components/Drawer/interface.js +1 -1
- package/es/components/Drawer/style/css.js +1 -1
- package/es/components/Drawer/style/index.js +1 -1
- package/es/components/Dropdown/Dropdown.js +1 -1
- package/es/components/Dropdown/index.js +1 -1
- package/es/components/Dropdown/interface.js +1 -1
- package/es/components/Dropdown/style/css.js +1 -1
- package/es/components/Dropdown/style/index.js +1 -1
- package/es/components/Empty/Empty.js +1 -1
- package/es/components/Empty/index.js +1 -1
- package/es/components/Empty/interface.js +1 -1
- package/es/components/Empty/style/css.js +1 -1
- package/es/components/Empty/style/index.js +1 -1
- package/es/components/Filter/Filter.js +1 -1
- package/es/components/Filter/index.js +1 -1
- package/es/components/Filter/interface.js +1 -1
- package/es/components/Filter/style/css.js +1 -1
- package/es/components/Filter/style/index.js +1 -1
- package/es/components/Flex/Flex.js +1 -1
- package/es/components/Flex/constants.js +1 -1
- package/es/components/Flex/index.js +1 -1
- package/es/components/Flex/interface.js +1 -1
- package/es/components/Flex/style/css.js +1 -1
- package/es/components/Flex/style/index.js +1 -1
- package/es/components/FormLayout/FormLayout.js +1 -1
- package/es/components/FormLayout/config.js +1 -1
- package/es/components/FormLayout/context.js +1 -1
- package/es/components/FormLayout/index.js +1 -1
- package/es/components/FormLayout/interface.js +1 -1
- package/es/components/FormLayout/style/css.js +1 -1
- package/es/components/FormLayout/style/index.js +1 -1
- package/es/components/Grid/Col.js +1 -1
- package/es/components/Grid/Grid.js +1 -1
- package/es/components/Grid/Row.js +1 -1
- package/es/components/Grid/constants.js +1 -1
- package/es/components/Grid/helper.js +1 -1
- package/es/components/Grid/index.js +1 -1
- package/es/components/Grid/interface.js +1 -1
- package/es/components/Grid/style/css.js +1 -1
- package/es/components/Grid/style/index.js +1 -1
- package/es/components/Icons/Icons.js +1 -1
- package/es/components/Icons/Illustrations.js +1 -1
- package/es/components/Icons/Logo.js +1 -1
- package/es/components/Icons/SVGs.js +1 -1
- package/es/components/Icons/Wrapper.js +1 -1
- package/es/components/Icons/constants.js +1 -1
- package/es/components/Icons/index.js +1 -1
- package/es/components/Icons/interface.js +1 -1
- package/es/components/Icons/style/css.js +1 -1
- package/es/components/Icons/style/index.js +1 -1
- package/es/components/Input/Amount/Amount.js +1 -1
- package/es/components/Input/Amount/helper.js +1 -1
- package/es/components/Input/Amount/index.js +1 -1
- package/es/components/Input/Amount/style/css.js +1 -1
- package/es/components/Input/Amount/style/index.js +1 -1
- package/es/components/Input/FieldShell/FieldShell.js +1 -1
- package/es/components/Input/FieldShell/index.js +1 -1
- package/es/components/Input/Input/Input.js +1 -1
- package/es/components/Input/Input/index.js +1 -1
- package/es/components/Input/Mask/Mask.js +1 -1
- package/es/components/Input/Mask/index.js +1 -1
- package/es/components/Input/OTP/OTP.js +1 -1
- package/es/components/Input/OTP/index.js +1 -1
- package/es/components/Input/Password/Password.js +1 -1
- package/es/components/Input/Password/index.js +1 -1
- package/es/components/Input/Search/Search.js +1 -1
- package/es/components/Input/Search/index.js +1 -1
- package/es/components/Input/TextArea/TextArea.js +1 -1
- package/es/components/Input/TextArea/index.js +1 -1
- package/es/components/Input/Trade/Trade.js +1 -1
- package/es/components/Input/Trade/index.js +1 -1
- package/es/components/Input/constants.js +1 -1
- package/es/components/Input/index.js +1 -1
- package/es/components/Input/interface.js +1 -1
- package/es/components/Input/style/css.js +1 -1
- package/es/components/Input/style/index.js +1 -1
- package/es/components/Input/useAmountInput.js +1 -1
- package/es/components/Input/useSyncRef.js +1 -1
- package/es/components/Link/Link.js +1 -1
- package/es/components/Link/constants.js +1 -1
- package/es/components/Link/index.js +1 -1
- package/es/components/Link/interface.js +1 -1
- package/es/components/Link/style/css.js +1 -1
- package/es/components/Link/style/index.js +1 -1
- package/es/components/Navigation/Nav.js +1 -1
- package/es/components/Navigation/Navigation.js +1 -1
- package/es/components/Navigation/NavigationLogo.js +1 -1
- package/es/components/Navigation/NavigationStepper.js +1 -1
- package/es/components/Navigation/index.js +1 -1
- package/es/components/Navigation/interface.js +1 -1
- package/es/components/Navigation/style/css.js +1 -1
- package/es/components/Navigation/style/index.js +1 -1
- package/es/components/Notification/Notification.js +1 -1
- package/es/components/Notification/NotificationStatic.js +1 -1
- package/es/components/Notification/constants.js +1 -1
- package/es/components/Notification/index.js +1 -1
- package/es/components/Notification/interface.js +1 -1
- package/es/components/Notification/style/css.js +1 -1
- package/es/components/Notification/style/index.js +1 -1
- package/es/components/Pagination/Pagination.js +1 -1
- package/es/components/Pagination/constants.js +1 -1
- package/es/components/Pagination/index.js +1 -1
- package/es/components/Pagination/interface.js +1 -1
- package/es/components/Pagination/style/css.js +1 -1
- package/es/components/Pagination/style/index.js +1 -1
- package/es/components/Pagination/usePagination.js +1 -1
- package/es/components/PanelLayout/PanelLayout.js +1 -1
- package/es/components/PanelLayout/constants.js +1 -1
- package/es/components/PanelLayout/index.js +1 -1
- package/es/components/PanelLayout/interface.js +1 -1
- package/es/components/PanelLayout/style/css.js +1 -1
- package/es/components/PanelLayout/style/index.js +1 -1
- package/es/components/Popconfirm/Popconfirm.js +1 -1
- package/es/components/Popconfirm/constants.js +1 -1
- package/es/components/Popconfirm/index.js +1 -1
- package/es/components/Popconfirm/interface.js +1 -1
- package/es/components/Popconfirm/style/css.js +1 -1
- package/es/components/Popconfirm/style/index.js +1 -1
- package/es/components/Portal/Portal.js +1 -1
- package/es/components/Portal/index.js +1 -1
- package/es/components/Portal/interface.js +1 -1
- package/es/components/ProForm/ProForm.js +1 -1
- package/es/components/ProForm/ProFormDependency.js +1 -1
- package/es/components/ProForm/ProFormGroup.js +1 -1
- package/es/components/ProForm/ProFormItem.js +1 -1
- package/es/components/ProForm/ProFormList.js +1 -1
- package/es/components/ProForm/SchemaForm.js +1 -1
- package/es/components/ProForm/Submitter.js +1 -1
- package/es/components/ProForm/constants.js +1 -1
- package/es/components/ProForm/context.js +1 -1
- package/es/components/ProForm/core/constants.js +1 -1
- package/es/components/ProForm/core/devWarning.js +1 -1
- package/es/components/ProForm/core/formStore.js +1 -1
- package/es/components/ProForm/core/hooks/useForm.js +1 -1
- package/es/components/ProForm/core/hooks/useFormCore.js +1 -1
- package/es/components/ProForm/core/index.js +1 -1
- package/es/components/ProForm/core/interface.js +1 -1
- package/es/components/ProForm/core/namePathType.js +1 -1
- package/es/components/ProForm/core/pathUtils.js +1 -1
- package/es/components/ProForm/core/runRules.js +1 -1
- package/es/components/ProForm/core/useFormItem.js +1 -1
- package/es/components/ProForm/core/validationError.js +1 -1
- package/es/components/ProForm/fields/ProFormCheckbox.js +1 -1
- package/es/components/ProForm/fields/ProFormCheckboxGroup.js +1 -1
- package/es/components/ProForm/fields/ProFormDatePicker.js +1 -1
- package/es/components/ProForm/fields/ProFormFieldSet.js +1 -1
- package/es/components/ProForm/fields/ProFormPassword.js +1 -1
- package/es/components/ProForm/fields/ProFormRadioGroup.js +1 -1
- package/es/components/ProForm/fields/ProFormSelect.js +1 -1
- package/es/components/ProForm/fields/ProFormSlider.js +1 -1
- package/es/components/ProForm/fields/ProFormSwitch.js +1 -1
- package/es/components/ProForm/fields/ProFormText.js +1 -1
- package/es/components/ProForm/fields/ProFormTextArea.js +1 -1
- package/es/components/ProForm/fields/ProFormUpload.js +1 -1
- package/es/components/ProForm/fields/createProFormField.js +1 -1
- package/es/components/ProForm/fields/index.js +1 -1
- package/es/components/ProForm/hooks/useFieldRequest.js +1 -1
- package/es/components/ProForm/hooks/useUrlSync.js +1 -1
- package/es/components/ProForm/index.js +1 -1
- package/es/components/ProForm/interface.js +1 -1
- package/es/components/ProForm/layouts/DialogForm.js +1 -1
- package/es/components/ProForm/layouts/DrawerForm.js +1 -1
- package/es/components/ProForm/layouts/QueryFilter.js +1 -1
- package/es/components/ProForm/layouts/index.js +1 -1
- package/es/components/ProForm/layouts/useOverlayForm.js +1 -1
- package/es/components/ProForm/style/css.js +1 -1
- package/es/components/ProForm/style/index.js +1 -1
- package/es/components/ProForm/utils.js +1 -1
- package/es/components/ProTable/ProTable.js +1 -1
- package/es/components/ProTable/constants.js +1 -1
- package/es/components/ProTable/core/genColumns.js +1 -1
- package/es/components/ProTable/core/genSearchFields.js +1 -1
- package/es/components/ProTable/core/useAwaitableReload.js +1 -1
- package/es/components/ProTable/core/utils.js +1 -1
- package/es/components/ProTable/index.js +1 -1
- package/es/components/ProTable/interface.js +1 -1
- package/es/components/ProTable/style/css.js +1 -1
- package/es/components/ProTable/style/index.js +1 -1
- package/es/components/ProTable/useFetchData.js +1 -1
- package/es/components/Progress/Progress.js +1 -1
- package/es/components/Progress/constants.js +1 -1
- package/es/components/Progress/index.js +1 -1
- package/es/components/Progress/interface.js +1 -1
- package/es/components/Progress/style/css.js +1 -1
- package/es/components/Progress/style/index.js +1 -1
- package/es/components/Radio/BaseRadio.js +1 -1
- package/es/components/Radio/Radio.js +1 -1
- package/es/components/Radio/RadioGroup.js +1 -1
- package/es/components/Radio/RadioGroupContext.js +1 -1
- package/es/components/Radio/constants.js +1 -1
- package/es/components/Radio/index.js +1 -1
- package/es/components/Radio/interface.js +1 -1
- package/es/components/Radio/style/css.js +1 -1
- package/es/components/Radio/style/index.js +1 -1
- package/es/components/ResizeObserver/Collection.js +1 -1
- package/es/components/ResizeObserver/ResizeObserver.js +1 -1
- package/es/components/ResizeObserver/SingleObserver/index.js +1 -1
- package/es/components/ResizeObserver/index.js +1 -1
- package/es/components/ResizeObserver/interface.js +1 -1
- package/es/components/ResizeObserver/useResizeObserver.js +1 -1
- package/es/components/ResizeObserver/utils/observerUtil.js +1 -1
- package/es/components/ResizeObserver/utils/reactUtil.js +1 -1
- package/es/components/Segment/Segment.js +1 -1
- package/es/components/Segment/index.js +1 -1
- package/es/components/Segment/interface.js +1 -1
- package/es/components/Segment/style/css.js +1 -1
- package/es/components/Segment/style/index.js +1 -1
- package/es/components/Select/Select.js +1 -1
- package/es/components/Select/SelectCustom.js +1 -1
- package/es/components/Select/SelectFieldShell.js +1 -1
- package/es/components/Select/SelectOptionContent.js +1 -1
- package/es/components/Select/SelectSearchControl.js +1 -1
- package/es/components/Select/SelectValueContent.js +1 -1
- package/es/components/Select/constants.js +1 -1
- package/es/components/Select/index.js +1 -1
- package/es/components/Select/interface.js +1 -1
- package/es/components/Select/style/css.js +1 -1
- package/es/components/Select/style/index.js +1 -1
- package/es/components/Select/useSelectShell.js +1 -1
- package/es/components/Select/utils.js +1 -1
- package/es/components/Skeleton/Skeleton.js +1 -1
- package/es/components/Skeleton/index.js +1 -1
- package/es/components/Skeleton/interface.js +1 -1
- package/es/components/Skeleton/style/css.js +1 -1
- package/es/components/Skeleton/style/index.js +1 -1
- package/es/components/Slider/Slider.js +1 -1
- package/es/components/Slider/index.js +1 -1
- package/es/components/Slider/interface.js +1 -1
- package/es/components/Slider/style/css.js +1 -1
- package/es/components/Slider/style/index.js +1 -1
- package/es/components/Space/Space.js +1 -1
- package/es/components/Space/constants.js +1 -1
- package/es/components/Space/index.js +1 -1
- package/es/components/Space/interface.js +1 -1
- package/es/components/Space/style/css.js +1 -1
- package/es/components/Space/style/index.js +1 -1
- package/es/components/Spinner/Spinner.js +1 -1
- package/es/components/Spinner/index.js +1 -1
- package/es/components/Spinner/interface.js +1 -1
- package/es/components/Spinner/style/css.js +1 -1
- package/es/components/Spinner/style/index.js +1 -1
- package/es/components/Step/Step.js +1 -1
- package/es/components/Step/constants.js +1 -1
- package/es/components/Step/index.js +1 -1
- package/es/components/Step/interface.js +1 -1
- package/es/components/Step/style/css.js +1 -1
- package/es/components/Step/style/index.js +1 -1
- package/es/components/Switch/Switch.js +1 -1
- package/es/components/Switch/constants.js +1 -1
- package/es/components/Switch/index.js +1 -1
- package/es/components/Switch/interface.js +1 -1
- package/es/components/Switch/style/css.js +1 -1
- package/es/components/Switch/style/index.js +1 -1
- package/es/components/Table/Table.js +1 -1
- package/es/components/Table/VirtualTable.js +1 -1
- package/es/components/Table/constants.js +1 -1
- package/es/components/Table/core/columnUtil.js +1 -1
- package/es/components/Table/core/useTableColumns.js +1 -1
- package/es/components/Table/core/useTableDataPipeline.js +1 -1
- package/es/components/Table/core/useTableExpand.js +1 -1
- package/es/components/Table/core/useTableSelection.js +1 -1
- package/es/components/Table/core/useTableSetup.d.ts +7 -1
- package/es/components/Table/core/useTableSetup.js +5 -3
- package/es/components/Table/features/ExpandTrigger.js +1 -1
- package/es/components/Table/features/FilterTrigger.js +1 -1
- package/es/components/Table/features/SelectionColumn.js +1 -1
- package/es/components/Table/features/SortTrigger.js +1 -1
- package/es/components/Table/index.js +1 -1
- package/es/components/Table/interface.js +1 -1
- package/es/components/Table/internal/index.js +1 -1
- package/es/components/Table/internal/kernel/Body/BodyRow.js +1 -1
- package/es/components/Table/internal/kernel/Body/ExpandedRow.js +1 -1
- package/es/components/Table/internal/kernel/Body/MeasureCell.js +1 -1
- package/es/components/Table/internal/kernel/Body/MeasureRow.js +1 -1
- package/es/components/Table/internal/kernel/Body/index.js +1 -1
- package/es/components/Table/internal/kernel/Cell/index.js +1 -1
- package/es/components/Table/internal/kernel/Cell/useCellRender.js +1 -1
- package/es/components/Table/internal/kernel/Cell/useHoverState.js +1 -1
- package/es/components/Table/internal/kernel/ColGroup.js +1 -1
- package/es/components/Table/internal/kernel/FixedHolder/index.js +1 -1
- package/es/components/Table/internal/kernel/Footer/Cell.js +1 -1
- package/es/components/Table/internal/kernel/Footer/Row.js +1 -1
- package/es/components/Table/internal/kernel/Footer/Summary.js +1 -1
- package/es/components/Table/internal/kernel/Footer/SummaryContext.js +1 -1
- package/es/components/Table/internal/kernel/Footer/index.js +1 -1
- package/es/components/Table/internal/kernel/Header/Header.js +1 -1
- package/es/components/Table/internal/kernel/Header/HeaderRow.js +1 -1
- package/es/components/Table/internal/kernel/Panel/index.js +1 -1
- package/es/components/Table/internal/kernel/Table.js +1 -1
- package/es/components/Table/internal/kernel/VirtualTable/BodyGrid.js +1 -1
- package/es/components/Table/internal/kernel/VirtualTable/BodyLine.js +1 -1
- package/es/components/Table/internal/kernel/VirtualTable/VirtualCell.js +1 -1
- package/es/components/Table/internal/kernel/VirtualTable/context.js +1 -1
- package/es/components/Table/internal/kernel/VirtualTable/index.js +1 -1
- package/es/components/Table/internal/kernel/constant.js +1 -1
- package/es/components/Table/internal/kernel/context/PerfContext.js +1 -1
- package/es/components/Table/internal/kernel/context/TableContext.js +1 -1
- package/es/components/Table/internal/kernel/hooks/useColumns/index.js +1 -1
- package/es/components/Table/internal/kernel/hooks/useColumns/useWidthColumns.js +1 -1
- package/es/components/Table/internal/kernel/hooks/useExpand.js +1 -1
- package/es/components/Table/internal/kernel/hooks/useFixedInfo.js +1 -1
- package/es/components/Table/internal/kernel/hooks/useFlattenRecords.js +1 -1
- package/es/components/Table/internal/kernel/hooks/useFrame.js +1 -1
- package/es/components/Table/internal/kernel/hooks/useHover.js +1 -1
- package/es/components/Table/internal/kernel/hooks/useRenderTimes.js +1 -1
- package/es/components/Table/internal/kernel/hooks/useRowInfo.js +1 -1
- package/es/components/Table/internal/kernel/hooks/useSticky.js +1 -1
- package/es/components/Table/internal/kernel/hooks/useStickyOffsets.js +1 -1
- package/es/components/Table/internal/kernel/index.js +1 -1
- package/es/components/Table/internal/kernel/interface.js +1 -1
- package/es/components/Table/internal/kernel/namePathType.js +1 -1
- package/es/components/Table/internal/kernel/selector-context/Immutable.js +1 -1
- package/es/components/Table/internal/kernel/selector-context/context.js +1 -1
- package/es/components/Table/internal/kernel/selector-context/index.js +1 -1
- package/es/components/Table/internal/kernel/selector-context/isEqual.js +1 -1
- package/es/components/Table/internal/kernel/stickyScrollBar.js +1 -1
- package/es/components/Table/internal/kernel/sugar/Column.js +1 -1
- package/es/components/Table/internal/kernel/sugar/ColumnGroup.js +1 -1
- package/es/components/Table/internal/kernel/utils/dom/canUseDom.js +1 -1
- package/es/components/Table/internal/kernel/utils/dom/isVisible.js +1 -1
- package/es/components/Table/internal/kernel/utils/expandUtil.js +1 -1
- package/es/components/Table/internal/kernel/utils/fixUtil.js +1 -1
- package/es/components/Table/internal/kernel/utils/get.js +1 -1
- package/es/components/Table/internal/kernel/utils/getScrollBarSize.js +1 -1
- package/es/components/Table/internal/kernel/utils/legacyUtil.js +1 -1
- package/es/components/Table/internal/kernel/utils/offsetUtil.js +1 -1
- package/es/components/Table/internal/kernel/utils/pickAttrs.js +1 -1
- package/es/components/Table/internal/kernel/utils/useMemo.js +1 -1
- package/es/components/Table/internal/kernel/utils/valueUtil.js +1 -1
- package/es/components/Table/internal/kernel/utils/warning.js +1 -1
- package/es/components/Table/renderers/BodyCell.js +1 -1
- package/es/components/Table/renderers/CellContent.js +1 -1
- package/es/components/Table/renderers/EmptyState.js +1 -1
- package/es/components/Table/renderers/ExpandedRowContainer.js +1 -1
- package/es/components/Table/renderers/HeaderCell.js +1 -1
- package/es/components/Table/renderers/TableShell.js +1 -1
- package/es/components/Table/style/css.js +1 -1
- package/es/components/Table/style/index.js +1 -1
- package/es/components/Tabs/Tabs.js +1 -1
- package/es/components/Tabs/index.js +1 -1
- package/es/components/Tabs/interface.js +1 -1
- package/es/components/Tabs/style/css.js +1 -1
- package/es/components/Tabs/style/index.js +1 -1
- package/es/components/Tag/Tag.js +1 -1
- package/es/components/Tag/constants.js +1 -1
- package/es/components/Tag/index.js +1 -1
- package/es/components/Tag/interface.js +1 -1
- package/es/components/Tag/style/css.js +1 -1
- package/es/components/Tag/style/index.js +1 -1
- package/es/components/Tooltip/Tooltip.js +1 -1
- package/es/components/Tooltip/index.js +1 -1
- package/es/components/Tooltip/interface.js +1 -1
- package/es/components/Tooltip/style/css.js +1 -1
- package/es/components/Tooltip/style/index.js +1 -1
- package/es/components/Tour/Tour.js +1 -1
- package/es/components/Tour/index.js +1 -1
- package/es/components/Tour/interface.js +1 -1
- package/es/components/Trigger/Trigger.js +1 -1
- package/es/components/Trigger/index.js +1 -1
- package/es/components/Trigger/interface.js +1 -1
- package/es/components/Trigger/style/css.js +1 -1
- package/es/components/Trigger/style/index.js +1 -1
- package/es/components/Typography/Typography.js +1 -1
- package/es/components/Typography/constants.js +1 -1
- package/es/components/Typography/index.js +1 -1
- package/es/components/Typography/interface.js +1 -1
- package/es/components/Typography/render.js +1 -1
- package/es/components/Typography/style/css.js +1 -1
- package/es/components/Typography/style/index.js +1 -1
- package/es/components/Typography/useTypographyEnhancements.js +1 -1
- package/es/components/Typography/utils.js +1 -1
- package/es/components/Upload/Upload.js +1 -1
- package/es/components/Upload/UploadFileBar.js +1 -1
- package/es/components/Upload/index.js +1 -1
- package/es/components/Upload/interface.js +1 -1
- package/es/components/Upload/style/css.js +1 -1
- package/es/components/Upload/style/index.js +1 -1
- package/es/components/VirtualList/Filler.js +1 -1
- package/es/components/VirtualList/Item.js +1 -1
- package/es/components/VirtualList/ScrollBar.js +1 -1
- package/es/components/VirtualList/VirtualList.js +27 -13
- package/es/components/VirtualList/constants.js +1 -1
- package/es/components/VirtualList/hooks/useChildren.js +1 -1
- package/es/components/VirtualList/hooks/useDiffItem.js +1 -1
- package/es/components/VirtualList/hooks/useFrameWheel.js +1 -1
- package/es/components/VirtualList/hooks/useGetSize.js +1 -1
- package/es/components/VirtualList/hooks/useHeights.js +1 -1
- package/es/components/VirtualList/hooks/useMobileTouchMove.js +1 -1
- package/es/components/VirtualList/hooks/useOriginScroll.js +1 -1
- package/es/components/VirtualList/hooks/useScrollDrag.js +1 -1
- package/es/components/VirtualList/hooks/useScrollTo.js +1 -1
- package/es/components/VirtualList/index.js +1 -1
- package/es/components/VirtualList/interface.js +1 -1
- package/es/components/VirtualList/style/css.js +1 -1
- package/es/components/VirtualList/style/index.js +1 -1
- package/es/components/VirtualList/utils/CacheMap.js +1 -1
- package/es/components/VirtualList/utils/algorithmUtil.js +1 -1
- package/es/components/VirtualList/utils/isFirefox.js +1 -1
- package/es/components/VirtualList/utils/raf.js +1 -1
- package/es/components/VirtualList/utils/scrollbarUtil.js +1 -1
- package/es/hooks/index.js +1 -1
- package/es/hooks/useFloatingAnimation.js +1 -1
- package/es/index.css +1 -1
- package/es/index.js +1 -1
- package/es/stories/docs/ComponentDocsPage.js +1 -1
- package/es/stories/docs/componentDocMeta.js +1 -1
- package/es/utils/classnames.js +1 -1
- package/es/utils/clipboard.js +1 -1
- package/es/utils/devWarn.js +1 -1
- package/es/utils/ref.js +1 -1
- package/es/utils/uuid.js +1 -1
- package/lib/business/Dialog/BaseDialog/BaseDialog.js +1 -1
- package/lib/business/Dialog/BaseDialog/constants.js +1 -1
- package/lib/business/Dialog/BaseDialog/index.js +1 -1
- package/lib/business/Dialog/BaseDialog/interface.js +1 -1
- package/lib/business/Dialog/Descriptions/Descriptions.js +1 -1
- package/lib/business/Dialog/Descriptions/constants.js +1 -1
- package/lib/business/Dialog/Descriptions/index.js +1 -1
- package/lib/business/Dialog/Descriptions/interface.js +1 -1
- package/lib/business/Dialog/Descriptions/style/css.js +1 -1
- package/lib/business/Dialog/Descriptions/style/index.js +1 -1
- package/lib/business/Dialog/DetailsDialog/DetailsDialog.js +1 -1
- package/lib/business/Dialog/DetailsDialog/index.js +1 -1
- package/lib/business/Dialog/DetailsDialog/interface.js +1 -1
- package/lib/business/Dialog/DetailsDialog/style/css.js +1 -1
- package/lib/business/Dialog/DetailsDialog/style/index.js +1 -1
- package/lib/business/Dialog/FormDialog/FormDialog.js +1 -1
- package/lib/business/Dialog/FormDialog/index.js +1 -1
- package/lib/business/Dialog/FormDialog/interface.js +1 -1
- package/lib/business/Dialog/FormDialog/style/css.js +1 -1
- package/lib/business/Dialog/FormDialog/style/index.js +1 -1
- package/lib/business/Dialog/VerificationDialog/VerificationDialog.js +1 -1
- package/lib/business/Dialog/VerificationDialog/constants.js +1 -1
- package/lib/business/Dialog/VerificationDialog/index.js +1 -1
- package/lib/business/Dialog/VerificationDialog/interface.js +1 -1
- package/lib/business/Dialog/VerificationDialog/style/css.js +1 -1
- package/lib/business/Dialog/VerificationDialog/style/index.js +1 -1
- package/lib/business/Dialog/index.js +1 -1
- package/lib/business/Dialog/variants/DeleteDialog.js +1 -1
- package/lib/business/Dialog/variants/FailureDialog.js +1 -1
- package/lib/business/Dialog/variants/LoadingDialog.js +1 -1
- package/lib/business/Dialog/variants/PendingDialog.js +1 -1
- package/lib/business/Dialog/variants/SuccessDialog.js +1 -1
- package/lib/business/Dialog/variants/index.js +1 -1
- package/lib/business/Dialog/variants/style/css.js +1 -1
- package/lib/business/Dialog/variants/style/index.js +1 -1
- package/lib/business/FieldList/index.js +1 -1
- package/lib/business/FieldList/style/css.js +1 -1
- package/lib/business/FieldList/style/index.js +1 -1
- package/lib/business/Filter/Account/Account.js +1 -1
- package/lib/business/Filter/Account/index.js +1 -1
- package/lib/business/Filter/Account/interface.js +1 -1
- package/lib/business/Filter/Account/style/css.js +1 -1
- package/lib/business/Filter/Account/style/index.js +1 -1
- package/lib/business/Filter/Asset/Asset.js +1 -1
- package/lib/business/Filter/Asset/index.js +1 -1
- package/lib/business/Filter/Asset/interface.js +1 -1
- package/lib/business/Filter/Asset/style/css.js +1 -1
- package/lib/business/Filter/Asset/style/index.js +1 -1
- package/lib/business/Filter/DateRange/DateRange.js +1 -1
- package/lib/business/Filter/DateRange/index.js +1 -1
- package/lib/business/Filter/DateRange/interface.js +1 -1
- package/lib/business/Filter/DateRange/style/css.js +1 -1
- package/lib/business/Filter/DateRange/style/index.js +1 -1
- package/lib/business/Filter/Option/Option.js +1 -1
- package/lib/business/Filter/Option/index.js +1 -1
- package/lib/business/Filter/Option/interface.js +1 -1
- package/lib/business/Filter/Option/style/css.js +1 -1
- package/lib/business/Filter/Option/style/index.js +1 -1
- package/lib/business/Filter/index.js +1 -1
- package/lib/business/Form/PageForm/PageForm.js +1 -1
- package/lib/business/Form/PageForm/index.js +1 -1
- package/lib/business/Form/PageForm/interface.js +1 -1
- package/lib/business/Form/ResultForm/ResultForm.js +1 -1
- package/lib/business/Form/ResultForm/index.js +1 -1
- package/lib/business/Form/ResultForm/interface.js +1 -1
- package/lib/business/Form/index.js +1 -1
- package/lib/business/Form/variants/ExpiredForm.js +1 -1
- package/lib/business/Form/variants/FailureForm.js +1 -1
- package/lib/business/Form/variants/PendingForm.js +1 -1
- package/lib/business/Form/variants/SuccessForm.js +1 -1
- package/lib/business/Form/variants/index.js +1 -1
- package/lib/business/Select/Asset/AssetSelect.js +1 -1
- package/lib/business/Select/Asset/index.js +1 -1
- package/lib/business/Select/Asset/interface.js +1 -1
- package/lib/business/Select/Asset/style/css.js +1 -1
- package/lib/business/Select/Asset/style/index.js +1 -1
- package/lib/business/Select/Country/CountrySelect.js +1 -1
- package/lib/business/Select/Country/index.js +1 -1
- package/lib/business/Select/Country/interface.js +1 -1
- package/lib/business/Select/Currency/CurrencySelect.js +1 -1
- package/lib/business/Select/Currency/index.js +1 -1
- package/lib/business/Select/Currency/interface.js +1 -1
- package/lib/business/Select/Currency/style/css.js +1 -1
- package/lib/business/Select/Currency/style/index.js +1 -1
- package/lib/business/Select/Network/NetworkSelect.js +1 -1
- package/lib/business/Select/Network/index.js +1 -1
- package/lib/business/Select/Network/interface.js +1 -1
- package/lib/business/Select/Network/style/css.js +1 -1
- package/lib/business/Select/Network/style/index.js +1 -1
- package/lib/business/Select/PaymentMethod/PaymentMethodSelect.js +1 -1
- package/lib/business/Select/PaymentMethod/index.js +1 -1
- package/lib/business/Select/PaymentMethod/interface.js +1 -1
- package/lib/business/Select/PaymentMethod/style/css.js +1 -1
- package/lib/business/Select/PaymentMethod/style/index.js +1 -1
- package/lib/business/Select/index.js +1 -1
- package/lib/business/index.js +1 -1
- package/lib/business/shared/formCore/BaseProForm.js +1 -1
- package/lib/business/shared/formCore/useFormDomId.js +1 -1
- package/lib/business/shared/formCore/useRelayedFormRef.js +1 -1
- package/lib/business/shared/formCore/useSubmitAction.js +1 -1
- package/lib/components/Accordion/Accordion.js +1 -1
- package/lib/components/Accordion/constants.js +1 -1
- package/lib/components/Accordion/index.js +1 -1
- package/lib/components/Accordion/interface.js +1 -1
- package/lib/components/Accordion/style/css.js +1 -1
- package/lib/components/Accordion/style/index.js +1 -1
- package/lib/components/ActionBar/ActionBar.js +1 -1
- package/lib/components/ActionBar/constants.js +1 -1
- package/lib/components/ActionBar/index.js +1 -1
- package/lib/components/ActionBar/interface.js +1 -1
- package/lib/components/ActionBar/style/css.js +1 -1
- package/lib/components/ActionBar/style/index.js +1 -1
- package/lib/components/Alert/Alert.js +1 -1
- package/lib/components/Alert/index.js +1 -1
- package/lib/components/Alert/interface.js +1 -1
- package/lib/components/Alert/style/css.js +1 -1
- package/lib/components/Alert/style/index.js +1 -1
- package/lib/components/Button/Button.js +1 -1
- package/lib/components/Button/constants.js +1 -1
- package/lib/components/Button/index.js +1 -1
- package/lib/components/Button/interface.js +1 -1
- package/lib/components/Button/style/css.js +1 -1
- package/lib/components/Button/style/index.js +1 -1
- package/lib/components/Calendar/Calendar.js +1 -1
- package/lib/components/Calendar/constants.js +1 -1
- package/lib/components/Calendar/index.js +1 -1
- package/lib/components/Calendar/interface.js +1 -1
- package/lib/components/Calendar/style/css.js +1 -1
- package/lib/components/Calendar/style/index.js +1 -1
- package/lib/components/Carousel/Carousel.js +1 -1
- package/lib/components/Carousel/index.js +1 -1
- package/lib/components/Carousel/interface.js +1 -1
- package/lib/components/Carousel/style/css.js +1 -1
- package/lib/components/Carousel/style/index.js +1 -1
- package/lib/components/Cell/Cell.js +1 -1
- package/lib/components/Cell/index.js +1 -1
- package/lib/components/Cell/interface.js +1 -1
- package/lib/components/Cell/style/css.js +1 -1
- package/lib/components/Cell/style/index.js +1 -1
- package/lib/components/Checkbox/BaseCheckbox.js +1 -1
- package/lib/components/Checkbox/Checkbox.js +1 -1
- package/lib/components/Checkbox/CheckboxGroup.js +1 -1
- package/lib/components/Checkbox/CheckboxGroupContext.js +1 -1
- package/lib/components/Checkbox/constants.js +1 -1
- package/lib/components/Checkbox/index.js +1 -1
- package/lib/components/Checkbox/interface.js +1 -1
- package/lib/components/Checkbox/style/css.js +1 -1
- package/lib/components/Checkbox/style/index.js +1 -1
- package/lib/components/CoachMark/CoachMark.js +1 -1
- package/lib/components/CoachMark/index.js +1 -1
- package/lib/components/CoachMark/interface.js +1 -1
- package/lib/components/CoachMark/style/css.js +1 -1
- package/lib/components/CoachMark/style/index.js +1 -1
- package/lib/components/Copy/Clipboard.js +1 -1
- package/lib/components/Copy/Copy.js +1 -1
- package/lib/components/Copy/index.js +1 -1
- package/lib/components/Copy/interface.js +1 -1
- package/lib/components/Copy/style/css.js +1 -1
- package/lib/components/Copy/style/index.js +1 -1
- package/lib/components/Dialog/Dialog.js +1 -1
- package/lib/components/Dialog/DialogContent.js +1 -1
- package/lib/components/Dialog/DialogControls.js +1 -1
- package/lib/components/Dialog/className.js +1 -1
- package/lib/components/Dialog/constants.js +1 -1
- package/lib/components/Dialog/hooks.js +1 -1
- package/lib/components/Dialog/index.js +1 -1
- package/lib/components/Dialog/interface.js +1 -1
- package/lib/components/Dialog/style/css.js +1 -1
- package/lib/components/Dialog/style/index.js +1 -1
- package/lib/components/Dialog/types.js +1 -1
- package/lib/components/Divider/Divider.js +1 -1
- package/lib/components/Divider/constants.js +1 -1
- package/lib/components/Divider/index.js +1 -1
- package/lib/components/Divider/interface.js +1 -1
- package/lib/components/Divider/style/css.js +1 -1
- package/lib/components/Divider/style/index.js +1 -1
- package/lib/components/Drawer/Drawer.js +1 -1
- package/lib/components/Drawer/constants.js +1 -1
- package/lib/components/Drawer/hooks/index.js +1 -1
- package/lib/components/Drawer/hooks/useBodyScrollLock.js +1 -1
- package/lib/components/Drawer/hooks/useDialogFocus.js +1 -1
- package/lib/components/Drawer/hooks/useDrawerTransition.js +1 -1
- package/lib/components/Drawer/hooks/useEscapeClose.js +1 -1
- package/lib/components/Drawer/index.js +1 -1
- package/lib/components/Drawer/interface.js +1 -1
- package/lib/components/Drawer/style/css.js +1 -1
- package/lib/components/Drawer/style/index.js +1 -1
- package/lib/components/Dropdown/Dropdown.js +1 -1
- package/lib/components/Dropdown/index.js +1 -1
- package/lib/components/Dropdown/interface.js +1 -1
- package/lib/components/Dropdown/style/css.js +1 -1
- package/lib/components/Dropdown/style/index.js +1 -1
- package/lib/components/Empty/Empty.js +1 -1
- package/lib/components/Empty/index.js +1 -1
- package/lib/components/Empty/interface.js +1 -1
- package/lib/components/Empty/style/css.js +1 -1
- package/lib/components/Empty/style/index.js +1 -1
- package/lib/components/Filter/Filter.js +1 -1
- package/lib/components/Filter/index.js +1 -1
- package/lib/components/Filter/interface.js +1 -1
- package/lib/components/Filter/style/css.js +1 -1
- package/lib/components/Filter/style/index.js +1 -1
- package/lib/components/Flex/Flex.js +1 -1
- package/lib/components/Flex/constants.js +1 -1
- package/lib/components/Flex/index.js +1 -1
- package/lib/components/Flex/interface.js +1 -1
- package/lib/components/Flex/style/css.js +1 -1
- package/lib/components/Flex/style/index.js +1 -1
- package/lib/components/FormLayout/FormLayout.js +1 -1
- package/lib/components/FormLayout/config.js +1 -1
- package/lib/components/FormLayout/context.js +1 -1
- package/lib/components/FormLayout/index.js +1 -1
- package/lib/components/FormLayout/interface.js +1 -1
- package/lib/components/FormLayout/style/css.js +1 -1
- package/lib/components/FormLayout/style/index.js +1 -1
- package/lib/components/Grid/Col.js +1 -1
- package/lib/components/Grid/Grid.js +1 -1
- package/lib/components/Grid/Row.js +1 -1
- package/lib/components/Grid/constants.js +1 -1
- package/lib/components/Grid/helper.js +1 -1
- package/lib/components/Grid/index.js +1 -1
- package/lib/components/Grid/interface.js +1 -1
- package/lib/components/Grid/style/css.js +1 -1
- package/lib/components/Grid/style/index.js +1 -1
- package/lib/components/Icons/Icons.js +1 -1
- package/lib/components/Icons/Illustrations.js +1 -1
- package/lib/components/Icons/Logo.js +1 -1
- package/lib/components/Icons/SVGs.js +1 -1
- package/lib/components/Icons/Wrapper.js +1 -1
- package/lib/components/Icons/constants.js +1 -1
- package/lib/components/Icons/index.js +1 -1
- package/lib/components/Icons/interface.js +1 -1
- package/lib/components/Icons/style/css.js +1 -1
- package/lib/components/Icons/style/index.js +1 -1
- package/lib/components/Input/Amount/Amount.js +1 -1
- package/lib/components/Input/Amount/helper.js +1 -1
- package/lib/components/Input/Amount/index.js +1 -1
- package/lib/components/Input/Amount/style/css.js +1 -1
- package/lib/components/Input/Amount/style/index.js +1 -1
- package/lib/components/Input/FieldShell/FieldShell.js +1 -1
- package/lib/components/Input/FieldShell/index.js +1 -1
- package/lib/components/Input/Input/Input.js +1 -1
- package/lib/components/Input/Input/index.js +1 -1
- package/lib/components/Input/Mask/Mask.js +1 -1
- package/lib/components/Input/Mask/index.js +1 -1
- package/lib/components/Input/OTP/OTP.js +1 -1
- package/lib/components/Input/OTP/index.js +1 -1
- package/lib/components/Input/Password/Password.js +1 -1
- package/lib/components/Input/Password/index.js +1 -1
- package/lib/components/Input/Search/Search.js +1 -1
- package/lib/components/Input/Search/index.js +1 -1
- package/lib/components/Input/TextArea/TextArea.js +1 -1
- package/lib/components/Input/TextArea/index.js +1 -1
- package/lib/components/Input/Trade/Trade.js +1 -1
- package/lib/components/Input/Trade/index.js +1 -1
- package/lib/components/Input/constants.js +1 -1
- package/lib/components/Input/index.js +1 -1
- package/lib/components/Input/interface.js +1 -1
- package/lib/components/Input/style/css.js +1 -1
- package/lib/components/Input/style/index.js +1 -1
- package/lib/components/Input/useAmountInput.js +1 -1
- package/lib/components/Input/useSyncRef.js +1 -1
- package/lib/components/Link/Link.js +1 -1
- package/lib/components/Link/constants.js +1 -1
- package/lib/components/Link/index.js +1 -1
- package/lib/components/Link/interface.js +1 -1
- package/lib/components/Link/style/css.js +1 -1
- package/lib/components/Link/style/index.js +1 -1
- package/lib/components/Navigation/Nav.js +1 -1
- package/lib/components/Navigation/Navigation.js +1 -1
- package/lib/components/Navigation/NavigationLogo.js +1 -1
- package/lib/components/Navigation/NavigationStepper.js +1 -1
- package/lib/components/Navigation/index.js +1 -1
- package/lib/components/Navigation/interface.js +1 -1
- package/lib/components/Navigation/style/css.js +1 -1
- package/lib/components/Navigation/style/index.js +1 -1
- package/lib/components/Notification/Notification.js +1 -1
- package/lib/components/Notification/NotificationStatic.js +1 -1
- package/lib/components/Notification/constants.js +1 -1
- package/lib/components/Notification/index.js +1 -1
- package/lib/components/Notification/interface.js +1 -1
- package/lib/components/Notification/style/css.js +1 -1
- package/lib/components/Notification/style/index.js +1 -1
- package/lib/components/Pagination/Pagination.js +1 -1
- package/lib/components/Pagination/constants.js +1 -1
- package/lib/components/Pagination/index.js +1 -1
- package/lib/components/Pagination/interface.js +1 -1
- package/lib/components/Pagination/style/css.js +1 -1
- package/lib/components/Pagination/style/index.js +1 -1
- package/lib/components/Pagination/usePagination.js +1 -1
- package/lib/components/PanelLayout/PanelLayout.js +1 -1
- package/lib/components/PanelLayout/constants.js +1 -1
- package/lib/components/PanelLayout/index.js +1 -1
- package/lib/components/PanelLayout/interface.js +1 -1
- package/lib/components/PanelLayout/style/css.js +1 -1
- package/lib/components/PanelLayout/style/index.js +1 -1
- package/lib/components/Popconfirm/Popconfirm.js +1 -1
- package/lib/components/Popconfirm/constants.js +1 -1
- package/lib/components/Popconfirm/index.js +1 -1
- package/lib/components/Popconfirm/interface.js +1 -1
- package/lib/components/Popconfirm/style/css.js +1 -1
- package/lib/components/Popconfirm/style/index.js +1 -1
- package/lib/components/Portal/Portal.js +1 -1
- package/lib/components/Portal/index.js +1 -1
- package/lib/components/Portal/interface.js +1 -1
- package/lib/components/ProForm/ProForm.js +1 -1
- package/lib/components/ProForm/ProFormDependency.js +1 -1
- package/lib/components/ProForm/ProFormGroup.js +1 -1
- package/lib/components/ProForm/ProFormItem.js +1 -1
- package/lib/components/ProForm/ProFormList.js +1 -1
- package/lib/components/ProForm/SchemaForm.js +1 -1
- package/lib/components/ProForm/Submitter.js +1 -1
- package/lib/components/ProForm/constants.js +1 -1
- package/lib/components/ProForm/context.js +1 -1
- package/lib/components/ProForm/core/constants.js +1 -1
- package/lib/components/ProForm/core/devWarning.js +1 -1
- package/lib/components/ProForm/core/formStore.js +1 -1
- package/lib/components/ProForm/core/hooks/useForm.js +1 -1
- package/lib/components/ProForm/core/hooks/useFormCore.js +1 -1
- package/lib/components/ProForm/core/index.js +1 -1
- package/lib/components/ProForm/core/interface.js +1 -1
- package/lib/components/ProForm/core/namePathType.js +1 -1
- package/lib/components/ProForm/core/pathUtils.js +1 -1
- package/lib/components/ProForm/core/runRules.js +1 -1
- package/lib/components/ProForm/core/useFormItem.js +1 -1
- package/lib/components/ProForm/core/validationError.js +1 -1
- package/lib/components/ProForm/fields/ProFormCheckbox.js +1 -1
- package/lib/components/ProForm/fields/ProFormCheckboxGroup.js +1 -1
- package/lib/components/ProForm/fields/ProFormDatePicker.js +1 -1
- package/lib/components/ProForm/fields/ProFormFieldSet.js +1 -1
- package/lib/components/ProForm/fields/ProFormPassword.js +1 -1
- package/lib/components/ProForm/fields/ProFormRadioGroup.js +1 -1
- package/lib/components/ProForm/fields/ProFormSelect.js +1 -1
- package/lib/components/ProForm/fields/ProFormSlider.js +1 -1
- package/lib/components/ProForm/fields/ProFormSwitch.js +1 -1
- package/lib/components/ProForm/fields/ProFormText.js +1 -1
- package/lib/components/ProForm/fields/ProFormTextArea.js +1 -1
- package/lib/components/ProForm/fields/ProFormUpload.js +1 -1
- package/lib/components/ProForm/fields/createProFormField.js +1 -1
- package/lib/components/ProForm/fields/index.js +1 -1
- package/lib/components/ProForm/hooks/useFieldRequest.js +1 -1
- package/lib/components/ProForm/hooks/useUrlSync.js +1 -1
- package/lib/components/ProForm/index.js +1 -1
- package/lib/components/ProForm/interface.js +1 -1
- package/lib/components/ProForm/layouts/DialogForm.js +1 -1
- package/lib/components/ProForm/layouts/DrawerForm.js +1 -1
- package/lib/components/ProForm/layouts/QueryFilter.js +1 -1
- package/lib/components/ProForm/layouts/index.js +1 -1
- package/lib/components/ProForm/layouts/useOverlayForm.js +1 -1
- package/lib/components/ProForm/style/css.js +1 -1
- package/lib/components/ProForm/style/index.js +1 -1
- package/lib/components/ProForm/utils.js +1 -1
- package/lib/components/ProTable/ProTable.js +1 -1
- package/lib/components/ProTable/constants.js +1 -1
- package/lib/components/ProTable/core/genColumns.js +1 -1
- package/lib/components/ProTable/core/genSearchFields.js +1 -1
- package/lib/components/ProTable/core/useAwaitableReload.js +1 -1
- package/lib/components/ProTable/core/utils.js +1 -1
- package/lib/components/ProTable/index.js +1 -1
- package/lib/components/ProTable/interface.js +1 -1
- package/lib/components/ProTable/style/css.js +1 -1
- package/lib/components/ProTable/style/index.js +1 -1
- package/lib/components/ProTable/useFetchData.js +1 -1
- package/lib/components/Progress/Progress.js +1 -1
- package/lib/components/Progress/constants.js +1 -1
- package/lib/components/Progress/index.js +1 -1
- package/lib/components/Progress/interface.js +1 -1
- package/lib/components/Progress/style/css.js +1 -1
- package/lib/components/Progress/style/index.js +1 -1
- package/lib/components/Radio/BaseRadio.js +1 -1
- package/lib/components/Radio/Radio.js +1 -1
- package/lib/components/Radio/RadioGroup.js +1 -1
- package/lib/components/Radio/RadioGroupContext.js +1 -1
- package/lib/components/Radio/constants.js +1 -1
- package/lib/components/Radio/index.js +1 -1
- package/lib/components/Radio/interface.js +1 -1
- package/lib/components/Radio/style/css.js +1 -1
- package/lib/components/Radio/style/index.js +1 -1
- package/lib/components/ResizeObserver/Collection.js +1 -1
- package/lib/components/ResizeObserver/ResizeObserver.js +1 -1
- package/lib/components/ResizeObserver/SingleObserver/index.js +1 -1
- package/lib/components/ResizeObserver/index.js +1 -1
- package/lib/components/ResizeObserver/interface.js +1 -1
- package/lib/components/ResizeObserver/useResizeObserver.js +1 -1
- package/lib/components/ResizeObserver/utils/observerUtil.js +1 -1
- package/lib/components/ResizeObserver/utils/reactUtil.js +1 -1
- package/lib/components/Segment/Segment.js +1 -1
- package/lib/components/Segment/index.js +1 -1
- package/lib/components/Segment/interface.js +1 -1
- package/lib/components/Segment/style/css.js +1 -1
- package/lib/components/Segment/style/index.js +1 -1
- package/lib/components/Select/Select.js +1 -1
- package/lib/components/Select/SelectCustom.js +1 -1
- package/lib/components/Select/SelectFieldShell.js +1 -1
- package/lib/components/Select/SelectOptionContent.js +1 -1
- package/lib/components/Select/SelectSearchControl.js +1 -1
- package/lib/components/Select/SelectValueContent.js +1 -1
- package/lib/components/Select/constants.js +1 -1
- package/lib/components/Select/index.js +1 -1
- package/lib/components/Select/interface.js +1 -1
- package/lib/components/Select/style/css.js +1 -1
- package/lib/components/Select/style/index.js +1 -1
- package/lib/components/Select/useSelectShell.js +1 -1
- package/lib/components/Select/utils.js +1 -1
- package/lib/components/Skeleton/Skeleton.js +1 -1
- package/lib/components/Skeleton/index.js +1 -1
- package/lib/components/Skeleton/interface.js +1 -1
- package/lib/components/Skeleton/style/css.js +1 -1
- package/lib/components/Skeleton/style/index.js +1 -1
- package/lib/components/Slider/Slider.js +1 -1
- package/lib/components/Slider/index.js +1 -1
- package/lib/components/Slider/interface.js +1 -1
- package/lib/components/Slider/style/css.js +1 -1
- package/lib/components/Slider/style/index.js +1 -1
- package/lib/components/Space/Space.js +1 -1
- package/lib/components/Space/constants.js +1 -1
- package/lib/components/Space/index.js +1 -1
- package/lib/components/Space/interface.js +1 -1
- package/lib/components/Space/style/css.js +1 -1
- package/lib/components/Space/style/index.js +1 -1
- package/lib/components/Spinner/Spinner.js +1 -1
- package/lib/components/Spinner/index.js +1 -1
- package/lib/components/Spinner/interface.js +1 -1
- package/lib/components/Spinner/style/css.js +1 -1
- package/lib/components/Spinner/style/index.js +1 -1
- package/lib/components/Step/Step.js +1 -1
- package/lib/components/Step/constants.js +1 -1
- package/lib/components/Step/index.js +1 -1
- package/lib/components/Step/interface.js +1 -1
- package/lib/components/Step/style/css.js +1 -1
- package/lib/components/Step/style/index.js +1 -1
- package/lib/components/Switch/Switch.js +1 -1
- package/lib/components/Switch/constants.js +1 -1
- package/lib/components/Switch/index.js +1 -1
- package/lib/components/Switch/interface.js +1 -1
- package/lib/components/Switch/style/css.js +1 -1
- package/lib/components/Switch/style/index.js +1 -1
- package/lib/components/Table/Table.js +1 -1
- package/lib/components/Table/VirtualTable.js +1 -1
- package/lib/components/Table/constants.js +1 -1
- package/lib/components/Table/core/columnUtil.js +1 -1
- package/lib/components/Table/core/useTableColumns.js +1 -1
- package/lib/components/Table/core/useTableDataPipeline.js +1 -1
- package/lib/components/Table/core/useTableExpand.js +1 -1
- package/lib/components/Table/core/useTableSelection.js +1 -1
- package/lib/components/Table/core/useTableSetup.d.ts +7 -1
- package/lib/components/Table/core/useTableSetup.js +5 -3
- package/lib/components/Table/features/ExpandTrigger.js +1 -1
- package/lib/components/Table/features/FilterTrigger.js +1 -1
- package/lib/components/Table/features/SelectionColumn.js +1 -1
- package/lib/components/Table/features/SortTrigger.js +1 -1
- package/lib/components/Table/index.js +1 -1
- package/lib/components/Table/interface.js +1 -1
- package/lib/components/Table/internal/index.js +1 -1
- package/lib/components/Table/internal/kernel/Body/BodyRow.js +1 -1
- package/lib/components/Table/internal/kernel/Body/ExpandedRow.js +1 -1
- package/lib/components/Table/internal/kernel/Body/MeasureCell.js +1 -1
- package/lib/components/Table/internal/kernel/Body/MeasureRow.js +1 -1
- package/lib/components/Table/internal/kernel/Body/index.js +1 -1
- package/lib/components/Table/internal/kernel/Cell/index.js +1 -1
- package/lib/components/Table/internal/kernel/Cell/useCellRender.js +1 -1
- package/lib/components/Table/internal/kernel/Cell/useHoverState.js +1 -1
- package/lib/components/Table/internal/kernel/ColGroup.js +1 -1
- package/lib/components/Table/internal/kernel/FixedHolder/index.js +1 -1
- package/lib/components/Table/internal/kernel/Footer/Cell.js +1 -1
- package/lib/components/Table/internal/kernel/Footer/Row.js +1 -1
- package/lib/components/Table/internal/kernel/Footer/Summary.js +1 -1
- package/lib/components/Table/internal/kernel/Footer/SummaryContext.js +1 -1
- package/lib/components/Table/internal/kernel/Footer/index.js +1 -1
- package/lib/components/Table/internal/kernel/Header/Header.js +1 -1
- package/lib/components/Table/internal/kernel/Header/HeaderRow.js +1 -1
- package/lib/components/Table/internal/kernel/Panel/index.js +1 -1
- package/lib/components/Table/internal/kernel/Table.js +1 -1
- package/lib/components/Table/internal/kernel/VirtualTable/BodyGrid.js +1 -1
- package/lib/components/Table/internal/kernel/VirtualTable/BodyLine.js +1 -1
- package/lib/components/Table/internal/kernel/VirtualTable/VirtualCell.js +1 -1
- package/lib/components/Table/internal/kernel/VirtualTable/context.js +1 -1
- package/lib/components/Table/internal/kernel/VirtualTable/index.js +1 -1
- package/lib/components/Table/internal/kernel/constant.js +1 -1
- package/lib/components/Table/internal/kernel/context/PerfContext.js +1 -1
- package/lib/components/Table/internal/kernel/context/TableContext.js +1 -1
- package/lib/components/Table/internal/kernel/hooks/useColumns/index.js +1 -1
- package/lib/components/Table/internal/kernel/hooks/useColumns/useWidthColumns.js +1 -1
- package/lib/components/Table/internal/kernel/hooks/useExpand.js +1 -1
- package/lib/components/Table/internal/kernel/hooks/useFixedInfo.js +1 -1
- package/lib/components/Table/internal/kernel/hooks/useFlattenRecords.js +1 -1
- package/lib/components/Table/internal/kernel/hooks/useFrame.js +1 -1
- package/lib/components/Table/internal/kernel/hooks/useHover.js +1 -1
- package/lib/components/Table/internal/kernel/hooks/useRenderTimes.js +1 -1
- package/lib/components/Table/internal/kernel/hooks/useRowInfo.js +1 -1
- package/lib/components/Table/internal/kernel/hooks/useSticky.js +1 -1
- package/lib/components/Table/internal/kernel/hooks/useStickyOffsets.js +1 -1
- package/lib/components/Table/internal/kernel/index.js +1 -1
- package/lib/components/Table/internal/kernel/interface.js +1 -1
- package/lib/components/Table/internal/kernel/namePathType.js +1 -1
- package/lib/components/Table/internal/kernel/selector-context/Immutable.js +1 -1
- package/lib/components/Table/internal/kernel/selector-context/context.js +1 -1
- package/lib/components/Table/internal/kernel/selector-context/index.js +1 -1
- package/lib/components/Table/internal/kernel/selector-context/isEqual.js +1 -1
- package/lib/components/Table/internal/kernel/stickyScrollBar.js +1 -1
- package/lib/components/Table/internal/kernel/sugar/Column.js +1 -1
- package/lib/components/Table/internal/kernel/sugar/ColumnGroup.js +1 -1
- package/lib/components/Table/internal/kernel/utils/dom/canUseDom.js +1 -1
- package/lib/components/Table/internal/kernel/utils/dom/isVisible.js +1 -1
- package/lib/components/Table/internal/kernel/utils/expandUtil.js +1 -1
- package/lib/components/Table/internal/kernel/utils/fixUtil.js +1 -1
- package/lib/components/Table/internal/kernel/utils/get.js +1 -1
- package/lib/components/Table/internal/kernel/utils/getScrollBarSize.js +1 -1
- package/lib/components/Table/internal/kernel/utils/legacyUtil.js +1 -1
- package/lib/components/Table/internal/kernel/utils/offsetUtil.js +1 -1
- package/lib/components/Table/internal/kernel/utils/pickAttrs.js +1 -1
- package/lib/components/Table/internal/kernel/utils/useMemo.js +1 -1
- package/lib/components/Table/internal/kernel/utils/valueUtil.js +1 -1
- package/lib/components/Table/internal/kernel/utils/warning.js +1 -1
- package/lib/components/Table/renderers/BodyCell.js +1 -1
- package/lib/components/Table/renderers/CellContent.js +1 -1
- package/lib/components/Table/renderers/EmptyState.js +1 -1
- package/lib/components/Table/renderers/ExpandedRowContainer.js +1 -1
- package/lib/components/Table/renderers/HeaderCell.js +1 -1
- package/lib/components/Table/renderers/TableShell.js +1 -1
- package/lib/components/Table/style/css.js +1 -1
- package/lib/components/Table/style/index.js +1 -1
- package/lib/components/Tabs/Tabs.js +1 -1
- package/lib/components/Tabs/index.js +1 -1
- package/lib/components/Tabs/interface.js +1 -1
- package/lib/components/Tabs/style/css.js +1 -1
- package/lib/components/Tabs/style/index.js +1 -1
- package/lib/components/Tag/Tag.js +1 -1
- package/lib/components/Tag/constants.js +1 -1
- package/lib/components/Tag/index.js +1 -1
- package/lib/components/Tag/interface.js +1 -1
- package/lib/components/Tag/style/css.js +1 -1
- package/lib/components/Tag/style/index.js +1 -1
- package/lib/components/Tooltip/Tooltip.js +1 -1
- package/lib/components/Tooltip/index.js +1 -1
- package/lib/components/Tooltip/interface.js +1 -1
- package/lib/components/Tooltip/style/css.js +1 -1
- package/lib/components/Tooltip/style/index.js +1 -1
- package/lib/components/Tour/Tour.js +1 -1
- package/lib/components/Tour/index.js +1 -1
- package/lib/components/Tour/interface.js +1 -1
- package/lib/components/Trigger/Trigger.js +1 -1
- package/lib/components/Trigger/index.js +1 -1
- package/lib/components/Trigger/interface.js +1 -1
- package/lib/components/Trigger/style/css.js +1 -1
- package/lib/components/Trigger/style/index.js +1 -1
- package/lib/components/Typography/Typography.js +1 -1
- package/lib/components/Typography/constants.js +1 -1
- package/lib/components/Typography/index.js +1 -1
- package/lib/components/Typography/interface.js +1 -1
- package/lib/components/Typography/render.js +1 -1
- package/lib/components/Typography/style/css.js +1 -1
- package/lib/components/Typography/style/index.js +1 -1
- package/lib/components/Typography/useTypographyEnhancements.js +1 -1
- package/lib/components/Typography/utils.js +1 -1
- package/lib/components/Upload/Upload.js +1 -1
- package/lib/components/Upload/UploadFileBar.js +1 -1
- package/lib/components/Upload/index.js +1 -1
- package/lib/components/Upload/interface.js +1 -1
- package/lib/components/Upload/style/css.js +1 -1
- package/lib/components/Upload/style/index.js +1 -1
- package/lib/components/VirtualList/Filler.js +1 -1
- package/lib/components/VirtualList/Item.js +1 -1
- package/lib/components/VirtualList/ScrollBar.js +1 -1
- package/lib/components/VirtualList/VirtualList.js +27 -13
- package/lib/components/VirtualList/constants.js +1 -1
- package/lib/components/VirtualList/hooks/useChildren.js +1 -1
- package/lib/components/VirtualList/hooks/useDiffItem.js +1 -1
- package/lib/components/VirtualList/hooks/useFrameWheel.js +1 -1
- package/lib/components/VirtualList/hooks/useGetSize.js +1 -1
- package/lib/components/VirtualList/hooks/useHeights.js +1 -1
- package/lib/components/VirtualList/hooks/useMobileTouchMove.js +1 -1
- package/lib/components/VirtualList/hooks/useOriginScroll.js +1 -1
- package/lib/components/VirtualList/hooks/useScrollDrag.js +1 -1
- package/lib/components/VirtualList/hooks/useScrollTo.js +1 -1
- package/lib/components/VirtualList/index.js +1 -1
- package/lib/components/VirtualList/interface.js +1 -1
- package/lib/components/VirtualList/style/css.js +1 -1
- package/lib/components/VirtualList/style/index.js +1 -1
- package/lib/components/VirtualList/utils/CacheMap.js +1 -1
- package/lib/components/VirtualList/utils/algorithmUtil.js +1 -1
- package/lib/components/VirtualList/utils/isFirefox.js +1 -1
- package/lib/components/VirtualList/utils/raf.js +1 -1
- package/lib/components/VirtualList/utils/scrollbarUtil.js +1 -1
- package/lib/hooks/index.js +1 -1
- package/lib/hooks/useFloatingAnimation.js +1 -1
- package/lib/index.css +1 -1
- package/lib/index.js +1 -1
- package/lib/stories/docs/ComponentDocsPage.js +1 -1
- package/lib/stories/docs/componentDocMeta.js +1 -1
- package/lib/utils/classnames.js +1 -1
- package/lib/utils/clipboard.js +1 -1
- package/lib/utils/devWarn.js +1 -1
- package/lib/utils/ref.js +1 -1
- package/lib/utils/uuid.js +1 -1
- package/package.json +1 -1
|
@@ -233,4 +233,4 @@ var ScrollBar = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
233
233
|
});
|
|
234
234
|
ScrollBar.displayName = 'ScrollBar';
|
|
235
235
|
export default ScrollBar;
|
|
236
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvVmlydHVhbExpc3QvU2Nyb2xsQmFyLmpzIiwiY29tcG9uZW50cy9zcmMvY29tcG9uZW50cy9WaXJ0dWFsTGlzdC9TY3JvbGxCYXIudHN4Il0sIm5hbWVzIjpbImpzeCIsIl9qc3giLCJjbHN4IiwicmFmIiwiUmVhY3QiLCJnZXRQYWdlWFkiLCJWSVJUVUFMX0xJU1RfU0NST0xMQkFSX0NTU19WQVIiLCJWSVJUVUFMX0xJU1RfU0NST0xMQkFSX0RFRkFVTFRfQkciLCJTY3JvbGxCYXIiLCJmb3J3YXJkUmVmIiwicHJvcHMiLCJyZWYiLCJwcmVmaXhDbHMiLCJydGwiLCJzY3JvbGxPZmZzZXQiLCJzY3JvbGxSYW5nZSIsIm9uU3RhcnRNb3ZlIiwib25TdG9wTW92ZSIsIm9uU2Nyb2xsIiwiaG9yaXpvbnRhbCIsInNwaW5TaXplIiwiY29udGFpbmVyU2l6ZSIsInN0eWxlIiwicHJvcHNUaHVtYlN0eWxlIiwidGh1bWJTdHlsZSIsInNob3dTY3JvbGxCYXIiLCJfUmVhY3QkdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsIl9SZWFjdCR1c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsImRyYWdnaW5nIiwic2V0RHJhZ2dpbmciLCJfUmVhY3QkdXNlU3RhdGUzIiwiX1JlYWN0JHVzZVN0YXRlNCIsInBhZ2VYWSIsInNldFBhZ2VYWSIsIl9SZWFjdCR1c2VTdGF0ZTUiLCJfUmVhY3QkdXNlU3RhdGU2Iiwic3RhcnRUb3AiLCJzZXRTdGFydFRvcCIsImlzTFRSIiwic2Nyb2xsYmFyUmVmIiwidXNlUmVmIiwidGh1bWJSZWYiLCJvblN0YXJ0TW92ZVJlZiIsImN1cnJlbnQiLCJfUmVhY3QkdXNlU3RhdGU3IiwiX1JlYWN0JHVzZVN0YXRlOCIsInZpc2libGUiLCJzZXRWaXNpYmxlIiwidmlzaWJsZVRpbWVvdXRSZWYiLCJ1bmRlZmluZWQiLCJkZWxheUhpZGRlbiIsImNsZWFyVGltZW91dCIsInNldFRpbWVvdXQiLCJlbmFibGVTY3JvbGxSYW5nZSIsImVuYWJsZU9mZnNldFJhbmdlIiwidG9wIiwidXNlTWVtbyIsInB0ZyIsIm9uQ29udGFpbmVyTW91c2VEb3duIiwiZSIsInN0b3BQcm9wYWdhdGlvbiIsInByZXZlbnREZWZhdWx0Iiwic3RhdGVSZWYiLCJwYWdlWSIsIm9uVGh1bWJNb3VzZURvd24iLCJ1c2VFZmZlY3QiLCJvblNjcm9sbGJhclRvdWNoU3RhcnQiLCJzY3JvbGxiYXJFbGUiLCJ0aHVtYkVsZSIsImFkZEV2ZW50TGlzdGVuZXIiLCJwYXNzaXZlIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImVuYWJsZVNjcm9sbFJhbmdlUmVmIiwiZW5hYmxlT2Zmc2V0UmFuZ2VSZWYiLCJtb3ZlUmFmSWQiLCJvbk1vdXNlTW92ZSIsIl9zdGF0ZVJlZiRjdXJyZW50Iiwic3RhdGVEcmFnZ2luZyIsInN0YXRlUGFnZVkiLCJzdGF0ZVN0YXJ0VG9wIiwiY2FuY2VsIiwicmVjdCIsImdldEJvdW5kaW5nQ2xpZW50UmVjdCIsInNjYWxlIiwid2lkdGgiLCJoZWlnaHQiLCJvZmZzZXQiLCJuZXdUb3AiLCJ0bXBFbmFibGVTY3JvbGxSYW5nZSIsInRtcEVuYWJsZU9mZnNldFJhbmdlIiwibmV3U2Nyb2xsVG9wIiwiTWF0aCIsImNlaWwiLCJtYXgiLCJtaW4iLCJvbk1vdXNlVXAiLCJ3aW5kb3ciLCJ1c2VJbXBlcmF0aXZlSGFuZGxlIiwic2Nyb2xsYmFyUHJlZml4Q2xzIiwiY29uY2F0IiwiY29udGFpbmVyU3R5bGUiLCJwb3NpdGlvbiIsInZpc2liaWxpdHkiLCJib3JkZXJSYWRpdXMiLCJiYWNrZ3JvdW5kIiwiY3Vyc29yIiwidXNlclNlbGVjdCIsIk9iamVjdCIsImFzc2lnbiIsImxlZnQiLCJyaWdodCIsImJvdHRvbSIsIl9kZWZpbmVQcm9wZXJ0eSIsImNsYXNzTmFtZSIsIm9uTW91c2VEb3duIiwiY2hpbGRyZW4iLCJkaXNwbGF5TmFtZSJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxTQUFTQSxHQUFHLElBQUlDLElBQUksUUFBUSxtQkFBbUI7QUNBL0MsU0FBU0Ms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QUV4RCxvQkFBb0I7SUFDakNpQixXQUFXLEVBQUV6QixXQUFXO0lBQUFpRSxRQUFBLEVBRXhCcEgsSUFBQSxDQUFBLEtBQUEsRUFBQTtNQUNFVSxHQUFHLEVBQUVnQyxRQUFRO01BQ2J3RSxTQUFTLEVBQUVqSCxJQUFJLElBQUFtRyxNQUFBLENBQUlELGtCQUFrQixhQUFBYyxlQUFBLFFBQUFiLE1BQUEsQ0FDL0JELGtCQUFrQixvQkFBa0J0RSxRQUFRLENBQ2pELENBQUM7TUFDRlIsS0FBSyxFQUFBdUYsTUFBQSxDQUFBQyxNQUFBLENBQUFELE1BQUEsQ0FBQUMsTUFBQSxDQUFBLENBQUEsQ0FBQSxFQUFPdEYsVUFBVSxDQUFBLEVBQUtELGVBQWUsQ0FBQTtNQUMxQzZGLFdBQVcsRUFBRWxEO0lBQWdCLENBQUE7RUFDN0IsQ0FBQSxDQUNFO0FBRVYsQ0FBQyxDQUFDO0FBRUYxRCxTQUFTLENBQUM4RyxXQUFXLEdBQUcsV0FBVztBQUVuQyxlQUFlOUcsU0FBUyIsImZpbGUiOiJjb21wb25lbnRzL1ZpcnR1YWxMaXN0L1Njcm9sbEJhci5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGpzeCBhcyBfanN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBjbHN4IH0gZnJvbSAnY2xzeCc7XG5pbXBvcnQgcmFmIGZyb20gJy4vdXRpbHMvcmFmJztcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGdldFBhZ2VYWSB9IGZyb20gJy4vaG9va3MvdXNlU2Nyb2xsRHJhZyc7XG5pbXBvcnQgeyBWSVJUVUFMX0xJU1RfU0NST0xMQkFSX0NTU19WQVIsIFZJUlRVQUxfTElTVF9TQ1JPTExCQVJfREVGQVVMVF9CRywgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5jb25zdCBTY3JvbGxCYXIgPSBSZWFjdC5mb3J3YXJkUmVmKChwcm9wcywgcmVmKSA9PiB7XG4gICAgY29uc3QgeyBwcmVmaXhDbHMsIHJ0bCwgc2Nyb2xsT2Zmc2V0LCBzY3JvbGxSYW5nZSwgb25TdGFydE1vdmUsIG9uU3RvcE1vdmUsIG9uU2Nyb2xsLCBob3Jpem9udGFsLCBzcGluU2l6ZSwgY29udGFpbmVyU2l6ZSwgc3R5bGUsIHRodW1iU3R5bGU6IHByb3BzVGh1bWJTdHlsZSwgc2hvd1Njcm9sbEJhciwgfSA9IHByb3BzO1xuICAgIGNvbnN0IFtkcmFnZ2luZywgc2V0RHJhZ2dpbmddID0gUmVhY3QudXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IFtwYWdlWFksIHNldFBhZ2VYWV0gPSBSZWFjdC51c2VTdGF0ZShudWxsKTtcbiAgICBjb25zdCBbc3RhcnRUb3AsIHNldFN0YXJ0VG9wXSA9IFJlYWN0LnVzZVN0YXRlKG51bGwpO1xuICAgIGNvbnN0IGlzTFRSID0gIXJ0bDtcbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09IFJlZnMgPT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgIGNvbnN0IHNjcm9sbGJhclJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcbiAgICBjb25zdCB0aHVtYlJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcbiAgICBjb25zdCBvblN0YXJ0TW92ZVJlZiA9IFJlYWN0LnVzZVJlZihvblN0YXJ0TW92ZSk7XG4gICAgb25TdGFydE1vdmVSZWYuY3VycmVudCA9IG9uU3RhcnRNb3ZlO1xuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09IFZpc2libGUgPT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgY29uc3QgW3Zpc2libGUsIHNldFZpc2libGVdID0gUmVhY3QudXNlU3RhdGUoc2hvd1Njcm9sbEJhcik7XG4gICAgY29uc3QgdmlzaWJsZVRpbWVvdXRSZWYgPSBSZWFjdC51c2VSZWYodW5kZWZpbmVkKTtcbiAgICBjb25zdCBkZWxheUhpZGRlbiA9ICgpID0+IHtcbiAgICAgICAgaWYgKHNob3dTY3JvbGxCYXIgPT09IHRydWUgfHwgc2hvd1Njcm9sbEJhciA9PT0gZmFsc2UpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNsZWFyVGltZW91dCh2aXNpYmxlVGltZW91dFJlZi5jdXJyZW50KTtcbiAgICAgICAgc2V0VmlzaWJsZSh0cnVlKTtcbiAgICAgICAgdmlzaWJsZVRpbWVvdXRSZWYuY3VycmVudCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgc2V0VmlzaWJsZShmYWxzZSk7XG4gICAgICAgIH0sIDMwMDApO1xuICAgIH07XG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09IFJhbmdlID09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICBjb25zdCBlbmFibGVTY3JvbGxSYW5nZSA9IHNjcm9sbFJhbmdlIC0gY29udGFpbmVyU2l6ZSB8fCAwO1xuICAgIGNvbnN0IGVuYWJsZU9mZnNldFJhbmdlID0gY29udGFpbmVyU2l6ZSAtIHNwaW5TaXplIHx8IDA7XG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PSBUb3AgPT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICBjb25zdCB0b3AgPSBSZWFjdC51c2VNZW1vKCgpID0+IHtcbiAgICAgICAgaWYgKHNjcm9sbE9mZnNldCA9PT0gMCB8fCBlbmFibGVTY3JvbGxSYW5nZSA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcHRnID0gc2Nyb2xsT2Zmc2V0IC8gZW5hYmxlU2Nyb2xsUmFuZ2U7XG4gICAgICAgIHJldHVybiBwdGcgKiBlbmFibGVPZmZzZXRSYW5nZTtcbiAgICB9LCBbc2Nyb2xsT2Zmc2V0LCBlbmFibGVTY3JvbGxSYW5nZSwgZW5hYmxlT2Zmc2V0UmFuZ2VdKTtcbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09IENvbnRhaW5lciA9PT09PT09PT09PT09PT09PT09PT09PVxuICAgIGNvbnN0IG9uQ29udGFpbmVyTW91c2VEb3duID0gKGUpID0+IHtcbiAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH07XG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09IFRodW1iID09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICBjb25zdCBzdGF0ZVJlZiA9IFJlYWN0LnVzZVJlZih7IHRvcCwgZHJhZ2dpbmcsIHBhZ2VZOiBwYWdlWFksIHN0YXJ0VG9wIH0pO1xuICAgIHN0YXRlUmVmLmN1cnJlbnQgPSB7IHRvcCwgZHJhZ2dpbmcsIHBhZ2VZOiBwYWdlWFksIHN0YXJ0VG9wIH07XG4gICAgY29uc3Qgb25UaHVtYk1vdXNlRG93biA9IChlKSA9PiB7XG4gICAgICAgIHNldERyYWdnaW5nKHRydWUpO1xuICAgICAgICBzZXRQYWdlWFkoZ2V0UGFnZVhZKGUsIGhvcml6b250YWwpKTtcbiAgICAgICAgc2V0U3RhcnRUb3Aoc3RhdGVSZWYuY3VycmVudC50b3ApO1xuICAgICAgICBvblN0YXJ0TW92ZVJlZi5jdXJyZW50KCk7XG4gICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICB9O1xuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PSBFZmZlY3QgPT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgLy8gUmVhY3QgbWFrZSBldmVudCBhcyBwYXNzaXZlLCBidXQgd2UgbmVlZCB0byBwcmV2ZW50RGVmYXVsdFxuICAgIC8vIEFkZCBldmVudCBvbiBkb20gZGlyZWN0bHkgaW5zdGVhZC5cbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBjb25zdCBvblNjcm9sbGJhclRvdWNoU3RhcnQgPSAoZSkgPT4ge1xuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9O1xuICAgICAgICBjb25zdCBzY3JvbGxiYXJFbGUgPSBzY3JvbGxiYXJSZWYuY3VycmVudDtcbiAgICAgICAgY29uc3QgdGh1bWJFbGUgPSB0aHVtYlJlZi5jdXJyZW50O1xuICAgICAgICBzY3JvbGxiYXJFbGUuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcsIG9uU2Nyb2xsYmFyVG91Y2hTdGFydCwgeyBwYXNzaXZlOiBmYWxzZSB9KTtcbiAgICAgICAgdGh1bWJFbGUuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcsIG9uVGh1bWJNb3VzZURvd24sIHsgcGFzc2l2ZTogZmFsc2UgfSk7XG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICBzY3JvbGxiYXJFbGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcsIG9uU2Nyb2xsYmFyVG91Y2hTdGFydCk7XG4gICAgICAgICAgICB0aHVtYkVsZS5yZW1vdmVFdmVudExpc3RlbmVyKCd0b3VjaHN0YXJ0Jywgb25UaHVtYk1vdXNlRG93bik7XG4gICAgICAgIH07XG4gICAgfSwgW10pO1xuICAgIC8vIFBhc3MgdG8gZWZmZWN0XG4gICAgY29uc3QgZW5hYmxlU2Nyb2xsUmFuZ2VSZWYgPSBSZWFjdC51c2VSZWYobnVsbCk7XG4gICAgZW5hYmxlU2Nyb2xsUmFuZ2VSZWYuY3VycmVudCA9IGVuYWJsZVNjcm9sbFJhbmdlO1xuICAgIGNvbnN0IGVuYWJsZU9mZnNldFJhbmdlUmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICAgIGVuYWJsZU9mZnNldFJhbmdlUmVmLmN1cnJlbnQgPSBlbmFibGVPZmZzZXRSYW5nZTtcbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoZHJhZ2dpbmcpIHtcbiAgICAgICAgICAgIGxldCBtb3ZlUmFmSWQ7XG4gICAgICAgICAgICBjb25zdCBvbk1vdXNlTW92ZSA9IChlKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBkcmFnZ2luZzogc3RhdGVEcmFnZ2luZywgcGFnZVk6IHN0YXRlUGFnZVksIHN0YXJ0VG9wOiBzdGF0ZVN0YXJ0VG9wLCB9ID0gc3RhdGVSZWYuY3VycmVudDtcbiAgICAgICAgICAgICAgICByYWYuY2FuY2VsKG1vdmVSYWZJZCk7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVjdCA9IHNjcm9sbGJhclJlZi5jdXJyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHNjYWxlID0gY29udGFpbmVyU2l6ZSAvIChob3Jpem9udGFsID8gcmVjdC53aWR0aCA6IHJlY3QuaGVpZ2h0KTtcbiAgICAgICAgICAgICAgICBpZiAoc3RhdGVEcmFnZ2luZykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBvZmZzZXQgPSAoZ2V0UGFnZVhZKGUsIGhvcml6b250YWwpIC0gc3RhdGVQYWdlWSkgKiBzY2FsZTtcbiAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1RvcCA9IHN0YXRlU3RhcnRUb3A7XG4gICAgICAgICAgICAgICAgICAgIGlmICghaXNMVFIgJiYgaG9yaXpvbnRhbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmV3VG9wIC09IG9mZnNldDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ld1RvcCArPSBvZmZzZXQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdG1wRW5hYmxlU2Nyb2xsUmFuZ2UgPSBlbmFibGVTY3JvbGxSYW5nZVJlZi5jdXJyZW50O1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0bXBFbmFibGVPZmZzZXRSYW5nZSA9IGVuYWJsZU9mZnNldFJhbmdlUmVmLmN1cnJlbnQ7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHB0ZyA9IHRtcEVuYWJsZU9mZnNldFJhbmdlID8gbmV3VG9wIC8gdG1wRW5hYmxlT2Zmc2V0UmFuZ2UgOiAwO1xuICAgICAgICAgICAgICAgICAgICBsZXQgbmV3U2Nyb2xsVG9wID0gTWF0aC5jZWlsKHB0ZyAqIHRtcEVuYWJsZVNjcm9sbFJhbmdlKTtcbiAgICAgICAgICAgICAgICAgICAgbmV3U2Nyb2xsVG9wID0gTWF0aC5tYXgobmV3U2Nyb2xsVG9wLCAwKTtcbiAgICAgICAgICAgICAgICAgICAgbmV3U2Nyb2xsVG9wID0gTWF0aC5taW4obmV3U2Nyb2xsVG9wLCB0bXBFbmFibGVTY3JvbGxSYW5nZSk7XG4gICAgICAgICAgICAgICAgICAgIG1vdmVSYWZJZCA9IHJhZigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvblNjcm9sbChuZXdTY3JvbGxUb3AsIGhvcml6b250YWwpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgY29uc3Qgb25Nb3VzZVVwID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgIHNldERyYWdnaW5nKGZhbHNlKTtcbiAgICAgICAgICAgICAgICBvblN0b3BNb3ZlKCk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIG9uTW91c2VNb3ZlLCB7IHBhc3NpdmU6IHRydWUgfSk7XG4gICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2htb3ZlJywgb25Nb3VzZU1vdmUsIHsgcGFzc2l2ZTogdHJ1ZSB9KTtcbiAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgb25Nb3VzZVVwLCB7IHBhc3NpdmU6IHRydWUgfSk7XG4gICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hlbmQnLCBvbk1vdXNlVXAsIHsgcGFzc2l2ZTogdHJ1ZSB9KTtcbiAgICAgICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIG9uTW91c2VNb3ZlKTtcbiAgICAgICAgICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigndG91Y2htb3ZlJywgb25Nb3VzZU1vdmUpO1xuICAgICAgICAgICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgb25Nb3VzZVVwKTtcbiAgICAgICAgICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigndG91Y2hlbmQnLCBvbk1vdXNlVXApO1xuICAgICAgICAgICAgICAgIHJhZi5jYW5jZWwobW92ZVJhZklkKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9LCBbZHJhZ2dpbmddKTtcbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBkZWxheUhpZGRlbigpO1xuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHZpc2libGVUaW1lb3V0UmVmLmN1cnJlbnQpO1xuICAgICAgICB9O1xuICAgIH0sIFtzY3JvbGxPZmZzZXRdKTtcbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09IEltcGVyYXRpdmUgPT09PT09PT09PT09PT09PT09PT09PVxuICAgIFJlYWN0LnVzZUltcGVyYXRpdmVIYW5kbGUocmVmLCAoKSA9PiAoe1xuICAgICAgICBkZWxheUhpZGRlbixcbiAgICB9KSk7XG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09IFJlbmRlciA9PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICBjb25zdCBzY3JvbGxiYXJQcmVmaXhDbHMgPSBgJHtwcmVmaXhDbHN9LXNjcm9sbGJhcmA7XG4gICAgY29uc3QgY29udGFpbmVyU3R5bGUgPSB7XG4gICAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlID8gdW5kZWZpbmVkIDogJ2hpZGRlbicsXG4gICAgfTtcbiAgICBjb25zdCB0aHVtYlN0eWxlID0ge1xuICAgICAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICAgICAgYm9yZGVyUmFkaXVzOiA5OSxcbiAgICAgICAgYmFja2dyb3VuZDogYHZhcigke1ZJUlRVQUxfTElTVF9TQ1JPTExCQVJfQ1NTX1ZBUn0sICR7VklSVFVBTF9MSVNUX1NDUk9MTEJBUl9ERUZBVUxUX0JHfSlgLFxuICAgICAgICBjdXJzb3I6ICdwb2ludGVyJyxcbiAgICAgICAgdXNlclNlbGVjdDogJ25vbmUnLFxuICAgIH07XG4gICAgaWYgKGhvcml6b250YWwpIHtcbiAgICAgICAgT2JqZWN0LmFzc2lnbihjb250YWluZXJTdHlsZSwge1xuICAgICAgICAgICAgaGVpZ2h0OiA4LFxuICAgICAgICAgICAgbGVmdDogMCxcbiAgICAgICAgICAgIHJpZ2h0OiAwLFxuICAgICAgICAgICAgYm90dG9tOiAwLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aHVtYlN0eWxlLCB7XG4gICAgICAgICAgICBoZWlnaHQ6ICcxMDAlJyxcbiAgICAgICAgICAgIHdpZHRoOiBzcGluU2l6ZSxcbiAgICAgICAgICAgIFtpc0xUUiA/ICdsZWZ0JyA6ICdyaWdodCddOiB0b3AsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgT2JqZWN0LmFzc2lnbihjb250YWluZXJTdHlsZSwge1xuICAgICAgICAgICAgd2lkdGg6IDgsXG4gICAgICAgICAgICB0b3A6IDAsXG4gICAgICAgICAgICBib3R0b206IDAsXG4gICAgICAgICAgICBbaXNMVFIgPyAncmlnaHQnIDogJ2xlZnQnXTogMCxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGh1bWJTdHlsZSwge1xuICAgICAgICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgICAgICAgIGhlaWdodDogc3BpblNpemUsXG4gICAgICAgICAgICB0b3AsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gKF9qc3goXCJkaXZcIiwgeyByZWY6IHNjcm9sbGJhclJlZiwgY2xhc3NOYW1lOiBjbHN4KHNjcm9sbGJhclByZWZpeENscywge1xuICAgICAgICAgICAgW2Ake3Njcm9sbGJhclByZWZpeENsc30taG9yaXpvbnRhbGBdOiBob3Jpem9udGFsLFxuICAgICAgICAgICAgW2Ake3Njcm9sbGJhclByZWZpeENsc30tdmVydGljYWxgXTogIWhvcml6b250YWwsXG4gICAgICAgICAgICBbYCR7c2Nyb2xsYmFyUHJlZml4Q2xzfS12aXNpYmxlYF06IHZpc2libGUsXG4gICAgICAgIH0pLCBzdHlsZTogT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBjb250YWluZXJTdHlsZSksIHN0eWxlKSwgb25Nb3VzZURvd246IG9uQ29udGFpbmVyTW91c2VEb3duLCBvbk1vdXNlTW92ZTogZGVsYXlIaWRkZW4sIGNoaWxkcmVuOiBfanN4KFwiZGl2XCIsIHsgcmVmOiB0aHVtYlJlZiwgY2xhc3NOYW1lOiBjbHN4KGAke3Njcm9sbGJhclByZWZpeENsc30tdGh1bWJgLCB7XG4gICAgICAgICAgICAgICAgW2Ake3Njcm9sbGJhclByZWZpeENsc30tdGh1bWItbW92aW5nYF06IGRyYWdnaW5nLFxuICAgICAgICAgICAgfSksIHN0eWxlOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHRodW1iU3R5bGUpLCBwcm9wc1RodW1iU3R5bGUpLCBvbk1vdXNlRG93bjogb25UaHVtYk1vdXNlRG93biB9KSB9KSk7XG59KTtcblNjcm9sbEJhci5kaXNwbGF5TmFtZSA9ICdTY3JvbGxCYXInO1xuZXhwb3J0IGRlZmF1bHQgU2Nyb2xsQmFyOyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
|
|
236
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvVmlydHVhbExpc3QvU2Nyb2xsQmFyLmpzIiwiY29tcG9uZW50cy9zcmMvY29tcG9uZW50cy9WaXJ0dWFsTGlzdC9TY3JvbGxCYXIudHN4Il0sIm5hbWVzIjpbImpzeCIsIl9qc3giLCJjbHN4IiwicmFmIiwiUmVhY3QiLCJnZXRQYWdlWFkiLCJWSVJUVUFMX0xJU1RfU0NST0xMQkFSX0NTU19WQVIiLCJWSVJUVUFMX0xJU1RfU0NST0xMQkFSX0RFRkFVTFRfQkciLCJTY3JvbGxCYXIiLCJmb3J3YXJkUmVmIiwicHJvcHMiLCJyZWYiLCJwcmVmaXhDbHMiLCJydGwiLCJzY3JvbGxPZmZzZXQiLCJzY3JvbGxSYW5nZSIsIm9uU3RhcnRNb3ZlIiwib25TdG9wTW92ZSIsIm9uU2Nyb2xsIiwiaG9yaXpvbnRhbCIsInNwaW5TaXplIiwiY29udGFpbmVyU2l6ZSIsInN0eWxlIiwicHJvcHNUaHVtYlN0eWxlIiwidGh1bWJTdHlsZSIsInNob3dTY3JvbGxCYXIiLCJfUmVhY3QkdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsIl9SZWFjdCR1c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsImRyYWdnaW5nIiwic2V0RHJhZ2dpbmciLCJfUmVhY3QkdXNlU3RhdGUzIiwiX1JlYWN0JHVzZVN0YXRlNCIsInBhZ2VYWSIsInNldFBhZ2VYWSIsIl9SZWFjdCR1c2VTdGF0ZTUiLCJfUmVhY3QkdXNlU3RhdGU2Iiwic3RhcnRUb3AiLCJzZXRTdGFydFRvcCIsImlzTFRSIiwic2Nyb2xsYmFyUmVmIiwidXNlUmVmIiwidGh1bWJSZWYiLCJvblN0YXJ0TW92ZVJlZiIsImN1cnJlbnQiLCJfUmVhY3QkdXNlU3RhdGU3IiwiX1JlYWN0JHVzZVN0YXRlOCIsInZpc2libGUiLCJzZXRWaXNpYmxlIiwidmlzaWJsZVRpbWVvdXRSZWYiLCJ1bmRlZmluZWQiLCJkZWxheUhpZGRlbiIsImNsZWFyVGltZW91dCIsInNldFRpbWVvdXQiLCJlbmFibGVTY3JvbGxSYW5nZSIsImVuYWJsZU9mZnNldFJhbmdlIiwidG9wIiwidXNlTWVtbyIsInB0ZyIsIm9uQ29udGFpbmVyTW91c2VEb3duIiwiZSIsInN0b3BQcm9wYWdhdGlvbiIsInByZXZlbnREZWZhdWx0Iiwic3RhdGVSZWYiLCJwYWdlWSIsIm9uVGh1bWJNb3VzZURvd24iLCJ1c2VFZmZlY3QiLCJvblNjcm9sbGJhclRvdWNoU3RhcnQiLCJzY3JvbGxiYXJFbGUiLCJ0aHVtYkVsZSIsImFkZEV2ZW50TGlzdGVuZXIiLCJwYXNzaXZlIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImVuYWJsZVNjcm9sbFJhbmdlUmVmIiwiZW5hYmxlT2Zmc2V0UmFuZ2VSZWYiLCJtb3ZlUmFmSWQiLCJvbk1vdXNlTW92ZSIsIl9zdGF0ZVJlZiRjdXJyZW50Iiwic3RhdGVEcmFnZ2luZyIsInN0YXRlUGFnZVkiLCJzdGF0ZVN0YXJ0VG9wIiwiY2FuY2VsIiwicmVjdCIsImdldEJvdW5kaW5nQ2xpZW50UmVjdCIsInNjYWxlIiwid2lkdGgiLCJoZWlnaHQiLCJvZmZzZXQiLCJuZXdUb3AiLCJ0bXBFbmFibGVTY3JvbGxSYW5nZSIsInRtcEVuYWJsZU9mZnNldFJhbmdlIiwibmV3U2Nyb2xsVG9wIiwiTWF0aCIsImNlaWwiLCJtYXgiLCJtaW4iLCJvbk1vdXNlVXAiLCJ3aW5kb3ciLCJ1c2VJbXBlcmF0aXZlSGFuZGxlIiwic2Nyb2xsYmFyUHJlZml4Q2xzIiwiY29uY2F0IiwiY29udGFpbmVyU3R5bGUiLCJwb3NpdGlvbiIsInZpc2liaWxpdHkiLCJib3JkZXJSYWRpdXMiLCJiYWNrZ3JvdW5kIiwiY3Vyc29yIiwidXNlclNlbGVjdCIsIk9iamVjdCIsImFzc2lnbiIsImxlZnQiLCJyaWdodCIsImJvdHRvbSIsIl9kZWZpbmVQcm9wZXJ0eSIsImNsYXNzTmFtZSIsIm9uTW91c2VEb3duIiwiY2hpbGRyZW4iLCJkaXNwbGF5TmFtZSJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxTQUFTQSxHQUFHLElBQUlDLElBQUksUUFBUSxtQkFBbUI7QUNBL0MsU0FBU0MsSUFBSSxRQUFRLE1BQU07QUFDM0IsT0FBT0MsR0FBRyxNQUFNLGFBQWE7QUFDN0IsT0FBTyxLQUFLQyxLQUFLLE1BQU0sT0FBTztBQUM5QixTQUFTQyxTQUFTLFFBQVEsdUJBQXVCO0FBQ2pELFNBQ0VDLDhCQUE4QixFQUM5QkMsaUNBQWlDLFFBQzVCLGFBQWE7QUF3QnBCLElBQU1DLFNBQVMsZ0JBQUdKLEtBQUssQ0FBQ0ssVUFBVSxDQUErQixVQUFDQyxLQUFLLEVBQUVDLEdBQUcsRUFBSTtFQUM5RSxJQUNFQyxTQUFTLEdBYVBGLEtBQUssQ0FiUEUsU0FBUztJQUNUQyxHQUFHLEdBWURILEtBQUssQ0FaUEcsR0FBRztJQUNIQyxZQUFZLEdBV1ZKLEtBQUssQ0FYUEksWUFBWTtJQUNaQyxXQUFXLEdBVVRMLEtBQUssQ0FWUEssV0FBVztJQUNYQyxXQUFXLEdBU1ROLEtBQUssQ0FUUE0sV0FBVztJQUNYQyxVQUFVLEdBUVJQLEtBQUssQ0FSUE8sVUFBVTtJQUNWQyxRQUFRLEdBT05SLEtBQUssQ0FQUFEsUUFBUTtJQUNSQyxVQUFVLEdBTVJULEtBQUssQ0FOUFMsVUFBVTtJQUNWQyxRQUFRLEdBS05WLEtBQUssQ0FMUFUsUUFBUTtJQUNSQyxhQUFhLEdBSVhYLEtBQUssQ0FKUFcsYUFBYTtJQUNiQyxLQUFLLEdBR0haLEtBQUssQ0FIUFksS0FBSztJQUNPQyxlQUFlLEdBRXpCYixLQUFLLENBRlBjLFVBQVU7SUFDVkMsYUFBYSxHQUNYZixLQUFLLENBRFBlLGFBQWE7RUFHZixJQUFBQyxlQUFBLEdBQWdDdEIsS0FBSyxDQUFDdUIsUUFBUSxDQUFDLEtBQUssQ0FBQztJQUFBQyxnQkFBQSxHQUFBQyxjQUFBLENBQUFILGVBQUE7SUFBOUNJLFFBQVEsR0FBQUYsZ0JBQUE7SUFBRUcsV0FBVyxHQUFBSCxnQkFBQTtFQUM1QixJQUFBSSxnQkFBQSxHQUE0QjVCLEtBQUssQ0FBQ3VCLFFBQVEsQ0FBZ0IsSUFBSSxDQUFDO0lBQUFNLGdCQUFBLEdBQUFKLGNBQUEsQ0FBQUcsZ0JBQUE7SUFBeERFLE1BQU0sR0FBQUQsZ0JBQUE7SUFBRUUsU0FBUyxHQUFBRixnQkFBQTtFQUN4QixJQUFBRyxnQkFBQSxHQUFnQ2hDLEtBQUssQ0FBQ3VCLFFBQVEsQ0FBZ0IsSUFBSSxDQUFDO0lBQUFVLGdCQUFBLEdBQUFSLGNBQUEsQ0FBQU8sZ0JBQUE7SUFBNURFLFFBQVEsR0FBQUQsZ0JBQUE7SUFBRUUsV0FBVyxHQUFBRixnQkFBQTtFQUU1QixJQUFNRyxLQUFLLEdBQUcsQ0FBQzNCLEdBQUc7RUFFbEI7RUFDQSxJQUFNNEIsWUFBWSxHQUFHckMsS0FBSyxDQUFDc0MsTUFBTSxDQUFpQixJQUFJLENBQUM7RUFDdkQsSUFBTUMsUUFBUSxHQUFHdkMsS0FBSyxDQUFDc0MsTUFBTSxDQUFpQixJQUFJLENBQUM7RUFDbkQsSUFBTUUsY0FBYyxHQUFHeEMsS0FBSyxDQUFDc0MsTUFBTSxDQUFDMUIsV0FBVyxDQUFDO0VBQ2hENEIsY0FBYyxDQUFDQyxPQUFPLEdBQUc3QixXQUFXO0VBRXBDO0VBQ0EsSUFBQThCLGdCQUFBLEdBQThCMUMsS0FBSyxDQUFDdUIsUUFBUSxDQUFDRixhQUFhLENBQUM7SUFBQXNCLGdCQUFBLEdBQUFsQixjQUFBLENBQUFpQixnQkFBQTtJQUFwREUsT0FBTyxHQUFBRCxnQkFBQTtJQUFFRSxVQUFVLEdBQUFGLGdCQUFBO0VBQzFCLElBQU1HLGlCQUFpQixHQUFHOUMsS0FBSyxDQUFDc0MsTUFBTSxDQUFnQ1MsU0FBUyxDQUFDO0VBRWhGLElBQU1DLFdBQVcsR0FBRyxTQUFkQSxXQUFXQSxDQUFBLEVBQVE7SUFDdkIsSUFBSTNCLGFBQWEsS0FBSyxJQUFJLElBQUlBLGFBQWEsS0FBSyxLQUFLLEVBQUU7SUFDdkQ0QixZQUFZLENBQUNILGlCQUFpQixDQUFDTCxPQUFPLENBQUM7SUFDdkNJLFVBQVUsQ0FBQyxJQUFJLENBQUM7SUFDaEJDLGlCQUFpQixDQUFDTCxPQUFPLEdBQUdTLFVBQVUsQ0FBQyxZQUFLO01BQzFDTCxVQUFVLENBQUMsS0FBSyxDQUFDO0lBQ25CLENBQUMsRUFBRSxJQUFJLENBQUM7RUFDVixDQUFDO0VBRUQ7RUFDQSxJQUFNTSxpQkFBaUIsR0FBR3hDLFdBQVcsR0FBR00sYUFBYSxJQUFJLENBQUM7RUFDMUQsSUFBTW1DLGlCQUFpQixHQUFHbkMsYUFBYSxHQUFHRCxRQUFRLElBQUksQ0FBQztFQUV2RDtFQUNBLElBQU1xQyxHQUFHLEdBQUdyRCxLQUFLLENBQUNzRCxPQUFPLENBQUMsWUFBSztJQUM3QixJQUFJNUMsWUFBWSxLQUFLLENBQUMsSUFBSXlDLGlCQUFpQixLQUFLLENBQUMsRUFBRTtNQUNqRCxPQUFPLENBQUM7SUFDVjtJQUNBLElBQU1JLEdBQUcsR0FBRzdDLFlBQVksR0FBR3lDLGlCQUFpQjtJQUM1QyxPQUFPSSxHQUFHLEdBQUdILGlCQUFpQjtFQUNoQyxDQUFDLEVBQUUsQ0FBQzFDLFlBQVksRUFBRXlDLGlCQUFpQixFQUFFQyxpQkFBaUIsQ0FBQyxDQUFDO0VBRXhEO0VBQ0EsSUFBTUksb0JBQW9CLEdBQTRCLFNBQWhEQSxvQkFBb0JBLENBQTZCQyxDQUFDLEVBQUk7SUFDMURBLENBQUMsQ0FBQ0MsZUFBZSxDQUFBLENBQUU7SUFDbkJELENBQUMsQ0FBQ0UsY0FBYyxDQUFBLENBQUU7RUFDcEIsQ0FBQztFQUVEO0VBQ0EsSUFBTUMsUUFBUSxHQUFHNUQsS0FBSyxDQUFDc0MsTUFBTSxDQUFDO0lBQUVlLEdBQUcsRUFBSEEsR0FBRztJQUFFM0IsUUFBUSxFQUFSQSxRQUFRO0lBQUVtQyxLQUFLLEVBQUUvQixNQUFNO0lBQUVJLFFBQVEsRUFBUkE7RUFBUSxDQUFFLENBQUM7RUFDekUwQixRQUFRLENBQUNuQixPQUFPLEdBQUc7SUFBRVksR0FBRyxFQUFIQSxHQUFHO0lBQUUzQixRQUFRLEVBQVJBLFFBQVE7SUFBRW1DLEtBQUssRUFBRS9CLE1BQU07SUFBRUksUUFBUSxFQUFSQTtFQUFRLENBQUU7RUFFN0QsSUFBTTRCLGdCQUFnQixHQUFHLFNBQW5CQSxnQkFBZ0JBLENBQUlMLENBQW1ELEVBQUk7SUFDL0U5QixXQUFXLENBQUMsSUFBSSxDQUFDO0lBQ2pCSSxTQUFTLENBQUM5QixTQUFTLENBQUN3RCxDQUFDLEVBQUUxQyxVQUFXLENBQUMsQ0FBQztJQUNwQ29CLFdBQVcsQ0FBQ3lCLFFBQVEsQ0FBQ25CLE9BQU8sQ0FBQ1ksR0FBRyxDQUFDO0lBRWpDYixjQUFjLENBQUNDLE9BQU8sQ0FBQSxDQUFFO0lBQ3hCZ0IsQ0FBQyxDQUFDQyxlQUFlLENBQUEsQ0FBRTtJQUNuQkQsQ0FBQyxDQUFDRSxjQUFjLENBQUEsQ0FBRTtFQUNwQixDQUFDO0VBRUQ7RUFFQTtFQUNBO0VBQ0EzRCxLQUFLLENBQUMrRCxTQUFTLENBQUMsWUFBSztJQUNuQixJQUFNQyxxQkFBcUIsR0FBRyxTQUF4QkEscUJBQXFCQSxDQUFJUCxDQUFhLEVBQUk7TUFDOUNBLENBQUMsQ0FBQ0UsY0FBYyxDQUFBLENBQUU7SUFDcEIsQ0FBQztJQUVELElBQU1NLFlBQVksR0FBRzVCLFlBQVksQ0FBQ0ksT0FBUTtJQUMxQyxJQUFNeUIsUUFBUSxHQUFHM0IsUUFBUSxDQUFDRSxPQUFRO0lBQ2xDd0IsWUFBWSxDQUFDRSxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUVILHFCQUFxQixFQUFFO01BQUVJLE9BQU8sRUFBRTtJQUFLLENBQUUsQ0FBQztJQUN0RkYsUUFBUSxDQUFDQyxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUVMLGdCQUFnQixFQUFFO01BQUVNLE9BQU8sRUFBRTtJQUFLLENBQUUsQ0FBQztJQUU3RSxPQUFPLFlBQUs7TUFDVkgsWUFBWSxDQUFDSSxtQkFBbUIsQ0FBQyxZQUFZLEVBQUVMLHFCQUFxQixDQUFDO01BQ3JFRSxRQUFRLENBQUNHLG1CQUFtQixDQUFDLFlBQVksRUFBRVAsZ0JBQWdCLENBQUM7SUFDOUQsQ0FBQztFQUNILENBQUMsRUFBRSxFQUFFLENBQUM7RUFFTjtFQUNBLElBQU1RLG9CQUFvQixHQUFHdEUsS0FBSyxDQUFDc0MsTUFBTSxDQUFTLElBQUksQ0FBQztFQUN2RGdDLG9CQUFvQixDQUFDN0IsT0FBTyxHQUFHVSxpQkFBaUI7RUFDaEQsSUFBTW9CLG9CQUFvQixHQUFHdkUsS0FBSyxDQUFDc0MsTUFBTSxDQUFTLElBQUksQ0FBQztFQUN2RGlDLG9CQUFvQixDQUFDOUIsT0FBTyxHQUFHVyxpQkFBaUI7RUFFaERwRCxLQUFLLENBQUMrRCxTQUFTLENBQUMsWUFBSztJQUNuQixJQUFJckMsUUFBUSxFQUFFO01BQ1osSUFBSThDLFNBQWlCO01BRXJCLElBQU1DLFdBQVcsR0FBRyxTQUFkQSxXQUFXQSxDQUFJaEIsQ0FBMEIsRUFBSTtRQUNqRCxJQUFBaUIsaUJBQUEsR0FJSWQsUUFBUSxDQUFDbkIsT0FBTztVQUhSa0MsYUFBYSxHQUFBRCxpQkFBQSxDQUF2QmhELFFBQVE7VUFDRGtELFVBQVUsR0FBQUYsaUJBQUEsQ0FBakJiLEtBQUs7VUFDS2dCLGFBQWEsR0FBQUgsaUJBQUEsQ0FBdkJ4QyxRQUFRO1FBRVZuQyxHQUFHLENBQUMrRSxNQUFNLENBQUNOLFNBQVMsQ0FBQztRQUVyQixJQUFNTyxJQUFJLEdBQUcxQyxZQUFZLENBQUNJLE9BQVEsQ0FBQ3VDLHFCQUFxQixDQUFBLENBQUU7UUFDMUQsSUFBTUMsS0FBSyxHQUFHaEUsYUFBYSxJQUFJRixVQUFVLEdBQUdnRSxJQUFJLENBQUNHLEtBQUssR0FBR0gsSUFBSSxDQUFDSSxNQUFNLENBQUM7UUFFckUsSUFBSVIsYUFBYSxFQUFFO1VBQ2pCLElBQU1TLE1BQU0sR0FBRyxDQUFDbkYsU0FBUyxDQUFDd0QsQ0FBQyxFQUFFMUMsVUFBVyxDQUFDLEdBQUc2RCxVQUFXLElBQUlLLEtBQUs7VUFDaEUsSUFBSUksTUFBTSxHQUFHUixhQUFjO1VBRTNCLElBQUksQ0FBQ3pDLEtBQUssSUFBSXJCLFVBQVUsRUFBRTtZQUN4QnNFLE1BQU0sSUFBSUQsTUFBTTtVQUNsQixDQUFDLE1BQU07WUFDTEMsTUFBTSxJQUFJRCxNQUFNO1VBQ2xCO1VBRUEsSUFBTUUsb0JBQW9CLEdBQUdoQixvQkFBb0IsQ0FBQzdCLE9BQVE7VUFDMUQsSUFBTThDLG9CQUFvQixHQUFHaEIsb0JBQW9CLENBQUM5QixPQUFRO1VBRTFELElBQU1jLEdBQUcsR0FBV2dDLG9CQUFvQixHQUFHRixNQUFNLEdBQUdFLG9CQUFvQixHQUFHLENBQUM7VUFFNUUsSUFBSUMsWUFBWSxHQUFHQyxJQUFJLENBQUNDLElBQUksQ0FBQ25DLEdBQUcsR0FBRytCLG9CQUFvQixDQUFDO1VBQ3hERSxZQUFZLEdBQUdDLElBQUksQ0FBQ0UsR0FBRyxDQUFDSCxZQUFZLEVBQUUsQ0FBQyxDQUFDO1VBQ3hDQSxZQUFZLEdBQUdDLElBQUksQ0FBQ0csR0FBRyxDQUFDSixZQUFZLEVBQUVGLG9CQUFvQixDQUFDO1VBRTNEZCxTQUFTLEdBQUd6RSxHQUFHLENBQUMsWUFBSztZQUNuQmUsUUFBUSxDQUFDMEUsWUFBWSxFQUFFekUsVUFBVSxDQUFDO1VBQ3BDLENBQUMsQ0FBQztRQUNKO01BQ0YsQ0FBQztNQUVELElBQU04RSxTQUFTLEdBQUcsU0FBWkEsU0FBU0EsQ0FBQSxFQUFRO1FBQ3JCbEUsV0FBVyxDQUFDLEtBQUssQ0FBQztRQUVsQmQsVUFBVSxDQUFBLENBQUU7TUFDZCxDQUFDO01BRURpRixNQUFNLENBQUMzQixnQkFBZ0IsQ0FBQyxXQUFXLEVBQUVNLFdBQVcsRUFBRTtRQUFFTCxPQUFPLEVBQUU7TUFBSSxDQUFFLENBQUM7TUFDcEUwQixNQUFNLENBQUMzQixnQkFBZ0IsQ0FBQyxXQUFXLEVBQUVNLFdBQVcsRUFBRTtRQUFFTCxPQUFPLEVBQUU7TUFBSSxDQUFFLENBQUM7TUFDcEUwQixNQUFNLENBQUMzQixnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUwQixTQUFTLEVBQUU7UUFBRXpCLE9BQU8sRUFBRTtNQUFJLENBQUUsQ0FBQztNQUNoRTBCLE1BQU0sQ0FBQzNCLGdCQUFnQixDQUFDLFVBQVUsRUFBRTBCLFNBQVMsRUFBRTtRQUFFekIsT0FBTyxFQUFFO01BQUksQ0FBRSxDQUFDO01BRWpFLE9BQU8sWUFBSztRQUNWMEIsTUFBTSxDQUFDekIsbUJBQW1CLENBQUMsV0FBVyxFQUFFSSxXQUFXLENBQUM7UUFDcERxQixNQUFNLENBQUN6QixtQkFBbUIsQ0FBQyxXQUFXLEVBQUVJLFdBQVcsQ0FBQztRQUNwRHFCLE1BQU0sQ0FBQ3pCLG1CQUFtQixDQUFDLFNBQVMsRUFBRXdCLFNBQVMsQ0FBQztRQUNoREMsTUFBTSxDQUFDekIsbUJBQW1CLENBQUMsVUFBVSxFQUFFd0IsU0FBUyxDQUFDO1FBRWpEOUYsR0FBRyxDQUFDK0UsTUFBTSxDQUFDTixTQUFTLENBQUM7TUFDdkIsQ0FBQztJQUNIO0VBQ0YsQ0FBQyxFQUFFLENBQUM5QyxRQUFRLENBQUMsQ0FBQztFQUVkMUIsS0FBSyxDQUFDK0QsU0FBUyxDQUFDLFlBQUs7SUFDbkJmLFdBQVcsQ0FBQSxDQUFFO0lBQ2IsT0FBTyxZQUFLO01BQ1ZDLFlBQVksQ0FBQ0gsaUJBQWlCLENBQUNMLE9BQU8sQ0FBQztJQUN6QyxDQUFDO0VBQ0gsQ0FBQyxFQUFFLENBQUMvQixZQUFZLENBQUMsQ0FBQztFQUVsQjtFQUNBVixLQUFLLENBQUMrRixtQkFBbUIsQ0FBQ3hGLEdBQUcsRUFBRTtJQUFBLE9BQU87TUFDcEN5QyxXQUFXLEVBQVhBO0lEeEVBLENDeUVEO0VBQUEsQ0FBQyxDQUFDO0VBRUg7RUFDQSxJQUFNZ0Qsa0JBQWtCLE1BQUFDLE1BQUEsQ0FBTXpGLFNBQVMsZUFBWTtFQUVuRCxJQUFNMEYsY0FBYyxHQUF3QjtJQUMxQ0MsUUFBUSxFQUFFLFVBQVU7SUFDcEJDLFVBQVUsRUFBRXhELE9BQU8sR0FBR0csU0FBUyxHQUFHO0VEMUVsQyxDQzJFRDtFQUVELElBQU0zQixVQUFVLEdBQXdCO0lBQ3RDK0UsUUFBUSxFQUFFLFVBQVU7SUFDcEJFLFlBQVksRUFBRSxFQUFFO0lBQ2hCQyxVQUFVLFNBQUFMLE1BQUEsQ0FBUy9GLDhCQUE4QixRQUFBK0YsTUFBQSxDQUFLOUYsaUNBQWlDLE1BQUc7SUFDMUZvRyxNQUFNLEVBQUUsU0FBUztJQUNqQkMsVUFBVSxFQUFFO0VEM0VaLENDNEVEO0VBRUQsSUFBSXpGLFVBQVUsRUFBRTtJQUNkMEYsTUFBTSxDQUFDQyxNQUFNLENBQUNSLGNBQWMsRUFBRTtNQUM1QmYsTUFBTSxFQUFFLENBQUM7TUFDVHdCLElBQUksRUFBRSxDQUFDO01BQ1BDLEtBQUssRUFBRSxDQUFDO01BQ1JDLE1BQU0sRUFBRTtJRDVFTixDQzZFSCxDQUFDO0lBRUZKLE1BQU0sQ0FBQ0MsTUFBTSxDQUFDdEYsVUFBVSxFQUFBMEYsZUFBQTtNQUN0QjNCLE1BQU0sRUFBRSxNQUFNO01BQ2RELEtBQUssRUFBRWxFO0lBQVEsR0FDZG9CLEtBQUssR0FBRyxNQUFNLEdBQUcsT0FBTyxFQUFHaUIsR0FBRyxDQUNoQyxDQUFDO0VBQ0osQ0FBQyxNQUFNO0lBQ0xvRCxNQUFNLENBQUNDLE1BQU0sQ0FBQ1IsY0FBYyxFQUFBWSxlQUFBO01BQzFCNUIsS0FBSyxFQUFFLENBQUM7TUFDUjdCLEdBQUcsRUFBRSxDQUFDO01BQ053RCxNQUFNLEVBQUU7SUFBQyxHQUNSekUsS0FBSyxHQUFHLE9BQU8sR0FBRyxNQUFNLEVBQUcsQ0FBQyxDQUM5QixDQUFDO0lBRUZxRSxNQUFNLENBQUNDLE1BQU0sQ0FBQ3RGLFVBQVUsRUFBRTtNQUN4QjhELEtBQUssRUFBRSxNQUFNO01BQ2JDLE1BQU0sRUFBRW5FLFFBQVE7TUFDaEJxQyxHQUFHLEVBQUhBO0lEN0VFLENDOEVILENBQUM7RUFDSjtFQUVBLE9BQ0V4RCxJQUFBLENBQUEsS0FBQSxFQUFBO0lBQ0VVLEdBQUcsRUFBRThCLFlBQVk7SUFDakIwRSxTQUFTLEVBQUVqSCxJQUFJLENBQUNrRyxrQkFBa0IsRUFBQWMsZUFBQSxDQUFBQSxlQUFBLENBQUFBLGVBQUEsUUFBQWIsTUFBQSxDQUM1QkQsa0JBQWtCLGtCQUFnQmpGLFVBQVUsTUFBQWtGLE1BQUEsQ0FDNUNELGtCQUFrQixnQkFBYyxDQUFDakYsVUFBVSxNQUFBa0YsTUFBQSxDQUMzQ0Qsa0JBQWtCLGVBQWFwRCxPQUFPLENBQzNDLENBQUM7SUFDRjFCLEtBQUssRUFBQXVGLE1BQUEsQ0FBQUMsTUFBQSxDQUFBRCxNQUFBLENBQUFDLE1BQUEsQ0FBQSxDQUFBLENBQUEsRUFBT1IsY0FBYyxDQUFBLEVBQUtoRixLQUFLLENBQUE7SUFDcEM4RixXQUFXLEVBQUV4RCxvQkFBb0I7SUFDakNpQixXQUFXLEVBQUV6QixXQUFXO0lBQUFpRSxRQUFBLEVBRXhCcEgsSUFBQSxDQUFBLEtBQUEsRUFBQTtNQUNFVSxHQUFHLEVBQUVnQyxRQUFRO01BQ2J3RSxTQUFTLEVBQUVqSCxJQUFJLElBQUFtRyxNQUFBLENBQUlELGtCQUFrQixhQUFBYyxlQUFBLFFBQUFiLE1BQUEsQ0FDL0JELGtCQUFrQixvQkFBa0J0RSxRQUFRLENBQ2pELENBQUM7TUFDRlIsS0FBSyxFQUFBdUYsTUFBQSxDQUFBQyxNQUFBLENBQUFELE1BQUEsQ0FBQUMsTUFBQSxDQUFBLENBQUEsQ0FBQSxFQUFPdEYsVUFBVSxDQUFBLEVBQUtELGVBQWUsQ0FBQTtNQUMxQzZGLFdBQVcsRUFBRWxEO0lBQWdCLENBQUE7RUFDN0IsQ0FBQSxDQUNFO0FBRVYsQ0FBQyxDQUFDO0FBRUYxRCxTQUFTLENBQUM4RyxXQUFXLEdBQUcsV0FBVztBQUVuQyxlQUFlOUcsU0FBUyIsImZpbGUiOiJjb21wb25lbnRzL1ZpcnR1YWxMaXN0L1Njcm9sbEJhci5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGpzeCBhcyBfanN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBjbHN4IH0gZnJvbSAnY2xzeCc7XG5pbXBvcnQgcmFmIGZyb20gJy4vdXRpbHMvcmFmJztcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGdldFBhZ2VYWSB9IGZyb20gJy4vaG9va3MvdXNlU2Nyb2xsRHJhZyc7XG5pbXBvcnQgeyBWSVJUVUFMX0xJU1RfU0NST0xMQkFSX0NTU19WQVIsIFZJUlRVQUxfTElTVF9TQ1JPTExCQVJfREVGQVVMVF9CRywgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5jb25zdCBTY3JvbGxCYXIgPSBSZWFjdC5mb3J3YXJkUmVmKChwcm9wcywgcmVmKSA9PiB7XG4gICAgY29uc3QgeyBwcmVmaXhDbHMsIHJ0bCwgc2Nyb2xsT2Zmc2V0LCBzY3JvbGxSYW5nZSwgb25TdGFydE1vdmUsIG9uU3RvcE1vdmUsIG9uU2Nyb2xsLCBob3Jpem9udGFsLCBzcGluU2l6ZSwgY29udGFpbmVyU2l6ZSwgc3R5bGUsIHRodW1iU3R5bGU6IHByb3BzVGh1bWJTdHlsZSwgc2hvd1Njcm9sbEJhciwgfSA9IHByb3BzO1xuICAgIGNvbnN0IFtkcmFnZ2luZywgc2V0RHJhZ2dpbmddID0gUmVhY3QudXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IFtwYWdlWFksIHNldFBhZ2VYWV0gPSBSZWFjdC51c2VTdGF0ZShudWxsKTtcbiAgICBjb25zdCBbc3RhcnRUb3AsIHNldFN0YXJ0VG9wXSA9IFJlYWN0LnVzZVN0YXRlKG51bGwpO1xuICAgIGNvbnN0IGlzTFRSID0gIXJ0bDtcbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09IFJlZnMgPT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgIGNvbnN0IHNjcm9sbGJhclJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcbiAgICBjb25zdCB0aHVtYlJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcbiAgICBjb25zdCBvblN0YXJ0TW92ZVJlZiA9IFJlYWN0LnVzZVJlZihvblN0YXJ0TW92ZSk7XG4gICAgb25TdGFydE1vdmVSZWYuY3VycmVudCA9IG9uU3RhcnRNb3ZlO1xuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09IFZpc2libGUgPT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgY29uc3QgW3Zpc2libGUsIHNldFZpc2libGVdID0gUmVhY3QudXNlU3RhdGUoc2hvd1Njcm9sbEJhcik7XG4gICAgY29uc3QgdmlzaWJsZVRpbWVvdXRSZWYgPSBSZWFjdC51c2VSZWYodW5kZWZpbmVkKTtcbiAgICBjb25zdCBkZWxheUhpZGRlbiA9ICgpID0+IHtcbiAgICAgICAgaWYgKHNob3dTY3JvbGxCYXIgPT09IHRydWUgfHwgc2hvd1Njcm9sbEJhciA9PT0gZmFsc2UpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNsZWFyVGltZW91dCh2aXNpYmxlVGltZW91dFJlZi5jdXJyZW50KTtcbiAgICAgICAgc2V0VmlzaWJsZSh0cnVlKTtcbiAgICAgICAgdmlzaWJsZVRpbWVvdXRSZWYuY3VycmVudCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgc2V0VmlzaWJsZShmYWxzZSk7XG4gICAgICAgIH0sIDMwMDApO1xuICAgIH07XG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09IFJhbmdlID09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICBjb25zdCBlbmFibGVTY3JvbGxSYW5nZSA9IHNjcm9sbFJhbmdlIC0gY29udGFpbmVyU2l6ZSB8fCAwO1xuICAgIGNvbnN0IGVuYWJsZU9mZnNldFJhbmdlID0gY29udGFpbmVyU2l6ZSAtIHNwaW5TaXplIHx8IDA7XG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PSBUb3AgPT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICBjb25zdCB0b3AgPSBSZWFjdC51c2VNZW1vKCgpID0+IHtcbiAgICAgICAgaWYgKHNjcm9sbE9mZnNldCA9PT0gMCB8fCBlbmFibGVTY3JvbGxSYW5nZSA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcHRnID0gc2Nyb2xsT2Zmc2V0IC8gZW5hYmxlU2Nyb2xsUmFuZ2U7XG4gICAgICAgIHJldHVybiBwdGcgKiBlbmFibGVPZmZzZXRSYW5nZTtcbiAgICB9LCBbc2Nyb2xsT2Zmc2V0LCBlbmFibGVTY3JvbGxSYW5nZSwgZW5hYmxlT2Zmc2V0UmFuZ2VdKTtcbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09IENvbnRhaW5lciA9PT09PT09PT09PT09PT09PT09PT09PVxuICAgIGNvbnN0IG9uQ29udGFpbmVyTW91c2VEb3duID0gKGUpID0+IHtcbiAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH07XG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09IFRodW1iID09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICBjb25zdCBzdGF0ZVJlZiA9IFJlYWN0LnVzZVJlZih7IHRvcCwgZHJhZ2dpbmcsIHBhZ2VZOiBwYWdlWFksIHN0YXJ0VG9wIH0pO1xuICAgIHN0YXRlUmVmLmN1cnJlbnQgPSB7IHRvcCwgZHJhZ2dpbmcsIHBhZ2VZOiBwYWdlWFksIHN0YXJ0VG9wIH07XG4gICAgY29uc3Qgb25UaHVtYk1vdXNlRG93biA9IChlKSA9PiB7XG4gICAgICAgIHNldERyYWdnaW5nKHRydWUpO1xuICAgICAgICBzZXRQYWdlWFkoZ2V0UGFnZVhZKGUsIGhvcml6b250YWwpKTtcbiAgICAgICAgc2V0U3RhcnRUb3Aoc3RhdGVSZWYuY3VycmVudC50b3ApO1xuICAgICAgICBvblN0YXJ0TW92ZVJlZi5jdXJyZW50KCk7XG4gICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICB9O1xuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PSBFZmZlY3QgPT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgLy8gUmVhY3QgbWFrZSBldmVudCBhcyBwYXNzaXZlLCBidXQgd2UgbmVlZCB0byBwcmV2ZW50RGVmYXVsdFxuICAgIC8vIEFkZCBldmVudCBvbiBkb20gZGlyZWN0bHkgaW5zdGVhZC5cbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBjb25zdCBvblNjcm9sbGJhclRvdWNoU3RhcnQgPSAoZSkgPT4ge1xuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9O1xuICAgICAgICBjb25zdCBzY3JvbGxiYXJFbGUgPSBzY3JvbGxiYXJSZWYuY3VycmVudDtcbiAgICAgICAgY29uc3QgdGh1bWJFbGUgPSB0aHVtYlJlZi5jdXJyZW50O1xuICAgICAgICBzY3JvbGxiYXJFbGUuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcsIG9uU2Nyb2xsYmFyVG91Y2hTdGFydCwgeyBwYXNzaXZlOiBmYWxzZSB9KTtcbiAgICAgICAgdGh1bWJFbGUuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcsIG9uVGh1bWJNb3VzZURvd24sIHsgcGFzc2l2ZTogZmFsc2UgfSk7XG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICBzY3JvbGxiYXJFbGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcsIG9uU2Nyb2xsYmFyVG91Y2hTdGFydCk7XG4gICAgICAgICAgICB0aHVtYkVsZS5yZW1vdmVFdmVudExpc3RlbmVyKCd0b3VjaHN0YXJ0Jywgb25UaHVtYk1vdXNlRG93bik7XG4gICAgICAgIH07XG4gICAgfSwgW10pO1xuICAgIC8vIFBhc3MgdG8gZWZmZWN0XG4gICAgY29uc3QgZW5hYmxlU2Nyb2xsUmFuZ2VSZWYgPSBSZWFjdC51c2VSZWYobnVsbCk7XG4gICAgZW5hYmxlU2Nyb2xsUmFuZ2VSZWYuY3VycmVudCA9IGVuYWJsZVNjcm9sbFJhbmdlO1xuICAgIGNvbnN0IGVuYWJsZU9mZnNldFJhbmdlUmVmID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICAgIGVuYWJsZU9mZnNldFJhbmdlUmVmLmN1cnJlbnQgPSBlbmFibGVPZmZzZXRSYW5nZTtcbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoZHJhZ2dpbmcpIHtcbiAgICAgICAgICAgIGxldCBtb3ZlUmFmSWQ7XG4gICAgICAgICAgICBjb25zdCBvbk1vdXNlTW92ZSA9IChlKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBkcmFnZ2luZzogc3RhdGVEcmFnZ2luZywgcGFnZVk6IHN0YXRlUGFnZVksIHN0YXJ0VG9wOiBzdGF0ZVN0YXJ0VG9wLCB9ID0gc3RhdGVSZWYuY3VycmVudDtcbiAgICAgICAgICAgICAgICByYWYuY2FuY2VsKG1vdmVSYWZJZCk7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVjdCA9IHNjcm9sbGJhclJlZi5jdXJyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHNjYWxlID0gY29udGFpbmVyU2l6ZSAvIChob3Jpem9udGFsID8gcmVjdC53aWR0aCA6IHJlY3QuaGVpZ2h0KTtcbiAgICAgICAgICAgICAgICBpZiAoc3RhdGVEcmFnZ2luZykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBvZmZzZXQgPSAoZ2V0UGFnZVhZKGUsIGhvcml6b250YWwpIC0gc3RhdGVQYWdlWSkgKiBzY2FsZTtcbiAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1RvcCA9IHN0YXRlU3RhcnRUb3A7XG4gICAgICAgICAgICAgICAgICAgIGlmICghaXNMVFIgJiYgaG9yaXpvbnRhbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmV3VG9wIC09IG9mZnNldDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ld1RvcCArPSBvZmZzZXQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdG1wRW5hYmxlU2Nyb2xsUmFuZ2UgPSBlbmFibGVTY3JvbGxSYW5nZVJlZi5jdXJyZW50O1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0bXBFbmFibGVPZmZzZXRSYW5nZSA9IGVuYWJsZU9mZnNldFJhbmdlUmVmLmN1cnJlbnQ7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHB0ZyA9IHRtcEVuYWJsZU9mZnNldFJhbmdlID8gbmV3VG9wIC8gdG1wRW5hYmxlT2Zmc2V0UmFuZ2UgOiAwO1xuICAgICAgICAgICAgICAgICAgICBsZXQgbmV3U2Nyb2xsVG9wID0gTWF0aC5jZWlsKHB0ZyAqIHRtcEVuYWJsZVNjcm9sbFJhbmdlKTtcbiAgICAgICAgICAgICAgICAgICAgbmV3U2Nyb2xsVG9wID0gTWF0aC5tYXgobmV3U2Nyb2xsVG9wLCAwKTtcbiAgICAgICAgICAgICAgICAgICAgbmV3U2Nyb2xsVG9wID0gTWF0aC5taW4obmV3U2Nyb2xsVG9wLCB0bXBFbmFibGVTY3JvbGxSYW5nZSk7XG4gICAgICAgICAgICAgICAgICAgIG1vdmVSYWZJZCA9IHJhZigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvblNjcm9sbChuZXdTY3JvbGxUb3AsIGhvcml6b250YWwpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgY29uc3Qgb25Nb3VzZVVwID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgIHNldERyYWdnaW5nKGZhbHNlKTtcbiAgICAgICAgICAgICAgICBvblN0b3BNb3ZlKCk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIG9uTW91c2VNb3ZlLCB7IHBhc3NpdmU6IHRydWUgfSk7XG4gICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2htb3ZlJywgb25Nb3VzZU1vdmUsIHsgcGFzc2l2ZTogdHJ1ZSB9KTtcbiAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgb25Nb3VzZVVwLCB7IHBhc3NpdmU6IHRydWUgfSk7XG4gICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hlbmQnLCBvbk1vdXNlVXAsIHsgcGFzc2l2ZTogdHJ1ZSB9KTtcbiAgICAgICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIG9uTW91c2VNb3ZlKTtcbiAgICAgICAgICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigndG91Y2htb3ZlJywgb25Nb3VzZU1vdmUpO1xuICAgICAgICAgICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgb25Nb3VzZVVwKTtcbiAgICAgICAgICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigndG91Y2hlbmQnLCBvbk1vdXNlVXApO1xuICAgICAgICAgICAgICAgIHJhZi5jYW5jZWwobW92ZVJhZklkKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9LCBbZHJhZ2dpbmddKTtcbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBkZWxheUhpZGRlbigpO1xuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHZpc2libGVUaW1lb3V0UmVmLmN1cnJlbnQpO1xuICAgICAgICB9O1xuICAgIH0sIFtzY3JvbGxPZmZzZXRdKTtcbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09IEltcGVyYXRpdmUgPT09PT09PT09PT09PT09PT09PT09PVxuICAgIFJlYWN0LnVzZUltcGVyYXRpdmVIYW5kbGUocmVmLCAoKSA9PiAoe1xuICAgICAgICBkZWxheUhpZGRlbixcbiAgICB9KSk7XG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09IFJlbmRlciA9PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICBjb25zdCBzY3JvbGxiYXJQcmVmaXhDbHMgPSBgJHtwcmVmaXhDbHN9LXNjcm9sbGJhcmA7XG4gICAgY29uc3QgY29udGFpbmVyU3R5bGUgPSB7XG4gICAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlID8gdW5kZWZpbmVkIDogJ2hpZGRlbicsXG4gICAgfTtcbiAgICBjb25zdCB0aHVtYlN0eWxlID0ge1xuICAgICAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICAgICAgYm9yZGVyUmFkaXVzOiA5OSxcbiAgICAgICAgYmFja2dyb3VuZDogYHZhcigke1ZJUlRVQUxfTElTVF9TQ1JPTExCQVJfQ1NTX1ZBUn0sICR7VklSVFVBTF9MSVNUX1NDUk9MTEJBUl9ERUZBVUxUX0JHfSlgLFxuICAgICAgICBjdXJzb3I6ICdwb2ludGVyJyxcbiAgICAgICAgdXNlclNlbGVjdDogJ25vbmUnLFxuICAgIH07XG4gICAgaWYgKGhvcml6b250YWwpIHtcbiAgICAgICAgT2JqZWN0LmFzc2lnbihjb250YWluZXJTdHlsZSwge1xuICAgICAgICAgICAgaGVpZ2h0OiA4LFxuICAgICAgICAgICAgbGVmdDogMCxcbiAgICAgICAgICAgIHJpZ2h0OiAwLFxuICAgICAgICAgICAgYm90dG9tOiAwLFxuICAgICAgICB9KTtcbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aHVtYlN0eWxlLCB7XG4gICAgICAgICAgICBoZWlnaHQ6ICcxMDAlJyxcbiAgICAgICAgICAgIHdpZHRoOiBzcGluU2l6ZSxcbiAgICAgICAgICAgIFtpc0xUUiA/ICdsZWZ0JyA6ICdyaWdodCddOiB0b3AsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgT2JqZWN0LmFzc2lnbihjb250YWluZXJTdHlsZSwge1xuICAgICAgICAgICAgd2lkdGg6IDgsXG4gICAgICAgICAgICB0b3A6IDAsXG4gICAgICAgICAgICBib3R0b206IDAsXG4gICAgICAgICAgICBbaXNMVFIgPyAncmlnaHQnIDogJ2xlZnQnXTogMCxcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGh1bWJTdHlsZSwge1xuICAgICAgICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgICAgICAgIGhlaWdodDogc3BpblNpemUsXG4gICAgICAgICAgICB0b3AsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gKF9qc3goXCJkaXZcIiwgeyByZWY6IHNjcm9sbGJhclJlZiwgY2xhc3NOYW1lOiBjbHN4KHNjcm9sbGJhclByZWZpeENscywge1xuICAgICAgICAgICAgW2Ake3Njcm9sbGJhclByZWZpeENsc30taG9yaXpvbnRhbGBdOiBob3Jpem9udGFsLFxuICAgICAgICAgICAgW2Ake3Njcm9sbGJhclByZWZpeENsc30tdmVydGljYWxgXTogIWhvcml6b250YWwsXG4gICAgICAgICAgICBbYCR7c2Nyb2xsYmFyUHJlZml4Q2xzfS12aXNpYmxlYF06IHZpc2libGUsXG4gICAgICAgIH0pLCBzdHlsZTogT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBjb250YWluZXJTdHlsZSksIHN0eWxlKSwgb25Nb3VzZURvd246IG9uQ29udGFpbmVyTW91c2VEb3duLCBvbk1vdXNlTW92ZTogZGVsYXlIaWRkZW4sIGNoaWxkcmVuOiBfanN4KFwiZGl2XCIsIHsgcmVmOiB0aHVtYlJlZiwgY2xhc3NOYW1lOiBjbHN4KGAke3Njcm9sbGJhclByZWZpeENsc30tdGh1bWJgLCB7XG4gICAgICAgICAgICAgICAgW2Ake3Njcm9sbGJhclByZWZpeENsc30tdGh1bWItbW92aW5nYF06IGRyYWdnaW5nLFxuICAgICAgICAgICAgfSksIHN0eWxlOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHRodW1iU3R5bGUpLCBwcm9wc1RodW1iU3R5bGUpLCBvbk1vdXNlRG93bjogb25UaHVtYk1vdXNlRG93biB9KSB9KSk7XG59KTtcblNjcm9sbEJhci5kaXNwbGF5TmFtZSA9ICdTY3JvbGxCYXInO1xuZXhwb3J0IGRlZmF1bHQgU2Nyb2xsQmFyOyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
|
|
@@ -103,6 +103,10 @@ export function RawList(props, ref) {
|
|
|
103
103
|
_useState6 = _slicedToArray(_useState5, 2),
|
|
104
104
|
scrollMoving = _useState6[0],
|
|
105
105
|
setScrollMoving = _useState6[1];
|
|
106
|
+
// Mirrors `offsetTop` synchronously so `syncScrollTop` can read the latest
|
|
107
|
+
// value immediately (a state updater can't safely have side effects — see
|
|
108
|
+
// the `onScroll` call below).
|
|
109
|
+
var offsetTopRef = useRef(0);
|
|
106
110
|
var onScrollbarStartMove = function onScrollbarStartMove() {
|
|
107
111
|
setScrollMoving(true);
|
|
108
112
|
};
|
|
@@ -113,18 +117,28 @@ export function RawList(props, ref) {
|
|
|
113
117
|
getKey: getKey
|
|
114
118
|
};
|
|
115
119
|
// ================================ Scroll ================================
|
|
120
|
+
// Wheel scroll, scrollbar drag, and touch move (see `onWheelDelta` /
|
|
121
|
+
// `useScrollDrag` / `useMobileTouchMove` below) all funnel through here —
|
|
122
|
+
// it's the single place a virtual-mode scroll position change happens.
|
|
123
|
+
//
|
|
124
|
+
// In virtual mode the holder is `overflow-y: hidden` (scrolling is faked via
|
|
125
|
+
// this offset, not native browser scroll), so setting `scrollTop`
|
|
126
|
+
// programmatically does not reliably dispatch a native `scroll` DOM event.
|
|
127
|
+
// `onFallbackScroll` below (bound to the holder's native `onScroll`) only
|
|
128
|
+
// fires in non-virtual mode. Call `onScroll` directly here — with the same
|
|
129
|
+
// event shape a native scroll would carry — so it fires for real user
|
|
130
|
+
// scrolling in virtual mode too.
|
|
116
131
|
function syncScrollTop(newTop) {
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
value = newTop;
|
|
123
|
-
}
|
|
124
|
-
var alignedTop = keepInRange(value);
|
|
132
|
+
var value = typeof newTop === 'function' ? newTop(offsetTopRef.current) : newTop;
|
|
133
|
+
var alignedTop = keepInRange(value);
|
|
134
|
+
offsetTopRef.current = alignedTop;
|
|
135
|
+
setOffsetTop(alignedTop);
|
|
136
|
+
if (componentRef.current) {
|
|
125
137
|
componentRef.current.scrollTop = alignedTop;
|
|
126
|
-
|
|
127
|
-
|
|
138
|
+
onScroll === null || onScroll === void 0 ? void 0 : onScroll({
|
|
139
|
+
currentTarget: componentRef.current
|
|
140
|
+
});
|
|
141
|
+
}
|
|
128
142
|
}
|
|
129
143
|
// ================================ Legacy ================================
|
|
130
144
|
// Put ref here since the range is generate by follow
|
|
@@ -298,10 +312,10 @@ export function RawList(props, ref) {
|
|
|
298
312
|
function onFallbackScroll(e) {
|
|
299
313
|
var newScrollTop = e.currentTarget.scrollTop;
|
|
300
314
|
if (newScrollTop !== offsetTop) {
|
|
315
|
+
// `syncScrollTop` calls `onScroll` itself — don't also fire it here, or
|
|
316
|
+
// fallback (non-virtual) mode would notify the consumer twice per event.
|
|
301
317
|
syncScrollTop(newScrollTop);
|
|
302
318
|
}
|
|
303
|
-
// Trigger origin onScroll
|
|
304
|
-
onScroll === null || onScroll === void 0 ? void 0 : onScroll(e);
|
|
305
319
|
triggerScroll();
|
|
306
320
|
}
|
|
307
321
|
var keepInHorizontalRange = function keepInHorizontalRange(nextOffsetLeft) {
|
|
@@ -527,4 +541,4 @@ var VirtualListBase = /*#__PURE__*/React.forwardRef(RawList);
|
|
|
527
541
|
VirtualListBase.displayName = VIRTUAL_LIST_COMPONENT_NAME;
|
|
528
542
|
var VirtualList = /*#__PURE__*/React.memo(VirtualListBase);
|
|
529
543
|
export default VirtualList;
|
|
530
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvVmlydHVhbExpc3QvVmlydHVhbExpc3QuanMiLCJjb21wb25lbnRzL3NyYy9jb21wb25lbnRzL1ZpcnR1YWxMaXN0L1ZpcnR1YWxMaXN0LnRzeCJdLCJuYW1lcyI6WyJfX3Jlc3QiLCJzIiwiZSIsInQiLCJwIiwiT2JqZWN0IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaW5kZXhPZiIsImdldE93blByb3BlcnR5U3ltYm9scyIsImkiLCJsZW5ndGgiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJjbHN4IiwiUmVzaXplT2JzZXJ2ZXIiLCJ1c2VMYXlvdXRFZmZlY3QiLCJ1c2VFdmVudENhbGxiYWNrIiwiUmVhY3QiLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsImZsdXNoU3luYyIsIkZpbGxlciIsInVzZUNoaWxkcmVuIiwidXNlRGlmZkl0ZW0iLCJ1c2VGcmFtZVdoZWVsIiwidXNlR2V0U2l6ZSIsInVzZUhlaWdodHMiLCJ1c2VNb2JpbGVUb3VjaE1vdmUiLCJ1c2VPcmlnaW5TY3JvbGwiLCJ1c2VTY3JvbGxEcmFnIiwidXNlU2Nyb2xsVG8iLCJTY3JvbGxCYXIiLCJnZXRTcGluU2l6ZSIsIlZJUlRVQUxfTElTVF9DT01QT05FTlRfTkFNRSIsIlZJUlRVQUxfTElTVF9QUkVGSVhDTFMiLCJFTVBUWV9EQVRBIiwiU2Nyb2xsU3R5bGUiLCJvdmVyZmxvd1kiLCJvdmVyZmxvd0FuY2hvciIsIlJhd0xpc3QiLCJwcm9wcyIsInJlZiIsIl9wcm9wcyRwcmVmaXhDbHMiLCJwcmVmaXhDbHMiLCJjbGFzc05hbWUiLCJoZWlnaHQiLCJpdGVtSGVpZ2h0IiwiX3Byb3BzJGZ1bGxIZWlnaHQiLCJmdWxsSGVpZ2h0Iiwic3R5bGUiLCJkYXRhIiwiY2hpbGRyZW4iLCJpdGVtS2V5IiwidmlydHVhbCIsImRpcmVjdGlvbiIsInNjcm9sbFdpZHRoIiwiX3Byb3BzJGNvbXBvbmVudCIsImNvbXBvbmVudCIsIkNvbXBvbmVudCIsIm9uU2Nyb2xsIiwib25WaXJ0dWFsU2Nyb2xsIiwib25WaXNpYmxlQ2hhbmdlIiwiaW5uZXJQcm9wcyIsImV4dHJhUmVuZGVyIiwic3R5bGVzIiwiX3Byb3BzJHNob3dTY3JvbGxCYXIiLCJzaG93U2Nyb2xsQmFyIiwicmVzdFByb3BzIiwiZ2V0S2V5IiwidXNlQ2FsbGJhY2siLCJpdGVtIiwiX3VzZUhlaWdodHMiLCJ1bmRlZmluZWQiLCJfdXNlSGVpZ2h0czIiLCJfc2xpY2VkVG9BcnJheSIsInNldEluc3RhbmNlUmVmIiwiY29sbGVjdEhlaWdodCIsImhlaWdodHMiLCJoZWlnaHRVcGRhdGVkTWFyayIsInVzZVZpcnR1YWwiLCJjb250YWluZXJIZWlnaHQiLCJ1c2VNZW1vIiwidmFsdWVzIiwibWFwcyIsInJlZHVjZSIsInRvdGFsIiwiY3VyciIsImlkIiwiaW5WaXJ0dWFsIiwiTWF0aCIsIm1heCIsImlzUlRMIiwibWVyZ2VkQ2xhc3NOYW1lIiwiX2RlZmluZVByb3BlcnR5IiwiY29uY2F0IiwibWVyZ2VkRGF0YSIsImNvbXBvbmVudFJlZiIsImZpbGxlcklubmVyUmVmIiwiY29udGFpbmVyUmVmIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIm9mZnNldFRvcCIsInNldE9mZnNldFRvcCIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0Iiwib2Zmc2V0TGVmdCIsInNldE9mZnNldExlZnQiLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsInNjcm9sbE1vdmluZyIsInNldFNjcm9sbE1vdmluZyIsIm9uU2Nyb2xsYmFyU3RhcnRNb3ZlIiwib25TY3JvbGxiYXJTdG9wTW92ZSIsInNoYXJlZENvbmZpZyIsInN5bmNTY3JvbGxUb3AiLCJuZXdUb3AiLCJvcmlnaW4iLCJ2YWx1ZSIsImFsaWduZWRUb3AiLCJrZWVwSW5SYW5nZSIsImN1cnJlbnQiLCJzY3JvbGxUb3AiLCJyYW5nZVJlZiIsInN0YXJ0IiwiZW5kIiwiZGlmZkl0ZW1SZWYiLCJfdXNlRGlmZkl0ZW0iLCJfdXNlRGlmZkl0ZW0yIiwiZGlmZkl0ZW0iLCJfUmVhY3QkdXNlTWVtbyIsIl9hIiwic2Nyb2xsSGVpZ2h0Iiwib2Zmc2V0Iiwib2Zmc2V0SGVpZ2h0IiwiaXRlbVRvcCIsInN0YXJ0SW5kZXgiLCJzdGFydE9mZnNldCIsImVuZEluZGV4IiwiZGF0YUxlbiIsImtleSIsImNhY2hlSGVpZ2h0IiwiZ2V0IiwiY3VycmVudEl0ZW1Cb3R0b20iLCJjZWlsIiwibWluIiwiZmlsbGVyT2Zmc2V0IiwiY2hhbmdlZFJlY29yZCIsImdldFJlY29yZCIsInNpemUiLCJyZWNvcmRLZXkiLCJBcnJheSIsImZyb20iLCJrZXlzIiwicHJldkNhY2hlSGVpZ2h0Iiwic3RhcnRJdGVtIiwic3RhcnRJbmRleEtleSIsInJlYWxTdGFydEhlaWdodCIsImRpZmZIZWlnaHQiLCJvcmkiLCJyZXNldFJlY29yZCIsIl9SZWFjdCR1c2VTdGF0ZSIsIndpZHRoIiwiX1JlYWN0JHVzZVN0YXRlMiIsInNldFNpemUiLCJvbkhvbGRlclJlc2l6ZSIsInNpemVJbmZvIiwib2Zmc2V0V2lkdGgiLCJ2ZXJ0aWNhbFNjcm9sbEJhclJlZiIsImhvcml6b250YWxTY3JvbGxCYXJSZWYiLCJob3Jpem9udGFsU2Nyb2xsQmFyU3BpblNpemUiLCJ2ZXJ0aWNhbFNjcm9sbEJhclNwaW5TaXplIiwibWF4U2Nyb2xsSGVpZ2h0IiwibWF4U2Nyb2xsSGVpZ2h0UmVmIiwibmV3U2Nyb2xsVG9wIiwiTnVtYmVyIiwiaXNOYU4iLCJpc1Njcm9sbEF0VG9wIiwiaXNTY3JvbGxBdEJvdHRvbSIsImlzU2Nyb2xsQXRMZWZ0IiwiaXNTY3JvbGxBdFJpZ2h0Iiwib3JpZ2luU2Nyb2xsIiwiZ2V0VmlydHVhbFNjcm9sbEluZm8iLCJ4IiwieSIsImxhc3RWaXJ0dWFsU2Nyb2xsSW5mb1JlZiIsInRyaWdnZXJTY3JvbGwiLCJwYXJhbXMiLCJuZXh0SW5mbyIsImFzc2lnbiIsIm9uU2Nyb2xsQmFyIiwibmV3U2Nyb2xsT2Zmc2V0IiwiaG9yaXpvbnRhbCIsIm5ld09mZnNldCIsIm9uRmFsbGJhY2tTY3JvbGwiLCJjdXJyZW50VGFyZ2V0Iiwia2VlcEluSG9yaXpvbnRhbFJhbmdlIiwibmV4dE9mZnNldExlZnQiLCJ0bXBPZmZzZXRMZWZ0Iiwib25XaGVlbERlbHRhIiwib2Zmc2V0WFkiLCJmcm9tSG9yaXpvbnRhbCIsImxlZnQiLCJ0b3AiLCJfdXNlRnJhbWVXaGVlbCIsIl91c2VGcmFtZVdoZWVsMiIsIm9uUmF3V2hlZWwiLCJvbkZpcmVGb3hTY3JvbGwiLCJpc0hvcml6b250YWwiLCJkZWx0YSIsInNtb290aE9mZnNldCIsImV2ZW50IiwiX3ZpcnR1YWxIYW5kbGVkIiwicHJldmVudERlZmF1bHQiLCJkZWx0YVgiLCJkZWx0YVkiLCJvbk1vek1vdXNlUGl4ZWxTY3JvbGwiLCJzY3JvbGxpbmdVcEF0VG9wIiwiZGV0YWlsIiwic2Nyb2xsaW5nRG93bkF0Qm90dG9tIiwiY29tcG9uZW50RWxlIiwiYWRkRXZlbnRMaXN0ZW5lciIsInBhc3NpdmUiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwibmV3T2Zmc2V0TGVmdCIsImRlbGF5SGlkZVNjcm9sbEJhciIsIl9iIiwiZGVsYXlIaWRkZW4iLCJzY3JvbGxUbyIsInVzZUltcGVyYXRpdmVIYW5kbGUiLCJuYXRpdmVFbGVtZW50IiwiZ2V0U2Nyb2xsSW5mbyIsImNvbmZpZyIsImlzUG9zU2Nyb2xsIiwiYXJnIiwiX3R5cGVvZiIsInJlbmRlckxpc3QiLCJzbGljZSIsImdldFNpemUiLCJleHRyYUNvbnRlbnQiLCJvZmZzZXRYIiwib2Zmc2V0WSIsInJ0bCIsImxpc3RDaGlsZHJlbiIsImNvbXBvbmVudFN0eWxlIiwib3ZlcmZsb3dYIiwicG9pbnRlckV2ZW50cyIsImNvbnRhaW5lclByb3BzIiwiZGlyIiwicG9zaXRpb24iLCJvblJlc2l6ZSIsIm9uTW91c2VFbnRlciIsIm9uSW5uZXJSZXNpemUiLCJleHRyYSIsInNjcm9sbE9mZnNldCIsInNjcm9sbFJhbmdlIiwib25TdGFydE1vdmUiLCJvblN0b3BNb3ZlIiwic3BpblNpemUiLCJjb250YWluZXJTaXplIiwidmVydGljYWxTY3JvbGxCYXIiLCJ0aHVtYlN0eWxlIiwidmVydGljYWxTY3JvbGxCYXJUaHVtYiIsImhvcml6b250YWxTY3JvbGxCYXIiLCJob3Jpem9udGFsU2Nyb2xsQmFyVGh1bWIiLCJWaXJ0dWFsTGlzdEJhc2UiLCJmb3J3YXJkUmVmIiwiZGlzcGxheU5hbWUiLCJWaXJ0dWFsTGlzdCIsIm1lbW8iXSwibWFwcGluZ3MiOiI7OztBQUFBLElBQUlBLE1BQU0sR0FBSSxJQUFJLElBQUksSUFBSSxDQUFDQSxNQUFNLElBQUssVUFBVUMsQ0FBQyxFQUFFQyxDQUFDLEVBQUU7RUFDbEQsSUFBSUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztFQUNWLEtBQUssSUFBSUMsQ0FBQyxJQUFJSCxDQUFDLEVBQUUsSUFBSUksTUFBTSxDQUFDQyxTQUFTLENBQUNDLGNBQWMsQ0FBQ0MsSUFBSSxDQUFDUCxDQUFDLEVBQUVHLENBQUMsQ0FBQyxJQUFJRixDQUFDLENBQUNPLE9BQU8sQ0FBQ0wsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUMvRUQsQ0FBQyxDQUFDQyxDQUFDLENBQUMsR0FBR0gsQ0FBQyxDQUFDRyxDQUFDLENBQUM7RUFDZixJQUFJSCxDQUFDLElBQUksSUFBSSxJQUFJLE9BQU9JLE1BQU0sQ0FBQ0sscUJBQXFCLEtBQUssVUFBVSxFQUMvRCxLQUFLLElBQUlDLENBQUMsR0FBRyxDQUFDLEVBQUVQLENBQUMsR0FBR0MsTUFBTSxDQUFDSyxxQkFBcUIsQ0FBQ1QsQ0FBQyxDQUFDLEVBQUVVLENBQUMsR0FBR1AsQ0FBQyxDQUFDUSxNQUFNLEVBQUVELENBQUMsRUFBRSxFQUFFO0lBQ3BFLElBQUlULENBQUMsQ0FBQ08sT0FBTyxDQUFDTCxDQUFDLENBQUNPLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJTixNQUFNLENBQUNDLFNBQVMsQ0FBQ08sb0JBQW9CLENBQUNMLElBQUksQ0FBQ1AsQ0FBQyxFQUFFRyxDQUFDLENBQUNPLENBQUMsQ0FBQyxDQUFDLEVBQzFFUixD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QXdCO01BQzVDck0sYUFBYSxFQUFFQTtJQUFhLENBQUEsQ0FFL0I7RUFBQSxDQUFBLENBQUEsQ0FDRztBQUVWO0FBRUEsSUFBTXNNLGVBQWUsZ0JBQUd2UCxLQUFLLENBQUN3UCxVQUFVLENBQTBCbE8sT0FBTyxDQUFDO0FBRTFFaU8sZUFBZSxDQUFDRSxXQUFXLEdBQUd6TywyQkFBMkI7QUFFekQsSUFBTTBPLFdBQVcsZ0JBQUcxUCxLQUFLLENBQUMyUCxJQUFJLENBQUNKLGVBQWUsQ0FFdkI7QUFFdkIsZUFBZUcsV0FBVyIsImZpbGUiOiJjb21wb25lbnRzL1ZpcnR1YWxMaXN0L1ZpcnR1YWxMaXN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fcmVzdCA9ICh0aGlzICYmIHRoaXMuX19yZXN0KSB8fCBmdW5jdGlvbiAocywgZSkge1xuICAgIHZhciB0ID0ge307XG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXG4gICAgICAgIHRbcF0gPSBzW3BdO1xuICAgIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKVxuICAgICAgICAgICAgICAgIHRbcFtpXV0gPSBzW3BbaV1dO1xuICAgICAgICB9XG4gICAgcmV0dXJuIHQ7XG59O1xuaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IGNsc3ggfSBmcm9tICdjbHN4JztcbmltcG9ydCBSZXNpemVPYnNlcnZlciBmcm9tICcuLi9SZXNpemVPYnNlcnZlcic7XG5pbXBvcnQgdXNlTGF5b3V0RWZmZWN0IGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlTGF5b3V0RWZmZWN0JztcbmltcG9ydCB1c2VFdmVudENhbGxiYWNrIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlRXZlbnRDYWxsYmFjayc7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgZmx1c2hTeW5jIH0gZnJvbSAncmVhY3QtZG9tJztcbmltcG9ydCBGaWxsZXIgZnJvbSAnLi9GaWxsZXInO1xuaW1wb3J0IHVzZUNoaWxkcmVuIGZyb20gJy4vaG9va3MvdXNlQ2hpbGRyZW4nO1xuaW1wb3J0IHVzZURpZmZJdGVtIGZyb20gJy4vaG9va3MvdXNlRGlmZkl0ZW0nO1xuaW1wb3J0IHVzZUZyYW1lV2hlZWwgZnJvbSAnLi9ob29rcy91c2VGcmFtZVdoZWVsJztcbmltcG9ydCB7IHVzZUdldFNpemUgfSBmcm9tICcuL2hvb2tzL3VzZUdldFNpemUnO1xuaW1wb3J0IHVzZUhlaWdodHMgZnJvbSAnLi9ob29rcy91c2VIZWlnaHRzJztcbmltcG9ydCB1c2VNb2JpbGVUb3VjaE1vdmUgZnJvbSAnLi9ob29rcy91c2VNb2JpbGVUb3VjaE1vdmUnO1xuaW1wb3J0IHVzZU9yaWdpblNjcm9sbCBmcm9tICcuL2hvb2tzL3VzZU9yaWdpblNjcm9sbCc7XG5pbXBvcnQgdXNlU2Nyb2xsRHJhZyBmcm9tICcuL2hvb2tzL3VzZVNjcm9sbERyYWcnO1xuaW1wb3J0IHVzZVNjcm9sbFRvIGZyb20gJy4vaG9va3MvdXNlU2Nyb2xsVG8nO1xuaW1wb3J0IFNjcm9sbEJhciBmcm9tICcuL1Njcm9sbEJhcic7XG5pbXBvcnQgeyBnZXRTcGluU2l6ZSB9IGZyb20gJy4vdXRpbHMvc2Nyb2xsYmFyVXRpbCc7XG5pbXBvcnQgeyBWSVJUVUFMX0xJU1RfQ09NUE9ORU5UX05BTUUsIFZJUlRVQUxfTElTVF9QUkVGSVhDTFMsIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0ICcuL3N0eWxlJztcbmNvbnN0IEVNUFRZX0RBVEEgPSBbXTtcbmNvbnN0IFNjcm9sbFN0eWxlID0ge1xuICAgIG92ZXJmbG93WTogJ2F1dG8nLFxuICAgIG92ZXJmbG93QW5jaG9yOiAnbm9uZScsXG59O1xuZXhwb3J0IGZ1bmN0aW9uIFJhd0xpc3QocHJvcHMsIHJlZikge1xuICAgIGNvbnN0IHsgcHJlZml4Q2xzID0gVklSVFVBTF9MSVNUX1BSRUZJWENMUywgY2xhc3NOYW1lLCBoZWlnaHQsIGl0ZW1IZWlnaHQsIGZ1bGxIZWlnaHQgPSB0cnVlLCBzdHlsZSwgZGF0YSwgY2hpbGRyZW4sIGl0ZW1LZXksIHZpcnR1YWwsIGRpcmVjdGlvbiwgc2Nyb2xsV2lkdGgsIGNvbXBvbmVudDogQ29tcG9uZW50ID0gJ2RpdicsIG9uU2Nyb2xsLCBvblZpcnR1YWxTY3JvbGwsIG9uVmlzaWJsZUNoYW5nZSwgaW5uZXJQcm9wcywgZXh0cmFSZW5kZXIsIHN0eWxlcywgc2hvd1Njcm9sbEJhciA9ICdvcHRpb25hbCcgfSA9IHByb3BzLCByZXN0UHJvcHMgPSBfX3Jlc3QocHJvcHMsIFtcInByZWZpeENsc1wiLCBcImNsYXNzTmFtZVwiLCBcImhlaWdodFwiLCBcIml0ZW1IZWlnaHRcIiwgXCJmdWxsSGVpZ2h0XCIsIFwic3R5bGVcIiwgXCJkYXRhXCIsIFwiY2hpbGRyZW5cIiwgXCJpdGVtS2V5XCIsIFwidmlydHVhbFwiLCBcImRpcmVjdGlvblwiLCBcInNjcm9sbFdpZHRoXCIsIFwiY29tcG9uZW50XCIsIFwib25TY3JvbGxcIiwgXCJvblZpcnR1YWxTY3JvbGxcIiwgXCJvblZpc2libGVDaGFuZ2VcIiwgXCJpbm5lclByb3BzXCIsIFwiZXh0cmFSZW5kZXJcIiwgXCJzdHlsZXNcIiwgXCJzaG93U2Nyb2xsQmFyXCJdKTtcbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IEl0ZW0gS2V5ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICBjb25zdCBnZXRLZXkgPSBSZWFjdC51c2VDYWxsYmFjaygoaXRlbSkgPT4ge1xuICAgICAgICBpZiAodHlwZW9mIGl0ZW1LZXkgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHJldHVybiBpdGVtS2V5KGl0ZW0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpdGVtID09PSBudWxsIHx8IGl0ZW0gPT09IHZvaWQgMCA/IHZvaWQgMCA6IGl0ZW1baXRlbUtleV07XG4gICAgfSwgW2l0ZW1LZXldKTtcbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBIZWlnaHQgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICBjb25zdCBbc2V0SW5zdGFuY2VSZWYsIGNvbGxlY3RIZWlnaHQsIGhlaWdodHMsIGhlaWdodFVwZGF0ZWRNYXJrXSA9IHVzZUhlaWdodHMoZ2V0S2V5LCB1bmRlZmluZWQsIHVuZGVmaW5lZCk7XG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IE1JU0MgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgY29uc3QgdXNlVmlydHVhbCA9ICEhKHZpcnR1YWwgIT09IGZhbHNlICYmIGhlaWdodCAmJiBpdGVtSGVpZ2h0KTtcbiAgICBjb25zdCBjb250YWluZXJIZWlnaHQgPSBSZWFjdC51c2VNZW1vKCgpID0+IE9iamVjdC52YWx1ZXMoaGVpZ2h0cy5tYXBzKS5yZWR1Y2UoKHRvdGFsLCBjdXJyKSA9PiB0b3RhbCArIGN1cnIsIDApLCBbaGVpZ2h0cy5pZF0pO1xuICAgIGNvbnN0IGluVmlydHVhbCA9IHVzZVZpcnR1YWwgJiZcbiAgICAgICAgZGF0YSAmJlxuICAgICAgICAoTWF0aC5tYXgoaXRlbUhlaWdodCAqIGRhdGEubGVuZ3RoLCBjb250YWluZXJIZWlnaHQpID4gaGVpZ2h0IHx8ICEhc2Nyb2xsV2lkdGgpO1xuICAgIGNvbnN0IGlzUlRMID0gZGlyZWN0aW9uID09PSAncnRsJztcbiAgICBjb25zdCBtZXJnZWRDbGFzc05hbWUgPSBjbHN4KHByZWZpeENscywgeyBbYCR7cHJlZml4Q2xzfS1ydGxgXTogaXNSVEwgfSwgY2xhc3NOYW1lKTtcbiAgICBjb25zdCBtZXJnZWREYXRhID0gZGF0YSB8fCBFTVBUWV9EQVRBO1xuICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCBmaWxsZXJJbm5lclJlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCBjb250YWluZXJSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBJdGVtIEtleSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgY29uc3QgW29mZnNldFRvcCwgc2V0T2Zmc2V0VG9wXSA9IHVzZVN0YXRlKDApO1xuICAgIGNvbnN0IFtvZmZzZXRMZWZ0LCBzZXRPZmZzZXRMZWZ0XSA9IHVzZVN0YXRlKDApO1xuICAgIGNvbnN0IFtzY3JvbGxNb3ZpbmcsIHNldFNjcm9sbE1vdmluZ10gPSB1c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3Qgb25TY3JvbGxiYXJTdGFydE1vdmUgPSAoKSA9PiB7XG4gICAgICAgIHNldFNjcm9sbE1vdmluZyh0cnVlKTtcbiAgICB9O1xuICAgIGNvbnN0IG9uU2Nyb2xsYmFyU3RvcE1vdmUgPSAoKSA9PiB7XG4gICAgICAgIHNldFNjcm9sbE1vdmluZyhmYWxzZSk7XG4gICAgfTtcbiAgICBjb25zdCBzaGFyZWRDb25maWcgPSB7XG4gICAgICAgIGdldEtleSxcbiAgICB9O1xuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IFNjcm9sbCA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgIGZ1bmN0aW9uIHN5bmNTY3JvbGxUb3AobmV3VG9wKSB7XG4gICAgICAgIHNldE9mZnNldFRvcCgob3JpZ2luKSA9PiB7XG4gICAgICAgICAgICBsZXQgdmFsdWU7XG4gICAgICAgICAgICBpZiAodHlwZW9mIG5ld1RvcCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgIHZhbHVlID0gbmV3VG9wKG9yaWdpbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IG5ld1RvcDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGFsaWduZWRUb3AgPSBrZWVwSW5SYW5nZSh2YWx1ZSk7XG4gICAgICAgICAgICBjb21wb25lbnRSZWYuY3VycmVudC5zY3JvbGxUb3AgPSBhbGlnbmVkVG9wO1xuICAgICAgICAgICAgcmV0dXJuIGFsaWduZWRUb3A7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBMZWdhY3kgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICAvLyBQdXQgcmVmIGhlcmUgc2luY2UgdGhlIHJhbmdlIGlzIGdlbmVyYXRlIGJ5IGZvbGxvd1xuICAgIGNvbnN0IHJhbmdlUmVmID0gdXNlUmVmKHsgc3RhcnQ6IDAsIGVuZDogbWVyZ2VkRGF0YS5sZW5ndGggfSk7XG4gICAgY29uc3QgZGlmZkl0ZW1SZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3QgW2RpZmZJdGVtXSA9IHVzZURpZmZJdGVtKG1lcmdlZERhdGEsIGdldEtleSk7XG4gICAgZGlmZkl0ZW1SZWYuY3VycmVudCA9IGRpZmZJdGVtO1xuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09IFZpc2libGUgQ2FsY3VsYXRpb24gPT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgIGNvbnN0IHsgc2Nyb2xsSGVpZ2h0LCBzdGFydCwgZW5kLCBvZmZzZXQ6IGZpbGxlck9mZnNldCwgfSA9IFJlYWN0LnVzZU1lbW8oKCkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmICghdXNlVmlydHVhbCkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBzY3JvbGxIZWlnaHQ6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICBzdGFydDogMCxcbiAgICAgICAgICAgICAgICBlbmQ6IG1lcmdlZERhdGEubGVuZ3RoIC0gMSxcbiAgICAgICAgICAgICAgICBvZmZzZXQ6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgLy8gQWx3YXlzIHVzZSB2aXJ0dWFsIHNjcm9sbCBiYXIgaW4gYXZvaWQgc2hha2luZ1xuICAgICAgICBpZiAoIWluVmlydHVhbCkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBzY3JvbGxIZWlnaHQ6ICgoX2EgPSBmaWxsZXJJbm5lclJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Eub2Zmc2V0SGVpZ2h0KSB8fCAwLFxuICAgICAgICAgICAgICAgIHN0YXJ0OiAwLFxuICAgICAgICAgICAgICAgIGVuZDogbWVyZ2VkRGF0YS5sZW5ndGggLSAxLFxuICAgICAgICAgICAgICAgIG9mZnNldDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgaXRlbVRvcCA9IDA7XG4gICAgICAgIGxldCBzdGFydEluZGV4O1xuICAgICAgICBsZXQgc3RhcnRPZmZzZXQ7XG4gICAgICAgIGxldCBlbmRJbmRleDtcbiAgICAgICAgY29uc3QgZGF0YUxlbiA9IG1lcmdlZERhdGEubGVuZ3RoO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRhdGFMZW47IGkgKz0gMSkge1xuICAgICAgICAgICAgY29uc3QgaXRlbSA9IG1lcmdlZERhdGFbaV07XG4gICAgICAgICAgICBjb25zdCBrZXkgPSBnZXRLZXkoaXRlbSk7XG4gICAgICAgICAgICBjb25zdCBjYWNoZUhlaWdodCA9IGhlaWdodHMuZ2V0KGtleSk7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50SXRlbUJvdHRvbSA9IGl0ZW1Ub3AgKyAoY2FjaGVIZWlnaHQgPT09IHVuZGVmaW5lZCA/IGl0ZW1IZWlnaHQgOiBjYWNoZUhlaWdodCk7XG4gICAgICAgICAgICAvLyBDaGVjayBpdGVtIHRvcCBpbiB0aGUgcmFuZ2VcbiAgICAgICAgICAgIGlmIChjdXJyZW50SXRlbUJvdHRvbSA+PSBvZmZzZXRUb3AgJiYgc3RhcnRJbmRleCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgc3RhcnRJbmRleCA9IGk7XG4gICAgICAgICAgICAgICAgc3RhcnRPZmZzZXQgPSBpdGVtVG9wO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gQ2hlY2sgaXRlbSBib3R0b20gaW4gdGhlIHJhbmdlLiBXZSB3aWxsIHJlbmRlciBhZGRpdGlvbmFsIG9uZSBpdGVtIGZvciBtb3Rpb24gdXNhZ2VcbiAgICAgICAgICAgIGlmIChjdXJyZW50SXRlbUJvdHRvbSA+IG9mZnNldFRvcCArIGhlaWdodCAmJiBlbmRJbmRleCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgZW5kSW5kZXggPSBpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaXRlbVRvcCA9IGN1cnJlbnRJdGVtQm90dG9tO1xuICAgICAgICB9XG4gICAgICAgIC8vIFdoZW4gc2Nyb2xsVG9wIGF0IHRoZSBlbmQgYnV0IGRhdGEgY3V0IHRvIHNtYWxsIGNvdW50IHdpbGwgcmVhY2ggdGhpc1xuICAgICAgICBpZiAoc3RhcnRJbmRleCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBzdGFydEluZGV4ID0gMDtcbiAgICAgICAgICAgIHN0YXJ0T2Zmc2V0ID0gMDtcbiAgICAgICAgICAgIGVuZEluZGV4ID0gTWF0aC5jZWlsKGhlaWdodCAvIGl0ZW1IZWlnaHQpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChlbmRJbmRleCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBlbmRJbmRleCA9IG1lcmdlZERhdGEubGVuZ3RoIC0gMTtcbiAgICAgICAgfVxuICAgICAgICAvLyBHaXZlIGNhY2hlIHRvIGltcHJvdmUgc2Nyb2xsIGV4cGVyaWVuY2VcbiAgICAgICAgZW5kSW5kZXggPSBNYXRoLm1pbihlbmRJbmRleCArIDEsIG1lcmdlZERhdGEubGVuZ3RoIC0gMSk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzY3JvbGxIZWlnaHQ6IGl0ZW1Ub3AsXG4gICAgICAgICAgICBzdGFydDogc3RhcnRJbmRleCxcbiAgICAgICAgICAgIGVuZDogZW5kSW5kZXgsXG4gICAgICAgICAgICBvZmZzZXQ6IHN0YXJ0T2Zmc2V0LFxuICAgICAgICB9O1xuICAgIH0sIFtpblZpcnR1YWwsIHVzZVZpcnR1YWwsIG9mZnNldFRvcCwgbWVyZ2VkRGF0YSwgaGVpZ2h0VXBkYXRlZE1hcmssIGhlaWdodF0pO1xuICAgIHJhbmdlUmVmLmN1cnJlbnQuc3RhcnQgPSBzdGFydDtcbiAgICByYW5nZVJlZi5jdXJyZW50LmVuZCA9IGVuZDtcbiAgICAvLyBXaGVuIHNjcm9sbCB1cCwgZmlyc3QgdmlzaWJsZSBpdGVtIGdldCByZWFsIGhlaWdodCBtYXkgbm90IHNhbWUgYXMgYGl0ZW1IZWlnaHRgLFxuICAgIC8vIFdoaWNoIHdpbGwgbWFrZSBzY3JvbGwganVtcC5cbiAgICAvLyBMZXQncyBzeW5jIHNjcm9sbCB0b3AgdG8gYXZvaWQganVtcFxuICAgIFJlYWN0LnVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGNoYW5nZWRSZWNvcmQgPSBoZWlnaHRzLmdldFJlY29yZCgpO1xuICAgICAgICBpZiAoY2hhbmdlZFJlY29yZC5zaXplID09PSAxKSB7XG4gICAgICAgICAgICBjb25zdCByZWNvcmRLZXkgPSBBcnJheS5mcm9tKGNoYW5nZWRSZWNvcmQua2V5cygpKVswXTtcbiAgICAgICAgICAgIGNvbnN0IHByZXZDYWNoZUhlaWdodCA9IGNoYW5nZWRSZWNvcmQuZ2V0KHJlY29yZEtleSk7XG4gICAgICAgICAgICAvLyBRdWljayBzd2l0Y2ggZGF0YSBtYXkgY2F1c2UgYHN0YXJ0YCBub3QgaW4gYG1lcmdlZERhdGFgIGFueW1vcmVcbiAgICAgICAgICAgIGNvbnN0IHN0YXJ0SXRlbSA9IG1lcmdlZERhdGFbc3RhcnRdO1xuICAgICAgICAgICAgaWYgKHN0YXJ0SXRlbSAmJiBwcmV2Q2FjaGVIZWlnaHQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHN0YXJ0SW5kZXhLZXkgPSBnZXRLZXkoc3RhcnRJdGVtKTtcbiAgICAgICAgICAgICAgICBpZiAoc3RhcnRJbmRleEtleSA9PT0gcmVjb3JkS2V5KSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlYWxTdGFydEhlaWdodCA9IGhlaWdodHMuZ2V0KHJlY29yZEtleSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGRpZmZIZWlnaHQgPSByZWFsU3RhcnRIZWlnaHQgLSBpdGVtSGVpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBzeW5jU2Nyb2xsVG9wKChvcmkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBvcmkgKyBkaWZmSGVpZ2h0O1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaGVpZ2h0cy5yZXNldFJlY29yZCgpO1xuICAgIH0sIFtzY3JvbGxIZWlnaHRdKTtcbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gU2l6ZSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICBjb25zdCBbc2l6ZSwgc2V0U2l6ZV0gPSBSZWFjdC51c2VTdGF0ZSh7IHdpZHRoOiAwLCBoZWlnaHQ6IGhlaWdodCAhPT0gbnVsbCAmJiBoZWlnaHQgIT09IHZvaWQgMCA/IGhlaWdodCA6IDAgfSk7XG4gICAgY29uc3Qgb25Ib2xkZXJSZXNpemUgPSAoc2l6ZUluZm8pID0+IHtcbiAgICAgICAgc2V0U2l6ZSh7XG4gICAgICAgICAgICB3aWR0aDogc2l6ZUluZm8ub2Zmc2V0V2lkdGgsXG4gICAgICAgICAgICBoZWlnaHQ6IHNpemVJbmZvLm9mZnNldEhlaWdodCxcbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICAvLyBIYWNrIG9uIHNjcm9sbGJhciB0byBlbmFibGUgZmxhc2ggY2FsbFxuICAgIGNvbnN0IHZlcnRpY2FsU2Nyb2xsQmFyUmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IGhvcml6b250YWxTY3JvbGxCYXJSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3QgaG9yaXpvbnRhbFNjcm9sbEJhclNwaW5TaXplID0gUmVhY3QudXNlTWVtbygoKSA9PiBnZXRTcGluU2l6ZShzaXplLndpZHRoLCBzY3JvbGxXaWR0aCksIFtzaXplLndpZHRoLCBzY3JvbGxXaWR0aF0pO1xuICAgIGNvbnN0IHZlcnRpY2FsU2Nyb2xsQmFyU3BpblNpemUgPSBSZWFjdC51c2VNZW1vKCgpID0+IGdldFNwaW5TaXplKHNpemUuaGVpZ2h0LCBzY3JvbGxIZWlnaHQpLCBbc2l6ZS5oZWlnaHQsIHNjcm9sbEhlaWdodF0pO1xuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gSW4gUmFuZ2UgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgIGNvbnN0IG1heFNjcm9sbEhlaWdodCA9IHNjcm9sbEhlaWdodCAtIGhlaWdodDtcbiAgICBjb25zdCBtYXhTY3JvbGxIZWlnaHRSZWYgPSB1c2VSZWYobWF4U2Nyb2xsSGVpZ2h0KTtcbiAgICBtYXhTY3JvbGxIZWlnaHRSZWYuY3VycmVudCA9IG1heFNjcm9sbEhlaWdodDtcbiAgICBmdW5jdGlvbiBrZWVwSW5SYW5nZShuZXdTY3JvbGxUb3ApIHtcbiAgICAgICAgbGV0IG5ld1RvcCA9IG5ld1Njcm9sbFRvcDtcbiAgICAgICAgaWYgKCFOdW1iZXIuaXNOYU4obWF4U2Nyb2xsSGVpZ2h0UmVmLmN1cnJlbnQpKSB7XG4gICAgICAgICAgICBuZXdUb3AgPSBNYXRoLm1pbihuZXdUb3AsIG1heFNjcm9sbEhlaWdodFJlZi5jdXJyZW50KTtcbiAgICAgICAgfVxuICAgICAgICBuZXdUb3AgPSBNYXRoLm1heChuZXdUb3AsIDApO1xuICAgICAgICByZXR1cm4gbmV3VG9wO1xuICAgIH1cbiAgICBjb25zdCBpc1Njcm9sbEF0VG9wID0gb2Zmc2V0VG9wIDw9IDA7XG4gICAgY29uc3QgaXNTY3JvbGxBdEJvdHRvbSA9IG9mZnNldFRvcCA+PSBtYXhTY3JvbGxIZWlnaHQ7XG4gICAgY29uc3QgaXNTY3JvbGxBdExlZnQgPSBvZmZzZXRMZWZ0IDw9IDA7XG4gICAgY29uc3QgaXNTY3JvbGxBdFJpZ2h0ID0gISFzY3JvbGxXaWR0aCAmJiBvZmZzZXRMZWZ0ID49IHNjcm9sbFdpZHRoIC0gc2l6ZS53aWR0aDtcbiAgICBjb25zdCBvcmlnaW5TY3JvbGwgPSB1c2VPcmlnaW5TY3JvbGwoaXNTY3JvbGxBdFRvcCwgaXNTY3JvbGxBdEJvdHRvbSwgaXNTY3JvbGxBdExlZnQsIGlzU2Nyb2xsQXRSaWdodCk7XG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gU2Nyb2xsID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgY29uc3QgZ2V0VmlydHVhbFNjcm9sbEluZm8gPSAoKSA9PiAoe1xuICAgICAgICB4OiBpc1JUTCA/IC1vZmZzZXRMZWZ0IDogb2Zmc2V0TGVmdCxcbiAgICAgICAgeTogb2Zmc2V0VG9wLFxuICAgIH0pO1xuICAgIGNvbnN0IGxhc3RWaXJ0dWFsU2Nyb2xsSW5mb1JlZiA9IHVzZVJlZihnZXRWaXJ0dWFsU2Nyb2xsSW5mbygpKTtcbiAgICBjb25zdCB0cmlnZ2VyU2Nyb2xsID0gdXNlRXZlbnRDYWxsYmFjaygocGFyYW1zKSA9PiB7XG4gICAgICAgIGlmIChvblZpcnR1YWxTY3JvbGwpIHtcbiAgICAgICAgICAgIGNvbnN0IG5leHRJbmZvID0gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBnZXRWaXJ0dWFsU2Nyb2xsSW5mbygpKSwgcGFyYW1zKTtcbiAgICAgICAgICAgIC8vIFRyaWdnZXIgd2hlbiBvZmZzZXQgY2hhbmdlZFxuICAgICAgICAgICAgaWYgKGxhc3RWaXJ0dWFsU2Nyb2xsSW5mb1JlZi5jdXJyZW50LnggIT09IG5leHRJbmZvLnggfHxcbiAgICAgICAgICAgICAgICBsYXN0VmlydHVhbFNjcm9sbEluZm9SZWYuY3VycmVudC55ICE9PSBuZXh0SW5mby55KSB7XG4gICAgICAgICAgICAgICAgb25WaXJ0dWFsU2Nyb2xsKG5leHRJbmZvKTtcbiAgICAgICAgICAgICAgICBsYXN0VmlydHVhbFNjcm9sbEluZm9SZWYuY3VycmVudCA9IG5leHRJbmZvO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSk7XG4gICAgZnVuY3Rpb24gb25TY3JvbGxCYXIobmV3U2Nyb2xsT2Zmc2V0LCBob3Jpem9udGFsKSB7XG4gICAgICAgIGNvbnN0IG5ld09mZnNldCA9IG5ld1Njcm9sbE9mZnNldDtcbiAgICAgICAgaWYgKGhvcml6b250YWwpIHtcbiAgICAgICAgICAgIGZsdXNoU3luYygoKSA9PiB7XG4gICAgICAgICAgICAgICAgc2V0T2Zmc2V0TGVmdChuZXdPZmZzZXQpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0cmlnZ2VyU2Nyb2xsKCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBzeW5jU2Nyb2xsVG9wKG5ld09mZnNldCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gV2hlbiBkYXRhIHNpemUgcmVkdWNlLiBJdCBtYXkgdHJpZ2dlciBuYXRpdmUgc2Nyb2xsIGV2ZW50IGJhY2sgdG8gZml0IHNjcm9sbCBwb3NpdGlvblxuICAgIGZ1bmN0aW9uIG9uRmFsbGJhY2tTY3JvbGwoZSkge1xuICAgICAgICBjb25zdCB7IHNjcm9sbFRvcDogbmV3U2Nyb2xsVG9wIH0gPSBlLmN1cnJlbnRUYXJnZXQ7XG4gICAgICAgIGlmIChuZXdTY3JvbGxUb3AgIT09IG9mZnNldFRvcCkge1xuICAgICAgICAgICAgc3luY1Njcm9sbFRvcChuZXdTY3JvbGxUb3ApO1xuICAgICAgICB9XG4gICAgICAgIC8vIFRyaWdnZXIgb3JpZ2luIG9uU2Nyb2xsXG4gICAgICAgIG9uU2Nyb2xsID09PSBudWxsIHx8IG9uU2Nyb2xsID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvblNjcm9sbChlKTtcbiAgICAgICAgdHJpZ2dlclNjcm9sbCgpO1xuICAgIH1cbiAgICBjb25zdCBrZWVwSW5Ib3Jpem9udGFsUmFuZ2UgPSAobmV4dE9mZnNldExlZnQpID0+IHtcbiAgICAgICAgbGV0IHRtcE9mZnNldExlZnQgPSBuZXh0T2Zmc2V0TGVmdDtcbiAgICAgICAgY29uc3QgbWF4ID0gc2Nyb2xsV2lkdGggPyBzY3JvbGxXaWR0aCAtIHNpemUud2lkdGggOiAwO1xuICAgICAgICB0bXBPZmZzZXRMZWZ0ID0gTWF0aC5tYXgodG1wT2Zmc2V0TGVmdCwgMCk7XG4gICAgICAgIHRtcE9mZnNldExlZnQgPSBNYXRoLm1pbih0bXBPZmZzZXRMZWZ0LCBtYXgpO1xuICAgICAgICByZXR1cm4gdG1wT2Zmc2V0TGVmdDtcbiAgICB9O1xuICAgIGNvbnN0IG9uV2hlZWxEZWx0YSA9IHVzZUV2ZW50Q2FsbGJhY2soKG9mZnNldFhZLCBmcm9tSG9yaXpvbnRhbCkgPT4ge1xuICAgICAgICBpZiAoZnJvbUhvcml6b250YWwpIHtcbiAgICAgICAgICAgIGZsdXNoU3luYygoKSA9PiB7XG4gICAgICAgICAgICAgICAgc2V0T2Zmc2V0TGVmdCgobGVmdCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXh0T2Zmc2V0TGVmdCA9IGxlZnQgKyAoaXNSVEwgPyAtb2Zmc2V0WFkgOiBvZmZzZXRYWSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBrZWVwSW5Ib3Jpem9udGFsUmFuZ2UobmV4dE9mZnNldExlZnQpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0cmlnZ2VyU2Nyb2xsKCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBzeW5jU2Nyb2xsVG9wKCh0b3ApID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBuZXdUb3AgPSB0b3AgKyBvZmZzZXRYWTtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3VG9wO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICAvLyBTaW5jZSB0aGlzIGFkZGVkIGluIGdsb2JhbCxzaG91bGQgdXNlIHJlZiB0byBrZWVwIHVwZGF0ZVxuICAgIGNvbnN0IFtvblJhd1doZWVsLCBvbkZpcmVGb3hTY3JvbGxdID0gdXNlRnJhbWVXaGVlbCh1c2VWaXJ0dWFsLCBpc1Njcm9sbEF0VG9wLCBpc1Njcm9sbEF0Qm90dG9tLCBpc1Njcm9sbEF0TGVmdCwgaXNTY3JvbGxBdFJpZ2h0LCAhIXNjcm9sbFdpZHRoLCBvbldoZWVsRGVsdGEpO1xuICAgIC8vIE1vYmlsZSB0b3VjaCBtb3ZlXG4gICAgdXNlTW9iaWxlVG91Y2hNb3ZlKHVzZVZpcnR1YWwsIGNvbXBvbmVudFJlZiwgKGlzSG9yaXpvbnRhbCwgZGVsdGEsIHNtb290aE9mZnNldCwgZSkgPT4ge1xuICAgICAgICBjb25zdCBldmVudCA9IGU7XG4gICAgICAgIGlmIChvcmlnaW5TY3JvbGwoaXNIb3Jpem9udGFsLCBkZWx0YSwgc21vb3RoT2Zmc2V0KSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIC8vIEZpeCBuZXN0IExpc3QgdHJpZ2dlciBUb3VjaE1vdmUgZXZlbnRcbiAgICAgICAgaWYgKCFldmVudCB8fCAhZXZlbnQuX3ZpcnR1YWxIYW5kbGVkKSB7XG4gICAgICAgICAgICBpZiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICBldmVudC5fdmlydHVhbEhhbmRsZWQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb25SYXdXaGVlbCh7XG4gICAgICAgICAgICAgICAgcHJldmVudERlZmF1bHQoKSB7IH0sXG4gICAgICAgICAgICAgICAgZGVsdGFYOiBpc0hvcml6b250YWwgPyBkZWx0YSA6IDAsXG4gICAgICAgICAgICAgICAgZGVsdGFZOiBpc0hvcml6b250YWwgPyAwIDogZGVsdGEsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9KTtcbiAgICAvLyBNb3VzZURvd24gZHJhZyBmb3Igc2Nyb2xsXG4gICAgdXNlU2Nyb2xsRHJhZyhpblZpcnR1YWwsIGNvbXBvbmVudFJlZiwgKG9mZnNldCkgPT4ge1xuICAgICAgICBzeW5jU2Nyb2xsVG9wKCh0b3ApID0+IHRvcCArIG9mZnNldCk7XG4gICAgfSk7XG4gICAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICAgICAgLy8gRmlyZWZveCBvbmx5XG4gICAgICAgIGZ1bmN0aW9uIG9uTW96TW91c2VQaXhlbFNjcm9sbChlKSB7XG4gICAgICAgICAgICAvLyBzY3JvbGxpbmcgYXQgdG9wL2JvdHRvbSBsaW1pdFxuICAgICAgICAgICAgY29uc3Qgc2Nyb2xsaW5nVXBBdFRvcCA9IGlzU2Nyb2xsQXRUb3AgJiYgZS5kZXRhaWwgPCAwO1xuICAgICAgICAgICAgY29uc3Qgc2Nyb2xsaW5nRG93bkF0Qm90dG9tID0gaXNTY3JvbGxBdEJvdHRvbSAmJiBlLmRldGFpbCA+IDA7XG4gICAgICAgICAgICBpZiAodXNlVmlydHVhbCAmJiAhc2Nyb2xsaW5nVXBBdFRvcCAmJiAhc2Nyb2xsaW5nRG93bkF0Qm90dG9tKSB7XG4gICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNvbXBvbmVudEVsZSA9IGNvbXBvbmVudFJlZi5jdXJyZW50O1xuICAgICAgICBjb21wb25lbnRFbGUuYWRkRXZlbnRMaXN0ZW5lcignd2hlZWwnLCBvblJhd1doZWVsLCB7IHBhc3NpdmU6IGZhbHNlIH0pO1xuICAgICAgICBjb21wb25lbnRFbGUuYWRkRXZlbnRMaXN0ZW5lcignRE9NTW91c2VTY3JvbGwnLCBvbkZpcmVGb3hTY3JvbGwsIHsgcGFzc2l2ZTogdHJ1ZSB9KTtcbiAgICAgICAgY29tcG9uZW50RWxlLmFkZEV2ZW50TGlzdGVuZXIoJ01vek1vdXNlUGl4ZWxTY3JvbGwnLCBvbk1vek1vdXNlUGl4ZWxTY3JvbGwsIHsgcGFzc2l2ZTogZmFsc2UgfSk7XG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICBjb21wb25lbnRFbGUucmVtb3ZlRXZlbnRMaXN0ZW5lcignd2hlZWwnLCBvblJhd1doZWVsKTtcbiAgICAgICAgICAgIGNvbXBvbmVudEVsZS5yZW1vdmVFdmVudExpc3RlbmVyKCdET01Nb3VzZVNjcm9sbCcsIG9uRmlyZUZveFNjcm9sbCk7XG4gICAgICAgICAgICBjb21wb25lbnRFbGUucmVtb3ZlRXZlbnRMaXN0ZW5lcignTW96TW91c2VQaXhlbFNjcm9sbCcsIG9uTW96TW91c2VQaXhlbFNjcm9sbCk7XG4gICAgICAgIH07XG4gICAgfSwgW3VzZVZpcnR1YWwsIGlzU2Nyb2xsQXRUb3AsIGlzU2Nyb2xsQXRCb3R0b21dKTtcbiAgICAvLyBTeW5jIHNjcm9sbCBsZWZ0XG4gICAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKHNjcm9sbFdpZHRoKSB7XG4gICAgICAgICAgICBjb25zdCBuZXdPZmZzZXRMZWZ0ID0ga2VlcEluSG9yaXpvbnRhbFJhbmdlKG9mZnNldExlZnQpO1xuICAgICAgICAgICAgc2V0T2Zmc2V0TGVmdChuZXdPZmZzZXRMZWZ0KTtcbiAgICAgICAgICAgIHRyaWdnZXJTY3JvbGwoeyB4OiBuZXdPZmZzZXRMZWZ0IH0pO1xuICAgICAgICB9XG4gICAgfSwgW3NpemUud2lkdGgsIHNjcm9sbFdpZHRoXSk7XG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IFJlZiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgY29uc3QgZGVsYXlIaWRlU2Nyb2xsQmFyID0gKCkgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICAoX2EgPSB2ZXJ0aWNhbFNjcm9sbEJhclJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZGVsYXlIaWRkZW4oKTtcbiAgICAgICAgKF9iID0gaG9yaXpvbnRhbFNjcm9sbEJhclJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuZGVsYXlIaWRkZW4oKTtcbiAgICB9O1xuICAgIGNvbnN0IHNjcm9sbFRvID0gdXNlU2Nyb2xsVG8oY29tcG9uZW50UmVmLCBtZXJnZWREYXRhLCBoZWlnaHRzLCBpdGVtSGVpZ2h0LCBnZXRLZXksICgpID0+IGNvbGxlY3RIZWlnaHQodHJ1ZSksIHN5bmNTY3JvbGxUb3AsIGRlbGF5SGlkZVNjcm9sbEJhcik7XG4gICAgUmVhY3QudXNlSW1wZXJhdGl2ZUhhbmRsZShyZWYsICgpID0+ICh7XG4gICAgICAgIG5hdGl2ZUVsZW1lbnQ6IGNvbnRhaW5lclJlZi5jdXJyZW50LFxuICAgICAgICBnZXRTY3JvbGxJbmZvOiBnZXRWaXJ0dWFsU2Nyb2xsSW5mbyxcbiAgICAgICAgc2Nyb2xsVG86IChjb25maWcpID0+IHtcbiAgICAgICAgICAgIGZ1bmN0aW9uIGlzUG9zU2Nyb2xsKGFyZykge1xuICAgICAgICAgICAgICAgIHJldHVybiBhcmcgJiYgdHlwZW9mIGFyZyA9PT0gJ29iamVjdCcgJiYgKCdsZWZ0JyBpbiBhcmcgfHwgJ3RvcCcgaW4gYXJnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpc1Bvc1Njcm9sbChjb25maWcpKSB7XG4gICAgICAgICAgICAgICAgLy8gU2Nyb2xsIFhcbiAgICAgICAgICAgICAgICBpZiAoY29uZmlnLmxlZnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICBzZXRPZmZzZXRMZWZ0KGtlZXBJbkhvcml6b250YWxSYW5nZShjb25maWcubGVmdCkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBTY3JvbGwgWVxuICAgICAgICAgICAgICAgIHNjcm9sbFRvKGNvbmZpZy50b3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgc2Nyb2xsVG8oY29uZmlnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICB9KSk7XG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gRWZmZWN0ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgLyoqIFdlIG5lZWQgdG9sZCBvdXRzaWRlIHRoYXQgc29tZSBsaXN0IG5vdCByZW5kZXJlZCAqL1xuICAgIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmIChvblZpc2libGVDaGFuZ2UpIHtcbiAgICAgICAgICAgIGNvbnN0IHJlbmRlckxpc3QgPSBtZXJnZWREYXRhLnNsaWNlKHN0YXJ0LCBlbmQgKyAxKTtcbiAgICAgICAgICAgIG9uVmlzaWJsZUNoYW5nZShyZW5kZXJMaXN0LCBtZXJnZWREYXRhKTtcbiAgICAgICAgfVxuICAgIH0sIFtzdGFydCwgZW5kLCBtZXJnZWREYXRhXSk7XG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gRXh0cmEgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgY29uc3QgZ2V0U2l6ZSA9IHVzZUdldFNpemUobWVyZ2VkRGF0YSwgZ2V0S2V5LCBoZWlnaHRzLCBpdGVtSGVpZ2h0KTtcbiAgICBjb25zdCBleHRyYUNvbnRlbnQgPSBleHRyYVJlbmRlciA9PT0gbnVsbCB8fCBleHRyYVJlbmRlciA9PT0gdm9pZCAwID8gdm9pZCAwIDogZXh0cmFSZW5kZXIoe1xuICAgICAgICBzdGFydCxcbiAgICAgICAgZW5kLFxuICAgICAgICB2aXJ0dWFsOiBpblZpcnR1YWwsXG4gICAgICAgIG9mZnNldFg6IG9mZnNldExlZnQsXG4gICAgICAgIG9mZnNldFk6IGZpbGxlck9mZnNldCxcbiAgICAgICAgcnRsOiBpc1JUTCxcbiAgICAgICAgZ2V0U2l6ZSxcbiAgICB9KTtcbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBSZW5kZXIgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICBjb25zdCBsaXN0Q2hpbGRyZW4gPSB1c2VDaGlsZHJlbihtZXJnZWREYXRhLCBzdGFydCwgZW5kLCBzY3JvbGxXaWR0aCwgb2Zmc2V0TGVmdCwgc2V0SW5zdGFuY2VSZWYsIGNoaWxkcmVuLCBzaGFyZWRDb25maWcpO1xuICAgIGxldCBjb21wb25lbnRTdHlsZSA9IHVuZGVmaW5lZDtcbiAgICBpZiAoaGVpZ2h0KSB7XG4gICAgICAgIGNvbXBvbmVudFN0eWxlID0gT2JqZWN0LmFzc2lnbih7IFtmdWxsSGVpZ2h0ID8gJ2hlaWdodCcgOiAnbWF4SGVpZ2h0J106IGhlaWdodCB9LCBTY3JvbGxTdHlsZSk7XG4gICAgICAgIGlmICh1c2VWaXJ0dWFsKSB7XG4gICAgICAgICAgICBjb21wb25lbnRTdHlsZS5vdmVyZmxvd1kgPSAnaGlkZGVuJztcbiAgICAgICAgICAgIGlmIChzY3JvbGxXaWR0aCkge1xuICAgICAgICAgICAgICAgIGNvbXBvbmVudFN0eWxlLm92ZXJmbG93WCA9ICdoaWRkZW4nO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHNjcm9sbE1vdmluZykge1xuICAgICAgICAgICAgICAgIGNvbXBvbmVudFN0eWxlLnBvaW50ZXJFdmVudHMgPSAnbm9uZSc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgY29udGFpbmVyUHJvcHMgPSB7fTtcbiAgICBpZiAoaXNSVEwpIHtcbiAgICAgICAgY29udGFpbmVyUHJvcHMuZGlyID0gJ3J0bCc7XG4gICAgfVxuICAgIHJldHVybiAoX2pzeHMoXCJkaXZcIiwgT2JqZWN0LmFzc2lnbih7IHJlZjogY29udGFpbmVyUmVmLCBzdHlsZTogT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBzdHlsZSksIHsgcG9zaXRpb246ICdyZWxhdGl2ZScgfSksIGNsYXNzTmFtZTogbWVyZ2VkQ2xhc3NOYW1lIH0sIGNvbnRhaW5lclByb3BzLCByZXN0UHJvcHMsIHsgY2hpbGRyZW46IFtfanN4KFJlc2l6ZU9ic2VydmVyLCB7IG9uUmVzaXplOiBvbkhvbGRlclJlc2l6ZSwgY2hpbGRyZW46IF9qc3goQ29tcG9uZW50LCB7IGNsYXNzTmFtZTogYCR7cHJlZml4Q2xzfS1ob2xkZXJgLCBzdHlsZTogY29tcG9uZW50U3R5bGUsIHJlZjogY29tcG9uZW50UmVmLCBvblNjcm9sbDogb25GYWxsYmFja1Njcm9sbCwgb25Nb3VzZUVudGVyOiBkZWxheUhpZGVTY3JvbGxCYXIsIGNoaWxkcmVuOiBfanN4KEZpbGxlciwgeyBwcmVmaXhDbHM6IHByZWZpeENscywgaGVpZ2h0OiBzY3JvbGxIZWlnaHQsIG9mZnNldFg6IG9mZnNldExlZnQsIG9mZnNldFk6IGZpbGxlck9mZnNldCwgc2Nyb2xsV2lkdGg6IHNjcm9sbFdpZHRoLCBvbklubmVyUmVzaXplOiBjb2xsZWN0SGVpZ2h0LCByZWY6IGZpbGxlcklubmVyUmVmLCBpbm5lclByb3BzOiBpbm5lclByb3BzLCBydGw6IGlzUlRMLCBleHRyYTogZXh0cmFDb250ZW50LCBjaGlsZHJlbjogbGlzdENoaWxkcmVuIH0pIH0pIH0pLCBpblZpcnR1YWwgJiYgc2Nyb2xsSGVpZ2h0ID4gaGVpZ2h0ICYmIChfanN4KFNjcm9sbEJhciwgeyByZWY6IHZlcnRpY2FsU2Nyb2xsQmFyUmVmLCBwcmVmaXhDbHM6IHByZWZpeENscywgc2Nyb2xsT2Zmc2V0OiBvZmZzZXRUb3AsIHNjcm9sbFJhbmdlOiBzY3JvbGxIZWlnaHQsIHJ0bDogaXNSVEwsIG9uU2Nyb2xsOiBvblNjcm9sbEJhciwgb25TdGFydE1vdmU6IG9uU2Nyb2xsYmFyU3RhcnRNb3ZlLCBvblN0b3BNb3ZlOiBvblNjcm9sbGJhclN0b3BNb3ZlLCBzcGluU2l6ZTogdmVydGljYWxTY3JvbGxCYXJTcGluU2l6ZSwgY29udGFpbmVyU2l6ZTogc2l6ZS5oZWlnaHQsIHN0eWxlOiBzdHlsZXMgPT09IG51bGwgfHwgc3R5bGVzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzdHlsZXMudmVydGljYWxTY3JvbGxCYXIsIHRodW1iU3R5bGU6IHN0eWxlcyA9PT0gbnVsbCB8fCBzdHlsZXMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHN0eWxlcy52ZXJ0aWNhbFNjcm9sbEJhclRodW1iLCBzaG93U2Nyb2xsQmFyOiBzaG93U2Nyb2xsQmFyIH0pKSwgaW5WaXJ0dWFsICYmIHNjcm9sbFdpZHRoID4gc2l6ZS53aWR0aCAmJiAoX2pzeChTY3JvbGxCYXIsIHsgcmVmOiBob3Jpem9udGFsU2Nyb2xsQmFyUmVmLCBwcmVmaXhDbHM6IHByZWZpeENscywgc2Nyb2xsT2Zmc2V0OiBvZmZzZXRMZWZ0LCBzY3JvbGxSYW5nZTogc2Nyb2xsV2lkdGgsIHJ0bDogaXNSVEwsIG9uU2Nyb2xsOiBvblNjcm9sbEJhciwgb25TdGFydE1vdmU6IG9uU2Nyb2xsYmFyU3RhcnRNb3ZlLCBvblN0b3BNb3ZlOiBvblNjcm9sbGJhclN0b3BNb3ZlLCBzcGluU2l6ZTogaG9yaXpvbnRhbFNjcm9sbEJhclNwaW5TaXplLCBjb250YWluZXJTaXplOiBzaXplLndpZHRoLCBob3Jpem9udGFsOiB0cnVlLCBzdHlsZTogc3R5bGVzID09PSBudWxsIHx8IHN0eWxlcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogc3R5bGVzLmhvcml6b250YWxTY3JvbGxCYXIsIHRodW1iU3R5bGU6IHN0eWxlcyA9PT0gbnVsbCB8fCBzdHlsZXMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHN0eWxlcy5ob3Jpem9udGFsU2Nyb2xsQmFyVGh1bWIsIHNob3dTY3JvbGxCYXI6IHNob3dTY3JvbGxCYXIgfSkpXSB9KSkpO1xufVxuY29uc3QgVmlydHVhbExpc3RCYXNlID0gUmVhY3QuZm9yd2FyZFJlZihSYXdMaXN0KTtcblZpcnR1YWxMaXN0QmFzZS5kaXNwbGF5TmFtZSA9IFZJUlRVQUxfTElTVF9DT01QT05FTlRfTkFNRTtcbmNvbnN0IFZpcnR1YWxMaXN0ID0gUmVhY3QubWVtbyhWaXJ0dWFsTGlzdEJhc2UpO1xuZXhwb3J0IGRlZmF1bHQgVmlydHVhbExpc3Q7IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
|
|
544
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvVmlydHVhbExpc3QvVmlydHVhbExpc3QuanMiLCJjb21wb25lbnRzL3NyYy9jb21wb25lbnRzL1ZpcnR1YWxMaXN0L1ZpcnR1YWxMaXN0LnRzeCJdLCJuYW1lcyI6WyJfX3Jlc3QiLCJzIiwiZSIsInQiLCJwIiwiT2JqZWN0IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaW5kZXhPZiIsImdldE93blByb3BlcnR5U3ltYm9scyIsImkiLCJsZW5ndGgiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJjbHN4IiwiUmVzaXplT2JzZXJ2ZXIiLCJ1c2VMYXlvdXRFZmZlY3QiLCJ1c2VFdmVudENhbGxiYWNrIiwiUmVhY3QiLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsImZsdXNoU3luYyIsIkZpbGxlciIsInVzZUNoaWxkcmVuIiwidXNlRGlmZkl0ZW0iLCJ1c2VGcmFtZVdoZWVsIiwidXNlR2V0U2l6ZSIsInVzZUhlaWdodHMiLCJ1c2VNb2JpbGVUb3VjaE1vdmUiLCJ1c2VPcmlnaW5TY3JvbGwiLCJ1c2VTY3JvbGxEcmFnIiwidXNlU2Nyb2xsVG8iLCJTY3JvbGxCYXIiLCJnZXRTcGluU2l6ZSIsIlZJUlRVQUxfTElTVF9DT01QT05FTlRfTkFNRSIsIlZJUlRVQUxfTElTVF9QUkVGSVhDTFMiLCJFTVBUWV9EQVRBIiwiU2Nyb2xsU3R5bGUiLCJvdmVyZmxvd1kiLCJvdmVyZmxvd0FuY2hvciIsIlJhd0xpc3QiLCJwcm9wcyIsInJlZiIsIl9wcm9wcyRwcmVmaXhDbHMiLCJwcmVmaXhDbHMiLCJjbGFzc05hbWUiLCJoZWlnaHQiLCJpdGVtSGVpZ2h0IiwiX3Byb3BzJGZ1bGxIZWlnaHQiLCJmdWxsSGVpZ2h0Iiwic3R5bGUiLCJkYXRhIiwiY2hpbGRyZW4iLCJpdGVtS2V5IiwidmlydHVhbCIsImRpcmVjdGlvbiIsInNjcm9sbFdpZHRoIiwiX3Byb3BzJGNvbXBvbmVudCIsImNvbXBvbmVudCIsIkNvbXBvbmVudCIsIm9uU2Nyb2xsIiwib25WaXJ0dWFsU2Nyb2xsIiwib25WaXNpYmxlQ2hhbmdlIiwiaW5uZXJQcm9wcyIsImV4dHJhUmVuZGVyIiwic3R5bGVzIiwiX3Byb3BzJHNob3dTY3JvbGxCYXIiLCJzaG93U2Nyb2xsQmFyIiwicmVzdFByb3BzIiwiZ2V0S2V5IiwidXNlQ2FsbGJhY2siLCJpdGVtIiwiX3VzZUhlaWdodHMiLCJ1bmRlZmluZWQiLCJfdXNlSGVpZ2h0czIiLCJfc2xpY2VkVG9BcnJheSIsInNldEluc3RhbmNlUmVmIiwiY29sbGVjdEhlaWdodCIsImhlaWdodHMiLCJoZWlnaHRVcGRhdGVkTWFyayIsInVzZVZpcnR1YWwiLCJjb250YWluZXJIZWlnaHQiLCJ1c2VNZW1vIiwidmFsdWVzIiwibWFwcyIsInJlZHVjZSIsInRvdGFsIiwiY3VyciIsImlkIiwiaW5WaXJ0dWFsIiwiTWF0aCIsIm1heCIsImlzUlRMIiwibWVyZ2VkQ2xhc3NOYW1lIiwiX2RlZmluZVByb3BlcnR5IiwiY29uY2F0IiwibWVyZ2VkRGF0YSIsImNvbXBvbmVudFJlZiIsImZpbGxlcklubmVyUmVmIiwiY29udGFpbmVyUmVmIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIm9mZnNldFRvcCIsInNldE9mZnNldFRvcCIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0Iiwib2Zmc2V0TGVmdCIsInNldE9mZnNldExlZnQiLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsInNjcm9sbE1vdmluZyIsInNldFNjcm9sbE1vdmluZyIsIm9mZnNldFRvcFJlZiIsIm9uU2Nyb2xsYmFyU3RhcnRNb3ZlIiwib25TY3JvbGxiYXJTdG9wTW92ZSIsInNoYXJlZENvbmZpZyIsInN5bmNTY3JvbGxUb3AiLCJuZXdUb3AiLCJ2YWx1ZSIsImN1cnJlbnQiLCJhbGlnbmVkVG9wIiwia2VlcEluUmFuZ2UiLCJzY3JvbGxUb3AiLCJjdXJyZW50VGFyZ2V0IiwicmFuZ2VSZWYiLCJzdGFydCIsImVuZCIsImRpZmZJdGVtUmVmIiwiX3VzZURpZmZJdGVtIiwiX3VzZURpZmZJdGVtMiIsImRpZmZJdGVtIiwiX1JlYWN0JHVzZU1lbW8iLCJfYSIsInNjcm9sbEhlaWdodCIsIm9mZnNldCIsIm9mZnNldEhlaWdodCIsIml0ZW1Ub3AiLCJzdGFydEluZGV4Iiwic3RhcnRPZmZzZXQiLCJlbmRJbmRleCIsImRhdGFMZW4iLCJrZXkiLCJjYWNoZUhlaWdodCIsImdldCIsImN1cnJlbnRJdGVtQm90dG9tIiwiY2VpbCIsIm1pbiIsImZpbGxlck9mZnNldCIsImNoYW5nZWRSZWNvcmQiLCJnZXRSZWNvcmQiLCJzaXplIiwicmVjb3JkS2V5IiwiQXJyYXkiLCJmcm9tIiwia2V5cyIsInByZXZDYWNoZUhlaWdodCIsInN0YXJ0SXRlbSIsInN0YXJ0SW5kZXhLZXkiLCJyZWFsU3RhcnRIZWlnaHQiLCJkaWZmSGVpZ2h0Iiwib3JpIiwicmVzZXRSZWNvcmQiLCJfUmVhY3QkdXNlU3RhdGUiLCJ3aWR0aCIsIl9SZWFjdCR1c2VTdGF0ZTIiLCJzZXRTaXplIiwib25Ib2xkZXJSZXNpemUiLCJzaXplSW5mbyIsIm9mZnNldFdpZHRoIiwidmVydGljYWxTY3JvbGxCYXJSZWYiLCJob3Jpem9udGFsU2Nyb2xsQmFyUmVmIiwiaG9yaXpvbnRhbFNjcm9sbEJhclNwaW5TaXplIiwidmVydGljYWxTY3JvbGxCYXJTcGluU2l6ZSIsIm1heFNjcm9sbEhlaWdodCIsIm1heFNjcm9sbEhlaWdodFJlZiIsIm5ld1Njcm9sbFRvcCIsIk51bWJlciIsImlzTmFOIiwiaXNTY3JvbGxBdFRvcCIsImlzU2Nyb2xsQXRCb3R0b20iLCJpc1Njcm9sbEF0TGVmdCIsImlzU2Nyb2xsQXRSaWdodCIsIm9yaWdpblNjcm9sbCIsImdldFZpcnR1YWxTY3JvbGxJbmZvIiwieCIsInkiLCJsYXN0VmlydHVhbFNjcm9sbEluZm9SZWYiLCJ0cmlnZ2VyU2Nyb2xsIiwicGFyYW1zIiwibmV4dEluZm8iLCJhc3NpZ24iLCJvblNjcm9sbEJhciIsIm5ld1Njcm9sbE9mZnNldCIsImhvcml6b250YWwiLCJuZXdPZmZzZXQiLCJvbkZhbGxiYWNrU2Nyb2xsIiwia2VlcEluSG9yaXpvbnRhbFJhbmdlIiwibmV4dE9mZnNldExlZnQiLCJ0bXBPZmZzZXRMZWZ0Iiwib25XaGVlbERlbHRhIiwib2Zmc2V0WFkiLCJmcm9tSG9yaXpvbnRhbCIsImxlZnQiLCJ0b3AiLCJfdXNlRnJhbWVXaGVlbCIsIl91c2VGcmFtZVdoZWVsMiIsIm9uUmF3V2hlZWwiLCJvbkZpcmVGb3hTY3JvbGwiLCJpc0hvcml6b250YWwiLCJkZWx0YSIsInNtb290aE9mZnNldCIsImV2ZW50IiwiX3ZpcnR1YWxIYW5kbGVkIiwicHJldmVudERlZmF1bHQiLCJkZWx0YVgiLCJkZWx0YVkiLCJvbk1vek1vdXNlUGl4ZWxTY3JvbGwiLCJzY3JvbGxpbmdVcEF0VG9wIiwiZGV0YWlsIiwic2Nyb2xsaW5nRG93bkF0Qm90dG9tIiwiY29tcG9uZW50RWxlIiwiYWRkRXZlbnRMaXN0ZW5lciIsInBhc3NpdmUiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwibmV3T2Zmc2V0TGVmdCIsImRlbGF5SGlkZVNjcm9sbEJhciIsIl9iIiwiZGVsYXlIaWRkZW4iLCJzY3JvbGxUbyIsInVzZUltcGVyYXRpdmVIYW5kbGUiLCJuYXRpdmVFbGVtZW50IiwiZ2V0U2Nyb2xsSW5mbyIsImNvbmZpZyIsImlzUG9zU2Nyb2xsIiwiYXJnIiwiX3R5cGVvZiIsInJlbmRlckxpc3QiLCJzbGljZSIsImdldFNpemUiLCJleHRyYUNvbnRlbnQiLCJvZmZzZXRYIiwib2Zmc2V0WSIsInJ0bCIsImxpc3RDaGlsZHJlbiIsImNvbXBvbmVudFN0eWxlIiwib3ZlcmZsb3dYIiwicG9pbnRlckV2ZW50cyIsImNvbnRhaW5lclByb3BzIiwiZGlyIiwicG9zaXRpb24iLCJvblJlc2l6ZSIsIm9uTW91c2VFbnRlciIsIm9uSW5uZXJSZXNpemUiLCJleHRyYSIsInNjcm9sbE9mZnNldCIsInNjcm9sbFJhbmdlIiwib25TdGFydE1vdmUiLCJvblN0b3BNb3ZlIiwic3BpblNpemUiLCJjb250YWluZXJTaXplIiwidmVydGljYWxTY3JvbGxCYXIiLCJ0aHVtYlN0eWxlIiwidmVydGljYWxTY3JvbGxCYXJUaHVtYiIsImhvcml6b250YWxTY3JvbGxCYXIiLCJob3Jpem9udGFsU2Nyb2xsQmFyVGh1bWIiLCJWaXJ0dWFsTGlzdEJhc2UiLCJmb3J3YXJkUmVmIiwiZGlzcGxheU5hbWUiLCJWaXJ0dWFsTGlzdCIsIm1lbW8iXSwibWFwcGluZ3MiOiI7OztBQUFBLElBQUlBLE1BQU0sR0FBSSxJQUFJLElBQUksSUFBSSxDQUFDQSxNQUFNLElBQUssVUFBVUMsQ0FBQyxFQUFFQyxDQUFDLEVBQUU7RUFDbEQsSUFBSUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztFQUNWLEtBQUssSUFBSUMsQ0FBQyxJQUFJSCxDQUFDLEVBQUUsSUFBSUksTUFBTSxDQUFDQyxTQUFTLENBQUNDLGNBQWMsQ0FBQ0MsSUFBSSxDQUFDUCxDQUFDLEVBQUVHLENBQUMsQ0FBQyxJQUFJRixDQUFDLENBQUNPLE9BQU8sQ0FBQ0wsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUMvRUQsQ0FBQyxDQUFDQyxDQUFDLENBQUMsR0FBR0gsQ0FBQyxDQUFDRyxDQUFDLENBQUM7RUFDZixJQUFJSCxDQUFDLElBQUksSUFBSSxJQUFJLE9BQU9JLE1BQU0sQ0FBQ0sscUJBQXFCLEtBQUssVUFBVSxFQUMvRCxLQUFLLElBQUlDLENBQUMsR0FBRyxDQUFDLEVBQUVQLENBQUMsR0FBR0MsTUFBTSxDQUFDSyxxQkFBcUIsQ0FBQ1QsQ0FBQyxDQUFDLEVBQUVVLENBQUMsR0FBR1AsQ0FBQyxDQUFDUSxNQUFNLEVBQUVELENBQUMsRUFBRSxFQUFFO0lBQ3BFLElBQUlULENBQUMsQ0FBQ08sT0FBTyxDQUFDTCxDQUFDLENBQUNPLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJTixNQUFNLENBQUNDLFNBQVMsQ0FBQ08sb0JBQW9CLENBQUNMLElBQUksQ0FBQ1AsQ0FBQyxFQUFFRyxDQUFDLENBQUNPLENBQUMsQ0FBQyxDQUFDLEVB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QUFNLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQU5BLE1BQU0sQ0FBRXNNLG1CQUFtQjtNQUNsQ0YsVUFBVSxFQUFFcE0sTUFBTSxLQUFBLElBQUEsSUFBTkEsTUFBTSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFOQSxNQUFNLENBQUV1TSx3QkFBd0I7TUFDNUNyTSxhQUFhLEVBQUVBO0lBQWEsQ0FBQSxDQUUvQjtFQUFBLENBQUEsQ0FBQSxDQUNHO0FBRVY7QUFFQSxJQUFNc00sZUFBZSxnQkFBR3ZQLEtBQUssQ0FBQ3dQLFVBQVUsQ0FBMEJsTyxPQUFPLENBQUM7QUFFMUVpTyxlQUFlLENBQUNFLFdBQVcsR0FBR3pPLDJCQUEyQjtBQUV6RCxJQUFNME8sV0FBVyxnQkFBRzFQLEtBQUssQ0FBQzJQLElBQUksQ0FBQ0osZUFBZSxDQUV2QjtBQUV2QixlQUFlRyxXQUFXIiwiZmlsZSI6ImNvbXBvbmVudHMvVmlydHVhbExpc3QvVmlydHVhbExpc3QuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19yZXN0ID0gKHRoaXMgJiYgdGhpcy5fX3Jlc3QpIHx8IGZ1bmN0aW9uIChzLCBlKSB7XG4gICAgdmFyIHQgPSB7fTtcbiAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMClcbiAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxuICAgICAgICBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpXG4gICAgICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XG4gICAgICAgIH1cbiAgICByZXR1cm4gdDtcbn07XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgY2xzeCB9IGZyb20gJ2Nsc3gnO1xuaW1wb3J0IFJlc2l6ZU9ic2VydmVyIGZyb20gJy4uL1Jlc2l6ZU9ic2VydmVyJztcbmltcG9ydCB1c2VMYXlvdXRFZmZlY3QgZnJvbSAnQDFtb25leS9ob29rcy91c2VMYXlvdXRFZmZlY3QnO1xuaW1wb3J0IHVzZUV2ZW50Q2FsbGJhY2sgZnJvbSAnQDFtb25leS9ob29rcy91c2VFdmVudENhbGxiYWNrJztcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBmbHVzaFN5bmMgfSBmcm9tICdyZWFjdC1kb20nO1xuaW1wb3J0IEZpbGxlciBmcm9tICcuL0ZpbGxlcic7XG5pbXBvcnQgdXNlQ2hpbGRyZW4gZnJvbSAnLi9ob29rcy91c2VDaGlsZHJlbic7XG5pbXBvcnQgdXNlRGlmZkl0ZW0gZnJvbSAnLi9ob29rcy91c2VEaWZmSXRlbSc7XG5pbXBvcnQgdXNlRnJhbWVXaGVlbCBmcm9tICcuL2hvb2tzL3VzZUZyYW1lV2hlZWwnO1xuaW1wb3J0IHsgdXNlR2V0U2l6ZSB9IGZyb20gJy4vaG9va3MvdXNlR2V0U2l6ZSc7XG5pbXBvcnQgdXNlSGVpZ2h0cyBmcm9tICcuL2hvb2tzL3VzZUhlaWdodHMnO1xuaW1wb3J0IHVzZU1vYmlsZVRvdWNoTW92ZSBmcm9tICcuL2hvb2tzL3VzZU1vYmlsZVRvdWNoTW92ZSc7XG5pbXBvcnQgdXNlT3JpZ2luU2Nyb2xsIGZyb20gJy4vaG9va3MvdXNlT3JpZ2luU2Nyb2xsJztcbmltcG9ydCB1c2VTY3JvbGxEcmFnIGZyb20gJy4vaG9va3MvdXNlU2Nyb2xsRHJhZyc7XG5pbXBvcnQgdXNlU2Nyb2xsVG8gZnJvbSAnLi9ob29rcy91c2VTY3JvbGxUbyc7XG5pbXBvcnQgU2Nyb2xsQmFyIGZyb20gJy4vU2Nyb2xsQmFyJztcbmltcG9ydCB7IGdldFNwaW5TaXplIH0gZnJvbSAnLi91dGlscy9zY3JvbGxiYXJVdGlsJztcbmltcG9ydCB7IFZJUlRVQUxfTElTVF9DT01QT05FTlRfTkFNRSwgVklSVFVBTF9MSVNUX1BSRUZJWENMUywgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgJy4vc3R5bGUnO1xuY29uc3QgRU1QVFlfREFUQSA9IFtdO1xuY29uc3QgU2Nyb2xsU3R5bGUgPSB7XG4gICAgb3ZlcmZsb3dZOiAnYXV0bycsXG4gICAgb3ZlcmZsb3dBbmNob3I6ICdub25lJyxcbn07XG5leHBvcnQgZnVuY3Rpb24gUmF3TGlzdChwcm9wcywgcmVmKSB7XG4gICAgY29uc3QgeyBwcmVmaXhDbHMgPSBWSVJUVUFMX0xJU1RfUFJFRklYQ0xTLCBjbGFzc05hbWUsIGhlaWdodCwgaXRlbUhlaWdodCwgZnVsbEhlaWdodCA9IHRydWUsIHN0eWxlLCBkYXRhLCBjaGlsZHJlbiwgaXRlbUtleSwgdmlydHVhbCwgZGlyZWN0aW9uLCBzY3JvbGxXaWR0aCwgY29tcG9uZW50OiBDb21wb25lbnQgPSAnZGl2Jywgb25TY3JvbGwsIG9uVmlydHVhbFNjcm9sbCwgb25WaXNpYmxlQ2hhbmdlLCBpbm5lclByb3BzLCBleHRyYVJlbmRlciwgc3R5bGVzLCBzaG93U2Nyb2xsQmFyID0gJ29wdGlvbmFsJyB9ID0gcHJvcHMsIHJlc3RQcm9wcyA9IF9fcmVzdChwcm9wcywgW1wicHJlZml4Q2xzXCIsIFwiY2xhc3NOYW1lXCIsIFwiaGVpZ2h0XCIsIFwiaXRlbUhlaWdodFwiLCBcImZ1bGxIZWlnaHRcIiwgXCJzdHlsZVwiLCBcImRhdGFcIiwgXCJjaGlsZHJlblwiLCBcIml0ZW1LZXlcIiwgXCJ2aXJ0dWFsXCIsIFwiZGlyZWN0aW9uXCIsIFwic2Nyb2xsV2lkdGhcIiwgXCJjb21wb25lbnRcIiwgXCJvblNjcm9sbFwiLCBcIm9uVmlydHVhbFNjcm9sbFwiLCBcIm9uVmlzaWJsZUNoYW5nZVwiLCBcImlubmVyUHJvcHNcIiwgXCJleHRyYVJlbmRlclwiLCBcInN0eWxlc1wiLCBcInNob3dTY3JvbGxCYXJcIl0pO1xuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gSXRlbSBLZXkgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgIGNvbnN0IGdldEtleSA9IFJlYWN0LnVzZUNhbGxiYWNrKChpdGVtKSA9PiB7XG4gICAgICAgIGlmICh0eXBlb2YgaXRlbUtleSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgcmV0dXJuIGl0ZW1LZXkoaXRlbSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGl0ZW0gPT09IG51bGwgfHwgaXRlbSA9PT0gdm9pZCAwID8gdm9pZCAwIDogaXRlbVtpdGVtS2V5XTtcbiAgICB9LCBbaXRlbUtleV0pO1xuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IEhlaWdodCA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgIGNvbnN0IFtzZXRJbnN0YW5jZVJlZiwgY29sbGVjdEhlaWdodCwgaGVpZ2h0cywgaGVpZ2h0VXBkYXRlZE1hcmtdID0gdXNlSGVpZ2h0cyhnZXRLZXksIHVuZGVmaW5lZCwgdW5kZWZpbmVkKTtcbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gTUlTQyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICBjb25zdCB1c2VWaXJ0dWFsID0gISEodmlydHVhbCAhPT0gZmFsc2UgJiYgaGVpZ2h0ICYmIGl0ZW1IZWlnaHQpO1xuICAgIGNvbnN0IGNvbnRhaW5lckhlaWdodCA9IFJlYWN0LnVzZU1lbW8oKCkgPT4gT2JqZWN0LnZhbHVlcyhoZWlnaHRzLm1hcHMpLnJlZHVjZSgodG90YWwsIGN1cnIpID0+IHRvdGFsICsgY3VyciwgMCksIFtoZWlnaHRzLmlkXSk7XG4gICAgY29uc3QgaW5WaXJ0dWFsID0gdXNlVmlydHVhbCAmJlxuICAgICAgICBkYXRhICYmXG4gICAgICAgIChNYXRoLm1heChpdGVtSGVpZ2h0ICogZGF0YS5sZW5ndGgsIGNvbnRhaW5lckhlaWdodCkgPiBoZWlnaHQgfHwgISFzY3JvbGxXaWR0aCk7XG4gICAgY29uc3QgaXNSVEwgPSBkaXJlY3Rpb24gPT09ICdydGwnO1xuICAgIGNvbnN0IG1lcmdlZENsYXNzTmFtZSA9IGNsc3gocHJlZml4Q2xzLCB7IFtgJHtwcmVmaXhDbHN9LXJ0bGBdOiBpc1JUTCB9LCBjbGFzc05hbWUpO1xuICAgIGNvbnN0IG1lcmdlZERhdGEgPSBkYXRhIHx8IEVNUFRZX0RBVEE7XG4gICAgY29uc3QgY29tcG9uZW50UmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IGZpbGxlcklubmVyUmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IGNvbnRhaW5lclJlZiA9IHVzZVJlZihudWxsKTtcbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IEl0ZW0gS2V5ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICBjb25zdCBbb2Zmc2V0VG9wLCBzZXRPZmZzZXRUb3BdID0gdXNlU3RhdGUoMCk7XG4gICAgY29uc3QgW29mZnNldExlZnQsIHNldE9mZnNldExlZnRdID0gdXNlU3RhdGUoMCk7XG4gICAgY29uc3QgW3Njcm9sbE1vdmluZywgc2V0U2Nyb2xsTW92aW5nXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICAvLyBNaXJyb3JzIGBvZmZzZXRUb3BgIHN5bmNocm9ub3VzbHkgc28gYHN5bmNTY3JvbGxUb3BgIGNhbiByZWFkIHRoZSBsYXRlc3RcbiAgICAvLyB2YWx1ZSBpbW1lZGlhdGVseSAoYSBzdGF0ZSB1cGRhdGVyIGNhbid0IHNhZmVseSBoYXZlIHNpZGUgZWZmZWN0cyDigJQgc2VlXG4gICAgLy8gdGhlIGBvblNjcm9sbGAgY2FsbCBiZWxvdykuXG4gICAgY29uc3Qgb2Zmc2V0VG9wUmVmID0gdXNlUmVmKDApO1xuICAgIGNvbnN0IG9uU2Nyb2xsYmFyU3RhcnRNb3ZlID0gKCkgPT4ge1xuICAgICAgICBzZXRTY3JvbGxNb3ZpbmcodHJ1ZSk7XG4gICAgfTtcbiAgICBjb25zdCBvblNjcm9sbGJhclN0b3BNb3ZlID0gKCkgPT4ge1xuICAgICAgICBzZXRTY3JvbGxNb3ZpbmcoZmFsc2UpO1xuICAgIH07XG4gICAgY29uc3Qgc2hhcmVkQ29uZmlnID0ge1xuICAgICAgICBnZXRLZXksXG4gICAgfTtcbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBTY3JvbGwgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICAvLyBXaGVlbCBzY3JvbGwsIHNjcm9sbGJhciBkcmFnLCBhbmQgdG91Y2ggbW92ZSAoc2VlIGBvbldoZWVsRGVsdGFgIC9cbiAgICAvLyBgdXNlU2Nyb2xsRHJhZ2AgLyBgdXNlTW9iaWxlVG91Y2hNb3ZlYCBiZWxvdykgYWxsIGZ1bm5lbCB0aHJvdWdoIGhlcmUg4oCUXG4gICAgLy8gaXQncyB0aGUgc2luZ2xlIHBsYWNlIGEgdmlydHVhbC1tb2RlIHNjcm9sbCBwb3NpdGlvbiBjaGFuZ2UgaGFwcGVucy5cbiAgICAvL1xuICAgIC8vIEluIHZpcnR1YWwgbW9kZSB0aGUgaG9sZGVyIGlzIGBvdmVyZmxvdy15OiBoaWRkZW5gIChzY3JvbGxpbmcgaXMgZmFrZWQgdmlhXG4gICAgLy8gdGhpcyBvZmZzZXQsIG5vdCBuYXRpdmUgYnJvd3NlciBzY3JvbGwpLCBzbyBzZXR0aW5nIGBzY3JvbGxUb3BgXG4gICAgLy8gcHJvZ3JhbW1hdGljYWxseSBkb2VzIG5vdCByZWxpYWJseSBkaXNwYXRjaCBhIG5hdGl2ZSBgc2Nyb2xsYCBET00gZXZlbnQuXG4gICAgLy8gYG9uRmFsbGJhY2tTY3JvbGxgIGJlbG93IChib3VuZCB0byB0aGUgaG9sZGVyJ3MgbmF0aXZlIGBvblNjcm9sbGApIG9ubHlcbiAgICAvLyBmaXJlcyBpbiBub24tdmlydHVhbCBtb2RlLiBDYWxsIGBvblNjcm9sbGAgZGlyZWN0bHkgaGVyZSDigJQgd2l0aCB0aGUgc2FtZVxuICAgIC8vIGV2ZW50IHNoYXBlIGEgbmF0aXZlIHNjcm9sbCB3b3VsZCBjYXJyeSDigJQgc28gaXQgZmlyZXMgZm9yIHJlYWwgdXNlclxuICAgIC8vIHNjcm9sbGluZyBpbiB2aXJ0dWFsIG1vZGUgdG9vLlxuICAgIGZ1bmN0aW9uIHN5bmNTY3JvbGxUb3AobmV3VG9wKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdHlwZW9mIG5ld1RvcCA9PT0gJ2Z1bmN0aW9uJyA/IG5ld1RvcChvZmZzZXRUb3BSZWYuY3VycmVudCkgOiBuZXdUb3A7XG4gICAgICAgIGNvbnN0IGFsaWduZWRUb3AgPSBrZWVwSW5SYW5nZSh2YWx1ZSk7XG4gICAgICAgIG9mZnNldFRvcFJlZi5jdXJyZW50ID0gYWxpZ25lZFRvcDtcbiAgICAgICAgc2V0T2Zmc2V0VG9wKGFsaWduZWRUb3ApO1xuICAgICAgICBpZiAoY29tcG9uZW50UmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIGNvbXBvbmVudFJlZi5jdXJyZW50LnNjcm9sbFRvcCA9IGFsaWduZWRUb3A7XG4gICAgICAgICAgICBvblNjcm9sbCA9PT0gbnVsbCB8fCBvblNjcm9sbCA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25TY3JvbGwoeyBjdXJyZW50VGFyZ2V0OiBjb21wb25lbnRSZWYuY3VycmVudCB9KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBMZWdhY3kgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICAvLyBQdXQgcmVmIGhlcmUgc2luY2UgdGhlIHJhbmdlIGlzIGdlbmVyYXRlIGJ5IGZvbGxvd1xuICAgIGNvbnN0IHJhbmdlUmVmID0gdXNlUmVmKHsgc3RhcnQ6IDAsIGVuZDogbWVyZ2VkRGF0YS5sZW5ndGggfSk7XG4gICAgY29uc3QgZGlmZkl0ZW1SZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3QgW2RpZmZJdGVtXSA9IHVzZURpZmZJdGVtKG1lcmdlZERhdGEsIGdldEtleSk7XG4gICAgZGlmZkl0ZW1SZWYuY3VycmVudCA9IGRpZmZJdGVtO1xuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09IFZpc2libGUgQ2FsY3VsYXRpb24gPT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgIGNvbnN0IHsgc2Nyb2xsSGVpZ2h0LCBzdGFydCwgZW5kLCBvZmZzZXQ6IGZpbGxlck9mZnNldCwgfSA9IFJlYWN0LnVzZU1lbW8oKCkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmICghdXNlVmlydHVhbCkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBzY3JvbGxIZWlnaHQ6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICBzdGFydDogMCxcbiAgICAgICAgICAgICAgICBlbmQ6IG1lcmdlZERhdGEubGVuZ3RoIC0gMSxcbiAgICAgICAgICAgICAgICBvZmZzZXQ6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgLy8gQWx3YXlzIHVzZSB2aXJ0dWFsIHNjcm9sbCBiYXIgaW4gYXZvaWQgc2hha2luZ1xuICAgICAgICBpZiAoIWluVmlydHVhbCkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBzY3JvbGxIZWlnaHQ6ICgoX2EgPSBmaWxsZXJJbm5lclJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Eub2Zmc2V0SGVpZ2h0KSB8fCAwLFxuICAgICAgICAgICAgICAgIHN0YXJ0OiAwLFxuICAgICAgICAgICAgICAgIGVuZDogbWVyZ2VkRGF0YS5sZW5ndGggLSAxLFxuICAgICAgICAgICAgICAgIG9mZnNldDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgaXRlbVRvcCA9IDA7XG4gICAgICAgIGxldCBzdGFydEluZGV4O1xuICAgICAgICBsZXQgc3RhcnRPZmZzZXQ7XG4gICAgICAgIGxldCBlbmRJbmRleDtcbiAgICAgICAgY29uc3QgZGF0YUxlbiA9IG1lcmdlZERhdGEubGVuZ3RoO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRhdGFMZW47IGkgKz0gMSkge1xuICAgICAgICAgICAgY29uc3QgaXRlbSA9IG1lcmdlZERhdGFbaV07XG4gICAgICAgICAgICBjb25zdCBrZXkgPSBnZXRLZXkoaXRlbSk7XG4gICAgICAgICAgICBjb25zdCBjYWNoZUhlaWdodCA9IGhlaWdodHMuZ2V0KGtleSk7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50SXRlbUJvdHRvbSA9IGl0ZW1Ub3AgKyAoY2FjaGVIZWlnaHQgPT09IHVuZGVmaW5lZCA/IGl0ZW1IZWlnaHQgOiBjYWNoZUhlaWdodCk7XG4gICAgICAgICAgICAvLyBDaGVjayBpdGVtIHRvcCBpbiB0aGUgcmFuZ2VcbiAgICAgICAgICAgIGlmIChjdXJyZW50SXRlbUJvdHRvbSA+PSBvZmZzZXRUb3AgJiYgc3RhcnRJbmRleCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgc3RhcnRJbmRleCA9IGk7XG4gICAgICAgICAgICAgICAgc3RhcnRPZmZzZXQgPSBpdGVtVG9wO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gQ2hlY2sgaXRlbSBib3R0b20gaW4gdGhlIHJhbmdlLiBXZSB3aWxsIHJlbmRlciBhZGRpdGlvbmFsIG9uZSBpdGVtIGZvciBtb3Rpb24gdXNhZ2VcbiAgICAgICAgICAgIGlmIChjdXJyZW50SXRlbUJvdHRvbSA+IG9mZnNldFRvcCArIGhlaWdodCAmJiBlbmRJbmRleCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgZW5kSW5kZXggPSBpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaXRlbVRvcCA9IGN1cnJlbnRJdGVtQm90dG9tO1xuICAgICAgICB9XG4gICAgICAgIC8vIFdoZW4gc2Nyb2xsVG9wIGF0IHRoZSBlbmQgYnV0IGRhdGEgY3V0IHRvIHNtYWxsIGNvdW50IHdpbGwgcmVhY2ggdGhpc1xuICAgICAgICBpZiAoc3RhcnRJbmRleCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBzdGFydEluZGV4ID0gMDtcbiAgICAgICAgICAgIHN0YXJ0T2Zmc2V0ID0gMDtcbiAgICAgICAgICAgIGVuZEluZGV4ID0gTWF0aC5jZWlsKGhlaWdodCAvIGl0ZW1IZWlnaHQpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChlbmRJbmRleCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBlbmRJbmRleCA9IG1lcmdlZERhdGEubGVuZ3RoIC0gMTtcbiAgICAgICAgfVxuICAgICAgICAvLyBHaXZlIGNhY2hlIHRvIGltcHJvdmUgc2Nyb2xsIGV4cGVyaWVuY2VcbiAgICAgICAgZW5kSW5kZXggPSBNYXRoLm1pbihlbmRJbmRleCArIDEsIG1lcmdlZERhdGEubGVuZ3RoIC0gMSk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzY3JvbGxIZWlnaHQ6IGl0ZW1Ub3AsXG4gICAgICAgICAgICBzdGFydDogc3RhcnRJbmRleCxcbiAgICAgICAgICAgIGVuZDogZW5kSW5kZXgsXG4gICAgICAgICAgICBvZmZzZXQ6IHN0YXJ0T2Zmc2V0LFxuICAgICAgICB9O1xuICAgIH0sIFtpblZpcnR1YWwsIHVzZVZpcnR1YWwsIG9mZnNldFRvcCwgbWVyZ2VkRGF0YSwgaGVpZ2h0VXBkYXRlZE1hcmssIGhlaWdodF0pO1xuICAgIHJhbmdlUmVmLmN1cnJlbnQuc3RhcnQgPSBzdGFydDtcbiAgICByYW5nZVJlZi5jdXJyZW50LmVuZCA9IGVuZDtcbiAgICAvLyBXaGVuIHNjcm9sbCB1cCwgZmlyc3QgdmlzaWJsZSBpdGVtIGdldCByZWFsIGhlaWdodCBtYXkgbm90IHNhbWUgYXMgYGl0ZW1IZWlnaHRgLFxuICAgIC8vIFdoaWNoIHdpbGwgbWFrZSBzY3JvbGwganVtcC5cbiAgICAvLyBMZXQncyBzeW5jIHNjcm9sbCB0b3AgdG8gYXZvaWQganVtcFxuICAgIFJlYWN0LnVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGNoYW5nZWRSZWNvcmQgPSBoZWlnaHRzLmdldFJlY29yZCgpO1xuICAgICAgICBpZiAoY2hhbmdlZFJlY29yZC5zaXplID09PSAxKSB7XG4gICAgICAgICAgICBjb25zdCByZWNvcmRLZXkgPSBBcnJheS5mcm9tKGNoYW5nZWRSZWNvcmQua2V5cygpKVswXTtcbiAgICAgICAgICAgIGNvbnN0IHByZXZDYWNoZUhlaWdodCA9IGNoYW5nZWRSZWNvcmQuZ2V0KHJlY29yZEtleSk7XG4gICAgICAgICAgICAvLyBRdWljayBzd2l0Y2ggZGF0YSBtYXkgY2F1c2UgYHN0YXJ0YCBub3QgaW4gYG1lcmdlZERhdGFgIGFueW1vcmVcbiAgICAgICAgICAgIGNvbnN0IHN0YXJ0SXRlbSA9IG1lcmdlZERhdGFbc3RhcnRdO1xuICAgICAgICAgICAgaWYgKHN0YXJ0SXRlbSAmJiBwcmV2Q2FjaGVIZWlnaHQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHN0YXJ0SW5kZXhLZXkgPSBnZXRLZXkoc3RhcnRJdGVtKTtcbiAgICAgICAgICAgICAgICBpZiAoc3RhcnRJbmRleEtleSA9PT0gcmVjb3JkS2V5KSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlYWxTdGFydEhlaWdodCA9IGhlaWdodHMuZ2V0KHJlY29yZEtleSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGRpZmZIZWlnaHQgPSByZWFsU3RhcnRIZWlnaHQgLSBpdGVtSGVpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBzeW5jU2Nyb2xsVG9wKChvcmkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBvcmkgKyBkaWZmSGVpZ2h0O1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaGVpZ2h0cy5yZXNldFJlY29yZCgpO1xuICAgIH0sIFtzY3JvbGxIZWlnaHRdKTtcbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gU2l6ZSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICBjb25zdCBbc2l6ZSwgc2V0U2l6ZV0gPSBSZWFjdC51c2VTdGF0ZSh7IHdpZHRoOiAwLCBoZWlnaHQ6IGhlaWdodCAhPT0gbnVsbCAmJiBoZWlnaHQgIT09IHZvaWQgMCA/IGhlaWdodCA6IDAgfSk7XG4gICAgY29uc3Qgb25Ib2xkZXJSZXNpemUgPSAoc2l6ZUluZm8pID0+IHtcbiAgICAgICAgc2V0U2l6ZSh7XG4gICAgICAgICAgICB3aWR0aDogc2l6ZUluZm8ub2Zmc2V0V2lkdGgsXG4gICAgICAgICAgICBoZWlnaHQ6IHNpemVJbmZvLm9mZnNldEhlaWdodCxcbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICAvLyBIYWNrIG9uIHNjcm9sbGJhciB0byBlbmFibGUgZmxhc2ggY2FsbFxuICAgIGNvbnN0IHZlcnRpY2FsU2Nyb2xsQmFyUmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IGhvcml6b250YWxTY3JvbGxCYXJSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3QgaG9yaXpvbnRhbFNjcm9sbEJhclNwaW5TaXplID0gUmVhY3QudXNlTWVtbygoKSA9PiBnZXRTcGluU2l6ZShzaXplLndpZHRoLCBzY3JvbGxXaWR0aCksIFtzaXplLndpZHRoLCBzY3JvbGxXaWR0aF0pO1xuICAgIGNvbnN0IHZlcnRpY2FsU2Nyb2xsQmFyU3BpblNpemUgPSBSZWFjdC51c2VNZW1vKCgpID0+IGdldFNwaW5TaXplKHNpemUuaGVpZ2h0LCBzY3JvbGxIZWlnaHQpLCBbc2l6ZS5oZWlnaHQsIHNjcm9sbEhlaWdodF0pO1xuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gSW4gUmFuZ2UgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgIGNvbnN0IG1heFNjcm9sbEhlaWdodCA9IHNjcm9sbEhlaWdodCAtIGhlaWdodDtcbiAgICBjb25zdCBtYXhTY3JvbGxIZWlnaHRSZWYgPSB1c2VSZWYobWF4U2Nyb2xsSGVpZ2h0KTtcbiAgICBtYXhTY3JvbGxIZWlnaHRSZWYuY3VycmVudCA9IG1heFNjcm9sbEhlaWdodDtcbiAgICBmdW5jdGlvbiBrZWVwSW5SYW5nZShuZXdTY3JvbGxUb3ApIHtcbiAgICAgICAgbGV0IG5ld1RvcCA9IG5ld1Njcm9sbFRvcDtcbiAgICAgICAgaWYgKCFOdW1iZXIuaXNOYU4obWF4U2Nyb2xsSGVpZ2h0UmVmLmN1cnJlbnQpKSB7XG4gICAgICAgICAgICBuZXdUb3AgPSBNYXRoLm1pbihuZXdUb3AsIG1heFNjcm9sbEhlaWdodFJlZi5jdXJyZW50KTtcbiAgICAgICAgfVxuICAgICAgICBuZXdUb3AgPSBNYXRoLm1heChuZXdUb3AsIDApO1xuICAgICAgICByZXR1cm4gbmV3VG9wO1xuICAgIH1cbiAgICBjb25zdCBpc1Njcm9sbEF0VG9wID0gb2Zmc2V0VG9wIDw9IDA7XG4gICAgY29uc3QgaXNTY3JvbGxBdEJvdHRvbSA9IG9mZnNldFRvcCA+PSBtYXhTY3JvbGxIZWlnaHQ7XG4gICAgY29uc3QgaXNTY3JvbGxBdExlZnQgPSBvZmZzZXRMZWZ0IDw9IDA7XG4gICAgY29uc3QgaXNTY3JvbGxBdFJpZ2h0ID0gISFzY3JvbGxXaWR0aCAmJiBvZmZzZXRMZWZ0ID49IHNjcm9sbFdpZHRoIC0gc2l6ZS53aWR0aDtcbiAgICBjb25zdCBvcmlnaW5TY3JvbGwgPSB1c2VPcmlnaW5TY3JvbGwoaXNTY3JvbGxBdFRvcCwgaXNTY3JvbGxBdEJvdHRvbSwgaXNTY3JvbGxBdExlZnQsIGlzU2Nyb2xsQXRSaWdodCk7XG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gU2Nyb2xsID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgY29uc3QgZ2V0VmlydHVhbFNjcm9sbEluZm8gPSAoKSA9PiAoe1xuICAgICAgICB4OiBpc1JUTCA/IC1vZmZzZXRMZWZ0IDogb2Zmc2V0TGVmdCxcbiAgICAgICAgeTogb2Zmc2V0VG9wLFxuICAgIH0pO1xuICAgIGNvbnN0IGxhc3RWaXJ0dWFsU2Nyb2xsSW5mb1JlZiA9IHVzZVJlZihnZXRWaXJ0dWFsU2Nyb2xsSW5mbygpKTtcbiAgICBjb25zdCB0cmlnZ2VyU2Nyb2xsID0gdXNlRXZlbnRDYWxsYmFjaygocGFyYW1zKSA9PiB7XG4gICAgICAgIGlmIChvblZpcnR1YWxTY3JvbGwpIHtcbiAgICAgICAgICAgIGNvbnN0IG5leHRJbmZvID0gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBnZXRWaXJ0dWFsU2Nyb2xsSW5mbygpKSwgcGFyYW1zKTtcbiAgICAgICAgICAgIC8vIFRyaWdnZXIgd2hlbiBvZmZzZXQgY2hhbmdlZFxuICAgICAgICAgICAgaWYgKGxhc3RWaXJ0dWFsU2Nyb2xsSW5mb1JlZi5jdXJyZW50LnggIT09IG5leHRJbmZvLnggfHxcbiAgICAgICAgICAgICAgICBsYXN0VmlydHVhbFNjcm9sbEluZm9SZWYuY3VycmVudC55ICE9PSBuZXh0SW5mby55KSB7XG4gICAgICAgICAgICAgICAgb25WaXJ0dWFsU2Nyb2xsKG5leHRJbmZvKTtcbiAgICAgICAgICAgICAgICBsYXN0VmlydHVhbFNjcm9sbEluZm9SZWYuY3VycmVudCA9IG5leHRJbmZvO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSk7XG4gICAgZnVuY3Rpb24gb25TY3JvbGxCYXIobmV3U2Nyb2xsT2Zmc2V0LCBob3Jpem9udGFsKSB7XG4gICAgICAgIGNvbnN0IG5ld09mZnNldCA9IG5ld1Njcm9sbE9mZnNldDtcbiAgICAgICAgaWYgKGhvcml6b250YWwpIHtcbiAgICAgICAgICAgIGZsdXNoU3luYygoKSA9PiB7XG4gICAgICAgICAgICAgICAgc2V0T2Zmc2V0TGVmdChuZXdPZmZzZXQpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0cmlnZ2VyU2Nyb2xsKCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBzeW5jU2Nyb2xsVG9wKG5ld09mZnNldCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gV2hlbiBkYXRhIHNpemUgcmVkdWNlLiBJdCBtYXkgdHJpZ2dlciBuYXRpdmUgc2Nyb2xsIGV2ZW50IGJhY2sgdG8gZml0IHNjcm9sbCBwb3NpdGlvblxuICAgIGZ1bmN0aW9uIG9uRmFsbGJhY2tTY3JvbGwoZSkge1xuICAgICAgICBjb25zdCB7IHNjcm9sbFRvcDogbmV3U2Nyb2xsVG9wIH0gPSBlLmN1cnJlbnRUYXJnZXQ7XG4gICAgICAgIGlmIChuZXdTY3JvbGxUb3AgIT09IG9mZnNldFRvcCkge1xuICAgICAgICAgICAgLy8gYHN5bmNTY3JvbGxUb3BgIGNhbGxzIGBvblNjcm9sbGAgaXRzZWxmIOKAlCBkb24ndCBhbHNvIGZpcmUgaXQgaGVyZSwgb3JcbiAgICAgICAgICAgIC8vIGZhbGxiYWNrIChub24tdmlydHVhbCkgbW9kZSB3b3VsZCBub3RpZnkgdGhlIGNvbnN1bWVyIHR3aWNlIHBlciBldmVudC5cbiAgICAgICAgICAgIHN5bmNTY3JvbGxUb3AobmV3U2Nyb2xsVG9wKTtcbiAgICAgICAgfVxuICAgICAgICB0cmlnZ2VyU2Nyb2xsKCk7XG4gICAgfVxuICAgIGNvbnN0IGtlZXBJbkhvcml6b250YWxSYW5nZSA9IChuZXh0T2Zmc2V0TGVmdCkgPT4ge1xuICAgICAgICBsZXQgdG1wT2Zmc2V0TGVmdCA9IG5leHRPZmZzZXRMZWZ0O1xuICAgICAgICBjb25zdCBtYXggPSBzY3JvbGxXaWR0aCA/IHNjcm9sbFdpZHRoIC0gc2l6ZS53aWR0aCA6IDA7XG4gICAgICAgIHRtcE9mZnNldExlZnQgPSBNYXRoLm1heCh0bXBPZmZzZXRMZWZ0LCAwKTtcbiAgICAgICAgdG1wT2Zmc2V0TGVmdCA9IE1hdGgubWluKHRtcE9mZnNldExlZnQsIG1heCk7XG4gICAgICAgIHJldHVybiB0bXBPZmZzZXRMZWZ0O1xuICAgIH07XG4gICAgY29uc3Qgb25XaGVlbERlbHRhID0gdXNlRXZlbnRDYWxsYmFjaygob2Zmc2V0WFksIGZyb21Ib3Jpem9udGFsKSA9PiB7XG4gICAgICAgIGlmIChmcm9tSG9yaXpvbnRhbCkge1xuICAgICAgICAgICAgZmx1c2hTeW5jKCgpID0+IHtcbiAgICAgICAgICAgICAgICBzZXRPZmZzZXRMZWZ0KChsZWZ0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG5leHRPZmZzZXRMZWZ0ID0gbGVmdCArIChpc1JUTCA/IC1vZmZzZXRYWSA6IG9mZnNldFhZKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGtlZXBJbkhvcml6b250YWxSYW5nZShuZXh0T2Zmc2V0TGVmdCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRyaWdnZXJTY3JvbGwoKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHN5bmNTY3JvbGxUb3AoKHRvcCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5ld1RvcCA9IHRvcCArIG9mZnNldFhZO1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXdUb3A7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIC8vIFNpbmNlIHRoaXMgYWRkZWQgaW4gZ2xvYmFsLHNob3VsZCB1c2UgcmVmIHRvIGtlZXAgdXBkYXRlXG4gICAgY29uc3QgW29uUmF3V2hlZWwsIG9uRmlyZUZveFNjcm9sbF0gPSB1c2VGcmFtZVdoZWVsKHVzZVZpcnR1YWwsIGlzU2Nyb2xsQXRUb3AsIGlzU2Nyb2xsQXRCb3R0b20sIGlzU2Nyb2xsQXRMZWZ0LCBpc1Njcm9sbEF0UmlnaHQsICEhc2Nyb2xsV2lkdGgsIG9uV2hlZWxEZWx0YSk7XG4gICAgLy8gTW9iaWxlIHRvdWNoIG1vdmVcbiAgICB1c2VNb2JpbGVUb3VjaE1vdmUodXNlVmlydHVhbCwgY29tcG9uZW50UmVmLCAoaXNIb3Jpem9udGFsLCBkZWx0YSwgc21vb3RoT2Zmc2V0LCBlKSA9PiB7XG4gICAgICAgIGNvbnN0IGV2ZW50ID0gZTtcbiAgICAgICAgaWYgKG9yaWdpblNjcm9sbChpc0hvcml6b250YWwsIGRlbHRhLCBzbW9vdGhPZmZzZXQpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgLy8gRml4IG5lc3QgTGlzdCB0cmlnZ2VyIFRvdWNoTW92ZSBldmVudFxuICAgICAgICBpZiAoIWV2ZW50IHx8ICFldmVudC5fdmlydHVhbEhhbmRsZWQpIHtcbiAgICAgICAgICAgIGlmIChldmVudCkge1xuICAgICAgICAgICAgICAgIGV2ZW50Ll92aXJ0dWFsSGFuZGxlZCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvblJhd1doZWVsKHtcbiAgICAgICAgICAgICAgICBwcmV2ZW50RGVmYXVsdCgpIHsgfSxcbiAgICAgICAgICAgICAgICBkZWx0YVg6IGlzSG9yaXpvbnRhbCA/IGRlbHRhIDogMCxcbiAgICAgICAgICAgICAgICBkZWx0YVk6IGlzSG9yaXpvbnRhbCA/IDAgOiBkZWx0YSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0pO1xuICAgIC8vIE1vdXNlRG93biBkcmFnIGZvciBzY3JvbGxcbiAgICB1c2VTY3JvbGxEcmFnKGluVmlydHVhbCwgY29tcG9uZW50UmVmLCAob2Zmc2V0KSA9PiB7XG4gICAgICAgIHN5bmNTY3JvbGxUb3AoKHRvcCkgPT4gdG9wICsgb2Zmc2V0KTtcbiAgICB9KTtcbiAgICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgICAgICAvLyBGaXJlZm94IG9ubHlcbiAgICAgICAgZnVuY3Rpb24gb25Nb3pNb3VzZVBpeGVsU2Nyb2xsKGUpIHtcbiAgICAgICAgICAgIC8vIHNjcm9sbGluZyBhdCB0b3AvYm90dG9tIGxpbWl0XG4gICAgICAgICAgICBjb25zdCBzY3JvbGxpbmdVcEF0VG9wID0gaXNTY3JvbGxBdFRvcCAmJiBlLmRldGFpbCA8IDA7XG4gICAgICAgICAgICBjb25zdCBzY3JvbGxpbmdEb3duQXRCb3R0b20gPSBpc1Njcm9sbEF0Qm90dG9tICYmIGUuZGV0YWlsID4gMDtcbiAgICAgICAgICAgIGlmICh1c2VWaXJ0dWFsICYmICFzY3JvbGxpbmdVcEF0VG9wICYmICFzY3JvbGxpbmdEb3duQXRCb3R0b20pIHtcbiAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY29tcG9uZW50RWxlID0gY29tcG9uZW50UmVmLmN1cnJlbnQ7XG4gICAgICAgIGNvbXBvbmVudEVsZS5hZGRFdmVudExpc3RlbmVyKCd3aGVlbCcsIG9uUmF3V2hlZWwsIHsgcGFzc2l2ZTogZmFsc2UgfSk7XG4gICAgICAgIGNvbXBvbmVudEVsZS5hZGRFdmVudExpc3RlbmVyKCdET01Nb3VzZVNjcm9sbCcsIG9uRmlyZUZveFNjcm9sbCwgeyBwYXNzaXZlOiB0cnVlIH0pO1xuICAgICAgICBjb21wb25lbnRFbGUuYWRkRXZlbnRMaXN0ZW5lcignTW96TW91c2VQaXhlbFNjcm9sbCcsIG9uTW96TW91c2VQaXhlbFNjcm9sbCwgeyBwYXNzaXZlOiBmYWxzZSB9KTtcbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgIGNvbXBvbmVudEVsZS5yZW1vdmVFdmVudExpc3RlbmVyKCd3aGVlbCcsIG9uUmF3V2hlZWwpO1xuICAgICAgICAgICAgY29tcG9uZW50RWxlLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ0RPTU1vdXNlU2Nyb2xsJywgb25GaXJlRm94U2Nyb2xsKTtcbiAgICAgICAgICAgIGNvbXBvbmVudEVsZS5yZW1vdmVFdmVudExpc3RlbmVyKCdNb3pNb3VzZVBpeGVsU2Nyb2xsJywgb25Nb3pNb3VzZVBpeGVsU2Nyb2xsKTtcbiAgICAgICAgfTtcbiAgICB9LCBbdXNlVmlydHVhbCwgaXNTY3JvbGxBdFRvcCwgaXNTY3JvbGxBdEJvdHRvbV0pO1xuICAgIC8vIFN5bmMgc2Nyb2xsIGxlZnRcbiAgICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoc2Nyb2xsV2lkdGgpIHtcbiAgICAgICAgICAgIGNvbnN0IG5ld09mZnNldExlZnQgPSBrZWVwSW5Ib3Jpem9udGFsUmFuZ2Uob2Zmc2V0TGVmdCk7XG4gICAgICAgICAgICBzZXRPZmZzZXRMZWZ0KG5ld09mZnNldExlZnQpO1xuICAgICAgICAgICAgdHJpZ2dlclNjcm9sbCh7IHg6IG5ld09mZnNldExlZnQgfSk7XG4gICAgICAgIH1cbiAgICB9LCBbc2l6ZS53aWR0aCwgc2Nyb2xsV2lkdGhdKTtcbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gUmVmID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICBjb25zdCBkZWxheUhpZGVTY3JvbGxCYXIgPSAoKSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIChfYSA9IHZlcnRpY2FsU2Nyb2xsQmFyUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5kZWxheUhpZGRlbigpO1xuICAgICAgICAoX2IgPSBob3Jpem9udGFsU2Nyb2xsQmFyUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5kZWxheUhpZGRlbigpO1xuICAgIH07XG4gICAgY29uc3Qgc2Nyb2xsVG8gPSB1c2VTY3JvbGxUbyhjb21wb25lbnRSZWYsIG1lcmdlZERhdGEsIGhlaWdodHMsIGl0ZW1IZWlnaHQsIGdldEtleSwgKCkgPT4gY29sbGVjdEhlaWdodCh0cnVlKSwgc3luY1Njcm9sbFRvcCwgZGVsYXlIaWRlU2Nyb2xsQmFyKTtcbiAgICBSZWFjdC51c2VJbXBlcmF0aXZlSGFuZGxlKHJlZiwgKCkgPT4gKHtcbiAgICAgICAgbmF0aXZlRWxlbWVudDogY29udGFpbmVyUmVmLmN1cnJlbnQsXG4gICAgICAgIGdldFNjcm9sbEluZm86IGdldFZpcnR1YWxTY3JvbGxJbmZvLFxuICAgICAgICBzY3JvbGxUbzogKGNvbmZpZykgPT4ge1xuICAgICAgICAgICAgZnVuY3Rpb24gaXNQb3NTY3JvbGwoYXJnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGFyZyAmJiB0eXBlb2YgYXJnID09PSAnb2JqZWN0JyAmJiAoJ2xlZnQnIGluIGFyZyB8fCAndG9wJyBpbiBhcmcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGlzUG9zU2Nyb2xsKGNvbmZpZykpIHtcbiAgICAgICAgICAgICAgICAvLyBTY3JvbGwgWFxuICAgICAgICAgICAgICAgIGlmIChjb25maWcubGVmdCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHNldE9mZnNldExlZnQoa2VlcEluSG9yaXpvbnRhbFJhbmdlKGNvbmZpZy5sZWZ0KSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIFNjcm9sbCBZXG4gICAgICAgICAgICAgICAgc2Nyb2xsVG8oY29uZmlnLnRvcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBzY3JvbGxUbyhjb25maWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgIH0pKTtcbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBFZmZlY3QgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICAvKiogV2UgbmVlZCB0b2xkIG91dHNpZGUgdGhhdCBzb21lIGxpc3Qgbm90IHJlbmRlcmVkICovXG4gICAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKG9uVmlzaWJsZUNoYW5nZSkge1xuICAgICAgICAgICAgY29uc3QgcmVuZGVyTGlzdCA9IG1lcmdlZERhdGEuc2xpY2Uoc3RhcnQsIGVuZCArIDEpO1xuICAgICAgICAgICAgb25WaXNpYmxlQ2hhbmdlKHJlbmRlckxpc3QsIG1lcmdlZERhdGEpO1xuICAgICAgICB9XG4gICAgfSwgW3N0YXJ0LCBlbmQsIG1lcmdlZERhdGFdKTtcbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBFeHRyYSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICBjb25zdCBnZXRTaXplID0gdXNlR2V0U2l6ZShtZXJnZWREYXRhLCBnZXRLZXksIGhlaWdodHMsIGl0ZW1IZWlnaHQpO1xuICAgIGNvbnN0IGV4dHJhQ29udGVudCA9IGV4dHJhUmVuZGVyID09PSBudWxsIHx8IGV4dHJhUmVuZGVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBleHRyYVJlbmRlcih7XG4gICAgICAgIHN0YXJ0LFxuICAgICAgICBlbmQsXG4gICAgICAgIHZpcnR1YWw6IGluVmlydHVhbCxcbiAgICAgICAgb2Zmc2V0WDogb2Zmc2V0TGVmdCxcbiAgICAgICAgb2Zmc2V0WTogZmlsbGVyT2Zmc2V0LFxuICAgICAgICBydGw6IGlzUlRMLFxuICAgICAgICBnZXRTaXplLFxuICAgIH0pO1xuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IFJlbmRlciA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgIGNvbnN0IGxpc3RDaGlsZHJlbiA9IHVzZUNoaWxkcmVuKG1lcmdlZERhdGEsIHN0YXJ0LCBlbmQsIHNjcm9sbFdpZHRoLCBvZmZzZXRMZWZ0LCBzZXRJbnN0YW5jZVJlZiwgY2hpbGRyZW4sIHNoYXJlZENvbmZpZyk7XG4gICAgbGV0IGNvbXBvbmVudFN0eWxlID0gdW5kZWZpbmVkO1xuICAgIGlmIChoZWlnaHQpIHtcbiAgICAgICAgY29tcG9uZW50U3R5bGUgPSBPYmplY3QuYXNzaWduKHsgW2Z1bGxIZWlnaHQgPyAnaGVpZ2h0JyA6ICdtYXhIZWlnaHQnXTogaGVpZ2h0IH0sIFNjcm9sbFN0eWxlKTtcbiAgICAgICAgaWYgKHVzZVZpcnR1YWwpIHtcbiAgICAgICAgICAgIGNvbXBvbmVudFN0eWxlLm92ZXJmbG93WSA9ICdoaWRkZW4nO1xuICAgICAgICAgICAgaWYgKHNjcm9sbFdpZHRoKSB7XG4gICAgICAgICAgICAgICAgY29tcG9uZW50U3R5bGUub3ZlcmZsb3dYID0gJ2hpZGRlbic7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoc2Nyb2xsTW92aW5nKSB7XG4gICAgICAgICAgICAgICAgY29tcG9uZW50U3R5bGUucG9pbnRlckV2ZW50cyA9ICdub25lJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBjb250YWluZXJQcm9wcyA9IHt9O1xuICAgIGlmIChpc1JUTCkge1xuICAgICAgICBjb250YWluZXJQcm9wcy5kaXIgPSAncnRsJztcbiAgICB9XG4gICAgcmV0dXJuIChfanN4cyhcImRpdlwiLCBPYmplY3QuYXNzaWduKHsgcmVmOiBjb250YWluZXJSZWYsIHN0eWxlOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHN0eWxlKSwgeyBwb3NpdGlvbjogJ3JlbGF0aXZlJyB9KSwgY2xhc3NOYW1lOiBtZXJnZWRDbGFzc05hbWUgfSwgY29udGFpbmVyUHJvcHMsIHJlc3RQcm9wcywgeyBjaGlsZHJlbjogW19qc3goUmVzaXplT2JzZXJ2ZXIsIHsgb25SZXNpemU6IG9uSG9sZGVyUmVzaXplLCBjaGlsZHJlbjogX2pzeChDb21wb25lbnQsIHsgY2xhc3NOYW1lOiBgJHtwcmVmaXhDbHN9LWhvbGRlcmAsIHN0eWxlOiBjb21wb25lbnRTdHlsZSwgcmVmOiBjb21wb25lbnRSZWYsIG9uU2Nyb2xsOiBvbkZhbGxiYWNrU2Nyb2xsLCBvbk1vdXNlRW50ZXI6IGRlbGF5SGlkZVNjcm9sbEJhciwgY2hpbGRyZW46IF9qc3goRmlsbGVyLCB7IHByZWZpeENsczogcHJlZml4Q2xzLCBoZWlnaHQ6IHNjcm9sbEhlaWdodCwgb2Zmc2V0WDogb2Zmc2V0TGVmdCwgb2Zmc2V0WTogZmlsbGVyT2Zmc2V0LCBzY3JvbGxXaWR0aDogc2Nyb2xsV2lkdGgsIG9uSW5uZXJSZXNpemU6IGNvbGxlY3RIZWlnaHQsIHJlZjogZmlsbGVySW5uZXJSZWYsIGlubmVyUHJvcHM6IGlubmVyUHJvcHMsIHJ0bDogaXNSVEwsIGV4dHJhOiBleHRyYUNvbnRlbnQsIGNoaWxkcmVuOiBsaXN0Q2hpbGRyZW4gfSkgfSkgfSksIGluVmlydHVhbCAmJiBzY3JvbGxIZWlnaHQgPiBoZWlnaHQgJiYgKF9qc3goU2Nyb2xsQmFyLCB7IHJlZjogdmVydGljYWxTY3JvbGxCYXJSZWYsIHByZWZpeENsczogcHJlZml4Q2xzLCBzY3JvbGxPZmZzZXQ6IG9mZnNldFRvcCwgc2Nyb2xsUmFuZ2U6IHNjcm9sbEhlaWdodCwgcnRsOiBpc1JUTCwgb25TY3JvbGw6IG9uU2Nyb2xsQmFyLCBvblN0YXJ0TW92ZTogb25TY3JvbGxiYXJTdGFydE1vdmUsIG9uU3RvcE1vdmU6IG9uU2Nyb2xsYmFyU3RvcE1vdmUsIHNwaW5TaXplOiB2ZXJ0aWNhbFNjcm9sbEJhclNwaW5TaXplLCBjb250YWluZXJTaXplOiBzaXplLmhlaWdodCwgc3R5bGU6IHN0eWxlcyA9PT0gbnVsbCB8fCBzdHlsZXMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHN0eWxlcy52ZXJ0aWNhbFNjcm9sbEJhciwgdGh1bWJTdHlsZTogc3R5bGVzID09PSBudWxsIHx8IHN0eWxlcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogc3R5bGVzLnZlcnRpY2FsU2Nyb2xsQmFyVGh1bWIsIHNob3dTY3JvbGxCYXI6IHNob3dTY3JvbGxCYXIgfSkpLCBpblZpcnR1YWwgJiYgc2Nyb2xsV2lkdGggPiBzaXplLndpZHRoICYmIChfanN4KFNjcm9sbEJhciwgeyByZWY6IGhvcml6b250YWxTY3JvbGxCYXJSZWYsIHByZWZpeENsczogcHJlZml4Q2xzLCBzY3JvbGxPZmZzZXQ6IG9mZnNldExlZnQsIHNjcm9sbFJhbmdlOiBzY3JvbGxXaWR0aCwgcnRsOiBpc1JUTCwgb25TY3JvbGw6IG9uU2Nyb2xsQmFyLCBvblN0YXJ0TW92ZTogb25TY3JvbGxiYXJTdGFydE1vdmUsIG9uU3RvcE1vdmU6IG9uU2Nyb2xsYmFyU3RvcE1vdmUsIHNwaW5TaXplOiBob3Jpem9udGFsU2Nyb2xsQmFyU3BpblNpemUsIGNvbnRhaW5lclNpemU6IHNpemUud2lkdGgsIGhvcml6b250YWw6IHRydWUsIHN0eWxlOiBzdHlsZXMgPT09IG51bGwgfHwgc3R5bGVzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzdHlsZXMuaG9yaXpvbnRhbFNjcm9sbEJhciwgdGh1bWJTdHlsZTogc3R5bGVzID09PSBudWxsIHx8IHN0eWxlcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogc3R5bGVzLmhvcml6b250YWxTY3JvbGxCYXJUaHVtYiwgc2hvd1Njcm9sbEJhcjogc2hvd1Njcm9sbEJhciB9KSldIH0pKSk7XG59XG5jb25zdCBWaXJ0dWFsTGlzdEJhc2UgPSBSZWFjdC5mb3J3YXJkUmVmKFJhd0xpc3QpO1xuVmlydHVhbExpc3RCYXNlLmRpc3BsYXlOYW1lID0gVklSVFVBTF9MSVNUX0NPTVBPTkVOVF9OQU1FO1xuY29uc3QgVmlydHVhbExpc3QgPSBSZWFjdC5tZW1vKFZpcnR1YWxMaXN0QmFzZSk7XG5leHBvcnQgZGVmYXVsdCBWaXJ0dWFsTGlzdDsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
|
|
@@ -2,4 +2,4 @@ export var VIRTUAL_LIST_COMPONENT_NAME = 'VirtualList';
|
|
|
2
2
|
export var VIRTUAL_LIST_PREFIXCLS = 'om-component-ui-virtual-list';
|
|
3
3
|
export var VIRTUAL_LIST_SCROLLBAR_CSS_VAR = '--om-component-ui-virtual-list-scrollbar-bg';
|
|
4
4
|
export var VIRTUAL_LIST_SCROLLBAR_DEFAULT_BG = 'rgba(0, 0, 0, 0.5)';
|
|
5
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,
|
|
5
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvVmlydHVhbExpc3QvY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbIlZJUlRVQUxfTElTVF9DT01QT05FTlRfTkFNRSIsIlZJUlRVQUxfTElTVF9QUkVGSVhDTFMiLCJWSVJUVUFMX0xJU1RfU0NST0xMQkFSX0NTU19WQVIiLCJWSVJUVUFMX0xJU1RfU0NST0xMQkFSX0RFRkFVTFRfQkciXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sSUFBTUEsMkJBQTJCLEdBQUcsYUFBYTtBQUV4RCxPQUFPLElBQU1DLHNCQUFzQixHQUFHLDhCQUE4QjtBQUVwRSxPQUFPLElBQU1DLDhCQUE4QixHQUFHLDZDQUE2QztBQUUzRixPQUFPLElBQU1DLGlDQUFpQyxHQUFHLG9CQUFvQiIsImZpbGUiOiJjb21wb25lbnRzL1ZpcnR1YWxMaXN0L2NvbnN0YW50cy5qcyIsInNvdXJjZXNDb250ZW50IjpbbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
|
|
@@ -22,4 +22,4 @@ export default function useChildren(list, startIndex, endIndex, scrollWidth, off
|
|
|
22
22
|
});
|
|
23
23
|
}, [list, startIndex, endIndex, scrollWidth, offsetX, setNodeRef, renderFunc, getKey]);
|
|
24
24
|
}
|
|
25
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvVmlydHVhbExpc3QvaG9va3MvdXNlQ2hpbGRyZW4uanMiLCJjb21wb25lbnRzL1ZpcnR1YWxMaXN0L3NyYy9jb21wb25lbnRzL1ZpcnR1YWxMaXN0L2hvb2tzL3VzZUNoaWxkcmVuLnRzeCJdLCJuYW1lcyI6WyJqc3giLCJfanN4IiwiUmVhY3QiLCJJdGVtIiwidXNlQ2hpbGRyZW4iLCJsaXN0Iiwic3RhcnRJbmRleCIsImVuZEluZGV4Iiwic2Nyb2xsV2lkdGgiLCJvZmZzZXRYIiwic2V0Tm9kZVJlZiIsInJlbmRlckZ1bmMiLCJfcmVmIiwiZ2V0S2V5IiwidXNlTWVtbyIsInNsaWNlIiwibWFwIiwiaXRlbSIsImluZGV4IiwiZWxlSW5kZXgiLCJub2RlIiwic3R5bGUiLCJ3aWR0aCIsImtleSIsInNldFJlZiIsImVsZSIsImNoaWxkcmVuIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxHQUFHLElBQUlDLElBQUksUUFBUSxtQkFBbUI7QUNBL0MsT0FBTyxLQUFLQyxLQUFLLE1BQU0sT0FBTztBQUU5QixTQUFTQyxJQUFJLFFBQVEsU0FBUztBQUU5QixlQUFjLFNBQVVDLFdBQVdBLENBQ2pDQyxJQUFTLEVBQ1RDLFVBQWtCLEVBQ2xCQyxRQUFnQixFQUNoQkMsV0FBK0IsRUFDL0JDLE9BQWUsRUFDZkMsVUFBbUQsRUFDbkRDLFVBQXlCLEVBQUFDLElBQUEsRUFDRTtFQUFBLElBQXpCQyxNQUFNLEdBQUFELElBQUEsQ0FBTkMsTUFBTTtFQUVSLE9BQU9YLEtBQUssQ0FBQ1ksT0FBTyxDQUNsQjtJQUFBLE9BQ0VULElBQUksQ0FBQ1UsS0FBSyxDQUFDVCxVQUFVLEVBQUVDLFFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQ1MsR0FBRyxDQUFDLFVBQUNDLElBQUksRUFBRUMsS0FBSyxFQUFJO01BQ3ZELElBQU1DLFFBQVEsR0FBR2IsVUFBVSxHQUFHWSxLQUFLO01BQ25DLElBQU1FLElBQUksR0FBR1QsVUFBVSxDQUFDTSxJQUFJLEVBQUVFLFFBQVEsRUFBRTtRQUN0Q0UsS0FBSyxFQUFFO1VBQ0xDLEtBQUssRUFBRWQ7UURYUCxDQ1lEO1FBQ0RDLE9BQU8sRUFBUEE7TURYRixDQ1lDLENBQXVCO01BRXhCLElBQU1jLEdBQUcsR0FBR1YsTUFBTSxDQUFDSSxJQUFJLENBQUM7TUFDeEIsT0FDRWhCLElBQUEsQ0FBQ0UsSUFBSSxFQUFBO1FBQVdxQixNQUFNLEVBQUUsU0FBUkEsTUFBTUEsQ0FBR0MsR0FBRztVQUFBLE9BQUtmLFVBQVUsQ0FBQ08sSUFBSSxFQUFFUSxHQUFHLENBQUM7UUFBQTtRQUFBQyxRQUFBLEVBQ25ETjtNQUFJLENBQUEsRUFESUcsR0FBRyxDQUVQO0lBRVgsQ0FBQyxDQUFDO0VBQUEsR0FDSixDQUFDbEIsSUFBSSxFQUFFQyxVQUFVLEVBQUVDLFFBQVEsRUFBRUMsV0FBVyxFQUFFQyxPQUFPLEVBQUVDLFVBQVUsRUFBRUMsVUFBVSxFQUFFRSxNQUFNLENBQUMsQ0FDbkY7QUFDSCIsImZpbGUiOiJjb21wb25lbnRzL1ZpcnR1YWxMaXN0L2hvb2tzL3VzZUNoaWxkcmVuLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsganN4IGFzIF9qc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEl0ZW0gfSBmcm9tICcuLi9JdGVtJztcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHVzZUNoaWxkcmVuKGxpc3QsIHN0YXJ0SW5kZXgsIGVuZEluZGV4LCBzY3JvbGxXaWR0aCwgb2Zmc2V0WCwgc2V0Tm9kZVJlZiwgcmVuZGVyRnVuYywgeyBnZXRLZXkgfSkge1xuICAgIHJldHVybiBSZWFjdC51c2VNZW1vKCgpID0+
|
|
25
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvVmlydHVhbExpc3QvaG9va3MvdXNlQ2hpbGRyZW4uanMiLCJjb21wb25lbnRzL1ZpcnR1YWxMaXN0L3NyYy9jb21wb25lbnRzL1ZpcnR1YWxMaXN0L2hvb2tzL3VzZUNoaWxkcmVuLnRzeCJdLCJuYW1lcyI6WyJqc3giLCJfanN4IiwiUmVhY3QiLCJJdGVtIiwidXNlQ2hpbGRyZW4iLCJsaXN0Iiwic3RhcnRJbmRleCIsImVuZEluZGV4Iiwic2Nyb2xsV2lkdGgiLCJvZmZzZXRYIiwic2V0Tm9kZVJlZiIsInJlbmRlckZ1bmMiLCJfcmVmIiwiZ2V0S2V5IiwidXNlTWVtbyIsInNsaWNlIiwibWFwIiwiaXRlbSIsImluZGV4IiwiZWxlSW5kZXgiLCJub2RlIiwic3R5bGUiLCJ3aWR0aCIsImtleSIsInNldFJlZiIsImVsZSIsImNoaWxkcmVuIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxHQUFHLElBQUlDLElBQUksUUFBUSxtQkFBbUI7QUNBL0MsT0FBTyxLQUFLQyxLQUFLLE1BQU0sT0FBTztBQUU5QixTQUFTQyxJQUFJLFFBQVEsU0FBUztBQUU5QixlQUFjLFNBQVVDLFdBQVdBLENBQ2pDQyxJQUFTLEVBQ1RDLFVBQWtCLEVBQ2xCQyxRQUFnQixFQUNoQkMsV0FBK0IsRUFDL0JDLE9BQWUsRUFDZkMsVUFBbUQsRUFDbkRDLFVBQXlCLEVBQUFDLElBQUEsRUFDRTtFQUFBLElBQXpCQyxNQUFNLEdBQUFELElBQUEsQ0FBTkMsTUFBTTtFQUVSLE9BQU9YLEtBQUssQ0FBQ1ksT0FBTyxDQUNsQjtJQUFBLE9BQ0VULElBQUksQ0FBQ1UsS0FBSyxDQUFDVCxVQUFVLEVBQUVDLFFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQ1MsR0FBRyxDQUFDLFVBQUNDLElBQUksRUFBRUMsS0FBSyxFQUFJO01BQ3ZELElBQU1DLFFBQVEsR0FBR2IsVUFBVSxHQUFHWSxLQUFLO01BQ25DLElBQU1FLElBQUksR0FBR1QsVUFBVSxDQUFDTSxJQUFJLEVBQUVFLFFBQVEsRUFBRTtRQUN0Q0UsS0FBSyxFQUFFO1VBQ0xDLEtBQUssRUFBRWQ7UURYUCxDQ1lEO1FBQ0RDLE9BQU8sRUFBUEE7TURYRixDQ1lDLENBQXVCO01BRXhCLElBQU1jLEdBQUcsR0FBR1YsTUFBTSxDQUFDSSxJQUFJLENBQUM7TUFDeEIsT0FDRWhCLElBQUEsQ0FBQ0UsSUFBSSxFQUFBO1FBQVdxQixNQUFNLEVBQUUsU0FBUkEsTUFBTUEsQ0FBR0MsR0FBRztVQUFBLE9BQUtmLFVBQVUsQ0FBQ08sSUFBSSxFQUFFUSxHQUFHLENBQUM7UUFBQTtRQUFBQyxRQUFBLEVBQ25ETjtNQUFJLENBQUEsRUFESUcsR0FBRyxDQUVQO0lBRVgsQ0FBQyxDQUFDO0VBQUEsR0FDSixDQUFDbEIsSUFBSSxFQUFFQyxVQUFVLEVBQUVDLFFBQVEsRUFBRUMsV0FBVyxFQUFFQyxPQUFPLEVBQUVDLFVBQVUsRUFBRUMsVUFBVSxFQUFFRSxNQUFNLENBQUMsQ0FDbkY7QUFDSCIsImZpbGUiOiJjb21wb25lbnRzL1ZpcnR1YWxMaXN0L2hvb2tzL3VzZUNoaWxkcmVuLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsganN4IGFzIF9qc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEl0ZW0gfSBmcm9tICcuLi9JdGVtJztcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHVzZUNoaWxkcmVuKGxpc3QsIHN0YXJ0SW5kZXgsIGVuZEluZGV4LCBzY3JvbGxXaWR0aCwgb2Zmc2V0WCwgc2V0Tm9kZVJlZiwgcmVuZGVyRnVuYywgeyBnZXRLZXkgfSkge1xuICAgIHJldHVybiBSZWFjdC51c2VNZW1vKCgpID0+IGxpc3Quc2xpY2Uoc3RhcnRJbmRleCwgZW5kSW5kZXggKyAxKS5tYXAoKGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICAgIGNvbnN0IGVsZUluZGV4ID0gc3RhcnRJbmRleCArIGluZGV4O1xuICAgICAgICBjb25zdCBub2RlID0gcmVuZGVyRnVuYyhpdGVtLCBlbGVJbmRleCwge1xuICAgICAgICAgICAgc3R5bGU6IHtcbiAgICAgICAgICAgICAgICB3aWR0aDogc2Nyb2xsV2lkdGgsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgb2Zmc2V0WCxcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IGtleSA9IGdldEtleShpdGVtKTtcbiAgICAgICAgcmV0dXJuIChfanN4KEl0ZW0sIHsgc2V0UmVmOiAoZWxlKSA9PiBzZXROb2RlUmVmKGl0ZW0sIGVsZSksIGNoaWxkcmVuOiBub2RlIH0sIGtleSkpO1xuICAgIH0pLCBbbGlzdCwgc3RhcnRJbmRleCwgZW5kSW5kZXgsIHNjcm9sbFdpZHRoLCBvZmZzZXRYLCBzZXROb2RlUmVmLCByZW5kZXJGdW5jLCBnZXRLZXldKTtcbn0iLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
|
|
@@ -13,4 +13,4 @@ export default function useDiffItem(data, getKey, onDiff) {
|
|
|
13
13
|
}
|
|
14
14
|
return [diffItemRef.current];
|
|
15
15
|
}
|
|
16
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,
|
|
16
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvVmlydHVhbExpc3Qvc3JjL2NvbXBvbmVudHMvVmlydHVhbExpc3QvaG9va3MvdXNlRGlmZkl0ZW0udHMiXSwibmFtZXMiOlsiUmVhY3QiLCJmaW5kTGlzdERpZmZJbmRleCIsInVzZURpZmZJdGVtIiwiZGF0YSIsImdldEtleSIsIm9uRGlmZiIsInByZXZEYXRhUmVmIiwidXNlUmVmIiwiZGlmZkl0ZW1SZWYiLCJjdXJyZW50IiwiZGlmZiIsImluZGV4IiwidW5kZWZpbmVkIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUtBLEtBQUssTUFBTSxPQUFPO0FBQzlCLFNBQVNDLGlCQUFpQixRQUFRLHdCQUF3QjtBQUcxRCxlQUFjLFNBQVVDLFdBQVdBLENBQ2pDQyxJQUFTLEVBQ1RDLE1BQWlCLEVBQ2pCQyxNQUFvQyxFQUFBO0VBRXBDLElBQU1DLFdBQVcsR0FBR04sS0FBSyxDQUFDTyxNQUFNLENBQUNKLElBQUksQ0FBQztFQUN0QyxJQUFNSyxXQUFXLEdBQUdSLEtBQUssQ0FBQ08sTUFBTSxDQUFXLElBQUksQ0FBQztFQUVoRCxJQUFJRCxXQUFXLENBQUNHLE9BQU8sS0FBS04sSUFBSSxFQUFFO0lBQ2hDLElBQU1PLElBQUksR0FBR1QsaUJBQWlCLENBQUNLLFdBQVcsQ0FBQ0csT0FBTyxJQUFJLEVBQUUsRUFBRU4sSUFBSSxJQUFJLEVBQUUsRUFBRUMsTUFBTSxDQUFDO0lBQzdFLElBQUksQ0FBQU0sSUFBSSxLQUFBLElBQUEsSUFBSkEsSUFBSSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFKQSxJQUFJLENBQUVDLEtBQUssTUFBS0MsU0FBUyxFQUFFO01BQzdCUCxNQUFNLEtBQUEsSUFBQSxJQUFOQSxNQUFNLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQU5BLE1BQU0sQ0FBR0ssSUFBSSxDQUFDQyxLQUFLLENBQUM7TUFDcEJILFdBQVcsQ0FBQ0MsT0FBTyxHQUFHTixJQUFJLENBQUNPLElBQUksQ0FBQ0MsS0FBSyxDQUFDO0lBQ3hDO0lBQ0FMLFdBQVcsQ0FBQ0csT0FBTyxHQUFHTixJQUFJO0VBQzVCO0VBRUEsT0FBTyxDQUFDSyxXQUFXLENBQUNDLE9BQU8sQ0FBQztBQUM5QiIsImZpbGUiOiJjb21wb25lbnRzL1ZpcnR1YWxMaXN0L2hvb2tzL3VzZURpZmZJdGVtLmpzIiwic291cmNlc0NvbnRlbnQiOltudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
|
|
@@ -82,4 +82,4 @@ onWheelDelta) {
|
|
|
82
82
|
}
|
|
83
83
|
return [onWheel, onFireFoxScroll];
|
|
84
84
|
}
|
|
85
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvVmlydHVhbExpc3Qvc3JjL2NvbXBvbmVudHMvVmlydHVhbExpc3QvaG9va3MvdXNlRnJhbWVXaGVlbC50cyIsImNvbXBvbmVudHMvVmlydHVhbExpc3QvaG9va3MvdXNlRnJhbWVXaGVlbC5qcyJdLCJuYW1lcyI6WyJyYWYiLCJ1c2VSZWYiLCJpc0ZGIiwidXNlT3JpZ2luU2Nyb2xsIiwidXNlRnJhbWVXaGVlbCIsImluVmlydHVhbCIsImlzU2Nyb2xsQXRUb3AiLCJpc1Njcm9sbEF0Qm90dG9tIiwiaXNTY3JvbGxBdExlZnQiLCJpc1Njcm9sbEF0UmlnaHQiLCJob3Jpem9udGFsU2Nyb2xsIiwib25XaGVlbERlbHRhIiwib2Zmc2V0UmVmIiwibmV4dEZyYW1lUmVmIiwid2hlZWxWYWx1ZVJlZiIsImlzTW91c2VTY3JvbGxSZWYiLCJvcmlnaW5TY3JvbGwiLCJvbldoZWVsWSIsImUiLCJkZWx0YVkiLCJjYW5jZWwiLCJjdXJyZW50IiwiZXZlbnQiLCJfdmlydHVhbEhhbmRsZWQiLCJwcmV2ZW50RGVmYXVsdCIsInBhdGNoTXVsdGlwbGUiLCJvbldoZWVsWCIsImRlbHRhWCIsIndoZWVsRGlyZWN0aW9uUmVmIiwid2hlZWxEaXJlY3Rpb25DbGVhblJlZiIsIm9uV2hlZWwiLCJzaGlmdEtleSIsIm1lcmdlZERlbHRhWCIsIm1lcmdlZERlbHRhWSIsImFic1giLCJNYXRoIiwiYWJzIiwiYWJzWSIsIm9uRmlyZUZveFNjcm9sbCIsImRldGFpbCJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsR0FBRyxNQUFNLGNBQWM7QUFDOUIsU0FBU0MsTUFBTSxRQUFRLE9BQU87QUFDOUIsT0FBT0MsSUFBSSxNQUFNLG9CQUFvQjtBQUNyQyxPQUFPQyxlQUFlLE1BQU0sbUJBQW1CO0FBTy9DLGVBQWMsU0FBVUMsYUFBYUEsQ0FDbkNDLFNBQWtCLEVBQ2xCQyxhQUFzQixFQUN0QkMsZ0JBQXlCLEVBQ3pCQyxjQUF1QixFQUN2QkMsZUFBd0IsRUFDeEJDLGdC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QUFJO0lBQ2xDO0lBRUEsSUFBTWEsSUFBSSxHQUFHQyxJQUFJLENBQUNDLEdBQUcsQ0FBQ0osWUFBWSxDQUFDO0lBQ25DLElBQU1LLElBQUksR0FBR0YsSUFBSSxDQUFDQyxHQUFHLENBQUNILFlBQVksQ0FBQztJQUVuQyxJQUFJTCxpQkFBaUIsQ0FBQ1AsT0FBTyxLQUFLLElBQUksRUFBRTtNQUN0Q08saUJBQWlCLENBQUNQLE9BQU8sR0FBR1gsZ0JBQWdCLElBQUl3QixJQUFJLEdBQUdHLElBQUksR0FBRyxHQUFHLEdBQUcsR0FBRztJQUN6RTtJQUVBLElBQUlULGlCQUFpQixDQUFDUCxPQUFPLEtBQUssR0FBRyxFQUFFO01BQ3JDSixRQUFRLENBQUNLLEtBQUssRUFBRVcsWUFBWSxDQUFDO0lBQy9CLENBQUMsTUFBTTtNQUNMUCxRQUFRLENBQUNKLEtBQUssRUFBRVUsWUFBWSxDQUFDO0lBQy9CO0VBQ0Y7RUFFQTtFQUNBLFNBQVNNLGVBQWVBLENBQUNoQixLQUFpQyxFQUFBO0lBQ3hELElBQUksQ0FBQ2pCLFNBQVMsRUFBRTtJQUVoQlUsZ0JBQWdCLENBQUNNLE9BQU8sR0FBR0MsS0FBSyxDQUFDaUIsTUFBTSxLQUFLekIsYUFBYSxDQUFDTyxPQUFPO0VBQ25FO0VBRUEsT0FBTyxDQUFDUyxPQUFPLEVBQUVRLGVBQWUsQ0FBQztBQUNuQyIsImZpbGUiOiJjb21wb25lbnRzL1ZpcnR1YWxMaXN0L2hvb2tzL3VzZUZyYW1lV2hlZWwuanMiLCJzb3VyY2VzQ29udGVudCI6W251bGwsImltcG9ydCByYWYgZnJvbSAnLi4vdXRpbHMvcmFmJztcbmltcG9ydCB7IHVzZVJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBpc0ZGIGZyb20gJy4uL3V0aWxzL2lzRmlyZWZveCc7XG5pbXBvcnQgdXNlT3JpZ2luU2Nyb2xsIGZyb20gJy4vdXNlT3JpZ2luU2Nyb2xsJztcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHVzZUZyYW1lV2hlZWwoaW5WaXJ0dWFsLCBpc1Njcm9sbEF0VG9wLCBpc1Njcm9sbEF0Qm90dG9tLCBpc1Njcm9sbEF0TGVmdCwgaXNTY3JvbGxBdFJpZ2h0LCBob3Jpem9udGFsU2Nyb2xsLCBcbi8qKipcbiAqIFJldHVybiBgdHJ1ZWAgd2hlbiB5b3UgbmVlZCB0byBwcmV2ZW50IGRlZmF1bHQgZXZlbnRcbiAqL1xub25XaGVlbERlbHRhKSB7XG4gICAgY29uc3Qgb2Zmc2V0UmVmID0gdXNlUmVmKDApO1xuICAgIGNvbnN0IG5leHRGcmFtZVJlZiA9IHVzZVJlZihudWxsKTtcbiAgICAvLyBGaXJlZm94IHBhdGNoXG4gICAgY29uc3Qgd2hlZWxWYWx1ZVJlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCBpc01vdXNlU2Nyb2xsUmVmID0gdXNlUmVmKGZhbHNlKTtcbiAgICAvLyBTY3JvbGwgc3RhdHVzIHN5bmNcbiAgICBjb25zdCBvcmlnaW5TY3JvbGwgPSB1c2VPcmlnaW5TY3JvbGwoaXNTY3JvbGxBdFRvcCwgaXNTY3JvbGxBdEJvdHRvbSwgaXNTY3JvbGxBdExlZnQsIGlzU2Nyb2xsQXRSaWdodCk7XG4gICAgZnVuY3Rpb24gb25XaGVlbFkoZSwgZGVsdGFZKSB7XG4gICAgICAgIHJhZi5jYW5jZWwobmV4dEZyYW1lUmVmLmN1cnJlbnQpO1xuICAgICAgICAvLyBEbyBub3RoaW5nIHdoZW4gc2Nyb2xsIGF0IHRoZSBlZGdlLCBTa2lwIGNoZWNrIHdoZW4gaXMgaW4gc2Nyb2xsXG4gICAgICAgIGlmIChvcmlnaW5TY3JvbGwoZmFsc2UsIGRlbHRhWSkpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIC8vIFNraXAgaWYgbmVzdCBMaXN0IGhhcyBoYW5kbGVkIHRoaXMgZXZlbnRcbiAgICAgICAgY29uc3QgZXZlbnQgPSBlO1xuICAgICAgICBpZiAoIWV2ZW50Ll92aXJ0dWFsSGFuZGxlZCkge1xuICAgICAgICAgICAgZXZlbnQuX3ZpcnR1YWxIYW5kbGVkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBvZmZzZXRSZWYuY3VycmVudCArPSBkZWx0YVk7XG4gICAgICAgIHdoZWVsVmFsdWVSZWYuY3VycmVudCA9IGRlbHRhWTtcbiAgICAgICAgLy8gUHJveHkgb2Ygc2Nyb2xsIGV2ZW50c1xuICAgICAgICBpZiAoIWlzRkYpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIH1cbiAgICAgICAgbmV4dEZyYW1lUmVmLmN1cnJlbnQgPSByYWYoKCkgPT4ge1xuICAgICAgICAgICAgLy8gUGF0Y2ggYSBtdWx0aXBsZSBmb3IgRmlyZWZveCB0byBmaXggd2hlZWwgbnVtYmVyIHRvbyBzbWFsbFxuICAgICAgICAgICAgY29uc3QgcGF0Y2hNdWx0aXBsZSA9IGlzTW91c2VTY3JvbGxSZWYuY3VycmVudCA/
|
|
85
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvVmlydHVhbExpc3Qvc3JjL2NvbXBvbmVudHMvVmlydHVhbExpc3QvaG9va3MvdXNlRnJhbWVXaGVlbC50cyIsImNvbXBvbmVudHMvVmlydHVhbExpc3QvaG9va3MvdXNlRnJhbWVXaGVlbC5qcyJdLCJuYW1lcyI6WyJyYWYiLCJ1c2VSZWYiLCJpc0ZGIiwidXNlT3JpZ2luU2Nyb2xsIiwidXNlRnJhbWVXaGVlbCIsImluVmlydHVhbCIsImlzU2Nyb2xsQXRUb3AiLCJpc1Njcm9sbEF0Qm90dG9tIiwiaXNTY3JvbGxBdExlZnQiLCJpc1Njcm9sbEF0UmlnaHQiLCJob3Jpem9udGFsU2Nyb2xsIiwib25XaGVlbERlbHRhIiwib2Zmc2V0UmVmIiwibmV4dEZyYW1lUmVmIiwid2hlZWxWYWx1ZVJlZiIsImlzTW91c2VTY3JvbGxSZWYiLCJvcmlnaW5TY3JvbGwiLCJvbldoZWVsWSIsImUiLCJkZWx0YVkiLCJjYW5jZWwiLCJjdXJyZW50IiwiZXZlbnQiLCJfdmlydHVhbEhhbmRsZWQiLCJwcmV2ZW50RGVmYXVsdCIsInBhdGNoTXVsdGlwbGUiLCJvbldoZWVsWCIsImRlbHRhWCIsIndoZWVsRGlyZWN0aW9uUmVmIiwid2hlZWxEaXJlY3Rpb25DbGVhblJlZiIsIm9uV2hlZWwiLCJzaGlmdEtleSIsIm1lcmdlZERlbHRhWCIsIm1lcmdlZERlbHRhWSIsImFic1giLCJNYXRoIiwiYWJzIiwiYWJzWSIsIm9uRmlyZUZveFNjcm9sbCIsImRldGFpbCJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsR0FBRyxNQUFNLGNBQWM7QUFDOUIsU0FBU0MsTUFBTSxRQUFRLE9BQU87QUFDOUIsT0FBT0MsSUFBSSxNQUFNLG9CQUFvQjtBQUNyQyxPQUFPQyxlQUFlLE1BQU0sbUJBQW1CO0FBTy9DLGVBQWMsU0FBVUMsYUFBYUEsQ0FDbkNDLFNBQWtCLEVBQ2xCQyxhQUFzQixFQUN0QkMsZ0JBQXlCLEVBQ3pCQyxjQUF1QixFQUN2QkMsZUFBd0IsRUFDeEJDLGdCQUF5QjtBQUN6QjtBQ1hGO0FBQ0E7QURhRUMsWUFBMkQsRUFBQTtFQUUzRCxJQUFNQyxTQUFTLEdBQUdYLE1BQU0sQ0FBQyxDQUFDLENBQUM7RUFDM0IsSUFBTVksWUFBWSxHQUFHWixNQUFNLENBQVMsSUFBSSxDQUFDO0VBRXpDO0VBQ0EsSUFBTWEsYUFBYSxHQUFHYixNQUFNLENBQVMsSUFBSSxDQUFDO0VBQzFDLElBQU1jLGdCQUFnQixHQUFHZCxNQUFNLENBQVUsS0FBSyxDQUFDO0VBRS9DO0VBQ0EsSUFBTWUsWUFBWSxHQUFHYixlQUFlLENBQ2xDRyxhQUFhLEVBQ2JDLGdCQUFnQixFQUNoQkMsY0FBYyxFQUNkQyxlQUFlLENBQ2hCO0VBRUQsU0FBU1EsUUFBUUEsQ0FBQ0MsQ0FBYSxFQUFFQyxNQUFjLEVBQUE7SUFDN0NuQixHQUFHLENBQUNvQixNQUFNLENBQUNQLFlBQVksQ0FBQ1EsT0FBUSxDQUFDO0lBRWpDO0lBQ0EsSUFBSUwsWUFBWSxDQUFDLEtBQUssRUFBRUcsTUFBTSxDQUFDLEVBQUU7SUFFakM7SUFDQSxJQUFNRyxLQUFLLEdBQUdKLENBRWI7SUFDRCxJQUFJLENBQUNJLEtBQUssQ0FBQ0MsZUFBZSxFQUFFO01BQzFCRCxLQUFLLENBQUNDLGVBQWUsR0FBRyxJQUFJO0lBQzlCLENBQUMsTUFBTTtNQUNMO0lBQ0Y7SUFFQVgsU0FBUyxDQUFDUyxPQUFPLElBQUlGLE1BQU07SUFDM0JMLGFBQWEsQ0FBQ08sT0FBTyxHQUFHRixNQUFNO0lBRTlCO0lBQ0EsSUFBSSxDQUFDakIsSUFBSSxFQUFFO01BQ1RvQixLQUFLLENBQUNFLGNBQWMsQ0FBQSxDQUFFO0lBQ3hCO0lBRUFYLFlBQVksQ0FBQ1EsT0FBTyxHQUFHckIsR0FBRyxDQUFDLFlBQUs7TUFDOUI7TUFDQSxJQUFNeUIsYUFBYSxHQUFHVixnQkFBZ0IsQ0FBQ00sT0FBTyxHQUFHLEVBQUUsR0FBRyxDQUFDO01BQ3ZEVixZQUFZLENBQUNDLFNBQVMsQ0FBQ1MsT0FBTyxHQUFHSSxhQUFhLEVBQUUsS0FBSyxDQUFDO01BQ3REYixTQUFTLENBQUNTLE9BQU8sR0FBRyxDQUFDO0lBQ3ZCLENBQUMsQ0FBQztFQUNKO0VBRUEsU0FBU0ssUUFBUUEsQ0FBQ0osS0FBaUIsRUFBRUssTUFBYyxFQUFBO0lBQ2pEaEIsWUFBWSxDQUFDZ0IsTUFBTSxFQUFFLElBQUksQ0FBQztJQUUxQixJQUFJLENBQUN6QixJQUFJLEVBQUU7TUFDVG9CLEtBQUssQ0FBQ0UsY0FBYyxDQUFBLENBQUU7SUFDeEI7RUFDRjtFQUVBO0VBQ0EsSUFBTUksaUJBQWlCLEdBQUczQixNQUFNLENBQTBCLElBQUksQ0FBQztFQUMvRCxJQUFNNEIsc0JBQXNCLEdBQUc1QixNQUFNLENBQVMsSUFBSSxDQUFDO0VBRW5ELFNBQVM2QixPQUFPQSxDQUFDUixLQUFpQixFQUFBO0lBQ2hDLElBQUksQ0FBQ2pCLFNBQVMsRUFBRTtJQUVoQjtJQUNBTCxHQUFHLENBQUNvQixNQUFNLENBQUNTLHNCQUFzQixDQUFDUixPQUFRLENBQUM7SUFDM0NRLHNCQUFzQixDQUFDUixPQUFPLEdBQUdyQixHQUFHLENBQUMsWUFBSztNQUN4QzRCLGlCQUFpQixDQUFDUCxPQUFPLEdBQUcsSUFBSTtJQUNsQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRUwsSUFBUU0sTUFBTSxHQUF1QkwsS0FBSyxDQUFsQ0ssTUFBTTtNQUFFUixNQUFNLEdBQWVHLEtBQUssQ0FBMUJILE1BQU07TUFBRVksUUFBUSxHQUFLVCxLQUFLLENBQWxCUyxRQUFRO0lBRWhDLElBQUlDLFlBQVksR0FBR0wsTUFBTTtJQUN6QixJQUFJTSxZQUFZLEdBQUdkLE1BQU07SUFFekIsSUFDRVMsaUJBQWlCLENBQUNQLE9BQU8sS0FBSyxJQUFJLElBQ2pDLENBQUNPLGlCQUFpQixDQUFDUCxPQUFPLEtBQUtVLFFBQVEsSUFBSSxLQUFLLENBQUMsSUFBSVosTUFBTSxJQUFJLENBQUNRLE1BQU8sRUFDeEU7TUFDQUssWUFBWSxHQUFHYixNQUFNO01BQ3JCYyxZQUFZLEdBQUcsQ0FBQztNQUVoQkwsaUJBQWlCLENBQUNQLE9BQU8sR0FBRyxJQUFJO0lBQ2xDO0lBRUEsSUFBTWEsSUFBSSxHQUFHQyxJQUFJLENBQUNDLEdBQUcsQ0FBQ0osWUFBWSxDQUFDO0lBQ25DLElBQU1LLElBQUksR0FBR0YsSUFBSSxDQUFDQyxHQUFHLENBQUNILFlBQVksQ0FBQztJQUVuQyxJQUFJTCxpQkFBaUIsQ0FBQ1AsT0FBTyxLQUFLLElBQUksRUFBRTtNQUN0Q08saUJBQWlCLENBQUNQLE9BQU8sR0FBR1gsZ0JBQWdCLElBQUl3QixJQUFJLEdBQUdHLElBQUksR0FBRyxHQUFHLEdBQUcsR0FBRztJQUN6RTtJQUVBLElBQUlULGlCQUFpQixDQUFDUCxPQUFPLEtBQUssR0FBRyxFQUFFO01BQ3JDSixRQUFRLENBQUNLLEtBQUssRUFBRVcsWUFBWSxDQUFDO0lBQy9CLENBQUMsTUFBTTtNQUNMUCxRQUFRLENBQUNKLEtBQUssRUFBRVUsWUFBWSxDQUFDO0lBQy9CO0VBQ0Y7RUFFQTtFQUNBLFNBQVNNLGVBQWVBLENBQUNoQixLQUFpQyxFQUFBO0lBQ3hELElBQUksQ0FBQ2pCLFNBQVMsRUFBRTtJQUVoQlUsZ0JBQWdCLENBQUNNLE9BQU8sR0FBR0MsS0FBSyxDQUFDaUIsTUFBTSxLQUFLekIsYUFBYSxDQUFDTyxPQUFPO0VBQ25FO0VBRUEsT0FBTyxDQUFDUyxPQUFPLEVBQUVRLGVBQWUsQ0FBQztBQUNuQyIsImZpbGUiOiJjb21wb25lbnRzL1ZpcnR1YWxMaXN0L2hvb2tzL3VzZUZyYW1lV2hlZWwuanMiLCJzb3VyY2VzQ29udGVudCI6W251bGwsImltcG9ydCByYWYgZnJvbSAnLi4vdXRpbHMvcmFmJztcbmltcG9ydCB7IHVzZVJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBpc0ZGIGZyb20gJy4uL3V0aWxzL2lzRmlyZWZveCc7XG5pbXBvcnQgdXNlT3JpZ2luU2Nyb2xsIGZyb20gJy4vdXNlT3JpZ2luU2Nyb2xsJztcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHVzZUZyYW1lV2hlZWwoaW5WaXJ0dWFsLCBpc1Njcm9sbEF0VG9wLCBpc1Njcm9sbEF0Qm90dG9tLCBpc1Njcm9sbEF0TGVmdCwgaXNTY3JvbGxBdFJpZ2h0LCBob3Jpem9udGFsU2Nyb2xsLCBcbi8qKipcbiAqIFJldHVybiBgdHJ1ZWAgd2hlbiB5b3UgbmVlZCB0byBwcmV2ZW50IGRlZmF1bHQgZXZlbnRcbiAqL1xub25XaGVlbERlbHRhKSB7XG4gICAgY29uc3Qgb2Zmc2V0UmVmID0gdXNlUmVmKDApO1xuICAgIGNvbnN0IG5leHRGcmFtZVJlZiA9IHVzZVJlZihudWxsKTtcbiAgICAvLyBGaXJlZm94IHBhdGNoXG4gICAgY29uc3Qgd2hlZWxWYWx1ZVJlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCBpc01vdXNlU2Nyb2xsUmVmID0gdXNlUmVmKGZhbHNlKTtcbiAgICAvLyBTY3JvbGwgc3RhdHVzIHN5bmNcbiAgICBjb25zdCBvcmlnaW5TY3JvbGwgPSB1c2VPcmlnaW5TY3JvbGwoaXNTY3JvbGxBdFRvcCwgaXNTY3JvbGxBdEJvdHRvbSwgaXNTY3JvbGxBdExlZnQsIGlzU2Nyb2xsQXRSaWdodCk7XG4gICAgZnVuY3Rpb24gb25XaGVlbFkoZSwgZGVsdGFZKSB7XG4gICAgICAgIHJhZi5jYW5jZWwobmV4dEZyYW1lUmVmLmN1cnJlbnQpO1xuICAgICAgICAvLyBEbyBub3RoaW5nIHdoZW4gc2Nyb2xsIGF0IHRoZSBlZGdlLCBTa2lwIGNoZWNrIHdoZW4gaXMgaW4gc2Nyb2xsXG4gICAgICAgIGlmIChvcmlnaW5TY3JvbGwoZmFsc2UsIGRlbHRhWSkpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIC8vIFNraXAgaWYgbmVzdCBMaXN0IGhhcyBoYW5kbGVkIHRoaXMgZXZlbnRcbiAgICAgICAgY29uc3QgZXZlbnQgPSBlO1xuICAgICAgICBpZiAoIWV2ZW50Ll92aXJ0dWFsSGFuZGxlZCkge1xuICAgICAgICAgICAgZXZlbnQuX3ZpcnR1YWxIYW5kbGVkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBvZmZzZXRSZWYuY3VycmVudCArPSBkZWx0YVk7XG4gICAgICAgIHdoZWVsVmFsdWVSZWYuY3VycmVudCA9IGRlbHRhWTtcbiAgICAgICAgLy8gUHJveHkgb2Ygc2Nyb2xsIGV2ZW50c1xuICAgICAgICBpZiAoIWlzRkYpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIH1cbiAgICAgICAgbmV4dEZyYW1lUmVmLmN1cnJlbnQgPSByYWYoKCkgPT4ge1xuICAgICAgICAgICAgLy8gUGF0Y2ggYSBtdWx0aXBsZSBmb3IgRmlyZWZveCB0byBmaXggd2hlZWwgbnVtYmVyIHRvbyBzbWFsbFxuICAgICAgICAgICAgY29uc3QgcGF0Y2hNdWx0aXBsZSA9IGlzTW91c2VTY3JvbGxSZWYuY3VycmVudCA/IDEwIDogMTtcbiAgICAgICAgICAgIG9uV2hlZWxEZWx0YShvZmZzZXRSZWYuY3VycmVudCAqIHBhdGNoTXVsdGlwbGUsIGZhbHNlKTtcbiAgICAgICAgICAgIG9mZnNldFJlZi5jdXJyZW50ID0gMDtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIG9uV2hlZWxYKGV2ZW50LCBkZWx0YVgpIHtcbiAgICAgICAgb25XaGVlbERlbHRhKGRlbHRhWCwgdHJ1ZSk7XG4gICAgICAgIGlmICghaXNGRikge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBDaGVjayBmb3Igd2hpY2ggZGlyZWN0aW9uIGRvZXMgd2hlZWwgZG8uIGBzeGAgbWVhbnMgYHNoaWZ0ICsgd2hlZWxgXG4gICAgY29uc3Qgd2hlZWxEaXJlY3Rpb25SZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3Qgd2hlZWxEaXJlY3Rpb25DbGVhblJlZiA9IHVzZVJlZihudWxsKTtcbiAgICBmdW5jdGlvbiBvbldoZWVsKGV2ZW50KSB7XG4gICAgICAgIGlmICghaW5WaXJ0dWFsKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAvLyBXYWl0IGZvciAyIGZyYW1lIHRvIGNsZWFuIGRpcmVjdGlvblxuICAgICAgICByYWYuY2FuY2VsKHdoZWVsRGlyZWN0aW9uQ2xlYW5SZWYuY3VycmVudCk7XG4gICAgICAgIHdoZWVsRGlyZWN0aW9uQ2xlYW5SZWYuY3VycmVudCA9IHJhZigoKSA9PiB7XG4gICAgICAgICAgICB3aGVlbERpcmVjdGlvblJlZi5jdXJyZW50ID0gbnVsbDtcbiAgICAgICAgfSwgMik7XG4gICAgICAgIGNvbnN0IHsgZGVsdGFYLCBkZWx0YVksIHNoaWZ0S2V5IH0gPSBldmVudDtcbiAgICAgICAgbGV0IG1lcmdlZERlbHRhWCA9IGRlbHRhWDtcbiAgICAgICAgbGV0IG1lcmdlZERlbHRhWSA9IGRlbHRhWTtcbiAgICAgICAgaWYgKHdoZWVsRGlyZWN0aW9uUmVmLmN1cnJlbnQgPT09ICdzeCcgfHxcbiAgICAgICAgICAgICghd2hlZWxEaXJlY3Rpb25SZWYuY3VycmVudCAmJiAoc2hpZnRLZXkgfHwgZmFsc2UpICYmIGRlbHRhWSAmJiAhZGVsdGFYKSkge1xuICAgICAgICAgICAgbWVyZ2VkRGVsdGFYID0gZGVsdGFZO1xuICAgICAgICAgICAgbWVyZ2VkRGVsdGFZID0gMDtcbiAgICAgICAgICAgIHdoZWVsRGlyZWN0aW9uUmVmLmN1cnJlbnQgPSAnc3gnO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGFic1ggPSBNYXRoLmFicyhtZXJnZWREZWx0YVgpO1xuICAgICAgICBjb25zdCBhYnNZID0gTWF0aC5hYnMobWVyZ2VkRGVsdGFZKTtcbiAgICAgICAgaWYgKHdoZWVsRGlyZWN0aW9uUmVmLmN1cnJlbnQgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHdoZWVsRGlyZWN0aW9uUmVmLmN1cnJlbnQgPSBob3Jpem9udGFsU2Nyb2xsICYmIGFic1ggPiBhYnNZID8gJ3gnIDogJ3knO1xuICAgICAgICB9XG4gICAgICAgIGlmICh3aGVlbERpcmVjdGlvblJlZi5jdXJyZW50ID09PSAneScpIHtcbiAgICAgICAgICAgIG9uV2hlZWxZKGV2ZW50LCBtZXJnZWREZWx0YVkpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgb25XaGVlbFgoZXZlbnQsIG1lcmdlZERlbHRhWCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQSBwYXRjaCBmb3IgZmlyZWZveFxuICAgIGZ1bmN0aW9uIG9uRmlyZUZveFNjcm9sbChldmVudCkge1xuICAgICAgICBpZiAoIWluVmlydHVhbClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgaXNNb3VzZVNjcm9sbFJlZi5jdXJyZW50ID0gZXZlbnQuZGV0YWlsID09PSB3aGVlbFZhbHVlUmVmLmN1cnJlbnQ7XG4gICAgfVxuICAgIHJldHVybiBbb25XaGVlbCwgb25GaXJlRm94U2Nyb2xsXTtcbn0iXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
|
|
@@ -44,4 +44,4 @@ export function useGetSize(mergedData, getKey, heights, itemHeight) {
|
|
|
44
44
|
};
|
|
45
45
|
return getSize;
|
|
46
46
|
}
|
|
47
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvVmlydHVhbExpc3Qvc3JjL2NvbXBvbmVudHMvVmlydHVhbExpc3QvaG9va3MvdXNlR2V0U2l6ZS50cyIsImNvbXBvbmVudHMvVmlydHVhbExpc3QvaG9va3MvdXNlR2V0U2l6ZS5qcyJdLCJuYW1lcyI6WyJSZWFjdCIsInVzZUdldFNpemUiLCJtZXJnZWREYXRhIiwiZ2V0S2V5IiwiaGVpZ2h0cyIsIml0ZW1IZWlnaHQiLCJfUmVhY3QkdXNlTWVtbyIsInVzZU1lbW8iLCJNYXAiLCJpZCIsIl9SZWFjdCR1c2VNZW1vMiIsIl9zbGljZWRUb0FycmF5Iiwia2V5MkluZGV4IiwiYm90dG9tTGlzdCIsImdldFNpemUiLCJzdGFydEtleSIsImVuZEtleSIsImFyZ3VtZW50cyIsImxlbmd0aCIsInVuZGVmaW5lZCIsIl9hIiwic3RhcnRJbmRleCIsImdldCIsImVuZEluZGV4IiwiZGF0YUxlbiIsImkiLCJpdGVtIiwia2V5Iiwic2V0IiwiY2FjaGVIZWlnaHQiLCJ0b3AiLCJib3R0b20iXSwibWFwcGluZ3MiOiI7QUFFQSxPQUFPLEtBQUtBLEtBQUssTUFBTSxPQUFPO0FBRTlCO0FDRkE7QUFDQTtBQUNBO0FESUEsT0FBTSxTQUFVQyxVQUFVQSxDQUN4QkMsVUFBZSxFQUNmQyxNQUFpQixFQUNqQkMsT0FBaUIsRUFDakJDLFVBQWtCLEVBQUE7RUFFbEIsSUFBQUMsY0FBQSxHQUFnQ04sS0FBSyxDQUFDTyxPQUFPLENBRTNDO01BQUEsT0FBTSxDQUFDLElBQUlDLEdBQUcsQ0FBQSxDQUFFLEVBQUUsRUFBRSxDQUFDO0lBQUEsR0FBRSxDQUFDTixVQUFVLEVBQUVFLE9BQU8sQ0FBQ0ssRUFBRSxFQUFFSixVQUFVLENBQUMsQ0FBQztJQUFBSyxlQUFBLEdBQUFDLGNBQUEsQ0FBQUwsY0FBQTtJQUZ2RE0sU0FBUyxHQUFBRixlQUFBO0lBQUVHLFVBQVUsR0FBQUgsZUFBQTtFQUk1QixJQUFNSSxPQUFPLEdBQVksU0FBbkJBLE9BQU9BLENBQWFDLFFBQVEsRUFBdUI7SUFBQSxJQUFyQkMsTUFBTSxHQUFBQyxTQUFBLENBQUFDLE1BQUEsUUFBQUQsU0FBQSxRQUFBRSxTQUFBLEdBQUFGLFNBQUEsTUFBR0YsUUFBUTtJQ1YvQyxJQUFJSyxFQUFFO0lEV1Y7SUFDQSxJQUFJQyxVQUFVLEdBQUdULFNBQVMsQ0FBQ1UsR0FBRyxDQUFDUCxRQUFRLENBQUM7SUFDeEMsSUFBSVEsUUFBUSxHQUFHWCxTQUFTLENBQUNVLEdBQUcsQ0FBQ04sTUFBTSxDQUFDO0lBRXBDO0lBQ0EsSUFBSUssVUFBVSxLQUFLRixTQUFTLElBQUlJLFFBQVEsS0FBS0osU0FBUyxFQUFFO01BQ3RELElBQU1LLE9BQU8sR0FBR3RCLFVBQVUsQ0FBQ2dCLE1BQU07TUFDakMsS0FBSyxJQUFJTyxDQUFDLEdBQUdaLFVBQVUsQ0FBQ0ssTUFBTSxFQUFFTyxDQUFDLEdBQUdELE9BQU8sRUFBRUMsQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUNuRCxJQUFNQyxJQUFJLEdBQUd4QixVQUFVLENBQUN1QixDQUFDLENBQUM7UUFDMUIsSUFBTUUsR0FBRyxHQUFHeEIsTUFBTSxDQUFDdUIsSUFBSSxDQUFDO1FBQ3hCZCxTQUFTLENBQUNnQixHQUFHLENBQUNELEdBQUcsRUFBRUYsQ0FBQyxDQUFDO1FBQ3JCLElBQU1JLFdBQVcsR0FBRyxDQUFBVCxFQUFBLEdBQUFoQixPQUFPLENBQUNrQixHQUFHLENBQUNLLEdBQUcsQ0FBQyxNQUFBLElBQUEsSUFBQVAsRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBQSxFQUFBLEdBQUlmLFVBQVU7UUFDbERRLFVBQVUsQ0FBQ1ksQ0FBQyxDQUFDLEdBQUcsQ0FBQ1osVUFBVSxDQUFDWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJSSxXQUFXO1FBQ3RELElBQUlGLEdBQUcsS0FBS1osUUFBUSxFQUFFO1VBQ3BCTSxVQUFVLEdBQUdJLENBQUM7UUFDaEI7UUFDQSxJQUFJRSxHQUFHLEtBQUtYLE1BQU0sRUFBRTtVQUNsQk8sUUFBUSxHQUFHRSxDQUFDO1FBQ2Q7UUFFQSxJQUFJSixVQUFVLEtBQUtGLFNBQVMsSUFBSUksUUFBUSxLQUFLSixTQUFTLEVBQUU7VUFDdEQ7UUFDRjtNQUNGO0lBQ0Y7SUFFQSxPQUFPO01BQ0xXLEdBQUcsRUFBRWpCLFVBQVUsQ0FBQ1EsVUFBVyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7TUFDckNVLE1BQU0sRUFBRWxCLFVBQVUsQ0FBQ1UsUUFBUztJQ1oxQixDRGFIO0VBQ0gsQ0FBQztFQUVELE9BQU9ULE9BQU87QUFDaEIiLCJmaWxlIjoiY29tcG9uZW50cy9WaXJ0dWFsTGlzdC9ob29rcy91c2VHZXRTaXplLmpzIiwic291cmNlc0NvbnRlbnQiOltudWxsLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG4vKipcbiAqIFNpemUgaW5mbyBuZWVkIGxvb3AgcXVlcnkgZm9yIHRoZSBgaGVpZ2h0c2Agd2hpY2ggd2lsbCBoYXMgdGhlIHBlcmYgaXNzdWUuXG4gKiBMZXQgY2FjaGUgcmVzdWx0IGZvciBlYWNoIHJlbmRlciBwaGFzZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZUdldFNpemUobWVyZ2VkRGF0YSwgZ2V0S2V5LCBoZWlnaHRzLCBpdGVtSGVpZ2h0KSB7XG4gICAgY29uc3QgW2tleTJJbmRleCwgYm90dG9tTGlzdF0gPSBSZWFjdC51c2VNZW1vKCgpID0+
|
|
47
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvVmlydHVhbExpc3Qvc3JjL2NvbXBvbmVudHMvVmlydHVhbExpc3QvaG9va3MvdXNlR2V0U2l6ZS50cyIsImNvbXBvbmVudHMvVmlydHVhbExpc3QvaG9va3MvdXNlR2V0U2l6ZS5qcyJdLCJuYW1lcyI6WyJSZWFjdCIsInVzZUdldFNpemUiLCJtZXJnZWREYXRhIiwiZ2V0S2V5IiwiaGVpZ2h0cyIsIml0ZW1IZWlnaHQiLCJfUmVhY3QkdXNlTWVtbyIsInVzZU1lbW8iLCJNYXAiLCJpZCIsIl9SZWFjdCR1c2VNZW1vMiIsIl9zbGljZWRUb0FycmF5Iiwia2V5MkluZGV4IiwiYm90dG9tTGlzdCIsImdldFNpemUiLCJzdGFydEtleSIsImVuZEtleSIsImFyZ3VtZW50cyIsImxlbmd0aCIsInVuZGVmaW5lZCIsIl9hIiwic3RhcnRJbmRleCIsImdldCIsImVuZEluZGV4IiwiZGF0YUxlbiIsImkiLCJpdGVtIiwia2V5Iiwic2V0IiwiY2FjaGVIZWlnaHQiLCJ0b3AiLCJib3R0b20iXSwibWFwcGluZ3MiOiI7QUFFQSxPQUFPLEtBQUtBLEtBQUssTUFBTSxPQUFPO0FBRTlCO0FDRkE7QUFDQTtBQUNBO0FESUEsT0FBTSxTQUFVQyxVQUFVQSxDQUN4QkMsVUFBZSxFQUNmQyxNQUFpQixFQUNqQkMsT0FBaUIsRUFDakJDLFVBQWtCLEVBQUE7RUFFbEIsSUFBQUMsY0FBQSxHQUFnQ04sS0FBSyxDQUFDTyxPQUFPLENBRTNDO01BQUEsT0FBTSxDQUFDLElBQUlDLEdBQUcsQ0FBQSxDQUFFLEVBQUUsRUFBRSxDQUFDO0lBQUEsR0FBRSxDQUFDTixVQUFVLEVBQUVFLE9BQU8sQ0FBQ0ssRUFBRSxFQUFFSixVQUFVLENBQUMsQ0FBQztJQUFBSyxlQUFBLEdBQUFDLGNBQUEsQ0FBQUwsY0FBQTtJQUZ2RE0sU0FBUyxHQUFBRixlQUFBO0lBQUVHLFVBQVUsR0FBQUgsZUFBQTtFQUk1QixJQUFNSSxPQUFPLEdBQVksU0FBbkJBLE9BQU9BLENBQWFDLFFBQVEsRUFBdUI7SUFBQSxJQUFyQkMsTUFBTSxHQUFBQyxTQUFBLENBQUFDLE1BQUEsUUFBQUQsU0FBQSxRQUFBRSxTQUFBLEdBQUFGLFNBQUEsTUFBR0YsUUFBUTtJQ1YvQyxJQUFJSyxFQUFFO0lEV1Y7SUFDQSxJQUFJQyxVQUFVLEdBQUdULFNBQVMsQ0FBQ1UsR0FBRyxDQUFDUCxRQUFRLENBQUM7SUFDeEMsSUFBSVEsUUFBUSxHQUFHWCxTQUFTLENBQUNVLEdBQUcsQ0FBQ04sTUFBTSxDQUFDO0lBRXBDO0lBQ0EsSUFBSUssVUFBVSxLQUFLRixTQUFTLElBQUlJLFFBQVEsS0FBS0osU0FBUyxFQUFFO01BQ3RELElBQU1LLE9BQU8sR0FBR3RCLFVBQVUsQ0FBQ2dCLE1BQU07TUFDakMsS0FBSyxJQUFJTyxDQUFDLEdBQUdaLFVBQVUsQ0FBQ0ssTUFBTSxFQUFFTyxDQUFDLEdBQUdELE9BQU8sRUFBRUMsQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUNuRCxJQUFNQyxJQUFJLEdBQUd4QixVQUFVLENBQUN1QixDQUFDLENBQUM7UUFDMUIsSUFBTUUsR0FBRyxHQUFHeEIsTUFBTSxDQUFDdUIsSUFBSSxDQUFDO1FBQ3hCZCxTQUFTLENBQUNnQixHQUFHLENBQUNELEdBQUcsRUFBRUYsQ0FBQyxDQUFDO1FBQ3JCLElBQU1JLFdBQVcsR0FBRyxDQUFBVCxFQUFBLEdBQUFoQixPQUFPLENBQUNrQixHQUFHLENBQUNLLEdBQUcsQ0FBQyxNQUFBLElBQUEsSUFBQVAsRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBQSxFQUFBLEdBQUlmLFVBQVU7UUFDbERRLFVBQVUsQ0FBQ1ksQ0FBQyxDQUFDLEdBQUcsQ0FBQ1osVUFBVSxDQUFDWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJSSxXQUFXO1FBQ3RELElBQUlGLEdBQUcsS0FBS1osUUFBUSxFQUFFO1VBQ3BCTSxVQUFVLEdBQUdJLENBQUM7UUFDaEI7UUFDQSxJQUFJRSxHQUFHLEtBQUtYLE1BQU0sRUFBRTtVQUNsQk8sUUFBUSxHQUFHRSxDQUFDO1FBQ2Q7UUFFQSxJQUFJSixVQUFVLEtBQUtGLFNBQVMsSUFBSUksUUFBUSxLQUFLSixTQUFTLEVBQUU7VUFDdEQ7UUFDRjtNQUNGO0lBQ0Y7SUFFQSxPQUFPO01BQ0xXLEdBQUcsRUFBRWpCLFVBQVUsQ0FBQ1EsVUFBVyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7TUFDckNVLE1BQU0sRUFBRWxCLFVBQVUsQ0FBQ1UsUUFBUztJQ1oxQixDRGFIO0VBQ0gsQ0FBQztFQUVELE9BQU9ULE9BQU87QUFDaEIiLCJmaWxlIjoiY29tcG9uZW50cy9WaXJ0dWFsTGlzdC9ob29rcy91c2VHZXRTaXplLmpzIiwic291cmNlc0NvbnRlbnQiOltudWxsLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG4vKipcbiAqIFNpemUgaW5mbyBuZWVkIGxvb3AgcXVlcnkgZm9yIHRoZSBgaGVpZ2h0c2Agd2hpY2ggd2lsbCBoYXMgdGhlIHBlcmYgaXNzdWUuXG4gKiBMZXQgY2FjaGUgcmVzdWx0IGZvciBlYWNoIHJlbmRlciBwaGFzZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZUdldFNpemUobWVyZ2VkRGF0YSwgZ2V0S2V5LCBoZWlnaHRzLCBpdGVtSGVpZ2h0KSB7XG4gICAgY29uc3QgW2tleTJJbmRleCwgYm90dG9tTGlzdF0gPSBSZWFjdC51c2VNZW1vKCgpID0+IFtuZXcgTWFwKCksIFtdXSwgW21lcmdlZERhdGEsIGhlaWdodHMuaWQsIGl0ZW1IZWlnaHRdKTtcbiAgICBjb25zdCBnZXRTaXplID0gKHN0YXJ0S2V5LCBlbmRLZXkgPSBzdGFydEtleSkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIC8vIEdldCBmcm9tIGNhY2hlIGZpcnN0XG4gICAgICAgIGxldCBzdGFydEluZGV4ID0ga2V5MkluZGV4LmdldChzdGFydEtleSk7XG4gICAgICAgIGxldCBlbmRJbmRleCA9IGtleTJJbmRleC5nZXQoZW5kS2V5KTtcbiAgICAgICAgLy8gTG9vcCB0byBmaWxsIHRoZSBjYWNoZVxuICAgICAgICBpZiAoc3RhcnRJbmRleCA9PT0gdW5kZWZpbmVkIHx8IGVuZEluZGV4ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IGRhdGFMZW4gPSBtZXJnZWREYXRhLmxlbmd0aDtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSBib3R0b21MaXN0Lmxlbmd0aDsgaSA8IGRhdGFMZW47IGkgKz0gMSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW0gPSBtZXJnZWREYXRhW2ldO1xuICAgICAgICAgICAgICAgIGNvbnN0IGtleSA9IGdldEtleShpdGVtKTtcbiAgICAgICAgICAgICAgICBrZXkySW5kZXguc2V0KGtleSwgaSk7XG4gICAgICAgICAgICAgICAgY29uc3QgY2FjaGVIZWlnaHQgPSAoX2EgPSBoZWlnaHRzLmdldChrZXkpKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBpdGVtSGVpZ2h0O1xuICAgICAgICAgICAgICAgIGJvdHRvbUxpc3RbaV0gPSAoYm90dG9tTGlzdFtpIC0gMV0gfHwgMCkgKyBjYWNoZUhlaWdodDtcbiAgICAgICAgICAgICAgICBpZiAoa2V5ID09PSBzdGFydEtleSkge1xuICAgICAgICAgICAgICAgICAgICBzdGFydEluZGV4ID0gaTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGtleSA9PT0gZW5kS2V5KSB7XG4gICAgICAgICAgICAgICAgICAgIGVuZEluZGV4ID0gaTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHN0YXJ0SW5kZXggIT09IHVuZGVmaW5lZCAmJiBlbmRJbmRleCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdG9wOiBib3R0b21MaXN0W3N0YXJ0SW5kZXggLSAxXSB8fCAwLFxuICAgICAgICAgICAgYm90dG9tOiBib3R0b21MaXN0W2VuZEluZGV4XSxcbiAgICAgICAgfTtcbiAgICB9O1xuICAgIHJldHVybiBnZXRTaXplO1xufSJdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
|
|
@@ -93,4 +93,4 @@ export default function useHeights(getKey, onItemAdd, onItemRemove) {
|
|
|
93
93
|
}, []);
|
|
94
94
|
return [setInstanceRef, collectHeight, heightsRef.current, updatedMark];
|
|
95
95
|
}
|
|
96
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,
|
|
96
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvVmlydHVhbExpc3Qvc3JjL2NvbXBvbmVudHMvVmlydHVhbExpc3QvaG9va3MvdXNlSGVpZ2h0cy50c3giXSwibmFtZXMiOlsiUmVhY3QiLCJ1c2VFZmZlY3QiLCJ1c2VSZWYiLCJDYWNoZU1hcCIsInBhcnNlTnVtYmVyIiwidmFsdWUiLCJudW0iLCJwYXJzZUZsb2F0IiwiaXNOYU4iLCJ1c2VIZWlnaHRzIiwiZ2V0S2V5Iiwib25JdGVtQWRkIiwib25JdGVtUmVtb3ZlIiwiX1JlYWN0JHVzZVN0YXRlIiwidXNlU3RhdGUiLCJfUmVhY3QkdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJ1cGRhdGVkTWFyayIsInNldFVwZGF0ZWRNYXJrIiwiaW5zdGFuY2VSZWYiLCJNYXAiLCJoZWlnaHRzUmVmIiwibWFyZ2luQ2FjaGVSZWYiLCJwcm9taXNlSWRSZWYiLCJjYW5jZWxSYWYiLCJjdXJyZW50IiwiY29sbGVjdEhlaWdodCIsInN5bmMiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJkb0NvbGxlY3QiLCJjaGFuZ2VkIiwiZm9yRWFjaCIsImVsZW1lbnQiLCJrZXkiLCJvZmZzZXRQYXJlbnQiLCJvZmZzZXRIZWlnaHQiLCJtYXJnaW5Ub3AiLCJtYXJnaW5Cb3R0b20iLCJjYWNoZWRNYXJnaW4iLCJnZXQiLCJwcmV2SGVpZ2h0IiwiTWF0aCIsImFicyIsInN0eWxlIiwiZ2V0Q29tcHV0ZWRTdHlsZSIsInNldCIsInRvdGFsSGVpZ2h0IiwiYyIsImlkIiwiUHJvbWlzZSIsInJlc29sdmUiLCJ0aGVuIiwic2V0SW5zdGFuY2VSZWYiLCJpdGVtIiwiaW5zdGFuY2UiLCJvcmlnaW4iXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEtBQUtBLEtBQUssTUFBTSxPQUFPO0FBQzlCLFNBQVNDLFNBQVMsRUFBRUMsTUFBTSxRQUFRLE9BQU87QUFFekMsT0FBT0MsUUFBUSxNQUFNLG1CQUFtQjtBQUV4QyxTQUFTQyxXQUFXQSxDQUFDQyxL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QUFJQSxRQUFRLEVBQUU7UUFDWjdDLFNBQVMsS0FBQSxJQUFBLElBQVRBLFNBQVMsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBVEEsU0FBUyxDQUFHNEMsSUFBSSxDQUFDO01BQ25CLENBQUMsTUFBTTtRQUNMM0MsWUFBWSxLQUFBLElBQUEsSUFBWkEsWUFBWSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFaQSxZQUFZLENBQUcyQyxJQUFJLENBQUM7TUFDdEI7SUFDRjtFQUNGO0VBRUF0RCxTQUFTLENBQUMsWUFBSztJQUNiLE9BQU91QixTQUFTO0VBQ2xCLENBQUMsRUFBRSxFQUFFLENBQUM7RUFFTixPQUFPLENBQUM4QixjQUFjLEVBQUU1QixhQUFhLEVBQUVMLFVBQVUsQ0FBQ0ksT0FBTyxFQUFFUixXQUFXLENBQUM7QUFDekUiLCJmaWxlIjoiY29tcG9uZW50cy9WaXJ0dWFsTGlzdC9ob29rcy91c2VIZWlnaHRzLmpzIiwic291cmNlc0NvbnRlbnQiOltudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
|