@1money/component-ui 0.0.93-alpha.2 → 0.0.93
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/BaseDialog/style/css.js +1 -1
- package/es/business/Dialog/BaseDialog/style/index.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 +11 -6
- package/es/business/Dialog/FormDialog/index.js +1 -1
- package/es/business/Dialog/FormDialog/interface.d.ts +14 -3
- 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/PageForm/PageForm.js +11 -6
- package/es/business/PageForm/index.js +1 -1
- package/es/business/PageForm/interface.d.ts +14 -3
- package/es/business/PageForm/interface.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.d.ts +15 -0
- package/es/business/shared/formCore/useFormDomId.js +21 -0
- 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 +3 -1
- package/es/components/ActionBar/constants.js +1 -1
- package/es/components/ActionBar/index.js +1 -1
- package/es/components/ActionBar/interface.d.ts +8 -0
- 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.css +2 -7
- package/es/components/Input/OTP/OTP.js +8 -4
- 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.d.ts +2 -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/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.js +1 -1
- 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 +1 -1
- 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/BaseDialog/style/css.js +1 -1
- package/lib/business/Dialog/BaseDialog/style/index.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 +11 -6
- package/lib/business/Dialog/FormDialog/index.js +1 -1
- package/lib/business/Dialog/FormDialog/interface.d.ts +14 -3
- 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/PageForm/PageForm.js +11 -6
- package/lib/business/PageForm/index.js +1 -1
- package/lib/business/PageForm/interface.d.ts +14 -3
- package/lib/business/PageForm/interface.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.d.ts +15 -0
- package/lib/business/shared/formCore/useFormDomId.js +27 -0
- 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 +3 -1
- package/lib/components/ActionBar/constants.js +1 -1
- package/lib/components/ActionBar/index.js +1 -1
- package/lib/components/ActionBar/interface.d.ts +8 -0
- 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.css +2 -7
- package/lib/components/Input/OTP/OTP.js +8 -4
- 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.d.ts +2 -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/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.js +1 -1
- 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 +1 -1
- 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
- package/scripts/mcp-server/examples.generated.json +6 -6
- package/scripts/mcp-server/index.generated.json +3 -3
|
@@ -796,4 +796,4 @@ export var useForm = function useForm() {
|
|
|
796
796
|
};
|
|
797
797
|
};
|
|
798
798
|
export default useForm;
|
|
799
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9jb3JlL2hvb2tzL3VzZUZvcm0uanMiLCJjb21wb25lbnRzL1Byb0Zvcm0vY29yZS9zcmMvY29tcG9uZW50cy9Qcm9Gb3JtL2NvcmUvaG9va3MvdXNlRm9ybS50cyJdLCJuYW1lcyI6WyJfX2F3YWl0ZXIiLCJ0aGlzQXJnIiwiX2FyZ3VtZW50cyIsIlAiLCJnZW5lcmF0b3IiLCJhZG9wdCIsInZhbHVlIiwicmVzb2x2ZSIsIlByb21pc2UiLCJyZWplY3QiLCJmdWxmaWxsZWQiLCJzdGVwIiwibmV4dCIsImUiLCJyZWplY3RlZCIsInJlc3VsdCIsImRvbmUiLCJ0aGVuIiwiYXBwbHkiLCJfX3Jlc3QiLCJzIiwidCIsInAiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpbmRleE9mIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiaSIsImxlbmd0aCIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwidXNlTWVtbyIsInVzZUVmZmVjdCIsInVzZVJlZiIsIm1lbW8iLCJGcmFnbWVudCIsIlJlYWN0IiwidXNlRXZlbnRDYWxsYmFjayIsInVzZU1lbW9pemVkRm4iLCJ1c2VGb3JtQ29yZSIsInJlc29sdmVWYWx1ZSIsInNldE5lc3RlZFZhbHVlIiwiY29lcmNlRmFpbHVyZVJlYXNvbiIsImZpbHRlclJ1bGVzQnlUcmlnZ2VyIiwibm9ybWFsaXplVHJpZ2dlcnMiLCJyZXNvbHZlUnVsZXMiLCJydW5SdWxlc0FzeW5jIiwidXNlU3RvcmVTZWxlY3RvciIsInNoYWxsb3dFcXVhbEFycmF5cyIsInNhbWVWYWxpZGF0aW9uTm9kZSIsIkZvcm1WYWxpZGF0aW9uRXJyb3IiLCJhc1J1bGVBcnJheSIsInJ1bGUiLCJBcnJheSIsImlzQXJyYXkiLCJydWxlSGFzVmFsaWRhdG9yIiwidmFsaWRhdG9yIiwiZGVmYXVsdEZpZWxkIiwic29tZSIsImZpZWxkcyIsInZhbHVlcyIsInN1YiIsImhhc1Jlc29sdmVkVmFsaWRhdG9yIiwicmVzb2x2ZWQiLCJ1c2VGb3JtIiwiY29uZmlnIiwiYXJndW1lbnRzIiwidW5kZWZpbmVkIiwib25GaW5pc2giLCJvbkZpbmlzaEZhaWxlZCIsIm9uUmVzZXQiLCJfY29uZmlnJHZhbGlkYXRlVHJpZ2ciLCJ2YWxpZGF0ZVRyaWdnZXIiLCJmb3JtQ29yZSIsInN0b3JlIiwibGFzdEFzeW5jRXBvY2hSZWYiLCJtYXJrVmFsaWRhdGluZyIsIm5hbWVzIiwiYXNzaWduIiwiZ2V0U3RhdGUiLCJ2YWxpZGF0aW5nIiwiZm9yRWFjaCIsIm5hbWUiLCJzZXRTdGF0ZSIsImNvbW1pdFJ1bGVPdXRjb21lcyIsIm91dGNvbWVzIiwiY2xlYXJWYWxpZGF0aW5nIiwic3RhdGUiLCJlcnJvcnNDaGFuZ2VkIiwid2FybmluZ3NDaGFuZ2VkIiwibmV3RXJyb3JzIiwiZXJyb3JzIiwibmV3V2FybmluZ3MiLCJ3YXJuaW5ncyIsIl9pdGVyYXRvciIsIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwiX3N0ZXAiLCJuIiwiX3N0ZXAkdmFsdWUiLCJlcnJvciIsIndhcm5pbmciLCJlcnIiLCJmIiwiZmxhZ3NUb0NsZWFyIiwiZmlsdGVyIiwicGF0Y2giLCJuZXdWYWxpZGF0aW5nIiwia2V5cyIsInZhbGlkYXRlRmllbGRBc3luYyIsInJ1bGVzIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsIm1hcmsiLCJfY2FsbGVlIiwiX2EiLCJlcG9jaCIsImZsYWdnZWQiLCJvdXRjb21lIiwiX3lpZWxkJHJ1blJ1bGVzQXN5bmMiLCJpc0N1cnJlbnQiLCJjbGVhckZsYWdzIiwiX3QiLCJ3cmFwIiwiX2NvbnRleHQiLCJwcmV2IiwiYWJydXB0IiwiaXNWYWxpZCIsImJlZ2luVmFsaWRhdGlvblJ1biIsImdldEZpZWxkc1ZhbHVlIiwiZ2V0UnVsZUNvbnRleHRJbnN0YW5jZSIsImZsYWdnZWROYW1lIiwiY3VycmVudCIsInNlbnQiLCJpc1ZhbGlkYXRpb25SdW5DdXJyZW50IiwiZmluaXNoIiwic3RvcCIsImhhbmRsZUZpZWxkQmx1ciIsImZpZWxkVHJpZ2dlciIsIl9jYWxsZWUyIiwidG91Y2hlZCIsImFwcGxpY2FibGUiLCJfY29udGV4dDIiLCJfZGVmaW5lUHJvcGVydHkiLCJnZXRGaWVsZFJ1bGVzIiwidmFsaWRhdGVGaWVsZHNBc3luYyIsIm5hbWVMaXN0IiwiX2NhbGxlZTQiLCJmaWVsZHNUb1ZhbGlkYXRlIiwiZmllbGRFcnJvcnMiLCJyZXNvbHZlZEJ5RmllbGQiLCJlcG9jaEJ5RmllbGQiLCJfaXRlcmF0b3IyIiwiX3N0ZXAyIiwiX2NvbnRleHQ0IiwiZmllbGRSdWxlcyIsIk1hcCIsInNldCIsImdldCIsImFsbCIsIm1hcCIsIl9jYWxsZWUzIiwiX3lpZWxkJHJ1blJ1bGVzQXN5bmMyIiwiX3QyIiwiX2NvbnRleHQzIiwicHVzaCIsInJlZHVjZSIsImFjYyIsImRlZmluZUZpZWxkIiwiZmllbGRPcHRpb25zIiwiX2ZpZWxkT3B0aW9ucyRydWxlcyIsIkZpZWxkQ29tcG9uZW50IiwiY2hpbGRyZW4iLCJyZW5kZXIiLCJwcm9wcyIsIl91c2VTdG9yZVNlbGVjdG9yIiwiX3VzZVN0b3JlU2VsZWN0b3IyIiwiX3NsaWNlZFRvQXJyYXkiLCJmaWVsZFZhbHVlIiwiZmllbGRFcnJvciIsImZpZWxkVG91Y2hlZCIsImZpZWxkVmFsaWRhdGluZyIsInJldGFpbkZpZWxkIiwiZXhpc3RpbmdSdWxlcyIsInJlZ2lzdGVyRmllbGQiLCJyZWxlYXNlRmllbGQiLCJoYW5kbGVGaWVsZENoYW5nZSIsInNldEZpZWxkVmFsdWUiLCJoYW5kbGVCbHVyIiwiZmllbGRQcm9wcyIsIm9uQ2hhbmdlIiwib25CbHVyIiwiaGFuZGxlTWVyZ2VDaGFuZ2UiLCJfdHlwZW9mIiwidGFyZ2V0IiwiaXNWYWxpZEVsZW1lbnQiLCJoYW5kbGVNZXJnZUJsdXIiLCJkb21TYWZlUHJvcHMiLCJjbG9uZUVsZW1lbnQiLCJjcmVhdGVFbGVtZW50IiwiY29uY2F0IiwiX3RvQ29uc3VtYWJsZUFycmF5IiwiY2hpbGQiLCJpbmRleCIsImtleSIsImRpc3BsYXlOYW1lIiwiaGFuZGxlU3VibWl0IiwiX2NhbGxlZTUiLCJ2YWxpZGF0ZWRWYWx1ZXMiLCJfdDMiLCJfY29udGV4dDUiLCJwcmV2ZW50RGVmYXVsdCIsImNvbnNvbGUiLCJoYW5kbGVSZXNldCIsInJlc2V0RmllbGRzIiwiZ2V0RmllbGRFcnJvciIsImdldEZpZWxkV2FybmluZyIsImdldEZpZWxkc0Vycm9yIiwiaXNGaWVsZFRvdWNoZWQiLCJpc0ZpZWxkc1RvdWNoZWQiLCJhbGxGaWVsZHNUb3VjaGVkIiwiZXZlcnkiLCJpc0ZpZWxkVmFsaWRhdGluZyIsInNldEZpZWxkc0Vycm9yIiwiZmllbGRzRXJyb3IiLCJlbnRyaWVzIiwiX3JlZiIsIl9yZWYyIiwic2V0RmllbGRFcnJvciIsInNldEZpZWxkVG91Y2hlZCIsImlzVG91Y2hlZCIsInNldEZpZWxkc1RvdWNoZWQiLCJmaWVsZHNUb3VjaCIsInJlc2V0Rm9ybUZpZWxkcyIsImluaXRpYWxWYWx1ZXMiLCJnZXRJbml0aWFsVmFsdWVzIiwibmV3VmFsdWVzIiwiZmllbGQiLCJpbml0aWFsIiwiaW5jbHVkZXMiLCJpbnZhbGlkYXRlVmFsaWRhdGlvblJ1bnMiLCJuZXdUb3VjaGVkIiwic3VibWl0V2l0aFZhbGlkYXRpb24iLCJjYWxsYmFjayIsIl9jYWxsZWU2IiwiX3Q0IiwiX3Q1IiwiX2NvbnRleHQ2IiwiZm9ybUluc3RhbmNlIiwiZ2V0RmllbGRWYWx1ZSIsInZhbGlkYXRlRmllbGRzIiwic2V0RmllbGRzVmFsdWUiLCJzdWJtaXQiLCJ1bnJlZ2lzdGVyRmllbGQiLCJzZXRSdWxlQ29udGV4dEluc3RhbmNlIiwiaW50ZXJuYWxzIiwic2V0RmllbGRXYXJuaW5nIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLElBQUlBLFNBQVMsR0FBSSxJQUFJLElBQUksSUFBSSxDQUFDQSxTQUFTLElBQUssVUFBVUMsT0FBTyxFQUFFQyxVQUFVLEVBQUVDLENBQUMsRUFBRUMsU0FBUyxFQUFFO0VBQ3JGLFNBQVNDLEtBQUtBLENBQUNDLEtBQUssRUFBRTtJQUFF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RU8sU0FBUyxFQUFUQSxTQUFTO0lBQUVuTCxLQUFLLEVBQUxBO0VBQUssQ0FBRTtBQUMzQyxDQUFDO0FBRUQsZUFBZVYsT0FBTyIsImZpbGUiOiJjb21wb25lbnRzL1Byb0Zvcm0vY29yZS9ob29rcy91c2VGb3JtLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fYXdhaXRlciA9ICh0aGlzICYmIHRoaXMuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcbiAgICB9KTtcbn07XG52YXIgX19yZXN0ID0gKHRoaXMgJiYgdGhpcy5fX3Jlc3QpIHx8IGZ1bmN0aW9uIChzLCBlKSB7XG4gICAgdmFyIHQgPSB7fTtcbiAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMClcbiAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxuICAgICAgICBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpXG4gICAgICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XG4gICAgICAgIH1cbiAgICByZXR1cm4gdDtcbn07XG5pbXBvcnQgeyB1c2VNZW1vLCB1c2VFZmZlY3QsIHVzZVJlZiwgbWVtbywgRnJhZ21lbnQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHVzZUV2ZW50Q2FsbGJhY2sgZnJvbSAnQDFtb25leS9ob29rcy91c2VFdmVudENhbGxiYWNrJztcbmltcG9ydCB1c2VNZW1vaXplZEZuIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlTWVtb2l6ZWRGbic7XG5pbXBvcnQgeyB1c2VGb3JtQ29yZSB9IGZyb20gJy4vdXNlRm9ybUNvcmUnO1xuaW1wb3J0IHsgcmVzb2x2ZVZhbHVlLCBzZXROZXN0ZWRWYWx1ZSB9IGZyb20gJy4uL3BhdGhVdGlscyc7XG5pbXBvcnQgeyBjb2VyY2VGYWlsdXJlUmVhc29uLCBmaWx0ZXJSdWxlc0J5VHJpZ2dlciwgbm9ybWFsaXplVHJpZ2dlcnMsIHJlc29sdmVSdWxlcywgcnVuUnVsZXNBc3luYywgfSBmcm9tICcuLi9ydW5SdWxlcyc7XG5pbXBvcnQgeyB1c2VTdG9yZVNlbGVjdG9yLCBzaGFsbG93RXF1YWxBcnJheXMsIHNhbWVWYWxpZGF0aW9uTm9kZSB9IGZyb20gJy4uL2Zvcm1TdG9yZSc7XG5pbXBvcnQgeyBGb3JtVmFsaWRhdGlvbkVycm9yIH0gZnJvbSAnLi4vdmFsaWRhdGlvbkVycm9yJztcbi8qKlxuICogT25seSBydWxlcyB3aXRoIGEgY3VzdG9tIGB2YWxpZGF0b3JgIGNhbiBiZSBnZW51aW5lbHkgYXN5bmNocm9ub3VzIOKAlFxuICogYnVpbHRpbiBydWxlcyByZXNvbHZlIHdpdGhpbiBhIG1pY3JvdGFzaywgc28gZmxpcHBpbmcgYHZhbGlkYXRpbmdgIGZvclxuICogdGhlbSB3b3VsZCBvbmx5IGNodXJuIHN1YnNjcmliZXJzIHdpdGhvdXQgZXZlciBiZWluZyB2aXNpYmxlLiBEZWNpZGVkIG9uXG4gKiBSRVNPTFZFRCBydWxlczogYSBmdW5jdGlvbi1mb3JtIHJ1bGUgdGhhdCByZXNvbHZlcyB0byBidWlsdGluLW9ubHkgY2hlY2tzXG4gKiBtdXN0IG5vdCBmbGlja2VyIHRoZSBmbGFnLlxuICpcbiAqIFRoZSBhc3luYyBlbmdpbmUgYXdhaXRzIHZhbGlkYXRvcnMgbmVzdGVkIGluc2lkZSBgZmllbGRzYCAvIGBkZWZhdWx0RmllbGRgXG4gKiB0b28sIHNvIHRoZSBkZWNpc2lvbiBtdXN0IGRlc2NlbmQgdGhlIHNhbWUgd2F5IOKAlCBvdGhlcndpc2UgYSBkZWVwLW9ubHlcbiAqIHZhbGlkYXRvciAoZS5nLiBgeyBkZWZhdWx0RmllbGQ6IHsgdmFsaWRhdG9yIH0gfWApIHJ1bnMgcGVuZGluZyB3aXRoIHRoZVxuICogZmxhZyBzdHVjayBmYWxzZSwgYW5kIGBpc0ZpZWxkVmFsaWRhdGluZyhuYW1lKWAgdW5kZXItcmVwb3J0cyBmb3IgdGhlIHdob2xlXG4gKiB3aW5kb3cuIE92ZXItZmxhZ2dpbmcgd2hlbiB0aGUgZGVlcCB2YWxpZGF0b3Igd29uJ3QgYWN0dWFsbHkgZmlyZSAoZW1wdHkgL1xuICogcHJpbWl0aXZlIHZhbHVlKSBpcyBhY2NlcHRhYmxlOiB0aGUgZmxhZyBpcyBkZWNpZGVkIG9uIHJ1bGUgU0hBUEUsIGV4YWN0bHlcbiAqIGFzIHRoZSB0b3AtbGV2ZWwgY2FzZSBhbHJlYWR5IG92ZXItZmxhZ3MgYSB2YWxpZGF0b3Igc2hvcnQtY2lyY3VpdGVkIGJ5IGFuXG4gKiBlYXJsaWVyIGJ1aWx0aW4gZmFpbHVyZTsgdGhlIHJ1biBjbGVhcnMgaXQgb24gc2V0dGxlIGVpdGhlciB3YXkuXG4gKi9cbmNvbnN0IGFzUnVsZUFycmF5ID0gKHJ1bGUpID0+IHJ1bGUgPyAoQXJyYXkuaXNBcnJheShydWxlKSA/IHJ1bGUgOiBbcnVsZV0pIDogW107XG5jb25zdCBydWxlSGFzVmFsaWRhdG9yID0gKHJ1bGUpID0+IHtcbiAgICBpZiAodHlwZW9mIHJ1bGUudmFsaWRhdG9yID09PSAnZnVuY3Rpb24nKVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICBpZiAoYXNSdWxlQXJyYXkocnVsZS5kZWZhdWx0RmllbGQpLnNvbWUocnVsZUhhc1ZhbGlkYXRvcikpXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIGlmIChydWxlLmZpZWxkcykge1xuICAgICAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyhydWxlLmZpZWxkcykuc29tZSgoc3ViKSA9PiBhc1J1bGVBcnJheShzdWIpLnNvbWUocnVsZUhhc1ZhbGlkYXRvcikpO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG59O1xuY29uc3QgaGFzUmVzb2x2ZWRWYWxpZGF0b3IgPSAocmVzb2x2ZWQpID0+IHJlc29sdmVkLnNvbWUocnVsZUhhc1ZhbGlkYXRvcik7XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIHVzZUZvcm1cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZXhwb3J0IGNvbnN0IHVzZUZvcm0gPSAoY29uZmlnID0ge30pID0+IHtcbiAgICBjb25zdCB7IG9uRmluaXNoLCBvbkZpbmlzaEZhaWxlZCwgb25SZXNldCwgdmFsaWRhdGVUcmlnZ2VyID0gJ29uQ2hhbmdlJywgfSA9IGNvbmZpZztcbiAgICBjb25zdCBmb3JtQ29yZSA9IHVzZUZvcm1Db3JlKGNvbmZpZyk7XG4gICAgY29uc3QgeyBzdG9yZSB9ID0gZm9ybUNvcmU7XG4gICAgLy8gRXBvY2ggb2YgdGhlIExBVEVTVCBhc3luYyBydW4gdGhhdCByYWlzZWQgZWFjaCBmaWVsZCdzIGB2YWxpZGF0aW5nYCBmbGFnLlxuICAgIC8vIEEgc2V0dGxpbmcgcnVuIGNsZWFycyB0aGUgZmxhZyBvbmx5IHdoaWxlIGl0IGlzIHN0aWxsIHRoZSBsYXRlc3QgcmFpc2VyIOKAlFxuICAgIC8vIGFuIG9sZGVyIHJ1biBtdXN0IG5vdCBibGFuayB0aGUgc3Bpbm5lciBvZiBhIG5ld2VyIG9uZSwgYW5kIGEgcnVuXG4gICAgLy8gc3VwZXJzZWRlZCBieSBhIFNZTkMgY29tbWl0ICh3aGljaCBuZXZlciB0b3VjaGVzIGZsYWdzKSBtdXN0IHN0aWxsIGNsZWFuXG4gICAgLy8gdXAgYWZ0ZXIgaXRzZWxmLlxuICAgIGNvbnN0IGxhc3RBc3luY0Vwb2NoUmVmID0gdXNlUmVmKHt9KTtcbiAgICAvLyBNYXJrIGZpZWxkcyBhcyB2YWxpZGF0aW5nIGluIE9ORSBjb21taXQuIHZhbGlkYXRpbmcgLyB0b3VjaGVkIGxpdmUgaW4gdGhlXG4gICAgLy8gc3RvcmUgYWxvbmdzaWRlIHZhbHVlcyDigJQgZmxpcHBpbmcgdGhlbSAoZS5nLiBhc3luYyB2YWxpZGF0aW9uIGFyb3VuZCBhXG4gICAgLy8gYmx1cikgbXVzdCBub3QgcmUtcmVuZGVyIHRoZSBmb3JtIHJvb3QsIG9ubHkgdGhlIGZpZWxkcyB0aGF0IHN1YnNjcmliZWQuXG4gICAgY29uc3QgbWFya1ZhbGlkYXRpbmcgPSB1c2VNZW1vaXplZEZuKChuYW1lcykgPT4ge1xuICAgICAgICBpZiAobmFtZXMubGVuZ3RoID09PSAwKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCBuZXh0ID0gT2JqZWN0LmFzc2lnbih7fSwgc3RvcmUuZ2V0U3RhdGUoKS52YWxpZGF0aW5nKTtcbiAgICAgICAgbmFtZXMuZm9yRWFjaCgobmFtZSkgPT4ge1xuICAgICAgICAgICAgbmV4dFtuYW1lXSA9IHRydWU7XG4gICAgICAgIH0pO1xuICAgICAgICBzdG9yZS5zZXRTdGF0ZSh7IHZhbGlkYXRpbmc6IG5leHQgfSk7XG4gICAgfSk7XG4gICAgLy8gRm9sZCBwZXItZmllbGQgcnVsZSBvdXRjb21lcyBpbnRvIEFUIE1PU1Qgb25lIHN0b3JlIGNvbW1pdDogZXJyb3JzIGFuZFxuICAgIC8vIHdhcm5pbmdzIGFyZSBtZXJnZWQgb3ZlciB0aGUgY3VycmVudCBtYXBzIGFuZCB0aGUgYGNsZWFyVmFsaWRhdGluZ2AgZmxhZ3NcbiAgICAvLyBhcmUgcmVtb3ZlZCBpbiB0aGUgU0FNRSBwYXRjaC4gQSBuby1vcCBvdXRjb21lIGNvbW1pdHMgbm90aGluZyBhdCBhbGwg4oCUXG4gICAgLy8gcGVyLWZpZWxkIGNvbW1pdHMgaGVyZSBwcmV2aW91c2x5IG1hZGUgc3VibWl0LXRpbWUgdmFsaWRhdGlvbiBzd2VlcCBldmVyeVxuICAgIC8vIHN1YnNjcmliZXIgTyhmaWVsZHMpIHRpbWVzLlxuICAgIGNvbnN0IGNvbW1pdFJ1bGVPdXRjb21lcyA9IHVzZU1lbW9pemVkRm4oKG91dGNvbWVzLCBjbGVhclZhbGlkYXRpbmcpID0+IHtcbiAgICAgICAgY29uc3Qgc3RhdGUgPSBzdG9yZS5nZXRTdGF0ZSgpO1xuICAgICAgICBsZXQgZXJyb3JzQ2hhbmdlZCA9IGZhbHNlO1xuICAgICAgICBsZXQgd2FybmluZ3NDaGFuZ2VkID0gZmFsc2U7XG4gICAgICAgIGNvbnN0IG5ld0Vycm9ycyA9IE9iamVjdC5hc3NpZ24oe30sIHN0YXRlLmVycm9ycyk7XG4gICAgICAgIGNvbnN0IG5ld1dhcm5pbmdzID0gT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUud2FybmluZ3MpO1xuICAgICAgICBmb3IgKGNvbnN0IHsgbmFtZSwgZXJyb3IsIHdhcm5pbmcgfSBvZiBvdXRjb21lcykge1xuICAgICAgICAgICAgaWYgKGVycm9yID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgaWYgKG5hbWUgaW4gbmV3RXJyb3JzKSB7XG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBuZXdFcnJvcnNbbmFtZV07XG4gICAgICAgICAgICAgICAgICAgIGVycm9yc0NoYW5nZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKCFzYW1lVmFsaWRhdGlvbk5vZGUobmV3RXJyb3JzW25hbWVdLCBlcnJvcikpIHtcbiAgICAgICAgICAgICAgICBuZXdFcnJvcnNbbmFtZV0gPSBlcnJvcjtcbiAgICAgICAgICAgICAgICBlcnJvcnNDaGFuZ2VkID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh3YXJuaW5nID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgaWYgKG5hbWUgaW4gbmV3V2FybmluZ3MpIHtcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlIG5ld1dhcm5pbmdzW25hbWVdO1xuICAgICAgICAgICAgICAgICAgICB3YXJuaW5nc0NoYW5nZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKCFzYW1lVmFsaWRhdGlvbk5vZGUobmV3V2FybmluZ3NbbmFtZV0sIHdhcm5pbmcpKSB7XG4gICAgICAgICAgICAgICAgbmV3V2FybmluZ3NbbmFtZV0gPSB3YXJuaW5nO1xuICAgICAgICAgICAgICAgIHdhcm5pbmdzQ2hhbmdlZCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZmxhZ3NUb0NsZWFyID0gY2xlYXJWYWxpZGF0aW5nLmZpbHRlcigobmFtZSkgPT4gbmFtZSBpbiBzdGF0ZS52YWxpZGF0aW5nKTtcbiAgICAgICAgY29uc3QgcGF0Y2ggPSB7fTtcbiAgICAgICAgaWYgKGVycm9yc0NoYW5nZWQpXG4gICAgICAgICAgICBwYXRjaC5lcnJvcnMgPSBuZXdFcnJvcnM7XG4gICAgICAgIGlmICh3YXJuaW5nc0NoYW5nZWQpXG4gICAgICAgICAgICBwYXRjaC53YXJuaW5ncyA9IG5ld1dhcm5pbmdzO1xuICAgICAgICBpZiAoZmxhZ3NUb0NsZWFyLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IG5ld1ZhbGlkYXRpbmcgPSBPYmplY3QuYXNzaWduKHt9LCBzdGF0ZS52YWxpZGF0aW5nKTtcbiAgICAgICAgICAgIGZsYWdzVG9DbGVhci5mb3JFYWNoKChuYW1lKSA9PiB7XG4gICAgICAgICAgICAgICAgZGVsZXRlIG5ld1ZhbGlkYXRpbmdbbmFtZV07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHBhdGNoLnZhbGlkYXRpbmcgPSBuZXdWYWxpZGF0aW5nO1xuICAgICAgICB9XG4gICAgICAgIGlmIChPYmplY3Qua2V5cyhwYXRjaCkubGVuZ3RoID4gMClcbiAgICAgICAgICAgIHN0b3JlLnNldFN0YXRlKHBhdGNoKTtcbiAgICB9KTtcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyBBc3luYyBmaWVsZCB2YWxpZGF0aW9uIOKAkyBlYWNoIHJ1bGUgaXMgcHJvY2Vzc2VkIGV4YWN0bHkgb25jZVxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIGNvbnN0IHZhbGlkYXRlRmllbGRBc3luYyA9IHVzZU1lbW9pemVkRm4oKG5hbWUsIHZhbHVlLCBydWxlcykgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKCFydWxlcyB8fCBydWxlcy5sZW5ndGggPT09IDApXG4gICAgICAgICAgICByZXR1cm4geyBpc1ZhbGlkOiB0cnVlLCBlcnJvcjogbnVsbCB9O1xuICAgICAgICAvLyBDYXB0dXJlIHRoaXMgcnVuJ3MgZXBvY2g6IGlmIGEgTkVXRVIgcnVuIChzeW5jIG9yIGFzeW5jKSBzdGFydHMgZm9yXG4gICAgICAgIC8vIHRoZSBmaWVsZCBiZWZvcmUgdGhpcyBvbmUgc2V0dGxlcywgdGhlIG91dGNvbWUgYmVsb3cgaXMgc3RhbGUgYW5kIGlzXG4gICAgICAgIC8vIGRpc2NhcmRlZCBpbnN0ZWFkIG9mIG92ZXJ3cml0aW5nIHRoZSBuZXdlciByZXN1bHQuXG4gICAgICAgIGNvbnN0IGVwb2NoID0gZm9ybUNvcmUuYmVnaW5WYWxpZGF0aW9uUnVuKG5hbWUpO1xuICAgICAgICAvLyBSZXNvbHZlIG9uY2U6IHRoZSBmbGFnIGRlY2lzaW9uIG5lZWRzIHJlc29sdmVkIHJ1bGVzLCBhbmQgcGFzc2luZyB0aGVcbiAgICAgICAgLy8gcmVzb2x2ZWQgYXJyYXkgb253YXJkIHNwYXJlcyB0aGUgZW5naW5lIGEgcmUtcmVzb2x1dGlvbi5cbiAgICAgICAgY29uc3QgdmFsdWVzID0gZm9ybUNvcmUuZ2V0RmllbGRzVmFsdWUoKTtcbiAgICAgICAgY29uc3QgcmVzb2x2ZWQgPSByZXNvbHZlUnVsZXMocnVsZXMsIHZhbHVlcywgZm9ybUNvcmUuZ2V0UnVsZUNvbnRleHRJbnN0YW5jZSgpKTtcbiAgICAgICAgY29uc3QgZmxhZ2dlZCA9IGhhc1Jlc29sdmVkVmFsaWRhdG9yKHJlc29sdmVkKSA/IFtuYW1lXSA6IFtdO1xuICAgICAgICBtYXJrVmFsaWRhdGluZyhmbGFnZ2VkKTtcbiAgICAgICAgZmxhZ2dlZC5mb3JFYWNoKChmbGFnZ2VkTmFtZSkgPT4ge1xuICAgICAgICAgICAgbGFzdEFzeW5jRXBvY2hSZWYuY3VycmVudFtmbGFnZ2VkTmFtZV0gPSBlcG9jaDtcbiAgICAgICAgfSk7XG4gICAgICAgIGxldCBvdXRjb21lID0geyBuYW1lLCBlcnJvcjogbnVsbCwgd2FybmluZzogbnVsbCB9O1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgeyBlcnJvciwgd2FybmluZyB9ID0geWllbGQgcnVuUnVsZXNBc3luYyhuYW1lLCB2YWx1ZSwgdmFsdWVzLCByZXNvbHZlZCwgZm9ybUNvcmUuZ2V0UnVsZUNvbnRleHRJbnN0YW5jZSgpKTtcbiAgICAgICAgICAgIG91dGNvbWUgPSB7IG5hbWUsIGVycm9yLCB3YXJuaW5nIH07XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgLy8gVGhlIGVuZ2luZSBjb250YWlucyBydWxlLWxldmVsIHRocm93cyBpdHNlbGY7IHRoaXMgaXMgYSBsYXN0LXJlc29ydFxuICAgICAgICAgICAgLy8gbmV0IHNvIGFuIHVuZXhwZWN0ZWQgZmFpbHVyZSBzdXJmYWNlcyBhcyBhIGZpZWxkIGVycm9yIGluc3RlYWQgb2ZcbiAgICAgICAgICAgIC8vIGxlYXZpbmcgdGhlIGZpZWxkIG1hcmtlZCB2YWxpZC5cbiAgICAgICAgICAgIG91dGNvbWUgPSB7IG5hbWUsIGVycm9yOiAoX2EgPSBjb2VyY2VGYWlsdXJlUmVhc29uKGVycikpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6ICdWYWxpZGF0aW9uIGZhaWxlZCcsIHdhcm5pbmc6IG51bGwgfTtcbiAgICAgICAgfVxuICAgICAgICBmaW5hbGx5IHtcbiAgICAgICAgICAgIGNvbnN0IGlzQ3VycmVudCA9IGZvcm1Db3JlLmlzVmFsaWRhdGlvblJ1bkN1cnJlbnQobmFtZSwgZXBvY2gpO1xuICAgICAgICAgICAgY29uc3QgY2xlYXJGbGFncyA9IGZsYWdnZWQuZmlsdGVyKChmbGFnZ2VkTmFtZSkgPT4gbGFzdEFzeW5jRXBvY2hSZWYuY3VycmVudFtmbGFnZ2VkTmFtZV0gPT09IGVwb2NoKTtcbiAgICAgICAgICAgIGNvbW1pdFJ1bGVPdXRjb21lcyhpc0N1cnJlbnQgPyBbb3V0Y29tZV0gOiBbXSwgY2xlYXJGbGFncyk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gVGhlIENBTExFUiBnZXRzIHRoaXMgcnVuJ3Mgb3duIHJlc3VsdCBlaXRoZXIgd2F5IChpdHMgcHJvbWlzZSBpc1xuICAgICAgICAvLyBhYm91dCB0aGUgdmFsdWUgaXQgd2FzIGFza2VkIHRvIHZhbGlkYXRlKTsgb25seSB0aGUgU1RPUkUgY29tbWl0IGlzXG4gICAgICAgIC8vIHN0YWxlbmVzcy1ndWFyZGVkLlxuICAgICAgICByZXR1cm4geyBpc1ZhbGlkOiBvdXRjb21lLmVycm9yID09PSBudWxsLCBlcnJvcjogb3V0Y29tZS5lcnJvciB9O1xuICAgIH0pKTtcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyBBc3luYyBmaWVsZCBibHVyIGhhbmRsZXJcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBjb25zdCBoYW5kbGVGaWVsZEJsdXIgPSB1c2VFdmVudENhbGxiYWNrKChuYW1lLCBmaWVsZFRyaWdnZXIpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCB0b3VjaGVkID0gc3RvcmUuZ2V0U3RhdGUoKS50b3VjaGVkO1xuICAgICAgICBpZiAoIXRvdWNoZWRbbmFtZV0pIHtcbiAgICAgICAgICAgIHN0b3JlLnNldFN0YXRlKHsgdG91Y2hlZDogT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCB0b3VjaGVkKSwgeyBbbmFtZV06IHRydWUgfSkgfSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcnVsZXMgPSBmb3JtQ29yZS5nZXRGaWVsZFJ1bGVzKG5hbWUpO1xuICAgICAgICBpZiAoIXJ1bGVzKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCB2YWx1ZXMgPSBmb3JtQ29yZS5nZXRGaWVsZHNWYWx1ZSgpO1xuICAgICAgICBjb25zdCBhcHBsaWNhYmxlID0gZmlsdGVyUnVsZXNCeVRyaWdnZXIocmVzb2x2ZVJ1bGVzKHJ1bGVzLCB2YWx1ZXMsIGZvcm1Db3JlLmdldFJ1bGVDb250ZXh0SW5zdGFuY2UoKSksICdvbkJsdXInLCBub3JtYWxpemVUcmlnZ2VycyhmaWVsZFRyaWdnZXIsIHZhbGlkYXRlVHJpZ2dlciksIG5hbWUpO1xuICAgICAgICBpZiAoYXBwbGljYWJsZS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB5aWVsZCB2YWxpZGF0ZUZpZWxkQXN5bmMobmFtZSwgcmVzb2x2ZVZhbHVlKHZhbHVlcywgbmFtZSksIGFwcGxpY2FibGUpO1xuICAgICAgICB9XG4gICAgfSkpO1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vIFZhbGlkYXRlIGFsbCBmaWVsZHMgYXN5bmNcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBjb25zdCB2YWxpZGF0ZUZpZWxkc0FzeW5jID0gdXNlTWVtb2l6ZWRGbigobmFtZUxpc3QpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCBmaWVsZHNUb1ZhbGlkYXRlID0gbmFtZUxpc3QgfHwgT2JqZWN0LmtleXMoZm9ybUNvcmUuZmllbGRSdWxlcyk7XG4gICAgICAgIGNvbnN0IGZpZWxkRXJyb3JzID0ge307XG4gICAgICAgIC8vIFJlc29sdmUgZXZlcnkgZmllbGQgb25jZSB1cCBmcm9udDogdGhlIGZsYWcgZGVjaXNpb24gbmVlZHMgcmVzb2x2ZWRcbiAgICAgICAgLy8gcnVsZXMsIGFuZCB0aGUgcmVzb2x2ZWQgYXJyYXlzIGFyZSByZXVzZWQgZm9yIHRoZSBhY3R1YWwgcnVucy4gRWFjaFxuICAgICAgICAvLyBmaWVsZCBhbHNvIGNhcHR1cmVzIGl0cyB2YWxpZGF0aW9uIGVwb2NoIOKAlCBhIGZpZWxkIHdob3NlIHZhbHVlXG4gICAgICAgIC8vIGNoYW5nZXMgbWlkLXN1Ym1pdCBnZXRzIGEgbmV3ZXIgcnVuLCBhbmQgdGhpcyBydW4ncyBzdGFsZSBvdXRjb21lXG4gICAgICAgIC8vIG11c3Qgbm90IG92ZXJ3cml0ZSBpdCBpbiB0aGUgc3RvcmUuXG4gICAgICAgIGNvbnN0IHJlc29sdmVkQnlGaWVsZCA9IG5ldyBNYXAoKTtcbiAgICAgICAgY29uc3QgZXBvY2hCeUZpZWxkID0gbmV3IE1hcCgpO1xuICAgICAgICBmb3IgKGNvbnN0IG5hbWUgb2YgZmllbGRzVG9WYWxpZGF0ZSkge1xuICAgICAgICAgICAgY29uc3QgcnVsZXMgPSBmb3JtQ29yZS5maWVsZFJ1bGVzW25hbWVdO1xuICAgICAgICAgICAgaWYgKHJ1bGVzKSB7XG4gICAgICAgICAgICAgICAgZXBvY2hCeUZpZWxkLnNldChuYW1lLCBmb3JtQ29yZS5iZWdpblZhbGlkYXRpb25SdW4obmFtZSkpO1xuICAgICAgICAgICAgICAgIHJlc29sdmVkQnlGaWVsZC5zZXQobmFtZSwgcmVzb2x2ZVJ1bGVzKHJ1bGVzLCBmb3JtQ29yZS5nZXRGaWVsZHNWYWx1ZSgpLCBmb3JtQ29yZS5nZXRSdWxlQ29udGV4dEluc3RhbmNlKCkpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBPbmUgY29tbWl0IHRvIHJhaXNlIHRoZSB2YWxpZGF0aW5nIGZsYWdzICh2YWxpZGF0b3ItYmVhcmluZyBmaWVsZHNcbiAgICAgICAgLy8gb25seSksIG9uZSBjb21taXQgdG8gbGFuZCBldmVyeSBlcnJvci93YXJuaW5nIGFuZCBjbGVhciB0aGUgZmxhZ3MuXG4gICAgICAgIGNvbnN0IGZsYWdnZWQgPSBmaWVsZHNUb1ZhbGlkYXRlLmZpbHRlcigobmFtZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcmVzb2x2ZWQgPSByZXNvbHZlZEJ5RmllbGQuZ2V0KG5hbWUpO1xuICAgICAgICAgICAgcmV0dXJuIHJlc29sdmVkID8gaGFzUmVzb2x2ZWRWYWxpZGF0b3IocmVzb2x2ZWQpIDogZmFsc2U7XG4gICAgICAgIH0pO1xuICAgICAgICBtYXJrVmFsaWRhdGluZyhmbGFnZ2VkKTtcbiAgICAgICAgZmxhZ2dlZC5mb3JFYWNoKChuYW1lKSA9PiB7XG4gICAgICAgICAgICBsYXN0QXN5bmNFcG9jaFJlZi5jdXJyZW50W25hbWVdID0gZXBvY2hCeUZpZWxkLmdldChuYW1lKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IG91dGNvbWVzID0gW107XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICB5aWVsZCBQcm9taXNlLmFsbChmaWVsZHNUb1ZhbGlkYXRlLm1hcCgobmFtZSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc29sdmVkID0gcmVzb2x2ZWRCeUZpZWxkLmdldChuYW1lKTtcbiAgICAgICAgICAgICAgICBpZiAoIXJlc29sdmVkKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgbGV0IGVycm9yID0gbnVsbDtcbiAgICAgICAgICAgICAgICBsZXQgd2FybmluZyA9IG51bGw7XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgKHsgZXJyb3IsIHdhcm5pbmcgfSA9IHlpZWxkIHJ1blJ1bGVzQXN5bmMobmFtZSwgcmVzb2x2ZVZhbHVlKGZvcm1Db3JlLmdldEZpZWxkc1ZhbHVlKCksIG5hbWUpLCBmb3JtQ29yZS5nZXRGaWVsZHNWYWx1ZSgpLCByZXNvbHZlZCwgZm9ybUNvcmUuZ2V0UnVsZUNvbnRleHRJbnN0YW5jZSgpKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gTGFzdC1yZXNvcnQgbmV0IChzZWUgdmFsaWRhdGVGaWVsZEFzeW5jKSDigJQga2VlcCB0aGUgbm9ybWFsXG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnN0cnVjdGVkLWVycm9yIGZsb3cgc28gb25GaW5pc2hGYWlsZWQgZ2V0cyBhIHJlYWwgcGF5bG9hZC5cbiAgICAgICAgICAgICAgICAgICAgZXJyb3IgPSAoX2EgPSBjb2VyY2VGYWlsdXJlUmVhc29uKGVycikpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6ICdWYWxpZGF0aW9uIGZhaWxlZCc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIFRoZSBzdG9yZSBjb21taXQgaXMgc3RhbGVuZXNzLWd1YXJkZWQ7IHRoZSBTVUJNSVQgZGVjaXNpb25cbiAgICAgICAgICAgICAgICAvLyAoZmllbGRFcnJvcnMgLyB0aGUgdGhyb3duIEZvcm1WYWxpZGF0aW9uRXJyb3IpIHN0aWxsIHJlZmxlY3RzXG4gICAgICAgICAgICAgICAgLy8gdGhpcyBydW4ncyBvd24gcmVzdWx0cyBmb3IgdGhlIHZhbHVlcyBpdCB2YWxpZGF0ZWQuXG4gICAgICAgICAgICAgICAgY29uc3QgZXBvY2ggPSBlcG9jaEJ5RmllbGQuZ2V0KG5hbWUpO1xuICAgICAgICAgICAgICAgIGlmIChlcG9jaCAhPT0gdW5kZWZpbmVkICYmIGZvcm1Db3JlLmlzVmFsaWRhdGlvblJ1bkN1cnJlbnQobmFtZSwgZXBvY2gpKSB7XG4gICAgICAgICAgICAgICAgICAgIG91dGNvbWVzLnB1c2goeyBuYW1lLCBlcnJvciwgd2FybmluZyB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGVycm9yICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkRXJyb3JzW25hbWVdID0gZXJyb3I7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSkpKTtcbiAgICAgICAgfVxuICAgICAgICBmaW5hbGx5IHtcbiAgICAgICAgICAgIGNvbnN0IGNsZWFyRmxhZ3MgPSBmbGFnZ2VkLmZpbHRlcigobmFtZSkgPT4gbGFzdEFzeW5jRXBvY2hSZWYuY3VycmVudFtuYW1lXSA9PT0gZXBvY2hCeUZpZWxkLmdldChuYW1lKSk7XG4gICAgICAgICAgICBjb21taXRSdWxlT3V0Y29tZXMob3V0Y29tZXMsIGNsZWFyRmxhZ3MpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChPYmplY3Qua2V5cyhmaWVsZEVycm9ycykubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEZvcm1WYWxpZGF0aW9uRXJyb3IoZm9ybUNvcmUuZ2V0RmllbGRzVmFsdWUoKSwgZmllbGRFcnJvcnMpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChuYW1lTGlzdCkge1xuICAgICAgICAgICAgcmV0dXJuIG5hbWVMaXN0LnJlZHVjZSgoYWNjLCBuYW1lKSA9PiB7XG4gICAgICAgICAgICAgICAgYWNjW25hbWVdID0gcmVzb2x2ZVZhbHVlKGZvcm1Db3JlLmdldEZpZWxkc1ZhbHVlKCksIG5hbWUpO1xuICAgICAgICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgICAgICB9LCB7fSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZvcm1Db3JlLmdldEZpZWxkc1ZhbHVlKCk7XG4gICAgfSkpO1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vIGRlZmluZUZpZWxkIOKAkyB1c2VkIGJ5IHN0YW5kYWxvbmUgKG5vbi1Qcm9Gb3JtKSBjb25zdW1lcnNcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBjb25zdCBkZWZpbmVGaWVsZCA9IHVzZU1lbW9pemVkRm4oKG5hbWUsIGZpZWxkT3B0aW9ucyA9IHt9KSA9PiB7XG4gICAgICAgIGNvbnN0IHsgcnVsZXMgPSBbXSB9ID0gZmllbGRPcHRpb25zO1xuICAgICAgICBjb25zdCBGaWVsZENvbXBvbmVudCA9IG1lbW8oKF9hKSA9PiB7XG4gICAgICAgICAgICB2YXIgeyBjaGlsZHJlbiwgcmVuZGVyIH0gPSBfYSwgcHJvcHMgPSBfX3Jlc3QoX2EsIFtcImNoaWxkcmVuXCIsIFwicmVuZGVyXCJdKTtcbiAgICAgICAgICAgIC8vIFBlci1maWVsZCBzdG9yZSBzdWJzY3JpcHRpb246IHRoaXMgZmllbGQgcmUtcmVuZGVycyBvbmx5IHdoZW4gaXRzXG4gICAgICAgICAgICAvLyBvd24gdmFsdWUvZXJyb3IvdG91Y2hlZC92YWxpZGF0aW5nIHNsaWNlIGNoYW5nZXMuIERvdC1wYXRoc1xuICAgICAgICAgICAgLy8gcmVzb2x2ZSBpbnRvIHRoZSBuZXN0ZWQgdmFsdWVzIGxpa2UgZXZlcnl3aGVyZSBlbHNlLlxuICAgICAgICAgICAgY29uc3QgW2ZpZWxkVmFsdWUsIGZpZWxkRXJyb3IsIGZpZWxkVG91Y2hlZCwgZmllbGRWYWxpZGF0aW5nXSA9IHVzZVN0b3JlU2VsZWN0b3Ioc3RvcmUsIChzdGF0ZSkgPT4ge1xuICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICAgICAgICAoX2EgPSByZXNvbHZlVmFsdWUoc3RhdGUudmFsdWVzLCBuYW1lKSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogJycsXG4gICAgICAgICAgICAgICAgICAgIHN0YXRlLmVycm9yc1tuYW1lXSxcbiAgICAgICAgICAgICAgICAgICAgc3RhdGUudG91Y2hlZFtuYW1lXSxcbiAgICAgICAgICAgICAgICAgICAgc3RhdGUudmFsaWRhdGluZ1tuYW1lXSxcbiAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgfSwgc2hhbGxvd0VxdWFsQXJyYXlzKTtcbiAgICAgICAgICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgLy8gTW91bnQtY291bnRlZDogcmVsZWFzZUZpZWxkIHJlbW92ZXMgdGhlIHJ1bGVzIG9ubHkgd2hlbiB0aGVcbiAgICAgICAgICAgICAgICAvLyBMQVNUIHNhbWUtbmFtZSBpbnN0YW5jZSB1bm1vdW50cyDigJQgYW4gaW5zdGFuY2UgdGhhdCBwaWdneWJhY2tlZFxuICAgICAgICAgICAgICAgIC8vIG9uIGFuIGV4aXN0aW5nIHJlZ2lzdHJhdGlvbiAoZS5nLiBhIFByb0Zvcm0uSXRlbSdzKSBjYW4gbmV2ZXJcbiAgICAgICAgICAgICAgICAvLyB3aXBlIGl0IG9uIGl0cyBvd24gdW5tb3VudC5cbiAgICAgICAgICAgICAgICBmb3JtQ29yZS5yZXRhaW5GaWVsZChuYW1lKTtcbiAgICAgICAgICAgICAgICBjb25zdCBleGlzdGluZ1J1bGVzID0gZm9ybUNvcmUuZ2V0RmllbGRSdWxlcyhuYW1lKTtcbiAgICAgICAgICAgICAgICBpZiAoIWV4aXN0aW5nUnVsZXMgJiYgcnVsZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICBmb3JtQ29yZS5yZWdpc3RlckZpZWxkKG5hbWUsIHJ1bGVzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgZm9ybUNvcmUucmVsZWFzZUZpZWxkKG5hbWUpO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9LCBbXSk7IC8vIE9ubHkgcmVnaXN0ZXIgb24gbW91bnRcbiAgICAgICAgICAgIGNvbnN0IGhhbmRsZUZpZWxkQ2hhbmdlID0gdXNlRXZlbnRDYWxsYmFjaygodmFsdWUpID0+IHtcbiAgICAgICAgICAgICAgICBmb3JtQ29yZS5zZXRGaWVsZFZhbHVlKG5hbWUsIHZhbHVlKTtcbiAgICAgICAgICAgICAgICAvLyBUb3VjaGVkIGlzIHNldCBieSB0aGUgdXNlciBjaGFuZ2UgdHJpZ2dlciAobWF0Y2hpbmcgdGhlXG4gICAgICAgICAgICAgICAgLy8gUHJvRm9ybS5JdGVtIHBhdGgpIOKAlCBwcm9ncmFtbWF0aWMgc2V0RmllbGRzVmFsdWUgZG9lcyBub3QuXG4gICAgICAgICAgICAgICAgY29uc3QgdG91Y2hlZCA9IHN0b3JlLmdldFN0YXRlKCkudG91Y2hlZDtcbiAgICAgICAgICAgICAgICBpZiAoIXRvdWNoZWRbbmFtZV0pIHtcbiAgICAgICAgICAgICAgICAgICAgc3RvcmUuc2V0U3RhdGUoeyB0b3VjaGVkOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHRvdWNoZWQpLCB7IFtuYW1lXTogdHJ1ZSB9KSB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgYXBwbGljYWJsZSA9IGZpbHRlclJ1bGVzQnlUcmlnZ2VyKHJlc29sdmVSdWxlcyhydWxlcywgZm9ybUNvcmUuZ2V0RmllbGRzVmFsdWUoKSwgZm9ybUNvcmUuZ2V0UnVsZUNvbnRleHRJbnN0YW5jZSgpKSwgJ29uQ2hhbmdlJywgbm9ybWFsaXplVHJpZ2dlcnMoZmllbGRPcHRpb25zLnZhbGlkYXRlVHJpZ2dlciwgdmFsaWRhdGVUcmlnZ2VyKSwgbmFtZSk7XG4gICAgICAgICAgICAgICAgaWYgKGFwcGxpY2FibGUubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBBc3luYyBwYXRoIChtYXRjaGluZyBQcm9Gb3JtLkl0ZW0pIHNvIGEgUHJvbWlzZS1yZXR1cm5pbmdcbiAgICAgICAgICAgICAgICAgICAgLy8gdmFsaWRhdG9yIGlzIGhvbm9yZWQgb24gY2hhbmdlIGluc3RlYWQgb2YgYmVpbmcgc2lsZW50bHlcbiAgICAgICAgICAgICAgICAgICAgLy8gc2tpcHBlZDsgZmlyZS1hbmQtZm9yZ2V0IOKAlCB0aGUgcmVzdWx0IGxhbmRzIG9uIHRoZSBzdG9yZS5cbiAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGVGaWVsZEFzeW5jKG5hbWUsIHZhbHVlLCBhcHBsaWNhYmxlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbnN0IGhhbmRsZUJsdXIgPSB1c2VFdmVudENhbGxiYWNrKCgpID0+IHtcbiAgICAgICAgICAgICAgICBoYW5kbGVGaWVsZEJsdXIobmFtZSwgZmllbGRPcHRpb25zLnZhbGlkYXRlVHJpZ2dlcik7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbnN0IGZpZWxkUHJvcHMgPSBPYmplY3QuYXNzaWduKHsgbmFtZSwgdmFsdWU6IGZpZWxkVmFsdWUsIGVycm9yOiBmaWVsZEVycm9yLCB0b3VjaGVkOiBmaWVsZFRvdWNoZWQsIHZhbGlkYXRpbmc6IGZpZWxkVmFsaWRhdGluZywgb25DaGFuZ2U6IGhhbmRsZUZpZWxkQ2hhbmdlLCBvbkJsdXI6IGhhbmRsZUJsdXIgfSwgcHJvcHMpO1xuICAgICAgICAgICAgY29uc3QgaGFuZGxlTWVyZ2VDaGFuZ2UgPSAoZSkgPT4ge1xuICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGUgJiYgdHlwZW9mIGUgPT09ICdvYmplY3QnICYmICd0YXJnZXQnIGluIGVcbiAgICAgICAgICAgICAgICAgICAgPyBlLnRhcmdldC52YWx1ZVxuICAgICAgICAgICAgICAgICAgICA6IGU7XG4gICAgICAgICAgICAgICAgaGFuZGxlRmllbGRDaGFuZ2UodmFsdWUpO1xuICAgICAgICAgICAgICAgIGlmIChSZWFjdC5pc1ZhbGlkRWxlbWVudChjaGlsZHJlbikgJiZcbiAgICAgICAgICAgICAgICAgICAgKChfYSA9IGNoaWxkcmVuLnByb3BzKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Eub25DaGFuZ2UpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuLnByb3BzLm9uQ2hhbmdlKHZhbHVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgY29uc3QgaGFuZGxlTWVyZ2VCbHVyID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICBoYW5kbGVCbHVyKCk7XG4gICAgICAgICAgICAgICAgaWYgKFJlYWN0LmlzVmFsaWRFbGVtZW50KGNoaWxkcmVuKSAmJlxuICAgICAgICAgICAgICAgICAgICAoKF9hID0gY2hpbGRyZW4ucHJvcHMpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5vbkJsdXIpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuLnByb3BzLm9uQmx1cigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAocmVuZGVyICYmIHR5cGVvZiByZW5kZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVuZGVyKGZpZWxkUHJvcHMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHR5cGVvZiBjaGlsZHJlbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBjaGlsZHJlbihmaWVsZFByb3BzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIEVsZW1lbnQgY2hpbGRyZW4gcmVjZWl2ZSBvbmx5IERPTS1zYWZlIHByb3BzIOKAlCBlcnJvci90b3VjaGVkL1xuICAgICAgICAgICAgLy8gdmFsaWRhdGluZyBhcmUgZmllbGQgTUVUQSwgbm90IGNvbnRyb2wgcHJvcHM7IHNwcmVhZGluZyB0aGVtIG9udG9cbiAgICAgICAgICAgIC8vIGEgaG9zdCBlbGVtZW50IHdvdWxkIGxlYWsgYW55IGF0dHJpYnV0ZXMuIFJlbmRlci1wcm9wIGFuZFxuICAgICAgICAgICAgLy8gZnVuY3Rpb24gY2hpbGRyZW4ga2VlcCB0aGUgZnVsbCBmaWVsZFByb3BzLlxuICAgICAgICAgICAgY29uc3QgZG9tU2FmZVByb3BzID0gT2JqZWN0LmFzc2lnbih7IG5hbWUsIHZhbHVlOiBmaWVsZFZhbHVlLCBvbkNoYW5nZTogaGFuZGxlTWVyZ2VDaGFuZ2UsIG9uQmx1cjogaGFuZGxlTWVyZ2VCbHVyIH0sIHByb3BzKTtcbiAgICAgICAgICAgIGlmIChSZWFjdC5pc1ZhbGlkRWxlbWVudChjaGlsZHJlbikpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gUmVhY3QuY2xvbmVFbGVtZW50KGNoaWxkcmVuLCBkb21TYWZlUHJvcHMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoY2hpbGRyZW4pKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoRnJhZ21lbnQsIG51bGwsIC4uLmNoaWxkcmVuLm1hcCgoY2hpbGQsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChSZWFjdC5pc1ZhbGlkRWxlbWVudChjaGlsZCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBSZWFjdC5jbG9uZUVsZW1lbnQoY2hpbGQsIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgZG9tU2FmZVByb3BzKSwgeyBrZXk6IGNoaWxkLmtleSB8fCBpbmRleCB9KSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNoaWxkO1xuICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9KTtcbiAgICAgICAgRmllbGRDb21wb25lbnQuZGlzcGxheU5hbWUgPSBgRmllbGQoJHtuYW1lfSlgO1xuICAgICAgICByZXR1cm4gRmllbGRDb21wb25lbnQ7XG4gICAgfSk7XG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy8gaGFuZGxlU3VibWl0IC8gaGFuZGxlUmVzZXQg4oCTIGZvciA8Zm9ybT4gZXZlbnQgaGFuZGxlcnNcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBjb25zdCBoYW5kbGVTdWJtaXQgPSB1c2VFdmVudENhbGxiYWNrKChlKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgZSA9PT0gbnVsbCB8fCBlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCB2YWxpZGF0ZWRWYWx1ZXMgPSB5aWVsZCB2YWxpZGF0ZUZpZWxkc0FzeW5jKCk7XG4gICAgICAgICAgICBvbkZpbmlzaCA9PT0gbnVsbCB8fCBvbkZpbmlzaCA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25GaW5pc2godmFsaWRhdGVkVmFsdWVzKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAvLyBPbmx5IGEgVkFMSURBVElPTiBmYWlsdXJlIHJlYWNoZXMgb25GaW5pc2hGYWlsZWQg4oCUIGFuIGV4Y2VwdGlvbiBvdXRcbiAgICAgICAgICAgIC8vIG9mIHRoZSBjb25zdW1lcidzIG93biBvbkZpbmlzaCBpcyBub3QgYSB2YWxpZGF0aW9uIHJlc3VsdCBhbmQgaXNcbiAgICAgICAgICAgIC8vIHN1cmZhY2VkIGluc3RlYWQgb2YgYmVpbmcgbWlzcmVwb3J0ZWQuXG4gICAgICAgICAgICBpZiAoZXJyIGluc3RhbmNlb2YgRm9ybVZhbGlkYXRpb25FcnJvcikge1xuICAgICAgICAgICAgICAgIG9uRmluaXNoRmFpbGVkID09PSBudWxsIHx8IG9uRmluaXNoRmFpbGVkID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkZpbmlzaEZhaWxlZCh7IHZhbHVlczogZXJyLnZhbHVlcywgZXJyb3JzOiBlcnIuZXJyb3JzIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignW1Byb0Zvcm1dIG9uRmluaXNoIHRocmV3IGR1cmluZyBzdWJtaXQ6JywgZXJyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pKTtcbiAgICBjb25zdCBoYW5kbGVSZXNldCA9IHVzZUV2ZW50Q2FsbGJhY2soKGUpID0+IHtcbiAgICAgICAgZSA9PT0gbnVsbCB8fCBlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGZvcm1Db3JlLnJlc2V0RmllbGRzKCk7XG4gICAgICAgIG9uUmVzZXQgPT09IG51bGwgfHwgb25SZXNldCA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25SZXNldCgpO1xuICAgIH0pO1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vIEZvcm1JbnN0YW5jZSDigJMgZW5oYW5jZWQgQVBJIGZvciBjb25zdW1lcnMuXG4gICAgLy9cbiAgICAvLyBFdmVyeSBtZXRob2QgaXMgd3JhcHBlZCBpbiB1c2VNZW1vaXplZEZuIChzdGFibGUgaWRlbnRpdHksIGFsd2F5cyByZWFkcyB0aGVcbiAgICAvLyBsYXRlc3Qgc3RvcmUgc3RhdGUpIHNvIHRoZSBpbnN0YW5jZSBvYmplY3QgaXRzZWxmIGlzIElERU5USVRZLVNUQUJMRSBmb3JcbiAgICAvLyB0aGUgbGlmZXRpbWUgb2YgdGhlIGZvcm0g4oCUIHRoaXMgaXMgd2hhdCBsZXRzIFByb0Zvcm0gcHVibGlzaCBpdCB0aHJvdWdoIHRoZVxuICAgIC8vIHN0YWJsZSBjb250ZXh0IHdpdGhvdXQgcmUtcmVuZGVyaW5nIHN1YnNjcmliZXJzIG9uIGVhY2gga2V5c3Ryb2tlLlxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIGNvbnN0IGdldEZpZWxkRXJyb3IgPSB1c2VNZW1vaXplZEZuKChuYW1lKSA9PiBzdG9yZS5nZXRTdGF0ZSgpLmVycm9yc1tuYW1lXSk7XG4gICAgY29uc3QgZ2V0RmllbGRXYXJuaW5nID0gdXNlTWVtb2l6ZWRGbigobmFtZSkgPT4gc3RvcmUuZ2V0U3RhdGUoKS53YXJuaW5nc1tuYW1lXSk7XG4gICAgY29uc3QgZ2V0RmllbGRzRXJyb3IgPSB1c2VNZW1vaXplZEZuKChuYW1lTGlzdCkgPT4ge1xuICAgICAgICBjb25zdCBlcnJvcnMgPSBzdG9yZS5nZXRTdGF0ZSgpLmVycm9ycztcbiAgICAgICAgaWYgKCFuYW1lTGlzdClcbiAgICAgICAgICAgIHJldHVybiBlcnJvcnM7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHt9O1xuICAgICAgICBuYW1lTGlzdC5mb3JFYWNoKChuYW1lKSA9PiB7XG4gICAgICAgICAgICBpZiAoZXJyb3JzW25hbWVdKSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0W25hbWVdID0gZXJyb3JzW25hbWVdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9KTtcbiAgICBjb25zdCBpc0ZpZWxkVG91Y2hlZCA9IHVzZU1lbW9pemVkRm4oKG5hbWUpID0+IHN0b3JlLmdldFN0YXRlKCkudG91Y2hlZFtuYW1lXSB8fCBmYWxzZSk7XG4gICAgY29uc3QgaXNGaWVsZHNUb3VjaGVkID0gdXNlTWVtb2l6ZWRGbigobmFtZUxpc3QsIGFsbEZpZWxkc1RvdWNoZWQgPSBmYWxzZSkgPT4ge1xuICAgICAgICBjb25zdCB0b3VjaGVkID0gc3RvcmUuZ2V0U3RhdGUoKS50b3VjaGVkO1xuICAgICAgICBpZiAoIW5hbWVMaXN0KSB7XG4gICAgICAgICAgICByZXR1cm4gT2JqZWN0LmtleXModG91Y2hlZCkuc29tZSgoa2V5KSA9PiB0b3VjaGVkW2tleV0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhbGxGaWVsZHNUb3VjaGVkKSB7XG4gICAgICAgICAgICByZXR1cm4gbmFtZUxpc3QuZXZlcnkoKG5hbWUpID0+IHRvdWNoZWRbbmFtZV0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuYW1lTGlzdC5zb21lKChuYW1lKSA9PiB0b3VjaGVkW25hbWVdKTtcbiAgICB9KTtcbiAgICBjb25zdCBpc0ZpZWxkVmFsaWRhdGluZyA9IHVzZU1lbW9pemVkRm4oKG5hbWUpID0+IHN0b3JlLmdldFN0YXRlKCkudmFsaWRhdGluZ1tuYW1lXSB8fCBmYWxzZSk7XG4gICAgY29uc3Qgc2V0RmllbGRzRXJyb3IgPSB1c2VNZW1vaXplZEZuKChmaWVsZHNFcnJvcikgPT4ge1xuICAgICAgICBPYmplY3QuZW50cmllcyhmaWVsZHNFcnJvcikuZm9yRWFjaCgoW25hbWUsIGVycm9yXSkgPT4ge1xuICAgICAgICAgICAgZm9ybUNvcmUuc2V0RmllbGRFcnJvcihuYW1lLCBlcnJvcik7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICAgIGNvbnN0IHNldEZpZWxkVG91Y2hlZCA9IHVzZU1lbW9pemVkRm4oKG5hbWUsIGlzVG91Y2hlZCA9IHRydWUpID0+IHtcbiAgICAgICAgc3RvcmUuc2V0U3RhdGUoeyB0b3VjaGVkOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHN0b3JlLmdldFN0YXRlKCkudG91Y2hlZCksIHsgW25hbWVdOiBpc1RvdWNoZWQgfSkgfSk7XG4gICAgfSk7XG4gICAgY29uc3Qgc2V0RmllbGRzVG91Y2hlZCA9IHVzZU1lbW9pemVkRm4oKGZpZWxkc1RvdWNoKSA9PiB7XG4gICAgICAgIHN0b3JlLnNldFN0YXRlKHsgdG91Y2hlZDogT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBzdG9yZS5nZXRTdGF0ZSgpLnRvdWNoZWQpLCBmaWVsZHNUb3VjaCkgfSk7XG4gICAgfSk7XG4gICAgY29uc3QgcmVzZXRGb3JtRmllbGRzID0gdXNlTWVtb2l6ZWRGbigoZmllbGRzKSA9PiB7XG4gICAgICAgIGlmICghZmllbGRzKSB7XG4gICAgICAgICAgICBmb3JtQ29yZS5yZXNldEZpZWxkcygpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIC8vIE1vdW50LWZyb3plbiBpbml0aWFsVmFsdWVzIOKAlCBjb25zaXN0ZW50IHdpdGggdGhlIGZ1bGwgcmVzZXRGaWVsZHMuXG4gICAgICAgIC8vIFJlYWRzIEFORCB3cml0ZXMgYXJlIG5lc3RlZC1wYXRoIGF3YXJlLCBzbyBkb3QtcGF0aCBuYW1lc1xuICAgICAgICAvLyAoYGFkZHJlc3MuY2l0eWAsIGBpdGVtcy4wLnRpdGxlYCkgcmVzZXQgY29ycmVjdGx5IGluc3RlYWQgb2YgcHJvYmluZyBhXG4gICAgICAgIC8vIGxpdGVyYWwga2V5IGFuZCBzaGFsbG93LW1lcmdpbmcgb25lIGJhY2suXG4gICAgICAgIGNvbnN0IGluaXRpYWxWYWx1ZXMgPSBmb3JtQ29yZS5nZXRJbml0aWFsVmFsdWVzKCk7XG4gICAgICAgIGNvbnN0IHN0YXRlID0gc3RvcmUuZ2V0U3RhdGUoKTtcbiAgICAgICAgbGV0IG5ld1ZhbHVlcyA9IHN0YXRlLnZhbHVlcztcbiAgICAgICAgZmllbGRzLmZvckVhY2goKGZpZWxkKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBpbml0aWFsID0gcmVzb2x2ZVZhbHVlKGluaXRpYWxWYWx1ZXMsIGZpZWxkKTtcbiAgICAgICAgICAgIG5ld1ZhbHVlcyA9IGZpZWxkLmluY2x1ZGVzKCcuJylcbiAgICAgICAgICAgICAgICA/IHNldE5lc3RlZFZhbHVlKG5ld1ZhbHVlcywgZmllbGQsIGluaXRpYWwpXG4gICAgICAgICAgICAgICAgOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIG5ld1ZhbHVlcyksIHsgW2ZpZWxkXTogaW5pdGlhbCB9KTtcbiAgICAgICAgfSk7XG4gICAgICAgIC8vIExpa2UgdGhlIGZ1bGwgcmVzZXQ6IGNsZWFyIEFMTCBwZXItZmllbGQgbWV0YSAoZXJyb3JzIEFORCB3YXJuaW5ncyBBTkRcbiAgICAgICAgLy8gdG91Y2hlZC92YWxpZGF0aW5nKSwgaW52YWxpZGF0ZSBpbi1mbGlnaHQgdmFsaWRhdGlvbiBydW5zLCBhbmQgbGFuZFxuICAgICAgICAvLyBldmVyeXRoaW5nIGluIE9ORSBjb21taXQuIE5vIG9uVmFsdWVzQ2hhbmdlIOKAlCByZXNldCBpcyBub3QgYSBjaGFuZ2VcbiAgICAgICAgLy8gZXZlbnQgb24gZWl0aGVyIHBhdGguXG4gICAgICAgIGZvcm1Db3JlLmludmFsaWRhdGVWYWxpZGF0aW9uUnVucyhmaWVsZHMpO1xuICAgICAgICBjb25zdCBuZXdFcnJvcnMgPSBPYmplY3QuYXNzaWduKHt9LCBzdGF0ZS5lcnJvcnMpO1xuICAgICAgICBjb25zdCBuZXdXYXJuaW5ncyA9IE9iamVjdC5hc3NpZ24oe30sIHN0YXRlLndhcm5pbmdzKTtcbiAgICAgICAgY29uc3QgbmV3VG91Y2hlZCA9IE9iamVjdC5hc3NpZ24oe30sIHN0YXRlLnRvdWNoZWQpO1xuICAgICAgICBjb25zdCBuZXdWYWxpZGF0aW5nID0gT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUudmFsaWRhdGluZyk7XG4gICAgICAgIGZpZWxkcy5mb3JFYWNoKChmaWVsZCkgPT4ge1xuICAgICAgICAgICAgZGVsZXRlIG5ld0Vycm9yc1tmaWVsZF07XG4gICAgICAgICAgICBkZWxldGUgbmV3V2FybmluZ3NbZmllbGRdO1xuICAgICAgICAgICAgZGVsZXRlIG5ld1RvdWNoZWRbZmllbGRdO1xuICAgICAgICAgICAgZGVsZXRlIG5ld1ZhbGlkYXRpbmdbZmllbGRdO1xuICAgICAgICB9KTtcbiAgICAgICAgc3RvcmUuc2V0U3RhdGUoe1xuICAgICAgICAgICAgdmFsdWVzOiBuZXdWYWx1ZXMsXG4gICAgICAgICAgICBlcnJvcnM6IG5ld0Vycm9ycyxcbiAgICAgICAgICAgIHdhcm5pbmdzOiBuZXdXYXJuaW5ncyxcbiAgICAgICAgICAgIHRvdWNoZWQ6IG5ld1RvdWNoZWQsXG4gICAgICAgICAgICB2YWxpZGF0aW5nOiBuZXdWYWxpZGF0aW5nLFxuICAgICAgICB9KTtcbiAgICB9KTtcbiAgICBjb25zdCBzdWJtaXRXaXRoVmFsaWRhdGlvbiA9IHVzZU1lbW9pemVkRm4oKGNhbGxiYWNrKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgbGV0IHZhbGlkYXRlZFZhbHVlcztcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHZhbGlkYXRlZFZhbHVlcyA9IHlpZWxkIHZhbGlkYXRlRmllbGRzQXN5bmMoKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoX2EpIHtcbiAgICAgICAgICAgIC8vIFZhbGlkYXRpb24gZmFpbHVyZSDigJQgdGhlIGZpZWxkIGVycm9ycyBhcmUgYWxyZWFkeSBpbiB0aGUgc3RvcmUuXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjYWxsYmFjaykge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICB5aWVsZCBjYWxsYmFjayh2YWxpZGF0ZWRWYWx1ZXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgIC8vIEEgdGhyb3dpbmcgY2FsbGJhY2sgaXMgYSBjb25zdW1lciBidWcsIG5vdCBhIHZhbGlkYXRpb24gZmFpbHVyZSDigJRcbiAgICAgICAgICAgICAgICAvLyBzdXJmYWNlIGl0IChtaXJyb3JpbmcgcmMtZmllbGQtZm9ybSdzIG9uRmluaXNoIGhhbmRsaW5nKSBpbnN0ZWFkXG4gICAgICAgICAgICAgICAgLy8gb2Ygc3dhbGxvd2luZyBpdCBzaWxlbnRseS5cbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdbUHJvRm9ybV0gc3VibWl0IGNhbGxiYWNrIHRocmV3OicsIGVycik7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsaWRhdGVkVmFsdWVzO1xuICAgIH0pKTtcbiAgICBjb25zdCBmb3JtSW5zdGFuY2UgPSB1c2VNZW1vKCgpID0+IChPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGZvcm1Db3JlLmZvcm1JbnN0YW5jZSksIHsgZ2V0RmllbGRWYWx1ZTogZm9ybUNvcmUuZ2V0RmllbGRWYWx1ZSwgZ2V0RmllbGRzVmFsdWU6IGZvcm1Db3JlLmdldEZpZWxkc1ZhbHVlLCB2YWxpZGF0ZUZpZWxkczogdmFsaWRhdGVGaWVsZHNBc3luYywgc2V0RmllbGRWYWx1ZTogZm9ybUNvcmUuc2V0RmllbGRWYWx1ZSwgc2V0RmllbGRzVmFsdWU6IGZvcm1Db3JlLnNldEZpZWxkc1ZhbHVlLCBnZXRGaWVsZEVycm9yOiBnZXRGaWVsZEVycm9yLCBnZXRGaWVsZFdhcm5pbmc6IGdldEZpZWxkV2FybmluZywgZ2V0RmllbGRzRXJyb3I6IGdldEZpZWxkc0Vycm9yLCBpc0ZpZWxkVG91Y2hlZDogaXNGaWVsZFRvdWNoZWQsIGlzRmllbGRzVG91Y2hlZDogaXNGaWVsZHNUb3VjaGVkLCBpc0ZpZWxkVmFsaWRhdGluZzogaXNGaWVsZFZhbGlkYXRpbmcsIHNldEZpZWxkRXJyb3I6IGZvcm1Db3JlLnNldEZpZWxkRXJyb3IsIHNldEZpZWxkc0Vycm9yLCBzZXRGaWVsZFRvdWNoZWQ6IHNldEZpZWxkVG91Y2hlZCwgc2V0RmllbGRzVG91Y2hlZCwgcmVzZXRGaWVsZHM6IHJlc2V0Rm9ybUZpZWxkcywgc3VibWl0OiBzdWJtaXRXaXRoVmFsaWRhdGlvbiwgZGVmaW5lRmllbGQsIHJlZ2lzdGVyRmllbGQ6IGZvcm1Db3JlLnJlZ2lzdGVyRmllbGQsIHVucmVnaXN0ZXJGaWVsZDogZm9ybUNvcmUudW5yZWdpc3RlckZpZWxkIH0pKSwgW1xuICAgICAgICBmb3JtQ29yZS5mb3JtSW5zdGFuY2UsXG4gICAgICAgIGZvcm1Db3JlLmdldEZpZWxkVmFsdWUsXG4gICAgICAgIGZvcm1Db3JlLmdldEZpZWxkc1ZhbHVlLFxuICAgICAgICBmb3JtQ29yZS5zZXRGaWVsZFZhbHVlLFxuICAgICAgICBmb3JtQ29yZS5zZXRGaWVsZHNWYWx1ZSxcbiAgICAgICAgZm9ybUNvcmUuc2V0RmllbGRFcnJvcixcbiAgICAgICAgZm9ybUNvcmUucmVnaXN0ZXJGaWVsZCxcbiAgICAgICAgZm9ybUNvcmUudW5yZWdpc3RlckZpZWxkLFxuICAgICAgICB2YWxpZGF0ZUZpZWxkc0FzeW5jLFxuICAgICAgICBnZXRGaWVsZEVycm9yLFxuICAgICAgICBnZXRGaWVsZFdhcm5pbmcsXG4gICAgICAgIGdldEZpZWxkc0Vycm9yLFxuICAgICAgICBpc0ZpZWxkVG91Y2hlZCxcbiAgICAgICAgaXNGaWVsZHNUb3VjaGVkLFxuICAgICAgICBpc0ZpZWxkVmFsaWRhdGluZyxcbiAgICAgICAgc2V0RmllbGRzRXJyb3IsXG4gICAgICAgIHNldEZpZWxkVG91Y2hlZCxcbiAgICAgICAgc2V0RmllbGRzVG91Y2hlZCxcbiAgICAgICAgcmVzZXRGb3JtRmllbGRzLFxuICAgICAgICBzdWJtaXRXaXRoVmFsaWRhdGlvbixcbiAgICAgICAgZGVmaW5lRmllbGQsXG4gICAgXSk7XG4gICAgLy8gRnVuY3Rpb24tZm9ybSBydWxlcyBnZXQgdGhlIEZVTEwgZm9ybSBpbnN0YW5jZSAoZXJyb3IgZ2V0dGVycywgdG91Y2hlZFxuICAgIC8vIHN0YXRlLCBtdXRhdG9ycykgaW5zdGVhZCBvZiB0aGUgYmFyZSBjb3JlIG1ldGhvZHMuIFJlZiB3cml0ZSDigJQgY2hlYXAgYW5kXG4gICAgLy8gaWRlbXBvdGVudCBwZXIgcmVuZGVyLlxuICAgIGZvcm1Db3JlLnNldFJ1bGVDb250ZXh0SW5zdGFuY2UoZm9ybUluc3RhbmNlKTtcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyBJbnRlcm5hbHMg4oCTIGV4cG9zZWQgZm9yIFByb0Zvcm0gaW50ZWdyYXRpb24uIERhdGEgZmllbGRzIGFyZSBHRVRURVJTIHRoYXRcbiAgICAvLyByZWFkIHRoZSBsaXZlIHN0b3JlLCBzbyB0aGUgb2JqZWN0IGlzIGlkZW50aXR5LXN0YWJsZSB5ZXQgbmV2ZXIgc3RhbGUuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgY29uc3QgaW50ZXJuYWxzID0gdXNlTWVtbygoKSA9PiAoe1xuICAgICAgICBnZXQgdmFsdWVzKCkge1xuICAgICAgICAgICAgcmV0dXJuIHN0b3JlLmdldFN0YXRlKCkudmFsdWVzO1xuICAgICAgICB9LFxuICAgICAgICBnZXQgZXJyb3JzKCkge1xuICAgICAgICAgICAgcmV0dXJuIHN0b3JlLmdldFN0YXRlKCkuZXJyb3JzO1xuICAgICAgICB9LFxuICAgICAgICBnZXQgd2FybmluZ3MoKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RvcmUuZ2V0U3RhdGUoKS53YXJuaW5ncztcbiAgICAgICAgfSxcbiAgICAgICAgZ2V0IHRvdWNoZWQoKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RvcmUuZ2V0U3RhdGUoKS50b3VjaGVkO1xuICAgICAgICB9LFxuICAgICAgICBnZXQgdmFsaWRhdGluZygpIHtcbiAgICAgICAgICAgIHJldHVybiBzdG9yZS5nZXRTdGF0ZSgpLnZhbGlkYXRpbmc7XG4gICAgICAgIH0sXG4gICAgICAgIGZpZWxkUnVsZXM6IGZvcm1Db3JlLmZpZWxkUnVsZXMsXG4gICAgICAgIHNldEZpZWxkVmFsdWU6IGZvcm1Db3JlLnNldEZpZWxkVmFsdWUsXG4gICAgICAgIHNldEZpZWxkRXJyb3I6IGZvcm1Db3JlLnNldEZpZWxkRXJyb3IsXG4gICAgICAgIHNldEZpZWxkV2FybmluZzogZm9ybUNvcmUuc2V0RmllbGRXYXJuaW5nLFxuICAgICAgICB2YWxpZGF0ZUZpZWxkQXN5bmMsXG4gICAgICAgIHJlZ2lzdGVyRmllbGQ6IGZvcm1Db3JlLnJlZ2lzdGVyRmllbGQsXG4gICAgICAgIHVucmVnaXN0ZXJGaWVsZDogZm9ybUNvcmUudW5yZWdpc3RlckZpZWxkLFxuICAgICAgICByZXRhaW5GaWVsZDogZm9ybUNvcmUucmV0YWluRmllbGQsXG4gICAgICAgIHJlbGVhc2VGaWVsZDogZm9ybUNvcmUucmVsZWFzZUZpZWxkLFxuICAgICAgICBoYW5kbGVTdWJtaXQsXG4gICAgICAgIGhhbmRsZVJlc2V0LFxuICAgIH0pLCBbXG4gICAgICAgIHN0b3JlLFxuICAgICAgICBmb3JtQ29yZS5maWVsZFJ1bGVzLFxuICAgICAgICBmb3JtQ29yZS5zZXRGaWVsZFZhbHVlLFxuICAgICAgICBmb3JtQ29yZS5zZXRGaWVsZEVycm9yLFxuICAgICAgICBmb3JtQ29yZS5zZXRGaWVsZFdhcm5pbmcsXG4gICAgICAgIHZhbGlkYXRlRmllbGRBc3luYyxcbiAgICAgICAgZm9ybUNvcmUucmVnaXN0ZXJGaWVsZCxcbiAgICAgICAgZm9ybUNvcmUudW5yZWdpc3RlckZpZWxkLFxuICAgICAgICBmb3JtQ29yZS5yZXRhaW5GaWVsZCxcbiAgICAgICAgZm9ybUNvcmUucmVsZWFzZUZpZWxkLFxuICAgICAgICBoYW5kbGVTdWJtaXQsXG4gICAgICAgIGhhbmRsZVJlc2V0LFxuICAgIF0pO1xuICAgIHJldHVybiB7IGZvcm1JbnN0YW5jZSwgaW50ZXJuYWxzLCBzdG9yZSB9O1xufTtcbmV4cG9ydCBkZWZhdWx0IHVzZUZvcm07IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
|
|
799
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9jb3JlL2hvb2tzL3VzZUZvcm0uanMiLCJjb21wb25lbnRzL1Byb0Zvcm0vY29yZS9zcmMvY29tcG9uZW50cy9Qcm9Gb3JtL2NvcmUvaG9va3MvdXNlRm9ybS50cyJdLCJuYW1lcyI6WyJfX2F3YWl0ZXIiLCJ0aGlzQXJnIiwiX2FyZ3VtZW50cyIsIlAiLCJnZW5lcmF0b3IiLCJhZG9wdCIsInZhbHVlIiwicmVzb2x2ZSIsIlByb21pc2UiLCJyZWplY3QiLCJmdWxmaWxsZWQiLCJzdGVwIiwibmV4dCIsImUiLCJyZWplY3RlZCIsInJlc3VsdCIsImRvbmUiLCJ0aGVuIiwiYXBwbHkiLCJfX3Jlc3QiLCJzIiwidCIsInAiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpbmRleE9mIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiaSIsImxlbmd0aCIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwidXNlTWVtbyIsInVzZUVmZmVjdCIsInVzZVJlZiIsIm1lbW8iLCJGcmFnbWVudCIsIlJlYWN0IiwidXNlRXZlbnRDYWxsYmFjayIsInVzZU1lbW9pemVkRm4iLCJ1c2VGb3JtQ29yZSIsInJlc29sdmVWYWx1ZSIsInNldE5lc3RlZFZhbHVlIiwiY29lcmNlRmFpbHVyZVJlYXNvbiIsImZpbHRlclJ1bGVzQnlUcmlnZ2VyIiwibm9ybWFsaXplVHJpZ2dlcnMiLCJyZXNvbHZlUnVsZXMiLCJydW5SdWxlc0FzeW5jIiwidXNlU3RvcmVTZWxlY3RvciIsInNoYWxsb3dFcXVhbEFycmF5cyIsInNhbWVWYWxpZGF0aW9uTm9kZSIsIkZvcm1WYWxpZGF0aW9uRXJyb3IiLCJhc1J1bGVBcnJheSIsInJ1bGUiLCJBcnJheSIsImlzQXJyYXkiLCJydWxlSGFzVmFsaWRhdG9yIiwidmFsaWRhdG9yIiwiZGVmYXVsdEZpZWxkIiwic29tZSIsImZpZWxkcyIsInZhbHVlcyIsInN1YiIsImhhc1Jlc29sdmVkVmFsaWRhdG9yIiwicmVzb2x2ZWQiLCJ1c2VGb3JtIiwiY29uZmlnIiwiYXJndW1lbnRzIiwidW5kZWZpbmVkIiwib25GaW5pc2giLCJvbkZpbmlzaEZhaWxlZCIsIm9uUmVzZXQiLCJfY29uZmlnJHZhbGlkYXRlVHJpZ2ciLCJ2YWxpZGF0ZVRyaWdnZXIiLCJmb3JtQ29yZSIsInN0b3JlIiwibGFzdEFzeW5jRXBvY2hSZWYiLCJtYXJrVmFsaWRhdGluZyIsIm5hbWVzIiwiYXNzaWduIiwiZ2V0U3RhdGUiLCJ2YWxpZGF0aW5nIiwiZm9yRWFjaCIsIm5hbWUiLCJzZXRTdGF0ZSIsImNvbW1pdFJ1bGVPdXRjb21lcyIsIm91dGNvbWVzIiwiY2xlYXJWYWxpZGF0aW5nIiwic3RhdGUiLCJlcnJvcnNDaGFuZ2VkIiwid2FybmluZ3NDaGFuZ2VkIiwibmV3RXJyb3JzIiwiZXJyb3JzIiwibmV3V2FybmluZ3MiLCJ3YXJuaW5ncyIsIl9pdGVyYXRvciIsIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwiX3N0ZXAiLCJuIiwiX3N0ZXAkdmFsdWUiLCJlcnJvciIsIndhcm5pbmciLCJlcnIiLCJmIiwiZmxhZ3NUb0NsZWFyIiwiZmlsdGVyIiwicGF0Y2giLCJuZXdWYWxpZGF0aW5nIiwia2V5cyIsInZhbGlkYXRlRmllbGRBc3luYyIsInJ1bGVzIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsIm1hcmsiLCJfY2FsbGVlIiwiX2EiLCJlcG9jaCIsImZsYWdnZWQiLCJvdXRjb21lIiwiX3lpZWxkJHJ1blJ1bGVzQXN5bmMiLCJpc0N1cnJlbnQiLCJjbGVhckZsYWdzIiwiX3QiLCJ3cmFwIiwiX2NvbnRleHQiLCJwcmV2IiwiYWJydXB0IiwiaXNWYWxpZCIsImJlZ2luVmFsaWRhdGlvblJ1biIsImdldEZpZWxkc1ZhbHVlIiwiZ2V0UnVsZUNvbnRleHRJbnN0YW5jZSIsImZsYWdnZWROYW1lIiwiY3VycmVudCIsInNlbnQiLCJpc1ZhbGlkYXRpb25SdW5DdXJyZW50IiwiZmluaXNoIiwic3RvcCIsImhhbmRsZUZpZWxkQmx1ciIsImZpZWxkVHJpZ2dlciIsIl9jYWxsZWUyIiwidG91Y2hlZCIsImFwcGxpY2FibGUiLCJfY29udGV4dDIiLCJfZGVmaW5lUHJvcGVydHkiLCJnZXRGaWVsZFJ1bGVzIiwidmFsaWRhdGVGaWVsZHNBc3luYyIsIm5hbWVMaXN0IiwiX2NhbGxlZTQiLCJmaWVsZHNUb1ZhbGlkYXRlIiwiZmllbGRFcnJvcnMiLCJyZXNvbHZlZEJ5RmllbGQiLCJlcG9jaEJ5RmllbGQiLCJfaXRlcmF0b3IyIiwiX3N0ZXAyIiwiX2NvbnRleHQ0IiwiZmllbGRSdWxlcyIsIk1hcCIsInNldCIsImdldCIsImFsbCIsIm1hcCIsIl9jYWxsZWUzIiwiX3lpZWxkJHJ1blJ1bGVzQXN5bmMyIiwiX3QyIiwiX2NvbnRleHQzIiwicHVzaCIsInJlZHVjZSIsImFjYyIsImRlZmluZUZpZWxkIiwiZmllbGRPcHRpb25zIiwiX2ZpZWxkT3B0aW9ucyRydWxlcyIsIkZpZWxkQ29tcG9uZW50IiwiY2hpbGRyZW4iLCJyZW5kZXIiLCJwcm9wcyIsIl91c2VTdG9yZVNlbGVjdG9yIiwiX3VzZVN0b3JlU2VsZWN0b3IyIiwiX3NsaWNlZFRvQXJyYXkiLCJmaWVsZFZhbHVlIiwiZmllbGRFcnJvciIsImZpZWxkVG91Y2hlZCIsImZpZWxkVmFsaWRhdGluZyIsInJldGFpbkZpZWxkIiwiZXhpc3RpbmdSdWxlcyIsInJlZ2lzdGVyRmllbGQiLCJyZWxlYXNlRmllbGQiLCJoYW5kbGVGaWVsZENoYW5nZSIsInNldEZpZWxkVmFsdWUiLCJoYW5kbGVCbHVyIiwiZmllbGRQcm9wcyIsIm9uQ2hhbmdlIiwib25CbHVyIiwiaGFuZGxlTWVyZ2VDaGFuZ2UiLCJfdHlwZW9mIiwidGFyZ2V0IiwiaXNWYWxpZEVsZW1lbnQiLCJoYW5kbGVNZXJnZUJsdXIiLCJkb21TYWZlUHJvcHMiLCJjbG9uZUVsZW1lbnQiLCJjcmVhdGVFbGVtZW50IiwiY29uY2F0IiwiX3RvQ29uc3VtYWJsZUFycmF5IiwiY2hpbGQiLCJpbmRleCIsImtleSIsImRpc3BsYXlOYW1lIiwiaGFuZGxlU3VibWl0IiwiX2NhbGxlZTUiLCJ2YWxpZGF0ZWRWYWx1ZXMiLCJfdDMiLCJfY29udGV4dDUiLCJwcmV2ZW50RGVmYXVsdCIsImNvbnNvbGUiLCJoYW5kbGVSZXNldCIsInJlc2V0RmllbGRzIiwiZ2V0RmllbGRFcnJvciIsImdldEZpZWxkV2FybmluZyIsImdldEZpZWxkc0Vycm9yIiwiaXNGaWVsZFRvdWNoZWQiLCJpc0ZpZWxkc1RvdWNoZWQiLCJhbGxGaWVsZHNUb3VjaGVkIiwiZXZlcnkiLCJpc0ZpZWxkVmFsaWRhdGluZyIsInNldEZpZWxkc0Vycm9yIiwiZmllbGRzRXJyb3IiLCJlbnRyaWVzIiwiX3JlZiIsIl9yZWYyIiwic2V0RmllbGRFcnJvciIsInNldEZpZWxkVG91Y2hlZCIsImlzVG91Y2hlZCIsInNldEZpZWxkc1RvdWNoZWQiLCJmaWVsZHNUb3VjaCIsInJlc2V0Rm9ybUZpZWxkcyIsImluaXRpYWxWYWx1ZXMiLCJnZXRJbml0aWFsVmFsdWVzIiwibmV3VmFsdWVzIiwiZmllbGQiLCJpbml0aWFsIiwiaW5jbHVkZXMiLCJpbnZhbGlkYXRlVmFsaWRhdGlvblJ1bnMiLCJuZXdUb3VjaGVkIiwic3VibWl0V2l0aFZhbGlkYXRpb24iLCJjYWxsYmFjayIsIl9jYWxsZWU2IiwiX3Q0IiwiX3Q1IiwiX2NvbnRleHQ2IiwiZm9ybUluc3RhbmNlIiwiZ2V0RmllbGRWYWx1ZSIsInZhbGlkYXRlRmllbGRzIiwic2V0RmllbGRzVmFsdWUiLCJzdWJtaXQiLCJ1bnJlZ2lzdGVyRmllbGQiLCJzZXRSdWxlQ29udGV4dEluc3RhbmNlIiwiaW50ZXJuYWxzIiwic2V0RmllbGRXYXJuaW5nIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLElBQUlBLFNBQVMsR0FBSSxJQUFJLElBQUksSUFBSSxDQUFDQSxTQUFTLElBQUssVUFBVUMsT0FBTyxFQUFFQyxVQUFVLEVBQUVDLENBQUMsRUFBRUMsU0FBUyxFQUFFO0VBQ3JGLFNBQVNDLEtBQUtBLENBQUNDLEtBQUssRUFBRTtJQUFF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RU8sU0FBUyxFQUFUQSxTQUFTO0lBQUVuTCxLQUFLLEVBQUxBO0VBQUssQ0FBRTtBQUMzQyxDQUFDO0FBRUQsZUFBZVYsT0FBTyIsImZpbGUiOiJjb21wb25lbnRzL1Byb0Zvcm0vY29yZS9ob29rcy91c2VGb3JtLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fYXdhaXRlciA9ICh0aGlzICYmIHRoaXMuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcbiAgICB9KTtcbn07XG52YXIgX19yZXN0ID0gKHRoaXMgJiYgdGhpcy5fX3Jlc3QpIHx8IGZ1bmN0aW9uIChzLCBlKSB7XG4gICAgdmFyIHQgPSB7fTtcbiAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMClcbiAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxuICAgICAgICBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpXG4gICAgICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XG4gICAgICAgIH1cbiAgICByZXR1cm4gdDtcbn07XG5pbXBvcnQgeyB1c2VNZW1vLCB1c2VFZmZlY3QsIHVzZVJlZiwgbWVtbywgRnJhZ21lbnQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHVzZUV2ZW50Q2FsbGJhY2sgZnJvbSAnQDFtb25leS9ob29rcy91c2VFdmVudENhbGxiYWNrJztcbmltcG9ydCB1c2VNZW1vaXplZEZuIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlTWVtb2l6ZWRGbic7XG5pbXBvcnQgeyB1c2VGb3JtQ29yZSB9IGZyb20gJy4vdXNlRm9ybUNvcmUnO1xuaW1wb3J0IHsgcmVzb2x2ZVZhbHVlLCBzZXROZXN0ZWRWYWx1ZSB9IGZyb20gJy4uL3BhdGhVdGlscyc7XG5pbXBvcnQgeyBjb2VyY2VGYWlsdXJlUmVhc29uLCBmaWx0ZXJSdWxlc0J5VHJpZ2dlciwgbm9ybWFsaXplVHJpZ2dlcnMsIHJlc29sdmVSdWxlcywgcnVuUnVsZXNBc3luYywgfSBmcm9tICcuLi9ydW5SdWxlcyc7XG5pbXBvcnQgeyB1c2VTdG9yZVNlbGVjdG9yLCBzaGFsbG93RXF1YWxBcnJheXMsIHNhbWVWYWxpZGF0aW9uTm9kZSB9IGZyb20gJy4uL2Zvcm1TdG9yZSc7XG5pbXBvcnQgeyBGb3JtVmFsaWRhdGlvbkVycm9yIH0gZnJvbSAnLi4vdmFsaWRhdGlvbkVycm9yJztcbi8qKlxuICogT25seSBydWxlcyB3aXRoIGEgY3VzdG9tIGB2YWxpZGF0b3JgIGNhbiBiZSBnZW51aW5lbHkgYXN5bmNocm9ub3VzIOKAlFxuICogYnVpbHRpbiBydWxlcyByZXNvbHZlIHdpdGhpbiBhIG1pY3JvdGFzaywgc28gZmxpcHBpbmcgYHZhbGlkYXRpbmdgIGZvclxuICogdGhlbSB3b3VsZCBvbmx5IGNodXJuIHN1YnNjcmliZXJzIHdpdGhvdXQgZXZlciBiZWluZyB2aXNpYmxlLiBEZWNpZGVkIG9uXG4gKiBSRVNPTFZFRCBydWxlczogYSBmdW5jdGlvbi1mb3JtIHJ1bGUgdGhhdCByZXNvbHZlcyB0byBidWlsdGluLW9ubHkgY2hlY2tzXG4gKiBtdXN0IG5vdCBmbGlja2VyIHRoZSBmbGFnLlxuICpcbiAqIFRoZSBhc3luYyBlbmdpbmUgYXdhaXRzIHZhbGlkYXRvcnMgbmVzdGVkIGluc2lkZSBgZmllbGRzYCAvIGBkZWZhdWx0RmllbGRgXG4gKiB0b28sIHNvIHRoZSBkZWNpc2lvbiBtdXN0IGRlc2NlbmQgdGhlIHNhbWUgd2F5IOKAlCBvdGhlcndpc2UgYSBkZWVwLW9ubHlcbiAqIHZhbGlkYXRvciAoZS5nLiBgeyBkZWZhdWx0RmllbGQ6IHsgdmFsaWRhdG9yIH0gfWApIHJ1bnMgcGVuZGluZyB3aXRoIHRoZVxuICogZmxhZyBzdHVjayBmYWxzZSwgYW5kIGBpc0ZpZWxkVmFsaWRhdGluZyhuYW1lKWAgdW5kZXItcmVwb3J0cyBmb3IgdGhlIHdob2xlXG4gKiB3aW5kb3cuIE92ZXItZmxhZ2dpbmcgd2hlbiB0aGUgZGVlcCB2YWxpZGF0b3Igd29uJ3QgYWN0dWFsbHkgZmlyZSAoZW1wdHkgL1xuICogcHJpbWl0aXZlIHZhbHVlKSBpcyBhY2NlcHRhYmxlOiB0aGUgZmxhZyBpcyBkZWNpZGVkIG9uIHJ1bGUgU0hBUEUsIGV4YWN0bHlcbiAqIGFzIHRoZSB0b3AtbGV2ZWwgY2FzZSBhbHJlYWR5IG92ZXItZmxhZ3MgYSB2YWxpZGF0b3Igc2hvcnQtY2lyY3VpdGVkIGJ5IGFuXG4gKiBlYXJsaWVyIGJ1aWx0aW4gZmFpbHVyZTsgdGhlIHJ1biBjbGVhcnMgaXQgb24gc2V0dGxlIGVpdGhlciB3YXkuXG4gKi9cbmNvbnN0IGFzUnVsZUFycmF5ID0gKHJ1bGUpID0+IHJ1bGUgPyAoQXJyYXkuaXNBcnJheShydWxlKSA/IHJ1bGUgOiBbcnVsZV0pIDogW107XG5jb25zdCBydWxlSGFzVmFsaWRhdG9yID0gKHJ1bGUpID0+IHtcbiAgICBpZiAodHlwZW9mIHJ1bGUudmFsaWRhdG9yID09PSAnZnVuY3Rpb24nKVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICBpZiAoYXNSdWxlQXJyYXkocnVsZS5kZWZhdWx0RmllbGQpLnNvbWUocnVsZUhhc1ZhbGlkYXRvcikpXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIGlmIChydWxlLmZpZWxkcykge1xuICAgICAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyhydWxlLmZpZWxkcykuc29tZSgoc3ViKSA9PiBhc1J1bGVBcnJheShzdWIpLnNvbWUocnVsZUhhc1ZhbGlkYXRvcikpO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG59O1xuY29uc3QgaGFzUmVzb2x2ZWRWYWxpZGF0b3IgPSAocmVzb2x2ZWQpID0+IHJlc29sdmVkLnNvbWUocnVsZUhhc1ZhbGlkYXRvcik7XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIHVzZUZvcm1cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZXhwb3J0IGNvbnN0IHVzZUZvcm0gPSAoY29uZmlnID0ge30pID0+IHtcbiAgICBjb25zdCB7IG9uRmluaXNoLCBvbkZpbmlzaEZhaWxlZCwgb25SZXNldCwgdmFsaWRhdGVUcmlnZ2VyID0gJ29uQ2hhbmdlJywgfSA9IGNvbmZpZztcbiAgICBjb25zdCBmb3JtQ29yZSA9IHVzZUZvcm1Db3JlKGNvbmZpZyk7XG4gICAgY29uc3QgeyBzdG9yZSB9ID0gZm9ybUNvcmU7XG4gICAgLy8gRXBvY2ggb2YgdGhlIExBVEVTVCBhc3luYyBydW4gdGhhdCByYWlzZWQgZWFjaCBmaWVsZCdzIGB2YWxpZGF0aW5nYCBmbGFnLlxuICAgIC8vIEEgc2V0dGxpbmcgcnVuIGNsZWFycyB0aGUgZmxhZyBvbmx5IHdoaWxlIGl0IGlzIHN0aWxsIHRoZSBsYXRlc3QgcmFpc2VyIOKAlFxuICAgIC8vIGFuIG9sZGVyIHJ1biBtdXN0IG5vdCBibGFuayB0aGUgc3Bpbm5lciBvZiBhIG5ld2VyIG9uZSwgYW5kIGEgcnVuXG4gICAgLy8gc3VwZXJzZWRlZCBieSBhIFNZTkMgY29tbWl0ICh3aGljaCBuZXZlciB0b3VjaGVzIGZsYWdzKSBtdXN0IHN0aWxsIGNsZWFuXG4gICAgLy8gdXAgYWZ0ZXIgaXRzZWxmLlxuICAgIGNvbnN0IGxhc3RBc3luY0Vwb2NoUmVmID0gdXNlUmVmKHt9KTtcbiAgICAvLyBNYXJrIGZpZWxkcyBhcyB2YWxpZGF0aW5nIGluIE9ORSBjb21taXQuIHZhbGlkYXRpbmcgLyB0b3VjaGVkIGxpdmUgaW4gdGhlXG4gICAgLy8gc3RvcmUgYWxvbmdzaWRlIHZhbHVlcyDigJQgZmxpcHBpbmcgdGhlbSAoZS5nLiBhc3luYyB2YWxpZGF0aW9uIGFyb3VuZCBhXG4gICAgLy8gYmx1cikgbXVzdCBub3QgcmUtcmVuZGVyIHRoZSBmb3JtIHJvb3QsIG9ubHkgdGhlIGZpZWxkcyB0aGF0IHN1YnNjcmliZWQuXG4gICAgY29uc3QgbWFya1ZhbGlkYXRpbmcgPSB1c2VNZW1vaXplZEZuKChuYW1lcykgPT4ge1xuICAgICAgICBpZiAobmFtZXMubGVuZ3RoID09PSAwKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCBuZXh0ID0gT2JqZWN0LmFzc2lnbih7fSwgc3RvcmUuZ2V0U3RhdGUoKS52YWxpZGF0aW5nKTtcbiAgICAgICAgbmFtZXMuZm9yRWFjaCgobmFtZSkgPT4ge1xuICAgICAgICAgICAgbmV4dFtuYW1lXSA9IHRydWU7XG4gICAgICAgIH0pO1xuICAgICAgICBzdG9yZS5zZXRTdGF0ZSh7IHZhbGlkYXRpbmc6IG5leHQgfSk7XG4gICAgfSk7XG4gICAgLy8gRm9sZCBwZXItZmllbGQgcnVsZSBvdXRjb21lcyBpbnRvIEFUIE1PU1Qgb25lIHN0b3JlIGNvbW1pdDogZXJyb3JzIGFuZFxuICAgIC8vIHdhcm5pbmdzIGFyZSBtZXJnZWQgb3ZlciB0aGUgY3VycmVudCBtYXBzIGFuZCB0aGUgYGNsZWFyVmFsaWRhdGluZ2AgZmxhZ3NcbiAgICAvLyBhcmUgcmVtb3ZlZCBpbiB0aGUgU0FNRSBwYXRjaC4gQSBuby1vcCBvdXRjb21lIGNvbW1pdHMgbm90aGluZyBhdCBhbGwg4oCUXG4gICAgLy8gcGVyLWZpZWxkIGNvbW1pdHMgaGVyZSBwcmV2aW91c2x5IG1hZGUgc3VibWl0LXRpbWUgdmFsaWRhdGlvbiBzd2VlcCBldmVyeVxuICAgIC8vIHN1YnNjcmliZXIgTyhmaWVsZHMpIHRpbWVzLlxuICAgIGNvbnN0IGNvbW1pdFJ1bGVPdXRjb21lcyA9IHVzZU1lbW9pemVkRm4oKG91dGNvbWVzLCBjbGVhclZhbGlkYXRpbmcpID0+IHtcbiAgICAgICAgY29uc3Qgc3RhdGUgPSBzdG9yZS5nZXRTdGF0ZSgpO1xuICAgICAgICBsZXQgZXJyb3JzQ2hhbmdlZCA9IGZhbHNlO1xuICAgICAgICBsZXQgd2FybmluZ3NDaGFuZ2VkID0gZmFsc2U7XG4gICAgICAgIGNvbnN0IG5ld0Vycm9ycyA9IE9iamVjdC5hc3NpZ24oe30sIHN0YXRlLmVycm9ycyk7XG4gICAgICAgIGNvbnN0IG5ld1dhcm5pbmdzID0gT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUud2FybmluZ3MpO1xuICAgICAgICBmb3IgKGNvbnN0IHsgbmFtZSwgZXJyb3IsIHdhcm5pbmcgfSBvZiBvdXRjb21lcykge1xuICAgICAgICAgICAgaWYgKGVycm9yID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgaWYgKG5hbWUgaW4gbmV3RXJyb3JzKSB7XG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBuZXdFcnJvcnNbbmFtZV07XG4gICAgICAgICAgICAgICAgICAgIGVycm9yc0NoYW5nZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKCFzYW1lVmFsaWRhdGlvbk5vZGUobmV3RXJyb3JzW25hbWVdLCBlcnJvcikpIHtcbiAgICAgICAgICAgICAgICBuZXdFcnJvcnNbbmFtZV0gPSBlcnJvcjtcbiAgICAgICAgICAgICAgICBlcnJvcnNDaGFuZ2VkID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh3YXJuaW5nID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgaWYgKG5hbWUgaW4gbmV3V2FybmluZ3MpIHtcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlIG5ld1dhcm5pbmdzW25hbWVdO1xuICAgICAgICAgICAgICAgICAgICB3YXJuaW5nc0NoYW5nZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKCFzYW1lVmFsaWRhdGlvbk5vZGUobmV3V2FybmluZ3NbbmFtZV0sIHdhcm5pbmcpKSB7XG4gICAgICAgICAgICAgICAgbmV3V2FybmluZ3NbbmFtZV0gPSB3YXJuaW5nO1xuICAgICAgICAgICAgICAgIHdhcm5pbmdzQ2hhbmdlZCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZmxhZ3NUb0NsZWFyID0gY2xlYXJWYWxpZGF0aW5nLmZpbHRlcigobmFtZSkgPT4gbmFtZSBpbiBzdGF0ZS52YWxpZGF0aW5nKTtcbiAgICAgICAgY29uc3QgcGF0Y2ggPSB7fTtcbiAgICAgICAgaWYgKGVycm9yc0NoYW5nZWQpXG4gICAgICAgICAgICBwYXRjaC5lcnJvcnMgPSBuZXdFcnJvcnM7XG4gICAgICAgIGlmICh3YXJuaW5nc0NoYW5nZWQpXG4gICAgICAgICAgICBwYXRjaC53YXJuaW5ncyA9IG5ld1dhcm5pbmdzO1xuICAgICAgICBpZiAoZmxhZ3NUb0NsZWFyLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IG5ld1ZhbGlkYXRpbmcgPSBPYmplY3QuYXNzaWduKHt9LCBzdGF0ZS52YWxpZGF0aW5nKTtcbiAgICAgICAgICAgIGZsYWdzVG9DbGVhci5mb3JFYWNoKChuYW1lKSA9PiB7XG4gICAgICAgICAgICAgICAgZGVsZXRlIG5ld1ZhbGlkYXRpbmdbbmFtZV07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHBhdGNoLnZhbGlkYXRpbmcgPSBuZXdWYWxpZGF0aW5nO1xuICAgICAgICB9XG4gICAgICAgIGlmIChPYmplY3Qua2V5cyhwYXRjaCkubGVuZ3RoID4gMClcbiAgICAgICAgICAgIHN0b3JlLnNldFN0YXRlKHBhdGNoKTtcbiAgICB9KTtcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyBBc3luYyBmaWVsZCB2YWxpZGF0aW9uIOKAkyBlYWNoIHJ1bGUgaXMgcHJvY2Vzc2VkIGV4YWN0bHkgb25jZVxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIGNvbnN0IHZhbGlkYXRlRmllbGRBc3luYyA9IHVzZU1lbW9pemVkRm4oKG5hbWUsIHZhbHVlLCBydWxlcykgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKCFydWxlcyB8fCBydWxlcy5sZW5ndGggPT09IDApXG4gICAgICAgICAgICByZXR1cm4geyBpc1ZhbGlkOiB0cnVlLCBlcnJvcjogbnVsbCB9O1xuICAgICAgICAvLyBDYXB0dXJlIHRoaXMgcnVuJ3MgZXBvY2g6IGlmIGEgTkVXRVIgcnVuIChzeW5jIG9yIGFzeW5jKSBzdGFydHMgZm9yXG4gICAgICAgIC8vIHRoZSBmaWVsZCBiZWZvcmUgdGhpcyBvbmUgc2V0dGxlcywgdGhlIG91dGNvbWUgYmVsb3cgaXMgc3RhbGUgYW5kIGlzXG4gICAgICAgIC8vIGRpc2NhcmRlZCBpbnN0ZWFkIG9mIG92ZXJ3cml0aW5nIHRoZSBuZXdlciByZXN1bHQuXG4gICAgICAgIGNvbnN0IGVwb2NoID0gZm9ybUNvcmUuYmVnaW5WYWxpZGF0aW9uUnVuKG5hbWUpO1xuICAgICAgICAvLyBSZXNvbHZlIG9uY2U6IHRoZSBmbGFnIGRlY2lzaW9uIG5lZWRzIHJlc29sdmVkIHJ1bGVzLCBhbmQgcGFzc2luZyB0aGVcbiAgICAgICAgLy8gcmVzb2x2ZWQgYXJyYXkgb253YXJkIHNwYXJlcyB0aGUgZW5naW5lIGEgcmUtcmVzb2x1dGlvbi5cbiAgICAgICAgY29uc3QgdmFsdWVzID0gZm9ybUNvcmUuZ2V0RmllbGRzVmFsdWUoKTtcbiAgICAgICAgY29uc3QgcmVzb2x2ZWQgPSByZXNvbHZlUnVsZXMocnVsZXMsIHZhbHVlcywgZm9ybUNvcmUuZ2V0UnVsZUNvbnRleHRJbnN0YW5jZSgpKTtcbiAgICAgICAgY29uc3QgZmxhZ2dlZCA9IGhhc1Jlc29sdmVkVmFsaWRhdG9yKHJlc29sdmVkKSA/IFtuYW1lXSA6IFtdO1xuICAgICAgICBtYXJrVmFsaWRhdGluZyhmbGFnZ2VkKTtcbiAgICAgICAgZmxhZ2dlZC5mb3JFYWNoKChmbGFnZ2VkTmFtZSkgPT4ge1xuICAgICAgICAgICAgbGFzdEFzeW5jRXBvY2hSZWYuY3VycmVudFtmbGFnZ2VkTmFtZV0gPSBlcG9jaDtcbiAgICAgICAgfSk7XG4gICAgICAgIGxldCBvdXRjb21lID0geyBuYW1lLCBlcnJvcjogbnVsbCwgd2FybmluZzogbnVsbCB9O1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgeyBlcnJvciwgd2FybmluZyB9ID0geWllbGQgcnVuUnVsZXNBc3luYyhuYW1lLCB2YWx1ZSwgdmFsdWVzLCByZXNvbHZlZCwgZm9ybUNvcmUuZ2V0UnVsZUNvbnRleHRJbnN0YW5jZSgpKTtcbiAgICAgICAgICAgIG91dGNvbWUgPSB7IG5hbWUsIGVycm9yLCB3YXJuaW5nIH07XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgLy8gVGhlIGVuZ2luZSBjb250YWlucyBydWxlLWxldmVsIHRocm93cyBpdHNlbGY7IHRoaXMgaXMgYSBsYXN0LXJlc29ydFxuICAgICAgICAgICAgLy8gbmV0IHNvIGFuIHVuZXhwZWN0ZWQgZmFpbHVyZSBzdXJmYWNlcyBhcyBhIGZpZWxkIGVycm9yIGluc3RlYWQgb2ZcbiAgICAgICAgICAgIC8vIGxlYXZpbmcgdGhlIGZpZWxkIG1hcmtlZCB2YWxpZC5cbiAgICAgICAgICAgIG91dGNvbWUgPSB7IG5hbWUsIGVycm9yOiAoX2EgPSBjb2VyY2VGYWlsdXJlUmVhc29uKGVycikpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6ICdWYWxpZGF0aW9uIGZhaWxlZCcsIHdhcm5pbmc6IG51bGwgfTtcbiAgICAgICAgfVxuICAgICAgICBmaW5hbGx5IHtcbiAgICAgICAgICAgIGNvbnN0IGlzQ3VycmVudCA9IGZvcm1Db3JlLmlzVmFsaWRhdGlvblJ1bkN1cnJlbnQobmFtZSwgZXBvY2gpO1xuICAgICAgICAgICAgY29uc3QgY2xlYXJGbGFncyA9IGZsYWdnZWQuZmlsdGVyKChmbGFnZ2VkTmFtZSkgPT4gbGFzdEFzeW5jRXBvY2hSZWYuY3VycmVudFtmbGFnZ2VkTmFtZV0gPT09IGVwb2NoKTtcbiAgICAgICAgICAgIGNvbW1pdFJ1bGVPdXRjb21lcyhpc0N1cnJlbnQgPyBbb3V0Y29tZV0gOiBbXSwgY2xlYXJGbGFncyk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gVGhlIENBTExFUiBnZXRzIHRoaXMgcnVuJ3Mgb3duIHJlc3VsdCBlaXRoZXIgd2F5IChpdHMgcHJvbWlzZSBpc1xuICAgICAgICAvLyBhYm91dCB0aGUgdmFsdWUgaXQgd2FzIGFza2VkIHRvIHZhbGlkYXRlKTsgb25seSB0aGUgU1RPUkUgY29tbWl0IGlzXG4gICAgICAgIC8vIHN0YWxlbmVzcy1ndWFyZGVkLlxuICAgICAgICByZXR1cm4geyBpc1ZhbGlkOiBvdXRjb21lLmVycm9yID09PSBudWxsLCBlcnJvcjogb3V0Y29tZS5lcnJvciB9O1xuICAgIH0pKTtcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyBBc3luYyBmaWVsZCBibHVyIGhhbmRsZXJcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBjb25zdCBoYW5kbGVGaWVsZEJsdXIgPSB1c2VFdmVudENhbGxiYWNrKChuYW1lLCBmaWVsZFRyaWdnZXIpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCB0b3VjaGVkID0gc3RvcmUuZ2V0U3RhdGUoKS50b3VjaGVkO1xuICAgICAgICBpZiAoIXRvdWNoZWRbbmFtZV0pIHtcbiAgICAgICAgICAgIHN0b3JlLnNldFN0YXRlKHsgdG91Y2hlZDogT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCB0b3VjaGVkKSwgeyBbbmFtZV06IHRydWUgfSkgfSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcnVsZXMgPSBmb3JtQ29yZS5nZXRGaWVsZFJ1bGVzKG5hbWUpO1xuICAgICAgICBpZiAoIXJ1bGVzKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCB2YWx1ZXMgPSBmb3JtQ29yZS5nZXRGaWVsZHNWYWx1ZSgpO1xuICAgICAgICBjb25zdCBhcHBsaWNhYmxlID0gZmlsdGVyUnVsZXNCeVRyaWdnZXIocmVzb2x2ZVJ1bGVzKHJ1bGVzLCB2YWx1ZXMsIGZvcm1Db3JlLmdldFJ1bGVDb250ZXh0SW5zdGFuY2UoKSksICdvbkJsdXInLCBub3JtYWxpemVUcmlnZ2VycyhmaWVsZFRyaWdnZXIsIHZhbGlkYXRlVHJpZ2dlciksIG5hbWUpO1xuICAgICAgICBpZiAoYXBwbGljYWJsZS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB5aWVsZCB2YWxpZGF0ZUZpZWxkQXN5bmMobmFtZSwgcmVzb2x2ZVZhbHVlKHZhbHVlcywgbmFtZSksIGFwcGxpY2FibGUpO1xuICAgICAgICB9XG4gICAgfSkpO1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vIFZhbGlkYXRlIGFsbCBmaWVsZHMgYXN5bmNcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBjb25zdCB2YWxpZGF0ZUZpZWxkc0FzeW5jID0gdXNlTWVtb2l6ZWRGbigobmFtZUxpc3QpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCBmaWVsZHNUb1ZhbGlkYXRlID0gbmFtZUxpc3QgfHwgT2JqZWN0LmtleXMoZm9ybUNvcmUuZmllbGRSdWxlcyk7XG4gICAgICAgIGNvbnN0IGZpZWxkRXJyb3JzID0ge307XG4gICAgICAgIC8vIFJlc29sdmUgZXZlcnkgZmllbGQgb25jZSB1cCBmcm9udDogdGhlIGZsYWcgZGVjaXNpb24gbmVlZHMgcmVzb2x2ZWRcbiAgICAgICAgLy8gcnVsZXMsIGFuZCB0aGUgcmVzb2x2ZWQgYXJyYXlzIGFyZSByZXVzZWQgZm9yIHRoZSBhY3R1YWwgcnVucy4gRWFjaFxuICAgICAgICAvLyBmaWVsZCBhbHNvIGNhcHR1cmVzIGl0cyB2YWxpZGF0aW9uIGVwb2NoIOKAlCBhIGZpZWxkIHdob3NlIHZhbHVlXG4gICAgICAgIC8vIGNoYW5nZXMgbWlkLXN1Ym1pdCBnZXRzIGEgbmV3ZXIgcnVuLCBhbmQgdGhpcyBydW4ncyBzdGFsZSBvdXRjb21lXG4gICAgICAgIC8vIG11c3Qgbm90IG92ZXJ3cml0ZSBpdCBpbiB0aGUgc3RvcmUuXG4gICAgICAgIGNvbnN0IHJlc29sdmVkQnlGaWVsZCA9IG5ldyBNYXAoKTtcbiAgICAgICAgY29uc3QgZXBvY2hCeUZpZWxkID0gbmV3IE1hcCgpO1xuICAgICAgICBmb3IgKGNvbnN0IG5hbWUgb2YgZmllbGRzVG9WYWxpZGF0ZSkge1xuICAgICAgICAgICAgY29uc3QgcnVsZXMgPSBmb3JtQ29yZS5maWVsZFJ1bGVzW25hbWVdO1xuICAgICAgICAgICAgaWYgKHJ1bGVzKSB7XG4gICAgICAgICAgICAgICAgZXBvY2hCeUZpZWxkLnNldChuYW1lLCBmb3JtQ29yZS5iZWdpblZhbGlkYXRpb25SdW4obmFtZSkpO1xuICAgICAgICAgICAgICAgIHJlc29sdmVkQnlGaWVsZC5zZXQobmFtZSwgcmVzb2x2ZVJ1bGVzKHJ1bGVzLCBmb3JtQ29yZS5nZXRGaWVsZHNWYWx1ZSgpLCBmb3JtQ29yZS5nZXRSdWxlQ29udGV4dEluc3RhbmNlKCkpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBPbmUgY29tbWl0IHRvIHJhaXNlIHRoZSB2YWxpZGF0aW5nIGZsYWdzICh2YWxpZGF0b3ItYmVhcmluZyBmaWVsZHNcbiAgICAgICAgLy8gb25seSksIG9uZSBjb21taXQgdG8gbGFuZCBldmVyeSBlcnJvci93YXJuaW5nIGFuZCBjbGVhciB0aGUgZmxhZ3MuXG4gICAgICAgIGNvbnN0IGZsYWdnZWQgPSBmaWVsZHNUb1ZhbGlkYXRlLmZpbHRlcigobmFtZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcmVzb2x2ZWQgPSByZXNvbHZlZEJ5RmllbGQuZ2V0KG5hbWUpO1xuICAgICAgICAgICAgcmV0dXJuIHJlc29sdmVkID8gaGFzUmVzb2x2ZWRWYWxpZGF0b3IocmVzb2x2ZWQpIDogZmFsc2U7XG4gICAgICAgIH0pO1xuICAgICAgICBtYXJrVmFsaWRhdGluZyhmbGFnZ2VkKTtcbiAgICAgICAgZmxhZ2dlZC5mb3JFYWNoKChuYW1lKSA9PiB7XG4gICAgICAgICAgICBsYXN0QXN5bmNFcG9jaFJlZi5jdXJyZW50W25hbWVdID0gZXBvY2hCeUZpZWxkLmdldChuYW1lKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IG91dGNvbWVzID0gW107XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICB5aWVsZCBQcm9taXNlLmFsbChmaWVsZHNUb1ZhbGlkYXRlLm1hcCgobmFtZSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc29sdmVkID0gcmVzb2x2ZWRCeUZpZWxkLmdldChuYW1lKTtcbiAgICAgICAgICAgICAgICBpZiAoIXJlc29sdmVkKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgbGV0IGVycm9yID0gbnVsbDtcbiAgICAgICAgICAgICAgICBsZXQgd2FybmluZyA9IG51bGw7XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgKHsgZXJyb3IsIHdhcm5pbmcgfSA9IHlpZWxkIHJ1blJ1bGVzQXN5bmMobmFtZSwgcmVzb2x2ZVZhbHVlKGZvcm1Db3JlLmdldEZpZWxkc1ZhbHVlKCksIG5hbWUpLCBmb3JtQ29yZS5nZXRGaWVsZHNWYWx1ZSgpLCByZXNvbHZlZCwgZm9ybUNvcmUuZ2V0UnVsZUNvbnRleHRJbnN0YW5jZSgpKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gTGFzdC1yZXNvcnQgbmV0IChzZWUgdmFsaWRhdGVGaWVsZEFzeW5jKSDigJQga2VlcCB0aGUgbm9ybWFsXG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnN0cnVjdGVkLWVycm9yIGZsb3cgc28gb25GaW5pc2hGYWlsZWQgZ2V0cyBhIHJlYWwgcGF5bG9hZC5cbiAgICAgICAgICAgICAgICAgICAgZXJyb3IgPSAoX2EgPSBjb2VyY2VGYWlsdXJlUmVhc29uKGVycikpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6ICdWYWxpZGF0aW9uIGZhaWxlZCc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIFRoZSBzdG9yZSBjb21taXQgaXMgc3RhbGVuZXNzLWd1YXJkZWQ7IHRoZSBTVUJNSVQgZGVjaXNpb25cbiAgICAgICAgICAgICAgICAvLyAoZmllbGRFcnJvcnMgLyB0aGUgdGhyb3duIEZvcm1WYWxpZGF0aW9uRXJyb3IpIHN0aWxsIHJlZmxlY3RzXG4gICAgICAgICAgICAgICAgLy8gdGhpcyBydW4ncyBvd24gcmVzdWx0cyBmb3IgdGhlIHZhbHVlcyBpdCB2YWxpZGF0ZWQuXG4gICAgICAgICAgICAgICAgY29uc3QgZXBvY2ggPSBlcG9jaEJ5RmllbGQuZ2V0KG5hbWUpO1xuICAgICAgICAgICAgICAgIGlmIChlcG9jaCAhPT0gdW5kZWZpbmVkICYmIGZvcm1Db3JlLmlzVmFsaWRhdGlvblJ1bkN1cnJlbnQobmFtZSwgZXBvY2gpKSB7XG4gICAgICAgICAgICAgICAgICAgIG91dGNvbWVzLnB1c2goeyBuYW1lLCBlcnJvciwgd2FybmluZyB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGVycm9yICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkRXJyb3JzW25hbWVdID0gZXJyb3I7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSkpKTtcbiAgICAgICAgfVxuICAgICAgICBmaW5hbGx5IHtcbiAgICAgICAgICAgIGNvbnN0IGNsZWFyRmxhZ3MgPSBmbGFnZ2VkLmZpbHRlcigobmFtZSkgPT4gbGFzdEFzeW5jRXBvY2hSZWYuY3VycmVudFtuYW1lXSA9PT0gZXBvY2hCeUZpZWxkLmdldChuYW1lKSk7XG4gICAgICAgICAgICBjb21taXRSdWxlT3V0Y29tZXMob3V0Y29tZXMsIGNsZWFyRmxhZ3MpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChPYmplY3Qua2V5cyhmaWVsZEVycm9ycykubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEZvcm1WYWxpZGF0aW9uRXJyb3IoZm9ybUNvcmUuZ2V0RmllbGRzVmFsdWUoKSwgZmllbGRFcnJvcnMpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChuYW1lTGlzdCkge1xuICAgICAgICAgICAgcmV0dXJuIG5hbWVMaXN0LnJlZHVjZSgoYWNjLCBuYW1lKSA9PiB7XG4gICAgICAgICAgICAgICAgYWNjW25hbWVdID0gcmVzb2x2ZVZhbHVlKGZvcm1Db3JlLmdldEZpZWxkc1ZhbHVlKCksIG5hbWUpO1xuICAgICAgICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgICAgICB9LCB7fSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZvcm1Db3JlLmdldEZpZWxkc1ZhbHVlKCk7XG4gICAgfSkpO1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vIGRlZmluZUZpZWxkIOKAkyB1c2VkIGJ5IHN0YW5kYWxvbmUgKG5vbi1Qcm9Gb3JtKSBjb25zdW1lcnNcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBjb25zdCBkZWZpbmVGaWVsZCA9IHVzZU1lbW9pemVkRm4oKG5hbWUsIGZpZWxkT3B0aW9ucyA9IHt9KSA9PiB7XG4gICAgICAgIGNvbnN0IHsgcnVsZXMgPSBbXSB9ID0gZmllbGRPcHRpb25zO1xuICAgICAgICBjb25zdCBGaWVsZENvbXBvbmVudCA9IG1lbW8oKF9hKSA9PiB7XG4gICAgICAgICAgICB2YXIgeyBjaGlsZHJlbiwgcmVuZGVyIH0gPSBfYSwgcHJvcHMgPSBfX3Jlc3QoX2EsIFtcImNoaWxkcmVuXCIsIFwicmVuZGVyXCJdKTtcbiAgICAgICAgICAgIC8vIFBlci1maWVsZCBzdG9yZSBzdWJzY3JpcHRpb246IHRoaXMgZmllbGQgcmUtcmVuZGVycyBvbmx5IHdoZW4gaXRzXG4gICAgICAgICAgICAvLyBvd24gdmFsdWUvZXJyb3IvdG91Y2hlZC92YWxpZGF0aW5nIHNsaWNlIGNoYW5nZXMuIERvdC1wYXRoc1xuICAgICAgICAgICAgLy8gcmVzb2x2ZSBpbnRvIHRoZSBuZXN0ZWQgdmFsdWVzIGxpa2UgZXZlcnl3aGVyZSBlbHNlLlxuICAgICAgICAgICAgY29uc3QgW2ZpZWxkVmFsdWUsIGZpZWxkRXJyb3IsIGZpZWxkVG91Y2hlZCwgZmllbGRWYWxpZGF0aW5nXSA9IHVzZVN0b3JlU2VsZWN0b3Ioc3RvcmUsIChzdGF0ZSkgPT4ge1xuICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICAgICAgICAoX2EgPSByZXNvbHZlVmFsdWUoc3RhdGUudmFsdWVzLCBuYW1lKSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogJycsXG4gICAgICAgICAgICAgICAgICAgIHN0YXRlLmVycm9yc1tuYW1lXSxcbiAgICAgICAgICAgICAgICAgICAgc3RhdGUudG91Y2hlZFtuYW1lXSxcbiAgICAgICAgICAgICAgICAgICAgc3RhdGUudmFsaWRhdGluZ1tuYW1lXSxcbiAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgfSwgc2hhbGxvd0VxdWFsQXJyYXlzKTtcbiAgICAgICAgICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgLy8gTW91bnQtY291bnRlZDogcmVsZWFzZUZpZWxkIHJlbW92ZXMgdGhlIHJ1bGVzIG9ubHkgd2hlbiB0aGVcbiAgICAgICAgICAgICAgICAvLyBMQVNUIHNhbWUtbmFtZSBpbnN0YW5jZSB1bm1vdW50cyDigJQgYW4gaW5zdGFuY2UgdGhhdCBwaWdneWJhY2tlZFxuICAgICAgICAgICAgICAgIC8vIG9uIGFuIGV4aXN0aW5nIHJlZ2lzdHJhdGlvbiAoZS5nLiBhIFByb0Zvcm0uSXRlbSdzKSBjYW4gbmV2ZXJcbiAgICAgICAgICAgICAgICAvLyB3aXBlIGl0IG9uIGl0cyBvd24gdW5tb3VudC5cbiAgICAgICAgICAgICAgICBmb3JtQ29yZS5yZXRhaW5GaWVsZChuYW1lKTtcbiAgICAgICAgICAgICAgICBjb25zdCBleGlzdGluZ1J1bGVzID0gZm9ybUNvcmUuZ2V0RmllbGRSdWxlcyhuYW1lKTtcbiAgICAgICAgICAgICAgICBpZiAoIWV4aXN0aW5nUnVsZXMgJiYgcnVsZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICBmb3JtQ29yZS5yZWdpc3RlckZpZWxkKG5hbWUsIHJ1bGVzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgZm9ybUNvcmUucmVsZWFzZUZpZWxkKG5hbWUpO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9LCBbXSk7IC8vIE9ubHkgcmVnaXN0ZXIgb24gbW91bnRcbiAgICAgICAgICAgIGNvbnN0IGhhbmRsZUZpZWxkQ2hhbmdlID0gdXNlRXZlbnRDYWxsYmFjaygodmFsdWUpID0+IHtcbiAgICAgICAgICAgICAgICBmb3JtQ29yZS5zZXRGaWVsZFZhbHVlKG5hbWUsIHZhbHVlKTtcbiAgICAgICAgICAgICAgICAvLyBUb3VjaGVkIGlzIHNldCBieSB0aGUgdXNlciBjaGFuZ2UgdHJpZ2dlciAobWF0Y2hpbmcgdGhlXG4gICAgICAgICAgICAgICAgLy8gUHJvRm9ybS5JdGVtIHBhdGgpIOKAlCBwcm9ncmFtbWF0aWMgc2V0RmllbGRzVmFsdWUgZG9lcyBub3QuXG4gICAgICAgICAgICAgICAgY29uc3QgdG91Y2hlZCA9IHN0b3JlLmdldFN0YXRlKCkudG91Y2hlZDtcbiAgICAgICAgICAgICAgICBpZiAoIXRvdWNoZWRbbmFtZV0pIHtcbiAgICAgICAgICAgICAgICAgICAgc3RvcmUuc2V0U3RhdGUoeyB0b3VjaGVkOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHRvdWNoZWQpLCB7IFtuYW1lXTogdHJ1ZSB9KSB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgYXBwbGljYWJsZSA9IGZpbHRlclJ1bGVzQnlUcmlnZ2VyKHJlc29sdmVSdWxlcyhydWxlcywgZm9ybUNvcmUuZ2V0RmllbGRzVmFsdWUoKSwgZm9ybUNvcmUuZ2V0UnVsZUNvbnRleHRJbnN0YW5jZSgpKSwgJ29uQ2hhbmdlJywgbm9ybWFsaXplVHJpZ2dlcnMoZmllbGRPcHRpb25zLnZhbGlkYXRlVHJpZ2dlciwgdmFsaWRhdGVUcmlnZ2VyKSwgbmFtZSk7XG4gICAgICAgICAgICAgICAgaWYgKGFwcGxpY2FibGUubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBBc3luYyBwYXRoIChtYXRjaGluZyBQcm9Gb3JtLkl0ZW0pIHNvIGEgUHJvbWlzZS1yZXR1cm5pbmdcbiAgICAgICAgICAgICAgICAgICAgLy8gdmFsaWRhdG9yIGlzIGhvbm9yZWQgb24gY2hhbmdlIGluc3RlYWQgb2YgYmVpbmcgc2lsZW50bHlcbiAgICAgICAgICAgICAgICAgICAgLy8gc2tpcHBlZDsgZmlyZS1hbmQtZm9yZ2V0IOKAlCB0aGUgcmVzdWx0IGxhbmRzIG9uIHRoZSBzdG9yZS5cbiAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGVGaWVsZEFzeW5jKG5hbWUsIHZhbHVlLCBhcHBsaWNhYmxlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbnN0IGhhbmRsZUJsdXIgPSB1c2VFdmVudENhbGxiYWNrKCgpID0+IHtcbiAgICAgICAgICAgICAgICBoYW5kbGVGaWVsZEJsdXIobmFtZSwgZmllbGRPcHRpb25zLnZhbGlkYXRlVHJpZ2dlcik7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbnN0IGZpZWxkUHJvcHMgPSBPYmplY3QuYXNzaWduKHsgbmFtZSwgdmFsdWU6IGZpZWxkVmFsdWUsIGVycm9yOiBmaWVsZEVycm9yLCB0b3VjaGVkOiBmaWVsZFRvdWNoZWQsIHZhbGlkYXRpbmc6IGZpZWxkVmFsaWRhdGluZywgb25DaGFuZ2U6IGhhbmRsZUZpZWxkQ2hhbmdlLCBvbkJsdXI6IGhhbmRsZUJsdXIgfSwgcHJvcHMpO1xuICAgICAgICAgICAgY29uc3QgaGFuZGxlTWVyZ2VDaGFuZ2UgPSAoZSkgPT4ge1xuICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGUgJiYgdHlwZW9mIGUgPT09ICdvYmplY3QnICYmICd0YXJnZXQnIGluIGVcbiAgICAgICAgICAgICAgICAgICAgPyBlLnRhcmdldC52YWx1ZVxuICAgICAgICAgICAgICAgICAgICA6IGU7XG4gICAgICAgICAgICAgICAgaGFuZGxlRmllbGRDaGFuZ2UodmFsdWUpO1xuICAgICAgICAgICAgICAgIGlmIChSZWFjdC5pc1ZhbGlkRWxlbWVudChjaGlsZHJlbikgJiZcbiAgICAgICAgICAgICAgICAgICAgKChfYSA9IGNoaWxkcmVuLnByb3BzKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Eub25DaGFuZ2UpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuLnByb3BzLm9uQ2hhbmdlKHZhbHVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgY29uc3QgaGFuZGxlTWVyZ2VCbHVyID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICBoYW5kbGVCbHVyKCk7XG4gICAgICAgICAgICAgICAgaWYgKFJlYWN0LmlzVmFsaWRFbGVtZW50KGNoaWxkcmVuKSAmJlxuICAgICAgICAgICAgICAgICAgICAoKF9hID0gY2hpbGRyZW4ucHJvcHMpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5vbkJsdXIpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuLnByb3BzLm9uQmx1cigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAocmVuZGVyICYmIHR5cGVvZiByZW5kZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVuZGVyKGZpZWxkUHJvcHMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHR5cGVvZiBjaGlsZHJlbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBjaGlsZHJlbihmaWVsZFByb3BzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIEVsZW1lbnQgY2hpbGRyZW4gcmVjZWl2ZSBvbmx5IERPTS1zYWZlIHByb3BzIOKAlCBlcnJvci90b3VjaGVkL1xuICAgICAgICAgICAgLy8gdmFsaWRhdGluZyBhcmUgZmllbGQgTUVUQSwgbm90IGNvbnRyb2wgcHJvcHM7IHNwcmVhZGluZyB0aGVtIG9udG9cbiAgICAgICAgICAgIC8vIGEgaG9zdCBlbGVtZW50IHdvdWxkIGxlYWsgYW55IGF0dHJpYnV0ZXMuIFJlbmRlci1wcm9wIGFuZFxuICAgICAgICAgICAgLy8gZnVuY3Rpb24gY2hpbGRyZW4ga2VlcCB0aGUgZnVsbCBmaWVsZFByb3BzLlxuICAgICAgICAgICAgY29uc3QgZG9tU2FmZVByb3BzID0gT2JqZWN0LmFzc2lnbih7IG5hbWUsIHZhbHVlOiBmaWVsZFZhbHVlLCBvbkNoYW5nZTogaGFuZGxlTWVyZ2VDaGFuZ2UsIG9uQmx1cjogaGFuZGxlTWVyZ2VCbHVyIH0sIHByb3BzKTtcbiAgICAgICAgICAgIGlmIChSZWFjdC5pc1ZhbGlkRWxlbWVudChjaGlsZHJlbikpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gUmVhY3QuY2xvbmVFbGVtZW50KGNoaWxkcmVuLCBkb21TYWZlUHJvcHMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoY2hpbGRyZW4pKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoRnJhZ21lbnQsIG51bGwsIC4uLmNoaWxkcmVuLm1hcCgoY2hpbGQsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChSZWFjdC5pc1ZhbGlkRWxlbWVudChjaGlsZCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBSZWFjdC5jbG9uZUVsZW1lbnQoY2hpbGQsIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgZG9tU2FmZVByb3BzKSwgeyBrZXk6IGNoaWxkLmtleSB8fCBpbmRleCB9KSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNoaWxkO1xuICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9KTtcbiAgICAgICAgRmllbGRDb21wb25lbnQuZGlzcGxheU5hbWUgPSBgRmllbGQoJHtuYW1lfSlgO1xuICAgICAgICByZXR1cm4gRmllbGRDb21wb25lbnQ7XG4gICAgfSk7XG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy8gaGFuZGxlU3VibWl0IC8gaGFuZGxlUmVzZXQg4oCTIGZvciA8Zm9ybT4gZXZlbnQgaGFuZGxlcnNcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBjb25zdCBoYW5kbGVTdWJtaXQgPSB1c2VFdmVudENhbGxiYWNrKChlKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgZSA9PT0gbnVsbCB8fCBlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCB2YWxpZGF0ZWRWYWx1ZXMgPSB5aWVsZCB2YWxpZGF0ZUZpZWxkc0FzeW5jKCk7XG4gICAgICAgICAgICBvbkZpbmlzaCA9PT0gbnVsbCB8fCBvbkZpbmlzaCA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25GaW5pc2godmFsaWRhdGVkVmFsdWVzKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAvLyBPbmx5IGEgVkFMSURBVElPTiBmYWlsdXJlIHJlYWNoZXMgb25GaW5pc2hGYWlsZWQg4oCUIGFuIGV4Y2VwdGlvbiBvdXRcbiAgICAgICAgICAgIC8vIG9mIHRoZSBjb25zdW1lcidzIG93biBvbkZpbmlzaCBpcyBub3QgYSB2YWxpZGF0aW9uIHJlc3VsdCBhbmQgaXNcbiAgICAgICAgICAgIC8vIHN1cmZhY2VkIGluc3RlYWQgb2YgYmVpbmcgbWlzcmVwb3J0ZWQuXG4gICAgICAgICAgICBpZiAoZXJyIGluc3RhbmNlb2YgRm9ybVZhbGlkYXRpb25FcnJvcikge1xuICAgICAgICAgICAgICAgIG9uRmluaXNoRmFpbGVkID09PSBudWxsIHx8IG9uRmluaXNoRmFpbGVkID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkZpbmlzaEZhaWxlZCh7IHZhbHVlczogZXJyLnZhbHVlcywgZXJyb3JzOiBlcnIuZXJyb3JzIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignW1Byb0Zvcm1dIG9uRmluaXNoIHRocmV3IGR1cmluZyBzdWJtaXQ6JywgZXJyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pKTtcbiAgICBjb25zdCBoYW5kbGVSZXNldCA9IHVzZUV2ZW50Q2FsbGJhY2soKGUpID0+IHtcbiAgICAgICAgZSA9PT0gbnVsbCB8fCBlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGZvcm1Db3JlLnJlc2V0RmllbGRzKCk7XG4gICAgICAgIG9uUmVzZXQgPT09IG51bGwgfHwgb25SZXNldCA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25SZXNldCgpO1xuICAgIH0pO1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vIEZvcm1JbnN0YW5jZSDigJMgZW5oYW5jZWQgQVBJIGZvciBjb25zdW1lcnMuXG4gICAgLy9cbiAgICAvLyBFdmVyeSBtZXRob2QgaXMgd3JhcHBlZCBpbiB1c2VNZW1vaXplZEZuIChzdGFibGUgaWRlbnRpdHksIGFsd2F5cyByZWFkcyB0aGVcbiAgICAvLyBsYXRlc3Qgc3RvcmUgc3RhdGUpIHNvIHRoZSBpbnN0YW5jZSBvYmplY3QgaXRzZWxmIGlzIElERU5USVRZLVNUQUJMRSBmb3JcbiAgICAvLyB0aGUgbGlmZXRpbWUgb2YgdGhlIGZvcm0g4oCUIHRoaXMgaXMgd2hhdCBsZXRzIFByb0Zvcm0gcHVibGlzaCBpdCB0aHJvdWdoIHRoZVxuICAgIC8vIHN0YWJsZSBjb250ZXh0IHdpdGhvdXQgcmUtcmVuZGVyaW5nIHN1YnNjcmliZXJzIG9uIGVhY2gga2V5c3Ryb2tlLlxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIGNvbnN0IGdldEZpZWxkRXJyb3IgPSB1c2VNZW1vaXplZEZuKChuYW1lKSA9PiBzdG9yZS5nZXRTdGF0ZSgpLmVycm9yc1tuYW1lXSk7XG4gICAgY29uc3QgZ2V0RmllbGRXYXJuaW5nID0gdXNlTWVtb2l6ZWRGbigobmFtZSkgPT4gc3RvcmUuZ2V0U3RhdGUoKS53YXJuaW5nc1tuYW1lXSk7XG4gICAgY29uc3QgZ2V0RmllbGRzRXJyb3IgPSB1c2VNZW1vaXplZEZuKChuYW1lTGlzdCkgPT4ge1xuICAgICAgICBjb25zdCBlcnJvcnMgPSBzdG9yZS5nZXRTdGF0ZSgpLmVycm9ycztcbiAgICAgICAgaWYgKCFuYW1lTGlzdClcbiAgICAgICAgICAgIHJldHVybiBlcnJvcnM7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHt9O1xuICAgICAgICBuYW1lTGlzdC5mb3JFYWNoKChuYW1lKSA9PiB7XG4gICAgICAgICAgICBpZiAoZXJyb3JzW25hbWVdKSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0W25hbWVdID0gZXJyb3JzW25hbWVdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9KTtcbiAgICBjb25zdCBpc0ZpZWxkVG91Y2hlZCA9IHVzZU1lbW9pemVkRm4oKG5hbWUpID0+IHN0b3JlLmdldFN0YXRlKCkudG91Y2hlZFtuYW1lXSB8fCBmYWxzZSk7XG4gICAgY29uc3QgaXNGaWVsZHNUb3VjaGVkID0gdXNlTWVtb2l6ZWRGbigobmFtZUxpc3QsIGFsbEZpZWxkc1RvdWNoZWQgPSBmYWxzZSkgPT4ge1xuICAgICAgICBjb25zdCB0b3VjaGVkID0gc3RvcmUuZ2V0U3RhdGUoKS50b3VjaGVkO1xuICAgICAgICBpZiAoIW5hbWVMaXN0KSB7XG4gICAgICAgICAgICByZXR1cm4gT2JqZWN0LmtleXModG91Y2hlZCkuc29tZSgoa2V5KSA9PiB0b3VjaGVkW2tleV0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhbGxGaWVsZHNUb3VjaGVkKSB7XG4gICAgICAgICAgICByZXR1cm4gbmFtZUxpc3QuZXZlcnkoKG5hbWUpID0+IHRvdWNoZWRbbmFtZV0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuYW1lTGlzdC5zb21lKChuYW1lKSA9PiB0b3VjaGVkW25hbWVdKTtcbiAgICB9KTtcbiAgICBjb25zdCBpc0ZpZWxkVmFsaWRhdGluZyA9IHVzZU1lbW9pemVkRm4oKG5hbWUpID0+IHN0b3JlLmdldFN0YXRlKCkudmFsaWRhdGluZ1tuYW1lXSB8fCBmYWxzZSk7XG4gICAgY29uc3Qgc2V0RmllbGRzRXJyb3IgPSB1c2VNZW1vaXplZEZuKChmaWVsZHNFcnJvcikgPT4ge1xuICAgICAgICBPYmplY3QuZW50cmllcyhmaWVsZHNFcnJvcikuZm9yRWFjaCgoW25hbWUsIGVycm9yXSkgPT4ge1xuICAgICAgICAgICAgZm9ybUNvcmUuc2V0RmllbGRFcnJvcihuYW1lLCBlcnJvcik7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICAgIGNvbnN0IHNldEZpZWxkVG91Y2hlZCA9IHVzZU1lbW9pemVkRm4oKG5hbWUsIGlzVG91Y2hlZCA9IHRydWUpID0+IHtcbiAgICAgICAgc3RvcmUuc2V0U3RhdGUoeyB0b3VjaGVkOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHN0b3JlLmdldFN0YXRlKCkudG91Y2hlZCksIHsgW25hbWVdOiBpc1RvdWNoZWQgfSkgfSk7XG4gICAgfSk7XG4gICAgY29uc3Qgc2V0RmllbGRzVG91Y2hlZCA9IHVzZU1lbW9pemVkRm4oKGZpZWxkc1RvdWNoKSA9PiB7XG4gICAgICAgIHN0b3JlLnNldFN0YXRlKHsgdG91Y2hlZDogT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBzdG9yZS5nZXRTdGF0ZSgpLnRvdWNoZWQpLCBmaWVsZHNUb3VjaCkgfSk7XG4gICAgfSk7XG4gICAgY29uc3QgcmVzZXRGb3JtRmllbGRzID0gdXNlTWVtb2l6ZWRGbigoZmllbGRzKSA9PiB7XG4gICAgICAgIGlmICghZmllbGRzKSB7XG4gICAgICAgICAgICBmb3JtQ29yZS5yZXNldEZpZWxkcygpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIC8vIE1vdW50LWZyb3plbiBpbml0aWFsVmFsdWVzIOKAlCBjb25zaXN0ZW50IHdpdGggdGhlIGZ1bGwgcmVzZXRGaWVsZHMuXG4gICAgICAgIC8vIFJlYWRzIEFORCB3cml0ZXMgYXJlIG5lc3RlZC1wYXRoIGF3YXJlLCBzbyBkb3QtcGF0aCBuYW1lc1xuICAgICAgICAvLyAoYGFkZHJlc3MuY2l0eWAsIGBpdGVtcy4wLnRpdGxlYCkgcmVzZXQgY29ycmVjdGx5IGluc3RlYWQgb2YgcHJvYmluZyBhXG4gICAgICAgIC8vIGxpdGVyYWwga2V5IGFuZCBzaGFsbG93LW1lcmdpbmcgb25lIGJhY2suXG4gICAgICAgIGNvbnN0IGluaXRpYWxWYWx1ZXMgPSBmb3JtQ29yZS5nZXRJbml0aWFsVmFsdWVzKCk7XG4gICAgICAgIGNvbnN0IHN0YXRlID0gc3RvcmUuZ2V0U3RhdGUoKTtcbiAgICAgICAgbGV0IG5ld1ZhbHVlcyA9IHN0YXRlLnZhbHVlcztcbiAgICAgICAgZmllbGRzLmZvckVhY2goKGZpZWxkKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBpbml0aWFsID0gcmVzb2x2ZVZhbHVlKGluaXRpYWxWYWx1ZXMsIGZpZWxkKTtcbiAgICAgICAgICAgIG5ld1ZhbHVlcyA9IGZpZWxkLmluY2x1ZGVzKCcuJylcbiAgICAgICAgICAgICAgICA/IHNldE5lc3RlZFZhbHVlKG5ld1ZhbHVlcywgZmllbGQsIGluaXRpYWwpXG4gICAgICAgICAgICAgICAgOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIG5ld1ZhbHVlcyksIHsgW2ZpZWxkXTogaW5pdGlhbCB9KTtcbiAgICAgICAgfSk7XG4gICAgICAgIC8vIExpa2UgdGhlIGZ1bGwgcmVzZXQ6IGNsZWFyIEFMTCBwZXItZmllbGQgbWV0YSAoZXJyb3JzIEFORCB3YXJuaW5ncyBBTkRcbiAgICAgICAgLy8gdG91Y2hlZC92YWxpZGF0aW5nKSwgaW52YWxpZGF0ZSBpbi1mbGlnaHQgdmFsaWRhdGlvbiBydW5zLCBhbmQgbGFuZFxuICAgICAgICAvLyBldmVyeXRoaW5nIGluIE9ORSBjb21taXQuIE5vIG9uVmFsdWVzQ2hhbmdlIOKAlCByZXNldCBpcyBub3QgYSBjaGFuZ2VcbiAgICAgICAgLy8gZXZlbnQgb24gZWl0aGVyIHBhdGguXG4gICAgICAgIGZvcm1Db3JlLmludmFsaWRhdGVWYWxpZGF0aW9uUnVucyhmaWVsZHMpO1xuICAgICAgICBjb25zdCBuZXdFcnJvcnMgPSBPYmplY3QuYXNzaWduKHt9LCBzdGF0ZS5lcnJvcnMpO1xuICAgICAgICBjb25zdCBuZXdXYXJuaW5ncyA9IE9iamVjdC5hc3NpZ24oe30sIHN0YXRlLndhcm5pbmdzKTtcbiAgICAgICAgY29uc3QgbmV3VG91Y2hlZCA9IE9iamVjdC5hc3NpZ24oe30sIHN0YXRlLnRvdWNoZWQpO1xuICAgICAgICBjb25zdCBuZXdWYWxpZGF0aW5nID0gT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUudmFsaWRhdGluZyk7XG4gICAgICAgIGZpZWxkcy5mb3JFYWNoKChmaWVsZCkgPT4ge1xuICAgICAgICAgICAgZGVsZXRlIG5ld0Vycm9yc1tmaWVsZF07XG4gICAgICAgICAgICBkZWxldGUgbmV3V2FybmluZ3NbZmllbGRdO1xuICAgICAgICAgICAgZGVsZXRlIG5ld1RvdWNoZWRbZmllbGRdO1xuICAgICAgICAgICAgZGVsZXRlIG5ld1ZhbGlkYXRpbmdbZmllbGRdO1xuICAgICAgICB9KTtcbiAgICAgICAgc3RvcmUuc2V0U3RhdGUoe1xuICAgICAgICAgICAgdmFsdWVzOiBuZXdWYWx1ZXMsXG4gICAgICAgICAgICBlcnJvcnM6IG5ld0Vycm9ycyxcbiAgICAgICAgICAgIHdhcm5pbmdzOiBuZXdXYXJuaW5ncyxcbiAgICAgICAgICAgIHRvdWNoZWQ6IG5ld1RvdWNoZWQsXG4gICAgICAgICAgICB2YWxpZGF0aW5nOiBuZXdWYWxpZGF0aW5nLFxuICAgICAgICB9KTtcbiAgICB9KTtcbiAgICBjb25zdCBzdWJtaXRXaXRoVmFsaWRhdGlvbiA9IHVzZU1lbW9pemVkRm4oKGNhbGxiYWNrKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgbGV0IHZhbGlkYXRlZFZhbHVlcztcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHZhbGlkYXRlZFZhbHVlcyA9IHlpZWxkIHZhbGlkYXRlRmllbGRzQXN5bmMoKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoX2EpIHtcbiAgICAgICAgICAgIC8vIFZhbGlkYXRpb24gZmFpbHVyZSDigJQgdGhlIGZpZWxkIGVycm9ycyBhcmUgYWxyZWFkeSBpbiB0aGUgc3RvcmUuXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjYWxsYmFjaykge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICB5aWVsZCBjYWxsYmFjayh2YWxpZGF0ZWRWYWx1ZXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgIC8vIEEgdGhyb3dpbmcgY2FsbGJhY2sgaXMgYSBjb25zdW1lciBidWcsIG5vdCBhIHZhbGlkYXRpb24gZmFpbHVyZSDigJRcbiAgICAgICAgICAgICAgICAvLyBzdXJmYWNlIGl0IChtaXJyb3JpbmcgcmMtZmllbGQtZm9ybSdzIG9uRmluaXNoIGhhbmRsaW5nKSBpbnN0ZWFkXG4gICAgICAgICAgICAgICAgLy8gb2Ygc3dhbGxvd2luZyBpdCBzaWxlbnRseS5cbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdbUHJvRm9ybV0gc3VibWl0IGNhbGxiYWNrIHRocmV3OicsIGVycik7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsaWRhdGVkVmFsdWVzO1xuICAgIH0pKTtcbiAgICBjb25zdCBmb3JtSW5zdGFuY2UgPSB1c2VNZW1vKCgpID0+IChPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGZvcm1Db3JlLmZvcm1JbnN0YW5jZSksIHsgZ2V0RmllbGRWYWx1ZTogZm9ybUNvcmUuZ2V0RmllbGRWYWx1ZSwgZ2V0RmllbGRzVmFsdWU6IGZvcm1Db3JlLmdldEZpZWxkc1ZhbHVlLCB2YWxpZGF0ZUZpZWxkczogdmFsaWRhdGVGaWVsZHNBc3luYywgc2V0RmllbGRWYWx1ZTogZm9ybUNvcmUuc2V0RmllbGRWYWx1ZSwgc2V0RmllbGRzVmFsdWU6IGZvcm1Db3JlLnNldEZpZWxkc1ZhbHVlLCBnZXRGaWVsZEVycm9yOiBnZXRGaWVsZEVycm9yLCBnZXRGaWVsZFdhcm5pbmc6IGdldEZpZWxkV2FybmluZywgZ2V0RmllbGRzRXJyb3I6IGdldEZpZWxkc0Vycm9yLCBpc0ZpZWxkVG91Y2hlZDogaXNGaWVsZFRvdWNoZWQsIGlzRmllbGRzVG91Y2hlZDogaXNGaWVsZHNUb3VjaGVkLCBpc0ZpZWxkVmFsaWRhdGluZzogaXNGaWVsZFZhbGlkYXRpbmcsIHNldEZpZWxkRXJyb3I6IGZvcm1Db3JlLnNldEZpZWxkRXJyb3IsIHNldEZpZWxkc0Vycm9yLCBzZXRGaWVsZFRvdWNoZWQ6IHNldEZpZWxkVG91Y2hlZCwgc2V0RmllbGRzVG91Y2hlZCwgcmVzZXRGaWVsZHM6IHJlc2V0Rm9ybUZpZWxkcywgc3VibWl0OiBzdWJtaXRXaXRoVmFsaWRhdGlvbiwgZGVmaW5lRmllbGQsIHJlZ2lzdGVyRmllbGQ6IGZvcm1Db3JlLnJlZ2lzdGVyRmllbGQsIHVucmVnaXN0ZXJGaWVsZDogZm9ybUNvcmUudW5yZWdpc3RlckZpZWxkIH0pKSwgW1xuICAgICAgICBmb3JtQ29yZS5mb3JtSW5zdGFuY2UsXG4gICAgICAgIGZvcm1Db3JlLmdldEZpZWxkVmFsdWUsXG4gICAgICAgIGZvcm1Db3JlLmdldEZpZWxkc1ZhbHVlLFxuICAgICAgICBmb3JtQ29yZS5zZXRGaWVsZFZhbHVlLFxuICAgICAgICBmb3JtQ29yZS5zZXRGaWVsZHNWYWx1ZSxcbiAgICAgICAgZm9ybUNvcmUuc2V0RmllbGRFcnJvcixcbiAgICAgICAgZm9ybUNvcmUucmVnaXN0ZXJGaWVsZCxcbiAgICAgICAgZm9ybUNvcmUudW5yZWdpc3RlckZpZWxkLFxuICAgICAgICB2YWxpZGF0ZUZpZWxkc0FzeW5jLFxuICAgICAgICBnZXRGaWVsZEVycm9yLFxuICAgICAgICBnZXRGaWVsZFdhcm5pbmcsXG4gICAgICAgIGdldEZpZWxkc0Vycm9yLFxuICAgICAgICBpc0ZpZWxkVG91Y2hlZCxcbiAgICAgICAgaXNGaWVsZHNUb3VjaGVkLFxuICAgICAgICBpc0ZpZWxkVmFsaWRhdGluZyxcbiAgICAgICAgc2V0RmllbGRzRXJyb3IsXG4gICAgICAgIHNldEZpZWxkVG91Y2hlZCxcbiAgICAgICAgc2V0RmllbGRzVG91Y2hlZCxcbiAgICAgICAgcmVzZXRGb3JtRmllbGRzLFxuICAgICAgICBzdWJtaXRXaXRoVmFsaWRhdGlvbixcbiAgICAgICAgZGVmaW5lRmllbGQsXG4gICAgXSk7XG4gICAgLy8gRnVuY3Rpb24tZm9ybSBydWxlcyBnZXQgdGhlIEZVTEwgZm9ybSBpbnN0YW5jZSAoZXJyb3IgZ2V0dGVycywgdG91Y2hlZFxuICAgIC8vIHN0YXRlLCBtdXRhdG9ycykgaW5zdGVhZCBvZiB0aGUgYmFyZSBjb3JlIG1ldGhvZHMuIFJlZiB3cml0ZSDigJQgY2hlYXAgYW5kXG4gICAgLy8gaWRlbXBvdGVudCBwZXIgcmVuZGVyLlxuICAgIGZvcm1Db3JlLnNldFJ1bGVDb250ZXh0SW5zdGFuY2UoZm9ybUluc3RhbmNlKTtcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyBJbnRlcm5hbHMg4oCTIGV4cG9zZWQgZm9yIFByb0Zvcm0gaW50ZWdyYXRpb24uIERhdGEgZmllbGRzIGFyZSBHRVRURVJTIHRoYXRcbiAgICAvLyByZWFkIHRoZSBsaXZlIHN0b3JlLCBzbyB0aGUgb2JqZWN0IGlzIGlkZW50aXR5LXN0YWJsZSB5ZXQgbmV2ZXIgc3RhbGUuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgY29uc3QgaW50ZXJuYWxzID0gdXNlTWVtbygoKSA9PiAoe1xuICAgICAgICBnZXQgdmFsdWVzKCkge1xuICAgICAgICAgICAgcmV0dXJuIHN0b3JlLmdldFN0YXRlKCkudmFsdWVzO1xuICAgICAgICB9LFxuICAgICAgICBnZXQgZXJyb3JzKCkge1xuICAgICAgICAgICAgcmV0dXJuIHN0b3JlLmdldFN0YXRlKCkuZXJyb3JzO1xuICAgICAgICB9LFxuICAgICAgICBnZXQgd2FybmluZ3MoKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RvcmUuZ2V0U3RhdGUoKS53YXJuaW5ncztcbiAgICAgICAgfSxcbiAgICAgICAgZ2V0IHRvdWNoZWQoKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RvcmUuZ2V0U3RhdGUoKS50b3VjaGVkO1xuICAgICAgICB9LFxuICAgICAgICBnZXQgdmFsaWRhdGluZygpIHtcbiAgICAgICAgICAgIHJldHVybiBzdG9yZS5nZXRTdGF0ZSgpLnZhbGlkYXRpbmc7XG4gICAgICAgIH0sXG4gICAgICAgIGZpZWxkUnVsZXM6IGZvcm1Db3JlLmZpZWxkUnVsZXMsXG4gICAgICAgIHNldEZpZWxkVmFsdWU6IGZvcm1Db3JlLnNldEZpZWxkVmFsdWUsXG4gICAgICAgIHNldEZpZWxkRXJyb3I6IGZvcm1Db3JlLnNldEZpZWxkRXJyb3IsXG4gICAgICAgIHNldEZpZWxkV2FybmluZzogZm9ybUNvcmUuc2V0RmllbGRXYXJuaW5nLFxuICAgICAgICB2YWxpZGF0ZUZpZWxkQXN5bmMsXG4gICAgICAgIHJlZ2lzdGVyRmllbGQ6IGZvcm1Db3JlLnJlZ2lzdGVyRmllbGQsXG4gICAgICAgIHVucmVnaXN0ZXJGaWVsZDogZm9ybUNvcmUudW5yZWdpc3RlckZpZWxkLFxuICAgICAgICByZXRhaW5GaWVsZDogZm9ybUNvcmUucmV0YWluRmllbGQsXG4gICAgICAgIHJlbGVhc2VGaWVsZDogZm9ybUNvcmUucmVsZWFzZUZpZWxkLFxuICAgICAgICBoYW5kbGVTdWJtaXQsXG4gICAgICAgIGhhbmRsZVJlc2V0LFxuICAgIH0pLCBbXG4gICAgICAgIHN0b3JlLFxuICAgICAgICBmb3JtQ29yZS5maWVsZFJ1bGVzLFxuICAgICAgICBmb3JtQ29yZS5zZXRGaWVsZFZhbHVlLFxuICAgICAgICBmb3JtQ29yZS5zZXRGaWVsZEVycm9yLFxuICAgICAgICBmb3JtQ29yZS5zZXRGaWVsZFdhcm5pbmcsXG4gICAgICAgIHZhbGlkYXRlRmllbGRBc3luYyxcbiAgICAgICAgZm9ybUNvcmUucmVnaXN0ZXJGaWVsZCxcbiAgICAgICAgZm9ybUNvcmUudW5yZWdpc3RlckZpZWxkLFxuICAgICAgICBmb3JtQ29yZS5yZXRhaW5GaWVsZCxcbiAgICAgICAgZm9ybUNvcmUucmVsZWFzZUZpZWxkLFxuICAgICAgICBoYW5kbGVTdWJtaXQsXG4gICAgICAgIGhhbmRsZVJlc2V0LFxuICAgIF0pO1xuICAgIHJldHVybiB7IGZvcm1JbnN0YW5jZSwgaW50ZXJuYWxzLCBzdG9yZSB9O1xufTtcbmV4cG9ydCBkZWZhdWx0IHVzZUZvcm07IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
|
|
@@ -274,4 +274,4 @@ export var useFormCore = function useFormCore() {
|
|
|
274
274
|
};
|
|
275
275
|
};
|
|
276
276
|
export default useFormCore;
|
|
277
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9jb3JlL3NyYy9jb21wb25lbnRzL1Byb0Zvcm0vY29yZS9ob29rcy91c2VGb3JtQ29yZS50cyIsImNvbXBvbmVudHMvUHJvRm9ybS9jb3JlL2hvb2tzL3VzZUZvcm1Db3JlLmpzIl0sIm5hbWVzIjpbInVzZU1lbW8iLCJ1c2VSZWYiLCJ1c2VFdmVudENhbGxiYWNrIiwidXNlTWVtb2l6ZWRGbiIsIm1lcmdlVmFsdWVzUGF0Y2giLCJyZXNvbHZlVmFsdWUiLCJzZXROZXN0ZWRWYWx1ZSIsImNyZWF0ZUZvcm1TdG9yZSIsInNhbWVWYWxpZGF0aW9uTm9kZSIsInVzZUZvcm1Db3JlIiwiY29uZmlnIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwidW5kZWZpbmVkIiwiX2NvbmZpZyRpbml0aWFsVmFsdWVzIiwiaW5pdGlhbFZhbHVlcyIsIm9uVmFsdWVzQ2hhbmdlIiwib25SZXNldCIsIl9jb25maWckc2l6ZSIsInNpemUiLCJfY29uZmlnJGxhYmVsQWxpZ24iLCJsYWJlbEFsaWduIiwiX2NvbmZpZyRkaXNhYmxlZCIsImRpc2FibGVkIiwiX2NvbmZpZyR2YWxpZGF0ZVRyaWdnIiwidmFsaWRhdGVUcmlnZ2VyIiwiaW5pdGlhbFZhbHVlc1JlZiIsImN1cnJlbnQiLCJtb3VudEluaXRpYWxWYWx1ZXMiLCJzdG9yZVJlZiIsInN0b3JlIiwiZmllbGRSdWxlc1JlZiIsInZhbGlkYXRpb25FcG9jaFJlZiIsImJlZ2luVmFsaWRhdGlvblJ1biIsIm5hbWUiLCJuZXh0IiwiaXNWYWxpZGF0aW9uUnVuQ3VycmVudCIsImVwb2NoIiwiaW52YWxpZGF0ZVZhbGlkYXRpb25SdW5zIiwibmFtZXMiLCJrZXlzIiwiT2JqZWN0IiwiZm9yRWFjaCIsImtleSIsInJ1bGVDb250ZXh0SW5zdGFuY2VSZWYiLCJzZXRSdWxlQ29udGV4dEluc3RhbmNlIiwiaW5zdGFuY2UiLCJnZXRSdWxlQ29udGV4dEluc3RhbmNlIiwiY29tbWl0VmFsdWVzIiwibmV3VmFsdWVzIiwic2V0U3RhdGUiLCJ2YWx1ZXMiLCJzZXRGaWVsZFZhbHVlIiwidmFsdWUiLCJwcmV2IiwiZ2V0U3RhdGUiLCJpbmNsdWRlcyIsImFzc2lnbiIsIl9kZWZpbmVQcm9wZXJ0eSIsInNldEZpZWxkRXJyb3IiLCJlcnJvciIsImVycm9ycyIsIm5ld0Vycm9ycyIsInNldEZpZWxkV2FybmluZyIsIndhcm5pbmciLCJ3YXJuaW5ncyIsIm5ld1dhcm5pbmdzIiwiZmllbGRNb3VudENvdW50c1JlZiIsImZpZWxkUmVnaXN0cmF0aW9uT3duZWRSZWYiLCJyZWdpc3RlckZpZWxkIiwicnVsZXMiLCJnZXRGaWVsZFJ1bGVzIiwidW5yZWdpc3RlckZpZWxkIiwicmV0YWluRmllbGQiLCJyZWxlYXNlRmllbGQiLCJjb3VudCIsInJlc2V0RmllbGRzIiwidG91Y2hlZCIsInZhbGlkYXRpbmciLCJoYW5kbGVSZXNldCIsImUiLCJwcmV2ZW50RGVmYXVsdCIsImdldEZpZWxkVmFsdWUiLCJnZXRGaWVsZHNWYWx1ZSIsIm5hbWVMaXN0IiwicmVkdWNlIiwiYWNjIiwic2V0RmllbGRzVmFsdWUiLCJ2YWx1ZXNQYXRjaCIsInVwZGF0ZWRWYWx1ZXMiLCJzb21lIiwiX2kiLCJfT2JqZWN0JGVudHJpZXMiLCJlbnRyaWVzIiwiX09iamVjdCRlbnRyaWVzJF9pIiwiX3NsaWNlZFRvQXJyYXkiLCJmb3JtSW5zdGFuY2UiLCJzdGF0ZSIsImZpZWxkUnVsZXMiLCJnZXRJbml0aWFsVmFsdWVzIl0sIm1hcHBpbmdzIjoiOztBQUFBLFNBQVNBLE9BQU8sRUFBRUMsTUFBTSxRQUFRLE9BQU87QUFFdkMsT0FBT0MsZ0JBQWdCLE1BQU0sZ0NBQWdDO0FBQzdELE9BQU9DLGFBQWEsTUFBTSw2QkFBNkI7QUFDdkQsU0FBU0MsZ0JBQWdCLEVBQUVDLFlBQVksRUFBRUMsY0FBYyxRQUFRLGNBQWM7QUFDN0UsU0FBU0MsZUFBZSxFQUFFQyxrQkFBa0IsUUFBUSxjQUFjO0FBV2xFLE9BQU8sSUFBTUMsV0FBVyxHQUFHLFNBQWRBLFdBQVdB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S0FBSyxDQUFDcEIsT0FBTztJQUN0QjtJQUNBcUIsVUFBVSxFQUFFbkUsYUFBYSxDQUFDSixPQUFPO0lBQ2pDNEMsYUFBYSxFQUFiQSxhQUFhO0lBQ2J4QixzQkFBc0IsRUFBdEJBLHNCQUFzQjtJQUN0QkYsc0JBQXNCLEVBQXRCQSxzQkFBc0I7SUFDdEJaLGtCQUFrQixFQUFsQkEsa0JBQWtCO0lBQ2xCRyxzQkFBc0IsRUFBdEJBLHNCQUFzQjtJQUN0QkUsd0JBQXdCLEVBQXhCQSx3QkFBd0I7SUFDeEJjLGFBQWEsRUFBYkEsYUFBYTtJQUNiTyxhQUFhLEVBQWJBLGFBQWE7SUFDYkksZUFBZSxFQUFmQSxlQUFlO0lBQ2Z3QixjQUFjLEVBQWRBLGNBQWM7SUFDZEwsYUFBYSxFQUFiQSxhQUFhO0lBQ2JDLGNBQWMsRUFBRUEsY0FBNEQ7SUFDNUVkLGFBQWEsRUFBYkEsYUFBYTtJQUNiRyxlQUFlLEVBQWZBLGVBQWU7SUFDZkMsV0FBVyxFQUFYQSxXQUFXO0lBQ1hDLFlBQVksRUFBWkEsWUFBWTtJQUNaSyxXQUFXLEVBQVhBLFdBQVc7SUFDWEgsV0FBVyxFQUFYQSxXQUFXO0lBQ1hvQixZQUFZLEVBQVpBLFlBQVk7SUFDWmxFLEtBQUssRUFBTEEsS0FBSztJQUNMcUUsZ0JBQWdCLEVBQUUsU0FBbEJBLGdCQUFnQkEsQ0FBQTtNQUFBLE9BQVF2RSxrQkFBa0I7SUFBQTtFQ3pDMUMsQ0QwQ0Q7QUFDSCxDQUFDO0FBRUQsZUFBZW5CLFdBQVciLCJmaWxlIjoiY29tcG9uZW50cy9Qcm9Gb3JtL2NvcmUvaG9va3MvdXNlRm9ybUNvcmUuanMiLCJzb3VyY2VzQ29udGVudCI6W251bGwsImltcG9ydCB7IHVzZU1lbW8sIHVzZVJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB1c2VFdmVudENhbGxiYWNrIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlRXZlbnRDYWxsYmFjayc7XG5pbXBvcnQgdXNlTWVtb2l6ZWRGbiBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZU1lbW9pemVkRm4nO1xuaW1wb3J0IHsgbWVyZ2VWYWx1ZXNQYXRjaCwgcmVzb2x2ZVZhbHVlLCBzZXROZXN0ZWRWYWx1ZSB9IGZyb20gJy4uL3BhdGhVdGlscyc7XG5pbXBvcnQgeyBjcmVhdGVGb3JtU3RvcmUsIHNhbWVWYWxpZGF0aW9uTm9kZSB9IGZyb20gJy4uL2Zvcm1TdG9yZSc7XG5leHBvcnQgY29uc3QgdXNlRm9ybUNvcmUgPSAoY29uZmlnID0ge30pID0+IHtcbiAgICBjb25zdCB7IGluaXRpYWxWYWx1ZXMgPSB7fSwgb25WYWx1ZXNDaGFuZ2UsIG9uUmVzZXQsIHNpemUgPSAnbGFyZ2UnLCBsYWJlbEFsaWduID0gJ2xlZnQnLCBkaXNhYmxlZCA9IGZhbHNlLCB2YWxpZGF0ZVRyaWdnZXIgPSAnb25DaGFuZ2UnLCB9ID0gY29uZmlnO1xuICAgIC8vIGluaXRpYWxWYWx1ZXMgaXMgTU9VTlQtT05MWSAodGhlIGRvY3VtZW50ZWQgY29udHJhY3QpOiBmcmVlemUgdGhlIGZpcnN0XG4gICAgLy8gcmVuZGVyJ3MgdmFsdWUgc28gcmVzZXRGaWVsZHMgYWx3YXlzIHJlc3RvcmVzIHRoZSBtb3VudC10aW1lIGRlZmF1bHRzLFxuICAgIC8vIGV2ZW4gd2hlbiB0aGUgY29uc3VtZXIgcmUtcmVuZGVycyB3aXRoIGEgZGlmZmVyZW50IChlLmcuIGNvbnRyb2xsZWQpXG4gICAgLy8gaW5pdGlhbFZhbHVlcyBvYmplY3QuXG4gICAgY29uc3QgaW5pdGlhbFZhbHVlc1JlZiA9IHVzZVJlZihudWxsKTtcbiAgICBpZiAoaW5pdGlhbFZhbHVlc1JlZi5jdXJyZW50ID09PSBudWxsKSB7XG4gICAgICAgIGluaXRpYWxWYWx1ZXNSZWYuY3VycmVudCA9IGluaXRpYWxWYWx1ZXM7XG4gICAgfVxuICAgIGNvbnN0IG1vdW50SW5pdGlhbFZhbHVlcyA9IGluaXRpYWxWYWx1ZXNSZWYuY3VycmVudDtcbiAgICAvLyBBbGwgdm9sYXRpbGUgZm9ybSBzdGF0ZSBsaXZlcyBpbiBhbiBleHRlcm5hbCBzdG9yZSwgTk9UIFJlYWN0IHN0YXRlIOKAlCBhXG4gICAgLy8ga2V5c3Ryb2tlIG11c3QgbmV2ZXIgcmUtcmVuZGVyIHRoZSBjb21wb25lbnQgdGhhdCBvd25zIHRoZSBmb3JtLiBGaWVsZHNcbiAgICAvLyBhbmQgd2F0Y2hlcnMgc3Vic2NyaWJlIHdpdGggcGVyLWZpZWxkIHNlbGVjdG9ycyAodXNlU3RvcmVTZWxlY3Rvcik7IGV2ZXJ5XG4gICAgLy8gbXV0YXRvciBiZWxvdyByZWFkcyB0aGUgTEFURVNUIHN0YXRlIHZpYSBzdG9yZS5nZXRTdGF0ZSgpLCB3aGljaCBhbHNvXG4gICAgLy8ga2VlcHMgbXVsdGlwbGUgd3JpdGVzIGluIHRoZSBzYW1lIHRpY2sgdmlzaWJsZSB0byBlYWNoIG90aGVyLlxuICAgIGNvbnN0IHN0b3JlUmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGlmIChzdG9yZVJlZi5jdXJyZW50ID09PSBudWxsKSB7XG4gICAgICAgIHN0b3JlUmVmLmN1cnJlbnQgPSBjcmVhdGVGb3JtU3RvcmUobW91bnRJbml0aWFsVmFsdWVzKTtcbiAgICB9XG4gICAgY29uc3Qgc3RvcmUgPSBzdG9yZVJlZi5jdXJyZW50O1xuICAgIC8vIExpdmUgcnVsZSByZWdpc3RyeSDigJQgT05FIHN0YWJsZSBvYmplY3QgbXV0YXRlZCBpbiBwbGFjZS4gUmVnaXN0cmF0aW9uIG11c3RcbiAgICAvLyBub3QgdHJpZ2dlciByZW5kZXJzLCBhbmQgc3VibWl0LXRpbWUgdmFsaWRhdGlvbiBtdXN0IGFsd2F5cyByZWFkIHRoZSBsYXRlc3RcbiAgICAvLyBydWxlcyAodGhleSBjYW4gY2hhbmdlIGJldHdlZW4gcmVuZGVycywgZS5nLiBhIGNvbmRpdGlvbmFsIGByZXF1aXJlZGApLlxuICAgIGNvbnN0IGZpZWxkUnVsZXNSZWYgPSB1c2VSZWYoe30pO1xuICAgIC8vIFBlci1maWVsZCB2YWxpZGF0aW9uIHJ1biBlcG9jaHMuIEVWRVJZIHZhbGlkYXRpb24gcnVuIChzeW5jIG9yIGFzeW5jKVxuICAgIC8vIGJ1bXBzIGl0cyBmaWVsZCdzIGVwb2NoOyBhbiBhc3luYyBydW4gcmUtY2hlY2tzIGl0cyBjYXB0dXJlZCBlcG9jaCBhdFxuICAgIC8vIHNldHRsZSB0aW1lIGFuZCBkaXNjYXJkcyBhIFNUQUxFIG91dGNvbWUg4oCUIHRoZSBzYW1lIHByb3RlY3Rpb24gYXNcbiAgICAvLyByYy1maWVsZC1mb3JtJ3MgdmFsaWRhdGVQcm9taXNlIGlkZW50aXR5IGNoZWNrLiBXaXRob3V0IGl0LCBhIHNsb3cgYXN5bmNcbiAgICAvLyB2YWxpZGF0b3IgKGUuZy4gYSBzZXJ2ZXItc2lkZSB1bmlxdWVuZXNzIGNoZWNrIHN0YXJ0ZWQgb24gYmx1cikgY291bGRcbiAgICAvLyBzZXR0bGUgYWZ0ZXIgdGhlIHVzZXIgYWxyZWFkeSBmaXhlZCB0aGUgdmFsdWUgYW5kIHN0YW1wIGEgc3RhbGUgZXJyb3JcbiAgICAvLyBvdmVyIGEgbmV3ZXIsIHBhc3NpbmcgcmVzdWx0LlxuICAgIGNvbnN0IHZhbGlkYXRpb25FcG9jaFJlZiA9IHVzZVJlZih7fSk7XG4gICAgY29uc3QgYmVnaW5WYWxpZGF0aW9uUnVuID0gdXNlTWVtb2l6ZWRGbigobmFtZSkgPT4ge1xuICAgICAgICBjb25zdCBuZXh0ID0gKHZhbGlkYXRpb25FcG9jaFJlZi5jdXJyZW50W25hbWVdIHx8IDApICsgMTtcbiAgICAgICAgdmFsaWRhdGlvbkVwb2NoUmVmLmN1cnJlbnRbbmFtZV0gPSBuZXh0O1xuICAgICAgICByZXR1cm4gbmV4dDtcbiAgICB9KTtcbiAgICBjb25zdCBpc1ZhbGlkYXRpb25SdW5DdXJyZW50ID0gdXNlTWVtb2l6ZWRGbigobmFtZSwgZXBvY2gpID0+IHZhbGlkYXRpb25FcG9jaFJlZi5jdXJyZW50W25hbWVdID09PSBlcG9jaCk7XG4gICAgLy8gQnVtcCAobmV2ZXIgZGVsZXRlIOKAlCBkZWxldGlvbiB3b3VsZCBsZXQgYSBuZXcgcnVuIHJlLWlzc3VlIGFuIG9sZCBlcG9jaFxuICAgIC8vIG51bWJlciBhbmQgY29sbGlkZSB3aXRoIGEgc3RpbGwtaW4tZmxpZ2h0IHByZS1yZXNldCBydW4pLlxuICAgIGNvbnN0IGludmFsaWRhdGVWYWxpZGF0aW9uUnVucyA9IHVzZU1lbW9pemVkRm4oKG5hbWVzKSA9PiB7XG4gICAgICAgIGNvbnN0IGtleXMgPSBuYW1lcyAhPT0gbnVsbCAmJiBuYW1lcyAhPT0gdm9pZCAwID8gbmFtZXMgOiBPYmplY3Qua2V5cyh2YWxpZGF0aW9uRXBvY2hSZWYuY3VycmVudCk7XG4gICAgICAgIGtleXMuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgICAgICBpZiAodmFsaWRhdGlvbkVwb2NoUmVmLmN1cnJlbnRba2V5XSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgdmFsaWRhdGlvbkVwb2NoUmVmLmN1cnJlbnRba2V5XSArPSAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9KTtcbiAgICAvLyBJbnN0YW5jZSBoYW5kZWQgdG8gZnVuY3Rpb24tZm9ybSBydWxlcy4gRGVmYXVsdHMgdG8gdGhlIGNvcmUgbWV0aG9kc1xuICAgIC8vIChhc3NpZ25lZCBhdCB0aGUgZW5kIG9mIHRoaXMgaG9vayBib2R5KTsgdXNlRm9ybSB1cGdyYWRlcyBpdCB0byB0aGUgRlVMTFxuICAgIC8vIGZvcm0gaW5zdGFuY2Ugb25jZSBpdCBoYXMgYnVpbHQgb25lLCBzbyBydWxlcyBzZWUgdGhlIHNhbWUgY29udGV4dCBvblxuICAgIC8vIGV2ZXJ5IHBhdGggKGludGVyYWN0aXZlLCBibHVyLCBzdWJtaXQpLlxuICAgIGNvbnN0IHJ1bGVDb250ZXh0SW5zdGFuY2VSZWYgPSB1c2VSZWYoe30pO1xuICAgIGNvbnN0IHNldFJ1bGVDb250ZXh0SW5zdGFuY2UgPSB1c2VNZW1vaXplZEZuKChpbnN0YW5jZSkgPT4ge1xuICAgICAgICBydWxlQ29udGV4dEluc3RhbmNlUmVmLmN1cnJlbnQgPSBpbnN0YW5jZTtcbiAgICB9KTtcbiAgICBjb25zdCBnZXRSdWxlQ29udGV4dEluc3RhbmNlID0gdXNlTWVtb2l6ZWRGbigoKSA9PiBydWxlQ29udGV4dEluc3RhbmNlUmVmLmN1cnJlbnQpO1xuICAgIGNvbnN0IGNvbW1pdFZhbHVlcyA9IHVzZU1lbW9pemVkRm4oKG5ld1ZhbHVlcykgPT4ge1xuICAgICAgICBzdG9yZS5zZXRTdGF0ZSh7IHZhbHVlczogbmV3VmFsdWVzIH0pO1xuICAgIH0pO1xuICAgIC8vIE5PVEU6IHNldHRpbmcgYSB2YWx1ZSBkb2VzIE5PVCB0b3VjaCB0aGUgZmllbGQncyBlcnJvciDigJQgZXJyb3JzIGFyZVxuICAgIC8vIGNsZWFyZWQgZXhjbHVzaXZlbHkgYnkgdmFsaWRhdGlvbiBydW5zICh3aG9zZSB0aW1pbmcgZm9sbG93cyB0aGVcbiAgICAvLyB2YWxpZGF0ZVRyaWdnZXIgY29uZmlnKSwgc28gYW4gb25CbHVyLW9ubHkgZmllbGQga2VlcHMgaXRzIGVycm9yIHdoaWxlXG4gICAgLy8gdGhlIHVzZXIgaXMgc3RpbGwgdHlwaW5nLlxuICAgIGNvbnN0IHNldEZpZWxkVmFsdWUgPSB1c2VNZW1vaXplZEZuKChuYW1lLCB2YWx1ZSkgPT4ge1xuICAgICAgICBjb25zdCBwcmV2ID0gc3RvcmUuZ2V0U3RhdGUoKS52YWx1ZXM7XG4gICAgICAgIGNvbnN0IG5ld1ZhbHVlcyA9IG5hbWUuaW5jbHVkZXMoJy4nKVxuICAgICAgICAgICAgPyBzZXROZXN0ZWRWYWx1ZShwcmV2LCBuYW1lLCB2YWx1ZSlcbiAgICAgICAgICAgIDogT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBwcmV2KSwgeyBbbmFtZV06IHZhbHVlIH0pO1xuICAgICAgICBjb21taXRWYWx1ZXMobmV3VmFsdWVzKTtcbiAgICAgICAgb25WYWx1ZXNDaGFuZ2UgPT09IG51bGwgfHwgb25WYWx1ZXNDaGFuZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uVmFsdWVzQ2hhbmdlKHsgW25hbWVdOiB2YWx1ZSB9LCBuZXdWYWx1ZXMpO1xuICAgIH0pO1xuICAgIGNvbnN0IHNldEZpZWxkRXJyb3IgPSB1c2VNZW1vaXplZEZuKChuYW1lLCBlcnJvcikgPT4ge1xuICAgICAgICBjb25zdCBlcnJvcnMgPSBzdG9yZS5nZXRTdGF0ZSgpLmVycm9ycztcbiAgICAgICAgaWYgKGVycm9yID09PSBudWxsKSB7XG4gICAgICAgICAgICBpZiAoIWVycm9yc1tuYW1lXSlcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBjb25zdCBuZXdFcnJvcnMgPSBPYmplY3QuYXNzaWduKHt9LCBlcnJvcnMpO1xuICAgICAgICAgICAgZGVsZXRlIG5ld0Vycm9yc1tuYW1lXTtcbiAgICAgICAgICAgIHN0b3JlLnNldFN0YXRlKHsgZXJyb3JzOiBuZXdFcnJvcnMgfSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHNhbWVWYWxpZGF0aW9uTm9kZShlcnJvcnNbbmFtZV0sIGVycm9yKSlcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgc3RvcmUuc2V0U3RhdGUoeyBlcnJvcnM6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgZXJyb3JzKSwgeyBbbmFtZV06IGVycm9yIH0pIH0pO1xuICAgIH0pO1xuICAgIGNvbnN0IHNldEZpZWxkV2FybmluZyA9IHVzZU1lbW9pemVkRm4oKG5hbWUsIHdhcm5pbmcpID0+IHtcbiAgICAgICAgY29uc3Qgd2FybmluZ3MgPSBzdG9yZS5nZXRTdGF0ZSgpLndhcm5pbmdzO1xuICAgICAgICBpZiAod2FybmluZyA9PT0gbnVsbCkge1xuICAgICAgICAgICAgaWYgKCF3YXJuaW5nc1tuYW1lXSlcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBjb25zdCBuZXdXYXJuaW5ncyA9IE9iamVjdC5hc3NpZ24oe30sIHdhcm5pbmdzKTtcbiAgICAgICAgICAgIGRlbGV0ZSBuZXdXYXJuaW5nc1tuYW1lXTtcbiAgICAgICAgICAgIHN0b3JlLnNldFN0YXRlKHsgd2FybmluZ3M6IG5ld1dhcm5pbmdzIH0pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzYW1lVmFsaWRhdGlvbk5vZGUod2FybmluZ3NbbmFtZV0sIHdhcm5pbmcpKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBzdG9yZS5zZXRTdGF0ZSh7IHdhcm5pbmdzOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHdhcm5pbmdzKSwgeyBbbmFtZV06IHdhcm5pbmcgfSkgfSk7XG4gICAgfSk7XG4gICAgLy8gTW91bnRlZC1pbnN0YW5jZSBjb3VudHMgcGVyIGZpZWxkIG5hbWUsIHBsdXMgd2hldGhlciB0aGUgQ1VSUkVOVCBydWxlc1xuICAgIC8vIHJlZ2lzdHJhdGlvbiB3YXMgbWFkZSBieSBhIGNvdW50ZWQgaW5zdGFuY2UuIFJ1bGVzIGFyZSByZW1vdmVkIG9ubHkgd2hlblxuICAgIC8vIHRoZSBMQVNUIG1vdW50ZWQgaW5zdGFuY2UgZm9yIGEgbmFtZSByZWxlYXNlczogd2l0aCB0d28gc2FtZS1uYW1lIGZpZWxkc1xuICAgIC8vIG1vdW50ZWQsIHRoZSBmaXJzdCB1bm1vdW50IG11c3Qgbm90IHdpcGUgdGhlIHJlZ2lzdHJhdGlvbiB3aGlsZSB0aGVcbiAgICAvLyBzdXJ2aXZvciAocG9zc2libHkgbWVtby1iYWlsZWQsIHNvIG5vdCByZS1yZW5kZXJpbmcgdG8gcmUtcmVnaXN0ZXIpIHN0aWxsXG4gICAgLy8gcmVsaWVzIG9uIGl0IGZvciBzdWJtaXQtdGltZSB2YWxpZGF0aW9uLiBBIE1BTlVBTCByZWdpc3RlckZpZWxkIChub1xuICAgIC8vIG1vdW50ZWQgaG9sZGVyLCBvd25lZD1mYWxzZSkgc3Vydml2ZXMgdGhlIHVubW91bnQgb2YgcGlnZ3liYWNraW5nXG4gICAgLy8gaW5zdGFuY2VzIHRoYXQgbmV2ZXIgcmVnaXN0ZXJlZCBydWxlcyB0aGVtc2VsdmVzLlxuICAgIC8vIE5PVEU6IGNhbGxlcnMgbXVzdCByZXRhaW4gQkVGT1JFIHJlZ2lzdGVyaW5nIChyZXRhaW4gZWZmZWN0IGRlY2xhcmVkXG4gICAgLy8gZmlyc3QpLCBvciB0aGUgcmVnaXN0cmF0aW9uIGlzIG1pc2NsYXNzaWZpZWQgYXMgbWFudWFsIGFuZCBsZWFrcy5cbiAgICBjb25zdCBmaWVsZE1vdW50Q291bnRzUmVmID0gdXNlUmVmKHt9KTtcbiAgICBjb25zdCBmaWVsZFJlZ2lzdHJhdGlvbk93bmVkUmVmID0gdXNlUmVmKHt9KTtcbiAgICBjb25zdCByZWdpc3RlckZpZWxkID0gdXNlTWVtb2l6ZWRGbigobmFtZSwgcnVsZXMpID0+IHtcbiAgICAgICAgZmllbGRSdWxlc1JlZi5jdXJyZW50W25hbWVdID0gcnVsZXM7XG4gICAgICAgIGZpZWxkUmVnaXN0cmF0aW9uT3duZWRSZWYuY3VycmVudFtuYW1lXSA9IChmaWVsZE1vdW50Q291bnRzUmVmLmN1cnJlbnRbbmFtZV0gfHwgMCkgPiAwO1xuICAgIH0pO1xuICAgIGNvbnN0IGdldEZpZWxkUnVsZXMgPSB1c2VNZW1vaXplZEZuKChuYW1lKSA9PiB7XG4gICAgICAgIHJldHVybiBmaWVsZFJ1bGVzUmVmLmN1cnJlbnRbbmFtZV07XG4gICAgfSk7XG4gICAgY29uc3QgdW5yZWdpc3RlckZpZWxkID0gdXNlTWVtb2l6ZWRGbigobmFtZSkgPT4ge1xuICAgICAgICBkZWxldGUgZmllbGRSdWxlc1JlZi5jdXJyZW50W25hbWVdO1xuICAgICAgICBkZWxldGUgZmllbGRSZWdpc3RyYXRpb25Pd25lZFJlZi5jdXJyZW50W25hbWVdO1xuICAgIH0pO1xuICAgIGNvbnN0IHJldGFpbkZpZWxkID0gdXNlTWVtb2l6ZWRGbigobmFtZSkgPT4ge1xuICAgICAgICBmaWVsZE1vdW50Q291bnRzUmVmLmN1cnJlbnRbbmFtZV0gPSAoZmllbGRNb3VudENvdW50c1JlZi5jdXJyZW50W25hbWVdIHx8IDApICsgMTtcbiAgICB9KTtcbiAgICBjb25zdCByZWxlYXNlRmllbGQgPSB1c2VNZW1vaXplZEZuKChuYW1lKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvdW50ID0gKGZpZWxkTW91bnRDb3VudHNSZWYuY3VycmVudFtuYW1lXSB8fCAwKSAtIDE7XG4gICAgICAgIGlmIChjb3VudCA8PSAwKSB7XG4gICAgICAgICAgICBkZWxldGUgZmllbGRNb3VudENvdW50c1JlZi5jdXJyZW50W25hbWVdO1xuICAgICAgICAgICAgaWYgKGZpZWxkUmVnaXN0cmF0aW9uT3duZWRSZWYuY3VycmVudFtuYW1lXSkge1xuICAgICAgICAgICAgICAgIGRlbGV0ZSBmaWVsZFJ1bGVzUmVmLmN1cnJlbnRbbmFtZV07XG4gICAgICAgICAgICAgICAgZGVsZXRlIGZpZWxkUmVnaXN0cmF0aW9uT3duZWRSZWYuY3VycmVudFtuYW1lXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGZpZWxkTW91bnRDb3VudHNSZWYuY3VycmVudFtuYW1lXSA9IGNvdW50O1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgLy8gUHVyZSBzdGF0ZSBBUEk6IHRoZSBpbXBlcmF0aXZlIHJlc2V0RmllbGRzKClcbiAgICAvLyBuZXZlciBmaXJlcyBvblJlc2V0LiBUaGUgY2FsbGJhY2sgYmVsb25ncyB0byB0aGUgcmVzZXQgQUNUSU9OIGxheWVyXG4gICAgLy8gKHN1Ym1pdHRlciBidXR0b24gLyBuYXRpdmUgcmVzZXQgZXZlbnQpLCB3aGljaCBmaXJlcyBpdCBleGFjdGx5IG9uY2UuXG4gICAgY29uc3QgcmVzZXRGaWVsZHMgPSB1c2VNZW1vaXplZEZuKCgpID0+IHtcbiAgICAgICAgLy8gSW52YWxpZGF0ZSBpbi1mbGlnaHQgYXN5bmMgdmFsaWRhdGlvbiBydW5zIOKAlCB0aGVpciByZXN1bHRzIGJlbG9uZyB0b1xuICAgICAgICAvLyBwcmUtcmVzZXQgdmFsdWVzIGFuZCBtdXN0IG5vdCBzdGFtcCBlcnJvcnMgb250byB0aGUgcmVzZXQgZm9ybS5cbiAgICAgICAgaW52YWxpZGF0ZVZhbGlkYXRpb25SdW5zKCk7XG4gICAgICAgIHN0b3JlLnNldFN0YXRlKHtcbiAgICAgICAgICAgIHZhbHVlczogbW91bnRJbml0aWFsVmFsdWVzLFxuICAgICAgICAgICAgZXJyb3JzOiB7fSxcbiAgICAgICAgICAgIHdhcm5pbmdzOiB7fSxcbiAgICAgICAgICAgIHRvdWNoZWQ6IHt9LFxuICAgICAgICAgICAgdmFsaWRhdGluZzoge30sXG4gICAgICAgIH0pO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVJlc2V0ID0gdXNlRXZlbnRDYWxsYmFjaygoZSkgPT4ge1xuICAgICAgICBlID09PSBudWxsIHx8IGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgcmVzZXRGaWVsZHMoKTtcbiAgICAgICAgb25SZXNldCA9PT0gbnVsbCB8fCBvblJlc2V0ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvblJlc2V0KCk7XG4gICAgfSk7XG4gICAgY29uc3QgZ2V0RmllbGRWYWx1ZSA9IHVzZU1lbW9pemVkRm4oKG5hbWUpID0+IHtcbiAgICAgICAgcmV0dXJuIHJlc29sdmVWYWx1ZShzdG9yZS5nZXRTdGF0ZSgpLnZhbHVlcywgbmFtZSk7XG4gICAgfSk7XG4gICAgY29uc3QgZ2V0RmllbGRzVmFsdWUgPSB1c2VNZW1vaXplZEZuKChuYW1lTGlzdCkgPT4ge1xuICAgICAgICBjb25zdCB2YWx1ZXMgPSBzdG9yZS5nZXRTdGF0ZSgpLnZhbHVlcztcbiAgICAgICAgaWYgKCFuYW1lTGlzdClcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZXM7XG4gICAgICAgIHJldHVybiBuYW1lTGlzdC5yZWR1Y2UoKGFjYywgbmFtZSkgPT4ge1xuICAgICAgICAgICAgYWNjW25hbWVdID0gcmVzb2x2ZVZhbHVlKHZhbHVlcywgbmFtZSk7XG4gICAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICB9LCB7fSk7XG4gICAgfSk7XG4gICAgY29uc3Qgc2V0RmllbGRzVmFsdWUgPSB1c2VNZW1vaXplZEZuKChuZXdWYWx1ZXMpID0+IHtcbiAgICAgICAgY29uc3QgdmFsdWVzUGF0Y2ggPSBuZXdWYWx1ZXM7XG4gICAgICAgIGNvbnN0IHByZXYgPSBzdG9yZS5nZXRTdGF0ZSgpLnZhbHVlcztcbiAgICAgICAgbGV0IHVwZGF0ZWRWYWx1ZXM7XG4gICAgICAgIGlmIChPYmplY3Qua2V5cyh2YWx1ZXNQYXRjaCkuc29tZSgoa2V5KSA9PiBrZXkuaW5jbHVkZXMoJy4nKSkpIHtcbiAgICAgICAgICAgIC8vIERvdC1wYXRoIGtleXMgd3JpdGUgaW50byB0aGUgTkVTVEVEIHN0cnVjdHVyZSAodGhlIHNldEZpZWxkVmFsdWVcbiAgICAgICAgICAgIC8vIGNvbnRyYWN0KSDigJQgYSBzaGFsbG93IG1lcmdlIHdvdWxkIGxhbmQgdGhlbSBhcyBsaXRlcmFsIHRvcC1sZXZlbFxuICAgICAgICAgICAgLy8ga2V5cyB0aGF0IHRoZSBuZXN0ZWQtYXdhcmUgcmVhZGVycyBuZXZlciBmaW5kLlxuICAgICAgICAgICAgdXBkYXRlZFZhbHVlcyA9IHByZXY7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyh2YWx1ZXNQYXRjaCkpIHtcbiAgICAgICAgICAgICAgICB1cGRhdGVkVmFsdWVzID0ga2V5LmluY2x1ZGVzKCcuJylcbiAgICAgICAgICAgICAgICAgICAgPyBzZXROZXN0ZWRWYWx1ZSh1cGRhdGVkVmFsdWVzLCBrZXksIHZhbHVlKVxuICAgICAgICAgICAgICAgICAgICA6IG1lcmdlVmFsdWVzUGF0Y2godXBkYXRlZFZhbHVlcywgeyBba2V5XTogdmFsdWUgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB1cGRhdGVkVmFsdWVzID0gbWVyZ2VWYWx1ZXNQYXRjaChwcmV2LCB2YWx1ZXNQYXRjaCk7XG4gICAgICAgIH1cbiAgICAgICAgY29tbWl0VmFsdWVzKHVwZGF0ZWRWYWx1ZXMpO1xuICAgICAgICBvblZhbHVlc0NoYW5nZSA9PT0gbnVsbCB8fCBvblZhbHVlc0NoYW5nZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25WYWx1ZXNDaGFuZ2UodmFsdWVzUGF0Y2gsIHVwZGF0ZWRWYWx1ZXMpO1xuICAgIH0pO1xuICAgIC8vIFNlZWQgdGhlIHJ1bGUtY29udGV4dCBpbnN0YW5jZSB3aXRoIHRoZSBjb3JlIG1ldGhvZHMgZXhhY3RseSBvbmNlIOKAlFxuICAgIC8vIHVzZUZvcm0ncyByaWNoZXIgaW5zdGFuY2UgbXVzdCBub3QgYmUgZG93bmdyYWRlZCBvbiBsYXRlciByZW5kZXJzLlxuICAgIGlmIChPYmplY3Qua2V5cyhydWxlQ29udGV4dEluc3RhbmNlUmVmLmN1cnJlbnQpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICBydWxlQ29udGV4dEluc3RhbmNlUmVmLmN1cnJlbnQgPSB7XG4gICAgICAgICAgICBnZXRGaWVsZFZhbHVlOiBnZXRGaWVsZFZhbHVlLFxuICAgICAgICAgICAgZ2V0RmllbGRzVmFsdWU6IGdldEZpZWxkc1ZhbHVlLFxuICAgICAgICAgICAgc2V0RmllbGRWYWx1ZTogc2V0RmllbGRWYWx1ZSxcbiAgICAgICAgICAgIHNldEZpZWxkc1ZhbHVlOiBzZXRGaWVsZHNWYWx1ZSxcbiAgICAgICAgICAgIHJlc2V0RmllbGRzLFxuICAgICAgICB9O1xuICAgIH1cbiAgICBjb25zdCBmb3JtSW5zdGFuY2UgPSB1c2VNZW1vKCgpID0+ICh7XG4gICAgICAgIHJlc2V0RmllbGRzLFxuICAgICAgICBnZXRGaWVsZFZhbHVlOiBnZXRGaWVsZFZhbHVlLFxuICAgICAgICBnZXRGaWVsZHNWYWx1ZTogZ2V0RmllbGRzVmFsdWUsXG4gICAgICAgIHNldEZpZWxkc1ZhbHVlOiBzZXRGaWVsZHNWYWx1ZSxcbiAgICAgICAgc2V0RmllbGRWYWx1ZTogc2V0RmllbGRWYWx1ZSxcbiAgICB9KSwgW1xuICAgICAgICByZXNldEZpZWxkcyxcbiAgICAgICAgZ2V0RmllbGRWYWx1ZSxcbiAgICAgICAgZ2V0RmllbGRzVmFsdWUsXG4gICAgICAgIHNldEZpZWxkc1ZhbHVlLFxuICAgICAgICBzZXRGaWVsZFZhbHVlLFxuICAgIF0pO1xuICAgIC8vIFJlbmRlci10aW1lIHNuYXBzaG90IOKAlCBrZXB0IGZvciB0aGUgVXNlRm9ybUNvcmVSZXR1cm4gY29udHJhY3QuIFJlYWN0aXZlXG4gICAgLy8gY29uc3VtZXJzIG11c3QgZ28gdGhyb3VnaCB0aGUgc3RvcmUsIG5ldmVyIHRocm91Z2ggdGhlc2UgZmllbGRzLlxuICAgIGNvbnN0IHN0YXRlID0gc3RvcmUuZ2V0U3RhdGUoKTtcbiAgICByZXR1cm4ge1xuICAgICAgICB2YWx1ZXM6IHN0YXRlLnZhbHVlcyxcbiAgICAgICAgZXJyb3JzOiBzdGF0ZS5lcnJvcnMsXG4gICAgICAgIHdhcm5pbmdzOiBzdGF0ZS53YXJuaW5ncyxcbiAgICAgICAgdG91Y2hlZDogc3RhdGUudG91Y2hlZCxcbiAgICAgICAgLy8gTGl2ZSByZWdpc3RyeSDigJQgc3RhYmxlIGlkZW50aXR5LCBtdXRhdGVkIGluIHBsYWNlIGJ5IHJlZ2lzdGVyL3VucmVnaXN0ZXIuXG4gICAgICAgIGZpZWxkUnVsZXM6IGZpZWxkUnVsZXNSZWYuY3VycmVudCxcbiAgICAgICAgZ2V0RmllbGRSdWxlcyxcbiAgICAgICAgZ2V0UnVsZUNvbnRleHRJbnN0YW5jZSxcbiAgICAgICAgc2V0UnVsZUNvbnRleHRJbnN0YW5jZSxcbiAgICAgICAgYmVnaW5WYWxpZGF0aW9uUnVuLFxuICAgICAgICBpc1ZhbGlkYXRpb25SdW5DdXJyZW50LFxuICAgICAgICBpbnZhbGlkYXRlVmFsaWRhdGlvblJ1bnMsXG4gICAgICAgIHNldEZpZWxkVmFsdWUsXG4gICAgICAgIHNldEZpZWxkRXJyb3IsXG4gICAgICAgIHNldEZpZWxkV2FybmluZyxcbiAgICAgICAgc2V0RmllbGRzVmFsdWUsXG4gICAgICAgIGdldEZpZWxkVmFsdWUsXG4gICAgICAgIGdldEZpZWxkc1ZhbHVlOiBnZXRGaWVsZHNWYWx1ZSxcbiAgICAgICAgcmVnaXN0ZXJGaWVsZCxcbiAgICAgICAgdW5yZWdpc3RlckZpZWxkLFxuICAgICAgICByZXRhaW5GaWVsZCxcbiAgICAgICAgcmVsZWFzZUZpZWxkLFxuICAgICAgICBoYW5kbGVSZXNldCxcbiAgICAgICAgcmVzZXRGaWVsZHMsXG4gICAgICAgIGZvcm1JbnN0YW5jZSxcbiAgICAgICAgc3RvcmUsXG4gICAgICAgIGdldEluaXRpYWxWYWx1ZXM6ICgpID0+IG1vdW50SW5pdGlhbFZhbHVlcyxcbiAgICB9O1xufTtcbmV4cG9ydCBkZWZhdWx0IHVzZUZvcm1Db3JlOyJdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
|
|
277
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9jb3JlL3NyYy9jb21wb25lbnRzL1Byb0Zvcm0vY29yZS9ob29rcy91c2VGb3JtQ29yZS50cyIsImNvbXBvbmVudHMvUHJvRm9ybS9jb3JlL2hvb2tzL3VzZUZvcm1Db3JlLmpzIl0sIm5hbWVzIjpbInVzZU1lbW8iLCJ1c2VSZWYiLCJ1c2VFdmVudENhbGxiYWNrIiwidXNlTWVtb2l6ZWRGbiIsIm1lcmdlVmFsdWVzUGF0Y2giLCJyZXNvbHZlVmFsdWUiLCJzZXROZXN0ZWRWYWx1ZSIsImNyZWF0ZUZvcm1TdG9yZSIsInNhbWVWYWxpZGF0aW9uTm9kZSIsInVzZUZvcm1Db3JlIiwiY29uZmlnIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwidW5kZWZpbmVkIiwiX2NvbmZpZyRpbml0aWFsVmFsdWVzIiwiaW5pdGlhbFZhbHVlcyIsIm9uVmFsdWVzQ2hhbmdlIiwib25SZXNldCIsIl9jb25maWckc2l6ZSIsInNpemUiLCJfY29uZmlnJGxhYmVsQWxpZ24iLCJsYWJlbEFsaWduIiwiX2NvbmZpZyRkaXNhYmxlZCIsImRpc2FibGVkIiwiX2NvbmZpZyR2YWxpZGF0ZVRyaWdnIiwidmFsaWRhdGVUcmlnZ2VyIiwiaW5pdGlhbFZhbHVlc1JlZiIsImN1cnJlbnQiLCJtb3VudEluaXRpYWxWYWx1ZXMiLCJzdG9yZVJlZiIsInN0b3JlIiwiZmllbGRSdWxlc1JlZiIsInZhbGlkYXRpb25FcG9jaFJlZiIsImJlZ2luVmFsaWRhdGlvblJ1biIsIm5hbWUiLCJuZXh0IiwiaXNWYWxpZGF0aW9uUnVuQ3VycmVudCIsImVwb2NoIiwiaW52YWxpZGF0ZVZhbGlkYXRpb25SdW5zIiwibmFtZXMiLCJrZXlzIiwiT2JqZWN0IiwiZm9yRWFjaCIsImtleSIsInJ1bGVDb250ZXh0SW5zdGFuY2VSZWYiLCJzZXRSdWxlQ29udGV4dEluc3RhbmNlIiwiaW5zdGFuY2UiLCJnZXRSdWxlQ29udGV4dEluc3RhbmNlIiwiY29tbWl0VmFsdWVzIiwibmV3VmFsdWVzIiwic2V0U3RhdGUiLCJ2YWx1ZXMiLCJzZXRGaWVsZFZhbHVlIiwidmFsdWUiLCJwcmV2IiwiZ2V0U3RhdGUiLCJpbmNsdWRlcyIsImFzc2lnbiIsIl9kZWZpbmVQcm9wZXJ0eSIsInNldEZpZWxkRXJyb3IiLCJlcnJvciIsImVycm9ycyIsIm5ld0Vycm9ycyIsInNldEZpZWxkV2FybmluZyIsIndhcm5pbmciLCJ3YXJuaW5ncyIsIm5ld1dhcm5pbmdzIiwiZmllbGRNb3VudENvdW50c1JlZiIsImZpZWxkUmVnaXN0cmF0aW9uT3duZWRSZWYiLCJyZWdpc3RlckZpZWxkIiwicnVsZXMiLCJnZXRGaWVsZFJ1bGVzIiwidW5yZWdpc3RlckZpZWxkIiwicmV0YWluRmllbGQiLCJyZWxlYXNlRmllbGQiLCJjb3VudCIsInJlc2V0RmllbGRzIiwidG91Y2hlZCIsInZhbGlkYXRpbmciLCJoYW5kbGVSZXNldCIsImUiLCJwcmV2ZW50RGVmYXVsdCIsImdldEZpZWxkVmFsdWUiLCJnZXRGaWVsZHNWYWx1ZSIsIm5hbWVMaXN0IiwicmVkdWNlIiwiYWNjIiwic2V0RmllbGRzVmFsdWUiLCJ2YWx1ZXNQYXRjaCIsInVwZGF0ZWRWYWx1ZXMiLCJzb21lIiwiX2kiLCJfT2JqZWN0JGVudHJpZXMiLCJlbnRyaWVzIiwiX09iamVjdCRlbnRyaWVzJF9pIiwiX3NsaWNlZFRvQXJyYXkiLCJmb3JtSW5zdGFuY2UiLCJzdGF0ZSIsImZpZWxkUnVsZXMiLCJnZXRJbml0aWFsVmFsdWVzIl0sIm1hcHBpbmdzIjoiOztBQUFBLFNBQVNBLE9BQU8sRUFBRUMsTUFBTSxRQUFRLE9BQU87QUFFdkMsT0FBT0MsZ0JBQWdCLE1BQU0sZ0NBQWdDO0FBQzdELE9BQU9DLGFBQWEsTUFBTSw2QkFBNkI7QUFDdkQsU0FBU0MsZ0JBQWdCLEVBQUVDLFlBQVksRUFBRUMsY0FBYyxRQUFRLGNBQWM7QUFDN0UsU0FBU0MsZUFBZSxFQUFFQyxrQkFBa0IsUUFBUSxjQUFjO0FBV2xFLE9BQU8sSUFBTUMsV0FBVyxHQUFHLFNBQWRBLFdBQVdB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S0FBSyxDQUFDcEIsT0FBTztJQUN0QjtJQUNBcUIsVUFBVSxFQUFFbkUsYUFBYSxDQUFDSixPQUFPO0lBQ2pDNEMsYUFBYSxFQUFiQSxhQUFhO0lBQ2J4QixzQkFBc0IsRUFBdEJBLHNCQUFzQjtJQUN0QkYsc0JBQXNCLEVBQXRCQSxzQkFBc0I7SUFDdEJaLGtCQUFrQixFQUFsQkEsa0JBQWtCO0lBQ2xCRyxzQkFBc0IsRUFBdEJBLHNCQUFzQjtJQUN0QkUsd0JBQXdCLEVBQXhCQSx3QkFBd0I7SUFDeEJjLGFBQWEsRUFBYkEsYUFBYTtJQUNiTyxhQUFhLEVBQWJBLGFBQWE7SUFDYkksZUFBZSxFQUFmQSxlQUFlO0lBQ2Z3QixjQUFjLEVBQWRBLGNBQWM7SUFDZEwsYUFBYSxFQUFiQSxhQUFhO0lBQ2JDLGNBQWMsRUFBRUEsY0FBNEQ7SUFDNUVkLGFBQWEsRUFBYkEsYUFBYTtJQUNiRyxlQUFlLEVBQWZBLGVBQWU7SUFDZkMsV0FBVyxFQUFYQSxXQUFXO0lBQ1hDLFlBQVksRUFBWkEsWUFBWTtJQUNaSyxXQUFXLEVBQVhBLFdBQVc7SUFDWEgsV0FBVyxFQUFYQSxXQUFXO0lBQ1hvQixZQUFZLEVBQVpBLFlBQVk7SUFDWmxFLEtBQUssRUFBTEEsS0FBSztJQUNMcUUsZ0JBQWdCLEVBQUUsU0FBbEJBLGdCQUFnQkEsQ0FBQTtNQUFBLE9BQVF2RSxrQkFBa0I7SUFBQTtFQ3pDMUMsQ0QwQ0Q7QUFDSCxDQUFDO0FBRUQsZUFBZW5CLFdBQVciLCJmaWxlIjoiY29tcG9uZW50cy9Qcm9Gb3JtL2NvcmUvaG9va3MvdXNlRm9ybUNvcmUuanMiLCJzb3VyY2VzQ29udGVudCI6W251bGwsImltcG9ydCB7IHVzZU1lbW8sIHVzZVJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB1c2VFdmVudENhbGxiYWNrIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlRXZlbnRDYWxsYmFjayc7XG5pbXBvcnQgdXNlTWVtb2l6ZWRGbiBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZU1lbW9pemVkRm4nO1xuaW1wb3J0IHsgbWVyZ2VWYWx1ZXNQYXRjaCwgcmVzb2x2ZVZhbHVlLCBzZXROZXN0ZWRWYWx1ZSB9IGZyb20gJy4uL3BhdGhVdGlscyc7XG5pbXBvcnQgeyBjcmVhdGVGb3JtU3RvcmUsIHNhbWVWYWxpZGF0aW9uTm9kZSB9IGZyb20gJy4uL2Zvcm1TdG9yZSc7XG5leHBvcnQgY29uc3QgdXNlRm9ybUNvcmUgPSAoY29uZmlnID0ge30pID0+IHtcbiAgICBjb25zdCB7IGluaXRpYWxWYWx1ZXMgPSB7fSwgb25WYWx1ZXNDaGFuZ2UsIG9uUmVzZXQsIHNpemUgPSAnbGFyZ2UnLCBsYWJlbEFsaWduID0gJ2xlZnQnLCBkaXNhYmxlZCA9IGZhbHNlLCB2YWxpZGF0ZVRyaWdnZXIgPSAnb25DaGFuZ2UnLCB9ID0gY29uZmlnO1xuICAgIC8vIGluaXRpYWxWYWx1ZXMgaXMgTU9VTlQtT05MWSAodGhlIGRvY3VtZW50ZWQgY29udHJhY3QpOiBmcmVlemUgdGhlIGZpcnN0XG4gICAgLy8gcmVuZGVyJ3MgdmFsdWUgc28gcmVzZXRGaWVsZHMgYWx3YXlzIHJlc3RvcmVzIHRoZSBtb3VudC10aW1lIGRlZmF1bHRzLFxuICAgIC8vIGV2ZW4gd2hlbiB0aGUgY29uc3VtZXIgcmUtcmVuZGVycyB3aXRoIGEgZGlmZmVyZW50IChlLmcuIGNvbnRyb2xsZWQpXG4gICAgLy8gaW5pdGlhbFZhbHVlcyBvYmplY3QuXG4gICAgY29uc3QgaW5pdGlhbFZhbHVlc1JlZiA9IHVzZVJlZihudWxsKTtcbiAgICBpZiAoaW5pdGlhbFZhbHVlc1JlZi5jdXJyZW50ID09PSBudWxsKSB7XG4gICAgICAgIGluaXRpYWxWYWx1ZXNSZWYuY3VycmVudCA9IGluaXRpYWxWYWx1ZXM7XG4gICAgfVxuICAgIGNvbnN0IG1vdW50SW5pdGlhbFZhbHVlcyA9IGluaXRpYWxWYWx1ZXNSZWYuY3VycmVudDtcbiAgICAvLyBBbGwgdm9sYXRpbGUgZm9ybSBzdGF0ZSBsaXZlcyBpbiBhbiBleHRlcm5hbCBzdG9yZSwgTk9UIFJlYWN0IHN0YXRlIOKAlCBhXG4gICAgLy8ga2V5c3Ryb2tlIG11c3QgbmV2ZXIgcmUtcmVuZGVyIHRoZSBjb21wb25lbnQgdGhhdCBvd25zIHRoZSBmb3JtLiBGaWVsZHNcbiAgICAvLyBhbmQgd2F0Y2hlcnMgc3Vic2NyaWJlIHdpdGggcGVyLWZpZWxkIHNlbGVjdG9ycyAodXNlU3RvcmVTZWxlY3Rvcik7IGV2ZXJ5XG4gICAgLy8gbXV0YXRvciBiZWxvdyByZWFkcyB0aGUgTEFURVNUIHN0YXRlIHZpYSBzdG9yZS5nZXRTdGF0ZSgpLCB3aGljaCBhbHNvXG4gICAgLy8ga2VlcHMgbXVsdGlwbGUgd3JpdGVzIGluIHRoZSBzYW1lIHRpY2sgdmlzaWJsZSB0byBlYWNoIG90aGVyLlxuICAgIGNvbnN0IHN0b3JlUmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGlmIChzdG9yZVJlZi5jdXJyZW50ID09PSBudWxsKSB7XG4gICAgICAgIHN0b3JlUmVmLmN1cnJlbnQgPSBjcmVhdGVGb3JtU3RvcmUobW91bnRJbml0aWFsVmFsdWVzKTtcbiAgICB9XG4gICAgY29uc3Qgc3RvcmUgPSBzdG9yZVJlZi5jdXJyZW50O1xuICAgIC8vIExpdmUgcnVsZSByZWdpc3RyeSDigJQgT05FIHN0YWJsZSBvYmplY3QgbXV0YXRlZCBpbiBwbGFjZS4gUmVnaXN0cmF0aW9uIG11c3RcbiAgICAvLyBub3QgdHJpZ2dlciByZW5kZXJzLCBhbmQgc3VibWl0LXRpbWUgdmFsaWRhdGlvbiBtdXN0IGFsd2F5cyByZWFkIHRoZSBsYXRlc3RcbiAgICAvLyBydWxlcyAodGhleSBjYW4gY2hhbmdlIGJldHdlZW4gcmVuZGVycywgZS5nLiBhIGNvbmRpdGlvbmFsIGByZXF1aXJlZGApLlxuICAgIGNvbnN0IGZpZWxkUnVsZXNSZWYgPSB1c2VSZWYoe30pO1xuICAgIC8vIFBlci1maWVsZCB2YWxpZGF0aW9uIHJ1biBlcG9jaHMuIEVWRVJZIHZhbGlkYXRpb24gcnVuIChzeW5jIG9yIGFzeW5jKVxuICAgIC8vIGJ1bXBzIGl0cyBmaWVsZCdzIGVwb2NoOyBhbiBhc3luYyBydW4gcmUtY2hlY2tzIGl0cyBjYXB0dXJlZCBlcG9jaCBhdFxuICAgIC8vIHNldHRsZSB0aW1lIGFuZCBkaXNjYXJkcyBhIFNUQUxFIG91dGNvbWUg4oCUIHRoZSBzYW1lIHByb3RlY3Rpb24gYXNcbiAgICAvLyByYy1maWVsZC1mb3JtJ3MgdmFsaWRhdGVQcm9taXNlIGlkZW50aXR5IGNoZWNrLiBXaXRob3V0IGl0LCBhIHNsb3cgYXN5bmNcbiAgICAvLyB2YWxpZGF0b3IgKGUuZy4gYSBzZXJ2ZXItc2lkZSB1bmlxdWVuZXNzIGNoZWNrIHN0YXJ0ZWQgb24gYmx1cikgY291bGRcbiAgICAvLyBzZXR0bGUgYWZ0ZXIgdGhlIHVzZXIgYWxyZWFkeSBmaXhlZCB0aGUgdmFsdWUgYW5kIHN0YW1wIGEgc3RhbGUgZXJyb3JcbiAgICAvLyBvdmVyIGEgbmV3ZXIsIHBhc3NpbmcgcmVzdWx0LlxuICAgIGNvbnN0IHZhbGlkYXRpb25FcG9jaFJlZiA9IHVzZVJlZih7fSk7XG4gICAgY29uc3QgYmVnaW5WYWxpZGF0aW9uUnVuID0gdXNlTWVtb2l6ZWRGbigobmFtZSkgPT4ge1xuICAgICAgICBjb25zdCBuZXh0ID0gKHZhbGlkYXRpb25FcG9jaFJlZi5jdXJyZW50W25hbWVdIHx8IDApICsgMTtcbiAgICAgICAgdmFsaWRhdGlvbkVwb2NoUmVmLmN1cnJlbnRbbmFtZV0gPSBuZXh0O1xuICAgICAgICByZXR1cm4gbmV4dDtcbiAgICB9KTtcbiAgICBjb25zdCBpc1ZhbGlkYXRpb25SdW5DdXJyZW50ID0gdXNlTWVtb2l6ZWRGbigobmFtZSwgZXBvY2gpID0+IHZhbGlkYXRpb25FcG9jaFJlZi5jdXJyZW50W25hbWVdID09PSBlcG9jaCk7XG4gICAgLy8gQnVtcCAobmV2ZXIgZGVsZXRlIOKAlCBkZWxldGlvbiB3b3VsZCBsZXQgYSBuZXcgcnVuIHJlLWlzc3VlIGFuIG9sZCBlcG9jaFxuICAgIC8vIG51bWJlciBhbmQgY29sbGlkZSB3aXRoIGEgc3RpbGwtaW4tZmxpZ2h0IHByZS1yZXNldCBydW4pLlxuICAgIGNvbnN0IGludmFsaWRhdGVWYWxpZGF0aW9uUnVucyA9IHVzZU1lbW9pemVkRm4oKG5hbWVzKSA9PiB7XG4gICAgICAgIGNvbnN0IGtleXMgPSBuYW1lcyAhPT0gbnVsbCAmJiBuYW1lcyAhPT0gdm9pZCAwID8gbmFtZXMgOiBPYmplY3Qua2V5cyh2YWxpZGF0aW9uRXBvY2hSZWYuY3VycmVudCk7XG4gICAgICAgIGtleXMuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgICAgICBpZiAodmFsaWRhdGlvbkVwb2NoUmVmLmN1cnJlbnRba2V5XSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgdmFsaWRhdGlvbkVwb2NoUmVmLmN1cnJlbnRba2V5XSArPSAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9KTtcbiAgICAvLyBJbnN0YW5jZSBoYW5kZWQgdG8gZnVuY3Rpb24tZm9ybSBydWxlcy4gRGVmYXVsdHMgdG8gdGhlIGNvcmUgbWV0aG9kc1xuICAgIC8vIChhc3NpZ25lZCBhdCB0aGUgZW5kIG9mIHRoaXMgaG9vayBib2R5KTsgdXNlRm9ybSB1cGdyYWRlcyBpdCB0byB0aGUgRlVMTFxuICAgIC8vIGZvcm0gaW5zdGFuY2Ugb25jZSBpdCBoYXMgYnVpbHQgb25lLCBzbyBydWxlcyBzZWUgdGhlIHNhbWUgY29udGV4dCBvblxuICAgIC8vIGV2ZXJ5IHBhdGggKGludGVyYWN0aXZlLCBibHVyLCBzdWJtaXQpLlxuICAgIGNvbnN0IHJ1bGVDb250ZXh0SW5zdGFuY2VSZWYgPSB1c2VSZWYoe30pO1xuICAgIGNvbnN0IHNldFJ1bGVDb250ZXh0SW5zdGFuY2UgPSB1c2VNZW1vaXplZEZuKChpbnN0YW5jZSkgPT4ge1xuICAgICAgICBydWxlQ29udGV4dEluc3RhbmNlUmVmLmN1cnJlbnQgPSBpbnN0YW5jZTtcbiAgICB9KTtcbiAgICBjb25zdCBnZXRSdWxlQ29udGV4dEluc3RhbmNlID0gdXNlTWVtb2l6ZWRGbigoKSA9PiBydWxlQ29udGV4dEluc3RhbmNlUmVmLmN1cnJlbnQpO1xuICAgIGNvbnN0IGNvbW1pdFZhbHVlcyA9IHVzZU1lbW9pemVkRm4oKG5ld1ZhbHVlcykgPT4ge1xuICAgICAgICBzdG9yZS5zZXRTdGF0ZSh7IHZhbHVlczogbmV3VmFsdWVzIH0pO1xuICAgIH0pO1xuICAgIC8vIE5PVEU6IHNldHRpbmcgYSB2YWx1ZSBkb2VzIE5PVCB0b3VjaCB0aGUgZmllbGQncyBlcnJvciDigJQgZXJyb3JzIGFyZVxuICAgIC8vIGNsZWFyZWQgZXhjbHVzaXZlbHkgYnkgdmFsaWRhdGlvbiBydW5zICh3aG9zZSB0aW1pbmcgZm9sbG93cyB0aGVcbiAgICAvLyB2YWxpZGF0ZVRyaWdnZXIgY29uZmlnKSwgc28gYW4gb25CbHVyLW9ubHkgZmllbGQga2VlcHMgaXRzIGVycm9yIHdoaWxlXG4gICAgLy8gdGhlIHVzZXIgaXMgc3RpbGwgdHlwaW5nLlxuICAgIGNvbnN0IHNldEZpZWxkVmFsdWUgPSB1c2VNZW1vaXplZEZuKChuYW1lLCB2YWx1ZSkgPT4ge1xuICAgICAgICBjb25zdCBwcmV2ID0gc3RvcmUuZ2V0U3RhdGUoKS52YWx1ZXM7XG4gICAgICAgIGNvbnN0IG5ld1ZhbHVlcyA9IG5hbWUuaW5jbHVkZXMoJy4nKVxuICAgICAgICAgICAgPyBzZXROZXN0ZWRWYWx1ZShwcmV2LCBuYW1lLCB2YWx1ZSlcbiAgICAgICAgICAgIDogT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBwcmV2KSwgeyBbbmFtZV06IHZhbHVlIH0pO1xuICAgICAgICBjb21taXRWYWx1ZXMobmV3VmFsdWVzKTtcbiAgICAgICAgb25WYWx1ZXNDaGFuZ2UgPT09IG51bGwgfHwgb25WYWx1ZXNDaGFuZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uVmFsdWVzQ2hhbmdlKHsgW25hbWVdOiB2YWx1ZSB9LCBuZXdWYWx1ZXMpO1xuICAgIH0pO1xuICAgIGNvbnN0IHNldEZpZWxkRXJyb3IgPSB1c2VNZW1vaXplZEZuKChuYW1lLCBlcnJvcikgPT4ge1xuICAgICAgICBjb25zdCBlcnJvcnMgPSBzdG9yZS5nZXRTdGF0ZSgpLmVycm9ycztcbiAgICAgICAgaWYgKGVycm9yID09PSBudWxsKSB7XG4gICAgICAgICAgICBpZiAoIWVycm9yc1tuYW1lXSlcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBjb25zdCBuZXdFcnJvcnMgPSBPYmplY3QuYXNzaWduKHt9LCBlcnJvcnMpO1xuICAgICAgICAgICAgZGVsZXRlIG5ld0Vycm9yc1tuYW1lXTtcbiAgICAgICAgICAgIHN0b3JlLnNldFN0YXRlKHsgZXJyb3JzOiBuZXdFcnJvcnMgfSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHNhbWVWYWxpZGF0aW9uTm9kZShlcnJvcnNbbmFtZV0sIGVycm9yKSlcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgc3RvcmUuc2V0U3RhdGUoeyBlcnJvcnM6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgZXJyb3JzKSwgeyBbbmFtZV06IGVycm9yIH0pIH0pO1xuICAgIH0pO1xuICAgIGNvbnN0IHNldEZpZWxkV2FybmluZyA9IHVzZU1lbW9pemVkRm4oKG5hbWUsIHdhcm5pbmcpID0+IHtcbiAgICAgICAgY29uc3Qgd2FybmluZ3MgPSBzdG9yZS5nZXRTdGF0ZSgpLndhcm5pbmdzO1xuICAgICAgICBpZiAod2FybmluZyA9PT0gbnVsbCkge1xuICAgICAgICAgICAgaWYgKCF3YXJuaW5nc1tuYW1lXSlcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBjb25zdCBuZXdXYXJuaW5ncyA9IE9iamVjdC5hc3NpZ24oe30sIHdhcm5pbmdzKTtcbiAgICAgICAgICAgIGRlbGV0ZSBuZXdXYXJuaW5nc1tuYW1lXTtcbiAgICAgICAgICAgIHN0b3JlLnNldFN0YXRlKHsgd2FybmluZ3M6IG5ld1dhcm5pbmdzIH0pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzYW1lVmFsaWRhdGlvbk5vZGUod2FybmluZ3NbbmFtZV0sIHdhcm5pbmcpKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBzdG9yZS5zZXRTdGF0ZSh7IHdhcm5pbmdzOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHdhcm5pbmdzKSwgeyBbbmFtZV06IHdhcm5pbmcgfSkgfSk7XG4gICAgfSk7XG4gICAgLy8gTW91bnRlZC1pbnN0YW5jZSBjb3VudHMgcGVyIGZpZWxkIG5hbWUsIHBsdXMgd2hldGhlciB0aGUgQ1VSUkVOVCBydWxlc1xuICAgIC8vIHJlZ2lzdHJhdGlvbiB3YXMgbWFkZSBieSBhIGNvdW50ZWQgaW5zdGFuY2UuIFJ1bGVzIGFyZSByZW1vdmVkIG9ubHkgd2hlblxuICAgIC8vIHRoZSBMQVNUIG1vdW50ZWQgaW5zdGFuY2UgZm9yIGEgbmFtZSByZWxlYXNlczogd2l0aCB0d28gc2FtZS1uYW1lIGZpZWxkc1xuICAgIC8vIG1vdW50ZWQsIHRoZSBmaXJzdCB1bm1vdW50IG11c3Qgbm90IHdpcGUgdGhlIHJlZ2lzdHJhdGlvbiB3aGlsZSB0aGVcbiAgICAvLyBzdXJ2aXZvciAocG9zc2libHkgbWVtby1iYWlsZWQsIHNvIG5vdCByZS1yZW5kZXJpbmcgdG8gcmUtcmVnaXN0ZXIpIHN0aWxsXG4gICAgLy8gcmVsaWVzIG9uIGl0IGZvciBzdWJtaXQtdGltZSB2YWxpZGF0aW9uLiBBIE1BTlVBTCByZWdpc3RlckZpZWxkIChub1xuICAgIC8vIG1vdW50ZWQgaG9sZGVyLCBvd25lZD1mYWxzZSkgc3Vydml2ZXMgdGhlIHVubW91bnQgb2YgcGlnZ3liYWNraW5nXG4gICAgLy8gaW5zdGFuY2VzIHRoYXQgbmV2ZXIgcmVnaXN0ZXJlZCBydWxlcyB0aGVtc2VsdmVzLlxuICAgIC8vIE5PVEU6IGNhbGxlcnMgbXVzdCByZXRhaW4gQkVGT1JFIHJlZ2lzdGVyaW5nIChyZXRhaW4gZWZmZWN0IGRlY2xhcmVkXG4gICAgLy8gZmlyc3QpLCBvciB0aGUgcmVnaXN0cmF0aW9uIGlzIG1pc2NsYXNzaWZpZWQgYXMgbWFudWFsIGFuZCBsZWFrcy5cbiAgICBjb25zdCBmaWVsZE1vdW50Q291bnRzUmVmID0gdXNlUmVmKHt9KTtcbiAgICBjb25zdCBmaWVsZFJlZ2lzdHJhdGlvbk93bmVkUmVmID0gdXNlUmVmKHt9KTtcbiAgICBjb25zdCByZWdpc3RlckZpZWxkID0gdXNlTWVtb2l6ZWRGbigobmFtZSwgcnVsZXMpID0+IHtcbiAgICAgICAgZmllbGRSdWxlc1JlZi5jdXJyZW50W25hbWVdID0gcnVsZXM7XG4gICAgICAgIGZpZWxkUmVnaXN0cmF0aW9uT3duZWRSZWYuY3VycmVudFtuYW1lXSA9IChmaWVsZE1vdW50Q291bnRzUmVmLmN1cnJlbnRbbmFtZV0gfHwgMCkgPiAwO1xuICAgIH0pO1xuICAgIGNvbnN0IGdldEZpZWxkUnVsZXMgPSB1c2VNZW1vaXplZEZuKChuYW1lKSA9PiB7XG4gICAgICAgIHJldHVybiBmaWVsZFJ1bGVzUmVmLmN1cnJlbnRbbmFtZV07XG4gICAgfSk7XG4gICAgY29uc3QgdW5yZWdpc3RlckZpZWxkID0gdXNlTWVtb2l6ZWRGbigobmFtZSkgPT4ge1xuICAgICAgICBkZWxldGUgZmllbGRSdWxlc1JlZi5jdXJyZW50W25hbWVdO1xuICAgICAgICBkZWxldGUgZmllbGRSZWdpc3RyYXRpb25Pd25lZFJlZi5jdXJyZW50W25hbWVdO1xuICAgIH0pO1xuICAgIGNvbnN0IHJldGFpbkZpZWxkID0gdXNlTWVtb2l6ZWRGbigobmFtZSkgPT4ge1xuICAgICAgICBmaWVsZE1vdW50Q291bnRzUmVmLmN1cnJlbnRbbmFtZV0gPSAoZmllbGRNb3VudENvdW50c1JlZi5jdXJyZW50W25hbWVdIHx8IDApICsgMTtcbiAgICB9KTtcbiAgICBjb25zdCByZWxlYXNlRmllbGQgPSB1c2VNZW1vaXplZEZuKChuYW1lKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvdW50ID0gKGZpZWxkTW91bnRDb3VudHNSZWYuY3VycmVudFtuYW1lXSB8fCAwKSAtIDE7XG4gICAgICAgIGlmIChjb3VudCA8PSAwKSB7XG4gICAgICAgICAgICBkZWxldGUgZmllbGRNb3VudENvdW50c1JlZi5jdXJyZW50W25hbWVdO1xuICAgICAgICAgICAgaWYgKGZpZWxkUmVnaXN0cmF0aW9uT3duZWRSZWYuY3VycmVudFtuYW1lXSkge1xuICAgICAgICAgICAgICAgIGRlbGV0ZSBmaWVsZFJ1bGVzUmVmLmN1cnJlbnRbbmFtZV07XG4gICAgICAgICAgICAgICAgZGVsZXRlIGZpZWxkUmVnaXN0cmF0aW9uT3duZWRSZWYuY3VycmVudFtuYW1lXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGZpZWxkTW91bnRDb3VudHNSZWYuY3VycmVudFtuYW1lXSA9IGNvdW50O1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgLy8gUHVyZSBzdGF0ZSBBUEk6IHRoZSBpbXBlcmF0aXZlIHJlc2V0RmllbGRzKClcbiAgICAvLyBuZXZlciBmaXJlcyBvblJlc2V0LiBUaGUgY2FsbGJhY2sgYmVsb25ncyB0byB0aGUgcmVzZXQgQUNUSU9OIGxheWVyXG4gICAgLy8gKHN1Ym1pdHRlciBidXR0b24gLyBuYXRpdmUgcmVzZXQgZXZlbnQpLCB3aGljaCBmaXJlcyBpdCBleGFjdGx5IG9uY2UuXG4gICAgY29uc3QgcmVzZXRGaWVsZHMgPSB1c2VNZW1vaXplZEZuKCgpID0+IHtcbiAgICAgICAgLy8gSW52YWxpZGF0ZSBpbi1mbGlnaHQgYXN5bmMgdmFsaWRhdGlvbiBydW5zIOKAlCB0aGVpciByZXN1bHRzIGJlbG9uZyB0b1xuICAgICAgICAvLyBwcmUtcmVzZXQgdmFsdWVzIGFuZCBtdXN0IG5vdCBzdGFtcCBlcnJvcnMgb250byB0aGUgcmVzZXQgZm9ybS5cbiAgICAgICAgaW52YWxpZGF0ZVZhbGlkYXRpb25SdW5zKCk7XG4gICAgICAgIHN0b3JlLnNldFN0YXRlKHtcbiAgICAgICAgICAgIHZhbHVlczogbW91bnRJbml0aWFsVmFsdWVzLFxuICAgICAgICAgICAgZXJyb3JzOiB7fSxcbiAgICAgICAgICAgIHdhcm5pbmdzOiB7fSxcbiAgICAgICAgICAgIHRvdWNoZWQ6IHt9LFxuICAgICAgICAgICAgdmFsaWRhdGluZzoge30sXG4gICAgICAgIH0pO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVJlc2V0ID0gdXNlRXZlbnRDYWxsYmFjaygoZSkgPT4ge1xuICAgICAgICBlID09PSBudWxsIHx8IGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgcmVzZXRGaWVsZHMoKTtcbiAgICAgICAgb25SZXNldCA9PT0gbnVsbCB8fCBvblJlc2V0ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvblJlc2V0KCk7XG4gICAgfSk7XG4gICAgY29uc3QgZ2V0RmllbGRWYWx1ZSA9IHVzZU1lbW9pemVkRm4oKG5hbWUpID0+IHtcbiAgICAgICAgcmV0dXJuIHJlc29sdmVWYWx1ZShzdG9yZS5nZXRTdGF0ZSgpLnZhbHVlcywgbmFtZSk7XG4gICAgfSk7XG4gICAgY29uc3QgZ2V0RmllbGRzVmFsdWUgPSB1c2VNZW1vaXplZEZuKChuYW1lTGlzdCkgPT4ge1xuICAgICAgICBjb25zdCB2YWx1ZXMgPSBzdG9yZS5nZXRTdGF0ZSgpLnZhbHVlcztcbiAgICAgICAgaWYgKCFuYW1lTGlzdClcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZXM7XG4gICAgICAgIHJldHVybiBuYW1lTGlzdC5yZWR1Y2UoKGFjYywgbmFtZSkgPT4ge1xuICAgICAgICAgICAgYWNjW25hbWVdID0gcmVzb2x2ZVZhbHVlKHZhbHVlcywgbmFtZSk7XG4gICAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICB9LCB7fSk7XG4gICAgfSk7XG4gICAgY29uc3Qgc2V0RmllbGRzVmFsdWUgPSB1c2VNZW1vaXplZEZuKChuZXdWYWx1ZXMpID0+IHtcbiAgICAgICAgY29uc3QgdmFsdWVzUGF0Y2ggPSBuZXdWYWx1ZXM7XG4gICAgICAgIGNvbnN0IHByZXYgPSBzdG9yZS5nZXRTdGF0ZSgpLnZhbHVlcztcbiAgICAgICAgbGV0IHVwZGF0ZWRWYWx1ZXM7XG4gICAgICAgIGlmIChPYmplY3Qua2V5cyh2YWx1ZXNQYXRjaCkuc29tZSgoa2V5KSA9PiBrZXkuaW5jbHVkZXMoJy4nKSkpIHtcbiAgICAgICAgICAgIC8vIERvdC1wYXRoIGtleXMgd3JpdGUgaW50byB0aGUgTkVTVEVEIHN0cnVjdHVyZSAodGhlIHNldEZpZWxkVmFsdWVcbiAgICAgICAgICAgIC8vIGNvbnRyYWN0KSDigJQgYSBzaGFsbG93IG1lcmdlIHdvdWxkIGxhbmQgdGhlbSBhcyBsaXRlcmFsIHRvcC1sZXZlbFxuICAgICAgICAgICAgLy8ga2V5cyB0aGF0IHRoZSBuZXN0ZWQtYXdhcmUgcmVhZGVycyBuZXZlciBmaW5kLlxuICAgICAgICAgICAgdXBkYXRlZFZhbHVlcyA9IHByZXY7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyh2YWx1ZXNQYXRjaCkpIHtcbiAgICAgICAgICAgICAgICB1cGRhdGVkVmFsdWVzID0ga2V5LmluY2x1ZGVzKCcuJylcbiAgICAgICAgICAgICAgICAgICAgPyBzZXROZXN0ZWRWYWx1ZSh1cGRhdGVkVmFsdWVzLCBrZXksIHZhbHVlKVxuICAgICAgICAgICAgICAgICAgICA6IG1lcmdlVmFsdWVzUGF0Y2godXBkYXRlZFZhbHVlcywgeyBba2V5XTogdmFsdWUgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB1cGRhdGVkVmFsdWVzID0gbWVyZ2VWYWx1ZXNQYXRjaChwcmV2LCB2YWx1ZXNQYXRjaCk7XG4gICAgICAgIH1cbiAgICAgICAgY29tbWl0VmFsdWVzKHVwZGF0ZWRWYWx1ZXMpO1xuICAgICAgICBvblZhbHVlc0NoYW5nZSA9PT0gbnVsbCB8fCBvblZhbHVlc0NoYW5nZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25WYWx1ZXNDaGFuZ2UodmFsdWVzUGF0Y2gsIHVwZGF0ZWRWYWx1ZXMpO1xuICAgIH0pO1xuICAgIC8vIFNlZWQgdGhlIHJ1bGUtY29udGV4dCBpbnN0YW5jZSB3aXRoIHRoZSBjb3JlIG1ldGhvZHMgZXhhY3RseSBvbmNlIOKAlFxuICAgIC8vIHVzZUZvcm0ncyByaWNoZXIgaW5zdGFuY2UgbXVzdCBub3QgYmUgZG93bmdyYWRlZCBvbiBsYXRlciByZW5kZXJzLlxuICAgIGlmIChPYmplY3Qua2V5cyhydWxlQ29udGV4dEluc3RhbmNlUmVmLmN1cnJlbnQpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICBydWxlQ29udGV4dEluc3RhbmNlUmVmLmN1cnJlbnQgPSB7XG4gICAgICAgICAgICBnZXRGaWVsZFZhbHVlOiBnZXRGaWVsZFZhbHVlLFxuICAgICAgICAgICAgZ2V0RmllbGRzVmFsdWU6IGdldEZpZWxkc1ZhbHVlLFxuICAgICAgICAgICAgc2V0RmllbGRWYWx1ZTogc2V0RmllbGRWYWx1ZSxcbiAgICAgICAgICAgIHNldEZpZWxkc1ZhbHVlOiBzZXRGaWVsZHNWYWx1ZSxcbiAgICAgICAgICAgIHJlc2V0RmllbGRzLFxuICAgICAgICB9O1xuICAgIH1cbiAgICBjb25zdCBmb3JtSW5zdGFuY2UgPSB1c2VNZW1vKCgpID0+ICh7XG4gICAgICAgIHJlc2V0RmllbGRzLFxuICAgICAgICBnZXRGaWVsZFZhbHVlOiBnZXRGaWVsZFZhbHVlLFxuICAgICAgICBnZXRGaWVsZHNWYWx1ZTogZ2V0RmllbGRzVmFsdWUsXG4gICAgICAgIHNldEZpZWxkc1ZhbHVlOiBzZXRGaWVsZHNWYWx1ZSxcbiAgICAgICAgc2V0RmllbGRWYWx1ZTogc2V0RmllbGRWYWx1ZSxcbiAgICB9KSwgW1xuICAgICAgICByZXNldEZpZWxkcyxcbiAgICAgICAgZ2V0RmllbGRWYWx1ZSxcbiAgICAgICAgZ2V0RmllbGRzVmFsdWUsXG4gICAgICAgIHNldEZpZWxkc1ZhbHVlLFxuICAgICAgICBzZXRGaWVsZFZhbHVlLFxuICAgIF0pO1xuICAgIC8vIFJlbmRlci10aW1lIHNuYXBzaG90IOKAlCBrZXB0IGZvciB0aGUgVXNlRm9ybUNvcmVSZXR1cm4gY29udHJhY3QuIFJlYWN0aXZlXG4gICAgLy8gY29uc3VtZXJzIG11c3QgZ28gdGhyb3VnaCB0aGUgc3RvcmUsIG5ldmVyIHRocm91Z2ggdGhlc2UgZmllbGRzLlxuICAgIGNvbnN0IHN0YXRlID0gc3RvcmUuZ2V0U3RhdGUoKTtcbiAgICByZXR1cm4ge1xuICAgICAgICB2YWx1ZXM6IHN0YXRlLnZhbHVlcyxcbiAgICAgICAgZXJyb3JzOiBzdGF0ZS5lcnJvcnMsXG4gICAgICAgIHdhcm5pbmdzOiBzdGF0ZS53YXJuaW5ncyxcbiAgICAgICAgdG91Y2hlZDogc3RhdGUudG91Y2hlZCxcbiAgICAgICAgLy8gTGl2ZSByZWdpc3RyeSDigJQgc3RhYmxlIGlkZW50aXR5LCBtdXRhdGVkIGluIHBsYWNlIGJ5IHJlZ2lzdGVyL3VucmVnaXN0ZXIuXG4gICAgICAgIGZpZWxkUnVsZXM6IGZpZWxkUnVsZXNSZWYuY3VycmVudCxcbiAgICAgICAgZ2V0RmllbGRSdWxlcyxcbiAgICAgICAgZ2V0UnVsZUNvbnRleHRJbnN0YW5jZSxcbiAgICAgICAgc2V0UnVsZUNvbnRleHRJbnN0YW5jZSxcbiAgICAgICAgYmVnaW5WYWxpZGF0aW9uUnVuLFxuICAgICAgICBpc1ZhbGlkYXRpb25SdW5DdXJyZW50LFxuICAgICAgICBpbnZhbGlkYXRlVmFsaWRhdGlvblJ1bnMsXG4gICAgICAgIHNldEZpZWxkVmFsdWUsXG4gICAgICAgIHNldEZpZWxkRXJyb3IsXG4gICAgICAgIHNldEZpZWxkV2FybmluZyxcbiAgICAgICAgc2V0RmllbGRzVmFsdWUsXG4gICAgICAgIGdldEZpZWxkVmFsdWUsXG4gICAgICAgIGdldEZpZWxkc1ZhbHVlOiBnZXRGaWVsZHNWYWx1ZSxcbiAgICAgICAgcmVnaXN0ZXJGaWVsZCxcbiAgICAgICAgdW5yZWdpc3RlckZpZWxkLFxuICAgICAgICByZXRhaW5GaWVsZCxcbiAgICAgICAgcmVsZWFzZUZpZWxkLFxuICAgICAgICBoYW5kbGVSZXNldCxcbiAgICAgICAgcmVzZXRGaWVsZHMsXG4gICAgICAgIGZvcm1JbnN0YW5jZSxcbiAgICAgICAgc3RvcmUsXG4gICAgICAgIGdldEluaXRpYWxWYWx1ZXM6ICgpID0+IG1vdW50SW5pdGlhbFZhbHVlcyxcbiAgICB9O1xufTtcbmV4cG9ydCBkZWZhdWx0IHVzZUZvcm1Db3JlOyJdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
|
|
@@ -3,4 +3,4 @@ export { useForm } from './hooks/useForm';
|
|
|
3
3
|
export { useFormCore } from './hooks/useFormCore';
|
|
4
4
|
export * from './interface';
|
|
5
5
|
export * from './constants';
|
|
6
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,
|
|
6
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9zcmMvY29tcG9uZW50cy9Qcm9Gb3JtL2NvcmUvaW5kZXgudHMiXSwibmFtZXMiOlsidXNlRm9ybUl0ZW0iLCJ1c2VGb3JtIiwidXNlRm9ybUNvcmUiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLFdBQVcsUUFBUSxlQUFlO0FBRTNDLFNBQVNDLE9BQU8sUUFBUSxpQkFBaUI7QUFDekMsU0FBU0MsV0FBVyxRQUFRLHFCQUFxQjtBQUNqRCxjQUFjLGFBQWE7QUFDM0IsY0FBYyxhQUFhIiwiZmlsZSI6ImNvbXBvbmVudHMvUHJvRm9ybS9jb3JlL2luZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOltudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50cy9Qcm9Gb3JtL2NvcmUvaW50ZXJmYWNlLmpzIiwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIiwic291cmNlcyI6WyJjb21wb25lbnRzL1Byb0Zvcm0vY29yZS9pbnRlcmZhY2UuanMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHt9OyJdLCJtYXBwaW5ncyI6IkFBQUEiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50cy9Qcm9Gb3JtL2NvcmUvbmFtZVBhdGhUeXBlLmpzIiwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIiwic291cmNlcyI6WyJjb21wb25lbnRzL1Byb0Zvcm0vY29yZS9uYW1lUGF0aFR5cGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHt9OyJdLCJtYXBwaW5ncyI6IkFBQUEiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
@@ -74,4 +74,4 @@ export function mergeValuesPatch(values, patch) {
|
|
|
74
74
|
export function resolveValue(values, name) {
|
|
75
75
|
return name.includes('.') ? getNestedValue(values, name) : values[name];
|
|
76
76
|
}
|
|
77
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,
|
|
77
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9zcmMvY29tcG9uZW50cy9Qcm9Gb3JtL2NvcmUvcGF0aFV0aWxzLnRzIl0sIm5hbWVzIjpbImdldE5lc3RlZFZhbHVlIiwib2JqIiwicGF0aCIsImtleXMiLCJzcGxpdCIsImN1cnJlbnQiLCJfaXRlcmF0b3IiLCJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsIl9zdGVwIiwicyIsIm4iLCJkb25lIiwia2V5IiwidmFsdWUiLCJ1bmRlZmluZWQiLCJfdHlwZW9mIiwiZXJyIiwiZSIsImYiLCJzZXROZXN0ZWRWYWx1ZSIsImxlbmd0aCIsIk9iamVjdCIsImFzc2lnbiIsIl9kZWZpbmVQcm9wZXJ0eSIsInJlc3VsdCIsImkiLCJuZXh0S2V5IiwiaXNOZXh0QXJyYXkiLCJ0ZXN0IiwiQXJyYXkiLCJpc0FycmF5IiwiX3RvQ29uc3VtYWJsZUFycmF5IiwiaXNQbGFpbk9iamVjdCIsInByb3RvdHlwZSIsImdldFByb3RvdHlwZU9mIiwibWVyZ2VWYWx1ZXNQYXRjaCIsInZhbHVlcyIsInBhdGNoIiwiX2kiLCJfT2JqZWN0JGVudHJpZXMiLCJlbnRyaWVzIiwiX09iamVjdCRlbnRyaWVzJF9pIiwiX3NsaWNlZFRvQXJyYXkiLCJwYXRjaFZhbHVlIiwiY3VycmVudFZhbHVlIiwicmVzb2x2ZVZhbHVlIiwibmFtZSIsImluY2x1ZGVzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQSxPQUFNLFNBQVVBLGNBQWNBLENBQUNDLEdBQXdCLEVBQUVDLElBQVksRUFBQTtFQUNuRSxJQUFNQyxJQUFJLEdBQUdELElBQUksQ0FBQ0UsS0FBSyxDQUFDLEdBQUcsQ0FBQztFQUM1QixJQUFJQyxPQUFPLEdBQVFKLEdBQUc7RUFBQyxJQUFBSyxTQUFBLEdBQUFDLDBCQUFBLENBQ0xKLElBQUk7SUFBQUssS0FBQTtFQUFBO0lBQXRCLEtBQUFGLFNBQUEsQ0FBQUcsQ0FBQSxNQUFBRCxL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RUFDM0JDLEtBQTBCLEVBQUE7RUFFMUIsSUFBTWIsTUFBTSxHQUFBSCxNQUFBLENBQUFDLE1BQUEsQ0FBQSxDQUFBLENBQUEsRUFBUWMsTUFBTSxDQUFFO0VBQzVCLFNBQUFFLEVBQUEsTUFBQUMsZUFBQSxHQUFnQ2xCLE1BQU0sQ0FBQ21CLE9BQU8sQ0FBQ0gsS0FBSyxDQUFDLEVBQUFDLEVBQUEsR0FBQUMsZUFBQSxDQUFBbkIsTUFBQSxFQUFBa0IsRUFBQSxJQUFFO0lBQWxELElBQUFHLGtCQUFBLEdBQUFDLGNBQUEsQ0FBQUgsZUFBQSxDQUFBRCxFQUFBO01BQU8xQixHQUFHLEdBQUE2QixrQkFBQTtNQUFFRSxVQUFVLEdBQUFGLGtCQUFBO0lBQ3pCLElBQU1HLFlBQVksR0FBR3BCLE1BQU0sQ0FBQ1osR0FBRyxDQUFDO0lBQ2hDWSxNQUFNLENBQUNaLEdBQUcsQ0FBQyxHQUNUb0IsYUFBYSxDQUFDWSxZQUFZLENBQUMsSUFBSVosYUFBYSxDQUFDVyxVQUFVLENBQUMsR0FDcERSLGdCQUFnQixDQUFDUyxZQUFZLEVBQUVELFVBQVUsQ0FBQyxHQUMxQ0EsVUFBVTtFQUNsQjtFQUNBLE9BQU9uQixNQUFNO0FBQ2Y7QUFFQTtBQUNBLE9BQU0sU0FBVXFCLFlBQVlBLENBQUNULE1BQTJCLEVBQUVVLElBQVksRUFBQTtFQUNwRSxPQUFPQSxJQUFJLENBQUNDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRy9DLGNBQWMsQ0FBQ29DLE1BQU0sRUFBRVUsSUFBSSxDQUFDLEdBQUdWLE1BQU0sQ0FBQ1UsSUFBSSxDQUFDO0FBQ3pFIiwiZmlsZSI6ImNvbXBvbmVudHMvUHJvRm9ybS9jb3JlL3BhdGhVdGlscy5qcyIsInNvdXJjZXNDb250ZW50IjpbbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
|