@comet/cms-admin 9.0.0-beta.2 → 9.0.0-beta.4
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/lib/blocks/AnchorBlock.d.ts +1 -1
- package/lib/blocks/AnchorBlock.d.ts.map +1 -1
- package/lib/blocks/DamVideoBlock.d.ts +1 -1
- package/lib/blocks/DamVideoBlock.d.ts.map +1 -1
- package/lib/blocks/DamVideoBlock.js +6 -2
- package/lib/blocks/EmailLinkBlock.d.ts +1 -1
- package/lib/blocks/EmailLinkBlock.d.ts.map +1 -1
- package/lib/blocks/ExternalLinkBlock.d.ts +1 -1
- package/lib/blocks/ExternalLinkBlock.d.ts.map +1 -1
- package/lib/blocks/InternalLinkBlock.d.ts +1 -1
- package/lib/blocks/InternalLinkBlock.d.ts.map +1 -1
- package/lib/blocks/PhoneLinkBlock.d.ts +1 -1
- package/lib/blocks/PhoneLinkBlock.d.ts.map +1 -1
- package/lib/blocks/PixelImageBlock.d.ts +1 -1
- package/lib/blocks/PixelImageBlock.d.ts.map +1 -1
- package/lib/blocks/PixelImageBlock.fragment.d.ts +2 -0
- package/lib/blocks/PixelImageBlock.fragment.d.ts.map +1 -0
- package/lib/blocks/PixelImageBlock.fragment.generated.d.ts +20 -0
- package/lib/blocks/PixelImageBlock.fragment.generated.d.ts.map +1 -0
- package/lib/blocks/PixelImageBlock.fragment.generated.js +5 -0
- package/lib/blocks/PixelImageBlock.fragment.js +4 -0
- package/lib/blocks/PixelImageBlock.js +12 -5
- package/lib/blocks/SpaceBlock.d.ts +1 -1
- package/lib/blocks/SpaceBlock.d.ts.map +1 -1
- package/lib/blocks/SvgImageBlock.d.ts +1 -1
- package/lib/blocks/SvgImageBlock.d.ts.map +1 -1
- package/lib/blocks/SvgImageBlock.js +9 -3
- package/lib/blocks/VimeoVideoBlock.d.ts +1 -1
- package/lib/blocks/VimeoVideoBlock.d.ts.map +1 -1
- package/lib/blocks/VimeoVideoBlock.js +9 -3
- package/lib/blocks/YouTubeVideoBlock.d.ts +1 -1
- package/lib/blocks/YouTubeVideoBlock.d.ts.map +1 -1
- package/lib/blocks/YouTubeVideoBlock.js +9 -3
- package/lib/blocks/__stories__/RichTextBlock.stories.js +53 -0
- package/lib/blocks/clipboard/CannotPasteBlockDialog.d.ts +1 -1
- package/lib/blocks/clipboard/CannotPasteBlockDialog.d.ts.map +1 -1
- package/lib/blocks/clipboard/useBlockClipboard.d.ts +2 -2
- package/lib/blocks/clipboard/useBlockClipboard.d.ts.map +1 -1
- package/lib/blocks/common/AdminTabsTabContent.d.ts +1 -1
- package/lib/blocks/common/AdminTabsTabContent.d.ts.map +1 -1
- package/lib/blocks/common/AdminTabsTabContent.js +2 -2
- package/lib/blocks/common/BlockAdminComponentButton.d.ts +1 -1
- package/lib/blocks/common/BlockAdminComponentButton.d.ts.map +1 -1
- package/lib/blocks/common/BlockAdminComponentNestedButton.d.ts +1 -1
- package/lib/blocks/common/BlockAdminComponentNestedButton.d.ts.map +1 -1
- package/lib/blocks/common/BlockAdminComponentNestedButton.js +1 -1
- package/lib/blocks/common/BlockAdminComponentRoot.d.ts +1 -1
- package/lib/blocks/common/BlockAdminComponentRoot.d.ts.map +1 -1
- package/lib/blocks/common/BlockAdminComponentRoot.js +1 -1
- package/lib/blocks/common/BlockAdminComponentSection.d.ts +1 -1
- package/lib/blocks/common/BlockAdminComponentSection.d.ts.map +1 -1
- package/lib/blocks/common/BlockAdminComponentSection.js +2 -2
- package/lib/blocks/common/BlockAdminComponentSectionGroup.d.ts +1 -1
- package/lib/blocks/common/BlockAdminComponentSectionGroup.d.ts.map +1 -1
- package/lib/blocks/common/BlockAdminComponentSectionGroup.js +1 -1
- package/lib/blocks/common/BlockAdminTabLabel.d.ts +1 -1
- package/lib/blocks/common/BlockAdminTabLabel.d.ts.map +1 -1
- package/lib/blocks/common/BlockAdminTabLabel.js +1 -1
- package/lib/blocks/common/BlockAdminTabs.d.ts +1 -1
- package/lib/blocks/common/BlockAdminTabs.d.ts.map +1 -1
- package/lib/blocks/common/BlockAdminTabs.js +3 -3
- package/lib/blocks/common/Collapsible.d.ts +1 -1
- package/lib/blocks/common/Collapsible.d.ts.map +1 -1
- package/lib/blocks/common/CollapsibleSwitchButtonHeader.d.ts +1 -1
- package/lib/blocks/common/CollapsibleSwitchButtonHeader.d.ts.map +1 -1
- package/lib/blocks/common/CollapsibleSwitchButtonHeader.js +1 -1
- package/lib/blocks/common/HiddenInSubroute.d.ts +1 -1
- package/lib/blocks/common/HiddenInSubroute.d.ts.map +1 -1
- package/lib/blocks/common/blockRow/BlockPreviewContent.d.ts +1 -1
- package/lib/blocks/common/blockRow/BlockPreviewContent.d.ts.map +1 -1
- package/lib/blocks/common/blockRow/BlockRow.d.ts.map +1 -1
- package/lib/blocks/common/blockRow/BlockRow.js +3 -1
- package/lib/blocks/common/blockRow/image/StackedImages.d.ts +1 -1
- package/lib/blocks/common/blockRow/image/StackedImages.d.ts.map +1 -1
- package/lib/blocks/config/BlocksConfigContext.d.ts +2 -2
- package/lib/blocks/config/BlocksConfigContext.d.ts.map +1 -1
- package/lib/blocks/context/BlockContext.d.ts +2 -2
- package/lib/blocks/context/BlockContext.d.ts.map +1 -1
- package/lib/blocks/context/BlockContextProvider.d.ts +1 -1
- package/lib/blocks/context/BlockContextProvider.d.ts.map +1 -1
- package/lib/blocks/createImageLinkBlock.d.ts +1 -1
- package/lib/blocks/createImageLinkBlock.d.ts.map +1 -1
- package/lib/blocks/createLinkBlock.d.ts +1 -1
- package/lib/blocks/createLinkBlock.d.ts.map +1 -1
- package/lib/blocks/createLinkBlock.js +50 -1
- package/lib/blocks/createRichTextBlock.d.ts +1 -1
- package/lib/blocks/createRichTextBlock.d.ts.map +1 -1
- package/lib/blocks/createRichTextBlock.js +56 -20
- package/lib/blocks/createSeoBlock.d.ts +1 -1
- package/lib/blocks/createSeoBlock.d.ts.map +1 -1
- package/lib/blocks/createSeoBlock.js +6 -4
- package/lib/blocks/createTableBlock.d.ts +2 -2
- package/lib/blocks/createTableBlock.d.ts.map +1 -1
- package/lib/blocks/createTextImageBlock.d.ts +2 -2
- package/lib/blocks/createTextImageBlock.d.ts.map +1 -1
- package/lib/blocks/createTextLinkBlock.d.ts +1 -1
- package/lib/blocks/createTextLinkBlock.d.ts.map +1 -1
- package/lib/blocks/createTextLinkBlock.js +36 -1
- package/lib/blocks/factories/columnsBlock/FinalFormColumnsSelect.d.ts +1 -1
- package/lib/blocks/factories/columnsBlock/FinalFormColumnsSelect.d.ts.map +1 -1
- package/lib/blocks/factories/columnsBlock/FinalFormLayoutSelect.d.ts +2 -2
- package/lib/blocks/factories/columnsBlock/FinalFormLayoutSelect.d.ts.map +1 -1
- package/lib/blocks/factories/columnsBlock/FinalFormLayoutSelect.js +6 -6
- package/lib/blocks/factories/createBlocksBlock.d.ts +1 -1
- package/lib/blocks/factories/createBlocksBlock.d.ts.map +1 -1
- package/lib/blocks/factories/createBlocksBlock.js +70 -13
- package/lib/blocks/factories/createColumnsBlock.d.ts +2 -2
- package/lib/blocks/factories/createColumnsBlock.d.ts.map +1 -1
- package/lib/blocks/factories/createColumnsBlock.js +56 -6
- package/lib/blocks/factories/createCompositeBlock.d.ts +1 -1
- package/lib/blocks/factories/createCompositeBlock.d.ts.map +1 -1
- package/lib/blocks/factories/createCompositeBlock.js +3 -1
- package/lib/blocks/factories/createListBlock.d.ts +2 -2
- package/lib/blocks/factories/createListBlock.d.ts.map +1 -1
- package/lib/blocks/factories/createListBlock.js +59 -7
- package/lib/blocks/factories/createOneOfBlock.d.ts.map +1 -1
- package/lib/blocks/factories/createOneOfBlock.js +62 -5
- package/lib/blocks/factories/createOptionalBlock.d.ts +3 -3
- package/lib/blocks/factories/createOptionalBlock.d.ts.map +1 -1
- package/lib/blocks/factories/createOptionalBlock.js +38 -1
- package/lib/blocks/factories/listBlock/createUseAdminComponent.d.ts +2 -2
- package/lib/blocks/factories/listBlock/createUseAdminComponent.d.ts.map +1 -1
- package/lib/blocks/factories/spaceBlock/createSpaceBlock.d.ts +1 -1
- package/lib/blocks/factories/spaceBlock/createSpaceBlock.d.ts.map +1 -1
- package/lib/blocks/form/createFinalFormBlock.d.ts +2 -2
- package/lib/blocks/form/createFinalFormBlock.d.ts.map +1 -1
- package/lib/blocks/helpers/composeBlocks/composeBlocks.d.ts +4 -4
- package/lib/blocks/helpers/composeBlocks/composeBlocks.d.ts.map +1 -1
- package/lib/blocks/helpers/composeBlocks/composeBlocks.js +52 -16
- package/lib/blocks/helpers/composeBlocks/createCompositeBlockField.d.ts +3 -2
- package/lib/blocks/helpers/composeBlocks/createCompositeBlockField.d.ts.map +1 -1
- package/lib/blocks/helpers/composeBlocks/createCompositeBlockField.js +4 -2
- package/lib/blocks/helpers/composeBlocks/createCompositeBlockFields.d.ts +1 -1
- package/lib/blocks/helpers/composeBlocks/createCompositeBlockFields.d.ts.map +1 -1
- package/lib/blocks/helpers/composeBlocks/createSettingsBlock.d.ts +3 -2
- package/lib/blocks/helpers/composeBlocks/createSettingsBlock.d.ts.map +1 -1
- package/lib/blocks/helpers/composeBlocks/createSettingsBlock.js +5 -1
- package/lib/blocks/helpers/composeBlocks/types.d.ts +3 -3
- package/lib/blocks/helpers/composeBlocks/types.d.ts.map +1 -1
- package/lib/blocks/helpers/composeBlocks/utils.d.ts +2 -2
- package/lib/blocks/helpers/composeBlocks/utils.d.ts.map +1 -1
- package/lib/blocks/helpers/createBlockSkeleton.js +15 -1
- package/lib/blocks/helpers/createCompositeBlockSelectField.d.ts +1 -1
- package/lib/blocks/helpers/createCompositeBlockSelectField.d.ts.map +1 -1
- package/lib/blocks/helpers/createCompositeBlockSwitchField.d.ts +1 -1
- package/lib/blocks/helpers/createCompositeBlockSwitchField.d.ts.map +1 -1
- package/lib/blocks/helpers/createCompositeBlockTextField.d.ts +3 -2
- package/lib/blocks/helpers/createCompositeBlockTextField.d.ts.map +1 -1
- package/lib/blocks/helpers/createCompositeBlockTextField.js +20 -2
- package/lib/blocks/helpers/decomposeUpdateStateAction.d.ts +1 -1
- package/lib/blocks/helpers/decomposeUpdateStateAction.d.ts.map +1 -1
- package/lib/blocks/helpers/deduplicateBlockDependencies.d.ts +1 -1
- package/lib/blocks/helpers/deduplicateBlockDependencies.d.ts.map +1 -1
- package/lib/blocks/helpers/isBlockInterface.d.ts +1 -1
- package/lib/blocks/helpers/isBlockInterface.d.ts.map +1 -1
- package/lib/blocks/helpers/withAdditionalBlockAttributes.d.ts +1 -1
- package/lib/blocks/helpers/withAdditionalBlockAttributes.d.ts.map +1 -1
- package/lib/blocks/iframebridge/IFrameMessage.d.ts +1 -1
- package/lib/blocks/iframebridge/IFrameMessage.d.ts.map +1 -1
- package/lib/blocks/image/EditImageDialog.d.ts +1 -1
- package/lib/blocks/image/EditImageDialog.d.ts.map +1 -1
- package/lib/blocks/image/EditImageDialog.js +2 -2
- package/lib/blocks/rte/extension/CmsLink/Decorator.d.ts +1 -1
- package/lib/blocks/rte/extension/CmsLink/Decorator.d.ts.map +1 -1
- package/lib/blocks/rte/extension/CmsLink/EditorComponent.d.ts +2 -2
- package/lib/blocks/rte/extension/CmsLink/EditorComponent.d.ts.map +1 -1
- package/lib/blocks/rte/extension/CmsLink/createCmsLinkToolbarButton.d.ts +1 -1
- package/lib/blocks/rte/extension/CmsLink/createCmsLinkToolbarButton.d.ts.map +1 -1
- package/lib/blocks/rte/extension/CmsLink/createCmsLinkToolbarButton.js +2 -2
- package/lib/blocks/table/CellValue.d.ts +1 -1
- package/lib/blocks/table/CellValue.d.ts.map +1 -1
- package/lib/blocks/table/CellValue.js +6 -6
- package/lib/blocks/table/ColumnHeader.d.ts +4 -4
- package/lib/blocks/table/ColumnHeader.d.ts.map +1 -1
- package/lib/blocks/table/ColumnHeader.js +1 -1
- package/lib/blocks/table/EditCell.js +4 -4
- package/lib/blocks/table/RowActionsCell.d.ts +2 -2
- package/lib/blocks/table/RowActionsCell.d.ts.map +1 -1
- package/lib/blocks/table/TableBlockContext.d.ts +1 -1
- package/lib/blocks/table/TableBlockContext.d.ts.map +1 -1
- package/lib/blocks/table/TableBlockContext.js +3 -1
- package/lib/blocks/table/TableBlockGrid.d.ts +1 -1
- package/lib/blocks/table/TableBlockGrid.d.ts.map +1 -1
- package/lib/blocks/table/dataGridStyles.d.ts +1 -1
- package/lib/blocks/table/dataGridStyles.d.ts.map +1 -1
- package/lib/blocks/table/utils/column.d.ts +3 -3
- package/lib/blocks/table/utils/column.d.ts.map +1 -1
- package/lib/blocks/table/utils/ensureMinimumTableState.d.ts +2 -2
- package/lib/blocks/table/utils/ensureMinimumTableState.d.ts.map +1 -1
- package/lib/blocks/table/utils/getClipboardValueForSchema.d.ts +1 -1
- package/lib/blocks/table/utils/getClipboardValueForSchema.d.ts.map +1 -1
- package/lib/blocks/table/utils/row.d.ts +2 -2
- package/lib/blocks/table/utils/row.d.ts.map +1 -1
- package/lib/blocks/tipTap/BlockStyleContext.d.ts +3 -0
- package/lib/blocks/tipTap/BlockStyleContext.d.ts.map +1 -0
- package/lib/blocks/tipTap/BlockStyleContext.js +2 -0
- package/lib/blocks/tipTap/InlineStyleContext.d.ts +3 -0
- package/lib/blocks/tipTap/InlineStyleContext.d.ts.map +1 -0
- package/lib/blocks/tipTap/InlineStyleContext.js +2 -0
- package/lib/blocks/tipTap/TipTapLinkDialog.d.ts +10 -0
- package/lib/blocks/tipTap/TipTapLinkDialog.d.ts.map +1 -0
- package/lib/blocks/tipTap/TipTapLinkDialog.js +105 -0
- package/lib/blocks/tipTap/TipTapToolbar.d.ts +12 -0
- package/lib/blocks/tipTap/TipTapToolbar.d.ts.map +1 -0
- package/lib/blocks/tipTap/TipTapToolbar.js +611 -0
- package/lib/blocks/tipTap/__stories__/TipTapRichTextBlock.stories.js +1566 -0
- package/lib/blocks/tipTap/createTipTapRichTextBlock.d.ts +56 -0
- package/lib/blocks/tipTap/createTipTapRichTextBlock.d.ts.map +1 -0
- package/lib/blocks/tipTap/createTipTapRichTextBlock.js +418 -0
- package/lib/blocks/tipTap/extensions/BlockStyleHeading.d.ts +2 -0
- package/lib/blocks/tipTap/extensions/BlockStyleHeading.d.ts.map +1 -0
- package/lib/blocks/tipTap/extensions/BlockStyleHeading.js +57 -0
- package/lib/blocks/tipTap/extensions/BlockStyleParagraph.d.ts +2 -0
- package/lib/blocks/tipTap/extensions/BlockStyleParagraph.d.ts.map +1 -0
- package/lib/blocks/tipTap/extensions/BlockStyleParagraph.js +56 -0
- package/lib/blocks/tipTap/extensions/CmsLink.d.ts +13 -0
- package/lib/blocks/tipTap/extensions/CmsLink.d.ts.map +1 -0
- package/lib/blocks/tipTap/extensions/CmsLink.js +42 -0
- package/lib/blocks/tipTap/extensions/InlineStyleMark.d.ts +13 -0
- package/lib/blocks/tipTap/extensions/InlineStyleMark.d.ts.map +1 -0
- package/lib/blocks/tipTap/extensions/InlineStyleMark.js +71 -0
- package/lib/blocks/tipTap/extensions/NonBreakingSpace.d.ts +10 -0
- package/lib/blocks/tipTap/extensions/NonBreakingSpace.d.ts.map +1 -0
- package/lib/blocks/tipTap/extensions/NonBreakingSpace.js +57 -0
- package/lib/blocks/tipTap/extensions/SoftHyphen.d.ts +10 -0
- package/lib/blocks/tipTap/extensions/SoftHyphen.d.ts.map +1 -0
- package/lib/blocks/tipTap/extensions/SoftHyphen.js +51 -0
- package/lib/blocks/tipTap/listLevelMaxHelpers.d.ts +6 -0
- package/lib/blocks/tipTap/listLevelMaxHelpers.d.ts.map +1 -0
- package/lib/blocks/tipTap/listLevelMaxHelpers.js +108 -0
- package/lib/blocks/types.d.ts +9 -2
- package/lib/blocks/types.d.ts.map +1 -1
- package/lib/blocks/utils.d.ts +1 -1
- package/lib/blocks/utils.d.ts.map +1 -1
- package/lib/builds/BuildEntry.js +1 -1
- package/lib/builds/PublisherPage.js +1 -1
- package/lib/common/InsertInBetweenAction.d.ts +1 -1
- package/lib/common/InsertInBetweenAction.d.ts.map +1 -1
- package/lib/common/InsertInBetweenAction.js +3 -3
- package/lib/common/MasterMenuRoutes.d.ts +1 -1
- package/lib/common/MasterMenuRoutes.d.ts.map +1 -1
- package/lib/common/PageName.js +1 -1
- package/lib/common/errors/errorMessages.d.ts +1 -1
- package/lib/common/errors/errorMessages.d.ts.map +1 -1
- package/lib/common/header/Header.d.ts +1 -1
- package/lib/common/header/Header.d.ts.map +1 -1
- package/lib/common/header/Header.js +1 -1
- package/lib/common/header/about/AboutModal.d.ts +1 -1
- package/lib/common/header/about/AboutModal.d.ts.map +1 -1
- package/lib/common/header/about/AboutModal.js +6 -6
- package/lib/common/header/about/build-information/useBuildInformation.d.ts +1 -1
- package/lib/common/header/about/build-information/useBuildInformation.d.ts.map +1 -1
- package/lib/common/image/ChooseFocalPoint.d.ts +1 -1
- package/lib/common/image/ChooseFocalPoint.d.ts.map +1 -1
- package/lib/common/image/ImageCrop.sc.d.ts +1 -1
- package/lib/common/image/ImageCrop.sc.d.ts.map +1 -1
- package/lib/common/image/ImageCrop.sc.js +2 -2
- package/lib/common/signOutButton/SignOutButton.d.ts +1 -1
- package/lib/common/signOutButton/SignOutButton.d.ts.map +1 -1
- package/lib/common/useEditState.d.ts +1 -1
- package/lib/common/useEditState.d.ts.map +1 -1
- package/lib/config/CometConfigContext.d.ts +11 -10
- package/lib/config/CometConfigContext.d.ts.map +1 -1
- package/lib/config/CometConfigContext.js +9 -5
- package/lib/contentLanguage/contentLanguageConfig.d.ts +1 -1
- package/lib/contentLanguage/contentLanguageConfig.d.ts.map +1 -1
- package/lib/contentLanguage/useContentLanguage.d.ts +1 -1
- package/lib/contentLanguage/useContentLanguage.d.ts.map +1 -1
- package/lib/contentScope/ContentScopeIndicator.d.ts +1 -1
- package/lib/contentScope/ContentScopeIndicator.d.ts.map +1 -1
- package/lib/contentScope/ContentScopeIndicator.js +4 -4
- package/lib/contentScope/ContentScopeSelect.d.ts +1 -1
- package/lib/contentScope/ContentScopeSelect.d.ts.map +1 -1
- package/lib/contentScope/ContentScopeSelect.js +2 -3
- package/lib/contentScope/Controls.d.ts +1 -1
- package/lib/contentScope/Controls.d.ts.map +1 -1
- package/lib/contentScope/__stories__/ContentScopeProvider.stories.js +85 -0
- package/lib/contentScope/__stories__/ContentScopeSelect.stories.js +655 -0
- package/lib/contentScope/noContentScopeFallback/NoContentScopeFallback.d.ts +1 -1
- package/lib/contentScope/noContentScopeFallback/NoContentScopeFallback.d.ts.map +1 -1
- package/lib/contentScope/noContentScopeFallback/__stories__/NoContentScopeFallback.stories.js +7 -0
- package/lib/contentScope/utils/defaultCreatePath.d.ts +1 -1
- package/lib/contentScope/utils/defaultCreatePath.d.ts.map +1 -1
- package/lib/contentScope/utils/groupObjectsIntoArrays.d.ts +1 -1
- package/lib/contentScope/utils/groupObjectsIntoArrays.d.ts.map +1 -1
- package/lib/cronJobs/JobLogs.js +1 -1
- package/lib/cronJobs/JobStatus.d.ts +1 -1
- package/lib/cronJobs/JobStatus.d.ts.map +1 -1
- package/lib/cronJobs/JobStatus.js +1 -1
- package/lib/dam/DamPage.d.ts +1 -1
- package/lib/dam/DamPage.d.ts.map +1 -1
- package/lib/dam/DamTable.d.ts +9 -4
- package/lib/dam/DamTable.d.ts.map +1 -1
- package/lib/dam/DamTable.js +8 -18
- package/lib/dam/DataGrid/DamContextMenu.d.ts +1 -1
- package/lib/dam/DataGrid/DamContextMenu.d.ts.map +1 -1
- package/lib/dam/DataGrid/FolderDataGrid.d.ts +2 -2
- package/lib/dam/DataGrid/FolderDataGrid.d.ts.map +1 -1
- package/lib/dam/DataGrid/FolderDataGrid.js +285 -276
- package/lib/dam/DataGrid/duplicatedFilenames/ManualDuplicatedFilenamesHandler.d.ts +1 -1
- package/lib/dam/DataGrid/duplicatedFilenames/ManualDuplicatedFilenamesHandler.d.ts.map +1 -1
- package/lib/dam/DataGrid/duplicatedFilenames/ManuallyHandleDuplicatedFilenamesDialog.d.ts +1 -1
- package/lib/dam/DataGrid/duplicatedFilenames/ManuallyHandleDuplicatedFilenamesDialog.d.ts.map +1 -1
- package/lib/dam/DataGrid/duplicatedFilenames/ManuallyHandleDuplicatedFilenamesDialog.js +2 -2
- package/lib/dam/DataGrid/fileUpload/FileUploadContext.d.ts +1 -1
- package/lib/dam/DataGrid/fileUpload/FileUploadContext.d.ts.map +1 -1
- package/lib/dam/DataGrid/fileUpload/FileUploadErrorDialog.d.ts +1 -1
- package/lib/dam/DataGrid/fileUpload/FileUploadErrorDialog.d.ts.map +1 -1
- package/lib/dam/DataGrid/fileUpload/FileUploadErrorDialog.js +2 -2
- package/lib/dam/DataGrid/fileUpload/fileUpload.utils.d.ts +1 -1
- package/lib/dam/DataGrid/fileUpload/fileUpload.utils.d.ts.map +1 -1
- package/lib/dam/DataGrid/fileUpload/useDamFileUpload.d.ts +2 -2
- package/lib/dam/DataGrid/fileUpload/useDamFileUpload.d.ts.map +1 -1
- package/lib/dam/DataGrid/filter/DamTableFilter.d.ts +1 -1
- package/lib/dam/DataGrid/filter/DamTableFilter.d.ts.map +1 -1
- package/lib/dam/DataGrid/filter/DamTableFilter.js +0 -10
- package/lib/dam/DataGrid/footer/DamFooter.d.ts +1 -1
- package/lib/dam/DataGrid/footer/DamFooter.d.ts.map +1 -1
- package/lib/dam/DataGrid/footer/DamFooter.js +1 -1
- package/lib/dam/DataGrid/label/DamItemLabel.d.ts +1 -1
- package/lib/dam/DataGrid/label/DamItemLabel.d.ts.map +1 -1
- package/lib/dam/DataGrid/label/DamItemLabel.js +3 -3
- package/lib/dam/DataGrid/label/DamItemLabelColumn.d.ts +5 -5
- package/lib/dam/DataGrid/label/DamItemLabelColumn.d.ts.map +1 -1
- package/lib/dam/DataGrid/label/DamItemLabelColumn.js +2 -2
- package/lib/dam/DataGrid/selection/DamMoreActions.d.ts +2 -1
- package/lib/dam/DataGrid/selection/DamMoreActions.d.ts.map +1 -1
- package/lib/dam/DataGrid/selection/DamMoreActions.js +4 -3
- package/lib/dam/DataGrid/selection/DamSelectionContext.d.ts +8 -5
- package/lib/dam/DataGrid/selection/DamSelectionContext.d.ts.map +1 -1
- package/lib/dam/DataGrid/selection/DamSelectionContext.js +11 -3
- package/lib/dam/DataGrid/thumbnail/DamThumbnail.d.ts +2 -2
- package/lib/dam/DataGrid/thumbnail/DamThumbnail.d.ts.map +1 -1
- package/lib/dam/DataGrid/thumbnail/DamThumbnail.js +4 -4
- package/lib/dam/DataGrid/useDamSearchHighlighting.d.ts +1 -1
- package/lib/dam/DataGrid/useDamSearchHighlighting.d.ts.map +1 -1
- package/lib/dam/FileForm/CropSettingsFields.d.ts +1 -1
- package/lib/dam/FileForm/CropSettingsFields.d.ts.map +1 -1
- package/lib/dam/FileForm/CropSettingsFields.js +1 -1
- package/lib/dam/FileForm/Duplicates.js +5 -5
- package/lib/dam/FileForm/EditFile.d.ts +3 -3
- package/lib/dam/FileForm/EditFile.d.ts.map +1 -1
- package/lib/dam/FileForm/EditFile.js +2 -2
- package/lib/dam/FileForm/FilePreview.d.ts +1 -1
- package/lib/dam/FileForm/FilePreview.d.ts.map +1 -1
- package/lib/dam/FileForm/FilePreview.js +4 -4
- package/lib/dam/FileForm/FileSettingsFields.d.ts +1 -1
- package/lib/dam/FileForm/FileSettingsFields.d.ts.map +1 -1
- package/lib/dam/FileForm/FileSettingsFields.js +1 -1
- package/lib/dam/FileForm/ReplaceFileButton.d.ts +1 -1
- package/lib/dam/FileForm/ReplaceFileButton.d.ts.map +1 -1
- package/lib/dam/FileForm/licenseType.d.ts +2 -2
- package/lib/dam/FileForm/licenseType.d.ts.map +1 -1
- package/lib/dam/FileForm/previews/AudioPreview.d.ts +1 -1
- package/lib/dam/FileForm/previews/AudioPreview.d.ts.map +1 -1
- package/lib/dam/FileForm/previews/AudioPreview.js +5 -5
- package/lib/dam/FileForm/previews/DefaultFilePreview.d.ts +1 -1
- package/lib/dam/FileForm/previews/DefaultFilePreview.d.ts.map +1 -1
- package/lib/dam/FileForm/previews/DefaultFilePreview.js +3 -3
- package/lib/dam/FileForm/previews/ImagePreview.d.ts +1 -1
- package/lib/dam/FileForm/previews/ImagePreview.d.ts.map +1 -1
- package/lib/dam/FileForm/previews/PdfPreview.d.ts +1 -1
- package/lib/dam/FileForm/previews/PdfPreview.d.ts.map +1 -1
- package/lib/dam/FileForm/previews/PdfPreview.js +2 -2
- package/lib/dam/FileForm/previews/VideoPreview.d.ts +1 -1
- package/lib/dam/FileForm/previews/VideoPreview.d.ts.map +1 -1
- package/lib/dam/FileForm/previews/VideoPreview.js +2 -2
- package/lib/dam/MoveDamItemDialog/ChooseFolder.d.ts +2 -2
- package/lib/dam/MoveDamItemDialog/ChooseFolder.d.ts.map +1 -1
- package/lib/dam/MoveDamItemDialog/ChooseFolder.js +1 -1
- package/lib/dam/MoveDamItemDialog/MoveDamItemDialog.d.ts +1 -1
- package/lib/dam/MoveDamItemDialog/MoveDamItemDialog.d.ts.map +1 -1
- package/lib/dam/MoveDamItemDialog/MoveDamItemDialog.js +1 -1
- package/lib/dam/MoveDamItemDialog/useFolderTree.d.ts +1 -1
- package/lib/dam/MoveDamItemDialog/useFolderTree.d.ts.map +1 -1
- package/lib/dam/MoveDamItemDialog/useFolderTreeSearch.d.ts +2 -2
- package/lib/dam/MoveDamItemDialog/useFolderTreeSearch.d.ts.map +1 -1
- package/lib/dam/blocks/DamFileDownloadLinkBlock.d.ts +1 -1
- package/lib/dam/blocks/DamFileDownloadLinkBlock.d.ts.map +1 -1
- package/lib/dam/blocks/DamFileDownloadLinkBlock.js +6 -2
- package/lib/dam/config/DamScopeProvider.d.ts +1 -1
- package/lib/dam/config/DamScopeProvider.d.ts.map +1 -1
- package/lib/dam/config/damConfig.d.ts +1 -1
- package/lib/dam/config/damConfig.d.ts.map +1 -1
- package/lib/dam/dependencies/createDamFileDependency.d.ts +1 -1
- package/lib/dam/dependencies/createDamFileDependency.d.ts.map +1 -1
- package/lib/dam/helpers/clearDamItemCache.d.ts +1 -1
- package/lib/dam/helpers/clearDamItemCache.d.ts.map +1 -1
- package/lib/dam/helpers/isFile.d.ts +1 -1
- package/lib/dam/helpers/isFile.d.ts.map +1 -1
- package/lib/dam/helpers/isFolder.d.ts +1 -1
- package/lib/dam/helpers/isFolder.d.ts.map +1 -1
- package/lib/dam/mediaAlternatives/MediaAlternativeForm.d.ts +1 -1
- package/lib/dam/mediaAlternatives/MediaAlternativeForm.d.ts.map +1 -1
- package/lib/dam/mediaAlternatives/MediaAlternativesGrid.d.ts +1 -1
- package/lib/dam/mediaAlternatives/MediaAlternativesGrid.d.ts.map +1 -1
- package/lib/dam/mediaAlternatives/MediaAlternativesGrid.js +3 -1
- package/lib/dashboard/DashboardHeader.d.ts +1 -1
- package/lib/dashboard/DashboardHeader.d.ts.map +1 -1
- package/lib/dashboard/DashboardHeader.js +2 -2
- package/lib/dashboard/__stories__/DateTime.stories.js +7 -0
- package/lib/dashboard/widgets/DashboardWidgetRoot.d.ts +1 -1
- package/lib/dashboard/widgets/DashboardWidgetRoot.d.ts.map +1 -1
- package/lib/dashboard/widgets/DashboardWidgetRoot.js +1 -1
- package/lib/dependencies/DependenciesList.d.ts +1 -1
- package/lib/dependencies/DependenciesList.d.ts.map +1 -1
- package/lib/dependencies/DependenciesList.js +3 -1
- package/lib/dependencies/DependentsList.d.ts +1 -1
- package/lib/dependencies/DependentsList.d.ts.map +1 -1
- package/lib/dependencies/DependentsList.js +3 -1
- package/lib/dependencies/createDependencyMethods.d.ts +3 -3
- package/lib/dependencies/createDependencyMethods.d.ts.map +1 -1
- package/lib/dependencies/createDocumentDependencyMethods.d.ts +3 -3
- package/lib/dependencies/createDocumentDependencyMethods.d.ts.map +1 -1
- package/lib/dependencies/dependenciesConfig.d.ts +1 -1
- package/lib/dependencies/dependenciesConfig.d.ts.map +1 -1
- package/lib/dependencies/getDisplayNameString.d.ts.map +1 -1
- package/lib/dependencies/getDisplayNameString.js +3 -1
- package/lib/dependencies/types.d.ts +2 -2
- package/lib/dependencies/types.d.ts.map +1 -1
- package/lib/documents/createDocumentRootBlocksMethods.d.ts +2 -2
- package/lib/documents/createDocumentRootBlocksMethods.d.ts.map +1 -1
- package/lib/documents/types.d.ts +10 -6
- package/lib/documents/types.d.ts.map +1 -1
- package/lib/form/file/FileField.d.ts +17 -14
- package/lib/form/file/FileField.d.ts.map +1 -1
- package/lib/form/file/FileField.gql.d.ts +2 -0
- package/lib/form/file/FileField.gql.d.ts.map +1 -1
- package/lib/form/file/FileField.gql.generated.d.ts +40 -0
- package/lib/form/file/FileField.gql.generated.d.ts.map +1 -1
- package/lib/form/file/FileField.gql.generated.js +2 -1
- package/lib/form/file/FileField.gql.js +6 -3
- package/lib/form/file/FileField.js +172 -86
- package/lib/form/file/FileFieldMenu.d.ts +17 -0
- package/lib/form/file/FileFieldMenu.d.ts.map +1 -0
- package/lib/form/file/FileFieldMenu.js +91 -0
- package/lib/form/file/FileFieldRow.d.ts +12 -0
- package/lib/form/file/FileFieldRow.d.ts.map +1 -0
- package/lib/form/file/FileFieldRow.js +96 -0
- package/lib/form/file/FileUploadField.d.ts +1 -1
- package/lib/form/file/FileUploadField.d.ts.map +1 -1
- package/lib/form/file/FinalFormFileUpload.d.ts +2 -2
- package/lib/form/file/FinalFormFileUpload.d.ts.map +1 -1
- package/lib/form/file/chooseFile/BaseChooseDamFileDialog.d.ts +20 -0
- package/lib/form/file/chooseFile/BaseChooseDamFileDialog.d.ts.map +1 -0
- package/lib/form/file/chooseFile/BaseChooseDamFileDialog.js +106 -0
- package/lib/form/file/chooseFile/ChooseDamFileDialog.d.ts +10 -0
- package/lib/form/file/chooseFile/ChooseDamFileDialog.d.ts.map +1 -0
- package/lib/form/file/chooseFile/ChooseDamFileDialog.js +63 -0
- package/lib/form/file/chooseFile/ChooseDamFilesDialog.d.ts +9 -0
- package/lib/form/file/chooseFile/ChooseDamFilesDialog.d.ts.map +1 -0
- package/lib/form/file/chooseFile/ChooseDamFilesDialog.js +117 -0
- package/lib/form/file/upload.d.ts +1 -1
- package/lib/form/file/upload.d.ts.map +1 -1
- package/lib/form/queryUpdatedAt.d.ts.map +1 -1
- package/lib/form/useFormSaveConflict.d.ts +2 -2
- package/lib/form/useFormSaveConflict.d.ts.map +1 -1
- package/lib/graphql.generated.d.ts +19 -14
- package/lib/graphql.generated.d.ts.map +1 -1
- package/lib/index.d.ts +12 -3
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +8 -1
- package/lib/pages/createEditPageNode.d.ts +2 -2
- package/lib/pages/createEditPageNode.d.ts.map +1 -1
- package/lib/pages/createEditPageNode.js +1 -12
- package/lib/pages/createUsePage.d.ts +3 -2
- package/lib/pages/createUsePage.d.ts.map +1 -1
- package/lib/pages/createUsePage.js +135 -6
- package/lib/pages/pageSearch/PageSearch.d.ts +1 -1
- package/lib/pages/pageSearch/PageSearch.d.ts.map +1 -1
- package/lib/pages/pageSearch/usePageSearch.d.ts +3 -3
- package/lib/pages/pageSearch/usePageSearch.d.ts.map +1 -1
- package/lib/pages/pageTree/CopyPasteMenuItem.d.ts +1 -1
- package/lib/pages/pageTree/CopyPasteMenuItem.d.ts.map +1 -1
- package/lib/pages/pageTree/MovePageMenuItem.d.ts +1 -1
- package/lib/pages/pageTree/MovePageMenuItem.d.ts.map +1 -1
- package/lib/pages/pageTree/PageActions.d.ts +1 -1
- package/lib/pages/pageTree/PageActions.d.ts.map +1 -1
- package/lib/pages/pageTree/PageActions.js +24 -4
- package/lib/pages/pageTree/PageDeleteDialog.d.ts +1 -1
- package/lib/pages/pageTree/PageDeleteDialog.d.ts.map +1 -1
- package/lib/pages/pageTree/PageInfo.d.ts +2 -2
- package/lib/pages/pageTree/PageInfo.d.ts.map +1 -1
- package/lib/pages/pageTree/PageInfo.js +3 -3
- package/lib/pages/pageTree/PageLabel.d.ts +2 -2
- package/lib/pages/pageTree/PageLabel.d.ts.map +1 -1
- package/lib/pages/pageTree/PageLabel.js +5 -5
- package/lib/pages/pageTree/PageTree.d.ts +1 -1
- package/lib/pages/pageTree/PageTree.d.ts.map +1 -1
- package/lib/pages/pageTree/PageTree.js +2 -2
- package/lib/pages/pageTree/PageTreeContext.d.ts +4 -4
- package/lib/pages/pageTree/PageTreeContext.d.ts.map +1 -1
- package/lib/pages/pageTree/PageTreeRow.d.ts +3 -3
- package/lib/pages/pageTree/PageTreeRow.d.ts.map +1 -1
- package/lib/pages/pageTree/PageTreeService.d.ts +2 -2
- package/lib/pages/pageTree/PageTreeService.d.ts.map +1 -1
- package/lib/pages/pageTree/PageTypeIcon.d.ts +2 -2
- package/lib/pages/pageTree/PageTypeIcon.d.ts.map +1 -1
- package/lib/pages/pageTree/PageVisibility.d.ts +1 -1
- package/lib/pages/pageTree/PageVisibility.d.ts.map +1 -1
- package/lib/pages/pageTree/PageVisibilityIcon.d.ts +1 -1
- package/lib/pages/pageTree/PageVisibilityIcon.d.ts.map +1 -1
- package/lib/pages/pageTree/common/PageTreeTableRow.d.ts +1 -1
- package/lib/pages/pageTree/common/PageTreeTableRow.d.ts.map +1 -1
- package/lib/pages/pageTree/common/PageTreeTableRow.js +2 -2
- package/lib/pages/pageTree/findAvailableSlug.d.ts +11 -0
- package/lib/pages/pageTree/findAvailableSlug.d.ts.map +1 -0
- package/lib/pages/pageTree/findAvailableSlug.generated.d.ts +16 -0
- package/lib/pages/pageTree/findAvailableSlug.generated.d.ts.map +1 -0
- package/lib/pages/pageTree/findAvailableSlug.generated.js +5 -0
- package/lib/pages/pageTree/findAvailableSlug.js +62 -0
- package/lib/pages/pageTree/transformToSlug.d.ts +2 -0
- package/lib/pages/pageTree/transformToSlug.d.ts.map +1 -0
- package/lib/pages/pageTree/transformToSlug.js +12 -0
- package/lib/pages/pageTree/useCopyPastePages/sendPages.d.ts +4 -4
- package/lib/pages/pageTree/useCopyPastePages/sendPages.d.ts.map +1 -1
- package/lib/pages/pageTree/useCopyPastePages/sendPages.generated.d.ts +0 -10
- package/lib/pages/pageTree/useCopyPastePages/sendPages.generated.d.ts.map +1 -1
- package/lib/pages/pageTree/useCopyPastePages/sendPages.generated.js +0 -1
- package/lib/pages/pageTree/useCopyPastePages/sendPages.js +19 -40
- package/lib/pages/pageTree/useCopyPastePages.d.ts +3 -3
- package/lib/pages/pageTree/useCopyPastePages.d.ts.map +1 -1
- package/lib/pages/pageTree/useCopyPastePages.js +1 -1
- package/lib/pages/pageTree/useDndWindowScroll/useDndWindowScroll.d.ts +1 -1
- package/lib/pages/pageTree/useDndWindowScroll/useDndWindowScroll.d.ts.map +1 -1
- package/lib/pages/pageTree/usePageTree.d.ts +2 -2
- package/lib/pages/pageTree/usePageTree.d.ts.map +1 -1
- package/lib/pages/pageTree/{useCopyPastePages/ProgressDialog.d.ts → useProgressDialog.d.ts} +1 -1
- package/lib/pages/pageTree/useProgressDialog.d.ts.map +1 -0
- package/lib/pages/pageTree/useTranslatePagesAction.d.ts +16 -0
- package/lib/pages/pageTree/useTranslatePagesAction.d.ts.map +1 -0
- package/lib/pages/pageTree/useTranslatePagesAction.generated.d.ts +20 -0
- package/lib/pages/pageTree/useTranslatePagesAction.generated.d.ts.map +1 -0
- package/lib/pages/pageTree/useTranslatePagesAction.generated.js +5 -0
- package/lib/pages/pageTree/useTranslatePagesAction.js +339 -0
- package/lib/pages/pageTreeConfig.d.ts +3 -3
- package/lib/pages/pageTreeConfig.d.ts.map +1 -1
- package/lib/pages/pageTreeSelect/FinalFormPageTreeSelect.d.ts +2 -2
- package/lib/pages/pageTreeSelect/FinalFormPageTreeSelect.d.ts.map +1 -1
- package/lib/pages/pageTreeSelect/PageTreeSelectDialog.d.ts +2 -2
- package/lib/pages/pageTreeSelect/PageTreeSelectDialog.d.ts.map +1 -1
- package/lib/pages/pageTreeSelect/PageTreeSelectDialog.js +5 -5
- package/lib/pages/pagesPage/ConfirmPageActionDialog.d.ts +1 -1
- package/lib/pages/pagesPage/ConfirmPageActionDialog.d.ts.map +1 -1
- package/lib/pages/pagesPage/PagesPage.d.ts +2 -2
- package/lib/pages/pagesPage/PagesPage.d.ts.map +1 -1
- package/lib/pages/pagesPage/PagesPageActionToolbar.d.ts +1 -1
- package/lib/pages/pagesPage/PagesPageActionToolbar.d.ts.map +1 -1
- package/lib/pages/pagesPage/PagesPageActionToolbar.js +29 -2
- package/lib/pages/pagesPage/PagesPageActionToolbar.sc.d.ts +2 -2
- package/lib/pages/pagesPage/PagesPageActionToolbarBatchUpdateHelper.d.ts +3 -3
- package/lib/pages/pagesPage/PagesPageActionToolbarBatchUpdateHelper.d.ts.map +1 -1
- package/lib/pages/pagesPage/createPagesQuery.d.ts +1 -1
- package/lib/pages/pagesPage/createPagesQuery.d.ts.map +1 -1
- package/lib/pages/useSaveConflictQuery.d.ts.map +1 -1
- package/lib/preview/block/BlockPreview.d.ts +1 -1
- package/lib/preview/block/BlockPreview.d.ts.map +1 -1
- package/lib/preview/block/BlockPreview.js +6 -4
- package/lib/preview/block/BlockPreviewWithTabs.d.ts +2 -2
- package/lib/preview/block/BlockPreviewWithTabs.d.ts.map +1 -1
- package/lib/preview/block/SplitPreview.d.ts +1 -1
- package/lib/preview/block/SplitPreview.d.ts.map +1 -1
- package/lib/preview/block/useBlockPreview.d.ts +1 -1
- package/lib/preview/block/useBlockPreview.d.ts.map +1 -1
- package/lib/preview/common/DeviceToggle.js +1 -1
- package/lib/preview/site/OpenLinkDialog.d.ts +1 -1
- package/lib/preview/site/OpenLinkDialog.d.ts.map +1 -1
- package/lib/preview/site/OpenLinkDialog.js +1 -1
- package/lib/preview/site/SitePreview.d.ts.map +1 -1
- package/lib/preview/site/SitePreview.js +9 -3
- package/lib/preview/site/iframebridge/SitePreviewIFrameMessage.d.ts +1 -1
- package/lib/preview/site/iframebridge/SitePreviewIFrameMessage.d.ts.map +1 -1
- package/lib/redirects/RedirectActiveness.d.ts +1 -1
- package/lib/redirects/RedirectActiveness.d.ts.map +1 -1
- package/lib/redirects/RedirectForm.d.ts +3 -3
- package/lib/redirects/RedirectForm.d.ts.map +1 -1
- package/lib/redirects/RedirectForm.gql.generated.d.ts +4 -4
- package/lib/redirects/RedirectForm.gql.generated.d.ts.map +1 -1
- package/lib/redirects/RedirectsGrid.d.ts +1 -1
- package/lib/redirects/RedirectsGrid.d.ts.map +1 -1
- package/lib/redirects/RedirectsGrid.gql.generated.d.ts +2 -2
- package/lib/redirects/RedirectsGrid.gql.generated.d.ts.map +1 -1
- package/lib/redirects/RedirectsGrid.js +2 -2
- package/lib/redirects/createRedirectsPage.d.ts +2 -2
- package/lib/redirects/createRedirectsPage.d.ts.map +1 -1
- package/lib/redirects/submitMutation.d.ts +3 -3
- package/lib/redirects/submitMutation.d.ts.map +1 -1
- package/lib/siteConfigs/siteConfigsConfig.d.ts +1 -1
- package/lib/siteConfigs/siteConfigsConfig.d.ts.map +1 -1
- package/lib/siteConfigs/useSiteConfig.d.ts +2 -2
- package/lib/siteConfigs/useSiteConfig.d.ts.map +1 -1
- package/lib/siteConfigs/useSiteConfigs.d.ts +1 -1
- package/lib/siteConfigs/useSiteConfigs.d.ts.map +1 -1
- package/lib/testing/test-utils.d.ts +1 -1
- package/lib/testing/test-utils.d.ts.map +1 -1
- package/lib/translation/AzureAiTranslatorProvider.d.ts +2 -2
- package/lib/translation/AzureAiTranslatorProvider.d.ts.map +1 -1
- package/lib/translation/AzureAiTranslatorProvider.generated.d.ts +8 -0
- package/lib/translation/AzureAiTranslatorProvider.generated.d.ts.map +1 -1
- package/lib/translation/AzureAiTranslatorProvider.generated.js +2 -1
- package/lib/translation/AzureAiTranslatorProvider.js +31 -2
- package/lib/translation/TranslatableInterface.d.ts +4 -0
- package/lib/translation/TranslatableInterface.d.ts.map +1 -0
- package/lib/translation/TranslatableInterface.js +1 -0
- package/lib/translation/TranslateContentMenuItem.d.ts +7 -0
- package/lib/translation/TranslateContentMenuItem.d.ts.map +1 -0
- package/lib/translation/TranslateContentMenuItem.js +99 -0
- package/lib/translation/createDocumentTranslationMethods.d.ts +4 -0
- package/lib/translation/createDocumentTranslationMethods.d.ts.map +1 -0
- package/lib/translation/createDocumentTranslationMethods.js +62 -0
- package/lib/userPermissions/UserGrid.d.ts +1 -1
- package/lib/userPermissions/UserGrid.d.ts.map +1 -1
- package/lib/userPermissions/UserGrid.js +4 -2
- package/lib/userPermissions/hooks/currentUser.d.ts +1 -1
- package/lib/userPermissions/hooks/currentUser.d.ts.map +1 -1
- package/lib/userPermissions/hooks/currentUser.js +14 -6
- package/lib/userPermissions/user/ImpersonationButtons.d.ts.map +1 -1
- package/lib/userPermissions/user/ImpersonationButtons.js +3 -1
- package/lib/userPermissions/user/UserPageToolbar.js +2 -2
- package/lib/userPermissions/user/basicData/UserBasicData.js +1 -1
- package/lib/userPermissions/user/permissions/ContentScopeGrid.d.ts +1 -1
- package/lib/userPermissions/user/permissions/ContentScopeGrid.d.ts.map +1 -1
- package/lib/userPermissions/user/permissions/ContentScopeGrid.js +3 -1
- package/lib/userPermissions/user/permissions/PermissionGrid.d.ts.map +1 -1
- package/lib/userPermissions/user/permissions/PermissionGrid.js +3 -1
- package/lib/userPermissions/user/permissions/selectScopesDialogContent/SelectScopesDialogContent.d.ts +2 -2
- package/lib/userPermissions/user/permissions/selectScopesDialogContent/SelectScopesDialogContent.d.ts.map +1 -1
- package/lib/userPermissions/user/permissions/selectScopesDialogContent/SelectScopesDialogContent.js +3 -1
- package/lib/validation/validateJson.d.ts +2 -0
- package/lib/validation/validateJson.d.ts.map +1 -0
- package/lib/validation/validateJson.js +15 -0
- package/lib/warnings/WarningActions.d.ts.map +1 -1
- package/lib/warnings/WarningActions.js +3 -1
- package/lib/warnings/WarningMessage.d.ts +1 -1
- package/lib/warnings/WarningMessage.d.ts.map +1 -1
- package/lib/warnings/WarningSeverity.d.ts +1 -1
- package/lib/warnings/WarningSeverity.d.ts.map +1 -1
- package/lib/warnings/WarningsGrid.d.ts.map +1 -1
- package/lib/warnings/WarningsGrid.js +3 -1
- package/lib/warnings/warningsConfig.d.ts +1 -1
- package/lib/warnings/warningsConfig.d.ts.map +1 -1
- package/package.json +40 -23
- package/lib/dam/DataGrid/filter/DamSortPopover.d.ts +0 -8
- package/lib/dam/DataGrid/filter/DamSortPopover.d.ts.map +0 -1
- package/lib/dam/DataGrid/filter/DamSortPopover.js +0 -124
- package/lib/dam/DataGrid/filter/DamSortPopover.sc.d.ts +0 -20
- package/lib/dam/DataGrid/filter/DamSortPopover.sc.d.ts.map +0 -1
- package/lib/dam/DataGrid/filter/DamSortPopover.sc.js +0 -71
- package/lib/form/file/chooseFile/ChooseFileDialog.d.ts +0 -10
- package/lib/form/file/chooseFile/ChooseFileDialog.d.ts.map +0 -1
- package/lib/form/file/chooseFile/ChooseFileDialog.js +0 -115
- package/lib/pages/pageTree/useCopyPastePages/ProgressDialog.d.ts.map +0 -1
- /package/lib/pages/pageTree/{useCopyPastePages/ProgressDialog.js → useProgressDialog.js} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createOneOfBlock.d.ts","sourceRoot":"","sources":["../../../src/blocks/factories/createOneOfBlock.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAiB,KAAK,SAAS,EAA6C,MAAM,OAAO,CAAC;AACjG,OAAO,EAAoB,KAAK,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAUtE,OAAO,EAAE,aAAa,EAAE,KAAK,cAAc,EAAE,KAAK,0BAA0B,EAAE,KAAK,UAAU,EAAE,KAAK,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAI1I,UAAU,cAAc,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc;IAC9D,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAC5B,cAAc,EAAE,cAAc,EAAE,CAAC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IAC/B,cAAc,EAAE;QACZ,IAAI,EAAE,MAAM,CAAC;QAEb,KAAK,EAAE,GAAG,CAAC;KACd,EAAE,CAAC;IACJ,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE;QACJ,IAAI,EAAE,MAAM,CAAC;QAEb,KAAK,EAAE,GAAG,CAAC;KACd,CAAC;CACL;AAED,MAAM,WAAW,sBAAuB,SAAQ,0BAA0B;IACtE,KAAK,CAAC,EAAE;QACJ,IAAI,EAAE,MAAM,CAAC;QAEb,KAAK,EAAE,GAAG,CAAC;KACd,CAAC;CACL;AAED,KAAK,UAAU,CAAC,MAAM,SAAS,OAAO,IAAI,MAAM,SAAS,KAAK,GAAG;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAElH,MAAM,MAAM,gBAAgB,CAAC,MAAM,SAAS,OAAO,IAAI;IACnD,cAAc,EAAE;QACZ,IAAI,EAAE,MAAM,CAAC;QAEb,KAAK,EAAE,GAAG,CAAC;KACd,EAAE,CAAC;CACP,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;AAEvB,KAAK,SAAS,GAAG,MAAM,CAAC;AACxB,MAAM,WAAW,uBAAuB,CAAC,CAAC,SAAS,OAAO;IACtD,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IACnD,QAAQ,CAAC,EAAE,aAAa,GAAG,mBAAmB,CAAC;IAC/C,OAAO,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC;IACxC,UAAU,CAAC,EAAE,CAAC,CAAC;IACf,IAAI,CAAC,EAAE,KAAK,CAAC,iBAAiB,GAAG,MAAM,CAAC,CAAC;CAC5C;AAED,eAAO,MAAM,gBAAgB,GAAI,CAAC,SAAS,OAAO,GAAG,OAAO,EACxD,gGAQG,uBAAuB,CAAC,CAAC,CAAC,EAC7B,WAAW,CACP,KAAK,EAAE,cAAc,CAAC,kBAAkB,EAAE,eAAe,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,sBAAsB,CAAC,KACtG,cAAc,CAAC,kBAAkB,EAAE,eAAe,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,sBAAsB,CAAC,KACtG,cAAc,CAAC,kBAAkB,EAAE,eAAe,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,sBAAsB,
|
|
1
|
+
{"version":3,"file":"createOneOfBlock.d.ts","sourceRoot":"","sources":["../../../src/blocks/factories/createOneOfBlock.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAiB,KAAK,SAAS,EAA6C,MAAM,OAAO,CAAC;AACjG,OAAO,EAAoB,KAAK,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAUtE,OAAO,EAAE,aAAa,EAAE,KAAK,cAAc,EAAE,KAAK,0BAA0B,EAAE,KAAK,UAAU,EAAE,KAAK,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAI1I,UAAU,cAAc,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc;IAC9D,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAC5B,cAAc,EAAE,cAAc,EAAE,CAAC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IAC/B,cAAc,EAAE;QACZ,IAAI,EAAE,MAAM,CAAC;QAEb,KAAK,EAAE,GAAG,CAAC;KACd,EAAE,CAAC;IACJ,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE;QACJ,IAAI,EAAE,MAAM,CAAC;QAEb,KAAK,EAAE,GAAG,CAAC;KACd,CAAC;CACL;AAED,MAAM,WAAW,sBAAuB,SAAQ,0BAA0B;IACtE,KAAK,CAAC,EAAE;QACJ,IAAI,EAAE,MAAM,CAAC;QAEb,KAAK,EAAE,GAAG,CAAC;KACd,CAAC;CACL;AAED,KAAK,UAAU,CAAC,MAAM,SAAS,OAAO,IAAI,MAAM,SAAS,KAAK,GAAG;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAElH,MAAM,MAAM,gBAAgB,CAAC,MAAM,SAAS,OAAO,IAAI;IACnD,cAAc,EAAE;QACZ,IAAI,EAAE,MAAM,CAAC;QAEb,KAAK,EAAE,GAAG,CAAC;KACd,EAAE,CAAC;CACP,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;AAEvB,KAAK,SAAS,GAAG,MAAM,CAAC;AACxB,MAAM,WAAW,uBAAuB,CAAC,CAAC,SAAS,OAAO;IACtD,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IACnD,QAAQ,CAAC,EAAE,aAAa,GAAG,mBAAmB,CAAC;IAC/C,OAAO,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC;IACxC,UAAU,CAAC,EAAE,CAAC,CAAC;IACf,IAAI,CAAC,EAAE,KAAK,CAAC,iBAAiB,GAAG,MAAM,CAAC,CAAC;CAC5C;AAED,eAAO,MAAM,gBAAgB,GAAI,CAAC,SAAS,OAAO,GAAG,OAAO,EACxD,gGAQG,uBAAuB,CAAC,CAAC,CAAC,EAC7B,WAAW,CACP,KAAK,EAAE,cAAc,CAAC,kBAAkB,EAAE,eAAe,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,sBAAsB,CAAC,KACtG,cAAc,CAAC,kBAAkB,EAAE,eAAe,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,sBAAsB,CAAC,KACtG,cAAc,CAAC,kBAAkB,EAAE,eAAe,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,sBAAsB,CAsbjG,CAAC"}
|
|
@@ -556,7 +556,64 @@ export var createOneOfBlock = function createOneOfBlock(_ref, override) {
|
|
|
556
556
|
return [].concat(_toConsumableArray(content), _toConsumableArray((_block$extractTextCon = (_block$extractTextCon2 = block.extractTextContents) === null || _block$extractTextCon2 === void 0 ? void 0 : _block$extractTextCon2.call(block, child.props, options)) !== null && _block$extractTextCon !== void 0 ? _block$extractTextCon : []));
|
|
557
557
|
}, []);
|
|
558
558
|
return content;
|
|
559
|
-
}
|
|
559
|
+
},
|
|
560
|
+
translateContent: function () {
|
|
561
|
+
var _translateContent = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee5(state, translate) {
|
|
562
|
+
var translatedAttachedBlocks;
|
|
563
|
+
return _regenerator().w(function (_context5) {
|
|
564
|
+
while (1) switch (_context5.n) {
|
|
565
|
+
case 0:
|
|
566
|
+
_context5.n = 1;
|
|
567
|
+
return Promise.all(state.attachedBlocks.map(/*#__PURE__*/function () {
|
|
568
|
+
var _ref11 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee4(child) {
|
|
569
|
+
var block, translatedProps, _t7;
|
|
570
|
+
return _regenerator().w(function (_context4) {
|
|
571
|
+
while (1) switch (_context4.n) {
|
|
572
|
+
case 0:
|
|
573
|
+
block = blockForType(child.type);
|
|
574
|
+
if (block) {
|
|
575
|
+
_context4.n = 1;
|
|
576
|
+
break;
|
|
577
|
+
}
|
|
578
|
+
throw new Error("No Block found for type ".concat(child.type));
|
|
579
|
+
case 1:
|
|
580
|
+
if (!block.translateContent) {
|
|
581
|
+
_context4.n = 3;
|
|
582
|
+
break;
|
|
583
|
+
}
|
|
584
|
+
_context4.n = 2;
|
|
585
|
+
return block.translateContent(child.props, translate);
|
|
586
|
+
case 2:
|
|
587
|
+
_t7 = _context4.v;
|
|
588
|
+
_context4.n = 4;
|
|
589
|
+
break;
|
|
590
|
+
case 3:
|
|
591
|
+
_t7 = child.props;
|
|
592
|
+
case 4:
|
|
593
|
+
translatedProps = _t7;
|
|
594
|
+
return _context4.a(2, _objectSpread(_objectSpread({}, child), {}, {
|
|
595
|
+
props: translatedProps
|
|
596
|
+
}));
|
|
597
|
+
}
|
|
598
|
+
}, _callee4);
|
|
599
|
+
}));
|
|
600
|
+
return function (_x7) {
|
|
601
|
+
return _ref11.apply(this, arguments);
|
|
602
|
+
};
|
|
603
|
+
}()));
|
|
604
|
+
case 1:
|
|
605
|
+
translatedAttachedBlocks = _context5.v;
|
|
606
|
+
return _context5.a(2, _objectSpread(_objectSpread({}, state), {}, {
|
|
607
|
+
attachedBlocks: translatedAttachedBlocks
|
|
608
|
+
}));
|
|
609
|
+
}
|
|
610
|
+
}, _callee5);
|
|
611
|
+
}));
|
|
612
|
+
function translateContent(_x5, _x6) {
|
|
613
|
+
return _translateContent.apply(this, arguments);
|
|
614
|
+
}
|
|
615
|
+
return translateContent;
|
|
616
|
+
}()
|
|
560
617
|
});
|
|
561
618
|
if (override) {
|
|
562
619
|
return override(OneOfBlock);
|
|
@@ -573,7 +630,7 @@ var ToggleButtonGroup = /*#__PURE__*/styled(MuiToggleButtonGroup, process.env.NO
|
|
|
573
630
|
styles: "display:flex"
|
|
574
631
|
} : {
|
|
575
632
|
name: "zjik7",
|
|
576
|
-
styles: "display:flex/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ibG9ja3MvZmFjdG9yaWVzL2NyZWF0ZU9uZU9mQmxvY2sudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQStmc0QiLCJmaWxlIjoiLi4vLi4vLi4vc3JjL2Jsb2Nrcy9mYWN0b3JpZXMvY3JlYXRlT25lT2ZCbG9jay50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGaWVsZCwgUmFkaW9Hcm91cEZpZWxkLCBTZWxlY3RGaWVsZCB9IGZyb20gXCJAY29tZXQvYWRtaW5cIjtcbmltcG9ydCB7IEJveCwgRGl2aWRlciwgVG9nZ2xlQnV0dG9uIGFzIE11aVRvZ2dsZUJ1dHRvbiwgVG9nZ2xlQnV0dG9uR3JvdXAgYXMgTXVpVG9nZ2xlQnV0dG9uR3JvdXAgfSBmcm9tIFwiQG11aS9tYXRlcmlhbFwiO1xuaW1wb3J0IHsgc3R5bGVkIH0gZnJvbSBcIkBtdWkvbWF0ZXJpYWwvc3R5bGVzXCI7XG5pbXBvcnQgaXNFcXVhbCBmcm9tIFwibG9kYXNoLmlzZXF1YWxcIjtcbmltcG9ydCB7IHR5cGUgRGlzcGF0Y2gsIHR5cGUgUmVhY3ROb2RlLCB0eXBlIFNldFN0YXRlQWN0aW9uLCB1c2VDYWxsYmFjaywgdXNlTWVtbyB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgRm9ybWF0dGVkTWVzc2FnZSwgdHlwZSBNZXNzYWdlRGVzY3JpcHRvciB9IGZyb20gXCJyZWFjdC1pbnRsXCI7XG5cbmltcG9ydCB7IHVzZUNvbnRlbnRTY29wZSB9IGZyb20gXCIuLi8uLi9jb250ZW50U2NvcGUvUHJvdmlkZXJcIjtcbmltcG9ydCB7IHVzZUJsb2NrQWRtaW5Db21wb25lbnRQYXBlciB9IGZyb20gXCIuLi9jb21tb24vQmxvY2tBZG1pbkNvbXBvbmVudFBhcGVyXCI7XG5pbXBvcnQgeyBIaWRkZW5JblN1YnJvdXRlIH0gZnJvbSBcIi4uL2NvbW1vbi9IaWRkZW5JblN1YnJvdXRlXCI7XG5pbXBvcnQgeyB1c2VCbG9ja3NDb25maWcgfSBmcm9tIFwiLi4vY29uZmlnL0Jsb2Nrc0NvbmZpZ0NvbnRleHRcIjtcbmltcG9ydCB7IEJsb2Nrc0ZpbmFsRm9ybSB9IGZyb20gXCIuLi9mb3JtL0Jsb2Nrc0ZpbmFsRm9ybVwiO1xuaW1wb3J0IHsgY3JlYXRlQmxvY2tTa2VsZXRvbiB9IGZyb20gXCIuLi9oZWxwZXJzL2NyZWF0ZUJsb2NrU2tlbGV0b25cIjtcbmltcG9ydCB7IEhvdmVyUHJldmlld0NvbXBvbmVudCB9IGZyb20gXCIuLi9pZnJhbWVicmlkZ2UvSG92ZXJQcmV2aWV3Q29tcG9uZW50XCI7XG5pbXBvcnQgeyBTZWxlY3RQcmV2aWV3Q29tcG9uZW50IH0gZnJvbSBcIi4uL2lmcmFtZWJyaWRnZS9TZWxlY3RQcmV2aWV3Q29tcG9uZW50XCI7XG5pbXBvcnQgeyBCbG9ja0NhdGVnb3J5LCB0eXBlIEJsb2NrSW50ZXJmYWNlLCB0eXBlIEJsb2NrUHJldmlld1N0YXRlSW50ZXJmYWNlLCB0eXBlIEJsb2NrU3RhdGUsIHR5cGUgQ3VzdG9tQmxvY2tDYXRlZ29yeSB9IGZyb20gXCIuLi90eXBlc1wiO1xuaW1wb3J0IHsgcmVzb2x2ZU5ld1N0YXRlIH0gZnJvbSBcIi4uL3V0aWxzXCI7XG5pbXBvcnQgeyBwYXJhbGxlbEFzeW5jRXZlcnkgfSBmcm9tIFwiLi4vdXRpbHMvcGFyYWxsZWxBc3luY0V2ZXJ5XCI7XG5cbmludGVyZmFjZSBPbmVPZkJsb2NrSXRlbTxUIGV4dGVuZHMgQmxvY2tJbnRlcmZhY2UgPSBCbG9ja0ludGVyZmFjZT4ge1xuICAgIHR5cGU6IHN0cmluZztcbiAgICBwcm9wczogQmxvY2tTdGF0ZTxUPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBPbmVPZkJsb2NrU3RhdGUge1xuICAgIGF0dGFjaGVkQmxvY2tzOiBPbmVPZkJsb2NrSXRlbVtdO1xuICAgIGFjdGl2ZVR5cGU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT25lT2ZCbG9ja0ZyYWdtZW50IHtcbiAgICBhdHRhY2hlZEJsb2Nrczoge1xuICAgICAgICB0eXBlOiBzdHJpbmc7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgIHByb3BzOiBhbnk7XG4gICAgfVtdO1xuICAgIGFjdGl2ZVR5cGU/OiBzdHJpbmc7XG4gICAgYmxvY2s/OiB7XG4gICAgICAgIHR5cGU6IHN0cmluZztcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgICAgcHJvcHM6IGFueTtcbiAgICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9uZU9mQmxvY2tQcmV2aWV3U3RhdGUgZXh0ZW5kcyBCbG9ja1ByZXZpZXdTdGF0ZUludGVyZmFjZSB7XG4gICAgYmxvY2s/OiB7XG4gICAgICAgIHR5cGU6IHN0cmluZztcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgICAgcHJvcHM6IGFueTtcbiAgICB9O1xufVxuXG50eXBlIEFjdGl2ZVR5cGU8Q29uZmlnIGV4dGVuZHMgYm9vbGVhbj4gPSBDb25maWcgZXh0ZW5kcyBmYWxzZSA/IHsgYWN0aXZlVHlwZTogc3RyaW5nIH0gOiB7IGFjdGl2ZVR5cGU/OiBzdHJpbmcgfTtcblxuZXhwb3J0IHR5cGUgT25lT2ZCbG9ja091dHB1dDxDb25maWcgZXh0ZW5kcyBib29sZWFuPiA9IHtcbiAgICBhdHRhY2hlZEJsb2Nrczoge1xuICAgICAgICB0eXBlOiBzdHJpbmc7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgIHByb3BzOiBhbnk7XG4gICAgfVtdO1xufSAmIEFjdGl2ZVR5cGU8Q29uZmlnPjtcblxudHlwZSBCbG9ja1R5cGUgPSBzdHJpbmc7XG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZU9uZU9mQmxvY2tPcHRpb25zPFQgZXh0ZW5kcyBib29sZWFuPiB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIGRpc3BsYXlOYW1lPzogUmVhY3ROb2RlO1xuICAgIHN1cHBvcnRlZEJsb2NrczogUmVjb3JkPEJsb2NrVHlwZSwgQmxvY2tJbnRlcmZhY2U+O1xuICAgIGNhdGVnb3J5PzogQmxvY2tDYXRlZ29yeSB8IEN1c3RvbUJsb2NrQ2F0ZWdvcnk7XG4gICAgdmFyaWFudD86IFwic2VsZWN0XCIgfCBcInJhZGlvXCIgfCBcInRvZ2dsZVwiO1xuICAgIGFsbG93RW1wdHk/OiBUO1xuICAgIHRhZ3M/OiBBcnJheTxNZXNzYWdlRGVzY3JpcHRvciB8IHN0cmluZz47XG59XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVPbmVPZkJsb2NrID0gPFQgZXh0ZW5kcyBib29sZWFuID0gYm9vbGVhbj4oXG4gICAge1xuICAgICAgICBzdXBwb3J0ZWRCbG9ja3MsXG4gICAgICAgIG5hbWUsXG4gICAgICAgIGRpc3BsYXlOYW1lID0gXCJTd2l0Y2hcIixcbiAgICAgICAgY2F0ZWdvcnkgPSBCbG9ja0NhdGVnb3J5Lk90aGVyLFxuICAgICAgICB2YXJpYW50ID0gXCJzZWxlY3RcIixcbiAgICAgICAgYWxsb3dFbXB0eTogcGFzc2VkQWxsb3dFbXB0eSxcbiAgICAgICAgdGFncyxcbiAgICB9OiBDcmVhdGVPbmVPZkJsb2NrT3B0aW9uczxUPixcbiAgICBvdmVycmlkZT86IChcbiAgICAgICAgYmxvY2s6IEJsb2NrSW50ZXJmYWNlPE9uZU9mQmxvY2tGcmFnbWVudCwgT25lT2ZCbG9ja1N0YXRlLCBPbmVPZkJsb2NrT3V0cHV0PFQ+LCBPbmVPZkJsb2NrUHJldmlld1N0YXRlPixcbiAgICApID0+IEJsb2NrSW50ZXJmYWNlPE9uZU9mQmxvY2tGcmFnbWVudCwgT25lT2ZCbG9ja1N0YXRlLCBPbmVPZkJsb2NrT3V0cHV0PFQ+LCBPbmVPZkJsb2NrUHJldmlld1N0YXRlPixcbik6IEJsb2NrSW50ZXJmYWNlPE9uZU9mQmxvY2tGcmFnbWVudCwgT25lT2ZCbG9ja1N0YXRlLCBPbmVPZkJsb2NrT3V0cHV0PFQ+LCBPbmVPZkJsb2NrUHJldmlld1N0YXRlPiA9PiB7XG4gICAgLy8gYWxsb3dFbXB0eSBjYW4ndCBoYXZlIGEgZGVmYXVsdCB0eXBlIGJlY2F1c2UgaXQncyB0eXBlZCBieSBhIGdlbmVyaWNcbiAgICBjb25zdCBhbGxvd0VtcHR5ID0gKHBhc3NlZEFsbG93RW1wdHkgPz8gdHJ1ZSkgc2F0aXNmaWVzIGJvb2xlYW47XG5cbiAgICBmdW5jdGlvbiBibG9ja0ZvclR5cGUodHlwZTogc3RyaW5nKTogQmxvY2tJbnRlcmZhY2UgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHN1cHBvcnRlZEJsb2Nrc1t0eXBlXSA/PyBudWxsO1xuICAgIH1cbiAgICAvLyBoZWxwZXIgdG8gZ2V0IGNvbW1vbiB2YWx1ZXMgb2YgdGhlIHNlbGVjdGVkIGJsb2NrIGJ5IFN0YXRlXG4gICAgZnVuY3Rpb24gZ2V0QWN0aXZlQmxvY2soczogT25lT2ZCbG9ja1N0YXRlKSB7XG4gICAgICAgIGlmICghcy5hY3RpdmVUeXBlKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHN0YXRlOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgYmxvY2s6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICB0eXBlOiB1bmRlZmluZWQsXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGFjdGl2ZUJsb2NrU3RhdGUgPSBzLmF0dGFjaGVkQmxvY2tzLmZpbmQoKGMpID0+IGMudHlwZSA9PT0gcy5hY3RpdmVUeXBlKTtcbiAgICAgICAgaWYgKCFhY3RpdmVCbG9ja1N0YXRlKSB7XG4gICAgICAgICAgICBsZXQgbWVzc2FnZSA9IGBDYW4ndCBmaW5kIHJlZmVyZW5jZSB0byBhY3RpdmUgYmxvY2sgb2YgdHlwZSBcIiR7cy5hY3RpdmVUeXBlfVwiLmA7XG5cbiAgICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gXCJkZXZlbG9wbWVudFwiKSB7XG4gICAgICAgICAgICAgICAgbWVzc2FnZSArPSBgIFRoaXMgaXMgcHJvYmFibHkgZHVlIHRvIGEgbWlzc2luZyBcIngtaW5jbHVkZS1pbnZpc2libGUtY29udGVudFwiIEhUVFAgaGVhZGVyLiBQbGVhc2UgbWFrZSBzdXJlIHRvIGluY2x1ZGUgdGhlIGhlYWRlciB3aGVuIGZldGNoaW5nIHRoZSBibG9jay5gO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgYmxvY2sgPSBhY3RpdmVCbG9ja1N0YXRlID8gYmxvY2tGb3JUeXBlKGFjdGl2ZUJsb2NrU3RhdGUudHlwZSkgOiB1bmRlZmluZWQ7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHN0YXRlOiBhY3RpdmVCbG9ja1N0YXRlLFxuICAgICAgICAgICAgYmxvY2ssXG4gICAgICAgICAgICB0eXBlOiBhY3RpdmVCbG9ja1N0YXRlLnR5cGUsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgY29uc3QgY2hpbGRUYWdzID0gT2JqZWN0LnZhbHVlcyhzdXBwb3J0ZWRCbG9ja3MpLnJlZHVjZTxBcnJheTxNZXNzYWdlRGVzY3JpcHRvciB8IHN0cmluZz4+KChhY2MsIGJsb2NrKSA9PiB7XG4gICAgICAgIGlmIChibG9jay50YWdzKSB7XG4gICAgICAgICAgICByZXR1cm4gWy4uLmFjYywgLi4uYmxvY2sudGFnc107XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICB9LCBbXSk7XG5cbiAgICBjb25zdCBPbmVPZkJsb2NrOiBCbG9ja0ludGVyZmFjZTxPbmVPZkJsb2NrRnJhZ21lbnQsIE9uZU9mQmxvY2tTdGF0ZSwgT25lT2ZCbG9ja091dHB1dDxUPiwgT25lT2ZCbG9ja1ByZXZpZXdTdGF0ZT4gPSB7XG4gICAgICAgIC4uLmNyZWF0ZUJsb2NrU2tlbGV0b24oKSxcblxuICAgICAgICBuYW1lLFxuXG4gICAgICAgIGRpc3BsYXlOYW1lLFxuXG4gICAgICAgIHRhZ3M6IHRhZ3MgPyB0YWdzIDogY2hpbGRUYWdzLFxuXG4gICAgICAgIGNhdGVnb3J5LFxuXG4gICAgICAgIGRlZmF1bHRWYWx1ZXM6ICgpID0+IHtcbiAgICAgICAgICAgIGlmIChhbGxvd0VtcHR5KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgYXR0YWNoZWRCbG9ja3M6IFtdLFxuICAgICAgICAgICAgICAgICAgICBhY3RpdmVUeXBlOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgW2Jsb2NrVHlwZSwgYmxvY2tdID0gT2JqZWN0LmVudHJpZXMoc3VwcG9ydGVkQmxvY2tzKVswXTtcblxuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIGF0dGFjaGVkQmxvY2tzOiBbeyB0eXBlOiBibG9ja1R5cGUsIHByb3BzOiBibG9jay5kZWZhdWx0VmFsdWVzKCkgfV0sXG4gICAgICAgICAgICAgICAgICAgIGFjdGl2ZVR5cGU6IGJsb2NrVHlwZSxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuXG4gICAgICAgIGlucHV0MlN0YXRlOiAoeyBhdHRhY2hlZEJsb2NrcywgYWN0aXZlVHlwZSwgYmxvY2ssIC4uLmFkZGl0aW9uYWxGaWVsZHMgfSkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc3RhdGU6IE9uZU9mQmxvY2tTdGF0ZSA9IHtcbiAgICAgICAgICAgICAgICAuLi5hZGRpdGlvbmFsRmllbGRzLFxuICAgICAgICAgICAgICAgIGF0dGFjaGVkQmxvY2tzOiBbXSxcbiAgICAgICAgICAgICAgICBhY3RpdmVUeXBlOiBhY3RpdmVUeXBlICYmIHN1cHBvcnRlZEJsb2Nrc1thY3RpdmVUeXBlXSA/IGFjdGl2ZVR5cGUgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgYXR0YWNoZWRCbG9ja3MpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBibG9jayA9IGJsb2NrRm9yVHlwZShpdGVtLnR5cGUpO1xuXG4gICAgICAgICAgICAgICAgaWYgKCFibG9jaykge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oYFVua25vd24gYmxvY2sgdHlwZSBcIiR7aXRlbS50eXBlfVwiYCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHN0YXRlLmF0dGFjaGVkQmxvY2tzLnB1c2goeyAuLi5pdGVtLCBwcm9wczogYmxvY2suaW5wdXQyU3RhdGUoaXRlbS5wcm9wcykgfSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBzdGF0ZTtcbiAgICAgICAgfSxcbiAgICAgICAgc3RhdGUyT3V0cHV0OiAoeyBhdHRhY2hlZEJsb2NrcywgYWN0aXZlVHlwZSwgLi4uYWRkaXRpb25hbEZpZWxkcyB9KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIC4uLmFkZGl0aW9uYWxGaWVsZHMsXG4gICAgICAgICAgICAgICAgYXR0YWNoZWRCbG9ja3M6IGF0dGFjaGVkQmxvY2tzLm1hcCgoYykgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBibG9jayA9IGJsb2NrRm9yVHlwZShjLnR5cGUpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWJsb2NrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIEJsb2NrIGZvdW5kIGZvciB0eXBlICR7Yy50eXBlfWApOyAvLyBmb3IgVFNcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogYy50eXBlLFxuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHM6IGJsb2NrLnN0YXRlMk91dHB1dChjLnByb3BzKSxcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBhY3RpdmVUeXBlLFxuICAgICAgICAgICAgfSBhcyBPbmVPZkJsb2NrT3V0cHV0PFQ+O1xuICAgICAgICB9LFxuXG4gICAgICAgIG91dHB1dDJTdGF0ZTogYXN5bmMgKHsgYXR0YWNoZWRCbG9ja3MsIGFjdGl2ZVR5cGUsIC4uLmFkZGl0aW9uYWxGaWVsZHMgfSwgY29udGV4dCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc3RhdGU6IE9uZU9mQmxvY2tTdGF0ZSA9IHtcbiAgICAgICAgICAgICAgICBhdHRhY2hlZEJsb2NrczogW10sXG4gICAgICAgICAgICAgICAgYWN0aXZlVHlwZSxcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGZvciAoY29uc3QgaXRlbSBvZiBhdHRhY2hlZEJsb2Nrcykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGJsb2NrID0gYmxvY2tGb3JUeXBlKGl0ZW0udHlwZSk7XG5cbiAgICAgICAgICAgICAgICBpZiAoIWJsb2NrKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgTm8gQmxvY2sgZm91bmQgZm9yIHR5cGUgJHtpdGVtLnR5cGV9YCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgc3RhdGUuYXR0YWNoZWRCbG9ja3MucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgIC4uLml0ZW0sXG4gICAgICAgICAgICAgICAgICAgIHByb3BzOiBhd2FpdCBibG9jay5vdXRwdXQyU3RhdGUoaXRlbS5wcm9wcywgY29udGV4dCksXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBzdGF0ZTtcbiAgICAgICAgfSxcblxuICAgICAgICBjcmVhdGVQcmV2aWV3U3RhdGU6IChzdGF0ZSwgcHJldmlld0N0eCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgeyBzdGF0ZTogYmxvY2tTdGF0ZSwgYmxvY2sgfSA9IGdldEFjdGl2ZUJsb2NrKHN0YXRlKTtcbiAgICAgICAgICAgIGNvbnN0IHsgYXR0YWNoZWRCbG9ja3MsIGFjdGl2ZVR5cGUsIC4uLmFkZGl0aW9uYWxGaWVsZHMgfSA9IHN0YXRlO1xuXG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIC4uLmFkZGl0aW9uYWxGaWVsZHMsXG4gICAgICAgICAgICAgICAgYmxvY2s6IGJsb2NrU3RhdGVcbiAgICAgICAgICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IGJsb2NrU3RhdGUudHlwZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLmJsb2NrPy5jcmVhdGVQcmV2aWV3U3RhdGUoYmxvY2tTdGF0ZS5wcm9wcywgcHJldmlld0N0eCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZG1pbk1ldGE6IHsgcm91dGU6IGAke3ByZXZpZXdDdHgucGFyZW50VXJsfSMke2Jsb2NrU3RhdGUudHlwZX1gIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0sXG5cbiAgICAgICAgaXNWYWxpZDogYXN5bmMgKHN0YXRlKSA9PlxuICAgICAgICAgICAgcGFyYWxsZWxBc3luY0V2ZXJ5KHN0YXRlLmF0dGFjaGVkQmxvY2tzLCBhc3luYyAoYykgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGJsb2NrID0gYmxvY2tGb3JUeXBlKGMudHlwZSk7XG4gICAgICAgICAgICAgICAgaWYgKCFibG9jaykge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIEJsb2NrIGZvdW5kIGZvciB0eXBlICR7Yy50eXBlfWApOyAvLyBmb3IgVFNcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGJsb2NrLmlzVmFsaWQoYy5wcm9wcyk7XG4gICAgICAgICAgICB9KSxcblxuICAgICAgICBhbmNob3JzOiAoc3RhdGUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHsgc3RhdGU6IGJsb2NrU3RhdGUsIGJsb2NrIH0gPSBnZXRBY3RpdmVCbG9jayhzdGF0ZSk7XG5cbiAgICAgICAgICAgIGlmIChibG9ja1N0YXRlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBibG9jaz8uYW5jaG9ycz8uKGJsb2NrU3RhdGUucHJvcHMpID8/IFtdO1xuICAgICAgICB9LFxuXG4gICAgICAgIGRlcGVuZGVuY2llczogKHN0YXRlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB7IHN0YXRlOiBibG9ja1N0YXRlLCBibG9jayB9ID0gZ2V0QWN0aXZlQmxvY2soc3RhdGUpO1xuXG4gICAgICAgICAgICBpZiAoYmxvY2tTdGF0ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gYmxvY2s/LmRlcGVuZGVuY2llcz8uKGJsb2NrU3RhdGUucHJvcHMpID8/IFtdO1xuICAgICAgICB9LFxuXG4gICAgICAgIHJlcGxhY2VEZXBlbmRlbmNpZXNJbk91dHB1dDogKG91dHB1dCwgcmVwbGFjZW1lbnRzKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBuZXdPdXRwdXQ6IE9uZU9mQmxvY2tPdXRwdXQ8VD4gPSB7IC4uLm91dHB1dCwgYXR0YWNoZWRCbG9ja3M6IFtdIH07XG5cbiAgICAgICAgICAgIGZvciAoY29uc3QgYyBvZiBvdXRwdXQuYXR0YWNoZWRCbG9ja3MpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBibG9jayA9IGJsb2NrRm9yVHlwZShjLnR5cGUpO1xuICAgICAgICAgICAgICAgIGlmICghYmxvY2spIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyBCbG9jayBmb3VuZCBmb3IgdHlwZSAke2MudHlwZX1gKTsgLy8gZm9yIFRTXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgbmV3T3V0cHV0LmF0dGFjaGVkQmxvY2tzLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAuLi5jLFxuICAgICAgICAgICAgICAgICAgICBwcm9wczogYmxvY2sucmVwbGFjZURlcGVuZGVuY2llc0luT3V0cHV0KGMucHJvcHMsIHJlcGxhY2VtZW50cyksXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBuZXdPdXRwdXQ7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZGVmaW5lc093blBhZGRpbmc6IHRydWUsXG5cbiAgICAgICAgQWRtaW5Db21wb25lbnQ6ICh7IHN0YXRlLCB1cGRhdGVTdGF0ZSB9KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBpc0luUGFwZXIgPSB1c2VCbG9ja0FkbWluQ29tcG9uZW50UGFwZXIoKTtcblxuICAgICAgICAgICAgY29uc3QgeyBzY29wZSB9ID0gdXNlQ29udGVudFNjb3BlKCk7XG4gICAgICAgICAgICBjb25zdCB7IGlzQmxvY2tTdXBwb3J0ZWQgfSA9IHVzZUJsb2Nrc0NvbmZpZygpO1xuXG4gICAgICAgICAgICBjb25zdCBvcHRpb25zID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgICAgICAgICAgbGV0IGZpbHRlcmVkU3VwcG9ydGVkQmxvY2tzO1xuXG4gICAgICAgICAgICAgICAgaWYgKGlzQmxvY2tTdXBwb3J0ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyZWRTdXBwb3J0ZWRCbG9ja3MgPSBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgICAgICAgICAgICAgICAgICAgICBPYmplY3QuZW50cmllcyhzdXBwb3J0ZWRCbG9ja3MpLmZpbHRlcigoWywgYmxvY2tdKSA9PiBpc0Jsb2NrU3VwcG9ydGVkKGJsb2NrLCBzY29wZSkpLFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGZpbHRlcmVkU3VwcG9ydGVkQmxvY2tzID0gc3VwcG9ydGVkQmxvY2tzO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGNvbnN0IG9wdGlvbnM6IEFycmF5PHsgdmFsdWU6IHN0cmluZzsgbGFiZWw6IFJlYWN0Tm9kZSB9PiA9IGFsbG93RW1wdHlcbiAgICAgICAgICAgICAgICAgICAgPyBbeyB2YWx1ZTogXCJub25lXCIsIGxhYmVsOiA8Rm9ybWF0dGVkTWVzc2FnZSBpZD1cImNvbWV0LmJsb2Nrcy5vbmVPZkJsb2NrLmVtcHR5XCIgZGVmYXVsdE1lc3NhZ2U9XCJOb25lXCIgLz4gfV1cbiAgICAgICAgICAgICAgICAgICAgOiBbXTtcblxuICAgICAgICAgICAgICAgIE9iamVjdC5lbnRyaWVzKGZpbHRlcmVkU3VwcG9ydGVkQmxvY2tzKS5mb3JFYWNoKChbYmxvY2tUeXBlLCBibG9ja10pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9ucy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBibG9ja1R5cGUsXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogYmxvY2suZGlzcGxheU5hbWUsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbnM7XG4gICAgICAgICAgICB9LCBbc2NvcGUsIGlzQmxvY2tTdXBwb3J0ZWRdKTtcblxuICAgICAgICAgICAgY29uc3QgaGFuZGxlQmxvY2tTZWxlY3QgPSB1c2VDYWxsYmFjayhcbiAgICAgICAgICAgICAgICAoYmxvY2tUeXBlOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlU3RhdGUoKHByZXZTdGF0ZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1N0YXRlOiBPbmVPZkJsb2NrU3RhdGUgPSBwcmV2U3RhdGU7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoYmxvY2tUeXBlID09PSBcIm5vbmVcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHVuc2VsZWN0LCBubyBibG9jayBzZWxlY3RlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1N0YXRlID0geyAuLi5wcmV2U3RhdGUsIGFjdGl2ZVR5cGU6IHVuZGVmaW5lZCB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjaGVjayBpZiB3ZSBoYXZlIGEgYmxvY2sgb2YgdGhlIHNhbWUgdHlwZSBhbHJlYWR5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWF0Y2ggPSBwcmV2U3RhdGUuYXR0YWNoZWRCbG9ja3MuZmluZCgoYykgPT4gYy50eXBlID09PSBibG9ja1R5cGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtYXRjaCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB3ZSBoYXZlIGFuIGV4aXN0aW5nIGJsb2NrIHdpdGggc2FtZSB0eXBlLCBzbyBzZWxlY3QgaXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3U3RhdGUgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5wcmV2U3RhdGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmVUeXBlOiBibG9ja1R5cGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2UgaGF2ZSBubyBleGlzdGluZyBibG9jaywgd2UgbmVlZCB0byBjcmVhdGUgYW5kIHNlbGVjdCBhIG5ldyBibG9ja1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBibG9jayA9IGJsb2NrRm9yVHlwZShibG9ja1R5cGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWJsb2NrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIEJsb2NrIGZvdW5kIGZvciB0eXBlICR7YmxvY2tUeXBlfWApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV3SXRlbTogT25lT2ZCbG9ja0l0ZW0gPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBibG9ja1R5cGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wczogYmxvY2suZGVmYXVsdFZhbHVlcygpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1N0YXRlID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4ucHJldlN0YXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0YWNoZWRCbG9ja3M6IFsuLi5wcmV2U3RhdGUuYXR0YWNoZWRCbG9ja3MsIG5ld0l0ZW1dLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlVHlwZTogYmxvY2tUeXBlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNsZWFuIHVwIHRoZSBwcmV2aW91cyBzZWxlY3RlZCBibG9ja1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2hlbiBwcmV2aW91cyBibG9jayBoYXMgbm8gdmFsdWVzICh2YWx1ZXMgYXJlIGVxdWFsIHRvIGRlZmF1bHQgdmFsdWVzKVxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlbiB3ZSByZW1vdmUgdGhlIGJsb2NrXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGlzIHByZXZlbnRzIGZyb20gc2F2aW5nIHBvc3NpYmx5IGludmFsaWQgYmxvY2tzIGZvciBpcnJlbGV2YW50IChub3Qgc2VsZWN0ZWQpIGJsb2Nrc1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJldmlvdXNTZWxlY3RlZEJsb2NrID0gZ2V0QWN0aXZlQmxvY2socHJldlN0YXRlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG5ld1NlbGVjdGVkQmxvY2sgPSBnZXRBY3RpdmVCbG9jayhuZXdTdGF0ZSk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwcmV2aW91c1NlbGVjdGVkQmxvY2suYmxvY2sgJiYgcHJldmlvdXNTZWxlY3RlZEJsb2NrLnN0YXRlICYmIG5ld1NlbGVjdGVkQmxvY2sudHlwZSAhPT0gcHJldmlvdXNTZWxlY3RlZEJsb2NrLnR5cGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNFcXVhbChwcmV2aW91c1NlbGVjdGVkQmxvY2suYmxvY2suZGVmYXVsdFZhbHVlcygpLCBwcmV2aW91c1NlbGVjdGVkQmxvY2suc3RhdGUucHJvcHMpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1N0YXRlID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4ubmV3U3RhdGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdHRhY2hlZEJsb2NrczogbmV3U3RhdGUuYXR0YWNoZWRCbG9ja3MuZmlsdGVyKChjKSA9PiBjLnR5cGUgIT09IHByZXZpb3VzU2VsZWN0ZWRCbG9jay5zdGF0ZS50eXBlKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXdTdGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBbdXBkYXRlU3RhdGVdLFxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgY29uc3QgY3JlYXRlVXBkYXRlU3ViQmxvY2tzRm4gPSB1c2VDYWxsYmFjayhcbiAgICAgICAgICAgICAgICAoYmxvY2tUeXBlOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdXBkYXRlU3ViQmxvY2tzRm46IERpc3BhdGNoPFNldFN0YXRlQWN0aW9uPGFueT4+ID0gKHNldFN0YXRlQWN0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVTdGF0ZSgocHJldlN0YXRlKSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLnByZXZTdGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdHRhY2hlZEJsb2NrczogcHJldlN0YXRlLmF0dGFjaGVkQmxvY2tzLm1hcCgoYykgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYy50eXBlID09PSBibG9ja1R5cGUgPyB7IC4uLmMsIHByb3BzOiByZXNvbHZlTmV3U3RhdGUoeyBwcmV2U3RhdGU6IGMucHJvcHMsIHNldFN0YXRlQWN0aW9uIH0pIH0gOiBjLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB1cGRhdGVTdWJCbG9ja3NGbjtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFt1cGRhdGVTdGF0ZV0sXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBjb25zdCBhY3RpdmVCbG9jayA9IGdldEFjdGl2ZUJsb2NrKHN0YXRlKTtcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkQmxvY2tUeXBlID0gYWN0aXZlQmxvY2suYmxvY2sgPyBhY3RpdmVCbG9jay5zdGF0ZS50eXBlIDogXCJub25lXCI7XG5cbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgPFNlbGVjdFByZXZpZXdDb21wb25lbnQ+XG4gICAgICAgICAgICAgICAgICAgIDxIaWRkZW5JblN1YnJvdXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPEJveCBwYWRkaW5nQm90dG9tPXtpc0luUGFwZXIgPyAwIDogM30+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJsb2Nrc0ZpbmFsRm9ybTx7IGJsb2NrVHlwZTogc3RyaW5nIH0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uU3VibWl0PXsoeyBibG9ja1R5cGUgfSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlQmxvY2tTZWxlY3QoYmxvY2tUeXBlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5pdGlhbFZhbHVlcz17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2tUeXBlOiBzZWxlY3RlZEJsb2NrVHlwZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt2YXJpYW50ID09PSBcInNlbGVjdFwiICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJveCBwYWRkaW5nPXtpc0luUGFwZXIgPyAzIDogMH0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTZWxlY3RGaWVsZCBuYW1lPVwiYmxvY2tUeXBlXCIgb3B0aW9ucz17b3B0aW9uc30gZnVsbFdpZHRoIHJlcXVpcmVkIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2lzSW5QYXBlciAmJiBhY3RpdmVCbG9jay5ibG9jayAmJiA8RGl2aWRlciAvPn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7dmFyaWFudCA9PT0gXCJyYWRpb1wiICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJveCBkaXNwbGF5PVwiZmxleFwiIGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIiBwYWRkaW5nPXszfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJhZGlvR3JvdXBGaWVsZCBuYW1lPVwiYmxvY2tUeXBlXCIgZnVsbFdpZHRoIG9wdGlvbnM9e29wdGlvbnN9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2FjdGl2ZUJsb2NrLmJsb2NrICYmIDxEaXZpZGVyIC8+fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt2YXJpYW50ID09PSBcInRvZ2dsZVwiICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJveCBwYWRkaW5nPXtpc0luUGFwZXIgPyAzIDogMH0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxGaWVsZCBuYW1lPVwiYmxvY2tUeXBlXCIgZnVsbFdpZHRoPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyh7IGlucHV0OiB7IHZhbHVlLCBvbkNoYW5nZSB9IH0pID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VG9nZ2xlQnV0dG9uR3JvdXBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGV2ZW50LCBibG9ja1R5cGU6IHN0cmluZyB8IG51bGwpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChibG9ja1R5cGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZShibG9ja1R5cGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGNsdXNpdmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtvcHRpb25zLm1hcCgob3B0aW9uKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VG9nZ2xlQnV0dG9uIHZhbHVlPXtvcHRpb24udmFsdWV9IGtleT17b3B0aW9uLnZhbHVlfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7b3B0aW9uLmxhYmVsfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Ub2dnbGVCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvVG9nZ2xlQnV0dG9uR3JvdXA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0ZpZWxkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpc0luUGFwZXIgJiYgYWN0aXZlQmxvY2suYmxvY2sgJiYgPERpdmlkZXIgLz59XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0Jsb2Nrc0ZpbmFsRm9ybT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICAgICAgICA8L0hpZGRlbkluU3Vicm91dGU+XG4gICAgICAgICAgICAgICAgICAgIHthY3RpdmVCbG9jay5ibG9jayAmJiBhY3RpdmVCbG9jay5zdGF0ZSA/IChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxCb3ggcGFkZGluZz17aXNJblBhcGVyICYmICFhY3RpdmVCbG9jay5ibG9jay5kZWZpbmVzT3duUGFkZGluZyA/IDMgOiAwfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SG92ZXJQcmV2aWV3Q29tcG9uZW50IGtleT17YWN0aXZlQmxvY2sudHlwZX0gY29tcG9uZW50U2x1Zz17YCMke2FjdGl2ZUJsb2NrLnR5cGV9YH0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhY3RpdmVCbG9jay5ibG9jay5BZG1pbkNvbXBvbmVudFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGU9e2FjdGl2ZUJsb2NrLnN0YXRlLnByb3BzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlU3RhdGU9e2NyZWF0ZVVwZGF0ZVN1YkJsb2Nrc0ZuKGFjdGl2ZUJsb2NrLnN0YXRlLnR5cGUpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvSG92ZXJQcmV2aWV3Q29tcG9uZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgIDwvU2VsZWN0UHJldmlld0NvbXBvbmVudD5cbiAgICAgICAgICAgICk7XG4gICAgICAgIH0sXG4gICAgICAgIHByZXZpZXdDb250ZW50OiAoc3RhdGUsIGN0eCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgeyBibG9jaywgc3RhdGU6IGFjdGl2ZUJsb2NrU3RhdGUgfSA9IGdldEFjdGl2ZUJsb2NrKHN0YXRlKTtcblxuICAgICAgICAgICAgaWYgKGJsb2NrICYmIGFjdGl2ZUJsb2NrU3RhdGUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYmxvY2sucHJldmlld0NvbnRlbnQoYWN0aXZlQmxvY2tTdGF0ZS5wcm9wcywgY3R4KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuXG4gICAgICAgIGR5bmFtaWNEaXNwbGF5TmFtZTogKHN0YXRlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB7IGJsb2NrLCBzdGF0ZTogYmxvY2tTdGF0ZSB9ID0gZ2V0QWN0aXZlQmxvY2soc3RhdGUpO1xuXG4gICAgICAgICAgICBpZiAoYmxvY2sgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBibG9jay5keW5hbWljRGlzcGxheU5hbWU/LihibG9ja1N0YXRlLnByb3BzKSA/PyBibG9jay5kaXNwbGF5TmFtZTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRpc3BsYXlOYW1lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuXG4gICAgICAgIGljb246IChzdGF0ZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgeyBibG9jaywgc3RhdGU6IGJsb2NrU3RhdGUgfSA9IGdldEFjdGl2ZUJsb2NrKHN0YXRlKTtcblxuICAgICAgICAgICAgaWYgKGJsb2NrICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYmxvY2suaWNvbj8uKGJsb2NrU3RhdGUucHJvcHMpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuXG4gICAgICAgIGV4dHJhY3RUZXh0Q29udGVudHM6IChzdGF0ZSwgb3B0aW9ucykgPT4ge1xuICAgICAgICAgICAgY29uc3QgaW5jbHVkZUludmlzaWJsZUNvbnRlbnQgPSBvcHRpb25zPy5pbmNsdWRlSW52aXNpYmxlQ29udGVudCA/PyBmYWxzZTtcblxuICAgICAgICAgICAgY29uc3QgY29udGVudCA9IHN0YXRlLmF0dGFjaGVkQmxvY2tzLnJlZHVjZTxzdHJpbmdbXT4oKGNvbnRlbnQsIGNoaWxkKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgYmxvY2sgPSBibG9ja0ZvclR5cGUoY2hpbGQudHlwZSk7XG4gICAgICAgICAgICAgICAgaWYgKCFibG9jaykge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIEJsb2NrIGZvdW5kIGZvciB0eXBlICR7Y2hpbGQudHlwZX1gKTsgLy8gZm9yIFRTXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKGNoaWxkLnR5cGUgIT09IHN0YXRlLmFjdGl2ZVR5cGUgJiYgIWluY2x1ZGVJbnZpc2libGVDb250ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjb250ZW50O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBbLi4uY29udGVudCwgLi4uKGJsb2NrLmV4dHJhY3RUZXh0Q29udGVudHM/LihjaGlsZC5wcm9wcywgb3B0aW9ucykgPz8gW10pXTtcbiAgICAgICAgICAgIH0sIFtdKTtcbiAgICAgICAgICAgIHJldHVybiBjb250ZW50O1xuICAgICAgICB9LFxuICAgIH07XG4gICAgaWYgKG92ZXJyaWRlKSB7XG4gICAgICAgIHJldHVybiBvdmVycmlkZShPbmVPZkJsb2NrKTtcbiAgICB9XG4gICAgcmV0dXJuIE9uZU9mQmxvY2s7XG59O1xuXG5jb25zdCBUb2dnbGVCdXR0b25Hcm91cCA9IHN0eWxlZChNdWlUb2dnbGVCdXR0b25Hcm91cClgXG4gICAgZGlzcGxheTogZmxleDtcbmA7XG5cbmNvbnN0IFRvZ2dsZUJ1dHRvbiA9IHN0eWxlZChNdWlUb2dnbGVCdXR0b24pYFxuICAgIGZsZXg6IDE7XG4gICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucGFsZXR0ZS50ZXh0LnByaW1hcnl9O1xuYDtcbiJdfQ== */",
|
|
633
|
+
styles: "display:flex/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ibG9ja3MvZmFjdG9yaWVzL2NyZWF0ZU9uZU9mQmxvY2sudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTZnQnNEIiwiZmlsZSI6Ii4uLy4uLy4uL3NyYy9ibG9ja3MvZmFjdG9yaWVzL2NyZWF0ZU9uZU9mQmxvY2sudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmllbGQsIFJhZGlvR3JvdXBGaWVsZCwgU2VsZWN0RmllbGQgfSBmcm9tIFwiQGNvbWV0L2FkbWluXCI7XG5pbXBvcnQgeyBCb3gsIERpdmlkZXIsIFRvZ2dsZUJ1dHRvbiBhcyBNdWlUb2dnbGVCdXR0b24sIFRvZ2dsZUJ1dHRvbkdyb3VwIGFzIE11aVRvZ2dsZUJ1dHRvbkdyb3VwIH0gZnJvbSBcIkBtdWkvbWF0ZXJpYWxcIjtcbmltcG9ydCB7IHN0eWxlZCB9IGZyb20gXCJAbXVpL21hdGVyaWFsL3N0eWxlc1wiO1xuaW1wb3J0IGlzRXF1YWwgZnJvbSBcImxvZGFzaC5pc2VxdWFsXCI7XG5pbXBvcnQgeyB0eXBlIERpc3BhdGNoLCB0eXBlIFJlYWN0Tm9kZSwgdHlwZSBTZXRTdGF0ZUFjdGlvbiwgdXNlQ2FsbGJhY2ssIHVzZU1lbW8gfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IEZvcm1hdHRlZE1lc3NhZ2UsIHR5cGUgTWVzc2FnZURlc2NyaXB0b3IgfSBmcm9tIFwicmVhY3QtaW50bFwiO1xuXG5pbXBvcnQgeyB1c2VDb250ZW50U2NvcGUgfSBmcm9tIFwiLi4vLi4vY29udGVudFNjb3BlL1Byb3ZpZGVyXCI7XG5pbXBvcnQgeyB1c2VCbG9ja0FkbWluQ29tcG9uZW50UGFwZXIgfSBmcm9tIFwiLi4vY29tbW9uL0Jsb2NrQWRtaW5Db21wb25lbnRQYXBlclwiO1xuaW1wb3J0IHsgSGlkZGVuSW5TdWJyb3V0ZSB9IGZyb20gXCIuLi9jb21tb24vSGlkZGVuSW5TdWJyb3V0ZVwiO1xuaW1wb3J0IHsgdXNlQmxvY2tzQ29uZmlnIH0gZnJvbSBcIi4uL2NvbmZpZy9CbG9ja3NDb25maWdDb250ZXh0XCI7XG5pbXBvcnQgeyBCbG9ja3NGaW5hbEZvcm0gfSBmcm9tIFwiLi4vZm9ybS9CbG9ja3NGaW5hbEZvcm1cIjtcbmltcG9ydCB7IGNyZWF0ZUJsb2NrU2tlbGV0b24gfSBmcm9tIFwiLi4vaGVscGVycy9jcmVhdGVCbG9ja1NrZWxldG9uXCI7XG5pbXBvcnQgeyBIb3ZlclByZXZpZXdDb21wb25lbnQgfSBmcm9tIFwiLi4vaWZyYW1lYnJpZGdlL0hvdmVyUHJldmlld0NvbXBvbmVudFwiO1xuaW1wb3J0IHsgU2VsZWN0UHJldmlld0NvbXBvbmVudCB9IGZyb20gXCIuLi9pZnJhbWVicmlkZ2UvU2VsZWN0UHJldmlld0NvbXBvbmVudFwiO1xuaW1wb3J0IHsgQmxvY2tDYXRlZ29yeSwgdHlwZSBCbG9ja0ludGVyZmFjZSwgdHlwZSBCbG9ja1ByZXZpZXdTdGF0ZUludGVyZmFjZSwgdHlwZSBCbG9ja1N0YXRlLCB0eXBlIEN1c3RvbUJsb2NrQ2F0ZWdvcnkgfSBmcm9tIFwiLi4vdHlwZXNcIjtcbmltcG9ydCB7IHJlc29sdmVOZXdTdGF0ZSB9IGZyb20gXCIuLi91dGlsc1wiO1xuaW1wb3J0IHsgcGFyYWxsZWxBc3luY0V2ZXJ5IH0gZnJvbSBcIi4uL3V0aWxzL3BhcmFsbGVsQXN5bmNFdmVyeVwiO1xuXG5pbnRlcmZhY2UgT25lT2ZCbG9ja0l0ZW08VCBleHRlbmRzIEJsb2NrSW50ZXJmYWNlID0gQmxvY2tJbnRlcmZhY2U+IHtcbiAgICB0eXBlOiBzdHJpbmc7XG4gICAgcHJvcHM6IEJsb2NrU3RhdGU8VD47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT25lT2ZCbG9ja1N0YXRlIHtcbiAgICBhdHRhY2hlZEJsb2NrczogT25lT2ZCbG9ja0l0ZW1bXTtcbiAgICBhY3RpdmVUeXBlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9uZU9mQmxvY2tGcmFnbWVudCB7XG4gICAgYXR0YWNoZWRCbG9ja3M6IHtcbiAgICAgICAgdHlwZTogc3RyaW5nO1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgICBwcm9wczogYW55O1xuICAgIH1bXTtcbiAgICBhY3RpdmVUeXBlPzogc3RyaW5nO1xuICAgIGJsb2NrPzoge1xuICAgICAgICB0eXBlOiBzdHJpbmc7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgIHByb3BzOiBhbnk7XG4gICAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBPbmVPZkJsb2NrUHJldmlld1N0YXRlIGV4dGVuZHMgQmxvY2tQcmV2aWV3U3RhdGVJbnRlcmZhY2Uge1xuICAgIGJsb2NrPzoge1xuICAgICAgICB0eXBlOiBzdHJpbmc7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgIHByb3BzOiBhbnk7XG4gICAgfTtcbn1cblxudHlwZSBBY3RpdmVUeXBlPENvbmZpZyBleHRlbmRzIGJvb2xlYW4+ID0gQ29uZmlnIGV4dGVuZHMgZmFsc2UgPyB7IGFjdGl2ZVR5cGU6IHN0cmluZyB9IDogeyBhY3RpdmVUeXBlPzogc3RyaW5nIH07XG5cbmV4cG9ydCB0eXBlIE9uZU9mQmxvY2tPdXRwdXQ8Q29uZmlnIGV4dGVuZHMgYm9vbGVhbj4gPSB7XG4gICAgYXR0YWNoZWRCbG9ja3M6IHtcbiAgICAgICAgdHlwZTogc3RyaW5nO1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgICBwcm9wczogYW55O1xuICAgIH1bXTtcbn0gJiBBY3RpdmVUeXBlPENvbmZpZz47XG5cbnR5cGUgQmxvY2tUeXBlID0gc3RyaW5nO1xuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVPbmVPZkJsb2NrT3B0aW9uczxUIGV4dGVuZHMgYm9vbGVhbj4ge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBkaXNwbGF5TmFtZT86IFJlYWN0Tm9kZTtcbiAgICBzdXBwb3J0ZWRCbG9ja3M6IFJlY29yZDxCbG9ja1R5cGUsIEJsb2NrSW50ZXJmYWNlPjtcbiAgICBjYXRlZ29yeT86IEJsb2NrQ2F0ZWdvcnkgfCBDdXN0b21CbG9ja0NhdGVnb3J5O1xuICAgIHZhcmlhbnQ/OiBcInNlbGVjdFwiIHwgXCJyYWRpb1wiIHwgXCJ0b2dnbGVcIjtcbiAgICBhbGxvd0VtcHR5PzogVDtcbiAgICB0YWdzPzogQXJyYXk8TWVzc2FnZURlc2NyaXB0b3IgfCBzdHJpbmc+O1xufVxuXG5leHBvcnQgY29uc3QgY3JlYXRlT25lT2ZCbG9jayA9IDxUIGV4dGVuZHMgYm9vbGVhbiA9IGJvb2xlYW4+KFxuICAgIHtcbiAgICAgICAgc3VwcG9ydGVkQmxvY2tzLFxuICAgICAgICBuYW1lLFxuICAgICAgICBkaXNwbGF5TmFtZSA9IFwiU3dpdGNoXCIsXG4gICAgICAgIGNhdGVnb3J5ID0gQmxvY2tDYXRlZ29yeS5PdGhlcixcbiAgICAgICAgdmFyaWFudCA9IFwic2VsZWN0XCIsXG4gICAgICAgIGFsbG93RW1wdHk6IHBhc3NlZEFsbG93RW1wdHksXG4gICAgICAgIHRhZ3MsXG4gICAgfTogQ3JlYXRlT25lT2ZCbG9ja09wdGlvbnM8VD4sXG4gICAgb3ZlcnJpZGU/OiAoXG4gICAgICAgIGJsb2NrOiBCbG9ja0ludGVyZmFjZTxPbmVPZkJsb2NrRnJhZ21lbnQsIE9uZU9mQmxvY2tTdGF0ZSwgT25lT2ZCbG9ja091dHB1dDxUPiwgT25lT2ZCbG9ja1ByZXZpZXdTdGF0ZT4sXG4gICAgKSA9PiBCbG9ja0ludGVyZmFjZTxPbmVPZkJsb2NrRnJhZ21lbnQsIE9uZU9mQmxvY2tTdGF0ZSwgT25lT2ZCbG9ja091dHB1dDxUPiwgT25lT2ZCbG9ja1ByZXZpZXdTdGF0ZT4sXG4pOiBCbG9ja0ludGVyZmFjZTxPbmVPZkJsb2NrRnJhZ21lbnQsIE9uZU9mQmxvY2tTdGF0ZSwgT25lT2ZCbG9ja091dHB1dDxUPiwgT25lT2ZCbG9ja1ByZXZpZXdTdGF0ZT4gPT4ge1xuICAgIC8vIGFsbG93RW1wdHkgY2FuJ3QgaGF2ZSBhIGRlZmF1bHQgdHlwZSBiZWNhdXNlIGl0J3MgdHlwZWQgYnkgYSBnZW5lcmljXG4gICAgY29uc3QgYWxsb3dFbXB0eSA9IChwYXNzZWRBbGxvd0VtcHR5ID8/IHRydWUpIHNhdGlzZmllcyBib29sZWFuO1xuXG4gICAgZnVuY3Rpb24gYmxvY2tGb3JUeXBlKHR5cGU6IHN0cmluZyk6IEJsb2NrSW50ZXJmYWNlIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiBzdXBwb3J0ZWRCbG9ja3NbdHlwZV0gPz8gbnVsbDtcbiAgICB9XG4gICAgLy8gaGVscGVyIHRvIGdldCBjb21tb24gdmFsdWVzIG9mIHRoZSBzZWxlY3RlZCBibG9jayBieSBTdGF0ZVxuICAgIGZ1bmN0aW9uIGdldEFjdGl2ZUJsb2NrKHM6IE9uZU9mQmxvY2tTdGF0ZSkge1xuICAgICAgICBpZiAoIXMuYWN0aXZlVHlwZSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBzdGF0ZTogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIGJsb2NrOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgdHlwZTogdW5kZWZpbmVkLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBhY3RpdmVCbG9ja1N0YXRlID0gcy5hdHRhY2hlZEJsb2Nrcy5maW5kKChjKSA9PiBjLnR5cGUgPT09IHMuYWN0aXZlVHlwZSk7XG4gICAgICAgIGlmICghYWN0aXZlQmxvY2tTdGF0ZSkge1xuICAgICAgICAgICAgbGV0IG1lc3NhZ2UgPSBgQ2FuJ3QgZmluZCByZWZlcmVuY2UgdG8gYWN0aXZlIGJsb2NrIG9mIHR5cGUgXCIke3MuYWN0aXZlVHlwZX1cIi5gO1xuXG4gICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwiZGV2ZWxvcG1lbnRcIikge1xuICAgICAgICAgICAgICAgIG1lc3NhZ2UgKz0gYCBUaGlzIGlzIHByb2JhYmx5IGR1ZSB0byBhIG1pc3NpbmcgXCJ4LWluY2x1ZGUtaW52aXNpYmxlLWNvbnRlbnRcIiBIVFRQIGhlYWRlci4gUGxlYXNlIG1ha2Ugc3VyZSB0byBpbmNsdWRlIHRoZSBoZWFkZXIgd2hlbiBmZXRjaGluZyB0aGUgYmxvY2suYDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGJsb2NrID0gYWN0aXZlQmxvY2tTdGF0ZSA/IGJsb2NrRm9yVHlwZShhY3RpdmVCbG9ja1N0YXRlLnR5cGUpIDogdW5kZWZpbmVkO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzdGF0ZTogYWN0aXZlQmxvY2tTdGF0ZSxcbiAgICAgICAgICAgIGJsb2NrLFxuICAgICAgICAgICAgdHlwZTogYWN0aXZlQmxvY2tTdGF0ZS50eXBlLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGNvbnN0IGNoaWxkVGFncyA9IE9iamVjdC52YWx1ZXMoc3VwcG9ydGVkQmxvY2tzKS5yZWR1Y2U8QXJyYXk8TWVzc2FnZURlc2NyaXB0b3IgfCBzdHJpbmc+PigoYWNjLCBibG9jaykgPT4ge1xuICAgICAgICBpZiAoYmxvY2sudGFncykge1xuICAgICAgICAgICAgcmV0dXJuIFsuLi5hY2MsIC4uLmJsb2NrLnRhZ3NdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgfSwgW10pO1xuXG4gICAgY29uc3QgT25lT2ZCbG9jazogQmxvY2tJbnRlcmZhY2U8T25lT2ZCbG9ja0ZyYWdtZW50LCBPbmVPZkJsb2NrU3RhdGUsIE9uZU9mQmxvY2tPdXRwdXQ8VD4sIE9uZU9mQmxvY2tQcmV2aWV3U3RhdGU+ID0ge1xuICAgICAgICAuLi5jcmVhdGVCbG9ja1NrZWxldG9uKCksXG5cbiAgICAgICAgbmFtZSxcblxuICAgICAgICBkaXNwbGF5TmFtZSxcblxuICAgICAgICB0YWdzOiB0YWdzID8gdGFncyA6IGNoaWxkVGFncyxcblxuICAgICAgICBjYXRlZ29yeSxcblxuICAgICAgICBkZWZhdWx0VmFsdWVzOiAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoYWxsb3dFbXB0eSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIGF0dGFjaGVkQmxvY2tzOiBbXSxcbiAgICAgICAgICAgICAgICAgICAgYWN0aXZlVHlwZTogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IFtibG9ja1R5cGUsIGJsb2NrXSA9IE9iamVjdC5lbnRyaWVzKHN1cHBvcnRlZEJsb2NrcylbMF07XG5cbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICBhdHRhY2hlZEJsb2NrczogW3sgdHlwZTogYmxvY2tUeXBlLCBwcm9wczogYmxvY2suZGVmYXVsdFZhbHVlcygpIH1dLFxuICAgICAgICAgICAgICAgICAgICBhY3RpdmVUeXBlOiBibG9ja1R5cGUsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcblxuICAgICAgICBpbnB1dDJTdGF0ZTogKHsgYXR0YWNoZWRCbG9ja3MsIGFjdGl2ZVR5cGUsIGJsb2NrLCAuLi5hZGRpdGlvbmFsRmllbGRzIH0pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHN0YXRlOiBPbmVPZkJsb2NrU3RhdGUgPSB7XG4gICAgICAgICAgICAgICAgLi4uYWRkaXRpb25hbEZpZWxkcyxcbiAgICAgICAgICAgICAgICBhdHRhY2hlZEJsb2NrczogW10sXG4gICAgICAgICAgICAgICAgYWN0aXZlVHlwZTogYWN0aXZlVHlwZSAmJiBzdXBwb3J0ZWRCbG9ja3NbYWN0aXZlVHlwZV0gPyBhY3RpdmVUeXBlIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIGF0dGFjaGVkQmxvY2tzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYmxvY2sgPSBibG9ja0ZvclR5cGUoaXRlbS50eXBlKTtcblxuICAgICAgICAgICAgICAgIGlmICghYmxvY2spIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKGBVbmtub3duIGJsb2NrIHR5cGUgXCIke2l0ZW0udHlwZX1cImApO1xuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBzdGF0ZS5hdHRhY2hlZEJsb2Nrcy5wdXNoKHsgLi4uaXRlbSwgcHJvcHM6IGJsb2NrLmlucHV0MlN0YXRlKGl0ZW0ucHJvcHMpIH0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gc3RhdGU7XG4gICAgICAgIH0sXG4gICAgICAgIHN0YXRlMk91dHB1dDogKHsgYXR0YWNoZWRCbG9ja3MsIGFjdGl2ZVR5cGUsIC4uLmFkZGl0aW9uYWxGaWVsZHMgfSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5hZGRpdGlvbmFsRmllbGRzLFxuICAgICAgICAgICAgICAgIGF0dGFjaGVkQmxvY2tzOiBhdHRhY2hlZEJsb2Nrcy5tYXAoKGMpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmxvY2sgPSBibG9ja0ZvclR5cGUoYy50eXBlKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFibG9jaykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyBCbG9jayBmb3VuZCBmb3IgdHlwZSAke2MudHlwZX1gKTsgLy8gZm9yIFRTXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IGMudHlwZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzOiBibG9jay5zdGF0ZTJPdXRwdXQoYy5wcm9wcyksXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgYWN0aXZlVHlwZSxcbiAgICAgICAgICAgIH0gYXMgT25lT2ZCbG9ja091dHB1dDxUPjtcbiAgICAgICAgfSxcblxuICAgICAgICBvdXRwdXQyU3RhdGU6IGFzeW5jICh7IGF0dGFjaGVkQmxvY2tzLCBhY3RpdmVUeXBlLCAuLi5hZGRpdGlvbmFsRmllbGRzIH0sIGNvbnRleHQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHN0YXRlOiBPbmVPZkJsb2NrU3RhdGUgPSB7XG4gICAgICAgICAgICAgICAgYXR0YWNoZWRCbG9ja3M6IFtdLFxuICAgICAgICAgICAgICAgIGFjdGl2ZVR5cGUsXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgYXR0YWNoZWRCbG9ja3MpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBibG9jayA9IGJsb2NrRm9yVHlwZShpdGVtLnR5cGUpO1xuXG4gICAgICAgICAgICAgICAgaWYgKCFibG9jaykge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIEJsb2NrIGZvdW5kIGZvciB0eXBlICR7aXRlbS50eXBlfWApO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHN0YXRlLmF0dGFjaGVkQmxvY2tzLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAuLi5pdGVtLFxuICAgICAgICAgICAgICAgICAgICBwcm9wczogYXdhaXQgYmxvY2sub3V0cHV0MlN0YXRlKGl0ZW0ucHJvcHMsIGNvbnRleHQpLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gc3RhdGU7XG4gICAgICAgIH0sXG5cbiAgICAgICAgY3JlYXRlUHJldmlld1N0YXRlOiAoc3RhdGUsIHByZXZpZXdDdHgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHsgc3RhdGU6IGJsb2NrU3RhdGUsIGJsb2NrIH0gPSBnZXRBY3RpdmVCbG9jayhzdGF0ZSk7XG4gICAgICAgICAgICBjb25zdCB7IGF0dGFjaGVkQmxvY2tzLCBhY3RpdmVUeXBlLCAuLi5hZGRpdGlvbmFsRmllbGRzIH0gPSBzdGF0ZTtcblxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5hZGRpdGlvbmFsRmllbGRzLFxuICAgICAgICAgICAgICAgIGJsb2NrOiBibG9ja1N0YXRlXG4gICAgICAgICAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBibG9ja1N0YXRlLnR5cGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5ibG9jaz8uY3JlYXRlUHJldmlld1N0YXRlKGJsb2NrU3RhdGUucHJvcHMsIHByZXZpZXdDdHgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRtaW5NZXRhOiB7IHJvdXRlOiBgJHtwcmV2aWV3Q3R4LnBhcmVudFVybH0jJHtibG9ja1N0YXRlLnR5cGV9YCB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICB9O1xuICAgICAgICB9LFxuXG4gICAgICAgIGlzVmFsaWQ6IGFzeW5jIChzdGF0ZSkgPT5cbiAgICAgICAgICAgIHBhcmFsbGVsQXN5bmNFdmVyeShzdGF0ZS5hdHRhY2hlZEJsb2NrcywgYXN5bmMgKGMpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBibG9jayA9IGJsb2NrRm9yVHlwZShjLnR5cGUpO1xuICAgICAgICAgICAgICAgIGlmICghYmxvY2spIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyBCbG9jayBmb3VuZCBmb3IgdHlwZSAke2MudHlwZX1gKTsgLy8gZm9yIFRTXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBibG9jay5pc1ZhbGlkKGMucHJvcHMpO1xuICAgICAgICAgICAgfSksXG5cbiAgICAgICAgYW5jaG9yczogKHN0YXRlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB7IHN0YXRlOiBibG9ja1N0YXRlLCBibG9jayB9ID0gZ2V0QWN0aXZlQmxvY2soc3RhdGUpO1xuXG4gICAgICAgICAgICBpZiAoYmxvY2tTdGF0ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gYmxvY2s/LmFuY2hvcnM/LihibG9ja1N0YXRlLnByb3BzKSA/PyBbXTtcbiAgICAgICAgfSxcblxuICAgICAgICBkZXBlbmRlbmNpZXM6IChzdGF0ZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgeyBzdGF0ZTogYmxvY2tTdGF0ZSwgYmxvY2sgfSA9IGdldEFjdGl2ZUJsb2NrKHN0YXRlKTtcblxuICAgICAgICAgICAgaWYgKGJsb2NrU3RhdGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGJsb2NrPy5kZXBlbmRlbmNpZXM/LihibG9ja1N0YXRlLnByb3BzKSA/PyBbXTtcbiAgICAgICAgfSxcblxuICAgICAgICByZXBsYWNlRGVwZW5kZW5jaWVzSW5PdXRwdXQ6IChvdXRwdXQsIHJlcGxhY2VtZW50cykgPT4ge1xuICAgICAgICAgICAgY29uc3QgbmV3T3V0cHV0OiBPbmVPZkJsb2NrT3V0cHV0PFQ+ID0geyAuLi5vdXRwdXQsIGF0dGFjaGVkQmxvY2tzOiBbXSB9O1xuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGMgb2Ygb3V0cHV0LmF0dGFjaGVkQmxvY2tzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYmxvY2sgPSBibG9ja0ZvclR5cGUoYy50eXBlKTtcbiAgICAgICAgICAgICAgICBpZiAoIWJsb2NrKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgTm8gQmxvY2sgZm91bmQgZm9yIHR5cGUgJHtjLnR5cGV9YCk7IC8vIGZvciBUU1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIG5ld091dHB1dC5hdHRhY2hlZEJsb2Nrcy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgLi4uYyxcbiAgICAgICAgICAgICAgICAgICAgcHJvcHM6IGJsb2NrLnJlcGxhY2VEZXBlbmRlbmNpZXNJbk91dHB1dChjLnByb3BzLCByZXBsYWNlbWVudHMpLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gbmV3T3V0cHV0O1xuICAgICAgICB9LFxuXG4gICAgICAgIGRlZmluZXNPd25QYWRkaW5nOiB0cnVlLFxuXG4gICAgICAgIEFkbWluQ29tcG9uZW50OiAoeyBzdGF0ZSwgdXBkYXRlU3RhdGUgfSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgaXNJblBhcGVyID0gdXNlQmxvY2tBZG1pbkNvbXBvbmVudFBhcGVyKCk7XG5cbiAgICAgICAgICAgIGNvbnN0IHsgc2NvcGUgfSA9IHVzZUNvbnRlbnRTY29wZSgpO1xuICAgICAgICAgICAgY29uc3QgeyBpc0Jsb2NrU3VwcG9ydGVkIH0gPSB1c2VCbG9ja3NDb25maWcoKTtcblxuICAgICAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICAgICAgICAgIGxldCBmaWx0ZXJlZFN1cHBvcnRlZEJsb2NrcztcblxuICAgICAgICAgICAgICAgIGlmIChpc0Jsb2NrU3VwcG9ydGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIGZpbHRlcmVkU3VwcG9ydGVkQmxvY2tzID0gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmVudHJpZXMoc3VwcG9ydGVkQmxvY2tzKS5maWx0ZXIoKFssIGJsb2NrXSkgPT4gaXNCbG9ja1N1cHBvcnRlZChibG9jaywgc2NvcGUpKSxcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBmaWx0ZXJlZFN1cHBvcnRlZEJsb2NrcyA9IHN1cHBvcnRlZEJsb2NrcztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb25zdCBvcHRpb25zOiBBcnJheTx7IHZhbHVlOiBzdHJpbmc7IGxhYmVsOiBSZWFjdE5vZGUgfT4gPSBhbGxvd0VtcHR5XG4gICAgICAgICAgICAgICAgICAgID8gW3sgdmFsdWU6IFwibm9uZVwiLCBsYWJlbDogPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9XCJjb21ldC5ibG9ja3Mub25lT2ZCbG9jay5lbXB0eVwiIGRlZmF1bHRNZXNzYWdlPVwiTm9uZVwiIC8+IH1dXG4gICAgICAgICAgICAgICAgICAgIDogW107XG5cbiAgICAgICAgICAgICAgICBPYmplY3QuZW50cmllcyhmaWx0ZXJlZFN1cHBvcnRlZEJsb2NrcykuZm9yRWFjaCgoW2Jsb2NrVHlwZSwgYmxvY2tdKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIG9wdGlvbnMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogYmxvY2tUeXBlLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGJsb2NrLmRpc3BsYXlOYW1lLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb25zO1xuICAgICAgICAgICAgfSwgW3Njb3BlLCBpc0Jsb2NrU3VwcG9ydGVkXSk7XG5cbiAgICAgICAgICAgIGNvbnN0IGhhbmRsZUJsb2NrU2VsZWN0ID0gdXNlQ2FsbGJhY2soXG4gICAgICAgICAgICAgICAgKGJsb2NrVHlwZTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHVwZGF0ZVN0YXRlKChwcmV2U3RhdGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBuZXdTdGF0ZTogT25lT2ZCbG9ja1N0YXRlID0gcHJldlN0YXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGJsb2NrVHlwZSA9PT0gXCJub25lXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB1bnNlbGVjdCwgbm8gYmxvY2sgc2VsZWN0ZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdTdGF0ZSA9IHsgLi4ucHJldlN0YXRlLCBhY3RpdmVUeXBlOiB1bmRlZmluZWQgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY2hlY2sgaWYgd2UgaGF2ZSBhIGJsb2NrIG9mIHRoZSBzYW1lIHR5cGUgYWxyZWFkeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1hdGNoID0gcHJldlN0YXRlLmF0dGFjaGVkQmxvY2tzLmZpbmQoKGMpID0+IGMudHlwZSA9PT0gYmxvY2tUeXBlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobWF0Y2gpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2UgaGF2ZSBhbiBleGlzdGluZyBibG9jayB3aXRoIHNhbWUgdHlwZSwgc28gc2VsZWN0IGl0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1N0YXRlID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4ucHJldlN0YXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlVHlwZTogYmxvY2tUeXBlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdlIGhhdmUgbm8gZXhpc3RpbmcgYmxvY2ssIHdlIG5lZWQgdG8gY3JlYXRlIGFuZCBzZWxlY3QgYSBuZXcgYmxvY2tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYmxvY2sgPSBibG9ja0ZvclR5cGUoYmxvY2tUeXBlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFibG9jaykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyBCbG9jayBmb3VuZCBmb3IgdHlwZSAke2Jsb2NrVHlwZX1gKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG5ld0l0ZW06IE9uZU9mQmxvY2tJdGVtID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogYmxvY2tUeXBlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHM6IGJsb2NrLmRlZmF1bHRWYWx1ZXMoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdTdGF0ZSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLnByZXZTdGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dGFjaGVkQmxvY2tzOiBbLi4ucHJldlN0YXRlLmF0dGFjaGVkQmxvY2tzLCBuZXdJdGVtXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZVR5cGU6IGJsb2NrVHlwZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBjbGVhbiB1cCB0aGUgcHJldmlvdXMgc2VsZWN0ZWQgYmxvY2tcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdoZW4gcHJldmlvdXMgYmxvY2sgaGFzIG5vIHZhbHVlcyAodmFsdWVzIGFyZSBlcXVhbCB0byBkZWZhdWx0IHZhbHVlcylcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZW4gd2UgcmVtb3ZlIHRoZSBibG9ja1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhpcyBwcmV2ZW50cyBmcm9tIHNhdmluZyBwb3NzaWJseSBpbnZhbGlkIGJsb2NrcyBmb3IgaXJyZWxldmFudCAobm90IHNlbGVjdGVkKSBibG9ja3NcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHByZXZpb3VzU2VsZWN0ZWRCbG9jayA9IGdldEFjdGl2ZUJsb2NrKHByZXZTdGF0ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXdTZWxlY3RlZEJsb2NrID0gZ2V0QWN0aXZlQmxvY2sobmV3U3RhdGUpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocHJldmlvdXNTZWxlY3RlZEJsb2NrLmJsb2NrICYmIHByZXZpb3VzU2VsZWN0ZWRCbG9jay5zdGF0ZSAmJiBuZXdTZWxlY3RlZEJsb2NrLnR5cGUgIT09IHByZXZpb3VzU2VsZWN0ZWRCbG9jay50eXBlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzRXF1YWwocHJldmlvdXNTZWxlY3RlZEJsb2NrLmJsb2NrLmRlZmF1bHRWYWx1ZXMoKSwgcHJldmlvdXNTZWxlY3RlZEJsb2NrLnN0YXRlLnByb3BzKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdTdGF0ZSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLm5ld1N0YXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0YWNoZWRCbG9ja3M6IG5ld1N0YXRlLmF0dGFjaGVkQmxvY2tzLmZpbHRlcigoYykgPT4gYy50eXBlICE9PSBwcmV2aW91c1NlbGVjdGVkQmxvY2suc3RhdGUudHlwZSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3U3RhdGU7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgW3VwZGF0ZVN0YXRlXSxcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIGNvbnN0IGNyZWF0ZVVwZGF0ZVN1YkJsb2Nrc0ZuID0gdXNlQ2FsbGJhY2soXG4gICAgICAgICAgICAgICAgKGJsb2NrVHlwZTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHVwZGF0ZVN1YkJsb2Nrc0ZuOiBEaXNwYXRjaDxTZXRTdGF0ZUFjdGlvbjxhbnk+PiA9IChzZXRTdGF0ZUFjdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlU3RhdGUoKHByZXZTdGF0ZSkgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5wcmV2U3RhdGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0YWNoZWRCbG9ja3M6IHByZXZTdGF0ZS5hdHRhY2hlZEJsb2Nrcy5tYXAoKGMpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMudHlwZSA9PT0gYmxvY2tUeXBlID8geyAuLi5jLCBwcm9wczogcmVzb2x2ZU5ld1N0YXRlKHsgcHJldlN0YXRlOiBjLnByb3BzLCBzZXRTdGF0ZUFjdGlvbiB9KSB9IDogYyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdXBkYXRlU3ViQmxvY2tzRm47XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBbdXBkYXRlU3RhdGVdLFxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgY29uc3QgYWN0aXZlQmxvY2sgPSBnZXRBY3RpdmVCbG9jayhzdGF0ZSk7XG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZEJsb2NrVHlwZSA9IGFjdGl2ZUJsb2NrLmJsb2NrID8gYWN0aXZlQmxvY2suc3RhdGUudHlwZSA6IFwibm9uZVwiO1xuXG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIDxTZWxlY3RQcmV2aWV3Q29tcG9uZW50PlxuICAgICAgICAgICAgICAgICAgICA8SGlkZGVuSW5TdWJyb3V0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxCb3ggcGFkZGluZ0JvdHRvbT17aXNJblBhcGVyID8gMCA6IDN9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCbG9ja3NGaW5hbEZvcm08eyBibG9ja1R5cGU6IHN0cmluZyB9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvblN1Ym1pdD17KHsgYmxvY2tUeXBlIH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZUJsb2NrU2VsZWN0KGJsb2NrVHlwZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluaXRpYWxWYWx1ZXM9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrVHlwZTogc2VsZWN0ZWRCbG9ja1R5cGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7dmFyaWFudCA9PT0gXCJzZWxlY3RcIiAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCb3ggcGFkZGluZz17aXNJblBhcGVyID8gMyA6IDB9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U2VsZWN0RmllbGQgbmFtZT1cImJsb2NrVHlwZVwiIG9wdGlvbnM9e29wdGlvbnN9IGZ1bGxXaWR0aCByZXF1aXJlZCAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpc0luUGFwZXIgJiYgYWN0aXZlQmxvY2suYmxvY2sgJiYgPERpdmlkZXIgLz59XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3ZhcmlhbnQgPT09IFwicmFkaW9cIiAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCb3ggZGlzcGxheT1cImZsZXhcIiBmbGV4RGlyZWN0aW9uPVwiY29sdW1uXCIgcGFkZGluZz17M30+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSYWRpb0dyb3VwRmllbGQgbmFtZT1cImJsb2NrVHlwZVwiIGZ1bGxXaWR0aCBvcHRpb25zPXtvcHRpb25zfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHthY3RpdmVCbG9jay5ibG9jayAmJiA8RGl2aWRlciAvPn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7dmFyaWFudCA9PT0gXCJ0b2dnbGVcIiAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCb3ggcGFkZGluZz17aXNJblBhcGVyID8gMyA6IDB9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8RmllbGQgbmFtZT1cImJsb2NrVHlwZVwiIGZ1bGxXaWR0aD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsoeyBpbnB1dDogeyB2YWx1ZSwgb25DaGFuZ2UgfSB9KSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFRvZ2dsZUJ1dHRvbkdyb3VwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhldmVudCwgYmxvY2tUeXBlOiBzdHJpbmcgfCBudWxsKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYmxvY2tUeXBlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2UoYmxvY2tUeXBlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhjbHVzaXZlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7b3B0aW9ucy5tYXAoKG9wdGlvbikgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFRvZ2dsZUJ1dHRvbiB2YWx1ZT17b3B0aW9uLnZhbHVlfSBrZXk9e29wdGlvbi52YWx1ZX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge29wdGlvbi5sYWJlbH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvVG9nZ2xlQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1RvZ2dsZUJ1dHRvbkdyb3VwPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9GaWVsZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aXNJblBhcGVyICYmIGFjdGl2ZUJsb2NrLmJsb2NrICYmIDxEaXZpZGVyIC8+fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9CbG9ja3NGaW5hbEZvcm0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgICAgICAgICAgPC9IaWRkZW5JblN1YnJvdXRlPlxuICAgICAgICAgICAgICAgICAgICB7YWN0aXZlQmxvY2suYmxvY2sgJiYgYWN0aXZlQmxvY2suc3RhdGUgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8Qm94IHBhZGRpbmc9e2lzSW5QYXBlciAmJiAhYWN0aXZlQmxvY2suYmxvY2suZGVmaW5lc093blBhZGRpbmcgPyAzIDogMH0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEhvdmVyUHJldmlld0NvbXBvbmVudCBrZXk9e2FjdGl2ZUJsb2NrLnR5cGV9IGNvbXBvbmVudFNsdWc9e2AjJHthY3RpdmVCbG9jay50eXBlfWB9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YWN0aXZlQmxvY2suYmxvY2suQWRtaW5Db21wb25lbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlPXthY3RpdmVCbG9jay5zdGF0ZS5wcm9wc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZVN0YXRlPXtjcmVhdGVVcGRhdGVTdWJCbG9ja3NGbihhY3RpdmVCbG9jay5zdGF0ZS50eXBlKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0hvdmVyUHJldmlld0NvbXBvbmVudD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8L1NlbGVjdFByZXZpZXdDb21wb25lbnQ+XG4gICAgICAgICAgICApO1xuICAgICAgICB9LFxuICAgICAgICBwcmV2aWV3Q29udGVudDogKHN0YXRlLCBjdHgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHsgYmxvY2ssIHN0YXRlOiBhY3RpdmVCbG9ja1N0YXRlIH0gPSBnZXRBY3RpdmVCbG9jayhzdGF0ZSk7XG5cbiAgICAgICAgICAgIGlmIChibG9jayAmJiBhY3RpdmVCbG9ja1N0YXRlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGJsb2NrLnByZXZpZXdDb250ZW50KGFjdGl2ZUJsb2NrU3RhdGUucHJvcHMsIGN0eCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcblxuICAgICAgICBkeW5hbWljRGlzcGxheU5hbWU6IChzdGF0ZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgeyBibG9jaywgc3RhdGU6IGJsb2NrU3RhdGUgfSA9IGdldEFjdGl2ZUJsb2NrKHN0YXRlKTtcblxuICAgICAgICAgICAgaWYgKGJsb2NrICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYmxvY2suZHluYW1pY0Rpc3BsYXlOYW1lPy4oYmxvY2tTdGF0ZS5wcm9wcykgPz8gYmxvY2suZGlzcGxheU5hbWU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBkaXNwbGF5TmFtZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcblxuICAgICAgICBpY29uOiAoc3RhdGUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHsgYmxvY2ssIHN0YXRlOiBibG9ja1N0YXRlIH0gPSBnZXRBY3RpdmVCbG9jayhzdGF0ZSk7XG5cbiAgICAgICAgICAgIGlmIChibG9jayAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGJsb2NrLmljb24/LihibG9ja1N0YXRlLnByb3BzKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcblxuICAgICAgICBleHRyYWN0VGV4dENvbnRlbnRzOiAoc3RhdGUsIG9wdGlvbnMpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGluY2x1ZGVJbnZpc2libGVDb250ZW50ID0gb3B0aW9ucz8uaW5jbHVkZUludmlzaWJsZUNvbnRlbnQgPz8gZmFsc2U7XG5cbiAgICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBzdGF0ZS5hdHRhY2hlZEJsb2Nrcy5yZWR1Y2U8c3RyaW5nW10+KChjb250ZW50LCBjaGlsZCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGJsb2NrID0gYmxvY2tGb3JUeXBlKGNoaWxkLnR5cGUpO1xuICAgICAgICAgICAgICAgIGlmICghYmxvY2spIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyBCbG9jayBmb3VuZCBmb3IgdHlwZSAke2NoaWxkLnR5cGV9YCk7IC8vIGZvciBUU1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChjaGlsZC50eXBlICE9PSBzdGF0ZS5hY3RpdmVUeXBlICYmICFpbmNsdWRlSW52aXNpYmxlQ29udGVudCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY29udGVudDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gWy4uLmNvbnRlbnQsIC4uLihibG9jay5leHRyYWN0VGV4dENvbnRlbnRzPy4oY2hpbGQucHJvcHMsIG9wdGlvbnMpID8/IFtdKV07XG4gICAgICAgICAgICB9LCBbXSk7XG4gICAgICAgICAgICByZXR1cm4gY29udGVudDtcbiAgICAgICAgfSxcbiAgICAgICAgdHJhbnNsYXRlQ29udGVudDogYXN5bmMgKHN0YXRlLCB0cmFuc2xhdGUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHRyYW5zbGF0ZWRBdHRhY2hlZEJsb2NrcyA9IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICAgICAgICAgIHN0YXRlLmF0dGFjaGVkQmxvY2tzLm1hcChhc3luYyAoY2hpbGQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmxvY2sgPSBibG9ja0ZvclR5cGUoY2hpbGQudHlwZSk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghYmxvY2spIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgTm8gQmxvY2sgZm91bmQgZm9yIHR5cGUgJHtjaGlsZC50eXBlfWApO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdHJhbnNsYXRlZFByb3BzID0gYmxvY2sudHJhbnNsYXRlQ29udGVudCA/IGF3YWl0IGJsb2NrLnRyYW5zbGF0ZUNvbnRlbnQoY2hpbGQucHJvcHMsIHRyYW5zbGF0ZSkgOiBjaGlsZC5wcm9wcztcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgLi4uY2hpbGQsIHByb3BzOiB0cmFuc2xhdGVkUHJvcHMgfTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICByZXR1cm4geyAuLi5zdGF0ZSwgYXR0YWNoZWRCbG9ja3M6IHRyYW5zbGF0ZWRBdHRhY2hlZEJsb2NrcyB9O1xuICAgICAgICB9LFxuICAgIH07XG4gICAgaWYgKG92ZXJyaWRlKSB7XG4gICAgICAgIHJldHVybiBvdmVycmlkZShPbmVPZkJsb2NrKTtcbiAgICB9XG4gICAgcmV0dXJuIE9uZU9mQmxvY2s7XG59O1xuXG5jb25zdCBUb2dnbGVCdXR0b25Hcm91cCA9IHN0eWxlZChNdWlUb2dnbGVCdXR0b25Hcm91cClgXG4gICAgZGlzcGxheTogZmxleDtcbmA7XG5cbmNvbnN0IFRvZ2dsZUJ1dHRvbiA9IHN0eWxlZChNdWlUb2dnbGVCdXR0b24pYFxuICAgIGZsZXg6IDE7XG4gICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucGFsZXR0ZS50ZXh0LnByaW1hcnl9O1xuYDtcbiJdfQ== */",
|
|
577
634
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
578
635
|
});
|
|
579
636
|
var ToggleButton = /*#__PURE__*/styled(MuiToggleButton, process.env.NODE_ENV === "production" ? {
|
|
@@ -581,7 +638,7 @@ var ToggleButton = /*#__PURE__*/styled(MuiToggleButton, process.env.NODE_ENV ===
|
|
|
581
638
|
} : {
|
|
582
639
|
target: "en4ucky0",
|
|
583
640
|
label: "ToggleButton"
|
|
584
|
-
})("flex:1;color:", function (
|
|
585
|
-
var theme =
|
|
641
|
+
})("flex:1;color:", function (_ref12) {
|
|
642
|
+
var theme = _ref12.theme;
|
|
586
643
|
return theme.palette.text.primary;
|
|
587
|
-
}, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ibG9ja3MvZmFjdG9yaWVzL2NyZWF0ZU9uZU9mQmxvY2sudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW1nQjRDIiwiZmlsZSI6Ii4uLy4uLy4uL3NyYy9ibG9ja3MvZmFjdG9yaWVzL2NyZWF0ZU9uZU9mQmxvY2sudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmllbGQsIFJhZGlvR3JvdXBGaWVsZCwgU2VsZWN0RmllbGQgfSBmcm9tIFwiQGNvbWV0L2FkbWluXCI7XG5pbXBvcnQgeyBCb3gsIERpdmlkZXIsIFRvZ2dsZUJ1dHRvbiBhcyBNdWlUb2dnbGVCdXR0b24sIFRvZ2dsZUJ1dHRvbkdyb3VwIGFzIE11aVRvZ2dsZUJ1dHRvbkdyb3VwIH0gZnJvbSBcIkBtdWkvbWF0ZXJpYWxcIjtcbmltcG9ydCB7IHN0eWxlZCB9IGZyb20gXCJAbXVpL21hdGVyaWFsL3N0eWxlc1wiO1xuaW1wb3J0IGlzRXF1YWwgZnJvbSBcImxvZGFzaC5pc2VxdWFsXCI7XG5pbXBvcnQgeyB0eXBlIERpc3BhdGNoLCB0eXBlIFJlYWN0Tm9kZSwgdHlwZSBTZXRTdGF0ZUFjdGlvbiwgdXNlQ2FsbGJhY2ssIHVzZU1lbW8gfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IEZvcm1hdHRlZE1lc3NhZ2UsIHR5cGUgTWVzc2FnZURlc2NyaXB0b3IgfSBmcm9tIFwicmVhY3QtaW50bFwiO1xuXG5pbXBvcnQgeyB1c2VDb250ZW50U2NvcGUgfSBmcm9tIFwiLi4vLi4vY29udGVudFNjb3BlL1Byb3ZpZGVyXCI7XG5pbXBvcnQgeyB1c2VCbG9ja0FkbWluQ29tcG9uZW50UGFwZXIgfSBmcm9tIFwiLi4vY29tbW9uL0Jsb2NrQWRtaW5Db21wb25lbnRQYXBlclwiO1xuaW1wb3J0IHsgSGlkZGVuSW5TdWJyb3V0ZSB9IGZyb20gXCIuLi9jb21tb24vSGlkZGVuSW5TdWJyb3V0ZVwiO1xuaW1wb3J0IHsgdXNlQmxvY2tzQ29uZmlnIH0gZnJvbSBcIi4uL2NvbmZpZy9CbG9ja3NDb25maWdDb250ZXh0XCI7XG5pbXBvcnQgeyBCbG9ja3NGaW5hbEZvcm0gfSBmcm9tIFwiLi4vZm9ybS9CbG9ja3NGaW5hbEZvcm1cIjtcbmltcG9ydCB7IGNyZWF0ZUJsb2NrU2tlbGV0b24gfSBmcm9tIFwiLi4vaGVscGVycy9jcmVhdGVCbG9ja1NrZWxldG9uXCI7XG5pbXBvcnQgeyBIb3ZlclByZXZpZXdDb21wb25lbnQgfSBmcm9tIFwiLi4vaWZyYW1lYnJpZGdlL0hvdmVyUHJldmlld0NvbXBvbmVudFwiO1xuaW1wb3J0IHsgU2VsZWN0UHJldmlld0NvbXBvbmVudCB9IGZyb20gXCIuLi9pZnJhbWVicmlkZ2UvU2VsZWN0UHJldmlld0NvbXBvbmVudFwiO1xuaW1wb3J0IHsgQmxvY2tDYXRlZ29yeSwgdHlwZSBCbG9ja0ludGVyZmFjZSwgdHlwZSBCbG9ja1ByZXZpZXdTdGF0ZUludGVyZmFjZSwgdHlwZSBCbG9ja1N0YXRlLCB0eXBlIEN1c3RvbUJsb2NrQ2F0ZWdvcnkgfSBmcm9tIFwiLi4vdHlwZXNcIjtcbmltcG9ydCB7IHJlc29sdmVOZXdTdGF0ZSB9IGZyb20gXCIuLi91dGlsc1wiO1xuaW1wb3J0IHsgcGFyYWxsZWxBc3luY0V2ZXJ5IH0gZnJvbSBcIi4uL3V0aWxzL3BhcmFsbGVsQXN5bmNFdmVyeVwiO1xuXG5pbnRlcmZhY2UgT25lT2ZCbG9ja0l0ZW08VCBleHRlbmRzIEJsb2NrSW50ZXJmYWNlID0gQmxvY2tJbnRlcmZhY2U+IHtcbiAgICB0eXBlOiBzdHJpbmc7XG4gICAgcHJvcHM6IEJsb2NrU3RhdGU8VD47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT25lT2ZCbG9ja1N0YXRlIHtcbiAgICBhdHRhY2hlZEJsb2NrczogT25lT2ZCbG9ja0l0ZW1bXTtcbiAgICBhY3RpdmVUeXBlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9uZU9mQmxvY2tGcmFnbWVudCB7XG4gICAgYXR0YWNoZWRCbG9ja3M6IHtcbiAgICAgICAgdHlwZTogc3RyaW5nO1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgICBwcm9wczogYW55O1xuICAgIH1bXTtcbiAgICBhY3RpdmVUeXBlPzogc3RyaW5nO1xuICAgIGJsb2NrPzoge1xuICAgICAgICB0eXBlOiBzdHJpbmc7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgIHByb3BzOiBhbnk7XG4gICAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBPbmVPZkJsb2NrUHJldmlld1N0YXRlIGV4dGVuZHMgQmxvY2tQcmV2aWV3U3RhdGVJbnRlcmZhY2Uge1xuICAgIGJsb2NrPzoge1xuICAgICAgICB0eXBlOiBzdHJpbmc7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgIHByb3BzOiBhbnk7XG4gICAgfTtcbn1cblxudHlwZSBBY3RpdmVUeXBlPENvbmZpZyBleHRlbmRzIGJvb2xlYW4+ID0gQ29uZmlnIGV4dGVuZHMgZmFsc2UgPyB7IGFjdGl2ZVR5cGU6IHN0cmluZyB9IDogeyBhY3RpdmVUeXBlPzogc3RyaW5nIH07XG5cbmV4cG9ydCB0eXBlIE9uZU9mQmxvY2tPdXRwdXQ8Q29uZmlnIGV4dGVuZHMgYm9vbGVhbj4gPSB7XG4gICAgYXR0YWNoZWRCbG9ja3M6IHtcbiAgICAgICAgdHlwZTogc3RyaW5nO1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgICBwcm9wczogYW55O1xuICAgIH1bXTtcbn0gJiBBY3RpdmVUeXBlPENvbmZpZz47XG5cbnR5cGUgQmxvY2tUeXBlID0gc3RyaW5nO1xuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVPbmVPZkJsb2NrT3B0aW9uczxUIGV4dGVuZHMgYm9vbGVhbj4ge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBkaXNwbGF5TmFtZT86IFJlYWN0Tm9kZTtcbiAgICBzdXBwb3J0ZWRCbG9ja3M6IFJlY29yZDxCbG9ja1R5cGUsIEJsb2NrSW50ZXJmYWNlPjtcbiAgICBjYXRlZ29yeT86IEJsb2NrQ2F0ZWdvcnkgfCBDdXN0b21CbG9ja0NhdGVnb3J5O1xuICAgIHZhcmlhbnQ/OiBcInNlbGVjdFwiIHwgXCJyYWRpb1wiIHwgXCJ0b2dnbGVcIjtcbiAgICBhbGxvd0VtcHR5PzogVDtcbiAgICB0YWdzPzogQXJyYXk8TWVzc2FnZURlc2NyaXB0b3IgfCBzdHJpbmc+O1xufVxuXG5leHBvcnQgY29uc3QgY3JlYXRlT25lT2ZCbG9jayA9IDxUIGV4dGVuZHMgYm9vbGVhbiA9IGJvb2xlYW4+KFxuICAgIHtcbiAgICAgICAgc3VwcG9ydGVkQmxvY2tzLFxuICAgICAgICBuYW1lLFxuICAgICAgICBkaXNwbGF5TmFtZSA9IFwiU3dpdGNoXCIsXG4gICAgICAgIGNhdGVnb3J5ID0gQmxvY2tDYXRlZ29yeS5PdGhlcixcbiAgICAgICAgdmFyaWFudCA9IFwic2VsZWN0XCIsXG4gICAgICAgIGFsbG93RW1wdHk6IHBhc3NlZEFsbG93RW1wdHksXG4gICAgICAgIHRhZ3MsXG4gICAgfTogQ3JlYXRlT25lT2ZCbG9ja09wdGlvbnM8VD4sXG4gICAgb3ZlcnJpZGU/OiAoXG4gICAgICAgIGJsb2NrOiBCbG9ja0ludGVyZmFjZTxPbmVPZkJsb2NrRnJhZ21lbnQsIE9uZU9mQmxvY2tTdGF0ZSwgT25lT2ZCbG9ja091dHB1dDxUPiwgT25lT2ZCbG9ja1ByZXZpZXdTdGF0ZT4sXG4gICAgKSA9PiBCbG9ja0ludGVyZmFjZTxPbmVPZkJsb2NrRnJhZ21lbnQsIE9uZU9mQmxvY2tTdGF0ZSwgT25lT2ZCbG9ja091dHB1dDxUPiwgT25lT2ZCbG9ja1ByZXZpZXdTdGF0ZT4sXG4pOiBCbG9ja0ludGVyZmFjZTxPbmVPZkJsb2NrRnJhZ21lbnQsIE9uZU9mQmxvY2tTdGF0ZSwgT25lT2ZCbG9ja091dHB1dDxUPiwgT25lT2ZCbG9ja1ByZXZpZXdTdGF0ZT4gPT4ge1xuICAgIC8vIGFsbG93RW1wdHkgY2FuJ3QgaGF2ZSBhIGRlZmF1bHQgdHlwZSBiZWNhdXNlIGl0J3MgdHlwZWQgYnkgYSBnZW5lcmljXG4gICAgY29uc3QgYWxsb3dFbXB0eSA9IChwYXNzZWRBbGxvd0VtcHR5ID8/IHRydWUpIHNhdGlzZmllcyBib29sZWFuO1xuXG4gICAgZnVuY3Rpb24gYmxvY2tGb3JUeXBlKHR5cGU6IHN0cmluZyk6IEJsb2NrSW50ZXJmYWNlIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiBzdXBwb3J0ZWRCbG9ja3NbdHlwZV0gPz8gbnVsbDtcbiAgICB9XG4gICAgLy8gaGVscGVyIHRvIGdldCBjb21tb24gdmFsdWVzIG9mIHRoZSBzZWxlY3RlZCBibG9jayBieSBTdGF0ZVxuICAgIGZ1bmN0aW9uIGdldEFjdGl2ZUJsb2NrKHM6IE9uZU9mQmxvY2tTdGF0ZSkge1xuICAgICAgICBpZiAoIXMuYWN0aXZlVHlwZSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBzdGF0ZTogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIGJsb2NrOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgdHlwZTogdW5kZWZpbmVkLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBhY3RpdmVCbG9ja1N0YXRlID0gcy5hdHRhY2hlZEJsb2Nrcy5maW5kKChjKSA9PiBjLnR5cGUgPT09IHMuYWN0aXZlVHlwZSk7XG4gICAgICAgIGlmICghYWN0aXZlQmxvY2tTdGF0ZSkge1xuICAgICAgICAgICAgbGV0IG1lc3NhZ2UgPSBgQ2FuJ3QgZmluZCByZWZlcmVuY2UgdG8gYWN0aXZlIGJsb2NrIG9mIHR5cGUgXCIke3MuYWN0aXZlVHlwZX1cIi5gO1xuXG4gICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwiZGV2ZWxvcG1lbnRcIikge1xuICAgICAgICAgICAgICAgIG1lc3NhZ2UgKz0gYCBUaGlzIGlzIHByb2JhYmx5IGR1ZSB0byBhIG1pc3NpbmcgXCJ4LWluY2x1ZGUtaW52aXNpYmxlLWNvbnRlbnRcIiBIVFRQIGhlYWRlci4gUGxlYXNlIG1ha2Ugc3VyZSB0byBpbmNsdWRlIHRoZSBoZWFkZXIgd2hlbiBmZXRjaGluZyB0aGUgYmxvY2suYDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGJsb2NrID0gYWN0aXZlQmxvY2tTdGF0ZSA/IGJsb2NrRm9yVHlwZShhY3RpdmVCbG9ja1N0YXRlLnR5cGUpIDogdW5kZWZpbmVkO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzdGF0ZTogYWN0aXZlQmxvY2tTdGF0ZSxcbiAgICAgICAgICAgIGJsb2NrLFxuICAgICAgICAgICAgdHlwZTogYWN0aXZlQmxvY2tTdGF0ZS50eXBlLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGNvbnN0IGNoaWxkVGFncyA9IE9iamVjdC52YWx1ZXMoc3VwcG9ydGVkQmxvY2tzKS5yZWR1Y2U8QXJyYXk8TWVzc2FnZURlc2NyaXB0b3IgfCBzdHJpbmc+PigoYWNjLCBibG9jaykgPT4ge1xuICAgICAgICBpZiAoYmxvY2sudGFncykge1xuICAgICAgICAgICAgcmV0dXJuIFsuLi5hY2MsIC4uLmJsb2NrLnRhZ3NdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgfSwgW10pO1xuXG4gICAgY29uc3QgT25lT2ZCbG9jazogQmxvY2tJbnRlcmZhY2U8T25lT2ZCbG9ja0ZyYWdtZW50LCBPbmVPZkJsb2NrU3RhdGUsIE9uZU9mQmxvY2tPdXRwdXQ8VD4sIE9uZU9mQmxvY2tQcmV2aWV3U3RhdGU+ID0ge1xuICAgICAgICAuLi5jcmVhdGVCbG9ja1NrZWxldG9uKCksXG5cbiAgICAgICAgbmFtZSxcblxuICAgICAgICBkaXNwbGF5TmFtZSxcblxuICAgICAgICB0YWdzOiB0YWdzID8gdGFncyA6IGNoaWxkVGFncyxcblxuICAgICAgICBjYXRlZ29yeSxcblxuICAgICAgICBkZWZhdWx0VmFsdWVzOiAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoYWxsb3dFbXB0eSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIGF0dGFjaGVkQmxvY2tzOiBbXSxcbiAgICAgICAgICAgICAgICAgICAgYWN0aXZlVHlwZTogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IFtibG9ja1R5cGUsIGJsb2NrXSA9IE9iamVjdC5lbnRyaWVzKHN1cHBvcnRlZEJsb2NrcylbMF07XG5cbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICBhdHRhY2hlZEJsb2NrczogW3sgdHlwZTogYmxvY2tUeXBlLCBwcm9wczogYmxvY2suZGVmYXVsdFZhbHVlcygpIH1dLFxuICAgICAgICAgICAgICAgICAgICBhY3RpdmVUeXBlOiBibG9ja1R5cGUsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcblxuICAgICAgICBpbnB1dDJTdGF0ZTogKHsgYXR0YWNoZWRCbG9ja3MsIGFjdGl2ZVR5cGUsIGJsb2NrLCAuLi5hZGRpdGlvbmFsRmllbGRzIH0pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHN0YXRlOiBPbmVPZkJsb2NrU3RhdGUgPSB7XG4gICAgICAgICAgICAgICAgLi4uYWRkaXRpb25hbEZpZWxkcyxcbiAgICAgICAgICAgICAgICBhdHRhY2hlZEJsb2NrczogW10sXG4gICAgICAgICAgICAgICAgYWN0aXZlVHlwZTogYWN0aXZlVHlwZSAmJiBzdXBwb3J0ZWRCbG9ja3NbYWN0aXZlVHlwZV0gPyBhY3RpdmVUeXBlIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIGF0dGFjaGVkQmxvY2tzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYmxvY2sgPSBibG9ja0ZvclR5cGUoaXRlbS50eXBlKTtcblxuICAgICAgICAgICAgICAgIGlmICghYmxvY2spIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKGBVbmtub3duIGJsb2NrIHR5cGUgXCIke2l0ZW0udHlwZX1cImApO1xuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBzdGF0ZS5hdHRhY2hlZEJsb2Nrcy5wdXNoKHsgLi4uaXRlbSwgcHJvcHM6IGJsb2NrLmlucHV0MlN0YXRlKGl0ZW0ucHJvcHMpIH0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gc3RhdGU7XG4gICAgICAgIH0sXG4gICAgICAgIHN0YXRlMk91dHB1dDogKHsgYXR0YWNoZWRCbG9ja3MsIGFjdGl2ZVR5cGUsIC4uLmFkZGl0aW9uYWxGaWVsZHMgfSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5hZGRpdGlvbmFsRmllbGRzLFxuICAgICAgICAgICAgICAgIGF0dGFjaGVkQmxvY2tzOiBhdHRhY2hlZEJsb2Nrcy5tYXAoKGMpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmxvY2sgPSBibG9ja0ZvclR5cGUoYy50eXBlKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFibG9jaykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyBCbG9jayBmb3VuZCBmb3IgdHlwZSAke2MudHlwZX1gKTsgLy8gZm9yIFRTXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IGMudHlwZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzOiBibG9jay5zdGF0ZTJPdXRwdXQoYy5wcm9wcyksXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgYWN0aXZlVHlwZSxcbiAgICAgICAgICAgIH0gYXMgT25lT2ZCbG9ja091dHB1dDxUPjtcbiAgICAgICAgfSxcblxuICAgICAgICBvdXRwdXQyU3RhdGU6IGFzeW5jICh7IGF0dGFjaGVkQmxvY2tzLCBhY3RpdmVUeXBlLCAuLi5hZGRpdGlvbmFsRmllbGRzIH0sIGNvbnRleHQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHN0YXRlOiBPbmVPZkJsb2NrU3RhdGUgPSB7XG4gICAgICAgICAgICAgICAgYXR0YWNoZWRCbG9ja3M6IFtdLFxuICAgICAgICAgICAgICAgIGFjdGl2ZVR5cGUsXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgYXR0YWNoZWRCbG9ja3MpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBibG9jayA9IGJsb2NrRm9yVHlwZShpdGVtLnR5cGUpO1xuXG4gICAgICAgICAgICAgICAgaWYgKCFibG9jaykge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIEJsb2NrIGZvdW5kIGZvciB0eXBlICR7aXRlbS50eXBlfWApO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHN0YXRlLmF0dGFjaGVkQmxvY2tzLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAuLi5pdGVtLFxuICAgICAgICAgICAgICAgICAgICBwcm9wczogYXdhaXQgYmxvY2sub3V0cHV0MlN0YXRlKGl0ZW0ucHJvcHMsIGNvbnRleHQpLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gc3RhdGU7XG4gICAgICAgIH0sXG5cbiAgICAgICAgY3JlYXRlUHJldmlld1N0YXRlOiAoc3RhdGUsIHByZXZpZXdDdHgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHsgc3RhdGU6IGJsb2NrU3RhdGUsIGJsb2NrIH0gPSBnZXRBY3RpdmVCbG9jayhzdGF0ZSk7XG4gICAgICAgICAgICBjb25zdCB7IGF0dGFjaGVkQmxvY2tzLCBhY3RpdmVUeXBlLCAuLi5hZGRpdGlvbmFsRmllbGRzIH0gPSBzdGF0ZTtcblxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5hZGRpdGlvbmFsRmllbGRzLFxuICAgICAgICAgICAgICAgIGJsb2NrOiBibG9ja1N0YXRlXG4gICAgICAgICAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBibG9ja1N0YXRlLnR5cGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5ibG9jaz8uY3JlYXRlUHJldmlld1N0YXRlKGJsb2NrU3RhdGUucHJvcHMsIHByZXZpZXdDdHgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRtaW5NZXRhOiB7IHJvdXRlOiBgJHtwcmV2aWV3Q3R4LnBhcmVudFVybH0jJHtibG9ja1N0YXRlLnR5cGV9YCB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICB9O1xuICAgICAgICB9LFxuXG4gICAgICAgIGlzVmFsaWQ6IGFzeW5jIChzdGF0ZSkgPT5cbiAgICAgICAgICAgIHBhcmFsbGVsQXN5bmNFdmVyeShzdGF0ZS5hdHRhY2hlZEJsb2NrcywgYXN5bmMgKGMpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBibG9jayA9IGJsb2NrRm9yVHlwZShjLnR5cGUpO1xuICAgICAgICAgICAgICAgIGlmICghYmxvY2spIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyBCbG9jayBmb3VuZCBmb3IgdHlwZSAke2MudHlwZX1gKTsgLy8gZm9yIFRTXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBibG9jay5pc1ZhbGlkKGMucHJvcHMpO1xuICAgICAgICAgICAgfSksXG5cbiAgICAgICAgYW5jaG9yczogKHN0YXRlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB7IHN0YXRlOiBibG9ja1N0YXRlLCBibG9jayB9ID0gZ2V0QWN0aXZlQmxvY2soc3RhdGUpO1xuXG4gICAgICAgICAgICBpZiAoYmxvY2tTdGF0ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gYmxvY2s/LmFuY2hvcnM/LihibG9ja1N0YXRlLnByb3BzKSA/PyBbXTtcbiAgICAgICAgfSxcblxuICAgICAgICBkZXBlbmRlbmNpZXM6IChzdGF0ZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgeyBzdGF0ZTogYmxvY2tTdGF0ZSwgYmxvY2sgfSA9IGdldEFjdGl2ZUJsb2NrKHN0YXRlKTtcblxuICAgICAgICAgICAgaWYgKGJsb2NrU3RhdGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGJsb2NrPy5kZXBlbmRlbmNpZXM/LihibG9ja1N0YXRlLnByb3BzKSA/PyBbXTtcbiAgICAgICAgfSxcblxuICAgICAgICByZXBsYWNlRGVwZW5kZW5jaWVzSW5PdXRwdXQ6IChvdXRwdXQsIHJlcGxhY2VtZW50cykgPT4ge1xuICAgICAgICAgICAgY29uc3QgbmV3T3V0cHV0OiBPbmVPZkJsb2NrT3V0cHV0PFQ+ID0geyAuLi5vdXRwdXQsIGF0dGFjaGVkQmxvY2tzOiBbXSB9O1xuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGMgb2Ygb3V0cHV0LmF0dGFjaGVkQmxvY2tzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYmxvY2sgPSBibG9ja0ZvclR5cGUoYy50eXBlKTtcbiAgICAgICAgICAgICAgICBpZiAoIWJsb2NrKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgTm8gQmxvY2sgZm91bmQgZm9yIHR5cGUgJHtjLnR5cGV9YCk7IC8vIGZvciBUU1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIG5ld091dHB1dC5hdHRhY2hlZEJsb2Nrcy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgLi4uYyxcbiAgICAgICAgICAgICAgICAgICAgcHJvcHM6IGJsb2NrLnJlcGxhY2VEZXBlbmRlbmNpZXNJbk91dHB1dChjLnByb3BzLCByZXBsYWNlbWVudHMpLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gbmV3T3V0cHV0O1xuICAgICAgICB9LFxuXG4gICAgICAgIGRlZmluZXNPd25QYWRkaW5nOiB0cnVlLFxuXG4gICAgICAgIEFkbWluQ29tcG9uZW50OiAoeyBzdGF0ZSwgdXBkYXRlU3RhdGUgfSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgaXNJblBhcGVyID0gdXNlQmxvY2tBZG1pbkNvbXBvbmVudFBhcGVyKCk7XG5cbiAgICAgICAgICAgIGNvbnN0IHsgc2NvcGUgfSA9IHVzZUNvbnRlbnRTY29wZSgpO1xuICAgICAgICAgICAgY29uc3QgeyBpc0Jsb2NrU3VwcG9ydGVkIH0gPSB1c2VCbG9ja3NDb25maWcoKTtcblxuICAgICAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICAgICAgICAgIGxldCBmaWx0ZXJlZFN1cHBvcnRlZEJsb2NrcztcblxuICAgICAgICAgICAgICAgIGlmIChpc0Jsb2NrU3VwcG9ydGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIGZpbHRlcmVkU3VwcG9ydGVkQmxvY2tzID0gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmVudHJpZXMoc3VwcG9ydGVkQmxvY2tzKS5maWx0ZXIoKFssIGJsb2NrXSkgPT4gaXNCbG9ja1N1cHBvcnRlZChibG9jaywgc2NvcGUpKSxcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBmaWx0ZXJlZFN1cHBvcnRlZEJsb2NrcyA9IHN1cHBvcnRlZEJsb2NrcztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb25zdCBvcHRpb25zOiBBcnJheTx7IHZhbHVlOiBzdHJpbmc7IGxhYmVsOiBSZWFjdE5vZGUgfT4gPSBhbGxvd0VtcHR5XG4gICAgICAgICAgICAgICAgICAgID8gW3sgdmFsdWU6IFwibm9uZVwiLCBsYWJlbDogPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9XCJjb21ldC5ibG9ja3Mub25lT2ZCbG9jay5lbXB0eVwiIGRlZmF1bHRNZXNzYWdlPVwiTm9uZVwiIC8+IH1dXG4gICAgICAgICAgICAgICAgICAgIDogW107XG5cbiAgICAgICAgICAgICAgICBPYmplY3QuZW50cmllcyhmaWx0ZXJlZFN1cHBvcnRlZEJsb2NrcykuZm9yRWFjaCgoW2Jsb2NrVHlwZSwgYmxvY2tdKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIG9wdGlvbnMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogYmxvY2tUeXBlLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGJsb2NrLmRpc3BsYXlOYW1lLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb25zO1xuICAgICAgICAgICAgfSwgW3Njb3BlLCBpc0Jsb2NrU3VwcG9ydGVkXSk7XG5cbiAgICAgICAgICAgIGNvbnN0IGhhbmRsZUJsb2NrU2VsZWN0ID0gdXNlQ2FsbGJhY2soXG4gICAgICAgICAgICAgICAgKGJsb2NrVHlwZTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHVwZGF0ZVN0YXRlKChwcmV2U3RhdGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBuZXdTdGF0ZTogT25lT2ZCbG9ja1N0YXRlID0gcHJldlN0YXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGJsb2NrVHlwZSA9PT0gXCJub25lXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB1bnNlbGVjdCwgbm8gYmxvY2sgc2VsZWN0ZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdTdGF0ZSA9IHsgLi4ucHJldlN0YXRlLCBhY3RpdmVUeXBlOiB1bmRlZmluZWQgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY2hlY2sgaWYgd2UgaGF2ZSBhIGJsb2NrIG9mIHRoZSBzYW1lIHR5cGUgYWxyZWFkeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1hdGNoID0gcHJldlN0YXRlLmF0dGFjaGVkQmxvY2tzLmZpbmQoKGMpID0+IGMudHlwZSA9PT0gYmxvY2tUeXBlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobWF0Y2gpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2UgaGF2ZSBhbiBleGlzdGluZyBibG9jayB3aXRoIHNhbWUgdHlwZSwgc28gc2VsZWN0IGl0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1N0YXRlID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4ucHJldlN0YXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlVHlwZTogYmxvY2tUeXBlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdlIGhhdmUgbm8gZXhpc3RpbmcgYmxvY2ssIHdlIG5lZWQgdG8gY3JlYXRlIGFuZCBzZWxlY3QgYSBuZXcgYmxvY2tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYmxvY2sgPSBibG9ja0ZvclR5cGUoYmxvY2tUeXBlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFibG9jaykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyBCbG9jayBmb3VuZCBmb3IgdHlwZSAke2Jsb2NrVHlwZX1gKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG5ld0l0ZW06IE9uZU9mQmxvY2tJdGVtID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogYmxvY2tUeXBlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHM6IGJsb2NrLmRlZmF1bHRWYWx1ZXMoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdTdGF0ZSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLnByZXZTdGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dGFjaGVkQmxvY2tzOiBbLi4ucHJldlN0YXRlLmF0dGFjaGVkQmxvY2tzLCBuZXdJdGVtXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZVR5cGU6IGJsb2NrVHlwZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBjbGVhbiB1cCB0aGUgcHJldmlvdXMgc2VsZWN0ZWQgYmxvY2tcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdoZW4gcHJldmlvdXMgYmxvY2sgaGFzIG5vIHZhbHVlcyAodmFsdWVzIGFyZSBlcXVhbCB0byBkZWZhdWx0IHZhbHVlcylcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZW4gd2UgcmVtb3ZlIHRoZSBibG9ja1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhpcyBwcmV2ZW50cyBmcm9tIHNhdmluZyBwb3NzaWJseSBpbnZhbGlkIGJsb2NrcyBmb3IgaXJyZWxldmFudCAobm90IHNlbGVjdGVkKSBibG9ja3NcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHByZXZpb3VzU2VsZWN0ZWRCbG9jayA9IGdldEFjdGl2ZUJsb2NrKHByZXZTdGF0ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXdTZWxlY3RlZEJsb2NrID0gZ2V0QWN0aXZlQmxvY2sobmV3U3RhdGUpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocHJldmlvdXNTZWxlY3RlZEJsb2NrLmJsb2NrICYmIHByZXZpb3VzU2VsZWN0ZWRCbG9jay5zdGF0ZSAmJiBuZXdTZWxlY3RlZEJsb2NrLnR5cGUgIT09IHByZXZpb3VzU2VsZWN0ZWRCbG9jay50eXBlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzRXF1YWwocHJldmlvdXNTZWxlY3RlZEJsb2NrLmJsb2NrLmRlZmF1bHRWYWx1ZXMoKSwgcHJldmlvdXNTZWxlY3RlZEJsb2NrLnN0YXRlLnByb3BzKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdTdGF0ZSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLm5ld1N0YXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0YWNoZWRCbG9ja3M6IG5ld1N0YXRlLmF0dGFjaGVkQmxvY2tzLmZpbHRlcigoYykgPT4gYy50eXBlICE9PSBwcmV2aW91c1NlbGVjdGVkQmxvY2suc3RhdGUudHlwZSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3U3RhdGU7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgW3VwZGF0ZVN0YXRlXSxcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIGNvbnN0IGNyZWF0ZVVwZGF0ZVN1YkJsb2Nrc0ZuID0gdXNlQ2FsbGJhY2soXG4gICAgICAgICAgICAgICAgKGJsb2NrVHlwZTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHVwZGF0ZVN1YkJsb2Nrc0ZuOiBEaXNwYXRjaDxTZXRTdGF0ZUFjdGlvbjxhbnk+PiA9IChzZXRTdGF0ZUFjdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlU3RhdGUoKHByZXZTdGF0ZSkgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5wcmV2U3RhdGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0YWNoZWRCbG9ja3M6IHByZXZTdGF0ZS5hdHRhY2hlZEJsb2Nrcy5tYXAoKGMpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMudHlwZSA9PT0gYmxvY2tUeXBlID8geyAuLi5jLCBwcm9wczogcmVzb2x2ZU5ld1N0YXRlKHsgcHJldlN0YXRlOiBjLnByb3BzLCBzZXRTdGF0ZUFjdGlvbiB9KSB9IDogYyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdXBkYXRlU3ViQmxvY2tzRm47XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBbdXBkYXRlU3RhdGVdLFxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgY29uc3QgYWN0aXZlQmxvY2sgPSBnZXRBY3RpdmVCbG9jayhzdGF0ZSk7XG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZEJsb2NrVHlwZSA9IGFjdGl2ZUJsb2NrLmJsb2NrID8gYWN0aXZlQmxvY2suc3RhdGUudHlwZSA6IFwibm9uZVwiO1xuXG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIDxTZWxlY3RQcmV2aWV3Q29tcG9uZW50PlxuICAgICAgICAgICAgICAgICAgICA8SGlkZGVuSW5TdWJyb3V0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxCb3ggcGFkZGluZ0JvdHRvbT17aXNJblBhcGVyID8gMCA6IDN9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCbG9ja3NGaW5hbEZvcm08eyBibG9ja1R5cGU6IHN0cmluZyB9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvblN1Ym1pdD17KHsgYmxvY2tUeXBlIH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZUJsb2NrU2VsZWN0KGJsb2NrVHlwZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluaXRpYWxWYWx1ZXM9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrVHlwZTogc2VsZWN0ZWRCbG9ja1R5cGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7dmFyaWFudCA9PT0gXCJzZWxlY3RcIiAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCb3ggcGFkZGluZz17aXNJblBhcGVyID8gMyA6IDB9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U2VsZWN0RmllbGQgbmFtZT1cImJsb2NrVHlwZVwiIG9wdGlvbnM9e29wdGlvbnN9IGZ1bGxXaWR0aCByZXF1aXJlZCAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpc0luUGFwZXIgJiYgYWN0aXZlQmxvY2suYmxvY2sgJiYgPERpdmlkZXIgLz59XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3ZhcmlhbnQgPT09IFwicmFkaW9cIiAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCb3ggZGlzcGxheT1cImZsZXhcIiBmbGV4RGlyZWN0aW9uPVwiY29sdW1uXCIgcGFkZGluZz17M30+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSYWRpb0dyb3VwRmllbGQgbmFtZT1cImJsb2NrVHlwZVwiIGZ1bGxXaWR0aCBvcHRpb25zPXtvcHRpb25zfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHthY3RpdmVCbG9jay5ibG9jayAmJiA8RGl2aWRlciAvPn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7dmFyaWFudCA9PT0gXCJ0b2dnbGVcIiAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCb3ggcGFkZGluZz17aXNJblBhcGVyID8gMyA6IDB9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8RmllbGQgbmFtZT1cImJsb2NrVHlwZVwiIGZ1bGxXaWR0aD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsoeyBpbnB1dDogeyB2YWx1ZSwgb25DaGFuZ2UgfSB9KSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFRvZ2dsZUJ1dHRvbkdyb3VwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhldmVudCwgYmxvY2tUeXBlOiBzdHJpbmcgfCBudWxsKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYmxvY2tUeXBlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2UoYmxvY2tUeXBlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhjbHVzaXZlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7b3B0aW9ucy5tYXAoKG9wdGlvbikgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFRvZ2dsZUJ1dHRvbiB2YWx1ZT17b3B0aW9uLnZhbHVlfSBrZXk9e29wdGlvbi52YWx1ZX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge29wdGlvbi5sYWJlbH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvVG9nZ2xlQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1RvZ2dsZUJ1dHRvbkdyb3VwPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9GaWVsZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aXNJblBhcGVyICYmIGFjdGl2ZUJsb2NrLmJsb2NrICYmIDxEaXZpZGVyIC8+fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9CbG9ja3NGaW5hbEZvcm0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgICAgICAgICAgPC9IaWRkZW5JblN1YnJvdXRlPlxuICAgICAgICAgICAgICAgICAgICB7YWN0aXZlQmxvY2suYmxvY2sgJiYgYWN0aXZlQmxvY2suc3RhdGUgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8Qm94IHBhZGRpbmc9e2lzSW5QYXBlciAmJiAhYWN0aXZlQmxvY2suYmxvY2suZGVmaW5lc093blBhZGRpbmcgPyAzIDogMH0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEhvdmVyUHJldmlld0NvbXBvbmVudCBrZXk9e2FjdGl2ZUJsb2NrLnR5cGV9IGNvbXBvbmVudFNsdWc9e2AjJHthY3RpdmVCbG9jay50eXBlfWB9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YWN0aXZlQmxvY2suYmxvY2suQWRtaW5Db21wb25lbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlPXthY3RpdmVCbG9jay5zdGF0ZS5wcm9wc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZVN0YXRlPXtjcmVhdGVVcGRhdGVTdWJCbG9ja3NGbihhY3RpdmVCbG9jay5zdGF0ZS50eXBlKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0hvdmVyUHJldmlld0NvbXBvbmVudD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8L1NlbGVjdFByZXZpZXdDb21wb25lbnQ+XG4gICAgICAgICAgICApO1xuICAgICAgICB9LFxuICAgICAgICBwcmV2aWV3Q29udGVudDogKHN0YXRlLCBjdHgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHsgYmxvY2ssIHN0YXRlOiBhY3RpdmVCbG9ja1N0YXRlIH0gPSBnZXRBY3RpdmVCbG9jayhzdGF0ZSk7XG5cbiAgICAgICAgICAgIGlmIChibG9jayAmJiBhY3RpdmVCbG9ja1N0YXRlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGJsb2NrLnByZXZpZXdDb250ZW50KGFjdGl2ZUJsb2NrU3RhdGUucHJvcHMsIGN0eCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcblxuICAgICAgICBkeW5hbWljRGlzcGxheU5hbWU6IChzdGF0ZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgeyBibG9jaywgc3RhdGU6IGJsb2NrU3RhdGUgfSA9IGdldEFjdGl2ZUJsb2NrKHN0YXRlKTtcblxuICAgICAgICAgICAgaWYgKGJsb2NrICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYmxvY2suZHluYW1pY0Rpc3BsYXlOYW1lPy4oYmxvY2tTdGF0ZS5wcm9wcykgPz8gYmxvY2suZGlzcGxheU5hbWU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBkaXNwbGF5TmFtZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcblxuICAgICAgICBpY29uOiAoc3RhdGUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHsgYmxvY2ssIHN0YXRlOiBibG9ja1N0YXRlIH0gPSBnZXRBY3RpdmVCbG9jayhzdGF0ZSk7XG5cbiAgICAgICAgICAgIGlmIChibG9jayAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGJsb2NrLmljb24/LihibG9ja1N0YXRlLnByb3BzKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcblxuICAgICAgICBleHRyYWN0VGV4dENvbnRlbnRzOiAoc3RhdGUsIG9wdGlvbnMpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGluY2x1ZGVJbnZpc2libGVDb250ZW50ID0gb3B0aW9ucz8uaW5jbHVkZUludmlzaWJsZUNvbnRlbnQgPz8gZmFsc2U7XG5cbiAgICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBzdGF0ZS5hdHRhY2hlZEJsb2Nrcy5yZWR1Y2U8c3RyaW5nW10+KChjb250ZW50LCBjaGlsZCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGJsb2NrID0gYmxvY2tGb3JUeXBlKGNoaWxkLnR5cGUpO1xuICAgICAgICAgICAgICAgIGlmICghYmxvY2spIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyBCbG9jayBmb3VuZCBmb3IgdHlwZSAke2NoaWxkLnR5cGV9YCk7IC8vIGZvciBUU1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChjaGlsZC50eXBlICE9PSBzdGF0ZS5hY3RpdmVUeXBlICYmICFpbmNsdWRlSW52aXNpYmxlQ29udGVudCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY29udGVudDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gWy4uLmNvbnRlbnQsIC4uLihibG9jay5leHRyYWN0VGV4dENvbnRlbnRzPy4oY2hpbGQucHJvcHMsIG9wdGlvbnMpID8/IFtdKV07XG4gICAgICAgICAgICB9LCBbXSk7XG4gICAgICAgICAgICByZXR1cm4gY29udGVudDtcbiAgICAgICAgfSxcbiAgICB9O1xuICAgIGlmIChvdmVycmlkZSkge1xuICAgICAgICByZXR1cm4gb3ZlcnJpZGUoT25lT2ZCbG9jayk7XG4gICAgfVxuICAgIHJldHVybiBPbmVPZkJsb2NrO1xufTtcblxuY29uc3QgVG9nZ2xlQnV0dG9uR3JvdXAgPSBzdHlsZWQoTXVpVG9nZ2xlQnV0dG9uR3JvdXApYFxuICAgIGRpc3BsYXk6IGZsZXg7XG5gO1xuXG5jb25zdCBUb2dnbGVCdXR0b24gPSBzdHlsZWQoTXVpVG9nZ2xlQnV0dG9uKWBcbiAgICBmbGV4OiAxO1xuICAgIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnBhbGV0dGUudGV4dC5wcmltYXJ5fTtcbmA7XG4iXX0= */"));
|
|
644
|
+
}, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ibG9ja3MvZmFjdG9yaWVzL2NyZWF0ZU9uZU9mQmxvY2sudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWloQjRDIiwiZmlsZSI6Ii4uLy4uLy4uL3NyYy9ibG9ja3MvZmFjdG9yaWVzL2NyZWF0ZU9uZU9mQmxvY2sudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmllbGQsIFJhZGlvR3JvdXBGaWVsZCwgU2VsZWN0RmllbGQgfSBmcm9tIFwiQGNvbWV0L2FkbWluXCI7XG5pbXBvcnQgeyBCb3gsIERpdmlkZXIsIFRvZ2dsZUJ1dHRvbiBhcyBNdWlUb2dnbGVCdXR0b24sIFRvZ2dsZUJ1dHRvbkdyb3VwIGFzIE11aVRvZ2dsZUJ1dHRvbkdyb3VwIH0gZnJvbSBcIkBtdWkvbWF0ZXJpYWxcIjtcbmltcG9ydCB7IHN0eWxlZCB9IGZyb20gXCJAbXVpL21hdGVyaWFsL3N0eWxlc1wiO1xuaW1wb3J0IGlzRXF1YWwgZnJvbSBcImxvZGFzaC5pc2VxdWFsXCI7XG5pbXBvcnQgeyB0eXBlIERpc3BhdGNoLCB0eXBlIFJlYWN0Tm9kZSwgdHlwZSBTZXRTdGF0ZUFjdGlvbiwgdXNlQ2FsbGJhY2ssIHVzZU1lbW8gfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IEZvcm1hdHRlZE1lc3NhZ2UsIHR5cGUgTWVzc2FnZURlc2NyaXB0b3IgfSBmcm9tIFwicmVhY3QtaW50bFwiO1xuXG5pbXBvcnQgeyB1c2VDb250ZW50U2NvcGUgfSBmcm9tIFwiLi4vLi4vY29udGVudFNjb3BlL1Byb3ZpZGVyXCI7XG5pbXBvcnQgeyB1c2VCbG9ja0FkbWluQ29tcG9uZW50UGFwZXIgfSBmcm9tIFwiLi4vY29tbW9uL0Jsb2NrQWRtaW5Db21wb25lbnRQYXBlclwiO1xuaW1wb3J0IHsgSGlkZGVuSW5TdWJyb3V0ZSB9IGZyb20gXCIuLi9jb21tb24vSGlkZGVuSW5TdWJyb3V0ZVwiO1xuaW1wb3J0IHsgdXNlQmxvY2tzQ29uZmlnIH0gZnJvbSBcIi4uL2NvbmZpZy9CbG9ja3NDb25maWdDb250ZXh0XCI7XG5pbXBvcnQgeyBCbG9ja3NGaW5hbEZvcm0gfSBmcm9tIFwiLi4vZm9ybS9CbG9ja3NGaW5hbEZvcm1cIjtcbmltcG9ydCB7IGNyZWF0ZUJsb2NrU2tlbGV0b24gfSBmcm9tIFwiLi4vaGVscGVycy9jcmVhdGVCbG9ja1NrZWxldG9uXCI7XG5pbXBvcnQgeyBIb3ZlclByZXZpZXdDb21wb25lbnQgfSBmcm9tIFwiLi4vaWZyYW1lYnJpZGdlL0hvdmVyUHJldmlld0NvbXBvbmVudFwiO1xuaW1wb3J0IHsgU2VsZWN0UHJldmlld0NvbXBvbmVudCB9IGZyb20gXCIuLi9pZnJhbWVicmlkZ2UvU2VsZWN0UHJldmlld0NvbXBvbmVudFwiO1xuaW1wb3J0IHsgQmxvY2tDYXRlZ29yeSwgdHlwZSBCbG9ja0ludGVyZmFjZSwgdHlwZSBCbG9ja1ByZXZpZXdTdGF0ZUludGVyZmFjZSwgdHlwZSBCbG9ja1N0YXRlLCB0eXBlIEN1c3RvbUJsb2NrQ2F0ZWdvcnkgfSBmcm9tIFwiLi4vdHlwZXNcIjtcbmltcG9ydCB7IHJlc29sdmVOZXdTdGF0ZSB9IGZyb20gXCIuLi91dGlsc1wiO1xuaW1wb3J0IHsgcGFyYWxsZWxBc3luY0V2ZXJ5IH0gZnJvbSBcIi4uL3V0aWxzL3BhcmFsbGVsQXN5bmNFdmVyeVwiO1xuXG5pbnRlcmZhY2UgT25lT2ZCbG9ja0l0ZW08VCBleHRlbmRzIEJsb2NrSW50ZXJmYWNlID0gQmxvY2tJbnRlcmZhY2U+IHtcbiAgICB0eXBlOiBzdHJpbmc7XG4gICAgcHJvcHM6IEJsb2NrU3RhdGU8VD47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT25lT2ZCbG9ja1N0YXRlIHtcbiAgICBhdHRhY2hlZEJsb2NrczogT25lT2ZCbG9ja0l0ZW1bXTtcbiAgICBhY3RpdmVUeXBlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9uZU9mQmxvY2tGcmFnbWVudCB7XG4gICAgYXR0YWNoZWRCbG9ja3M6IHtcbiAgICAgICAgdHlwZTogc3RyaW5nO1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgICBwcm9wczogYW55O1xuICAgIH1bXTtcbiAgICBhY3RpdmVUeXBlPzogc3RyaW5nO1xuICAgIGJsb2NrPzoge1xuICAgICAgICB0eXBlOiBzdHJpbmc7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgIHByb3BzOiBhbnk7XG4gICAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBPbmVPZkJsb2NrUHJldmlld1N0YXRlIGV4dGVuZHMgQmxvY2tQcmV2aWV3U3RhdGVJbnRlcmZhY2Uge1xuICAgIGJsb2NrPzoge1xuICAgICAgICB0eXBlOiBzdHJpbmc7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgIHByb3BzOiBhbnk7XG4gICAgfTtcbn1cblxudHlwZSBBY3RpdmVUeXBlPENvbmZpZyBleHRlbmRzIGJvb2xlYW4+ID0gQ29uZmlnIGV4dGVuZHMgZmFsc2UgPyB7IGFjdGl2ZVR5cGU6IHN0cmluZyB9IDogeyBhY3RpdmVUeXBlPzogc3RyaW5nIH07XG5cbmV4cG9ydCB0eXBlIE9uZU9mQmxvY2tPdXRwdXQ8Q29uZmlnIGV4dGVuZHMgYm9vbGVhbj4gPSB7XG4gICAgYXR0YWNoZWRCbG9ja3M6IHtcbiAgICAgICAgdHlwZTogc3RyaW5nO1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgICBwcm9wczogYW55O1xuICAgIH1bXTtcbn0gJiBBY3RpdmVUeXBlPENvbmZpZz47XG5cbnR5cGUgQmxvY2tUeXBlID0gc3RyaW5nO1xuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVPbmVPZkJsb2NrT3B0aW9uczxUIGV4dGVuZHMgYm9vbGVhbj4ge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBkaXNwbGF5TmFtZT86IFJlYWN0Tm9kZTtcbiAgICBzdXBwb3J0ZWRCbG9ja3M6IFJlY29yZDxCbG9ja1R5cGUsIEJsb2NrSW50ZXJmYWNlPjtcbiAgICBjYXRlZ29yeT86IEJsb2NrQ2F0ZWdvcnkgfCBDdXN0b21CbG9ja0NhdGVnb3J5O1xuICAgIHZhcmlhbnQ/OiBcInNlbGVjdFwiIHwgXCJyYWRpb1wiIHwgXCJ0b2dnbGVcIjtcbiAgICBhbGxvd0VtcHR5PzogVDtcbiAgICB0YWdzPzogQXJyYXk8TWVzc2FnZURlc2NyaXB0b3IgfCBzdHJpbmc+O1xufVxuXG5leHBvcnQgY29uc3QgY3JlYXRlT25lT2ZCbG9jayA9IDxUIGV4dGVuZHMgYm9vbGVhbiA9IGJvb2xlYW4+KFxuICAgIHtcbiAgICAgICAgc3VwcG9ydGVkQmxvY2tzLFxuICAgICAgICBuYW1lLFxuICAgICAgICBkaXNwbGF5TmFtZSA9IFwiU3dpdGNoXCIsXG4gICAgICAgIGNhdGVnb3J5ID0gQmxvY2tDYXRlZ29yeS5PdGhlcixcbiAgICAgICAgdmFyaWFudCA9IFwic2VsZWN0XCIsXG4gICAgICAgIGFsbG93RW1wdHk6IHBhc3NlZEFsbG93RW1wdHksXG4gICAgICAgIHRhZ3MsXG4gICAgfTogQ3JlYXRlT25lT2ZCbG9ja09wdGlvbnM8VD4sXG4gICAgb3ZlcnJpZGU/OiAoXG4gICAgICAgIGJsb2NrOiBCbG9ja0ludGVyZmFjZTxPbmVPZkJsb2NrRnJhZ21lbnQsIE9uZU9mQmxvY2tTdGF0ZSwgT25lT2ZCbG9ja091dHB1dDxUPiwgT25lT2ZCbG9ja1ByZXZpZXdTdGF0ZT4sXG4gICAgKSA9PiBCbG9ja0ludGVyZmFjZTxPbmVPZkJsb2NrRnJhZ21lbnQsIE9uZU9mQmxvY2tTdGF0ZSwgT25lT2ZCbG9ja091dHB1dDxUPiwgT25lT2ZCbG9ja1ByZXZpZXdTdGF0ZT4sXG4pOiBCbG9ja0ludGVyZmFjZTxPbmVPZkJsb2NrRnJhZ21lbnQsIE9uZU9mQmxvY2tTdGF0ZSwgT25lT2ZCbG9ja091dHB1dDxUPiwgT25lT2ZCbG9ja1ByZXZpZXdTdGF0ZT4gPT4ge1xuICAgIC8vIGFsbG93RW1wdHkgY2FuJ3QgaGF2ZSBhIGRlZmF1bHQgdHlwZSBiZWNhdXNlIGl0J3MgdHlwZWQgYnkgYSBnZW5lcmljXG4gICAgY29uc3QgYWxsb3dFbXB0eSA9IChwYXNzZWRBbGxvd0VtcHR5ID8/IHRydWUpIHNhdGlzZmllcyBib29sZWFuO1xuXG4gICAgZnVuY3Rpb24gYmxvY2tGb3JUeXBlKHR5cGU6IHN0cmluZyk6IEJsb2NrSW50ZXJmYWNlIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiBzdXBwb3J0ZWRCbG9ja3NbdHlwZV0gPz8gbnVsbDtcbiAgICB9XG4gICAgLy8gaGVscGVyIHRvIGdldCBjb21tb24gdmFsdWVzIG9mIHRoZSBzZWxlY3RlZCBibG9jayBieSBTdGF0ZVxuICAgIGZ1bmN0aW9uIGdldEFjdGl2ZUJsb2NrKHM6IE9uZU9mQmxvY2tTdGF0ZSkge1xuICAgICAgICBpZiAoIXMuYWN0aXZlVHlwZSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBzdGF0ZTogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIGJsb2NrOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgdHlwZTogdW5kZWZpbmVkLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBhY3RpdmVCbG9ja1N0YXRlID0gcy5hdHRhY2hlZEJsb2Nrcy5maW5kKChjKSA9PiBjLnR5cGUgPT09IHMuYWN0aXZlVHlwZSk7XG4gICAgICAgIGlmICghYWN0aXZlQmxvY2tTdGF0ZSkge1xuICAgICAgICAgICAgbGV0IG1lc3NhZ2UgPSBgQ2FuJ3QgZmluZCByZWZlcmVuY2UgdG8gYWN0aXZlIGJsb2NrIG9mIHR5cGUgXCIke3MuYWN0aXZlVHlwZX1cIi5gO1xuXG4gICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwiZGV2ZWxvcG1lbnRcIikge1xuICAgICAgICAgICAgICAgIG1lc3NhZ2UgKz0gYCBUaGlzIGlzIHByb2JhYmx5IGR1ZSB0byBhIG1pc3NpbmcgXCJ4LWluY2x1ZGUtaW52aXNpYmxlLWNvbnRlbnRcIiBIVFRQIGhlYWRlci4gUGxlYXNlIG1ha2Ugc3VyZSB0byBpbmNsdWRlIHRoZSBoZWFkZXIgd2hlbiBmZXRjaGluZyB0aGUgYmxvY2suYDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGJsb2NrID0gYWN0aXZlQmxvY2tTdGF0ZSA/IGJsb2NrRm9yVHlwZShhY3RpdmVCbG9ja1N0YXRlLnR5cGUpIDogdW5kZWZpbmVkO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzdGF0ZTogYWN0aXZlQmxvY2tTdGF0ZSxcbiAgICAgICAgICAgIGJsb2NrLFxuICAgICAgICAgICAgdHlwZTogYWN0aXZlQmxvY2tTdGF0ZS50eXBlLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGNvbnN0IGNoaWxkVGFncyA9IE9iamVjdC52YWx1ZXMoc3VwcG9ydGVkQmxvY2tzKS5yZWR1Y2U8QXJyYXk8TWVzc2FnZURlc2NyaXB0b3IgfCBzdHJpbmc+PigoYWNjLCBibG9jaykgPT4ge1xuICAgICAgICBpZiAoYmxvY2sudGFncykge1xuICAgICAgICAgICAgcmV0dXJuIFsuLi5hY2MsIC4uLmJsb2NrLnRhZ3NdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgfSwgW10pO1xuXG4gICAgY29uc3QgT25lT2ZCbG9jazogQmxvY2tJbnRlcmZhY2U8T25lT2ZCbG9ja0ZyYWdtZW50LCBPbmVPZkJsb2NrU3RhdGUsIE9uZU9mQmxvY2tPdXRwdXQ8VD4sIE9uZU9mQmxvY2tQcmV2aWV3U3RhdGU+ID0ge1xuICAgICAgICAuLi5jcmVhdGVCbG9ja1NrZWxldG9uKCksXG5cbiAgICAgICAgbmFtZSxcblxuICAgICAgICBkaXNwbGF5TmFtZSxcblxuICAgICAgICB0YWdzOiB0YWdzID8gdGFncyA6IGNoaWxkVGFncyxcblxuICAgICAgICBjYXRlZ29yeSxcblxuICAgICAgICBkZWZhdWx0VmFsdWVzOiAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoYWxsb3dFbXB0eSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIGF0dGFjaGVkQmxvY2tzOiBbXSxcbiAgICAgICAgICAgICAgICAgICAgYWN0aXZlVHlwZTogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IFtibG9ja1R5cGUsIGJsb2NrXSA9IE9iamVjdC5lbnRyaWVzKHN1cHBvcnRlZEJsb2NrcylbMF07XG5cbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICBhdHRhY2hlZEJsb2NrczogW3sgdHlwZTogYmxvY2tUeXBlLCBwcm9wczogYmxvY2suZGVmYXVsdFZhbHVlcygpIH1dLFxuICAgICAgICAgICAgICAgICAgICBhY3RpdmVUeXBlOiBibG9ja1R5cGUsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcblxuICAgICAgICBpbnB1dDJTdGF0ZTogKHsgYXR0YWNoZWRCbG9ja3MsIGFjdGl2ZVR5cGUsIGJsb2NrLCAuLi5hZGRpdGlvbmFsRmllbGRzIH0pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHN0YXRlOiBPbmVPZkJsb2NrU3RhdGUgPSB7XG4gICAgICAgICAgICAgICAgLi4uYWRkaXRpb25hbEZpZWxkcyxcbiAgICAgICAgICAgICAgICBhdHRhY2hlZEJsb2NrczogW10sXG4gICAgICAgICAgICAgICAgYWN0aXZlVHlwZTogYWN0aXZlVHlwZSAmJiBzdXBwb3J0ZWRCbG9ja3NbYWN0aXZlVHlwZV0gPyBhY3RpdmVUeXBlIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIGF0dGFjaGVkQmxvY2tzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYmxvY2sgPSBibG9ja0ZvclR5cGUoaXRlbS50eXBlKTtcblxuICAgICAgICAgICAgICAgIGlmICghYmxvY2spIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKGBVbmtub3duIGJsb2NrIHR5cGUgXCIke2l0ZW0udHlwZX1cImApO1xuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBzdGF0ZS5hdHRhY2hlZEJsb2Nrcy5wdXNoKHsgLi4uaXRlbSwgcHJvcHM6IGJsb2NrLmlucHV0MlN0YXRlKGl0ZW0ucHJvcHMpIH0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gc3RhdGU7XG4gICAgICAgIH0sXG4gICAgICAgIHN0YXRlMk91dHB1dDogKHsgYXR0YWNoZWRCbG9ja3MsIGFjdGl2ZVR5cGUsIC4uLmFkZGl0aW9uYWxGaWVsZHMgfSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5hZGRpdGlvbmFsRmllbGRzLFxuICAgICAgICAgICAgICAgIGF0dGFjaGVkQmxvY2tzOiBhdHRhY2hlZEJsb2Nrcy5tYXAoKGMpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmxvY2sgPSBibG9ja0ZvclR5cGUoYy50eXBlKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFibG9jaykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyBCbG9jayBmb3VuZCBmb3IgdHlwZSAke2MudHlwZX1gKTsgLy8gZm9yIFRTXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IGMudHlwZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzOiBibG9jay5zdGF0ZTJPdXRwdXQoYy5wcm9wcyksXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgYWN0aXZlVHlwZSxcbiAgICAgICAgICAgIH0gYXMgT25lT2ZCbG9ja091dHB1dDxUPjtcbiAgICAgICAgfSxcblxuICAgICAgICBvdXRwdXQyU3RhdGU6IGFzeW5jICh7IGF0dGFjaGVkQmxvY2tzLCBhY3RpdmVUeXBlLCAuLi5hZGRpdGlvbmFsRmllbGRzIH0sIGNvbnRleHQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHN0YXRlOiBPbmVPZkJsb2NrU3RhdGUgPSB7XG4gICAgICAgICAgICAgICAgYXR0YWNoZWRCbG9ja3M6IFtdLFxuICAgICAgICAgICAgICAgIGFjdGl2ZVR5cGUsXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgYXR0YWNoZWRCbG9ja3MpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBibG9jayA9IGJsb2NrRm9yVHlwZShpdGVtLnR5cGUpO1xuXG4gICAgICAgICAgICAgICAgaWYgKCFibG9jaykge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIEJsb2NrIGZvdW5kIGZvciB0eXBlICR7aXRlbS50eXBlfWApO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHN0YXRlLmF0dGFjaGVkQmxvY2tzLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAuLi5pdGVtLFxuICAgICAgICAgICAgICAgICAgICBwcm9wczogYXdhaXQgYmxvY2sub3V0cHV0MlN0YXRlKGl0ZW0ucHJvcHMsIGNvbnRleHQpLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gc3RhdGU7XG4gICAgICAgIH0sXG5cbiAgICAgICAgY3JlYXRlUHJldmlld1N0YXRlOiAoc3RhdGUsIHByZXZpZXdDdHgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHsgc3RhdGU6IGJsb2NrU3RhdGUsIGJsb2NrIH0gPSBnZXRBY3RpdmVCbG9jayhzdGF0ZSk7XG4gICAgICAgICAgICBjb25zdCB7IGF0dGFjaGVkQmxvY2tzLCBhY3RpdmVUeXBlLCAuLi5hZGRpdGlvbmFsRmllbGRzIH0gPSBzdGF0ZTtcblxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5hZGRpdGlvbmFsRmllbGRzLFxuICAgICAgICAgICAgICAgIGJsb2NrOiBibG9ja1N0YXRlXG4gICAgICAgICAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBibG9ja1N0YXRlLnR5cGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5ibG9jaz8uY3JlYXRlUHJldmlld1N0YXRlKGJsb2NrU3RhdGUucHJvcHMsIHByZXZpZXdDdHgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRtaW5NZXRhOiB7IHJvdXRlOiBgJHtwcmV2aWV3Q3R4LnBhcmVudFVybH0jJHtibG9ja1N0YXRlLnR5cGV9YCB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICB9O1xuICAgICAgICB9LFxuXG4gICAgICAgIGlzVmFsaWQ6IGFzeW5jIChzdGF0ZSkgPT5cbiAgICAgICAgICAgIHBhcmFsbGVsQXN5bmNFdmVyeShzdGF0ZS5hdHRhY2hlZEJsb2NrcywgYXN5bmMgKGMpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBibG9jayA9IGJsb2NrRm9yVHlwZShjLnR5cGUpO1xuICAgICAgICAgICAgICAgIGlmICghYmxvY2spIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyBCbG9jayBmb3VuZCBmb3IgdHlwZSAke2MudHlwZX1gKTsgLy8gZm9yIFRTXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBibG9jay5pc1ZhbGlkKGMucHJvcHMpO1xuICAgICAgICAgICAgfSksXG5cbiAgICAgICAgYW5jaG9yczogKHN0YXRlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB7IHN0YXRlOiBibG9ja1N0YXRlLCBibG9jayB9ID0gZ2V0QWN0aXZlQmxvY2soc3RhdGUpO1xuXG4gICAgICAgICAgICBpZiAoYmxvY2tTdGF0ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gYmxvY2s/LmFuY2hvcnM/LihibG9ja1N0YXRlLnByb3BzKSA/PyBbXTtcbiAgICAgICAgfSxcblxuICAgICAgICBkZXBlbmRlbmNpZXM6IChzdGF0ZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgeyBzdGF0ZTogYmxvY2tTdGF0ZSwgYmxvY2sgfSA9IGdldEFjdGl2ZUJsb2NrKHN0YXRlKTtcblxuICAgICAgICAgICAgaWYgKGJsb2NrU3RhdGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGJsb2NrPy5kZXBlbmRlbmNpZXM/LihibG9ja1N0YXRlLnByb3BzKSA/PyBbXTtcbiAgICAgICAgfSxcblxuICAgICAgICByZXBsYWNlRGVwZW5kZW5jaWVzSW5PdXRwdXQ6IChvdXRwdXQsIHJlcGxhY2VtZW50cykgPT4ge1xuICAgICAgICAgICAgY29uc3QgbmV3T3V0cHV0OiBPbmVPZkJsb2NrT3V0cHV0PFQ+ID0geyAuLi5vdXRwdXQsIGF0dGFjaGVkQmxvY2tzOiBbXSB9O1xuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGMgb2Ygb3V0cHV0LmF0dGFjaGVkQmxvY2tzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYmxvY2sgPSBibG9ja0ZvclR5cGUoYy50eXBlKTtcbiAgICAgICAgICAgICAgICBpZiAoIWJsb2NrKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgTm8gQmxvY2sgZm91bmQgZm9yIHR5cGUgJHtjLnR5cGV9YCk7IC8vIGZvciBUU1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIG5ld091dHB1dC5hdHRhY2hlZEJsb2Nrcy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgLi4uYyxcbiAgICAgICAgICAgICAgICAgICAgcHJvcHM6IGJsb2NrLnJlcGxhY2VEZXBlbmRlbmNpZXNJbk91dHB1dChjLnByb3BzLCByZXBsYWNlbWVudHMpLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gbmV3T3V0cHV0O1xuICAgICAgICB9LFxuXG4gICAgICAgIGRlZmluZXNPd25QYWRkaW5nOiB0cnVlLFxuXG4gICAgICAgIEFkbWluQ29tcG9uZW50OiAoeyBzdGF0ZSwgdXBkYXRlU3RhdGUgfSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgaXNJblBhcGVyID0gdXNlQmxvY2tBZG1pbkNvbXBvbmVudFBhcGVyKCk7XG5cbiAgICAgICAgICAgIGNvbnN0IHsgc2NvcGUgfSA9IHVzZUNvbnRlbnRTY29wZSgpO1xuICAgICAgICAgICAgY29uc3QgeyBpc0Jsb2NrU3VwcG9ydGVkIH0gPSB1c2VCbG9ja3NDb25maWcoKTtcblxuICAgICAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICAgICAgICAgIGxldCBmaWx0ZXJlZFN1cHBvcnRlZEJsb2NrcztcblxuICAgICAgICAgICAgICAgIGlmIChpc0Jsb2NrU3VwcG9ydGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIGZpbHRlcmVkU3VwcG9ydGVkQmxvY2tzID0gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmVudHJpZXMoc3VwcG9ydGVkQmxvY2tzKS5maWx0ZXIoKFssIGJsb2NrXSkgPT4gaXNCbG9ja1N1cHBvcnRlZChibG9jaywgc2NvcGUpKSxcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBmaWx0ZXJlZFN1cHBvcnRlZEJsb2NrcyA9IHN1cHBvcnRlZEJsb2NrcztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb25zdCBvcHRpb25zOiBBcnJheTx7IHZhbHVlOiBzdHJpbmc7IGxhYmVsOiBSZWFjdE5vZGUgfT4gPSBhbGxvd0VtcHR5XG4gICAgICAgICAgICAgICAgICAgID8gW3sgdmFsdWU6IFwibm9uZVwiLCBsYWJlbDogPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9XCJjb21ldC5ibG9ja3Mub25lT2ZCbG9jay5lbXB0eVwiIGRlZmF1bHRNZXNzYWdlPVwiTm9uZVwiIC8+IH1dXG4gICAgICAgICAgICAgICAgICAgIDogW107XG5cbiAgICAgICAgICAgICAgICBPYmplY3QuZW50cmllcyhmaWx0ZXJlZFN1cHBvcnRlZEJsb2NrcykuZm9yRWFjaCgoW2Jsb2NrVHlwZSwgYmxvY2tdKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIG9wdGlvbnMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogYmxvY2tUeXBlLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGJsb2NrLmRpc3BsYXlOYW1lLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb25zO1xuICAgICAgICAgICAgfSwgW3Njb3BlLCBpc0Jsb2NrU3VwcG9ydGVkXSk7XG5cbiAgICAgICAgICAgIGNvbnN0IGhhbmRsZUJsb2NrU2VsZWN0ID0gdXNlQ2FsbGJhY2soXG4gICAgICAgICAgICAgICAgKGJsb2NrVHlwZTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHVwZGF0ZVN0YXRlKChwcmV2U3RhdGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBuZXdTdGF0ZTogT25lT2ZCbG9ja1N0YXRlID0gcHJldlN0YXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGJsb2NrVHlwZSA9PT0gXCJub25lXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB1bnNlbGVjdCwgbm8gYmxvY2sgc2VsZWN0ZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdTdGF0ZSA9IHsgLi4ucHJldlN0YXRlLCBhY3RpdmVUeXBlOiB1bmRlZmluZWQgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY2hlY2sgaWYgd2UgaGF2ZSBhIGJsb2NrIG9mIHRoZSBzYW1lIHR5cGUgYWxyZWFkeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1hdGNoID0gcHJldlN0YXRlLmF0dGFjaGVkQmxvY2tzLmZpbmQoKGMpID0+IGMudHlwZSA9PT0gYmxvY2tUeXBlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobWF0Y2gpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2UgaGF2ZSBhbiBleGlzdGluZyBibG9jayB3aXRoIHNhbWUgdHlwZSwgc28gc2VsZWN0IGl0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1N0YXRlID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4ucHJldlN0YXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlVHlwZTogYmxvY2tUeXBlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdlIGhhdmUgbm8gZXhpc3RpbmcgYmxvY2ssIHdlIG5lZWQgdG8gY3JlYXRlIGFuZCBzZWxlY3QgYSBuZXcgYmxvY2tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYmxvY2sgPSBibG9ja0ZvclR5cGUoYmxvY2tUeXBlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFibG9jaykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyBCbG9jayBmb3VuZCBmb3IgdHlwZSAke2Jsb2NrVHlwZX1gKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG5ld0l0ZW06IE9uZU9mQmxvY2tJdGVtID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogYmxvY2tUeXBlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHM6IGJsb2NrLmRlZmF1bHRWYWx1ZXMoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdTdGF0ZSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLnByZXZTdGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dGFjaGVkQmxvY2tzOiBbLi4ucHJldlN0YXRlLmF0dGFjaGVkQmxvY2tzLCBuZXdJdGVtXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZVR5cGU6IGJsb2NrVHlwZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBjbGVhbiB1cCB0aGUgcHJldmlvdXMgc2VsZWN0ZWQgYmxvY2tcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdoZW4gcHJldmlvdXMgYmxvY2sgaGFzIG5vIHZhbHVlcyAodmFsdWVzIGFyZSBlcXVhbCB0byBkZWZhdWx0IHZhbHVlcylcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZW4gd2UgcmVtb3ZlIHRoZSBibG9ja1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhpcyBwcmV2ZW50cyBmcm9tIHNhdmluZyBwb3NzaWJseSBpbnZhbGlkIGJsb2NrcyBmb3IgaXJyZWxldmFudCAobm90IHNlbGVjdGVkKSBibG9ja3NcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHByZXZpb3VzU2VsZWN0ZWRCbG9jayA9IGdldEFjdGl2ZUJsb2NrKHByZXZTdGF0ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXdTZWxlY3RlZEJsb2NrID0gZ2V0QWN0aXZlQmxvY2sobmV3U3RhdGUpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocHJldmlvdXNTZWxlY3RlZEJsb2NrLmJsb2NrICYmIHByZXZpb3VzU2VsZWN0ZWRCbG9jay5zdGF0ZSAmJiBuZXdTZWxlY3RlZEJsb2NrLnR5cGUgIT09IHByZXZpb3VzU2VsZWN0ZWRCbG9jay50eXBlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzRXF1YWwocHJldmlvdXNTZWxlY3RlZEJsb2NrLmJsb2NrLmRlZmF1bHRWYWx1ZXMoKSwgcHJldmlvdXNTZWxlY3RlZEJsb2NrLnN0YXRlLnByb3BzKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdTdGF0ZSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLm5ld1N0YXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0YWNoZWRCbG9ja3M6IG5ld1N0YXRlLmF0dGFjaGVkQmxvY2tzLmZpbHRlcigoYykgPT4gYy50eXBlICE9PSBwcmV2aW91c1NlbGVjdGVkQmxvY2suc3RhdGUudHlwZSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3U3RhdGU7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgW3VwZGF0ZVN0YXRlXSxcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIGNvbnN0IGNyZWF0ZVVwZGF0ZVN1YkJsb2Nrc0ZuID0gdXNlQ2FsbGJhY2soXG4gICAgICAgICAgICAgICAgKGJsb2NrVHlwZTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHVwZGF0ZVN1YkJsb2Nrc0ZuOiBEaXNwYXRjaDxTZXRTdGF0ZUFjdGlvbjxhbnk+PiA9IChzZXRTdGF0ZUFjdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlU3RhdGUoKHByZXZTdGF0ZSkgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5wcmV2U3RhdGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0YWNoZWRCbG9ja3M6IHByZXZTdGF0ZS5hdHRhY2hlZEJsb2Nrcy5tYXAoKGMpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMudHlwZSA9PT0gYmxvY2tUeXBlID8geyAuLi5jLCBwcm9wczogcmVzb2x2ZU5ld1N0YXRlKHsgcHJldlN0YXRlOiBjLnByb3BzLCBzZXRTdGF0ZUFjdGlvbiB9KSB9IDogYyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdXBkYXRlU3ViQmxvY2tzRm47XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBbdXBkYXRlU3RhdGVdLFxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgY29uc3QgYWN0aXZlQmxvY2sgPSBnZXRBY3RpdmVCbG9jayhzdGF0ZSk7XG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZEJsb2NrVHlwZSA9IGFjdGl2ZUJsb2NrLmJsb2NrID8gYWN0aXZlQmxvY2suc3RhdGUudHlwZSA6IFwibm9uZVwiO1xuXG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIDxTZWxlY3RQcmV2aWV3Q29tcG9uZW50PlxuICAgICAgICAgICAgICAgICAgICA8SGlkZGVuSW5TdWJyb3V0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxCb3ggcGFkZGluZ0JvdHRvbT17aXNJblBhcGVyID8gMCA6IDN9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCbG9ja3NGaW5hbEZvcm08eyBibG9ja1R5cGU6IHN0cmluZyB9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvblN1Ym1pdD17KHsgYmxvY2tUeXBlIH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZUJsb2NrU2VsZWN0KGJsb2NrVHlwZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluaXRpYWxWYWx1ZXM9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrVHlwZTogc2VsZWN0ZWRCbG9ja1R5cGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7dmFyaWFudCA9PT0gXCJzZWxlY3RcIiAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCb3ggcGFkZGluZz17aXNJblBhcGVyID8gMyA6IDB9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U2VsZWN0RmllbGQgbmFtZT1cImJsb2NrVHlwZVwiIG9wdGlvbnM9e29wdGlvbnN9IGZ1bGxXaWR0aCByZXF1aXJlZCAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpc0luUGFwZXIgJiYgYWN0aXZlQmxvY2suYmxvY2sgJiYgPERpdmlkZXIgLz59XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3ZhcmlhbnQgPT09IFwicmFkaW9cIiAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCb3ggZGlzcGxheT1cImZsZXhcIiBmbGV4RGlyZWN0aW9uPVwiY29sdW1uXCIgcGFkZGluZz17M30+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSYWRpb0dyb3VwRmllbGQgbmFtZT1cImJsb2NrVHlwZVwiIGZ1bGxXaWR0aCBvcHRpb25zPXtvcHRpb25zfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHthY3RpdmVCbG9jay5ibG9jayAmJiA8RGl2aWRlciAvPn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7dmFyaWFudCA9PT0gXCJ0b2dnbGVcIiAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCb3ggcGFkZGluZz17aXNJblBhcGVyID8gMyA6IDB9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8RmllbGQgbmFtZT1cImJsb2NrVHlwZVwiIGZ1bGxXaWR0aD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsoeyBpbnB1dDogeyB2YWx1ZSwgb25DaGFuZ2UgfSB9KSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFRvZ2dsZUJ1dHRvbkdyb3VwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhldmVudCwgYmxvY2tUeXBlOiBzdHJpbmcgfCBudWxsKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYmxvY2tUeXBlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2UoYmxvY2tUeXBlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhjbHVzaXZlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7b3B0aW9ucy5tYXAoKG9wdGlvbikgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFRvZ2dsZUJ1dHRvbiB2YWx1ZT17b3B0aW9uLnZhbHVlfSBrZXk9e29wdGlvbi52YWx1ZX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge29wdGlvbi5sYWJlbH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvVG9nZ2xlQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1RvZ2dsZUJ1dHRvbkdyb3VwPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9GaWVsZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aXNJblBhcGVyICYmIGFjdGl2ZUJsb2NrLmJsb2NrICYmIDxEaXZpZGVyIC8+fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9CbG9ja3NGaW5hbEZvcm0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgICAgICAgICAgPC9IaWRkZW5JblN1YnJvdXRlPlxuICAgICAgICAgICAgICAgICAgICB7YWN0aXZlQmxvY2suYmxvY2sgJiYgYWN0aXZlQmxvY2suc3RhdGUgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8Qm94IHBhZGRpbmc9e2lzSW5QYXBlciAmJiAhYWN0aXZlQmxvY2suYmxvY2suZGVmaW5lc093blBhZGRpbmcgPyAzIDogMH0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEhvdmVyUHJldmlld0NvbXBvbmVudCBrZXk9e2FjdGl2ZUJsb2NrLnR5cGV9IGNvbXBvbmVudFNsdWc9e2AjJHthY3RpdmVCbG9jay50eXBlfWB9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YWN0aXZlQmxvY2suYmxvY2suQWRtaW5Db21wb25lbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlPXthY3RpdmVCbG9jay5zdGF0ZS5wcm9wc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZVN0YXRlPXtjcmVhdGVVcGRhdGVTdWJCbG9ja3NGbihhY3RpdmVCbG9jay5zdGF0ZS50eXBlKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0hvdmVyUHJldmlld0NvbXBvbmVudD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8L1NlbGVjdFByZXZpZXdDb21wb25lbnQ+XG4gICAgICAgICAgICApO1xuICAgICAgICB9LFxuICAgICAgICBwcmV2aWV3Q29udGVudDogKHN0YXRlLCBjdHgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHsgYmxvY2ssIHN0YXRlOiBhY3RpdmVCbG9ja1N0YXRlIH0gPSBnZXRBY3RpdmVCbG9jayhzdGF0ZSk7XG5cbiAgICAgICAgICAgIGlmIChibG9jayAmJiBhY3RpdmVCbG9ja1N0YXRlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGJsb2NrLnByZXZpZXdDb250ZW50KGFjdGl2ZUJsb2NrU3RhdGUucHJvcHMsIGN0eCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcblxuICAgICAgICBkeW5hbWljRGlzcGxheU5hbWU6IChzdGF0ZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgeyBibG9jaywgc3RhdGU6IGJsb2NrU3RhdGUgfSA9IGdldEFjdGl2ZUJsb2NrKHN0YXRlKTtcblxuICAgICAgICAgICAgaWYgKGJsb2NrICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYmxvY2suZHluYW1pY0Rpc3BsYXlOYW1lPy4oYmxvY2tTdGF0ZS5wcm9wcykgPz8gYmxvY2suZGlzcGxheU5hbWU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBkaXNwbGF5TmFtZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcblxuICAgICAgICBpY29uOiAoc3RhdGUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHsgYmxvY2ssIHN0YXRlOiBibG9ja1N0YXRlIH0gPSBnZXRBY3RpdmVCbG9jayhzdGF0ZSk7XG5cbiAgICAgICAgICAgIGlmIChibG9jayAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGJsb2NrLmljb24/LihibG9ja1N0YXRlLnByb3BzKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcblxuICAgICAgICBleHRyYWN0VGV4dENvbnRlbnRzOiAoc3RhdGUsIG9wdGlvbnMpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGluY2x1ZGVJbnZpc2libGVDb250ZW50ID0gb3B0aW9ucz8uaW5jbHVkZUludmlzaWJsZUNvbnRlbnQgPz8gZmFsc2U7XG5cbiAgICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBzdGF0ZS5hdHRhY2hlZEJsb2Nrcy5yZWR1Y2U8c3RyaW5nW10+KChjb250ZW50LCBjaGlsZCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGJsb2NrID0gYmxvY2tGb3JUeXBlKGNoaWxkLnR5cGUpO1xuICAgICAgICAgICAgICAgIGlmICghYmxvY2spIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyBCbG9jayBmb3VuZCBmb3IgdHlwZSAke2NoaWxkLnR5cGV9YCk7IC8vIGZvciBUU1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChjaGlsZC50eXBlICE9PSBzdGF0ZS5hY3RpdmVUeXBlICYmICFpbmNsdWRlSW52aXNpYmxlQ29udGVudCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY29udGVudDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gWy4uLmNvbnRlbnQsIC4uLihibG9jay5leHRyYWN0VGV4dENvbnRlbnRzPy4oY2hpbGQucHJvcHMsIG9wdGlvbnMpID8/IFtdKV07XG4gICAgICAgICAgICB9LCBbXSk7XG4gICAgICAgICAgICByZXR1cm4gY29udGVudDtcbiAgICAgICAgfSxcbiAgICAgICAgdHJhbnNsYXRlQ29udGVudDogYXN5bmMgKHN0YXRlLCB0cmFuc2xhdGUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHRyYW5zbGF0ZWRBdHRhY2hlZEJsb2NrcyA9IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICAgICAgICAgIHN0YXRlLmF0dGFjaGVkQmxvY2tzLm1hcChhc3luYyAoY2hpbGQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmxvY2sgPSBibG9ja0ZvclR5cGUoY2hpbGQudHlwZSk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghYmxvY2spIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgTm8gQmxvY2sgZm91bmQgZm9yIHR5cGUgJHtjaGlsZC50eXBlfWApO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdHJhbnNsYXRlZFByb3BzID0gYmxvY2sudHJhbnNsYXRlQ29udGVudCA/IGF3YWl0IGJsb2NrLnRyYW5zbGF0ZUNvbnRlbnQoY2hpbGQucHJvcHMsIHRyYW5zbGF0ZSkgOiBjaGlsZC5wcm9wcztcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgLi4uY2hpbGQsIHByb3BzOiB0cmFuc2xhdGVkUHJvcHMgfTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICByZXR1cm4geyAuLi5zdGF0ZSwgYXR0YWNoZWRCbG9ja3M6IHRyYW5zbGF0ZWRBdHRhY2hlZEJsb2NrcyB9O1xuICAgICAgICB9LFxuICAgIH07XG4gICAgaWYgKG92ZXJyaWRlKSB7XG4gICAgICAgIHJldHVybiBvdmVycmlkZShPbmVPZkJsb2NrKTtcbiAgICB9XG4gICAgcmV0dXJuIE9uZU9mQmxvY2s7XG59O1xuXG5jb25zdCBUb2dnbGVCdXR0b25Hcm91cCA9IHN0eWxlZChNdWlUb2dnbGVCdXR0b25Hcm91cClgXG4gICAgZGlzcGxheTogZmxleDtcbmA7XG5cbmNvbnN0IFRvZ2dsZUJ1dHRvbiA9IHN0eWxlZChNdWlUb2dnbGVCdXR0b24pYFxuICAgIGZsZXg6IDE7XG4gICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucGFsZXR0ZS50ZXh0LnByaW1hcnl9O1xuYDtcbiJdfQ== */"));
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import type { ReactNode } from "react";
|
|
2
|
+
import type { MessageDescriptor } from "react-intl";
|
|
3
|
+
import type { BlockInputApi, BlockInterface, BlockOutputApi, BlockState } from "../types";
|
|
4
4
|
export interface OptionalBlockState<DecoratedBlock extends BlockInterface> {
|
|
5
5
|
block?: BlockState<DecoratedBlock>;
|
|
6
6
|
visible: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createOptionalBlock.d.ts","sourceRoot":"","sources":["../../../src/blocks/factories/createOptionalBlock.tsx"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"createOptionalBlock.d.ts","sourceRoot":"","sources":["../../../src/blocks/factories/createOptionalBlock.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAY,SAAS,EAAkB,MAAM,OAAO,CAAC;AACjE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAOpD,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAM1F,MAAM,WAAW,kBAAkB,CAAC,cAAc,SAAS,cAAc;IACrE,KAAK,CAAC,EAAE,UAAU,CAAC,cAAc,CAAC,CAAC;IACnC,OAAO,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,8BAA8B,CAAC,cAAc,SAAS,cAAc;IACjF,KAAK,CAAC,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;IACtC,OAAO,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB,CAAC,cAAc,SAAS,cAAc;IACtE,KAAK,CAAC,EAAE,cAAc,CAAC,cAAc,CAAC,CAAC;IACvC,OAAO,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,cAAc,EACxD,cAAc,EAAE,CAAC,EACjB,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,SAAS,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,KAAK,CAAC,iBAAiB,GAAG,MAAM,CAAC,CAAA;CAAE,EACxF,QAAQ,CAAC,EAAE,CACP,KAAK,EAAE,cAAc,CAAC,8BAA8B,CAAC,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,KACtG,cAAc,CAAC,8BAA8B,CAAC,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,GACtG,cAAc,CAAC,8BAA8B,CAAC,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAyKlG"}
|
|
@@ -207,7 +207,44 @@ export function createOptionalBlock(decoratedBlock, options, override) {
|
|
|
207
207
|
return (_decoratedBlock$extra = (_decoratedBlock$extra2 = decoratedBlock.extractTextContents) === null || _decoratedBlock$extra2 === void 0 ? void 0 : _decoratedBlock$extra2.call(decoratedBlock, state.block, options)) !== null && _decoratedBlock$extra !== void 0 ? _decoratedBlock$extra : [];
|
|
208
208
|
}
|
|
209
209
|
return [];
|
|
210
|
-
}
|
|
210
|
+
},
|
|
211
|
+
translateContent: function () {
|
|
212
|
+
var _translateContent = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3(state, translate) {
|
|
213
|
+
var translatedBlock, _t6;
|
|
214
|
+
return _regenerator().w(function (_context3) {
|
|
215
|
+
while (1) switch (_context3.n) {
|
|
216
|
+
case 0:
|
|
217
|
+
if (!(state.block === undefined)) {
|
|
218
|
+
_context3.n = 1;
|
|
219
|
+
break;
|
|
220
|
+
}
|
|
221
|
+
return _context3.a(2, state);
|
|
222
|
+
case 1:
|
|
223
|
+
if (!decoratedBlock.translateContent) {
|
|
224
|
+
_context3.n = 3;
|
|
225
|
+
break;
|
|
226
|
+
}
|
|
227
|
+
_context3.n = 2;
|
|
228
|
+
return decoratedBlock.translateContent(state.block, translate);
|
|
229
|
+
case 2:
|
|
230
|
+
_t6 = _context3.v;
|
|
231
|
+
_context3.n = 4;
|
|
232
|
+
break;
|
|
233
|
+
case 3:
|
|
234
|
+
_t6 = state.block;
|
|
235
|
+
case 4:
|
|
236
|
+
translatedBlock = _t6;
|
|
237
|
+
return _context3.a(2, _objectSpread(_objectSpread({}, state), {}, {
|
|
238
|
+
block: translatedBlock
|
|
239
|
+
}));
|
|
240
|
+
}
|
|
241
|
+
}, _callee3);
|
|
242
|
+
}));
|
|
243
|
+
function translateContent(_x4, _x5) {
|
|
244
|
+
return _translateContent.apply(this, arguments);
|
|
245
|
+
}
|
|
246
|
+
return translateContent;
|
|
247
|
+
}()
|
|
211
248
|
});
|
|
212
249
|
if (override) {
|
|
213
250
|
return override(OptionalBlock);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type ChangeEvent, type Dispatch, type ReactNode, type SetStateAction } from "react";
|
|
2
2
|
import { type ClipboardContent } from "../../clipboard/useBlockClipboard";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
3
|
+
import type { BlockAdminComponentProps, BlockInterface, BlockState } from "../../types";
|
|
4
|
+
import type { ListBlockAdditionalItemField, ListBlockState } from "../createListBlock";
|
|
5
5
|
interface CreateListBlockUseAdminComponentOptions<T extends BlockInterface> {
|
|
6
6
|
block: T;
|
|
7
7
|
maxVisibleBlocks?: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createUseAdminComponent.d.ts","sourceRoot":"","sources":["../../../../src/blocks/factories/listBlock/createUseAdminComponent.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,QAAQ,EAAE,KAAK,SAAS,EAAE,KAAK,cAAc,EAA6C,MAAM,OAAO,CAAC;AAKxI,OAAO,EAAE,KAAK,gBAAgB,EAAqB,MAAM,mCAAmC,CAAC;AAC7F,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"createUseAdminComponent.d.ts","sourceRoot":"","sources":["../../../../src/blocks/factories/listBlock/createUseAdminComponent.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,QAAQ,EAAE,KAAK,SAAS,EAAE,KAAK,cAAc,EAA6C,MAAM,OAAO,CAAC;AAKxI,OAAO,EAAE,KAAK,gBAAgB,EAAqB,MAAM,mCAAmC,CAAC;AAC7F,OAAO,KAAK,EAAE,wBAAwB,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAExF,OAAO,KAAK,EAAE,4BAA4B,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEvF,UAAU,uCAAuC,CAAC,CAAC,SAAS,cAAc;IACtE,KAAK,EAAE,CAAC,CAAC;IACT,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,4BAA4B,CAAC,CAAC;CACvE;AAED,KAAK,+BAA+B,CAAC,CAAC,SAAS,cAAc,IAAI,wBAAwB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;AAE7G,UAAU,6BAA6B,CAAC,CAAC,SAAS,cAAc;IAC5D,2BAA2B,EAAE,SAAS,CAAC;IACvC,aAAa,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,YAAY,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC5C,uBAAuB,EAAE,MAAM,IAAI,CAAC;IACpC,WAAW,EAAE,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,KAAK,MAAM,CAAC;IAC1D,uBAAuB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvF,kBAAkB,EAAE,MAAM,CAAC;IAC3B,sBAAsB,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrE,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,qBAAqB,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IACtE,WAAW,EAAE,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACvE,kBAAkB,EAAE,MAAM,IAAI,CAAC;IAC/B,aAAa,EAAE,MAAM,CAAC;CACzB;AAED,KAAK,aAAa,CAAC,CAAC,SAAS,cAAc,IAAI,cAAc,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAG9E,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,cAAc,EAAE,EAC9D,KAAK,EACL,gBAAgB,EAChB,oBAAyB,GAC5B,EAAE,uCAAuC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,+BAA+B,CAAC,CAAC,CAAC,KAAK,6BAA6B,CAAC,CAAC,CAAC,CA6O9H"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createSpaceBlock.d.ts","sourceRoot":"","sources":["../../../../src/blocks/factories/spaceBlock/createSpaceBlock.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"createSpaceBlock.d.ts","sourceRoot":"","sources":["../../../../src/blocks/factories/spaceBlock/createSpaceBlock.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAoB,KAAK,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAKtE,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAEjE,UAAU,wBAAwB,CAAC,CAAC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,CAAC,CAAC;IAChB,OAAO,EAAE;QAAE,KAAK,EAAE,CAAC,CAAC;QAAC,KAAK,EAAE,SAAS,CAAA;KAAE,EAAE,CAAC;IAC1C,IAAI,CAAC,EAAE,KAAK,CAAC,iBAAiB,GAAG,MAAM,CAAC,CAAC;CAC5C;AAED,eAAO,MAAM,gBAAgB,GAAI,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,wCAKzD,wBAAwB,CAAC,CAAC,CAAC,KAAG,cAsChC,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import type { FieldRenderProps } from "react-final-form";
|
|
2
|
+
import type { BlockInterface } from "../types";
|
|
3
3
|
declare const createFinalFormBlock: (block: BlockInterface) => ({ input: { value, onChange } }: FieldRenderProps<unknown>) => import("react/jsx-runtime").JSX.Element;
|
|
4
4
|
export { createFinalFormBlock };
|
|
5
5
|
//# sourceMappingURL=createFinalFormBlock.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createFinalFormBlock.d.ts","sourceRoot":"","sources":["../../../src/blocks/form/createFinalFormBlock.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"createFinalFormBlock.d.ts","sourceRoot":"","sources":["../../../src/blocks/form/createFinalFormBlock.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAG/C,QAAA,MAAM,oBAAoB,GAAI,OAAO,cAAc,MACvC,gCAAgC,gBAAgB,CAAC,OAAO,CAAC,4CAGpE,CAAC;AAEF,OAAO,EAAE,oBAAoB,EAAE,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
1
|
+
import type { Dispatch, SetStateAction } from "react";
|
|
2
|
+
import type { BlockContext } from "../../context/BlockContext";
|
|
3
|
+
import type { BlockInterface, BlockMethods } from "../../types";
|
|
4
|
+
import type { AdminComponentPropsMap, AdminComponentsMap, ChildBlockCountMap, CompositeBlocksConfig, DataMapInputApi, DataMapOutputApi, DataMapState, IsValidMap, PreviewMap } from "./types";
|
|
5
5
|
export type CompositeBlockInterface<C extends CompositeBlocksConfig> = BlockInterface<DataMapInputApi<C>, DataMapState<C>, DataMapOutputApi<C>>;
|
|
6
6
|
export type ComposeBlocksApi<C extends CompositeBlocksConfig> = {
|
|
7
7
|
block: BlockMethods<DataMapInputApi<C>, DataMapState<C>, DataMapOutputApi<C>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"composeBlocks.d.ts","sourceRoot":"","sources":["../../../../src/blocks/helpers/composeBlocks/composeBlocks.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"composeBlocks.d.ts","sourceRoot":"","sources":["../../../../src/blocks/helpers/composeBlocks/composeBlocks.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAGtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EAAmB,cAAc,EAAE,YAAY,EAAkB,MAAM,aAAa,CAAC;AAIjG,OAAO,KAAK,EACR,sBAAsB,EACtB,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACrB,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,UAAU,EACV,UAAU,EAEb,MAAM,SAAS,CAAC;AAKjB,MAAM,MAAM,uBAAuB,CAAC,CAAC,SAAS,qBAAqB,IAAI,cAAc,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;AAQhJ,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,qBAAqB,IAAI;IAC5D,KAAK,EAAE,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;IAE9E,GAAG,EAAE;QACD,mBAAmB,EAAE,CAAC,KAAK,EAAE;YAAE,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;YAAC,WAAW,EAAE,QAAQ,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;SAAE,KAAK,sBAAsB,CAAC,CAAC,CAAC,CAAC;QAC9I,eAAe,EAAE,CAAC,KAAK,EAAE;YAAE,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;YAAC,WAAW,EAAE,QAAQ,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;SAAE,KAAK,kBAAkB,CAAC,CAAC,CAAC,CAAC;QACtI,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC;QAC3E,gBAAgB,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,kBAAkB,CAAC,CAAC,CAAC,CAAC;QACpE,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC;KACvD,CAAC;CACL,CAAC;AAIF,wBAAgB,aAAa,CAAC,CAAC,SAAS,qBAAqB,EAAE,eAAe,EAAE,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CA8NtG"}
|
|
@@ -268,22 +268,58 @@ export function composeBlocks(compositeBlocks) {
|
|
|
268
268
|
return Object.values(contentsPerBlock).reduce(function (contents, blockContents) {
|
|
269
269
|
return [].concat(_toConsumableArray(contents), _toConsumableArray(blockContents));
|
|
270
270
|
}, []);
|
|
271
|
-
}
|
|
271
|
+
},
|
|
272
|
+
translateContent: function () {
|
|
273
|
+
var _translateContent = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3(state, translate) {
|
|
274
|
+
var translatedState;
|
|
275
|
+
return _regenerator().w(function (_context3) {
|
|
276
|
+
while (1) switch (_context3.n) {
|
|
277
|
+
case 0:
|
|
278
|
+
_context3.n = 1;
|
|
279
|
+
return applyToCompositeBlocksAsync(compositeBlocks, /*#__PURE__*/function () {
|
|
280
|
+
var _ref31 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(_ref30, attr) {
|
|
281
|
+
var _ref32, block, options, extractedData;
|
|
282
|
+
return _regenerator().w(function (_context2) {
|
|
283
|
+
while (1) switch (_context2.n) {
|
|
284
|
+
case 0:
|
|
285
|
+
_ref32 = _slicedToArray(_ref30, 2), block = _ref32[0], options = _ref32[1];
|
|
286
|
+
extractedData = extractData([block, options], attr, state);
|
|
287
|
+
return _context2.a(2, block.translateContent ? block.translateContent(extractedData, translate) : extractedData);
|
|
288
|
+
}
|
|
289
|
+
}, _callee2);
|
|
290
|
+
}));
|
|
291
|
+
return function (_x4, _x5) {
|
|
292
|
+
return _ref31.apply(this, arguments);
|
|
293
|
+
};
|
|
294
|
+
}(), {
|
|
295
|
+
flatten: true
|
|
296
|
+
});
|
|
297
|
+
case 1:
|
|
298
|
+
translatedState = _context3.v;
|
|
299
|
+
return _context3.a(2, _objectSpread(_objectSpread({}, state), translatedState));
|
|
300
|
+
}
|
|
301
|
+
}, _callee3);
|
|
302
|
+
}));
|
|
303
|
+
function translateContent(_x2, _x3) {
|
|
304
|
+
return _translateContent.apply(this, arguments);
|
|
305
|
+
}
|
|
306
|
+
return translateContent;
|
|
307
|
+
}()
|
|
272
308
|
},
|
|
273
309
|
api: {
|
|
274
310
|
adminComponentProps: adminComponentProps,
|
|
275
311
|
adminComponents: function adminComponents(props) {
|
|
276
|
-
return applyToCompositeBlocks(compositeBlocks, function (
|
|
277
|
-
var
|
|
278
|
-
block =
|
|
312
|
+
return applyToCompositeBlocks(compositeBlocks, function (_ref33, attr) {
|
|
313
|
+
var _ref34 = _slicedToArray(_ref33, 1),
|
|
314
|
+
block = _ref34[0];
|
|
279
315
|
return /*#__PURE__*/_jsx(block.AdminComponent, _objectSpread({}, adminComponentProps(props)[attr]));
|
|
280
316
|
});
|
|
281
317
|
},
|
|
282
318
|
previews: function previews(state, ctx) {
|
|
283
|
-
return applyToCompositeBlocks(compositeBlocks, function (
|
|
284
|
-
var
|
|
285
|
-
block =
|
|
286
|
-
options =
|
|
319
|
+
return applyToCompositeBlocks(compositeBlocks, function (_ref35, attr) {
|
|
320
|
+
var _ref36 = _slicedToArray(_ref35, 2),
|
|
321
|
+
block = _ref36[0],
|
|
322
|
+
options = _ref36[1];
|
|
287
323
|
if (isBlockInterface(block)) {
|
|
288
324
|
var extractedData = extractData([block, options], attr, state);
|
|
289
325
|
return /*#__PURE__*/_jsx(BlockPreviewContent, {
|
|
@@ -297,10 +333,10 @@ export function composeBlocks(compositeBlocks) {
|
|
|
297
333
|
});
|
|
298
334
|
},
|
|
299
335
|
childBlockCounts: function childBlockCounts(state) {
|
|
300
|
-
return applyToCompositeBlocks(compositeBlocks, function (
|
|
301
|
-
var
|
|
302
|
-
block =
|
|
303
|
-
options =
|
|
336
|
+
return applyToCompositeBlocks(compositeBlocks, function (_ref37, attr) {
|
|
337
|
+
var _ref38 = _slicedToArray(_ref37, 2),
|
|
338
|
+
block = _ref38[0],
|
|
339
|
+
options = _ref38[1];
|
|
304
340
|
if (isBlockInterface(block)) {
|
|
305
341
|
var _block$childBlockCoun, _block$childBlockCoun2;
|
|
306
342
|
var extractedData = extractData([block, options], attr, state);
|
|
@@ -312,10 +348,10 @@ export function composeBlocks(compositeBlocks) {
|
|
|
312
348
|
},
|
|
313
349
|
// A map of isValid-fns for each block, the partial state is bound to the fn, so it takes no arguments
|
|
314
350
|
isValids: function isValids(state) {
|
|
315
|
-
return applyToCompositeBlocks(compositeBlocks, function (
|
|
316
|
-
var
|
|
317
|
-
block =
|
|
318
|
-
options =
|
|
351
|
+
return applyToCompositeBlocks(compositeBlocks, function (_ref39, attr) {
|
|
352
|
+
var _ref40 = _slicedToArray(_ref39, 2),
|
|
353
|
+
block = _ref40[0],
|
|
354
|
+
options = _ref40[1];
|
|
319
355
|
var extractedData = extractData([block, options], attr, state);
|
|
320
356
|
return function () {
|
|
321
357
|
var _block$isValid;
|